Re: [問題] shut用法
#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)
→
12/14 00:35, , 1F
12/14 00:35, 1F
→
12/14 00:38, , 2F
12/14 00:38, 2F
→
12/14 00:38, , 3F
12/14 00:38, 3F
討論串 (同標題文章)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
15
26