作者doall (狂人)
看板mud_sanc
标题Re: [问题] shut用法
时间Fri Dec 14 00:28:48 2007
#include "../ei.h";
inherit OBJECT;
void create(){
seteuid(getuid(this_object()));
set("short",RED"生锈的"HIW"小李飞刀"NOR"(flying knife)");
set("long",@LONG
李寻欢遗落的飞刀,只不过多年未使用,已经生锈了。
因为李寻欢总是飞刀掷不完,因此小李飞刀并没有用完的一天。
可以投掷伤敌(toss)。
LONG);
set("id",({"knife","flying knife"}) );
set("mass",100);
set("save",100);
set("unit","把");
}
void init(){
if(this_player()->query("pp") < 10000){
write("你并没有足够的内力驾驭这项武器。\n");
return;
}
add_action("cmd_toss","toss");
}
int cmd_toss(){
int damage,pp_using,pp_of_player,i;
string str_damage,*attr,*str_attr;
object target,env,player;
player = this_player();
env = environment(player);
if (player->query_temp(HIP"肢体末梢麻痹"NOR)){
write(HIM"不行!你的食指和中指还是毫无知觉!\n"NOR);
}
else if (player->query_current_attacker()){
attr = ({"fire","wind","ice","thunder"});
str_attr = ({HIW+"刀尖上忽然冒出了火焰!"+NOR,HIC+"你感受到飞刀的刀刃有
着螺旋的气流缠绕"+NOR,HIW+"刀刃上结了一层薄薄的寒霜"+NOR,HIB+"飞刀劈啪作响,并
且闪着雷光"+NOR});
i = random(4);
target = player->query_current_attacker();
pp_of_player = player->query("pp");
damage = 10000 + random(39)*10000 + random(10)*1000 +random(11)*100;
pp_using = (damage/400000)*(pp_of_player/5);//依照威力,最多将使用玩家
20%的pp。
player->add("pp",-pp_using);
str_damage = "$N"+HIW+"大喝一声:"+HIW+"小李飞刀,例不虚发!\n";
str_damage = str_damage + HIC+" $N右手食指与中指夹住"+NOR+RED+"生锈的
"+HIW+"小李飞刀"+HIC+"全身内力不由自主的涌进飞刀之中\n";
str_damage = str_damage + " "+str_attr[i]+"\n";
str_damage = str_damage+ HIR+"\n 飞刀掷出!正中$O!!
!\n"NOR;
player->shut(str_damage,damage,9999,({"attr[i]","stick",3}),target,1);
> 主要在这边!shut函数似乎只会将讯息传给target,而不会传给player
> 不知是否因为我的写法有错
> 好累...今天为这东西写了好久,查了一堆efuns
tell_object(player,"你的手指因为用力过度,无力再夹住飞刀了。\n");
player->temp_several_same_mod(({"stat/dex","stat/str"}),0,HIP"肢体末梢麻
痹"NOR,2);
}
else{
tell_object(player,"你不在战斗中,因此无法使用小李飞刀喔\n");
}
return 1;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.8.173.109
※ 编辑: doall 来自: 124.8.173.109 (12/14 00:29)
1F:→ doall:我懂了....shut是设计给mob用的= =难怪不会传给player= = 12/14 00:35
2F:→ doall:是否可请小宝修改这个函数使叙述内容也会传给player 12/14 00:38
3F:→ doall:或者另作函数,但叙述内容只会传给player 12/14 00:38