[Обсуждение] Вознаграждения за квест

Тема в разделе "Игровые движки", создана пользователем MysticW0, 18 фев 2014.

  1. MysticW0

    MysticW0 Постоялец

    Регистр.:
    17 янв 2014
    Сообщения:
    111
    Симпатии:
    3
    Люди не могу понять почему не выдает вознаграждения за выполнения квеста. Вот сам квест подскажите где ошибка т.к в запросе не вижу ошибки ... Мирный опыт выдает а вещи в инвентарь нет.
    PHP:
    <?php
    $Need 
    "2484;1;Снежков";

    $ItemNeed explode(";",$Need);

    $Quest_Name 'Снежный дар';

    $Quest_Desc 'Принесите лекарю Иоганну '.$ItemNeed[1].' шт. '.$ItemNeed[2].'. Срок - 3 дня.';

    $Quest_No '"Гутен таг, майн либе! На что жалюйтесь? Не может быть, чтобы человек, который пришоль ко мнье был софсем здороф. Как говорили у нас в Кардиффе во времья мой студенческий юность: нет здоровых людей, есть плохо обследованные!","Раздевайтесь, раздевайтесь. Старый Иоганн вас фнимательно послушает и что-нибудь точно найдйот!","Ах, вы не лечиться! А зачем тогда пришли? ","Ладно, не важно.","Знаете, майн шатц! Это отшень карашо, что вы пришель! Наферное Иляна услышать менья, поскольку мне понадобится ваш помощь.","В деревня Подгорный был фойер... по-вашему пожар... Много дом сгорель. Хвала богам, люди не погибайт... Но у них есть сильный ожог. Я готовить мазь от ожог, но ее на всех на хватит. Чтобы лечить люди, мне нужен жир. Он хорошо увлажняйт и защищайт кожа. ","Если вы принесетье мне 5 шт. Изумрудных Колеец, я платить кароший гельд... Деньги, по-вашему... "';

    $Quest_Yes '"Майне кляне, не мешайт. Мне некогда. Старый Иоганн спешит на срочный операций! А, это вы. Ну как?"';

    $Quest_Get '"Хорошо, майн шатц. Иди. И немножко торопись, а то больной люди может выздороветь раньше, чем вы придти."';

    $Quest_Check '"Майне кляне, не мешайт. Мне некогда. Старый Иоганн спешит на срочный операций! А, это вы. Ну как?"';

    $Quest_Status_err '"Ай-ай-ай! Фот и ферь после этого людьям! Фсе надо делать самому. А вы чего стоите! Идите отсюда, чтоб я вас здоровым у себья больше не фидел! Шнелле, шнелле!"';

    $Quest_Status_ok '"Фот спасипо фот фаше фознагрождение!"';

    if(
    $QuestStepThree == true){
        
    $Exp 100;
    echo 
    "<script>location='main.php';</script>";
        
    mysql_query("UPDATE `user` SET `exp`='".$exp[0]."|".($exp[1]+$Exp)."|".$exp[2]."' WHERE `id`='".$pers['id']."'");
        
    mysql_query("UPDATE `quest_completed` SET `que_st`='1' WHERE `que_id`='1' AND `usr_id`='".$pers['id']."'");
        
    mysql_query("INSERT INTO `chat` (`time`,`login`,`dlya`,`msg`) VALUES ('".time()."','sys','<".$pers['login'].">','".addslashes("top.frames['chmain'].add_msg('<font class=chattime>&nbsp;".date("H:i:s")."&nbsp;</font> <font color=000000><font color=#cc0000><b>Системная информация.</b></font> <b>Квест выполнен. Вы получили: <font color=#009900>Мирный Опыт (".$Exp.")</font>.</b></font><BR>'+'');")."');");
    mysql_query("INSERT INTO `invent` (`protype` ,`pl_id` ,`used` ,`iznos` ,`dolg` ,`price` ,`dd_price` ,`curslot` ,`clan` ,`gift` ,`gift_from`) VALUES ('116',  '".$player['id']."',  '0',  '0',  '10',  '10',  '0',  '0',  '0',  '1',  '".$gfrom."');");
    mysql_query("INSERT INTO `invent` (`protype` ,`arenda` ,`pl_id` ,`used` ,`iznos` ,`dolg` ,`price` ,`dd_price` ,`curslot` ,`clan` ,`gift` ,`gift_from`) VALUES ('2335', '1391872305', '".$player['id']."',  '0',  '0',  '500',  '10',  '0',  '0',  '0',  '1',  '".$gfrom."');");
    }
     
  2. NiceBro

    NiceBro Создатель

    Регистр.:
    2 ноя 2012
    Сообщения:
    44
    Симпатии:
    25
    Я могу ошибаться но мне кажется что ошибка в этой строчке
    PHP:
    echo "<script>location='main.php';</script>";
    JS срабатывает и перенаправляет на main.php а весь остальной код не выполняется.
     
  3. MysticW0

    MysticW0 Постоялец

    Регистр.:
    17 янв 2014
    Сообщения:
    111
    Симпатии:
    3
    Нет это не ошибка даже если убрать эту строчку то все так же =)))
     
  4. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.405
    Симпатии:
    1.185
    Расставь проверки после каждого запроса:
    PHP:
    $result mysql_query(...);
    if(
    $result === FALSE) {
      echo 
    mysql_errno() . ": " mysql_error() . "\n";

    И узнаешь в чём именно сбой.

    Выхода из скрипта php через retern, exit или даже die() нет, так что код после этой строчки будет обрабатываться.
     
  5. MysticW0

    MysticW0 Постоялец

    Регистр.:
    17 янв 2014
    Сообщения:
    111
    Симпатии:
    3
    Смотри я переделал чутка код. И да в таком варианте кнопка квест не нажимается (

    PHP:
    <?php
    $Need 
    "2484;1;Снежков";

    $ItemNeed explode(";",$Need);

    $Quest_Name 'Веер любви';

    $Quest_Desc 'Принесите Валентину инструмент.'.$ItemNeed[1].' шт. '.$ItemNeed[2].'. Срок - 3 дня.';

    $Quest_No '"Доброго времени суток путник. Меня звать Валентин и я бы с радостью подарил бы вам подарок на день святого Валентина да вот проблема в том что меня ограбили Монстры срывающие праздники.","Готов ли ты помочь мне спасти праздник ?","Отлично я верил в вас я знал что вы не подвидете.","Слушайте. Есть у них одно место обитания. Сами по себе то они слабые да вот я не смог дать им отпор в связи с тем что я уже не молод да и защищаться не чем было.","Идите в лес на клетку 11_3 и верните мне мой инструмент и 5 разных трав."';

    $Quest_Yes '"Майне кляне, не мешайт. Мне некогда. Старый Иоганн спешит на срочный операций! А, это вы. Ну как?"';

    $Quest_Get '"Хорошо, майн шатц. Иди. И немножко торопись, а то больной люди может выздороветь раньше, чем вы придти."';

    $Quest_Check '"Майне кляне, не мешайт. Мне некогда. Старый Иоганн спешит на срочный операций! А, это вы. Ну как?"';

    $Quest_Status_err '"Ай-ай-ай! Фот и ферь после этого людьям! Фсе надо делать самому. А вы чего стоите! Идите отсюда, чтоб я вас здоровым у себья больше не фидел! Шнелле, шнелле!"';

    $Quest_Status_ok '"Фот спасипо фот фаше фознагрождение!"';

    if(
    $QuestStepThree == true){
        
    $Exp 100;
        
    $nv 10000;
        
    $Items[$i] = 116;
        
    $Items[$i] = 2335;
    echo 
    "<script>location='main.php';</script>";
        
    mysql_query("UPDATE `user` SET `exp`='".$exp[0]."|".($exp[1]+$Exp)."|".$exp[2]."' WHERE `id`='".$pers['id']."'");
        
    mysql_query("UPDATE `user` SET `nv`=nv+10000 WHERE `id`='".$pers['id']."'");
        
    mysql_query("INSERT INTO `invent` (`protype` ,`pl_id` ,`used` ,`iznos` ,`dolg` ,`price` ,`dd_price` ,`curslot` ,`clan` ,`gift` ,`gift_from`) VALUES ('116',  '".$player['id']."',  '0',  '0',  '10',  '10',  '0',  '0',  '0',  '1',  '".$gfrom."');");
        
    $result mysql_query(...);
    if(
    $result === FALSE) {
     echo 
    mysql_errno() . ": " mysql_error() . "\n";

       
    mysql_query("INSERT INTO `invent` (`protype` ,`arenda` ,`pl_id` ,`used` ,`iznos` ,`dolg` ,`price` ,`dd_price` ,`curslot` ,`clan` ,`gift` ,`gift_from`) VALUES ('2335', '1391872305', '".$player['id']."',  '0',  '0',  '500',  '10',  '0',  '0',  '0',  '1',  '".$gfrom."');");
        
    $result mysql_query(...);
    if(
    $result === FALSE) {
     echo 
    mysql_errno() . ": " mysql_error() . "\n";

        
    mysql_query("UPDATE `quest_completed` SET `que_st`='1' WHERE `que_id`='1' AND `usr_id`='".$pers['id']."'");
        
    mysql_query("INSERT INTO `chat` (`time`,`login`,`dlya`,`msg`) VALUES ('".time()."','sys','<".$pers['login'].">','".addslashes("top.frames['chmain'].add_msg('<font class=chattime>&nbsp;".date("H:i:s")."&nbsp;</font> <font color=000000><font color=#cc0000><b>Системная информация.</b></font> <b>Квест выполнен. Вы получили: <font color=#009900>Мирный Опыт (".$Exp.")</font>.</b></font><BR>'+'');")."');");
    }
    Выдача мирного опыта и запрос на деньги который я поставил выдает а вещи нет. Возможно проблема в запросе ?

    Всем спасибо проблему решил, ощибка была в запросе. Посмотрев в базу я увидел что запрос проходит и в таблицу добавляется, но добавляется В НЕ КУДА то есть проблема сразу была ясна в этом $player['id'] =) поменял на $pers['id'] и все заработало =)
     
    Последнее редактирование модератором: 8 май 2014