Выдача наград

Ильйа

Старейшина
Репутация
121 / 629
И так здравствуйте) Хотел бы вашего совета как реализовать награды, но как можно оптимизированее...
Должно выглядить так, юзер заходить в раздел, скрипт проверят убил ли он столько человек если убил показывается награда, но к тому же должен быть еще бонус типа денежный... Вот думаю как реализовать с минимум действий.
Придется наверное сделать таблицу с наградами, и поле у юзера какие у него награды есть.
$res ("SELECT nagrada FROM users LEFT JOIN users.nagrada=nagrada.id WHERE nagrada='.$id'")
Идей дальше нет, может и выборка тоже кривая x)
 
И так здравствуйте) Хотел бы вашего совета как реализовать награды, но как можно оптимизированее...
Должно выглядить так, юзер заходить в раздел, скрипт проверят убил ли он столько человек если убил показывается награда, но к тому же должен быть еще бонус типа денежный... Вот думаю как реализовать с минимум действий.
Придется наверное сделать таблицу с наградами, и поле у юзера какие у него награды есть.
$res ("SELECT nagrada FROM users LEFT JOIN users.nagrada=nagrada.id WHERE nagrada='.$id'")
Идей дальше нет, может и выборка тоже кривая x)

я советую тебя сделать по другому...
В юзерс ничего не вмешиваться, ибо там и так хватает... а создать отдельную таблицу где будет: логин или айди пользователя, название награды, картинку и допустим описание награды.. с таким модулем и логикой сможешь делать какие хочешь награды... если волнует оптимизация, то сократить количество ячеек в таблице...
 
Должно давать награду, и приписывать к награде 1, если 1 то уже был вручен приз за награду. Так?
 
И так здравствуйте) Хотел бы вашего совета как реализовать награды, но как можно оптимизированее...
Должно выглядить так, юзер заходить в раздел, скрипт проверят убил ли он столько человек если убил показывается награда, но к тому же должен быть еще бонус типа денежный... Вот думаю как реализовать с минимум действий.
Придется наверное сделать таблицу с наградами, и поле у юзера какие у него награды есть.
$res ("SELECT nagrada FROM users LEFT JOIN users.nagrada=nagrada.id WHERE nagrada='.$id'")
Идей дальше нет, может и выборка тоже кривая x)
по идее если хочешь чтобы награда показывалась за убитых мобов определенного типа
я бы сделал таблицу в ней хранил статистику заслуг игрока,
в еще одной таблице награды описание и требуемые заслуги награды либо игрался со состоянием вещи, добавляя их в таблицу предметов в игре
и просто делал выборку из 2 таблиц БД , потом выводил где надо :unsure:
 
Я же говорил, слишком много тогда будет в бд записей... Хотя если просто добавляется юзер в награды, а список наград через запятую. Т.е добавляется награда, и дается приз за награду.
 
имеем таблицу
nagrada
там
id
images
text

и например при выполнении условия квеста делаем
INSERT INTO `nagrada` ( `id` , `images` , `text`) VALUES ('idpersa', 'nagrada/1', 'Убил 50 мобов')
ну и далее вывод всего этого

хз думаю лучше чем explode и куча других костылей
 
Должно давать награду, и приписывать к награде 1, если 1 то уже был вручен приз за награду. Так?

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

если нет то просто 1 поле к юзерс таблице добавь и храни там все награды с помощью функции serialize() unserialize() а награды добавь к таблице вещей обозначь за любой не используемый слот

и тогда вообще таблиц делать не надо, но выборку тогда из БД норм не сделаешь статистики наград :lol:
 
Должно выглядить так, юзер заходить в раздел, скрипт проверят убил ли он столько человек если убил показывается награда, но к тому же должен быть еще бонус типа денежный... Вот думаю как реализовать с минимум действий.

Гмм.
А что мешает после каждого поежинка проверять количество побед?
Как только количество побед приравнивается к определённому числу - выдавать награду.
А в информации персонажа проверка в базу: Если количество побед больше-равно требуемому - отображать картинку.

Ни одной дополнительной ячейки в таблицы - используется всё как есть.
Может процесс и можно сократить еще сильней, чтобы тоже без лишних записей и правок базы, но я пока не вижу как...
 
Сверху