Created
May 18, 2015 14:44
-
-
Save BlackScorp/5c6667e1cba43f8838dd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$hh = $id['act']; | |
//на сколько надо сместить массив | |
for ($i = 0; $i++ < $hh;) { | |
$arr = array_shift($ff); | |
$ff[] = $arr; | |
} | |
//смещение массива и вставка в конец массива | |
function voin($attackerId, $targetId, $counter) | |
{ | |
//$attackerId текущая цифра,$targetId выбраная пользователем,$counter кол-во жлементов в массиве | |
global $rr, $id; | |
//$rr массив содержащий все элементы | |
$targetHitPoints =& $rr[$targetId]['xp2']; | |
//$c число от которого отнимаем | |
$act =& $id['act']; | |
//$act число на которое смещаем массив | |
$from = $rr[$targetId]['fro']; | |
$where = $rr[$targetId]['id']; | |
$attackerCriticalChance = $rr[$attackerId]['krt']; | |
$attackerDamage = $rr[$attackerId]['urn']; | |
$targetDefence = $rr[$targetId]['brn']; | |
$targetBlockChance = $rr[$targetId]['blc']; | |
$targetAvoidChance = $rr[$targetId]['uvr']; | |
$attackerAccuracy = $rr[$attackerId]['tch']; | |
$attackHitChance = $rr[$attackerId]['udh']; | |
$targetHitChance = $rr[$targetId]['udh']; | |
//решаем удачности | |
//для блока | |
$blocked = $targetBlockChance > rand(1, 100 - rand(1, $targetHitChance)); | |
//для узбежание | |
$avoided = ($targetAvoidChance - rand(1, 100 - rand(1, $targetHitChance))) > ($attackerAccuracy - rand(1, 100 - rand(1, $attackHitChance))); | |
//для опасново удара | |
$criticalHit = $attackerCriticalChance > rand(1, 100 - rand(1, $attackHitChance)); | |
//или вообще удара | |
$hit = !$blocked && !$avoided; | |
if ($hit) { //если попал | |
$realDamage = max($attackerDamage - $targetDefence, 1); //решаем как больно попал,как минимум 1 пункт снемаем | |
$message = "udar: " . $realDamage . " urona"; | |
if ($criticalHit) { | |
$realDamage = max($attackerDamage * 2 - $targetDefence, 1); //если опасный удар сделал, решаем пункты | |
$message = "krit: " . $realDamage . " urona"; | |
} | |
$targetHitPoints -= $realDamage; //снимаем ети пункты с жизни | |
if ($targetHitPoints <= 0) { //если умер, щитаем одново противника менше | |
$counter--; | |
} | |
mysql_query("UPDATE $from SET xp2='$targetHitPoints' WHERE id='$where'"); //храним ето в базе | |
} else { //если не попал | |
if ($blocked) { //почему не попал? | |
$message = "blok"; | |
} elseif ($avoided) { | |
$message = "uvorot"; | |
} | |
} | |
chat($attackerId, $targetId, $message); | |
//зачем ето? | |
$act++; | |
if ($act == $counter) { //я думаю суда не поподем не когда | |
$act = 0; | |
} | |
mysql_query("UPDATE boy SET act='$act' WHERE id='$id[id]'"); | |
doBack($attackerId, $targetId, $rr); | |
} | |
function doBack($attackerId, $targetId, $rr) | |
{ | |
if ($rr[$targetId]['back'] > 0) { | |
if ($rr[$targetId]['class'] == 'Ìàã') { | |
mag_back($targetId, $attackerId); | |
} elseif ($rr[$targetId]['class'] == 'Âîèí') { | |
voin_back($targetId, $attackerId); | |
} else { | |
luch_back($targetId, $attackerId); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment