function take_win()
{
    global $char, $quest_id, $book_id;
    $new_clevel = get_new_level($char['clevel']);
    $get_exp = floor(0.1 * $new_clevel);
    setEXP($char['user_id'], $get_exp, $book_id + 7);
    $get_gp = mysqlresult(myquery("SELECT gp FROM bookgame_users WHERE user_id=" . $char['user_id'] . " AND bookgame={$book_id}"), 0, 0);
    setGP($char['user_id'], $get_gp, $book_id + 100);
    myquery("UPDATE game_users SET EXP=EXP+{$get_exp},GP=GP+{$get_gp} WHERE user_id=" . $char['user_id'] . "");
    myquery("DELETE FROM bookgame_users WHERE user_id=" . $char['user_id'] . " AND bookgame={$book_id}");
    myquery("UPDATE game_quest_users SET last_time=UNIX_TIMESTAMP(),finish=1 WHERE user_id=" . $char['user_id'] . " AND quest_id={$quest_id}");
    exit_quest();
}
Exemple #2
0
                    $mes6 = '<b>- Чувствуешь, ты стал мудрее?</b> - загадочно произносит Эйладан. 
									 <br/>Вы смотрите наверх в ожидании падающего луча просветления, но видите лишь крышу дома. Что ж, придётся поверить на слово...
								    ';
                } elseif ($map == 5) {
                    $mes6 = 'Ведьма протянула Вам пузырёк с какой-то странной жидкостью. Вы с готовностью выпиваете его...
									   <br/><b>- А-а, стой! Это не оно! </b>- испуганно произносит Луимвена, держа в руках другой пузырёк. 
									   <br/>Видя Ваше ошалевшее лицо, Ведьма не могла не засмеяться:
									   <br/><b>- Да не переживай ты так, будешь жить. Подумаешь, стал мудрее, а не сильнее. Разум ещё никому не вредил!</b>
									   <br/>Поблагодарив Ведьму, Вы покидаете её жилище. А то мало ли что ещё…
									   ';
                }
                echo $mes6 . '<br/><br/><b><center><font color="yellow">Твой опыт увеличился на ' . $nagrad . ' единиц</font></b><br/><br/>
					  ';
                myquery("Update game_users_hunter Set times=times+1 Where map={$map} and user_id={$user_id}");
                myquery("Update game_users Set EXP=EXP+{$nagrad} Where user_id={$user_id}");
                setEXP($user_id, $nagrad, 13);
            }
        } elseif (isset($_GET['new_lev'])) {
            $test = myquery("Select times From game_users_hunter Where map={$map} and user_id={$user_id} and times>level");
            if (mysql_num_rows($test) > 0) {
                list($times) = mysql_fetch_array($test);
                if ($map == 18) {
                    $mes9 = '<b>Ну чтож! Дело за малым... </b>- хитрая улыбка Эйладана не позволяет быть спокойным. - <b> Тебе необходимо лишь решить проблему с парой-тройкой вредителей в Средиземье. Удачи, Друг, а за мной награда не постоит!
									';
                } elseif ($map == 5) {
                    $mes9 = 'Луимвена очаровательно улыбнулась.
									   <br/><b>- Спасибо за отзывчивость, дорогой Герой. Необходимо наказать несколько вредителей на просторах Белерианда. Награда после выполнения задания, естественно, прилагается. Удачи!</b>
									   ';
                }
                echo $mes9 . '<br/><br/><center><font color="lightgreen"><b>Тебе необходимо устранить ' . $times . ' ' . pluralForm($times, 'вредителя', 'вредителей', 'вредителей') . ' ' . $times . ' уровня</b></font><br/><br/>';
                myquery("Update game_users_hunter Set times=0, level=level+1 Where map={$map} and user_id={$user_id}");
 private function nachisl_exp_gp($user_id, $par, $user_win = 0)
 {
     //Вначале дадим умирающему полный набранный опыт за проведённый бой
     $check_dead_exp = myquery("SELECT SUM(exp) as dead_exp FROM combat_users_exp WHERE combat_id=" . $this->combat['combat_id'] . " AND exp>0 AND user_id='" . $user_id . "' AND prot_id<>'" . $user_id . "' HAVING dead_exp>0");
     if (mysql_num_rows($check_dead_exp) > 0) {
         list($dead_exp) = mysql_fetch_array($check_dead_exp);
         save_exp($user_id, $dead_exp, 17);
     }
     //проверим, а не очередная ли это дуэль между одними участниками боя
     $koef = $this->get_combat_koef();
     //теперь дадим опыт за умершего всем кто его бил и еще жив на данный момент
     $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 ($userwin['user_id'] != $userwin['prot_id']) {
             if ($koef < 1) {
                 $userwin['exp'] = max(1, $userwin['exp'] * $koef);
                 $userwin['gp'] = max(1, $userwin['gp'] * $koef);
                 // if ($koef<0.5) myquery("UPDATE game_users SET win=win-1 WHERE user_id=".$user_win." ");
             }
             if ($this->all[$userwin['user_id']]['HP'] <= 0) {
                 continue;
             }
             if ($this->all[$userwin['user_id']]['npc'] == 1) {
                 continue;
             }
             if ($this->all[$userwin['user_id']]['side'] == $this->all[$user_id]['side']) {
                 continue;
             }
             $last_userwin_id = $userwin['user_id'];
             $mes = '';
             if ($userwin['exp'] > 0 or $userwin['gp'] > 0) {
                 //для 3го типа квестов движка
                 myquery("UPDATE quest_engine_users SET par2_value=par2_value+" . $userwin['exp'] . " WHERE user_id=" . $userwin['user_id'] . " AND quest_type=3");
                 $mes .= '<font color="#0080C0" size="2" face="Verdana">&nbsp;&nbsp;' . $this->all[$user_id]['name'] . '';
                 if ($par == 1) {
                     if ($this->all[$user_id]['pol'] == 'female') {
                         $mes .= ' сбежала с поля боя.';
                         $this->log[$userwin['user_id']][]['action'] = 53;
                         $index = sizeof($this->log[$userwin['user_id']]) - 1;
                         $this->log[$userwin['user_id']][$index]['na_kogo'] = $user_id;
                         $this->log[$userwin['user_id']][$index]['na_kogo_name'] = $this->all[$user_id]['name'];
                     } else {
                         $mes .= ' сбежал с поля боя.';
                         $this->log[$userwin['user_id']][]['action'] = 54;
                         $index = sizeof($this->log[$userwin['user_id']]) - 1;
                         $this->log[$userwin['user_id']][$index]['na_kogo'] = $user_id;
                         $this->log[$userwin['user_id']][$index]['na_kogo_name'] = $this->all[$user_id]['name'];
                     }
                     //при вылете по таймауту не вызывается calculate, поэтому обновляем БД здесь
                     myquery("UPDATE game_users SET EXP=EXP+" . $userwin['exp'] . ",GP=GP+" . $userwin['gp'] . " WHERE user_id=" . $last_userwin_id . "");
                 } elseif ($par == 2) {
                     if ($last_userwin_id == $user_win and $this->map['not_win'] == 0) {
                         //запишем статистику
                         if (function_exists("save_stat")) {
                             save_stat($user_win, '', '', 7, '', '', $user_id, $userwin['gp'], $this->all[$user_win]['clan_id'], $userwin['exp'], $this->all[$user_id]['clevel'], $this->all[$user_win]['clevel']);
                         }
                     }
                     if ($user_win == $userwin['user_id']) {
                         $mes = '<font color=\\"#eeeeee\\">Ты ' . echo_sex('победил', 'победила', $this->all[$user_win]['pol']) . ' игрока <b>' . $this->all[$user_id]['name'] . '</b> и он';
                         if ($this->all[$user_id]['pol'] == 'female') {
                             $mes .= 'а бежала';
                         } else {
                             $mes .= ' бежал';
                         }
                         $mes .= ' в неизвестном направлении!</font> ';
                     } else {
                         $mes = '<font color=\\"#eeeeee\\">Игрок <b>' . $this->all[$user_id]['name'] . '</b> ';
                         if ($this->all[$user_id]['pol'] == 'female') {
                             $mes .= 'была побеждена и бежала';
                         } else {
                             $mes .= 'был побежден и бежал';
                         }
                         $mes .= ' в неизвестном направлении!</font> ';
                     }
                     //и сообщим об этом в логах
                     if ($this->all[$user_id]['pol'] == 'female') {
                         $this->log[$userwin['user_id']][]['action'] = 50;
                         $index = sizeof($this->log[$userwin['user_id']]) - 1;
                         $this->log[$userwin['user_id']][$index]['na_kogo'] = $user_id;
                         $this->log[$userwin['user_id']][$index]['na_kogo_name'] = $this->all[$user_id]['name'];
                     } else {
                         $this->log[$userwin['user_id']][]['action'] = 51;
                         $index = sizeof($this->log[$userwin['user_id']]) - 1;
                         $this->log[$userwin['user_id']][$index]['na_kogo'] = $user_id;
                         $this->log[$userwin['user_id']][$index]['na_kogo_name'] = $this->all[$user_id]['name'];
                     }
                     $this->all[$userwin['user_id']]['exp'] += $userwin['exp'];
                     $this->all[$userwin['user_id']]['gp'] += $userwin['gp'];
                 }
                 $this->log[$userwin['user_id']][]['action'] = 52;
                 $index = sizeof($this->log[$userwin['user_id']]) - 1;
                 $this->log[$userwin['user_id']][$index]['add_hp'] = $userwin['exp'];
                 $this->log[$userwin['user_id']][$index]['procent'] = $userwin['gp'];
                 setGP($userwin['user_id'], $userwin['gp'], 25);
                 setEXP($userwin['user_id'], $userwin['exp'], 2);
                 $da = getdate();
                 $userwin_clan = $this->all[$userwin['user_id']]['clan_id'];
                 $user_exp_store = $userwin['exp'];
                 $npc_exp_store = 0;
                 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 .= '    Ты получаешь ';
                     $mes .= '<b><font color="#FF0000">' . $userwin['exp'] . '</font></b> очков опыта и <b><font color="#FF0000">' . $userwin['gp'] . '</font></b> монет';
                     $mes .= '</font><br>';
                     $result = myquery("INSERT game_battles SET attacker_id=" . $userwin['user_id'] . ", target_id=0, 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() . "");
                 }
             }
         } else {
             $this->nachisl_exp_gp_def($user_id, $userwin['exp'], $userwin['gp'], $koef);
         }
     }
     myquery("DELETE FROM combat_users_exp WHERE combat_id=" . $this->combat['combat_id'] . " AND prot_id={$user_id}");
 }
Exemple #4
0
function save_exp($user_id, $exp, $reason_id, $type = 1)
{
    myquery("Update game_users Set EXP=EXP+'" . $exp . "' Where user_id='" . $user_id . "'");
    if ($type == 2) {
        myquery("Update game_users_archive Set EXP=EXP+'" . $exp . "' Where user_id='" . $user_id . "'");
    }
    setEXP($user_id, $exp, $reason_id);
}
 }
 $char = mysql_fetch_assoc($result);
 if (isset($_GET['teleport_map_name']) and isset($_GET['teleport_map_xpos']) and isset($_GET['teleport_map_ypos']) and ($char['clan_id'] == 1 or $user_id == 36051 or $user_id == 612 or domain_name == 'localhost')) {
     $up = myquery("UPDATE game_users_map SET map_name='" . $_GET['teleport_map_name'] . "', map_xpos='" . $_GET['teleport_map_xpos'] . "', map_ypos='" . $_GET['teleport_map_ypos'] . "' WHERE user_id='" . $char['user_id'] . "'");
     $char['map_name'] = $_GET['teleport_map_name'];
     $char['map_xpos'] = $_GET['teleport_map_xpos'];
     $char['map_ypos'] = $_GET['teleport_map_ypos'];
 }
 $char['func_id'] = getFunc($user_id);
 $char['last_active'] = $user_time;
 //Если игрок в первый раз зашёл сюда за день, то выдадим ему 1% до максимального уровня
 if (isset($_SESSION['add_exp']) and $_SESSION['add_exp'] == 1) {
     unset($_SESSION['add_exp']);
     $add_exp = get_new_level($char['clevel']) / 100;
     myquery("UPDATE game_users SET EXP=EXP+'" . $add_exp . "' WHERE user_id={$user_id}");
     setEXP($char['user_id'], $add_exp, 15);
 }
 //Обработаем игрока с отрицательным числом жизней
 if ($char['HP'] <= 0) {
     $char['HP'] == 1;
     myquery("UPDATE game_users SET HP=1 WHERE user_id={$user_id}");
 }
 if (isset($_COOKIE['rpgsu_login']) and $char['user_name'] != $_COOKIE['rpgsu_login']) {
     destroy_all("4");
 } elseif (isset($_COOKIE['rpgsu_login']) and md5($char['user_pass']) != $_COOKIE['rpgsu_pass']) {
     destroy_all("5");
 } else {
     setcookie("rpgsu_login", $char['user_name'], 0, "/");
     setcookie("rpgsu_pass", md5($char['user_pass']), 0, "/");
 }
 if (!defined('domain_name')) {
Exemple #6
0
     myquery("UPDATE game_users_archive SET MP_MAX='{$MP_MAX}' WHERE user_id={$user_id2}");
     $log .= '<br />Изменена мана макс<br />';
 }
 if (isset($STM_MAX) and $STM_MAX != $STM_MAX_old) {
     myquery("UPDATE game_users SET STM_MAX='{$STM_MAX}' WHERE user_id={$user_id2}");
     myquery("UPDATE game_users_archive SET STM_MAX='{$STM_MAX}' WHERE user_id={$user_id2}");
     $log .= '<br />Изменена энергия макс<br />';
 }
 if (isset($PR_MAX) and $PR_MAX != $PR_MAX_old) {
     myquery("UPDATE game_users SET PR_MAX='{$PR_MAX}' WHERE user_id={$user_id2}");
     myquery("UPDATE game_users_archive SET PR_MAX='{$PR_MAX}' WHERE user_id={$user_id2}");
     $log .= '<br />Изменена прана макс<br />';
 }
 if (isset($EXP) and $EXP != $EXP_old) {
     myquery("UPDATE game_users SET EXP='{$EXP}' WHERE user_id={$user_id2}");
     setEXP($user_id2, $EXP - $EXP_old, 4);
     myquery("UPDATE game_users_archive SET EXP='{$EXP}' WHERE user_id={$user_id2}");
     $log .= '<br />Изменен опыт<br />';
 }
 if (isset($GP) and $GP != $GP_old) {
     myquery("UPDATE game_users SET GP='{$GP}' WHERE user_id={$user_id2}");
     setGP($user_id2, $GP - $GP_old, 20);
     myquery("UPDATE game_users_archive SET GP='{$GP}' WHERE user_id={$user_id2}");
     $log .= '<br />Изменен монеты<br />';
 }
 if (isset($STR) and $STR != $STR_old) {
     myquery("UPDATE game_users SET STR='{$STR}' WHERE user_id={$user_id2}");
     myquery("UPDATE game_users_archive SET STR='{$STR}' WHERE user_id={$user_id2}");
     $log .= '<br />Изменен сила<br />';
 }
 if (isset($NTL) and $NTL != $NTL_old) {
 if (mysql_num_rows($sel_item) > 0) {
     if (!isset($take_head)) {
         QuoteTable('open');
         echo '<font size=2 color=#F0F0F0><div align="center">Поздравляю! Ты ' . echo_sex('убил', 'убила') . ' монстра "' . $npc['npc_name'] . '" и мы выполним наш контракт!<br>';
         echo '<form action="" method="post"><input type="submit" name="take" value="Отдать часть тела монстра"><input type="hidden" name="take_head"><input name="town_id" type="hidden" value="' . $town . '">';
         QuoteTable('close');
     } else {
         QuoteTable('open');
         $it = mysql_fetch_array($sel_item);
         $proc = $it['item_uselife'] / 100;
         $npc_exp = floor($npc_exp * $proc * (100 + $guild['guild_lev']) / 100);
         echo '<div align="center"><font size=2 color=#F0F0F0>Поздравляю! Вот твои "' . $npc_exp . '" очков опыта за убитого монстра!<br>';
         echo '<br>*** <font size=2 color=#00FF00>Ты получаешь к текущему опыту <font color=#FF0000>' . $npc_exp . '</font> очков </font> ***';
         myquery("UPDATE game_npc SET npc_quest_guild=0,npc_quest_end_time=0,npc_quest_id=0 WHERE npc_quest_guild={$town}");
         myquery("UPDATE game_users SET EXP=EXP+{$npc_exp} WHERE user_id={$user_id}");
         setEXP($user_id, $npc_exp, 5);
         myquery("DELETE FROM game_items WHERE item_for_quest={$quest_id}");
         myquery("DELETE FROM game_quest_users WHERE quest_id={$quest_id}");
         myquery("INSERT INTO game_npc_guild_log (user_id,user_name,time_end,vremya,exp) VALUES ({$user_id},'" . $char['name'] . "'," . time() . ",'" . date("d-m-Y H:i", time()) . "',{$npc_exp})");
         //Выдача шкатулки
         $r = mt_rand(1, 100);
         $base_chance = 25;
         if ($r < $base_chance + $guild['guild_lev'] * 3) {
             $r = mt_rand(1, 100);
             if ($r <= 30) {
                 $prize_name = "Железная шкатулка";
             } elseif ($r <= 55) {
                 $prize_name = "Медная шкатулка";
             } elseif ($r <= 75) {
                 $prize_name = "Серебряная шкатулка";
             } elseif ($r <= 90) {
Exemple #8
0
                                         $present = myquery("DELETE FROM game_items WHERE user_id='" . $char['user_id'] . "' and item_id=1248");
                                     }
                                     if ($not_npc == 0) {
                                         fill_maze_by_npc_for_user($gorod['to_map_name'], $user_id, $not_boss);
                                     }
                                 }
                                 list($maze_from, $exp_win, $gp_win, $maze_name) = mysql_fetch_array(myquery("SELECT maze,exp_maze,gp_maze,name FROM game_maps WHERE id=" . $char['map_name'] . ""));
                                 $already = mysql_result(myquery("SELECT COUNT(*) FROM game_users_maze WHERE user_id={$user_id} AND maze_id=" . $char['map_name'] . ""), 0, 0);
                                 if ($maze_from == 1 and $exit_lab == 1 and $already == 0) {
                                     myquery("UPDATE game_users SET maze_win=maze_win+1,EXP=EXP+{$exp_win},GP=GP+{$gp_win} WHERE user_id={$user_id}");
                                     $theme = 'Игроком пройден лабиринт: ' . $maze_name;
                                     $message = 'Игрок [b]' . $char['name'] . '[/b] прошел лабиринт: [i]' . $maze_name . '[/i]. Время выхода из лабиринта: ' . date("d.m.Y H:i:s", time()) . '.';
                                     myquery("INSERT INTO game_pm (komu, otkogo, theme, post, view, clan, time) VALUES ('28591', '{$user_id}', '{$theme}', '{$message}', '0','0'," . time() . ")");
                                     myquery("INSERT INTO game_users_maze (user_id,maze_id) VALUES ({$user_id}," . $char['map_name'] . ")");
                                     setGP($user_id, $gp_win, 28);
                                     setEXP($user_id, $exp_win, 3);
                                 }
                             }
                             $char['map_name'] = $gorod['to_map_name'];
                             $char['map_xpos'] = $gorod['to_map_xpos'];
                             $char['map_ypos'] = $gorod['to_map_ypos'];
                             $char['GP'] = $char['GP'] - $gp;
                         } else {
                             echo 'Плата за проход <font color=ff0000><b>' . $gp . '</b></font> золотых! У тебя их НЕТ!';
                         }
                     }
                 }
             }
         }
     }
 }
