|
听说gamecache慢。。。所以想了个笨方法出来。。。把树型结构分拆成线型结构
我觉得如果只是要动态绑定和读取数据的话,尤其是对于单独的一张图或一个系统,需要临时绑定的数据也不会超过几十,所以以下的方法也可行啊?
我没有进一步的测试,不过我觉得用这种方法完全可以定义出你自己的表单结构,二维的三维的甚至更多,存储整数的,字符串的都可以。。。如果可行的话,这应该比gamecache快吧?
- globals
- integer udg_size=0
- string array udg_Sort
- string array udg_List
- integer array udg_Content
- endglobals
- //Store Data
- function StoreContents takes string sort_title,string list_title,integer contents returns nothing
- set udg_Sort[udg_size]=sort_title
- set udg_List[udg_size]=list_title
- set udg_Content[udg_size]=contents
- set udg_size=udg_size+1
- endfunction
- //Get Data
- function GetContents takes string sort_title,string list_title returns integer
- local integer i=0
- local integer tmp=0
- loop
- exitwhen(i>udg_size)
- if(udg_Sort==sort_title)then
- if(udg_List==list_title)then
- set tmp=udg_Content
- return tmp
- endif
- endif
- endloop
- return 0
- endfunction
- //Return Bug
- function H2I takes handle h returns integer
- return h
- return 0
- endfunction
- //A Test Func
- function func_test takes nothing returns nothing
- local integer tmp
- call StoreContents("missionkey","key",H2I(Player(0)))
- set tmp=GetContents("missionkey","key")
- call DisplayTextToPlayer(Player(0),0,0,I2S(tmp))
- endfunction
复制代码
嗯,再添一个restore的函数, -
- function ReStore takes string sort_title,string list_title,integer contents returns boolean
- local integer i=0
- local integer tmp=0
- loop
- exitwhen(i>udg_size)
- if(udg_Sort==sort_title)then
- if(udg_List==list_title)then
- set udg_Content=contents
- return true
- endif
- endif
- endloop
- return false
- endfunction
复制代码 |
|