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

MysticW0

Постоялец
Регистрация
16 Янв 2014
Сообщения
112
Реакции
4
Люди не могу понять почему не выдает вознаграждения за выполнения квеста. Вот сам квест подскажите где ошибка т.к в запросе не вижу ошибки ... Мирный опыт выдает а вещи в инвентарь нет.
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."');");
}
 
Я могу ошибаться но мне кажется что ошибка в этой строчке
PHP:
echo "<script>location='main.php';</script>";
JS срабатывает и перенаправляет на main.php а весь остальной код не выполняется.
 
Я могу ошибаться но мне кажется что ошибка в этой строчке
PHP:
echo "<script>location='main.php';</script>";
JS срабатывает и перенаправляет на main.php а весь остальной код не выполняется.
Нет это не ошибка даже если убрать эту строчку то все так же =)))
 
mysql_query() возвращает TRUE в случае успеха и FALSE в случае ошибки.
Расставь проверки после каждого запроса:
PHP:
$result = mysql_query(...);
if($result === FALSE) {
  echo mysql_errno() . ": " . mysql_error() . "\n";
}
И узнаешь в чём именно сбой.

Я могу ошибаться но мне кажется что ошибка в этой строчке
PHP:
echo "<script>location='main.php';</script>";
JS срабатывает и перенаправляет на main.php а весь остальной код не выполняется.
Выхода из скрипта php через retern, exit или даже die() нет, так что код после этой строчки будет обрабатываться.
 
Расставь проверки после каждого запроса:
PHP:
$result = mysql_query(...);
if($result === FALSE) {
  echo mysql_errno() . ": " . mysql_error() . "\n";
}
И узнаешь в чём именно сбой.


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

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'] и все заработало =)
 
Последнее редактирование модератором:
Назад
Сверху