[wizs] /d/spell/magic-cycle.c

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間14年前 (2011/06/07 11:47), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
inherit __DIR__+"spell_d.c"; int start_skill(object tar,int lv) { int sk,i,j,k; object env,ob,ppl; string skname,obname,pplname,t1; mixed keys_pass; mapping pass; ppl=this_player(); if(lv>10) { write("魔法陣目前還沒開發到 lv 10 以上.\n"); return 0; } if(lv==10) { // 限定需在進階轉職處 & 滿足二轉條件才能施展 return 0; } write("\n"); if(userp(ppl) ) { if((string)ppl->query("pri_guild")!="mage") { write("你的主公會不是法師, 無法使用這項專業技能.\n"); return 0; } if((int)ppl->query("guild/mage")<36) { write("你的魔法公會級數至少要在 36 以上, 才能使用這項技能.\n"); return 0; } if(ppl->query("record_data/magiccycle_time")>time()) { write("你在不久前才張設一道魔法陣出來喔! 你要再過一會兒才能再張設喔!\n"); return 0; } if(!ppl->query_temp("magic heart")) { write("張設魔法陣之前, 你必須先使用"+skill_name("magic heart")+"(Magic heart)喔!\n"); return 0; } sk=ppl->query("skill/magic heart"); sk=sk/100; if(lv>sk) { write("你想使用 "+lv+" 級的魔法陣, 魔力釋放術(Magic heart)要有"+(lv*100)+"喔!\n"); return 0; } // 設定間隔, 這裡要依據一些數值去做計算 this_player()->set("record_data/magiccycle_time",間隔時間+time()); } env=environment(this_player()); if(env) show(this_player(),this_object(), "敘述也依該法師目前的能力來決定"); t=依照該法師的能力來決定出召喚時間; // t小於 1 秒時直接 call if(t<1) call_other(this_object(),"clone_magic_cycle",this_player(),env,lv); else { // t 秒內該法師無法施展其它特殊攻擊 this_player()->add_temp("casting",t); call_out("clone_magic_cycle",t,this_player(),env,lv); } return 1; } int clone_magic_cycle(object ppl,object env,int lv) { if(!ppl || !env) return 1; if(environment(ppl)!=env) return 1; // 玩家已離開該房間 依照 lv 的不同 { 呼叫出不同的魔法陣->move(env); 對魔法陣進行各項設定; 魔法陣->set_heart_beat(1); // 啟動魔法陣心跳(時間到魔法陣自動消失) show(ppl,ppl,"執行不同的魔法陣展開訊息.\n"+ "執行不同的魔法陣說明.\n"); } return 1; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: laechan 來自: 115.83.14.146 (06/07 15:07)
文章代碼(AID): #1DxPy-VM (mud_sanc)
文章代碼(AID): #1DxPy-VM (mud_sanc)