function sing($sn) { global $log, $msg, $now, $pls, $name, $nick, $plsinfo, $ss, $mss, $noiseinfo, $arte; global $db, $tablepre; global $att, $def; global $wep, $wepk, $weps, $wepes, $wepsk; global $rp; //$log.=$sn.'_'.$now.'_'.$pls.'_'.$name."<br>"; $r = $arte; include_once GAME_ROOT . './include/game/combat.func.php'; if ($ss >= $r) { $ss -= $r; $log .= "消耗<span class=\"yellow\">{$r}</span>点歌魂,歌唱了<span class=\"yellow\">{$noiseinfo[$sn]}</span>。<br>"; } else { $log .= "需要<span class=\"yellow\">{$r}</span>歌魂才能唱这首歌!<br>"; return; } if ($sn == "Alicemagic") { $log .= "♪你說過在哭泣之後應該可以破涕而笑♪<br>\n\t\t\t\t\t♪我們的旅行 我不會忘♪<br>\n\t\t\t\t\t♪施展魔法 為了不再失去 我不會說再見♪<br>\n\t\t\t\t\t♪再次踏出腳步之時 將在某一天到來♪<br>"; $db->query("INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('0','{$now}','{$name}','{$plsinfo}','♪你說過在哭泣之後應該可以破涕而笑♪')"); //$result = $db->query("select * from {$tablepre}players where `pls`={$pls} and hp>0 and type=0"); $db->query("UPDATE {$tablepre}players SET def=def+30 WHERE `pls` ={$pls} AND hp>0 AND type=0 "); $def += 30; addnoise($sn, '__', $now, $pls, 0, 0, $sn); addnews($now, 'song', $nick . ' ' . $name, $plsinfo[$pls], $noiseinfo[$sn]); return; } elseif ($sn == "Crow Song") { $log .= "♪从这里找一条路♪<br>\n\t\t\t\t\t♪找到逃离的生路♪<br>\n\t\t\t\t\t♪奏响激烈的摇滚♪<br>\n\t\t\t\t\t♪盯紧遥远的彼方♪<br>\n\t\t\t\t\t♪在这个连呼吸都难以为继的都市中♪<br>"; $db->query("INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('0','{$now}','{$name}','{$plsinfo}','♪从这里找一条路♪')"); //$result = $db->query("select * from {$tablepre}players where pls='$pls' and hp>0 and type=0"); $db->query("UPDATE {$tablepre}players SET att=att+30 WHERE `pls`={$pls} AND hp>0 AND type=0"); $att += 30; addnoise($sn, '__', $now, $pls, 0, 0, $sn); addnews($now, 'song', $nick . ' ' . $name, $plsinfo[$pls], $noiseinfo[$sn]); return; } elseif ($sn == "恋歌") { $log .= "♪la la la la♪<br>\n\t\t\t\t\t♪la la la la♪<br>\n\t\t\t\t\t♪la la la♪<br>\n\t\t\t\t\t♪la la la la la♪<br>\n\t\t\t\t\t♪la la la ... ...♪<br>"; $db->query("INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('0','{$now}','{$name}','{$plsinfo}','♪♪la la la la♪♪...')"); //$result = $db->query("select * from {$tablepre}players where pls='$pls' and hp>0 and type=0"); $ss += 20; $mss = $ss; $rp -= 50; addnoise($sn, '__', $now, $pls, 0, 0, $sn); addnews($now, 'song', $nick . ' ' . $name, $plsinfo[$pls], $noiseinfo[$sn]); return; } elseif ($sn == "鸡肉之歌") { $log .= "♪翼失いながらも優しくて♪<br>\n\t\t\t\t\t♪今は静かに眠るこの手の中で♪<br>\n\t\t\t\t\t♪ありがとう 感謝の言葉♪<br>\n\t\t\t\t\t♪あなたは教えてくれたよ 鶏肉♪<br>"; $db->query("INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('0','{$now}','{$name}','{$plsinfo}','♪♪la la la la♪♪...')"); //$result = $db->query("select * from {$tablepre}players where pls='$pls' and hp>0 and type=0"); $db->query("UPDATE {$tablepre}players SET wep='鸡肉' WHERE `pls` ={$pls} AND hp>0 AND type=0 "); $db->query("UPDATE {$tablepre}players SET wepk='wc' WHERE `pls` ={$pls} AND hp>0 AND type=0 "); $db->query("UPDATE {$tablepre}players SET weps=wepes=55 WHERE `pls` ={$pls} AND hp>0 AND type=0 "); $db->query("UPDATE {$tablepre}players SET wepsk='z' WHERE `pls` ={$pls} AND hp>0 AND type=0 "); addnoise($sn, '__', $now, $pls, 0, 0, $sn); addnews($now, 'song', $nick . ' ' . $name, $plsinfo[$pls], $noiseinfo[$sn]); return; } // if ($ss>=$r){ // $ss-=$r; // $log.="消耗<span class=\"yellow\">{$r}</span>点歌魂,歌唱了<span class=\"yellow\">{$noiseinfo[$sn]}</span>。<br>"; // }else{ // $log.="需要<span class=\"yellow\">{$r}</span>歌魂才能唱这首歌!<br>"; // return; // } // addnoise($sn,'__',$now,$pls,0,0,$sn); // addnews($now,'song',$name,$plsinfo[$pls],$noiseinfo[$sn]); return; }
function defend($w_wep_kind = 'N', $active = 0) { global $now, $nosta, $log, $infobbs, $infinfo, $attinfo, $skillinfo, $wepimprate, $specialrate; global $w_name, $w_lvl, $w_gd, $w_pid, $pls, $w_hp, $w_sp, $w_rage, $w_exp, $w_club, $w_att, $w_inf; global $w_wep, $w_wepk, $w_wepe, $w_weps, $w_wepsk; global $arbe, $arbsk, $arhe, $arae, $arfe, $wepk; global $w_artk, $w_arhsk, $w_arbsk, $w_arask, $w_arfsk, $w_artsk; global $hp, $rage, $lvl, $pid, $gd, $name, $inf, $att, $def, $club; global $wepsk, $arhsk, $arask, $arfsk, $artsk, $artk; global $w_type, $w_sNo, $w_killnum, $mhp; global $w_wp, $w_wk, $w_wc, $w_wg, $w_wf, $w_wd, $w_skills, $skills, $skillpoint, $w_skillpoint, $w_rp; include_once GAME_ROOT . './include/game/clubskills.func.php'; //npc_changewep(); $watt = -1; $w_wep_temp = $w_wep; $is_wpg = false; if ((strpos($w_wepk, 'G') == 1 || strpos($w_wepk, 'J') == 1) && $w_wep_kind == 'P') { $watt = round($w_wepe / 5); $is_wpg = true; } $log .= "{$w_name}使用{$w_wep}<span class=\"yellow\">{$attinfo[$w_wep_kind]}</span>你!<br>"; $w_att_key = getatkkey($w_wepsk, $w_arhsk, $w_arbsk, $w_arask, $w_arfsk, $w_artsk, $w_artk, $is_wpg); $def_key = getdefkey($wepsk, $arhsk, $arbsk, $arask, $arfsk, $artsk, $artk); $mdr = $skdr = $sldr = false; if (strpos($w_att_key . $def_key, '-') !== false) { $mdr = true; } //精抽 if (strpos($w_att_key . $def_key, '*') !== false) { $sldr = true; } //魂抽 if (strpos($w_att_key . $def_key, '+') !== false) { $skdr = true; } //技抽 if ($mdr || $sldr || $skdr) { list($wsk, $hsk, $bsk, $ask, $fsk, $tsk, $tk) = array($wepsk, $arhsk, $arbsk, $arask, $arfsk, $artsk, $artk); list($wwsk, $whsk, $wbsk, $wask, $wfsk, $wtsk, $wtk) = array($w_wepsk, $w_arhsk, $w_arbsk, $w_arask, $w_arfsk, $w_artsk, $w_artk); if ($mdr) { $log .= "<span class=\"yellow\">精神抽取使双方的防具属性全部失效!</span><br>"; $hsk = $bsk = $ask = $fsk = $whsk = $wbsk = $wask = $wfsk = ''; } if ($sldr) { $log .= "<span class=\"yellow\">灵魂抽取使双方的武器和饰物属性全部失效!</span><br>"; $wsk = $tsk = $tk = $wwsk = $wtsk = $wtk = ''; } if ($skdr) { $log .= "<span class=\"yellow\">技能抽取使双方的武器熟练度在战斗中大幅下降!</span><br>"; //$bsk = $ask = $fsk = $wbsk = $wask = $wfsk = ''; } $w_att_key = getatkkey($wwsk, $whsk, $wbsk, $wask, $wfsk, $wtsk, $wtk, $is_wpg); $def_key = getdefkey($wsk, $hsk, $bsk, $ask, $fsk, $tsk, $tk); } if (strpos($w_att_key, "X") !== false && $w_type && !$type && rand(1, 100) > 90) { if ($w_wep == '燕返262') { $log .= "<img src=\"img/other/262.png\"><br>"; } $damage = $mhp; $log .= "造成<span class=\"red\">{$damage}</span>点伤害!<br>"; checkdmg($w_name, $name, $damage); $hp = 0; $w_killnum++; include_once GAME_ROOT . './include/state.func.php'; $killmsg = death($w_wep_kind, $w_name, $w_type, $w_wep_temp); $log .= npc_chat($w_type, $w_name, 'kill'); return $damage; } global ${'w_' . $skillinfo[$w_wep_kind]}; $w_add_skill =& ${'w_' . $skillinfo[$w_wep_kind]}; if ($w_club == 18) { $w_wep_skill = round(${'w_' . $skillinfo[$w_wep_kind]} * 0.5 + ($w_wp + $w_wk + $w_wc + $w_wg + $w_wd + $w_wf) * 0.5); } else { $w_wep_skill = ${'w_' . $skillinfo[$w_wep_kind]}; } if ($skdr) { $w_wep_skill = sqrt($w_wep_skill); } if ($watt == -1) { if ($w_wep_kind == 'N') { global $w_wp; $watt = round($w_wep_skill * 2 / 3); } else { $watt = $w_wepe * 2; } } $hitrate = get_hitrate($w_wep_kind, $w_wep_skill, $w_club, $w_inf); $hitrate *= get_clubskill_bonus_hitrate($w_club, $w_skills, 'w_', $club, $skills, ''); $damage_p = get_damage_p($w_rage, $w_att_key, $w_type, $w_name, $w_club); $hit_time = get_hit_time($w_att_key, $w_wep_skill, $hitrate, $w_wep_kind, $w_weps, $infobbs[$w_wep_kind] * get_clubskill_bonus_imfrate($w_club, $w_skills, 'w_', $club, $skills, ''), get_clubskill_bonus_imftime($w_club, $w_skills, 'w_', $club, $skills, ''), $wepimprate[$w_wep_kind] * get_clubskill_bonus_imprate($w_club, $w_skills, 'w_', $club, $skills, ''), $is_wpg, get_clubskill_bonus_hitrate($w_club, $w_skills, 'w_', $club, $skills, '')); if ($hit_time[1] > 0) { if (strpos($w_att_key, 'R') !== false) { //随机伤害无视一切伤害计算 $maxdmg = $mhp > $wepe ? $wepe : $mhp; $damage = rand(1, $maxdmg); $log .= "武器随机造成了<span class=\"red\">{$damage}</span>点伤害!<br>"; } else { $gender_dmg_p = check_gender($w_name, '你', $w_gd, $gd, $w_att_key); if ($gender_dmg_p == 0) { $damage = 1; } else { global $w_att; $w_active = 1 - $active; $attack = $w_att + $watt; $defend = checkdef($def, $arbe + $arhe + $arae + $arfe, $w_att_key); $damage = get_original_dmg('w_', '', $attack, $defend, $w_wep_skill, $w_wep_kind); if ($w_wep_kind == 'F') { if ($sldr) { $log .= "<span class=\"red\">由于灵魂抽取的作用,灵系武器伤害大幅降低了!</span><br>"; } else { $damage = round(($w_wepe + $damage) * get_WF_p('w_', $w_club, $w_wepe)); //get_spell_factor ( 1, $w_club, $w_att_key, $w_sp, $w_wepe ) ); } } if ($w_wep_kind == 'J') { $adddamage = $mhp / 3; if ($adddamage > 20000) { $adddamage = 10000; } $damage += round($w_wepe * 2 / 3 + $adddamage); } checkarb($damage, $w_wep_kind, $w_att_key, $def_key); $damage *= $damage_p; $damage = $damage > 1 ? round($damage) : 1; $damage *= $gender_dmg_p; } if ($wepk == 'WJ') { $log .= "<span class=\"red\">由于你手中的武器过于笨重,受到的伤害大增!真是大快人心啊!</span><br>"; $damage += round($damage * 0.5); } if ($hit_time[1] > 1) { $d_temp = $damage; if ($hit_time[1] == 2) { $dmg_p = 2; } elseif ($hit_time[1] == 3) { $dmg_p = 2.8; } else { $dmg_p = 2.8 + 0.6 * ($hit_time[1] - 3); } //$dmg_p = $hit_time[1] - ($hit_time[1]-1)*0.2; $damage = round($damage * $dmg_p); $log .= "造成{$d_temp}×{$dmg_p}=<span class=\"red\">{$damage}</span>点伤害!<br>"; } else { $log .= "造成<span class=\"red\">{$damage}</span>点伤害!<br>"; } $pdamage = $damage; $damage += get_ex_dmg("你", 1, $w_club, $inf, $w_att_key, $w_wep_kind, $w_wepe, $w_wep_skill, $def_key); $damage = checkdmgdef($damage, $w_att_key, $def_key, 0); //好人卡特别活动 $gm = ceil(count_good_man_card(1) * rand(80, 120) / 100); if ($gm) { $log .= "在你身上的<span class=\"yellow\">好人卡</span>的作用下,你受到的伤害增加了<span class=\"red\">{$gm}</span>点!<br>"; $damage += $gm; } $bonus_dmg = get_clubskill_bonus_dmg_rate($w_club, $w_skills, $club, $skills) * 100; if ($bonus_dmg < 100) { $log .= "<span class=\"yellow\">由于技能效果的作用,伤害下降至" . $bonus_dmg . "%!</span><br>"; $damage = round($damage * $bonus_dmg / 100); } if ($damage != $pdamage) { $log .= "<span class=\"yellow\">造成的总伤害:<span class=\"red\">{$damage}</span>。</span><br>"; } } checkdmg($w_name, $name, $damage); get_dmg_punish($w_name, $damage, $w_hp, $w_att_key); get_inf('你', $hit_time[2], $w_wep_kind); check_KP_wep($w_name, $hit_time[3], $w_wep, $w_wepk, $w_wepe, $w_weps, $w_wepsk); exprgup($w_lvl, $lvl, $w_exp, 0, $rage); $hp -= $damage; if ($hp <= 0) { $tmp_club = $club; $hp = 0; $w_killnum++; $rpup = 20; if ($w_club == 19) { $rpdec = 30; $rpdec += get_clubskill_rp_dec($w_club, $w_skills); $w_rp += round($rpup * (100 - $rpdec) / 100); } else { $w_rp += $rpup; } include_once GAME_ROOT . './include/state.func.php'; $killmsg = death($w_wep_kind, $w_name, $w_type, $w_wep_temp); $log .= npc_chat($w_type, $w_name, 'kill'); if ($tmp_club == 99) { $log .= '<span class="yellow">由于你及时按了BOMB键,你原地满血复活了!</span><br>'; } } } else { $damage = 0; $log .= "但是没有击中!<br>"; } check_GCDF_wep($w_name, $hit_time[0], $w_wep, $w_wep_kind, $w_wepk, $w_wepe, $w_weps, $w_wepsk); addnoise($w_wep_kind, $w_wepsk, $now, $pls, $w_pid, $pid, $w_wep_kind); if ($w_club == 10) { $w_add_skill += 2; } else { $w_add_skill += 1; } return $damage; }