mud_sanc 板


LINE

不只 wiz,玩家也可以参考。 // Norr 新增防止用归还带新手出村 in 2012/04/05 // Laechan@Sanc re-write 技能档 in 2010/05/09 // 归还魔法(return spell) // Laechan add in 2000.05.17 for 最终版牧师 // Norr 新增限制 in 2010.04.26 #define PARTY_D "/adm/daemons/party_d.c" #define RETURN_TIMES 10 #define NEXT_RETURN_TIMES 30 // 减半施展成功後的再使用时间 #define FAIL_RETURN_TIMES 5 #define CLERICAL_GUILD "/d/map/isalon/clerical-guild" inherit "/d/spell/spell_d.c"; int start_skill(object tar,int lv) { object ppl; string str,skname; int dt,tt; skname=skill_name("return spell"); ppl=this_player(); tt=time(); if(ppl->query_temp("time_record/returning")>tt) { write("你现在还不能再次使用归还术、你必须等一下喔。\n"); return 0; } /* if((string)ppl->query("pri_guild")!="clerical") { write("只有正职的牧师,才有使用"+skname+"唷!\n"); return 0; } */ if(!ppl->query_temp("clerical heart")) { write("施展"+skname+"之前必须先 heart clerical 喔。\n"); return 0; } if(!ppl->query_temp("heal_time/pray")) { write("施展"+skname+"之前必须先 cast pray 喔。\n"); return 0; } // 状况 1 : 单人无组队及跟随队伍的情况,「单人归还牧师公会」 // 成功率与房间设定几级以上才可归还有关 // 如房间 set("no_return",10), 则只有 11 以上(含)才能成功 // Lv max 归还术完全可成功 if(!ppl->query_temp("leader")) { str=ppl->query("adv_guild"); switch(str) { case "maily": show(ppl,tar,"$N缓缓念着:"HIW"藉助麦理之力,让我的身体、我的心,"+ "幻化成风吧!"NOR); break; case "marfa": show(ppl,tar,HIW"$N"HIW"缓缓地祈祷着:大地之母玛法呀,以您伟大的神力,"+ "将我带至远方吧!"NOR); break; case "faris": show(ppl,tar,"$N缓缓念着:"HIW"至高神圣之神法理斯呀,回应我的祈祷,"+ "将我带离此地吧!"NOR); break; default: show(ppl,tar,"$N缓缓念着:"HIW"藉助伟大的神力,让我的身体、我的心,"+ "幻化成风吧!"NOR); break; } show(ppl,tar,HIW"\n$N的身体泛起一阵白色的柔和光芒..."NOR"\n"); dt=RETURN_TIMES-((int)ppl->query("skill/clerical heart")/990); ppl->set_temp("cast_return_location",environment(ppl)); if(dt<1) call_out("start_return",1,ppl,lv,1); else { ppl->set_temp("time_record/returning",tt+dt); call_out("start_return",dt,ppl,lv,1); } return 1; } // 状况 2 : 牧师自组队、或跟随组队的情况 show(ppl,tar,"$N缓缓念着:"HIW"神圣的光芒啊..回应我的祈祷,"+ "带领吾人离开此地吧!\n\n"+ "一道柔和的白色光柱洒落此地,准备带走$N们..."NOR"\n"); dt=RETURN_TIMES*2-((int)ppl->query("skill/clerical heart")/990)- ((int)ppl->query("skill/bless")/990); ppl->set_temp("cast_return_location",environment(ppl)); if(dt<5) dt=5; ppl->set_temp("time_record/returning",tt+dt); call_out("start_return",dt,ppl,lv,2); return 1; } int start_effect(object target,object ppl,int lv,int skill,int times) { return 1; } int start_return(object ppl,int lv,int check) { object env,leader,env2,ob; string msg; int cost,t,p,num; mixed party; if(!ppl) return 1; if(!interactive(ppl)) return 1; ppl->delete_temp("time_record/returning"); env=environment(ppl); if(!env || (env && (object)ppl->query_temp("cast_return_location")!=env)) { write(HIR"本次归还失败,因为天神在你当初施展归还术的地方找不到你唷。\n"NOR); return 1; } if(living(env)) { write(HIR"在生物的体内是不能施展归还术的喔.\n"); return 1; } if(lv<30 && lv<=(int)env->query("no_return")) { t=(int)env->query("no_return"); msg=HIB"这个地方有着"+chinese_number(t)+"重的魔法力场,"; switch(ppl->query("adv_guild")) { case "maily": show(ppl,ppl,msg+"麦理无法听到$N的归还祈求。"NOR"\n"); break; case "marfa": show(ppl,ppl,msg+"玛法无法听到$N的归还祈求。"NOR"\n"); break; case "faris": show(ppl,ppl,msg+"法理斯无法听到$N的归还祈求。"NOR"\n"); break; default: show(ppl,ppl,msg+"神无法听到$N的归还祈求。"NOR"\n"); break; } return 1; } cost = 5000-(int)ppl->query("skill/return spell")+lv*1000; // 耗魔量 if(cost<3000) cost = 3000; // 单人归还的情况 if(check==1) { tell_room(env,HIW+ppl->query("chi_name")+ HIW"的身体逐渐消失在光芒之中。"NOR"\n",({ppl})); ppl->move_player("/d/wiz/room/disc","SNEAK"); tell_object(ppl,HIW"你藉着归还术的力量,来到了这个地方。\n"NOR); ppl->add_3p("sp",-cost,-cost); ppl->set_temp("time_record/returning",time()+NEXT_RETURN_TIMES); return 1; } // 多人归还的情况 if(!leader=ppl->query_temp("leader")) { write("你的队伍所属的队长不见踪影,你无法在身处於队伍的情况中使用归还术。\n"+ "若你要单独使用归还术的话,请先退出队伍(party leave).\n"); return 1; } // party 包含队长自己 party=(mixed)find_object_or_load(PARTY_D)->query_members(leader); num=PARTY_D->party_number(ppl); if( num < 0 || !party) return notify_fail(HIR"你的队伍里面没有半个人唷!\n"NOR); // 先检查与该牧师同队的玩家 foreach(ob in party) if(ob && environment(ob) && environment(ob)==env) p++; if(p==1) // 代表虽然牧师跟队或自组队, 但跟牧师同房间的队员只有牧师自己 check=100; else { // 读取 leader 的 leadership 影响 if(leader) p=(int)leader->query("skill/leadership")/50; if((string)ppl->query("adv_guild")=="marfa") check=60+(lv*(int)ppl->query("skill/bless"))/7500; else if((string)ppl->query("adv_guild")!="") check=40+(lv*(int)ppl->query("skill/bless"))/7500; else { // 没有进阶的情况 bless max 5000, 5000/300 < 18 // 这时最高成功率 9900/200 + 17.x < 70%, 再藉 leader 之力 // 最高 6x + 30 < 100%, 但一般主职牧师通常 clerical heart // 都不会满, 所以成功率更低, 没有 heart clerical 更低 if(ppl->query_temp("clerical heart")) check=lv+(int)ppl->query("skill/clerical heart")/200+ (int)ppl->query("skill/bless")/250; else check=lv+(int)ppl->query("skill/bless")/250; } check=check+p; } if(check<1+random(100)) { write("你本次的归还失败了!可能你没有用力对神祈祷的缘故。\n"+ "你可以再试一次看看唷!\n"); ppl->add_3p("sp",-cost,-cost); ppl->set_temp("time_record/returning",time()+FAIL_RETURN_TIMES); return 1; } // 状况 1. leader 在此地, 与 leader 一起归还到 recall 处 if(leader && environment(leader)==env) { foreach(leader in party) { if(leader && environment(leader) && environment(leader)==env) if(!leader->query("record_data/newbie_check")) // 去除新手 { tell_object(leader,HIW"自地面出现了光之魔法阵,将你传送至远方。\n"NOR); leader->move_player("/d/wiz/room/disc","SNEAK"); tell_object(leader,"你藉着归还术的力量,来到了这个地方。\n"); } } ppl->set_temp("time_record/returning",time()+NEXT_RETURN_TIMES); return 1; } // 状况 2. leader 不在此地, 将房间所有的队员归还到队长所在之处 if(!leader || (leader && !env2=environment(leader))) { write("神找不到你的队伍所属的队长或是该队长的所在地喔。\n"); return 1; } if(env2 && living(env2)) { write("你的队长所在的地方是在生物的体内,无法用归还术进到那里喔!\n"); return 1; } if(lv<30 && lv<=(int)env2->query("no_return")) { check=(int)env2->query("no_return"); msg=leader->query("name"); msg=HIB+msg+" 所在的地方有着"+chinese_number(check)+"重的魔法力场,"; switch(ppl->query("adv_guild")) { case "maily": show(ppl,ppl,msg+"麦理无法听到$N的归还祈求。"NOR"\n"); break; case "marfa": show(ppl,ppl,msg+"玛法无法听到$N的归还祈求。"NOR"\n"); break; case "faris": show(ppl,ppl,msg+"法理斯无法听到$N的归还祈求。"NOR"\n"); break; default: show(ppl,ppl,msg+"神无法听到$N的归还祈求。"NOR"\n"); break; } return 1; } msg=base_name(env2); foreach(leader in party) { if(leader && environment(leader) && environment(leader)==env) if(!leader->query("record_data/newbie_check")) // 去除新手 { tell_object(leader,HIW"自地面出现了光之魔法阵,将你传送至远方。\n"NOR); leader->move_player(msg,"SNEAK"); tell_object(leader,"你藉着归还术的力量,来到了这个地方。\n"); } } ppl->set_temp("time_record/returning",time()+NEXT_RETURN_TIMES); return 1; } --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.157.53







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP