[摳頂] 指令 enchant

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間13年前 (2012/08/09 08:51), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/2 (看更多)
底下是原本的指令檔,今天會依這個版本修改成新版,其中 效果簡稱的部份各位若有更合適的名稱可以提供。 ================================================================ // Laechan@Sanc modify in 2012/08/09 for 新版魔法武器 // 魔法武器專用指令 enchant // Belldandy@Sanc add in 2011/05/31 inherit DAEMON; int cmd_wiz_enchant(string str,object me) { string skname,tarname; int esk,sk,t,n; object tar,wp; if(!str || str=="") return notify_fail(@LONG enchant 指令說明: ===================================================== enchant [效果簡稱] [施放對象] 例如: enchant hr man 1.你的魔法武器技能值、以及上述法術技能值,至少 都需要有 100 才可施放. 2.施放對象必須為玩家或自己,且必須有拿武器。 3.效果疊加限制請參照 help skill enchant 說明。 4.簡稱及效果對照 ad 增加攻擊傷害力 ah 增加攻擊命中力 fi 攻擊時增加熟練度 fp 攻擊時增加經驗值及學點 hr 擊中時 hp 回復 hv 普攻/en 額外增加連擊數 km 殺死怪物時較多金錢 kr 殺死怪物時 pp 回復 pa 提升武器格擋能力 pd 普攻/en 節省 pp 消耗 z1 攻擊中機率自動施展 hands 類法術(與靈力武器併效) ===================================================== Laechan@Sanc 2012/08/09 LONG ); esk=me->query("skill/enchant"); if(esk<100) return notify_fail("enchant: 你的魔法武器技能值至少需要 100 才能施放喔.\n"); if(me->query("sp")<esk) return notify_fail("enchant: 你的 sp 剩餘量不足 "+esk+" 了喔.\n"); //if(me->query_temp("casting")>0) // 改為獨立延遲,不再共用 casting t=time(); if(me->query_temp("time_record/enchant_times")>t) return notify_fail("你以為你是莉娜因巴斯, 可以連續瘋狂施法阿?\n"); if(sscanf(str,"%s %s",skname,tarname)==2); else skname=str; if(!tarname || tarname=="") tarname=me->query("name"); if(!tar=find_player(tarname)) return notify_fail("enchant: 沒有這個玩家喔.\n"); if(wizardp(tar) && !wizardp(me)) return notify_fail("enchant: 沒有這個玩家喔.\n"); if(!userp(tar)) return notify_fail("enchant: "+tarname+" 必須是玩家喔.\n"); if(environment(tar)!=environment(me)) return notify_fail("enchant: 這裡沒有 "+tarname+" 這個玩家喔.\n"); if(!wp=tar->query_wp()) return notify_fail("enchant: "+tarname+" 必須有裝備[第一武器]喔.\n"); switch(skname) { case "ad": // 增加攻擊傷害力 break; case "ah": // 增加攻擊命中力 break; case "fi": // 攻擊時增加熟練度 break; case "fp": // 攻擊時增加經驗值及學點 break; case "hr": // 擊中時 hp 回復 break; case "hv": // 普攻/en 額外增加連擊數 break; case "km": // 殺死怪物時較多金錢 break; case "kr": // 殺死怪物時 pp 回復 break; case "pa": // 提升武器格擋能力 break; case "pd": // 普攻/en 節省 pp 消耗 break; case "z1": // 攻擊中機率自動施展 hands 類法術(與靈力武器併效) if(me->query("skill/spiriten")<100) return notify_fail("enchant: 要使用這項效果,你的靈力武器"+ "至少要學有 100 喔.\n"); break; default: return notify_fail("enchant: 沒有 "+skname+" 這個效果簡稱喔.\n"); } // 將過期的去掉 wp->check_enchant(t); e1=(mapping)wp->enchant(); e2=(mapping)wp->enchant_times(); n=(int)wp->sizeof_enchant(); if(n>0 && (string)me->query("pri_guild")!="mage") return notify_fail("enchant: 法師不是你的主職,你只能為武器"+ "附魔一層效果喔。\n"); if(n>1 && !me->query("adv_guild")) return notify_fail("enchant: 你尚未轉職為進階法師,你只能為武器"+ "附魔兩層效果喔。\n"); if(n>2 && (string)me->query("adv_guild")!="magemaster") return notify_fail("enchant: 你不是大魔導士,你只能為武器"+ "附魔三層效果喔。\n"); if(n>3) return notify_fail("enchant: 你最多只能為武器附魔四層效果喔。\n"); sk=(int)wp->enchant(skname); // 當武器已經有該效果時且未過時 if(sk>0) { if(sk<esk) return notify_fail("enchant: "+wp->query("short")+"已經有 '"+skname+ "' 這個效果存在了,\n"+ " 你無法用比較弱的效果值蓋掉它喔.\n"+ "(若要蓋掉的話可以先把該武器 remove).\n"); } // 設值進去 wp->set_enchant(skname,esk,t); // 預扣 sp 值 me->add("sp",-esk); // 加延遲 3 秒 me->set_temp("time_record/enchant_times",3+t); switch(random(3)) { case 0: str="$N緩緩唸道: "HIG"萬物之根源,萬能之力的馬納啊!"+ "化為打碎黑暗的力量吧!"NOR"\n"; break; case 1: str="$N緩緩唸道: "HIG"魔法根源,奇蹟之泉的馬納啊!"+ "化為打碎黑暗的力量吧!"NOR"\n"; break; case 2: str="$N緩緩唸道: "HIG"萬能的馬納啊!化為打碎黑暗的力量吧!"NOR"\n"; break; } str+=HIM"$O"HIM"所拿的"+wp->query("short")+HIM"發出了魔法的光芒!"NOR"\n"; show(me,tar,str); return notify_fail(""); } -- ※ 發信站: 批踢踢實業坊(ptt.cc)

08/09 14:36, , 1F
好強大
08/09 14:36, 1F

08/09 14:51, , 2F
嗯?
08/09 14:51, 2F
※ 編輯: laechan 來自: 210.61.157.53 (08/09 15:13)

08/09 15:14, , 3F
疑似寫好了..總之還是先 try try
08/09 15:14, 3F
文章代碼(AID): #1G8mcKGJ (mud_sanc)
討論串 (同標題文章)
文章代碼(AID): #1G8mcKGJ (mud_sanc)