Ejemplo n.º 1
0
 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);
         //очистим записи боя от этого игрока
     }
 }
Ejemplo n.º 2
0
        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();