Новый модуль

  • Автор темы revofenomen
  • Дата начала
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #61
Спасибо еще раз огромное! Так и правда все работает и занимает меньше места! :)
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #62
Вот еще одна задачка..

Сделал в игре опыт и уровни. С опытом проблем нет. А вот не могу прикрутить опыт к уровням правильно. Т.е. чтобы при получении определенного к-ва опыта - получался определенный уровень.
Нашел пару скриптов игр с уровнями - но там такая белиберда, что сам черт ногу сломит. И проверить не возможно, потому что скрипты коцанные..
Суть в чем. Вытащил из одного скрипта из бд таблицу вида:

id: 1 2 3 4 5 6 7
level: 1 2 3 4 5 6 7
exp: 100 200 400 800 1600 3200 6400


(пока правда не пойму зачем тут id, но это не важно). Так вот нужно создать условие, чтобы при определенном уровне считался определенный опыт до уровня.

Делаем запрос в бд где эта таблица с переменными:
$db->Query("SELECT * FROM db_level WHERE id = '1' LIMIT 1");
$level_data = $db->FetchArray();


Есть переменные у юзера для опыта и уровня типа $user_exp и $user_lvl
Создаем в пхп, что
$level_data["level"] = $user_lvl - тоесть приравниваем уровень юзера к необходимому уровню в таблице в бд.

И вот дальше я не пойму как сделать
нужно в соответствии с уровнем (как в таблице и у игрока) сделать соответствие опыта игрока и в таблице. Т.е. если у игрока становится опыта >= необходимого для нового уровня то уровень повышается!

Пример: у меня 3 уровень и 750 опыта. Совершив действия я получил +100 опыта и, соответственно, должен получить 4 уровень.

Просто если тупо прописать в пхп данные насчет каждого уровня и соответствующего опыта - может получиться ерунда (скорее всего так и будет). Нужно чтобы данные брались из таблицы в бд. - КАК ЭТО СДЕЛАТЬ?

Или может у кого есть другие варианты как это сделать? Заранее спасибо!
 
MegaGoblin
PHP, JS, AJAX, CSS, HTML
Участник
Сообщения
322
Реакции
72
  • #63
skroliks написал(а):
Вот еще одна задачка..

Сделал в игре опыт и уровни. С опытом проблем нет. А вот не могу прикрутить опыт к уровням правильно. Т.е. чтобы при получении определенного к-ва опыта - получался определенный уровень.
Нашел пару скриптов игр с уровнями - но там такая белиберда, что сам черт ногу сломит. И проверить не возможно, потому что скрипты коцанные..
Суть в чем. Вытащил из одного скрипта из бд таблицу вида:

id: 1 2 3 4 5 6 7
level: 1 2 3 4 5 6 7
exp: 100 200 400 800 1600 3200 6400


(пока правда не пойму зачем тут id, но это не важно). Так вот нужно создать условие, чтобы при определенном уровне считался определенный опыт до уровня.

Делаем запрос в бд где эта таблица с переменными:
$db->Query("SELECT * FROM db_level WHERE id = '1' LIMIT 1");
$level_data = $db->FetchArray();


Есть переменные у юзера для опыта и уровня типа $user_exp и $user_lvl
Создаем в пхп, что
$level_data["level"] = $user_lvl - тоесть приравниваем уровень юзера к необходимому уровню в таблице в бд.

И вот дальше я не пойму как сделать
нужно в соответствии с уровнем (как в таблице и у игрока) сделать соответствие опыта игрока и в таблице. Т.е. если у игрока становится опыта >= необходимого для нового уровня то уровень повышается!

Пример: у меня 3 уровень и 750 опыта. Совершив действия я получил +100 опыта и, соответственно, должен получить 4 уровень.

Просто если тупо прописать в пхп данные насчет каждого уровня и соответствующего опыта - может получиться ерунда (скорее всего так и будет). Нужно чтобы данные брались из таблицы в бд. - КАК ЭТО СДЕЛАТЬ?

Или может у кого есть другие варианты как это сделать? Заранее спасибо!
Что у тебя по конкретному юзеру есть в БД? Уровень и опыт?

Можно сделать двумя способами
PHP:
$levels_info = array();
$db->Query("SELECT * FROM db_level");
$i = 1;
while($data = $db->FetchArray()){
    $levels_info[] = $data; 
    $i++;
}
// Теперь в $levels_info у тебя хранится таблица из бд

