Крафтинг

Статус
В этой теме нельзя размещать новые ответы.

Denurade

Новичок
Репутация
0 / 13
Я сделал себе дроп вещей после боя...Вот как я сделал:
Создал поля в таблице person. В инвентаре сделал панель ингридиенты(там по штукам распределяеться). Теперь в кузнице создал вещь и засунул в раздел: Создание Предметов. Там как вы знаете нужны компоненты...Прописывать их надо в таблице craft. Прописал...Теперь хочу чтобы компоненты, которые нужны для того или иного предмета считывались с таблицы person. Но не считываеться параметры. Вот код:
Код:
<?
if (!empty($otdel)) {

        $shop=mysql_query("SELECT shop.*, items.name,title,price,tip,slot1,min_level,min,max,hp,br2,br3,strength,dex,agili
ty,krit,unkrit,uv,unuv,iznos,about,craft,class FROM shop, items where items.name=shop.name AND items.craft=1 ORDER BY items.price");

        echo"<table width=100% cellspacing=0 cellpadding=4>";

        $chislo = mysql_num_rows($shop);
        if ($chislo > 0) {

        for($i=0; $i<mysql_num_rows($shop); $i++) {
                $iteminfo=mysql_fetch_array($shop);

                $objects['tip']=$iteminfo['tip'];

                include('../includes/items/classes.php');
                include('../includes/items/items.php');

                $item_name = $iteminfo["name"];

       echo"
[CENTER]
<table border='2'  cellpadding='4' cellspacing='0' width='100%'>
<tr>
<td width='30%' align='center'>
                        <img src='../img/items/".$iteminfo['name'].".gif' alt='".$iteminfo['title']."'>

                        
                        <span onclick=\"if (confirm('Сделать предмет &quot;".$iteminfo['title']."&quot;?')) window.location='?otdel=".$otdel."&buy=".$iteminfo['name']."'\"   style='CURSOR: Hand'>[b]<font color=9D0708>Создать Предмет</font>[/b]</a></td>

<td width='70%'>

[b]<img src=../img/gift.gif alt=Подарок>".$iteminfo['title']."[/b]

Стоимость: [b]".$iteminfo['price']."[/b] <img src=../img/game/others/serebro.gif>

Долговечность: [b]<font color=9D0708>0[/b]/[b]".$iteminfo['iznos']."</font>[/b]

Тип предмета: [b][i]".$tip."[/i][/b]
";

if ($min_level || $min_str || $min_dex || $min_ag || $min_vit || $min_razum || $min_proff)
echo"
[b][i]Минимальные требования:[/i][/b]

$min_level$min_str$min_dex$min_ag$min_vit$min_razum$min_proff";

if ($hp || $energy || $min || $max || $strength || $dex || $agility || $vitality || $razum || $br1 || $br2 || $br5 || $br3 || $br4 || $krit || $mkrit || $unkrit || $uv || $unuv || $pblock) 
echo"
[b][i]Действие предмета:[/i][/b]

$hp$energy$min$max$strength$dex$agility$vitality$razum$br1$br2$br5$br3$br4$krit$mkrit$unkrit$uv$unuv$pblock";

        #echo "$item_name";
        $S = mysql_query("SELECT * FROM `craft` WHERE `item_id` LIKE '$item_name' ");
        if (mysql_num_rows($S) > 0) {
        $craft = mysql_fetch_array($S);
            echo "[b]Требуемые компоненты:[/b]";

            $SC1 = mysql_query("SELECT * FROM `objects` WHERE `user` =  '$stat[user]' AND inf LIKE '%$craft[c1]%' ");
            if (mysql_num_rows($SC1) > 0) {$color="000000";}
            else {$color = "color=red";}

            $SC2 = mysql_query("SELECT * FROM `objects` WHERE `user` =  '$stat[user]' AND inf LIKE '%$craft[c2]%' ");
            if (mysql_num_rows($SC2) > 0) {$color2="000000";}
            else {$color2 = "color=red";}

            $SC3 = mysql_query("SELECT * FROM `objects` WHERE `user` =  '$stat[user]' AND inf LIKE '%$craft[c3]%' ");
            if (mysql_num_rows($SC3) > 0) {$color3="000000";}
            else {$color3 = "color=red";}
            
                        $SC4 = mysql_query("SELECT * FROM `objects` WHERE `user` =  '$stat[user]' AND inf LIKE '%$craft[c4]%' ");
            if (mysql_num_rows($SC4) > 0) {$color4="000000";}
            else {$color4 = "color=red";}
            
            $SC5 = mysql_query("SELECT * FROM `objects` WHERE `user` =  '$stat[user]' AND inf LIKE '%$craft[c5]%' ");
            if (mysql_num_rows($SC5) > 0) {$color5="000000";}
            else {$color5 = "color=red";}

            echo "
[b]◊[/b] <font $color>$craft[c1]</font>";
            if ($craft[c2] !="") {
              echo "
[b]◊[/b] <font $color2>$craft[c2]</font>";
              if ($craft[c3] !="") {
                echo "
[b]◊[/b] <font $color3>$craft[c3]</font>";
                       if ($craft[c4] !="") {
                        echo "
[b]◊[/b] <font $color4>$craft[c4]</font>";
                                 if ($craft[c5] !="") {
                                echo "
[b]◊[/b] <font $color5>$craft[c5]</font>";
              }
              }
              }
            }
        }


if ($iteminfo['about']) echo"
[b][i]Дополнительная информация:[/i][/b]
".$iteminfo['about']."";

echo"</td></tr></table>[/CENTER]
";
                
        }

} else {
echo "[CENTER]
  <table border='1' background='../img/gamedw/main/inman_fon2.gif' cellpadding='0' cellspacing='0' style='padding:5; border-collapse: collapse' bordercolor='#D8C792' width='100%'>
    <tr>
      <td align='center'>
Вещей в разделе нет.
</td></tr></table>[/CENTER]";
}

}

?>
Как сделать так чтобы не из object бы считывалась а с таблицы person..Делал так:
Код:
$SC3 = mysql_query("SELECT * FROM `person` WHERE `user` =  '$stat[user]'");
Но не помогает...Прошу кто может разберетись...Спасибо за внимание...
 
Ну вы не поняли меня..Я создал новые поля....И хочу чтобы информация считывалась оттуда...А не как object...Просто когда object, то нагрузка ужасная..В инвентрае 1000 ресурсов появляеться..Вот почему...Есть идеи?
 
чтобы меньше была нагрузка создай новую таблицу в базе и перенеси туда строки из objects которые необходимы (ато на person итак походу норм нагрузка идет) а потом перепиши запросы в скрипте :)
 
