логика одеть/снять вещь php

программирование php логика

как правильно изменять характеристики персонажа при одевании/снятии вещи? в таблице users храниться все характеристики персонажа(крит, уворот, статы, урон и т.д.) в таблице вещей (для каждого вида отдельная, есть свои характеристики) ну и таблица инвентаря, где хранятся все вещи персонажа, и одеты они или нет
так вот, я одеваю вещь... что дальше делать? как правильно производить подсчеты? одел одну вещь, если слот был пуст то ищем х-ки в таблице той вещи и прибавляем в таблицу users, но если слот был занят, то сначала отнимаем х-ки снятой вещи, и производим опять же прибавления х-к надетой вещи, так правильно?

Примечание:
и вчерашний вопрос, вот решение, как оптимизировать?


$active_item="SELECT * FROM inv WHERE owner='$user' AND active=1";
$items=mysql_query($active_item);
while($take_items = mysql_fetch_array($items)){
$id_key = $take_items[id]; // уникальный id вещи в инвентаре
$obj_type = $take_items[obj_type]; // тип вещи для поиска по таблице вещей
$obj_id = $take_items[obj_id]; // id вещи для нахождения вещи с таблицы
$disp = mysql_query('SELECT * FROM '.$obj_type.' WHERE id='.$obj_id.'');
$display_items = mysql_fetch_array($disp); // выводит имя, картинку для каждой активной вещи

потом
if($obj_type == "helm"){
$helm_type = $obj_type;
$helm_key = $id_key;
$helm_img = $display_items[img];
}

if($obj_type == "armor"){
$armor_type = $obj_type;
$armor_key = $id_key;
$armor_img = $display_items[img];
}


if($helm_key){
print("<a href='/pers.php?act=unwear&type=$helm_type&id=$helm_key'><li class='slot slot-1 helmet tooltip'><img src='$helm_img'/></li></a>");
}
else{
print("<li class='slot slot-1 helmet helmet-empty tooltip'></li>"); // слот пуст
}

if($armor_key){
print("<a href='/pers.php?act=unwear&type=$armor_type&id=$armor_key'><li class='slot slot-2 armor tooltip'><img src='$armor_img'/></li></a>");
}
else{
print("<li class='slot slot-2 armor armor-empty tooltip'></li>"); // слот пуст
}

и так для каждой вещи, как организовать ПРАВИЛЬНЫЙ цикл что бы избежать огромного количества кода?
P.S. проверяю только 4 вида вещей, дальше не стал делать, понимаю что не правильно

Примечание:
"Мечта идиота" =)

Примечание:
и тишина...

Примечание:
если сам не смогу решить, то можно... но вроде иду в правильном направлении
Ответы:
что за игра ?
Мог бы подробно описать вариант построения алгоритма для вашего случая, но за определённое вознаграждение и не в рамках ВиО.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.