$expForFourLevel =  $levels_info[4]['exp']; // сколько опыта надо для 4-го уровня
Потом полученное значение сравниваешь с текущем опытом и смотришь получил ли юзер повышение в уровне.

Если есть у тебя текущий уровень, то можно сделать так:
PHP:
$nextLevel = $user_lvl + 1;

$db->Query("SELECT * FROM db_level WHERE level = '$nextLevel' LIMIT 1");
$level_data = $db->FetchArray();

$expForFourLevel = $level_data['exp']; // сколько опыта надо для следующего уровня
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #64
$nextLevel = $user_lvl + 1;
$db->Query("SELECT * FROM db_level WHERE level = '$nextLevel' LIMIT 1");
$level_data = $db->FetchArray();
$expForLevel = $level_data['exp']; // сколько опыта надо для следующего уровня


Это больше подходит! Только как теперь привязать условие, что если при получении опыта большего, чем нужно для следующего уровня - дается новый уровень? Если я правильно думаю, то надо сделать что-то вроде:

If ($exp (опыт который получили) + $user exp (опыт который у игрока) >= $expforlevel) {
$db->Query("UPDATE db_users_b SET user_lvl = user_lvl + 1 WHERE id = '$usid'");
echo "Вы получили $user_lvl уровень!"
}

(ну синтаксис и оформление правильно я смогу сделать) - главное - правильно ли мыслю??
 
MegaGoblin
PHP, JS, AJAX, CSS, HTML
Участник
Сообщения
322
Реакции
72
  • #65
skroliks написал(а):
$nextLevel = $user_lvl + 1;
$db->Query("SELECT * FROM db_level WHERE level = '$nextLevel' LIMIT 1");
$level_data = $db->FetchArray();
$expForLevel = $level_data['exp']; // сколько опыта надо для следующего уровня


Это больше подходит! Только как теперь привязать условие, что если при получении опыта большего, чем нужно для следующего уровня - дается новый уровень? Если я правильно думаю, то надо сделать что-то вроде:

If ($exp (опыт который получили) + $user exp (опыт который у игрока) >= $expforlevel) {
$db->Query("UPDATE db_users_b SET user_lvl = user_lvl + 1 WHERE id = '$usid'");
echo "Вы получили $user_lvl уровень!"
}

(ну синтаксис и оформление правильно я смогу сделать) - главное - правильно ли мыслю??
>> $db->Query("UPDATE db_users_b SET user_lvl = user_lvl + 1 WHERE id = '$usid'");
Не забудь еще обновить текущий опыт пользователя.
И возможно надо сделать после этого еще одну проверку, вдруг пользователь получил сразу несколько уровней.
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #66
Я попробовал - все работает! Что бы я без Вас делал! :)

А как обновить текущий опыт пользователя? Это команда какая-то?
 
MegaGoblin
PHP, JS, AJAX, CSS, HTML
Участник
Сообщения
322
Реакции
72
  • #67
skroliks написал(а):
Я попробовал - все работает! Что бы я без Вас делал! :)

А как обновить текущий опыт пользователя? Это команда какая-то?
Так же как и уровень
$db->Query("UPDATE db_users_b SET user_lvl = user_lvl + 1 WHERE id = '$usid'");
$db->Query("UPDATE db_users_b SET user_exp = user_exp + '$exp' WHERE id = '$usid'");

Либо одним запросом
$db->Query("UPDATE db_users_b SET user_lvl = user_lvl + 1, user_exp = user_exp + '$exp' WHERE id = '$usid'");
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #68
Ааааааааааа!! Точно!!! :sila:
Из-за того, что я не добавлял эту строчку - у меня никак не получалось в другом месте! Хотел уже в личку писать с просьбой о помощи!!
:beer2:
 
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
  • #69
И всем вопрос,как сделать апгрейд фруктов,чтоб он после апгрейда стал давать больше урожая? Че то совсем ни одна мысля в голову не идет,подскажет может кто?
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #70
alexsoft59 написал(а):
И всем вопрос,как сделать апгрейд фруктов,чтоб он после апгрейда стал давать больше урожая? Че то совсем ни одна мысля в голову не идет,подскажет может кто?
Модуль надо писать. По типу того, что мы тут обсуждали.. Это парой строк не опишешь..
У тебя каждый фрукт приносит определенное к-во плодов в час. Нужно сделать так, чтобы когда у фрукта повышался уровень - переменная, которая отвечает за к-во плодов в час изменялась на нужное..
 
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
  • #71
