下面是引用 112459 於 2009-09-23 21:23 發表的 :
那假如我想要寫出像csdm(死鬥)那落選單要怎寫><
先選個手槍..選完再選步槍等><
另外1023是代表什麼= =?
key = (1023)嗎?
新手再問- -
那按了選擇相對的指令打在那= =?
..............................................................
再問....
複製程式
nLen += format( szMenuBody[nLen], 255-nLen, "^n\w1. 有點懂!" )
nLen是什麼意思
format是什麼意思
255-nLen又是怎樣= =?
相對的指令在那...
事實上1023的用法我也不太懂
因為只是聽說可以這樣寫,而實際上測試也確實可以,但在怎樣的情況下會無效就不得而知了。
nLen是字串代換,在標題的部份就有設定
format則是載入字串,在這裡的用法是將"^n\w1. 有點懂!"載入到szMenuBody儲存
之後在用show_menu( id, keys, szMenuBody, -1 )來顯示
255-nLen就是計算剩餘的容量單位,之前已經設定了szMenuBody為256,為了做1單位的保留空間,所以設255
當然,你要設256也無所謂,只要能正常執行就可以了
另外,相對的指令要另外寫。
注意喔,寫顯示選單的部份之所以設定keys,就是要在另外一個地方使用它
在最上方註冊語法的地方,有一段register_menucmd(register_menuid("\y選單教學:"), 1023, "MenuCMD" )
所以選單的命令是要寫在public MenuCMD之中的
(1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)
↑這個設定是官方給的,按照順序,1=0,2=1以此類推
所以第一項是寫在case 0而不是case 1
死鬥的原始碼我沒看過,但是也可以用我自己的想法寫出來
先註冊了一個命令,內容是在復活時執行命令
語法的內容則是顯示小槍選單
然後在寫取得小槍和子彈的命令,在命令之後在加上一段顯示大槍的選單
注意喔,如果在命令之中有執行某段顯示選單的公眾命令(public)的話,可以不用註冊顯示選單,但是要註冊選單命令大槍的選單命令就寫取得大槍和子彈,最後再加上return PLUGIN_HANDLED來中斷插件執行就完成了