Суббота, 20 Апреля 2024, 16:43

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » Саааааааааааша [2]
Результаты поиска
СааааааааааашаДата: Вторник, 06 Декабря 2011, 04:00 | Сообщение # 1 | Тема: Отображение вещей (браузерная игра)
был не раз
Сейчас нет на сайте
Вот так сделал, может кому-то пригодиться
В таблице хранятся поля под каждый слот, если слот пуст то значение равно 0, если занят то отображаться id вещи. Сначала отправляю запрос в таблицу, получаю ответ, в переменные сохраняю значение каждого слота, потом:

for($i = 1; $i <=15; $i++){
if($items_array[$i] >= 1){
$obj_type = mysql_query("SELECT inv.obj_type FROM inv WHERE id='$items_array[$i]'");
$obj_type = mysql_fetch_array($obj_type);
$sql = mysql_query("SELECT * FROM $obj_type[obj_type] WHERE id IN(SELECT inv.obj_id FROM inv WHERE id='$items_array[$i]')");
$sql = mysql_fetch_array($sql);
print("<li class='slot slot-$i $slot[$i] tooltip'><img src='$sql[img]'/></li>");
}
else{
print("<li class='slot slot-$i $slot[$i] $slot[$i]-empty tooltip'></li>");
}
}

Циклом перебираю каждую переменную (не нужно косо смотреть из-за использования for), если значение >= 1 то мигрирую в таблицу вещей и получаю картинку, название и т.д.
Если 0, то отображаю пустой слот, запросов много, как сделать по другому не знаю, да и остановил работу, сложно одному делать все (
СааааааааааашаДата: Понедельник, 21 Ноября 2011, 02:25 | Сообщение # 2 | Тема: Отображение вещей (браузерная игра)
был не раз
Сейчас нет на сайте
Пишу если можно так сказать клона одной браузерной игры, и не спрашивайте зачем.
Интересует как правильно отображаться вещи персонажа в инвентаре/анкете, то есть как производить выборку
Все вещи персонажей хранятся в таблице inv где есть тип вещи и ее id (для поиска в таблице вещей), слот вещи, так же одета вещь или нет.
если слот занят то выводим одну строке, а если пуст то другую, вообщем как оптимизировать код? что бы обойтись без кучи кода, вот пример кода для проверки одной вещи =)

$sql_helm = mysql_query("SELECT * FROM inv WHERE owner='$user' AND obj_slot='helm' AND active=1");
$helm = mysql_fetch_array($sql_helm);
if($helm){
$id = $take_items[id];
$obj_type = $take_items[obj_type];
$obj_id = $take_items[obj_id];
$obj_slot = $take_items[obj_slot];
$take_obj_type_id = mysql_query('SELECT * FROM '.$obj_type.' WHERE id='.$obj_id.'');
$display_items = mysql_fetch_array($take_obj_type_id);
$img = $display_items[img];
$name = $display_items[name];
print('<a onmouseover="tooltip(this,\''.$name.'\')" onmouseout="hide_info(this)" href="/pers.php?act=unwear&slot='.$obj_slot.'&id='.$id.'"><li class=\'slot slot-'.$n.' '.$st.' tooltip\'><img src='.$img.'></li></a>');
}else{
print("<li class='slot slot-1 helmet helmet-empty tooltip'></li>");
}

и так нужно 30 раз, понимаю что можно через массив, но все попытки прошли безрезультатно
где так так думал (без кода, только логика =) )
выбираем данные с таблицы где активность = 1
понадобиться 3 переменные id вещи в инвентаре, тип вещи и ее id в соответствующей таблице, что бы получить, х-ки, имя, и т.д.
после каждого прохождения циклом по таблице мы сохраняем переменные с соответствующими данными и выводим вещь через код указанные выше, если не все слоты были заняты то для них выводим "<li class='slot slot-1 helmet helmet-empty tooltip'></li> где вместо helmet будет название вещи, может кто помочь?

Добавлено (21.11.2011, 02:20)
---------------------------------------------
хотя кажется и тут проблемы, тогда если можно предложите решение для моего случая

Добавлено (21.11.2011, 02:25)
---------------------------------------------
куча кода, от которого нету толку cry

Форум игроделов » Записи участника » Саааааааааааша [2]
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг