作者doall (狂人)
看板mud_sanc
标题Re: [问题] 一些函数用法的问题。
时间Thu Dec 20 23:41:12 2007
我尝试想用heart_beat做出会在战斗中自己攻击的eq
但是...似乎没有出现我要的效果
不知道是不是我写错,或者在wear之後eq的heart beat会消失?
以下附上原始码
inherit ARMOR;
void create()
{
seteuid(getuid(this_object()));
set("id",({"deep lake gloves","gloves"}));
set("short",GRN"深潭"HIP"手套"NOR"(deep lake gloves)");
set("long",@LONG
碧潭镇中被誉为传奇的手套。
LONG
);
set("mass",100);
set("value",5000);
set("type","gloves");
set("hide",1);
set("no_break",95);
set("effect/stat-str",5);
set("effect/stat-air",5);
set("effect/stat-mag",-30);
set("sdata",({"names"}));
set("level",140);
set("armor",100);
set_heart_beat(1);
}
int wear_func()
{
if((string)this_player()->query("name")!=query("names"))
{
write(this_object()->query("short")+"只有 "+query("names")+" 才能穿戴喔
!\n");
return 0;
}
write(HIW"你穿上"+query("short")+"\n"NOR);
return 1;
}
void attacking()
{
object player,target;
int i,att_times,damage;
string *att_str;
att_str = ({
HIP+"\t咻~伴随一声巨大的破空声,只见眼前一只银色冰龙向$O飞窜而去
!\n"+NOR,
HIW+"\t$N双手各凝出两枚大冰球,向$O砸去!\n"+NOR,
HIC+"\t数枚冰锥忽地向$O飞去!\n"+NOR,
});
i = random(sizeof(att_str));
att_times = pow(2,i);
if(i == 2) att_times = att_times+random(10);
damage = (player->query("mag"))*100/att_times + random(10000);
player = environment(this_object());
target = player->query_current_attacker();
if(i == 2) tell_room(environment(player), HIC"气温骤降!
"+player->query("chi_name")+
"周身水气凝结成数枚指头大小的
冰锥!\n"NOR);
player->shut(att_str[i],damage,8000-300*att_times,({"ice","magic",3}),target,att_times);
}
int sec = 0;
int heart_beat()
{
player = environment(this_object());
if(sec > 20){
sec = 0;
write("$N手上的深潭手套散发着强烈的深蓝色光芒!\n\n");
if (random(2) == 1 && player -> query_current_attacker())
attacking();
}
return 1;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.8.142.53
1F:→ doall:以上code的发动判定尚未完善 12/20 23:46