linpc
Гуру форума
- Регистрация
- 6 Апр 2012
- Сообщения
- 178
- Реакции
- 55
- Автор темы
- #1
Добрый день, уважаемые форумчане.
Переписываю онлайн игру, делая под себя, возник такой вопрос при одевании любой она одевается несколько раз. Именно во второй слот, где должен быть щит.
Вызов функции:
Код вызова:
Использующие функции:
Помогите найти ошибку
Переписываю онлайн игру, делая под себя, возник такой вопрос при одевании любой она одевается несколько раз. Именно во второй слот, где должен быть щит.
Вызов функции:
PHP:
<input type=button class=invbut onclick="location=\'main.php?get_id=57&act=1&wid='.$ITEM['id_item'].'&vcode='.scode().'\'" value="Надеть" />
$ITEM['id_item']-ID вещи
PHP:
if (isset($_GET['get_id']) && intval($_GET['get_id']) == '57' and in_array($_GET['vcode'],$_SESSION['secur'])){ //-- Работа с вещами
save_hp();
$items = mysql_fetch_assoc(mysql_query("SELECT invent.*, items.* FROM items INNER JOIN invent ON items.id = invent.protype WHERE id_item='".$_GET['wid']."' and pl_id='".$player['id']."' LIMIT 1;"));
switch(isset($_GET['act'])){
case'1':
if($items['slot']==3 and $items['2w']==1 and mysql_num_rows(mysql_query("SELECT invent.*, items.* FROM items INNER JOIN invent ON items.id = invent.protype WHERE curslot='3' and pl_id='".$player['id']."'"))>0){
$items['slot']=13;
}
if($items['slot']==14 and mysql_num_rows(mysql_query("SELECT invent.*, items.* FROM items INNER JOIN invent ON items.id = invent.protype WHERE curslot='14' and pl_id='".$player['id']."'"))>0){
$items['slot']=15;
}
if($plstt[3]==0 and $items['slot']==5){
$act=-1;
$items['slot']=5;
}
if($plstt[3]>1 and $items['slot']==5 and mysql_num_rows(mysql_query("SELECT invent.*, items.* FROM items INNER JOIN invent ON items.id = invent.protype WHERE curslot='5' and pl_id='".$player['id']."'"))>0){
$items['slot']=6;
}
if($plstt[3]>2 and $items['slot']==6 and mysql_num_rows(mysql_query("SELECT invent.*, items.* FROM items INNER JOIN invent ON items.id = invent.protype WHERE curslot='6' and pl_id='".$player['id']."'"))>0){
$items['slot']=7;
}
if(mysql_num_rows(mysql_query("SELECT invent.*, items.* FROM items INNER JOIN invent ON items.id = invent.protype WHERE curslot='".$items['slot']."' and pl_id='".$player['id']."'"))>0){
$act=2;
}
break;
}
updateslot($_GET['act'],$_GET['wid'],$player['id'],$items['slot']);
calcstat($player['id']);
testcompl();
}
Использующие функции:
PHP:
function testcompl() {
$pl = player();
$st = allparam($pl);
$testcompl = mysql_query("SELECT invent.*, items.* FROM `items` INNER JOIN `invent` ON `items`.id = `invent`.protype WHERE `used`='1' and `pl_id`='".$pl[id]."' ORDER BY slot");
while ($row = mysql_fetch_assoc($testcompl)) {
$it = explode("|", $row['i_need']);
if ($row['slot'] == 5) {
$el+=1;
}
if ($row['slot'] == 5 and $el > $st[3]) {
updateslot(0, $row['id_item'], $pl['id'], 0);
continue;
}
foreach ($it as $value) {
$stat = explode("@", $value);
if ($stat[0] == 72) {
$stat[1] = $row['level'];
}
if ($st[$stat[0]] < $stat[1]) {
if ($row['slot'] == 4) {
$st[3] = 0;
}$s[] = "id_item='".$row['id_item']."'";
}
}
}
if ($s != '') {
$s = implode(" or ", $s);
mysql_query("UPDATE invent SET `used`='0', `curslot`='0' WHERE '".$s."' and `pl_id`='".$pl[id]."'");
calcstat($pl[id]);
testcompl();
}
if ($pl['fight'] == 0) {
save_hp();
}
calchp();
}
function updateslot($act, $item, $pid, $slot) { //--Одевание вещей
switch ($act) {
case 0:
mysql_query("UPDATE invent SET used='0', curslot='0' WHERE id_item='" . $item . "' and pl_id='" . $pid . "'");
break;
case 1:
mysql_query("UPDATE invent SET used='1', curslot='" . $slot . "' WHERE id_item='" . $item . "' and pl_id='" . $pid . "'");
break;
case 2:
mysql_query("UPDATE invent SET used='0', curslot='0' WHERE curslot='$slot' and pl_id='" . $pid . "'");
mysql_query("UPDATE invent SET used='1', curslot='" . $slot . "' WHERE id_item='" . $item . "' and pl_id='" . $pid . "'");
break;
case 3:
mysql_query("UPDATE `invent` SET `used`='0', `curslot`='0' WHERE pl_id='" . $pid . "'");
break;
}
}
Помогите найти ошибку