[摳頂] 指令 _toss.c
明天起理論上有空,在公司會挪一部份時間寫新的工具程式,
這個不會佔用太多時間,我還在規劃它的 code 型式。
大部份時間應該都會拿來 coding 聖殿的東西,這個指令我希
望最慢星期二能完成,屆時跟 giant-mood(始源巨人之心)以及
始源巨人一起開放。始源巨人目前暫定會放在秘境第200格,我
會做一個基本的限制:玩家「身上」需帶有石精戒及石神戒,
才能跟始源巨人學 giant-mood。不一定要裝備它們。
======================================================
// toss, 石化人變身後專用指令
// belldandy@sanc 2011/06/01
// 設定集:
// toss [目標] 或 toss [目標] to [方向]
// 1.對一般怪物, 丟到半空的期間其閃格擋通通無效(特攻必中狀態)
// 被丟到半空的怪無法攻擊, 用 tossing 參數判斷
// 2.對群體怪物會分裂成 2~數 隻.
// toss 可以抓空飄的怪物
// toss 可以把任何騎在馬上的生物抓下來(與馬分離)
// toss 可以抓到幻影中的實體
#define TOSS_TIMES 5
inherit DAEMON;
int help()
{
write(@LONG
toss(抓拋)指令說明:
======================================================
toss 目標
將戰鬥中的目標扔向高空
或將空飄中、騎馬中的目標抓摔在地上
toss 目標 to 方向
將[隊友]扔向
這個指令只有石化人(stoneman)可以使用。
使用前必須先變成巨大化狀態(heart giant-mood)。
======================================================
Laechan@Sanc 2012/09/03
LONG
);
return 1;
}
int cmd_toss(string str,object me)
{
object tar,env;
string tarname,exits;
int t;
t=time();
if((string)me->query("race")!="stoneman" ||
(int)me->query_temp("giant_mood")<t)
return notify_fail("toss: 只有巨大化的石化人才能使用這個指令喔.\n");
if(!str || str=="")
{
help();
return notify_fail("");
}
// toss 需設定施展時間間隔
if(!env=environment(me))
return notify_fail("toss: 這個指令無法在虛無空間使用喔.\n");
if(me->query_temp("time_record/toss_times")>t)
return notify_fail("toss: 你要等一下才可以再 toss 喔!!\n");
// 不接方向的情況
if(sscanf(str,"%s to %s",tarname,exits)==2)
{
if(!env->query("exits/"+exits) && !env->query("hide_exits/"+exits))
return notify_fail("toss: 這裡沒有往 "+exits+" 的方向喔.\n");
}
else
{
str=tarname;
exits="";
}
if(tar=present(str,env))
{
if(wizardp(tar) && !wizardp(me))
return notify_fail("toss: 這裡沒有 "+tarname+" 這個對象可以 toss 喔.\n");
if(!living(tar))
return notify_fail("toss: 你不能抓拋它喔.\n");
// 以後 toss 玩家的話就是把玩家抓到身上 or 拋往其它房間
if(userp(tar))
return notify_fail("toss: 你只能抓非玩家的生物喔.\n");
// 允許抓 boss
// if(tar->query("BOSS"))
// return notify_fail("toss: 你不能抓 BOSS 類的怪物喔.\n");
if(tar->query("tossing")>t)
return notify_fail("toss: 你現在不能抓"+tar->query("short")+"喔.\n");
tar->set("tossing",t+TOSS_TIMES);
me->set_temp("time_record/toss_times",t+TOSS_TIMES);
// 拋往空中
if(exits=="")
{
show(me,tar,"\n"HIW"$N"HIW"一把抓住了"HIW"$O"HIW",隨手扔到了半空!\n"+
}
return notify_fail("toss: 這裡沒有 "+tarname+" 這個對象可以 toss 喔.\n");
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 223.141.14.91
→
09/03 00:33, , 1F
09/03 00:33, 1F
→
09/03 00:33, , 2F
09/03 00:33, 2F
※ 編輯: laechan 來自: 210.61.157.53 (09/03 16:51)
※ 編輯: laechan 來自: 210.61.157.53 (09/05 13:13)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章