伊莉討論區

標題: [未解決]老師,請原諒偷懶不學jass的我 [打印本頁]

作者: zenbonchen    時間: 2011-7-18 12:48 PM     標題: [未解決]老師,請原諒偷懶不學jass的我

本帖最後由 zenbonchen 於 2011-7-18 12:49 PM 編輯

這是在WE自學手冊的一段

物件的身分證字號(回傳錯誤)

function GetHandleTrigger takes handle subject, string name returns trigger
    return GetStoredInteger(LocalVars(), H2S(subject), name)
    return null
endfunction

是舊版魔獸的jass寫法

現在的版本(1.24b還是1.24c ?),應該改寫成什麼樣子呢





 
作者: 逢魔之月    時間: 2011-7-18 01:03 PM

JASS我也沒學啊~XD
以下為蘋果(AppleSheep)的教學ww

原理很簡單
在common.j可以找到一長串類似這樣的類型
constant native ConvertAttackType takes integer i returns attacktype
constant native ConvertDamageType takes integer i returns damagetype
constant native ConvertWeaponType takes integer i returns weapontype
constant native ConvertSoundType takes integer i returns soundtype
constant native ConvertPathingType takes integer i returns pathingtype

他們用於轉換編號成類型
但是連null值都一起記錄下來
因此我們就利用這特性與HashTable的同類型使用同一空間搭配
用一個null的handle類型
存入HashTable後
再用別的類型讀出

例子:
globals
hashtable rb = InitHashtable()
endglobals

function H2I takes handle v returns integer
return GetHandleId(v)
endfunction

function I2U takes integer i returns unit
call SaveFogStateHandle(rb,0,0,ConvertFogState(i))
return LoadUnitHandle(rb,0,0,i)
endfunction

function I2IT takes integer i returns item
call SaveFogStateHandle(rb,0,0,ConvertFogState(i))
return LoadItemHandle(rb,0,0,i)
endfunction

function test takes nothing returns nothing
unit u = CreateUnit(Player(0),'hpea',0,0,0)
integer i = H2I(u)
BJDebugMsg(GetUnitName(I2U(i))) //顯示:農民
endfunction
作者: zenbonchen    時間: 2011-7-18 05:23 PM

回復 2# 逢魔之月


    globals 那三行要寫在哪裡?

放在共用區就報錯了


 
作者: 逢魔之月    時間: 2011-7-18 08:02 PM

我也不會啊~XD

只是以前看到這篇 現在又看到你在問就貼給你而已




歡迎光臨 伊莉討論區 (http://wwtow.eyny.com/) Powered by Discuz!