Проблемки. Кузнец

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

fdfdgdg

Новичок
Репутация
0 / 182
Может у кого то тоже так было поначалу... у меня Кузнец может вставлять в вещи неограненые камни, свеже выкопаные.
Надо это как то пофиксить. сборка iow_by_AlexPro_120108. Где это можно подправить?
 
Вот вродебы кусочек отвечающий за вставку камней.
Кто может подсказать как правильно сделать проверку?? и куда её вставить?

}
break;


case 3:

if ($stat['o_time']) echo "<script LANGUAGE=\"JavaScript\">top.frames['main'].location = \"repair.php\";</script>";
elseif ($stat['proff']!= 2) echo "<font color=red>Только Кузнец может заниматься кузнечным делом!</font>";
else
{

echo"<table border=0 width=100%>";
$it_sost=mysql_query("SELECT * FROM `objects` WHERE `user` = '".$stat['user']."' AND `tip` = 20");

if (mysql_num_rows($it_sost)) {

echo"<table width=100% cellspacing=0 cellpadding=5 style='border-style: outset; border-width: 2' border=1>";

for($i=0; $i<mysql_num_rows($it_sost); $i++) {
if($j==0)
{
$col="#d1d1d1";
$j+=1;
}else{
$col="#e4e4e4";
$j=0;
}
$objects=mysql_fetch_array($it_sost);

$obj_inf=explode("|",$objects['inf']);
$obj_min=explode("|",$objects['min']);
$obj_add=explode("|",$objects['add']);

include('inc/main/min_tr.php');
include('inc/main/add.php');
include('inc/main/classes.php');

$sale_price=round($obj_inf['2']);
echo"
<tr bgcolor=".$col."><td width=33% align=center valign=center>



Действие предмета:
$hp$energy$min$max$strength$dex$agility$vitality$razum$br1$br2$br3$br4$br5$krit$unkrit$uv$unuv

</td>
<td width=34% align=center>
<img src='$stat[img_path]/i/items/".$obj_inf['0'].".gif' alt='".$obj_inf['1']."'>
</td>
<td width=33% valign=top>
";

$device=mysql_query("SELECT * FROM `objects` WHERE `user` = '".$stat['user']."' AND ((objects.tip >= 1 AND objects.tip <= 11) OR (objects.tip >= 24 AND objects.tip <= 25)) AND objects.mf_type=0");
if (mysql_num_rows($device)) {
for($n=0; $n<mysql_num_rows($device); $n++) {
$weapon=mysql_fetch_array($device);
$w_inf=explode("|",$weapon['inf']);
if (!($n%5))echo "
";
echo"<img src='$stat[img_path]/i/items/".$w_inf['0'].".gif' onclick=\"if (confirm('Вы действительно хотите вставить $obj_inf[1] в $w_inf[1]')) window.location='?vstav=".$objects['id']."&weap=".$weapon[id]."'\" style='CURSOR: Hand'></a>";
}

}



}



} else
echo"У Вас нет драгоценных камней, подлежащих вставке.";
echo"</table>";
}
 
