天工维度魔兽争霸开发者社区-全国最大的TJ集中营-原提百万联盟

标题: Jass功能:唯一ID表 [打印本页]

作者: arrssg    时间: 2023-8-3 23:23
标题: Jass功能:唯一ID表
本帖最后由 arrssg 于 2023-8-8 16:02 编辑

不知道有用没?

  1. #ifndef UniqueTableIncluded
  2. #define UniqueTableIncluded
  3. library UniqueTable
  4. globals
  5. private hashtable table=InitHashtable()
  6. private integer columns=0
  7. endglobals

  8. function UT_IsValidColumn takes integer column returns boolean
  9.     return column>0 and column<=columns
  10. endfunction
  11. function UT_NewColumn takes nothing returns integer
  12.     set columns=columns+1
  13.     return columns
  14. endfunction
  15. function UT_RemoveColumn takes integer column returns boolean
  16.     if(UT_IsValidColumn(column))then
  17.         call FlushChildHashtable(table,column)
  18.         return true
  19.     endif
  20.     return false
  21. endfunction

  22. function UT_IsValidSpace takes integer column,integer space returns boolean
  23.     if(space<=0)then
  24.         return false
  25.     endif
  26.     if(UT_IsValidColumn(column))then
  27.         return false
  28.     endif
  29.     return HaveSavedInteger(table,column,space)
  30. endfunction
  31. function UT_NewSpace takes integer column,integer value returns integer
  32.     local integer space=LoadInteger(table,column,-1)+1
  33.     call SaveInteger(table,column,-1,space)
  34.     call SaveInteger(table,column,space,value)
  35.     return space
  36. endfunction

  37. function UT_RemoveSpace takes integer column,integer space returns boolean
  38.     if(not UT_IsValidSpace(column,space))then
  39.         return false
  40.     endif
  41.     call RemoveSavedInteger(table,column,space)
  42.     return true
  43. endfunction

  44. function UT_SetValue takes integer column,integer space,integer value returns nothing
  45.     if(not UT_IsValidSpace(column,space))then
  46.         return
  47.     endif
  48.     call SaveInteger(table,column,space,value)
  49. endfunction
  50. function UT_GetValue takes integer column,integer space returns integer
  51.     if(not UT_IsValidSpace(column,space))then
  52.         return 0
  53.     endif
  54.     return LoadInteger(table,column,space)
  55. endfunction

  56. endlibrary
  57. #endif
复制代码







欢迎光临 天工维度魔兽争霸开发者社区-全国最大的TJ集中营-原提百万联盟 (http://bbs.mvprpg.com/) Powered by Discuz! X3.4