Jump to content

請教關於 addSubMenu 的問題


hardnick

Recommended Posts

我嘗試使用lua來編寫F10選單的分層目錄

然後分別使用不同的Flag來觸發AI單位

但是想要在相對應的AI單位被觸發之後順便就把選單裡面的那個選項給移除

例如我選了F-18然後AI F-18被觸發之後F10選單裡面的F-18選項就一起刪除掉

於是找到了removeItemForCoalition 這個語法來嘗試

但不知怎麼做才是對的....它總是會把整的F10選單給清除掉

 

剛剛嘗試接觸lua還不是很了解 麻煩各位大大幫小弟解惑一下

 

以下是選單語法的例子

我是想在setFlags的function裡面一起解決掉就好了

 

local function setFlags(v)

trigger.action.setUserFlag(v.flag, v.val)

missionCommands.removeItemForCoalition(coalition.side.BLUE, v.AI, FIGHT_SPAWNMENU)

end

 

local FIGHT_SPAWNMENU = missionCommands.addSubMenuForCoalition(coalition.side.BLUE, "戰機")

missionCommands.addCommandForCoalition(coalition.side.BLUE, "F-18", FIGHT_SPAWNMENU, setFlags, {flag=101, val=true, AI="F-18"})

missionCommands.addCommandForCoalition(coalition.side.BLUE, "Su-27", FIGHT_SPAWNMENU, setFlags, {flag=102, val=true, AI="Su-27"})

 

local TANK_SPAWNMENU = missionCommands.addSubMenuForCoalition(coalition.side.BLUE, "裝甲車")

missionCommands.addCommandForCoalition(coalition.side.BLUE, "T-90", TANK_SPAWNMENU, setFlags, {flag=201, val=true, AI="T-90"})

missionCommands.addCommandForCoalition(coalition.side.BLUE, "T-72", TANK_SPAWNMENU, setFlags, {flag=202, val=true, AI="T-72"})

 

感謝

 

function 裡面判斷 TANK_SPAWNMENU 的部分我會再修改

請問lua能用 if()之類的判斷式嗎?


Edited by hardnick
Link to comment
Share on other sites

目前發現應該是路徑的問題造成無法單獨刪除最內層的選單

 

底下function裡面的v.Path已經可以成功地將F10選中的最外層給刪除掉

而現在的問題是更內層的路徑有點搞不懂

像是 missionCommands.removeItemForCoalition(coalition.side.BLUE, v.Path{v.AI})

結果這樣也不對.....不知到最內層的Path該怎麼寫呢?

 

 

local function setFlags(v)

trigger.action.setUserFlag(v.flag, v.val)

trigger.action.outText(v.AI, 5)

missionCommands.removeItemForCoalition(coalition.side.BLUE, v.Path)

end

 

 

local FIGHT_SPAWNMENU = missionCommands.addSubMenuForCoalition(coalition.side.BLUE, "AI Fighter")

missionCommands.addCommandForCoalition(coalition.side.BLUE, "F-18", FIGHT_SPAWNMENU, setFlags, {flag=101, val=true, Path=FIGHT_SPAWNMENU, AI="F-18"})

missionCommands.addCommandForCoalition(coalition.side.BLUE, "Su-27", FIGHT_SPAWNMENU, setFlags, {flag=102, val=true, Path=FIGHT_SPAWNMENU, AI="Su-27"})

 

local TANK_SPAWNMENU = missionCommands.addSubMenuForCoalition(coalition.side.BLUE, "AI Tank")

missionCommands.addCommandForCoalition(coalition.side.BLUE, "T-90", TANK_SPAWNMENU, setFlags, {flag=201, val=true, Path=TANK_SPAWNMENU, AI="T-90"})

missionCommands.addCommandForCoalition(coalition.side.BLUE, "T-72", TANK_SPAWNMENU, setFlags, {flag=202, val=true, Path=TANK_SPAWNMENU, AI="T-72"})

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...