а про
Код:
if ($vstav!="") {
    if (!preg_match("/^[0-9]{1,10}$/", $_GET['vstav'])) die("Ошибка");
    if (!preg_match("/^[0-9]{1,10}$/", $_GET['weap'])) die("Ошибка");
        $instrum = mysql_query("SELECT * FROM objects, slots WHERE objects.user='".$stat['user']."' AND slots.id=".$stat['id']." AND objects.tip=18 AND objects.min='1|0|0|0|0|0|0|2' AND objects.id IN (slots.3)");
        if (mysql_num_rows ($instrum)) {
            $instr = mysql_fetch_array($instrum);
            $obj_inf=explode("|",$instr['inf']);
            $nowobject = mysql_fetch_array(mysql_query("SELECT * FROM objects WHERE id='$vstav' AND user='".$stat['user']."'"));
            $objinf=explode("|",$nowobject['inf']);
            $item=mysql_fetch_array(mysql_query("SELECT * FROM items WHERE name='".$objinf['0']."'"));
            $weapon = mysql_fetch_array(mysql_query("SELECT * FROM objects WHERE id='$weap' AND user='".$stat['user']."'"));
            $weap_inf=explode("|",$weapon['inf']);
            $new_sale=$weap_inf[2]+20;
            $new_name="$weap_inf[1][МФ]";
            $new_strength=($weapon[strength]+$nowobject[strength]);
            $new_agility=($weapon[agility]+$nowobject[agility]);
            $new_dex=($weapon[dex]+$nowobject[dex]);
            $new_vitality=($weapon[vitality]+$nowobject[vitality]);
            $new_krit=($weapon[krit]+$nowobject[krit]);
            $new_unkrit=($weapon[unkrit]+$nowobject[unkrit]);
            $new_uv=($weapon[uv]+$nowobject[uv]);
            $new_unuv=($weapon[unuv]+$nowobject[unuv]);
            if ($stat['proff']==2) { // Проверка проффы
                if ($stat[ustal_now]>=15) { // не устал
                        if ($stat[o_time]<$now) {
                            $izn_instr = mysql_fetch_array(mysql_query("SELECT * FROM objects WHERE min='1|0|0|0|0|0|0|2' AND user='".$stat['user']."'"));
                            $instr_inf=explode("|",$izn_instr['inf']);
                            $iznos=($instr_inf[6]+1);
                            if ($instr_inf[7] > $iznos ) {
                                mysql_query("UPDATE objects SET inf='".$instr_inf['0']."|".$instr_inf['1']."|".$instr_inf['2']."|".$instr_inf['3']."|".$instr_inf['4']."|".$instr_inf['5']."|".$iznos."|".$instr_inf['7']."' WHERE id='".$izn_instr['id']."'");
                            }
                            else 
                            {
                                mysql_query("UPDATE objects SET inf='".$instr_inf['0']."|".$instr_inf['1']."|".$instr_inf['2']."|".$instr_inf['3']."|".$instr_inf['4']."|".$instr_inf['5']."|".$iznos."|".$instr_inf['7']."' WHERE id='".$izn_instr['id']."'");
                                mysql_query("UPDATE slots set slots.3=0 WHERE slots.id=".$stat['id']."");
                            }
                            mysql_query("UPDATE players set ustal_now=ustal_now-15, o_time=$now+600, r_action=1 where id=$stat[id]");
                            mysql_query("UPDATE objects SET inf='".$weap_inf['0']."|".$new_name."|".$new_sale."|".$weap_inf['3']."|".$weap_inf['4']."|".$weap_inf['5']."|".$weap_inf[6]."|".$weap_inf['7']."', strength='".$new_strength."',dex='".$new_dex."',agility='".$new_agility."',vitality='".$new_vitality."',krit='".$new_krit."',unkrit='".$new_unkrit."',uv='".$new_uv."',unuv='".$new_unuv."',time='".time()."',mf_type=1 WHERE id='".$weapon['id']."'");
                            mysql_query("DELETE FROM objects WHERE id=".$nowobject[id]."");

                            $msg="Процесс начат!";
                        }    
                } else $msg="Вы слишком устали для этого дела!";
            } else $msg="Это работа только для Кузнеца!";

        } else $msg = "Вы не можете делать вставку камня без спец инструмента!";
}


if ($stat['r_action'] == 1) {

        if ($stat['o_time']-2 < $now) {

                mysql_query("UPDATE `players` SET o_time=0, r_action=0 WHERE user='".$stat['user']."'");

                $stat['o_time'] = 0;
                $stat['r_action'] = 0;
        
                }
               
               
}

...не забыл ?
 
Забыл. вот моё

}

if ($vstav!="") {
if (!preg_match("/^[0-9]{1,10}$/", $_GET['vstav'])) die("Ошибка");
if (!preg_match("/^[0-9]{1,10}$/", $_GET['weap'])) die("Ошибка");
$instrum = mysql_query("SELECT * FROM objects, slots WHERE objects.user='".$stat['user']."' AND slots.id=".$stat['id']." AND objects.tip=18 AND objects.min='1|0|0|0|0|0|0|2' AND objects.id IN (slots.3)");
if (mysql_num_rows ($instrum)) {
$instr = mysql_fetch_array($instrum);
$obj_inf=explode("|",$instr['inf']);
$nowobject = mysql_fetch_array(mysql_query("SELECT * FROM objects WHERE id='$vstav' AND user='".$stat['user']."'"));
$objinf=explode("|",$nowobject['inf']);
$item=mysql_fetch_array(mysql_query("SELECT * FROM items WHERE name='".$objinf['0']."'"));
$weapon = mysql_fetch_array(mysql_query("SELECT * FROM objects WHERE id='$weap' AND user='".$stat['user']."'"));
$weap_inf=explode("|",$weapon['inf']);
$new_sale=$weap_inf[2]+20;
$new_name="$weap_inf[1][МФ]";
$new_strength=($weapon[strength]+$nowobject[strength]);
$new_agility=($weapon[agility]+$nowobject[agility]);
$new_dex=($weapon[dex]+$nowobject[dex]);
$new_vitality=($weapon[vitality]+$nowobject[vitality]);
$new_krit=($weapon[krit]+$nowobject[krit]);
$new_unkrit=($weapon[unkrit]+$nowobject[unkrit]);
$new_uv=($weapon[uv]+$nowobject[uv]);
$new_unuv=($weapon[unuv]+$nowobject[unuv]);
if ($stat['proff']==2) { // Проверка проффы
if ($stat[ustal_now]>=15) { // не устал
if ($stat[o_time]<$now) {
$izn_instr = mysql_fetch_array(mysql_query("SELECT * FROM objects WHERE min='1|0|0|0|0|0|0|2' AND user='".$stat['user']."'"));
$instr_inf=explode("|",$izn_instr['inf']);
$iznos=($instr_inf[6]+1);
if ($instr_inf[7] > $iznos ) {
mysql_query("UPDATE objects SET inf='".$instr_inf['0']."|".$instr_inf['1']."|".$instr_inf['2']."|".$instr_inf['3']."|".$instr_inf['4']."|".$instr_inf['5']."|".$iznos."|".$instr_inf['7']."' WHERE id='".$izn_instr['id']."'");
}
else
{
mysql_query("UPDATE objects SET inf='".$instr_inf['0']."|".$instr_inf['1']."|".$instr_inf['2']."|".$instr_inf['3']."|".$instr_inf['4']."|".$instr_inf['5']."|".$iznos."|".$instr_inf['7']."' WHERE id='".$izn_instr['id']."'");
mysql_query("UPDATE slots set slots.3=0 WHERE slots.id=".$stat['id']."");
}
mysql_query("UPDATE players set ustal_now=ustal_now-15, o_time=$now+600, r_action=1 where id=$stat[id]");
mysql_query("UPDATE objects SET inf='".$weap_inf['0']."|".$new_name."|".$new_sale."|".$weap_inf['3']."|".$weap_inf['4']."|".$weap_inf['5']."|".$weap_inf[6]."|".$weap_inf['7']."', strength='".$new_strength."',dex='".$new_dex."',agility='".$new_agility."',vitality='".$new_vitality."',krit='".$new_krit."',unkrit='".$new_unkrit."',uv='".$new_uv."',unuv='".$new_unuv."',time='".time()."',mf_type=1 WHERE id='".$weapon['id']."'");
mysql_query("DELETE FROM objects WHERE id=".$nowobject[id]."");

$msg="Процесс начат!";
}
} else $msg="Вы слишком устали для этого дела!";
} else $msg="Это работа только для Кузнеца!";

} else $msg = "Вы не можете делать вставку камня без спец инструмента!";
}


if ($stat['r_action'] == 1) {

if ($stat['o_time']-2 < $now) {

mysql_query("UPDATE `players` SET o_time=0, r_action=0 WHERE user='".$stat['user']."'");

$stat['o_time'] = 0;
$stat['r_action'] = 0;

}


}
 
Как минимум, поставь условие чтобы не отображались неограненные камни.
Смотри в разделе отвечающем за огранку такую строчку:

Код:
$it_sost=mysql_query("SELECT * FROM `objects` WHERE `user` = '".$stat['user']."' AND `tip` = 17 AND `bank`=0 AND `komis`=0 AND `art`=0");

и проверь стоит ли у тебя там выборка по типу вещи, в данном случае тип=17

при желании можешь еще и в скрипт выполнения действия поставить проверку камней по типу (17)

***Возможно у тебя ограненные камни имеют другой тип, так что проверь на всякий случай )
 
$it_sost=mysql_query("SELECT * FROM `objects` WHERE `user` = '".$stat['user']."' AND `tip` = 20");
Все таже строчка с типом 20 стоит в разделе 3 (Кузнечное дело)

Неограненый
» Александрит
Цена: 15.00 зм.
Износ: 0 [1]
Тип предмета: Драгоценный камень
Дополнительная информация:
Неограненный камень
Надеть

Ограненый
» Александрит
Цена: 20 зм.
Износ: 0 [1]
Тип предмета: Драгоценный камень
Действие предмета:
Сила: +2

Дополнительная информация:
Может быть вставлен в предметы для изменения характеристик
Надеть

классес.php
case 19: $tip="Ресурсы"; break;
case 20: $tip="Драгоценные камни"; break;

Походу просто для неограненых камней стоит не свой тип? должен быть 19 как ресурсы. а 20 это уже готовые, ограненые камни. Как лучше сделать поставить под 19-й и изменить в огранке проверку на 19-й тип, или присвоить неограненым камням отдельный, новый тип? :)
 
Ребята, как можно сделать, чтоб после огранки 20-ого типа камней они становились на другой тип 21 например ?? :)
а этот 21-й уже задать в разделе кузни для проверки. Если знаете не проходите мимо пожалуйста.
 
Ребята, как можно сделать, чтоб после огранки 20-ого типа камней они становились на другой тип 21 например ?? :)
а этот 21-й уже задать в разделе кузни для проверки. Если знаете не проходите мимо пожалуйста.


Именно так и должно быть, после огранки у камня должен меняться тип.
за это отвечает строчка в коде огранки:

Код:
                                                                  mysql_query("UPDATE objects SET inf='".$objinf['0']."|".$objinf['1']."|20|".$objinf['3']."|".$objinf['4']."|".$objinf['5']."|0|".$objinf['7']."', tip=17, hp='".$item['hp']."',energy='".$item['energy']."',razum='".$item['razum']."',power='".$item['power']."', min_d='".$item['min']."',max_d='".$item['max']."',strength='".$item['strength']."',dex='".$item['dex']."',agility='".$item['agility']."',vitality='".$item['vitality']."',krit='".$item['krit']."',unkrit='".$item['unkrit']."',uv='".$item['uv']."',unuv='".$item['unuv']."',time='".time()."',about='Может быть вставлен в предметы для изменения характеристик' WHERE id='".$nowobject['id']."'");

в твоем случае тип камня должен быть к примеру 21 (если у тебя конечно он не занят), меняй в коде мой tip=17 на tip=21
ну и добавишь в classes.php
case 21: $tip="Огранённый камень"; break;
 
coped ага, сделал так, только тип 26-й поставил остальные заняты были, после огранки камня он полностью исчезает из рюкзака и никакого ограненого камня не появляется :) опять что то не так?

Через админ панель посмотрел что у меня в рюкзаке, значит эти камушки ограненые лежат, но в самой игре я их не вижу в рюкзаке. помойму они не знают в какой раздел рюкзака (амуниция, зелья, магия... и тд.) прыгать и отображаться. как это можно исправить? новый тип -26 Ограненные камни не видит нигде.
 
inc/main/invent.php редактируй.

К примеру у меня так(21тип)
Код:
        case 7: $OBJECTS_SELECT_QUERY = "objects.tip = 21"; break;
в этом примере у нас выводится только 21 тип а чтобы выводил твой 26 делай так

Код:
case 7: $OBJECTS_SELECT_QUERY = "objects.tip = 21 AND objects.tip = 26"; break;
 
спасибо, я сделал по другому. подсмотрел там если несколько типов в один раздел то надо так.

Код:
case 4: $OBJECTS_SELECT_QUERY = "((objects.tip >= 19 AND objects.tip <= 20) OR (objects.tip >= 26))"; break;
4-й раздел Ресурсы. 19-й тип ресурсы, 20- драг камни (неограненые), 26-ограненые.
Все отображается но в типе ограненых, в инвентаре, пишет:
» Александрит
Цена: 20 зм.
Износ: 0 [1]
Тип предмета: undefined

Хотя в класес все прописанно
Код:
case 26: $tip="Огранённый камень"; break;
 
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

Сверху