запрет на наложение ауры повторно

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

Diesel_craft

Кибер-Вор
Старейшина
Репутация
ребят подскажите как зделать запрет на наложение ауры повторно? тоесть если аура уже действует то повторно ее неналожить а то в боях могут прокачиватся ппц как

вот код
Код:
<?
if ($pers["invisible"]>tme()){$pers["user"] = '[i]невидимка[/i]';$invyou=1;$pers["pol"]='female';} else $invyou=0;
    if (!$invyou)
        $nyou = "<font class=bnick color=".$colors[$pers["fteam"]].">".$pers["user"]."</font>[".$pers["level"]."]";
    else 
        $nyou = "<font class=bnick color=".$colors[$pers["fteam"]].">[i]невидимка[/i]</font>[??]";

    $a = sqla("SELECT * FROM u_auras WHERE uidp=".$pers["uid"]." and id=".intval($aid)."");
    if ($a and 
    $a["manacost"]<=$pers["cma"] and 
    $a["tlevel"]<=$pers["level"]    and 
    $a["ts6"]<=$pers["s6"] and 
    $a["tm1"]<=$pers["m1"] and 
    $a["tm2"]<=$pers["m2"] and 
    $a["cur_colldown"]<=tme() and 
    $a["cur_turn_colldown"]<=$pers["f_turn"])
    {
    if ($a["forenemy"])
     $ps = sql("SELECT * FROM users WHERE cfight=".$pers["cfight"]." and fteam<>".$pers["fteam"]." and chp>0");
    else
     $ps = sql("SELECT * FROM users WHERE cfight=".$pers["cfight"]." and fteam=".$pers["fteam"]." and chp>0");

$text2 = '';
    $p1 = false;
    while (true)
    {
        if (!$p1)
         $p1 = mysql_fetch_array($ps);
        else
         $p1 = $p2;
        $p2 = mysql_fetch_array($ps);
        if ($p1) 
         $textFill = 1;
        
        if ($p1["invisible"]<=tme())
            $nvs = "<font class=bnick color=".$colors[$p1["fteam"]].">".$p1["user"]."</font>[".$p1["level"]."]";
        else 
            $nvs = "<font class=bnick color=".$colors[$p1["fteam"]].">[i]невидимка[/i]</font>[??]";
        
        if ($p2)
         {
            aura_on($a["id"],$pers,$p1,0);
            $text2 .= $nvs.",";
         }
        else
         {
            aura_on($a["id"],$pers,$p1);
            $text2 .= $nvs.".";
            break;
         }
    }
    }
    
    if ($textFill)
    $text .= $nyou." накладывает заклинание «<img src='images/magic/".$a["image"].".gif' height=12><font class=user>".$a["name"]."</font>» на ".$text2;
?>
 
Всем бесплатно делать влом и мне тоже=)времена такие=)хоть 1$ дай=)
 
Сделай проверку на наличие такой-же ауры и всё.
 
Все ауры, которые использует юзер - хранится в таблице - p_auras .
Смотри ячейку special, если аура - невидимости, по моему специал =2.
Вот и ставь проверку, если аура со special = 2 наложена на юзера, запретить повторное использование.
 
Сделай проверку на наличие такой-же ауры и всё.

Ветеран в твоем случае будет проблема с зельями по скольку те прописаны как ауры вешаемые на песонажа!

Все ауры, которые использует юзер - хранится в таблице - p_auras .
Смотри ячейку special, если аура - невидимости, по моему специал =2.
Вот и ставь проверку, если аура со special = 2 наложена на юзера, запретить повторное использование.


Ласт в твоем случай правильный но проблемный по скольку и у зелий есть использование таблицы special но как началтный вариант в полне подходит
 
Ласт в твоем случай правильный но проблемный по скольку и у зелий есть использование таблицы special но как началтный вариант в полне подходит

И что именно в твоем понимании проблема?..
Каждый эликсир/свиток, это и есть аура, можно как вариант присвоить special только для невидимости и больше нигде не использовать ( т.е. в других типах аур).
Зачем использовать один и тот же special в невидимости и где либо ещё?..
 
И что именно в твоем понимании проблема?..
Каждый эликсир/свиток, это и есть аура, можно как вариант присвоить special только для невидимости и больше нигде не использовать ( т.е. в других типах аур).
Зачем использовать один и тот же special в невидимости и где либо ещё?..


ему нужно чтобы не невид запрешало а все ауры +) не лзя было наложить повторно +) в том то и проблема, по скольку маги в бою могут очень сильно обкастовать своего война при примере 8 магов и 1 воин с аурами в 25% мф и удара дадут ему 200% к мф и урона что будет очень плохо вот он и хочет поставить запрет чтобы из 8 магов только 1 бафф вешался а не 8 одинаковых
 
ему нужно чтобы не невид запрешало а все ауры +) не лзя было наложить повторно +) в том то и проблема, по скольку маги в бою могут очень сильно обкастовать своего война при примере 8 магов и 1 воин с аурами в 25% мф и удара дадут ему 200% к мф и урона что будет очень плохо вот он и хочет поставить запрет чтобы из 8 магов только 1 бафф вешался а не 8 одинаковых

Понял теперь, я "вопрос в целом" не так прочел.
Значит, как вариант добавить ячейку limit в auras, p_auras .
И что то с ними делать.
Либо считывать кол-во навешанных на персонажа аур и только если кол-во не превышает допустимого, налаживать повторно либо запрещать.

К примеру я, сделал повторное использование некоторых аур иначе, они эффекты не добавляют, только время его действия.
А вообще, фиксить саму магию нужно, бонусы, а большое кол-во аур для мага - вовсе удалить.

Вот вариант ограничения эликсира:

Код:
## Использование эликов.
## те же ауры
## Это пример для просмотра

if (!empty($_POST["potion"])) { 

$zakl = intval($_POST["potion"]);
$zakl = sqla("SELECT `index`,`name`,`id`,`image`,`durability` FROM `wp` WHERE `id`='".$zakl."' and durability>0");
$limit= sqlr("SELECT COUNT(*) FROM p_auras WHERE uid=".$pers["uid"]." and `name`='".$zakl["name"]."'");

if($limit>=1){## Если уже наложена аура/ауры

        sql ("UPDATE p_auras SET esttime=esttime+".$param[0]." WHERE uid=".$pers["uid"]." and `name`='".$zakl[1]."'");
        echo 'Вы выпили <font class=user>'.$zakl[1].'</font>. Увеличилось только время действия.';
        sql("UPDATE wp SET durability=durability-1 WHERE id=".intval($_POST["potion"])."");
      }else{ ## Либо налаживаем её на юзера.

        //echo 'Вы выпили <font class=user>'.$zakl[1]."</font>.';
        //echo 'Вы наложили <font class=user>'.$zakl[1]."</font>.';
        sql("UPDATE wp SET durability=durability-1 WHERE id=".intval($_POST["potion"])."");
    }
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху