как сделать покупку предметов?
|
|
PONTIAC_GTO | Дата: Понедельник, 31 Марта 2014, 12:00 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Вот я делаю текстовую игру, мне нужно реализовать покупку предметов из магазина.
Сам магазин я сделал. Есть таблица со всеми предметами и с указанием категорий(ид, названае, описание, цена, иконка и категория). На странице я все это вывожу циклом ду вайл, и добавляю при этом кнопку для покупки.
2 таблица это склад. Где должно храниться данные о том сколько у персонажа предметов и их количество. Так вот , как тогда должна быть устроена 2 таблица для этого? Добавлением новой записи? Если так, то тогда если у меня 100 к примеру предметов и записей будет тоже 100 только для одного. А если в игре 10000 тоже к примеру игроков, то это будет ахренеть как много записей. Как поступать в такой ситуации?
И второй вопрос, как мне определить ид, при нажатии на кнопку Купить, для записи в таблицу? Проверку ид делать? Но там же и так циклом выводит, я не знаю как это сделать.
|
|
| |
lvovand | Дата: Понедельник, 31 Марта 2014, 12:48 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| ну 100 вещей у одного персонажа, это как-то перебор наверно, скорее у персонажа будет десяток разных типов предметов, и даже если тысячи игроков, ну значит будет сотня тысяч записей, при том что если кол-во предметов где-то станет равным нулю, то запись можно удалять, если счет игроков пойдет на сотни тысяч, ну что-то придется думать, например разделить предметы по нескольким таблицам в зависимости от id игрока.
второй вопрос не очень понятен, проверку надо делать полную на все при покупке, сделай это аяксом, и красиво будет, и удобно
Разработка и продвижение сайтов. Дизайн
|
|
| |
PONTIAC_GTO | Дата: Понедельник, 31 Марта 2014, 12:54 | Сообщение # 3 |
почетный гость
Сейчас нет на сайте
| не надо чисто на php
|
|
| |
lvovand | Дата: Понедельник, 31 Марта 2014, 12:58 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| если чисто на php, то сделай либо радибаттон, который будет id покупки передавать, либо отдельно форму на каждый предмет и в скрытом поле передавай id предмета для покупки
Разработка и продвижение сайтов. Дизайн
|
|
| |
PONTIAC_GTO | Дата: Понедельник, 31 Марта 2014, 13:15 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| у меня только 20 вид трав, около 15 видов предметов для строительства, более 50 квестовых предметов.
|
|
| |
lvovand | Дата: Понедельник, 31 Марта 2014, 13:46 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| не одновременно же они все сразу у игрока, ну а потом таблица получается просто из целых чисел, id_предмета, id_игрока и кол-во предметов, тормозить в ней особо нечему
Разработка и продвижение сайтов. Дизайн
|
|
| |
Vano1930 | Дата: Суббота, 31 Мая 2014, 14:29 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| лично я делал покупку так: в бд есть таблица содержащая все товары в магазине, через цикл перебираем их и выводим на станицу магазина, под каждым товаром ссылка купить, в ней хранится два get-параметра, id товара, и id пользователя, из сессии, при нажатии на кнопку купить, товар добавляется в таблицу с инвентарем персонажа, снимается n-ная сумма игровой валюты итд, в таблице с инвентарем храни id купленного товара и id юзера который купил, как то так, и это всё без всяких js, ajax итд сделать можно
|
|
| |
SplashUa | Дата: Вторник, 10 Июня 2014, 11:57 | Сообщение # 8 |
уже был
Сейчас нет на сайте
| это не так уж и трудно =)
Код While ($w = mysql_fetch_array($q)){
echo "Название: $w[name]<br>Цена: $w[cost]<br><a href='shop.php?sd=buy&id=$w[id]'>Купить</a><br>";
}
это как пример,под свой скрипт переделаешь.. ID вещи ты берёшь из массива(ничего сложного),и передаёшь ГЕТ запросом этот ID вещи в файл(либо кейс) где будет обрабатываться покупка,снятие денег,перенос вещи на склад персонажа(ID его в сессии возьми,или заранее в конфиге дай переменную $user_id = $_SESSION['user_id'])..
а по поводу кол-ва записей,решается всё просто,делаешь ограничение склада в 20-30 единиц,в случаи чего,введи правило в игру,что персонаж,не посещавший игру более 4-ёх месяцев(к примеру),будет удалён,соответственно и его вещи и т.д. и т.п.!Добавлено (10.06.2014, 11:57) --------------------------------------------- сделай тогда разные таблицы к примеру,одна для экипировки чисто,другая для прочих предметов,а третья для квестовых вещей)
|
|
| |
Dinoiera | Дата: Понедельник, 16 Июня 2014, 17:27 | Сообщение # 9 |
участник
Сейчас нет на сайте
| только не забудь вставить условие на наличие.. иначе получишь баг с продажей.(к примеру есть стандартный баг всех браузрных игру - возврат страницы... игрок продал 10 трав, вернулся продал еще, вернулся[кнопка назад в браузере] и т.д.) делается просто.. проверяешь перед функцией продажи условие на наличие предмета по ид
Помогаю чем могу и прошу взаимной помощи) DCH - сайт разработчиков игр(новый проект)
|
|
| |