作者laechan (小太保)
看板mud_sanc
标题Re: [wizs] 问题(n)
时间Thu Oct 7 10:47:09 2010
※ 引述《justinj (闇冥)》之铭言:
: 因为题目不知道要定什麽....avert
: 问题1.看看能不能做到..虽然我觉得不行
: 就是控制某一个档案中的一个变数值...
: 例如a.c
: inherit xxxxx
: int r=random(xxx);
: void create()
: .
: .
: .
: 能否控制r的值...
r 的值在该物件被 update 的瞬间即已决定。
: 问题2.add_action("xxx","yyy");
: yyy bbb的bbb要如何像set("yyy",bbb)这种直接设定型态?
: 我是有想到一招..就是像写程式一样写成另一个档案再去读取
: (反正只想要用在巫师的变数设定上)
: ----------------------------------------------
: 其它问题
假设 add_action("test_xxx","test");
问题:能否 int test_xxx(mixed strs) ?
答案是可以,但是不管你下 test 什麽, strs 都会被强制
设定为 字串,如底下...
test ({a,b})
"({a,b})
"
但是你可以这样做,在目标主体物件上这样写..
#include <daemons.h>
inherit REF_D;
然後把上面的函数内容改写为底下...
int test_xxx(string str)
{
mixed strs;
strs=resolv_str(resolv_ref(str));
if(stringp(strs))
{
write("你输入的东西是字串.\n");
set("xx",str);
}
else if(mapp(strs))
{
write("你输入的东西是 mapping.\n");
set("xx",strs);
}
else if(intp(strs))
{
write("你输入的东西是整数.\n");
set("xx",atoi(str));
}
else
{
write("你输入的东西是阵列.\n");
set("xx",strs);
}
resolv_str 跟 resolv_ref 是 REF_D 这东西支援的,所以要
使用它就必须先 inherit REF_D 而要直接使用 REF_D 这个变
数就必须include <daemons.h>
: 1.31那个时间停了要怎麽处理(只要跟时间有关的设定全部都不能用)
: 像要用call_out,time(),casting,debug 1...等等的
shutdown 即可。
另外它会停掉有可能出在 call_out 被占用。
: 2.feather fist还是有bug..会遇到heart_beat变成0的..(应该没错吧)
: 原因未知..不过我在猜可能是在转换时刚好攻击怪物
: 像
: A->怪B,要打的过程中怪B突然变 怪B-.....
: 另一种情况是 怪B-死了...所以转回怪B死了...
: 在转回的过程中被玩家打的话会变成什麽样(应该是说算是谁打死的)
: 我想die里面如果有this_player()的话就不确定谁是谁了
: (有可能变成0?..我猜的).....
: 不过以後应该会有让玩家(怪物)变heart_beat(0)的吧...
: 除了因为程式的问题而跑不动的情况产生的bug外...
: 其它的bug应该都是心跳停了的情况.....
: 但这种情况如果遇到了[喘一口气(xxx)]这种情形应该就动不了
: 因为这种状态下所有指令无效..
嗯,我再把上述的情况加入判断。
: 所以除了只能靠巫师,及quit外...看看有没有其它的解法
: 解法目前想到2个..
: 第一个是改喘气那边可以按beat执行指令
: 第二个是给一个道具(类似自杀药水)..但是给别人放的..
: 放完後的作用是全格的玩家会作heart_beat(1)
: 且送回recall处(ppl->die()或move_to都可以..)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 115.83.155.96