Exemple #9
0
        setEXP($user_id, $get_exp, 6);
        if ($_SESSION['quest1_take_weapon'] == 1) {
            add_item_to_user(4);
        }
        if ($_SESSION['quest1_take_shlem'] == 1) {
            add_item_to_user(8);
        }
        $sost = 99;
        $finish = 1;
    }
    if ($_SESSION['quest1_exit'] == 50) {
        $_SESSION['quest1_get_gp'] = 90;
        myquery("UPDATE game_users SET HP=1,MP=1,STM=1 WHERE user_id={$user_id}");
        myquery("UPDATE game_users SET EXP=EXP+{$get_exp},GP=GP+" . $_SESSION['quest1_get_gp'] . ",CW=CW+" . $_SESSION['quest1_get_gp'] * money_weight . " WHERE user_id={$user_id}");
        setGP($user_id, $_SESSION['quest1_get_gp'], 59);
        setEXP($user_id, $get_exp, 6);
        add_item_to_user(8);
        $sost = 99;
        $finish = 1;
    }
    if ($_SESSION['quest1_exit'] == 1) {
        myquery("UPDATE game_users SET HP=1,MP=1,STM=1 WHERE user_id={$user_id}");
    }
    unset_all();
    myquery("INSERT INTO game_quest_users (user_id,quest_id,last_time,sost,finish) VALUES ({$user_id},1," . time() . ",{$sost},1) ON DUPLICATE KEY UPDATE sost={$sost},last_time=" . time() . ",finish=GREATEST({$finish},finish)");
    ForceFunc($user_id, 5);
    setLocation("../act.php");
}
if (isset($return)) {
    $_SESSION['quest1_step'] = 0;
    $_SESSION['quest1_state'] = '0';