Спасибо за совет, но проблема будет в инвентаре...Я хочу чтобы там штуками бы показывалось..Хотябы алгоритм бы
 
всмысле штуками :) тоесть один предмет и в инфе о нём написано сколько штук этого предмета есть?
Можно так
Код:
$stat['resurs']
 
Да вот именно...Ну а я думаю если 1000 предметов, которые в objects будут больше нагружать систему чем поля в person где есть значения например 1000...Вы как думаете?
 
зачем тебе objects ты лучше сделай таблицу и там пусть храняться ресурсы а при выводе в инвентаре просто добавить вывод не кучей а
Код:
$stat['resurs']
 
Код:
            $SC1 = mysql_query("SELECT * FROM `person` WHERE `user` =  '$stat[user]' AND `ingredient` = '$stat[ingridient1]' ");
            if (mysql_num_rows($SC1) > 0) {$color="000000";}
            else {$color = "color=red";}

            $SC2 = mysql_query("SELECT * FROM `person` WHERE `user` =  '$stat[user]' AND `ingredient` = '$stat[ingridient2]' ");
            if (mysql_num_rows($SC2) > 0) {$color2="000000";}
            else {$color2 = "color=red";}

            $SC3 = mysql_query("SELECT * FROM `person` WHERE `user` =  '$stat[user]' AND `ingredient` = '$stat[ingridient3]' ");
            if (mysql_num_rows($SC3) > 0) {$color3="000000";}
            else {$color3 = "color=red";}
            
                        mysql_query("SELECT * FROM `person` WHERE `user` =  '$stat[user]' AND `ingredient` = '$stat[ingridient4]' ");
            if (mysql_num_rows($SC4) > 0) {$color4="000000";}
            else {$color4 = "color=red";}
            
            $SC5 = mysql_query("SELECT * FROM `person` WHERE `user` =  '$stat[user]' AND `ingredient` = '$stat[ingridient5]' ");
            if (mysql_num_rows($SC5) > 0) {$color5="000000";}
            else {$color5 = "color=red";}
 
спс конечно те тоже))Но система такова..В бд пишу имя вещи в таблице craft и ресурсы нужные...То что ты написал конкретно то что надо вот он и берёт это..А мне над то что бд...Ну как я понял это целая попа делать:)А как сделать так чтобы ресы в инвентаре были бы в количестве указаны, но учтите что данные беруться из таблицы objects
 
Создаеш таблицу ingredients (или както так) туда кидаеш все ресурсы и делаеш так что бы проверка,добыча ну вообщем все ишло от туда,как бы отдельная таблица куда будут скидываться ресурсы,потом там создаеш поле в котором будет храниться количество данного ресурса,далее когда хочеш применить этот ресурс ставиш запрос который умешнает количество ресурса :) :) :) думаю что ты ничего не понял
 
Вот обьясню поподробнее:
В бой засунул типо такой фигни:
Код:
if ($opp_stat['rank'] == 60){    
$suka3=rand(0,30);
if ($suka3==12) {
mysql_query("UPDATE person SET res1=res1+1 WHERE id='".$stat['id']."'");
require_once("jumla/ahnoto/chat_insert.php");
                    insert_msg("Вы случайно нашли [b][u]Осколок гранита[/u][/b]!","","","1",$stat['user'],"",$stat['room']);}}
Теперь как в крафтинге сделать чтобы:
Если колво данного ресурса больше 0, то можно создать предмет..Если 0 то нельзя...Как сделать?
 
Теперь как в крафтинге сделать чтобы:
Если колво данного ресурса больше 0, то можно создать предмет..Если 0 то нельзя...Как сделать?
Код:
if ($stat['res1'] > 0)
 
всмысле с бд :) а так она что не с бд считываеться :)
 
Denurade Ты можешь грамотно поставить задачу? и дать исходные данные!

Из всего вышеперечислинного я понял что ресурсы выпадают в бою, дальше ничего не понял что где когда!
 
Я выше вроде нормально всё описал...А то что ты не понял-это дело твоё
 
Я сделал себе дроп вещей после боя...Вот как я сделал:
Создал поля в таблице person. В инвентаре сделал панель ингридиенты(там по штукам распределяеться). Теперь в кузнице создал вещь и засунул в раздел: Создание Предметов. Там как вы знаете нужны компоненты...Прописывать их надо в таблице craft. Прописал...Теперь хочу чтобы компоненты, которые нужны для того или иного предмета считывались с таблицы person. Но не считываеться параметры...

Ну вы не поняли меня..Я создал новые поля....И хочу чтобы информация считывалась оттуда...А не как object...Просто когда object, то нагрузка ужасная..В инвентрае 1000 ресурсов появляеться..Вот почему...Есть идеи?

Да вот именно...Ну а я думаю если 1000 предметов, которые в objects будут больше нагружать систему чем поля в person где есть значения например 1000...Вы как думаете?

спс конечно те тоже))Но система такова..В бд пишу имя вещи в таблице craft и ресурсы нужные...То что ты написал конкретно то что надо вот он и берёт это..А мне над то что бд...Ну как я понял это целая попа делать:)А как сделать так чтобы ресы в инвентаре были бы в количестве указаны, но учтите что данные беруться из таблицы objects

Вот обьясню поподробнее:
В бой засунул типо такой фигни:
Код:
if ($opp_stat['rank'] == 60){    
$suka3=rand(0,30);
if ($suka3==12) {
mysql_query("UPDATE person SET res1=res1+1 WHERE id='".$stat['id']."'");
require_once("jumla/ahnoto/chat_insert.php");
                    insert_msg("Вы случайно нашли [b][u]Осколок гранита[/u][/b]!","","","1",$stat['user'],"",$stat['room']);}}
Теперь как в крафтинге сделать чтобы:
Если колво данного ресурса больше 0, то можно создать предмет..Если 0 то нельзя...Как сделать?

Я выше вроде нормально всё описал...А то что ты не понял-это дело твоё


Прочитай свои посты, и ткни пальцем туда где ты "нормально всё описал". и не надо кидаться на людей, которые тебе помогают.
 
Ну если вы это не поняли ничё...Вот дроп вещи в бою:
Код:
$zimbap=rand(0,25);
if ($zimbap=1){
mysql_query("INSERT INTO `objects` (`user`,`inf`,`min`,`tip`,`time`, `about`) VALUES ('".$stat['user']."','ing_4esh_drak|Чешуя дракона|5.00|0|0|0|0|1','0|0|0|0|0|0|0|0','23','".time()."', 'Ингридиент')");
require_once("inc/chat/functions.php");
$msg("После побя вам случайно выпала [b]Чешуя дракона[/b]!","","","1",$stat['user'],"",$stat['room']);}
Вот как сделать так чтобы ресурс выпадал бы только один раз...А то так по 1000 штук набираеться...Ну какую проверку поставить?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху