[wizs] 問題請教(二十三)
看板mud_sanc (Sanctuary - 聖殿)作者amosdeus (幽素)時間14年前 (2011/06/12 00:57)推噓0(0推 0噓 2→)留言2則, 2人參與討論串1/2 (看更多)
//劍陣的型態:
//春之迷濛 - 二十四節氣普通招式為讀取temp的ats,次數2~3攻擊力減弱,延遲時間略長。
//夏之驕蹇 - 二十四節氣普通招式為單體,次數1攻擊力增強,延遲時間不變。
//秋之纍綬 - 二十四節氣普通招式為單體,次數2~3攻擊力略強,延遲時間略長。
//冬之離葬 - 二十四節氣普通招式為讀取temp的ats,次數1攻擊力不變,延遲時間略短。
//劍陣的加成:
//增加劍法類的攻擊威力。
//從slash的指令或是劍法的技能檔增加讀取到劍陣便增加攻擊力
inherit OBJECT;
static int i = 0,val = 0;
void create()
{
seteuid(getuid(this_object()));
set("id",({"season range","房間法術"}));
set("short",HIW"四時劍陣"NOR"(Season Range)");
set("name","四時劍陣");
set("long",@LONG
一座劍陣
LONG
);
set("mass",17850404);
set("unit","座");
set("no_break",99);
set("prevent_get",1);
set("prevent_sac",1);
}
int room_check_poison(); // 事先宣告
void init()
{
object ppl = this_player();
int num,num1,num2;
string PPL_NAME,PPL_CHI_NAME;
if(val==0)
{
PPL_NAME = ppl -> query("name");
PPL_CHI_NAME = ppl -> query("chi_name");
set("id",({PPL_NAME+"'s season range"
,"season range","房間法術"}));
set("short",PPL_CHI_NAME+HIW"所排設的四時劍陣"NOR
"("+PPL_NAME+"'s Season Range)");
num1 = (int)ppl->query("skill/slasher heart"); //劍士之心作為時間
num1 = num1 / 500;
num2 = (int)ppl->query("skill/season range"); //劍陣作為時間
num2 = num2 / 100;
num = num1 * num2;
set("S_R/time",num); //持續時間設定
set("name",PPL_NAME); //MOB掉落物品認主
set("target_name",PPL_NAME); //解除確定
val = 1;
}
add_action("disband","disband"); //解除指令
add_action("range_gift","gift"); //招式指令
if(query("callouting")) return ;
set("callouting",1);
room_check_poison();
return ;
}
int room_check_poison()
{
int i,r,j,l,time;
object ppl,ob=this_object(),room;
mixed usr;
ppl = this_player();
room = environment(ob);
usr = all_inventory(room);
//usr = ppl->query_temp("ats");
r = random(3);
time = query("S_R/time"); //移除計時
if(!ob) time = time / 2; //使用者不在時間減少
if( time < 1)
{
write(CYN"運轉四時劍陣的已經能源消耗完畢,劍陣一並崩然潰散。\n"NOR);
remove();
}
else
set("S_R/time",time-1);
foreach(ob in usr)
{
if(userp(ob))
{
if(!ob) continue;
if(ob->query("no_attack")) continue;
if(!ob->query("ats")) continue;
switch(r)
{
case 0:
ppl->shut(HIM"\n\n$N【春之迷濛】->$O"NOR,11111,11111,({"dam","physics",2}),ob);
break;
case 1:
ppl->shut(HIM"\n\n$N【夏之驕蹇】->$O"NOR,11111,11111,({"dam","physics",2}),ob);
break;
case 2:
ppl->shut(HIM"\n\n$N【秋之纍綬】->$O"NOR,11111,11111,({"dam","physics",2}),ob);
break;
case 3:
ppl->shut(HIM"\n\n$N【冬之離葬】->$O"NOR,11111,11111,({"dam","physics",2}),ob);
break;
}
}
else
i++;
}
if(i==sizeof(usr))
{
delete("callouting");
remove_call_out("room_check_poison");
return 1;
}
call_out("room_check_poison",2); //兩回合攻擊一次
return 1;
}
int disband(string str)
{
object ppl = this_player();
if(!str || str == "" ) return notify_fail("什麼?\n"NOR);
if(str!="range") return notify_fail("你是要解除劍陣嗎?(disband range)\n"NOR);
if((string)ppl->query("name")!=query("name"))
return notify_fail("你並不能控制這座劍陣。\n"NOR);
command("drop all"); //drop沒反應 要改別的方式
write("你解除四時劍陣了.\n");
remove();
return 1;
}
問題一:
請問要怎樣讓 劍陣 在每一次 call_out("room_check_poison",2);
都能讀取到 使用者 正在攻擊的敵人 ppl->query_temp("ats");
讓 ppl->shut(HIM"\n\n$N【春之迷濛】->$O"................
能夠使用;
或者是 讓 劍陣 讀取到 使用者 的攻擊敵人參數
然後再用直接扣血的方式(但是要做抗性判斷,跟屬性閃避的判斷)
還要考慮玩家先布下劍陣時在進行戰鬥。
問題二:
//增加劍法類的攻擊威力。
//從slash的指令或是劍法的技能檔增加讀取到劍陣便增加攻擊力
slash的檔案可以在哪裡看到,另一個構思中的技能:飛劍 也用得到
飛劍的攻擊與數量:
一:
只招換出一隻 飛劍 增加攻擊次數一
比如 "四時劍法" 攻擊次數為四,在讀取到飛劍參數後攻擊加一,變
成攻擊次數為五。
二:
可由 "劍士之心" 或是 "氣勁(air)" 除於三千最多能,同時有三把飛
劍(這部分由撰寫者決定)。
這裡的原則是一的情況下可以達到原攻擊的八九成,二的情況下飛劍隻
數多攻擊力就要下降。
直接從指令作修改比較快,修改劍類技能就比較麻煩也占記憶體。
以上 謝謝
Plain@Sanc
--
咽咽學楚吟 病骨傷幽素 秋姿白髮生 木葉啼風雨
燈青蘭膏歇 落照飛蛾舞 古壁生凝塵 羇魂夢中語
【 傷心行 李賀 】
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.162.109.181
※ 編輯: amosdeus 來自: 218.162.109.181 (06/12 01:32)
→
06/12 06:38, , 1F
06/12 06:38, 1F
→
06/13 20:27, , 2F
06/13 20:27, 2F
討論串 (同標題文章)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
15
19