Skip to content

Instantly share code, notes, and snippets.

@BlackScorp
Created May 18, 2015 14:44
Show Gist options
  • Save BlackScorp/5c6667e1cba43f8838dd to your computer and use it in GitHub Desktop.
Save BlackScorp/5c6667e1cba43f8838dd to your computer and use it in GitHub Desktop.
<?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