|
发表于 2009-5-31 14:17:40
|
显示全部楼层
红色部分为修改,增加递归调用,可解决不解释andao的问题,原作者用了coroutine,俺没仔细看,不知道有没有竞争冒险之类的问题
测试了下,huyidao没有问题
function exec_alias(s)
temp_thread_path=coroutine.create(function (s)
local p_temp = Split(s,";");
for i,v in ipairs(p_temp) do
if alias_table[v] then
exec_alias (alias_table[v])
elseif nil~=string.find(v,"#%d+ ") then
world.Send(do_table[string.sub(v,string.find(v,"#%d+ "))]..string.sub(v,string.find(v," .+")));
elseif nil~=string.find(v,"#wa") then
world.DoAfterSpecial(string.sub(v,string.find(v,"%d+")) / 2000,"coroutine.resume(temp_thread_path);",12);
coroutine.yield();
else
world.Send(v);
end
end
end)
coroutine.resume(temp_thread_path,s);
end
[ 本帖最后由 duno 于 2009-5-31 02:20 PM 编辑 ] |
|