private function user_dead($user_id, $user_win) { if ($this->all[$user_id]['npc'] == 1) { //удаляем бота из таблицы состояний боя combat_delFunc($user_id); $expsumm = 0; $sel = myquery("SELECT * FROM combat_users_exp WHERE combat_id=" . $this->combat['combat_id'] . " AND prot_id=" . $user_id . " AND (exp>0 OR gp>0)"); //начисляем накопленный опыт за бота игрокам while ($userwin = mysql_fetch_array($sel)) { if (!isset($this->all[$userwin['user_id']])) { continue; } //для 3го типа квестов движка myquery("UPDATE quest_engine_users SET par2_value=par2_value+" . $userwin['exp'] . " WHERE user_id=" . $userwin['user_id'] . " AND quest_type=3"); $this->all[$userwin['user_id']]['exp'] += $userwin['exp']; $this->all[$userwin['user_id']]['gp'] += $userwin['gp']; if ($userwin['user_id'] == $user_win) { $expsumm += $userwin['exp']; } if ($userwin['gp'] != 0) { setGP($userwin['user_id'], $userwin['gp'], 22); } if ($userwin['exp'] != 0) { setEXP($userwin['user_id'], $userwin['exp'], 1); } if (function_exists("save_stat")) { save_stat($userwin['user_id'], $user_id, "", 5, "", "", "", $userwin['gp'], "", $userwin['exp'], "", ""); } $userwin_clan = (int) $this->all[$userwin['user_id']]['clan_id']; $da = getdate(); $user_exp_store = 0; $npc_exp_store = (int) $userwin['exp']; myquery("INSERT INTO game_combats_exp (clan_id,year,month,npc_exp,user_exp) VALUES ({$userwin_clan}," . $da['year'] . "," . $da['mon'] . ",{$npc_exp_store},{$user_exp_store}) ON DUPLICATE KEY UPDATE npc_exp=npc_exp+{$npc_exp_store},user_exp=user_exp+{$user_exp_store}"); if ($userwin['exp'] > 0 or $userwin['gp'] > 0) { $mes = '<font color=\\"#eeeeee\\">Ты ' . echo_sex('выиграл', 'выиграла', $this->all[$userwin['user_id']]['pol']) . ' бой. '; $mes .= '' . $this->all[$user_id]['name'] . ' был побежден и бежал в неизвестном направлении!'; $mes .= ' Ты получаешь <span style=\\"font-weight:800;color:gold;\\">' . $userwin['exp'] . '</span> опыта'; if ($userwin['gp'] != 0) { $mes .= ' и <span style=\\"font-weight:800;color:gold;\\">' . $userwin['gp'] . '</span> монет'; } $mes = $mes . '!</font>'; $result = myquery("INSERT game_battles SET attacker_id=" . $userwin['user_id'] . ", target_id={$user_id}, map_name=" . $this->combat['map_name'] . ", map_xpos=" . $this->combat['map_xpos'] . ", map_ypos=" . $this->combat['map_ypos'] . ", contents='" . mysql_real_escape_string($mes) . "', post_time=" . time() . ""); } } myquery("DELETE FROM combat_users_exp WHERE combat_id=" . $this->combat['combat_id'] . " AND prot_id=" . $user_id . ""); //перемещение бота, выставление времени респауна, "лечение" бота $this->clear_user($user_id); $Npc = new Npc($user_id); $Npc->on_dead(); //если убивается бот вводного квеста в Гильдии Новичков $sel = myquery("SELECT step FROM game_users_intro WHERE user_id={$user_win}"); if ($sel != false and mysql_num_rows($sel) > 0) { list($step) = mysql_fetch_array($sel); if ($step == 10 or $step == 11) { myquery("UPDATE game_users_intro SET step=step+1 WHERE user_id={$user_win}"); } } //проверка квестовых заданий на убийство бота $selquest = myquery("SELECT * FROM game_quest_users WHERE user_id={$user_win} AND quest_id=1 AND sost=2"); if (mysql_num_rows($selquest)) { if (isset($_SESSION['quest1_step'])) { myquery("UPDATE game_quest_users SET sost=0,last_time=0 WHERE user_id={$user_win} AND quest_id=1 AND sost=2"); if ($_SESSION['quest1_step'] == 7) { $_SESSION['quest1_step'] = 8; } if ($_SESSION['quest1_step'] == 14) { $_SESSION['quest1_step'] = 15; } if ($_SESSION['quest1_step'] == 24) { $_SESSION['quest1_step'] = 25; } if ($_SESSION['quest1_step'] == 27) { $_SESSION['quest1_step'] = 28; } if ($_SESSION['quest1_step'] == 30) { $_SESSION['quest1_step'] = 31; } if ($_SESSION['quest1_step'] == 32) { $_SESSION['quest1_step'] = 33; } if ($_SESSION['quest1_step'] == 34) { $_SESSION['quest1_step'] = 35; } if ($_SESSION['quest1_step'] == 36) { $_SESSION['quest1_step'] = 37; } if ($_SESSION['quest1_step'] == 38) { $_SESSION['quest1_step'] = 39; } if ($_SESSION['quest1_step'] == 40) { $_SESSION['quest1_step'] = 41; } if ($_SESSION['quest1_step'] == 42) { $_SESSION['quest1_step'] = 43; } if ($_SESSION['quest1_step'] == 44) { $_SESSION['quest1_step'] = 45; } if ($_SESSION['quest1_step'] == 51) { $_SESSION['quest1_step'] = 52; } } } $selquest = myquery("SELECT * FROM game_quest_users WHERE user_id={$user_win} AND quest_id=21 AND sost=2"); if (mysql_num_rows($selquest)) { if (isset($_SESSION['quest2_step'])) { myquery("UPDATE game_quest_users SET sost=0,last_time=0 WHERE user_id={$user_win} AND quest_id=21 AND sost=2"); if ($_SESSION['quest2_step'] == 201) { $_SESSION['quest2_step'] = 202; } if ($_SESSION['quest2_step'] == 203) { $_SESSION['quest2_step'] = 204; } if ($_SESSION['quest2_step'] == 205) { $_SESSION['quest2_step'] = 206; } if ($_SESSION['quest2_step'] == 207) { $_SESSION['quest2_step'] = 208; } if ($_SESSION['quest2_step'] == 209) { $_SESSION['quest2_step'] = 210; } if ($_SESSION['quest2_step'] == 211) { $_SESSION['quest2_step'] = 212; } } } //движок квестов include "quest/quest_engine_types/quests_engine_wincheck.php"; if ($Npc->npc['npc_quest_id'] >= 2 and $Npc->npc['npc_quest_id'] <= 7) { $selquest = myquery("SELECT * FROM game_quest_users WHERE user_id={$user_win} AND quest_id=" . $Npc->npc['npc_quest_id'] . " AND sost=" . $Npc->npc['npc_id'] . ""); if (mysql_num_rows($selquest)) { $proc = 100; if ($Npc->npc['EXP'] == 0) { $proc = 0; } elseif ($expsumm < $Npc->npc['EXP'] - 5) { $proc = 100 * ($expsumm / $Npc->npc['EXP']); } $proc = min(100, $proc); myquery("DELETE FROM game_items WHERE user_id={$user_win} AND used=0 AND item_for_quest=" . $Npc->npc['npc_quest_id'] . ""); $npc_item = $Npc->npc['npc_quest_item']; $Item = new Item(); $ar = $Item->add_user($npc_item, $user_win, 1, $Npc->npc['npc_quest_id']); if ($ar[0] == 1) { myquery("UPDATE game_items SET item_uselife={$proc} WHERE id=" . $ar[1] . ""); } } } } else { if ($this->combat['combat_type'] == 10) { $this->map['not_lose'] = 1; $this->map['not_win'] = 1; } $this->break_items($user_id, $this->combat['npc']); //уменьшим текущий ресурс прочности предметов if ($this->against_npc($user_id)) { $this->check_quest_lose($user_id); } if ($this->combat['combat_type'] < 8 or $this->combat['combat_type'] > 11) { $this->user_teleport($user_id); } //отразим смерть и на ездовом животном! $check = myquery("SELECT id,golod FROM game_users_horses WHERE used=1 AND user_id={$user_id}"); if (mysql_num_rows($check) > 0) { list($id_horse, $golod) = mysql_fetch_array($check); $r = mt_rand(1, 5); $k = 0; switch ($golod) { case 0: $k = 0; break; case 1: $k = 1; break; case 2: $k = 2; break; case 3: $k = 3; break; case 4: $k = 4; break; default: $k = 10; break; } $add = $r * $k; myquery("UPDATE game_users_horses SET life=GREATEST(0,life-{$add}) WHERE id={$id_horse}"); } //переводим накопленный опыт в очки опыта $this->nachisl_exp_gp($user_id, 2, $user_win); if ($user_win > 0) { if ($this->all[$user_win]['npc'] == 0) { if ($this->map['not_lose'] == 0) { $this->all[$user_id]['lose']++; } save_stat($user_id, '', '', 6, '', '', $user_win, 0, $this->all[$user_win]['clan_id'], 0, $this->all[$user_id]['clevel'], $this->all[$user_win]['clevel']); } if ($this->map['not_win'] == 0) { $this->all[$user_win]['win']++; } } combat_setFunc($user_id, 8, $this->combat['combat_id'], $this->combat['hod']); //установим состояние игрока в бою $this->clear_user($user_id); //очистим записи боя от этого игрока } }
echo echo_sex('проиграл', 'проиграла'); ?> !<br> <input type="button" value="Вернуться" onClick=location.replace("lib/town.php")><br> <img src="http://<?php echo img_domain; ?> /combat/lose.jpg"> <?php if ($state['combat_id'] > 0 and $state['hod'] > 0) { ShowCombatLog($state['combat_id'], $state['hod']); } break; case 9: PrintCombatHeader(); combat_delFunc($user_id); ForceFunc($user_id, 5); ?> <center>Ничья!<br> <input type="button" value="Вернуться" onClick=location.replace("act.php")><br> <img src="http://<?php echo img_domain; ?> /combat/n.jpg"> <?php if ($state['combat_id'] > 0 and $state['hod'] > 0) { ShowCombatLog($state['combat_id'], $state['hod']); } break; case 10: $combat->print_begin();