找回密码
 点一下
查看: 976|回复: 10

怎么实现call code

[复制链接]
发表于 2011-9-16 19:23:55 | 显示全部楼层 |阅读模式
function I2Co takes integer i returns code
    return i
    return null
endfunction

请问1.24之后 怎么实现这个?没搜索到
call  I2Co(LoadInteger(HT,1,1))
发表于 2011-9-16 19:28:05 | 显示全部楼层
原来理解错了
回复

使用道具 举报

 楼主| 发表于 2011-9-16 19:56:31 | 显示全部楼层
别的东西都能用hashtable存取   但code不行

call   I2code(N) 只能用全局变量实现?...  有么有别的法子...
回复

使用道具 举报

 楼主| 发表于 2011-9-16 20:01:11 | 显示全部楼层
function docode takes nothing returns nothing
   set udg_b=function docode
   call udg_b()
endfunction


call udg_b()  语法是错误的... 怎么用呢
回复

使用道具 举报

发表于 2011-9-16 20:25:45 | 显示全部楼层
code和函数是有本质区别的。要运行code可以新建一个trigger,添加code作为action,运行trigger,移除triggeraction,移除trigger。不过如果是反复使用的话直接建个trigger永久保留就好了。
另一种方式是用Condition()或Filter()包装成boolexpr,然后用groupenum系列函数或triggercondition调用。hashtable也支持boolexpr的存储。
回复

使用道具 举报

 楼主| 发表于 2011-9-16 20:35:24 | 显示全部楼层
  1. [/code][code]
  2. function TEXT takes nothing returns nothing
  3. call DisplayTextToForce( GetPlayersAll(), "OK" )
  4. endfunction
  5. function docode takes nothing returns nothing
  6.    local conditionfunc result
  7.    set udg_b=function TEXT
  8.    set result= Condition(udg_b)
  9. endfunction
复制代码
  1. [/code][code]调用docode  一点反应都没有..  看来还是要创建Trigger才行呀
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-9-16 20:45:45 | 显示全部楼层
谢谢皮卡丘

以前 call  I2code(integer)用得太舒服了...
回复

使用道具 举报

 楼主| 发表于 2011-9-16 21:16:54 | 显示全部楼层
皮卡丘   可以示范下你说的第二种方法吗 用condition调用  我不怎会用
回复

使用道具 举报

发表于 2011-9-16 21:29:55 | 显示全部楼层
用ForceEnumPlayers应该是最简单的了
回复

使用道具 举报

 楼主| 发表于 2011-9-16 21:58:17 | 显示全部楼层
解决了...

force 和boolexpr  都要Destroy和set null吧?
回复

使用道具 举报

发表于 2011-9-16 22:31:02 | 显示全部楼层
force用全局永久的就好了。
boolexpr千万不要destroy,不destroy每次建立的都是同一个handle,destroy了反而handle会涨。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-27 00:53 , Processed in 0.059102 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表