skroliks написал(а):
Модуль надо писать. По типу того, что мы тут обсуждали.. Это парой строк не опишешь..
У тебя каждый фрукт приносит определенное к-во плодов в час. Нужно сделать так, чтобы когда у фрукта повышался уровень - переменная, которая отвечает за к-во плодов в час изменялась на нужное..
Так понятно что надо писать,только не пойму сам процесс этого апгрейда как происходить должен вот??
 
kvozimir
Участник
Сообщения
1.935
Реакции
409
ICQ
734713 734713
Skype
  • #72
alexsoft59 написал(а):
И всем вопрос,как сделать апгрейд фруктов,чтоб он после апгрейда стал давать больше урожая? Че то совсем ни одна мысля в голову не идет,подскажет может кто?
вискас сделал такое) вип аккант называется) один оплатой серебром другой оплатой паер:)
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #73
kvozimir написал(а):
вискас сделал такое) вип аккант называется) один оплатой серебром другой оплатой паер:)
Я думаю он немного не об этом..
alexsoft59 написал(а):
Так понятно что надо писать,только не пойму сам процесс этого апгрейда как происходить должен вот??
Что именно тебе не понятно? Делаешь возле каждого фрукта кнопочку "Апгрейд" - при нажатии на нее списывается с баланса необходимая сумма и у фрукта меняются параметры.. Можно для апгрейда отдельную вкладку с фруктами сделать и кнопочками..

Суть только в чем - у тебя только один фрукт покупать можно одного вида или много? Просто если много и они у тебя все в одном слоте - тогда нужно апгрейдить сразу все - по одному будет проблематично.. Как вариант - возможность покупать только 1 фрукт каждого вида и вместо покупки второго - апгрейд.. Но по сути это ничего не меняет.. Что у тебя будет 1 фрукт и покупать ему апгрейды, что будет возможность покупать много фруктов - тогда прибыль тоже увеличивается - смысл один и тот же..
 
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
  • #74
skroliks написал(а):
Я думаю он немного не об этом..

Что именно тебе не понятно? Делаешь возле каждого фрукта кнопочку "Апгрейд" - при нажатии на нее списывается с баланса необходимая сумма и у фрукта меняются параметры.. Можно для апгрейда отдельную вкладку с фруктами сделать и кнопочками..

Суть только в чем - у тебя только один фрукт покупать можно одного вида или много? Просто если много и они у тебя все в одном слоте - тогда нужно апгрейдить сразу все - по одному будет проблематично.. Как вариант - возможность покупать только 1 фрукт каждого вида и вместо покупки второго - апгрейд.. Но по сути это ничего не меняет.. Что у тебя будет 1 фрукт и покупать ему апгрейды, что будет возможность покупать много фруктов - тогда прибыль тоже увеличивается - смысл один и тот же..
Так в этом то и проблема,что нужно каждый фрукт по отдельности делать апгрейд,все то это не велика проблема сделать,а это проблематично и даже не понятно как это должно выглядеть...) Все проапгрейдить это вполне просто можно чуточку переписать модуль апгрейда аккаунта и все...))
 
MegaGoblin
PHP, JS, AJAX, CSS, HTML
Участник
Сообщения
322
Реакции
72
  • #75
alexsoft59 написал(а):
Так в этом то и проблема,что нужно каждый фрукт по отдельности делать апгрейд,все то это не велика проблема сделать,а это проблематично и даже не понятно как это должно выглядеть...) Все проапгрейдить это вполне просто можно чуточку переписать модуль апгрейда аккаунта и все...))
Делать отдельную колонку для подсчета улучшенных деревьев. При сборе смотреть кол-во улучшенных, умножать их на некий коэффициент и добавлять к собранным фруктам
 
RusRus198
Участник
Сообщения
9
Реакции
1
  • #76
Так как на счет "также нужно придумать сколько времени должны хранится фрукты что б не портились думаю 24 часа будет норм", можно реализовать???
 
Сверху