作者laechan (小太保)
看板mud_sanc
标题Re: [wizs] 问题╳问题
时间Tue Mar 29 12:25:47 2011
※ 引述《laechan (小太保)》之铭言:
: 可以模拟成 godware 的方式(不过不建议).
如果是我的话, 因为字串拆解挺麻烦的, 所以我会用偷懒的方式..
int call_xxx(string str)
{
string tmp,s1,s2;
object tar,ob;
// 例1: call xxx->ooo()
// 例2: call xxx->set("leve",100)
// 例3: call xxx->add("guild/slasher",20)
// . ....
sscanf(str,"%s->%s",s1,s2);
if(!tar=present(s1,environment(this_player())))
if(!tar=find_player(s1))
if(!tar=find_living(s1))
if(!tar=find_object_or_load(s1))
return notify_fail("call: 没有 "+s1+" 这个目标喔.\n");
tmp="inherit ROOM;\n\n"+
"void call_xxx(string s1,string s2)\n"+
"{\n"+
" object tar;\n"+@LONG
if(!tar=present(s1,environment(this_player())))
if(!tar=find_player(s1))
if(!tar=find_living(s1))
tar=find_object_or_load(s1);
LONG
+
" tar->"+s2+";\n"+
"}\n";
write_file("/open/tmp_call_room.c",tmp);
"/cmds/file/_update"->cmd_update("/open/tmp_call_room");
if(!catch(ob=find_object_or_load("/open/tmp_call_room")))
{
rm("/open/tmp_call_room.c");
write("You Let "+str+"...");
if(!catch(ob->call_xxx(s1,s2)))
write(str+" Success!\n");
else
write(str+" Fail!\n");
}
return 1;
}
这是 godware 架构的一部份写法.
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: laechan 来自: 115.80.128.16 (03/29 12:26)