[wizs] show 函數

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間13年前 (2012/08/29 12:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
void show(object me,object tar,string msg,int dam) { string wp_name2,wp_name,tmp,tname,mname,con,s1,s2; mixed obs; int u,t; // ,dam2; object wp,env; // ,env2; env=environment(me); if(env!=environment(tar)) return ; // 當 me 是玩家時 u = 1 u=userp(me); t=userp(tar); if(u && t) dam=dam/15; if(strsrch(msg,"$W")>0) { if(wp=(object)me->query("weapon1")) { // belldandy@sanc add in 2011/05/31 // 增加 enchant 判斷 if(me->query_temp("heal_time/enchant_weapon1")>0) { msg=substr(msg,"$W",NOR+MAG"附加魔力的"NOR+wp->query("name")+NOR); dam=dam+100*(int)me->query_temp("heal_time/enchant_weapon1"); } else msg=substr(msg,"$W",""+wp->query("name")+NOR); } else msg=substr(msg,"$W", "拳腳"); } tname=tar->query("chi_name"); mname=me->query("chi_name"); // tmp 的來源就是 msg tmp=msg+"\n"; if(me->query_temp("illusion spell")>0) { wp_name=substr(msg,"$N","$N的幻影"); tmp+=wp_name+"\n"; } // 顯示給房間除了自己及對象以外的人看 // 這時假若自己有幻影術,訊息增量 s2=substr(tmp,"$N",mname); // 將 $N 的substr 從上段移到這裡 s2=substr(s2,"$O",tname); obs=all_inventory(env); foreach(wp in obs) if(wp && wp!=me && wp!=tar && !wp->query("record_data/no_environment_msg")) tell_object(wp,s2); // me: belldandy, tar: windman // s1: // [9 連擊] 妳用砂鍋大的拳頭擊向像風一樣的男子, (3198) // 「像風一樣的男子受了點傷,但沒大礙。」 // s2: // [9 連擊] 蓓兒丹娣用砂鍋大的拳頭擊向你, (3198) // 「你受了點傷,但沒大礙。」 // belldandy 看到的 // 當 u=1 = me是玩家時 if(u) { // s1 就是給 me 看的訊息, 來源為 tmp s1=substr(tmp,"$N",me->query("sex_name")); s1=substr(s1,"$O",tname); wp_name=tname; } // windman 看到的 if(t && tar!=me) { s2=substr(tmp,"$N",mname); s2=substr(s2,"$O",tar->query("sex_name")); wp_name2=tar->query("sex_name"); } // 當 dam<1 時主要 show 訊息的部份在這裡, 而且到這裡就中止 if(dam<1) { if(u) tell_object(me,s1); if(t && tar!=me) tell_object(tar,s2); return ; } // 有 dam 時才執行傷害 tar->receive_damage(dam); // for 幻影術部份實裝底下程式段 by Laechan@Sanc 2010/03/22 if(me && me->query_temp("illusion spell")>0 && tar) { dam=(dam/100)*((int)me->query("skill/illusion spell")/100); tar->receive_damage(dam); } if(tar) { con=Condit(tar,dam); if(u) tell_object(me,s1+"「"HIM+wp_name+HIM+con+NOR"」\n"); //C no colo if(t && tar!=me) tell_object(tar,s2+"「"HIR+wp_name2+con+NOR"」\n"); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.61.157.53 ※ 編輯: laechan 來自: 210.61.157.53 (08/29 12:49)
文章代碼(AID): #1GFPjE5W (mud_sanc)
文章代碼(AID): #1GFPjE5W (mud_sanc)