game/_incl_data/class/Priem/219.php

130 lines
4.3 KiB
PHP
Raw Normal View History

2023-03-31 18:42:06 +00:00
<?php
2022-06-06 21:30:34 +00:00
if(!defined('GAME')) {
die();
}
/*
2023-01-10 16:29:32 +00:00
Прием: Точный удар
Игнорирует броню противника и снижает его защиту на 250 ед, но не ниже 0
2022-06-06 21:30:34 +00:00
*/
$pvr = array();
if( isset($pr_tested_this) ) {
$fx_priem = function( $id , $at , $uid, $j_id ) {
2023-01-10 16:29:32 +00:00
// -- начало приема
2022-06-06 21:30:34 +00:00
global $u, $btl;
//
2023-01-10 16:29:32 +00:00
//Параметры приема
2022-06-06 21:30:34 +00:00
$pvr['used'] = 0;
//
$uid1 = $btl->atacks[$id]['uid1'];
$uid2 = $btl->atacks[$id]['uid2'];
if( $uid == $uid1 ) {
$a = 1;
$b = 2;
2023-11-05 02:46:07 +00:00
$u1 = $uid1;
$u2 = $uid2;
2022-06-06 21:30:34 +00:00
}elseif( $uid == $uid2 ) {
$a = 2;
$b = 1;
2023-11-05 02:46:07 +00:00
$u1 = $uid2;
$u2 = $uid1;
2022-06-06 21:30:34 +00:00
}
if( isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) {
mysql_query('UPDATE `eff_users` SET `delete` = "'.time().'" WHERE `id` = "'.$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3].'" AND `uid` = "'.$uid.'" LIMIT 1');
unset($btl->stats[$btl->uids[$uid]]['u_priem'][$j_id]);
}
//
2023-01-10 16:29:32 +00:00
// -- конец приема
2022-06-06 21:30:34 +00:00
return $at;
};
unset( $pr_used_this );
}elseif( isset($pr_used_this) ) {
$fx_priem = function( $id , $at , $uid, $j_id ) {
2023-01-10 16:29:32 +00:00
// -- начало приема
2022-06-06 21:30:34 +00:00
global $u, $btl;
//
2023-01-10 16:29:32 +00:00
//Параметры приема
2022-06-06 21:30:34 +00:00
$pvr['used'] = 0;
//
$uid1 = $btl->atacks[$id]['uid1'];
$uid2 = $btl->atacks[$id]['uid2'];
if( $uid == $uid1 ) {
$a = 1;
$b = 2;
2023-11-05 02:46:07 +00:00
$u1 = $uid1;
$u2 = $uid2;
2022-06-06 21:30:34 +00:00
}elseif( $uid == $uid2 ) {
$a = 2;
$b = 1;
2023-11-05 02:46:07 +00:00
$u1 = $uid2;
$u2 = $uid1;
2022-06-06 21:30:34 +00:00
}
if( $a > 0 ) {
$j = 0; $k = 0; $wp = 3;
while($j < count($at['p'][$a]['atack'])) {
if( isset($at['p'][$a]['atack'][$j]['yron']) && (
$at['p'][$a]['atack'][$j][1] == 1 ||
$at['p'][$a]['atack'][$j][1] == 4 ||
$at['p'][$a]['atack'][$j][1] == 5 )) {
if( $pvr['used'] == 0 && !isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) {
//
2023-01-10 16:29:32 +00:00
/// Тест защит
2022-06-06 21:30:34 +00:00
$eff = $btl->users[$btl->uids[$u2]]['effects'];
$ji = 0;
while( $ji <= count($eff) ) {
if( isset($eff[$ji]) && $eff[$ji]['id_eff'] == 22 && $eff[$ji]['v1'] == 'priem' && $eff[$ji]['v2'] > 0 )
{
2023-01-10 16:29:32 +00:00
// id прием $eff[$j]['v2']
2022-06-06 21:30:34 +00:00
if( $eff[$ji]['v2'] == 140 || $eff[$ji]['v2'] == 45 || $eff[$ji]['v2'] == 211 )
{
2023-01-10 16:29:32 +00:00
//Приемы от которых урон = 1 , то есть выдаем 0
2022-06-06 21:30:34 +00:00
$at['p'][$a]['atack'][$j]['yron']['y'] = 1;
$at['p'][$a]['atack'][$j]['yron']['r'] = -1;
$at['p'][$a]['atack'][$j]['yron']['k'] = 1;
$at['p'][$a]['atack'][$j]['yron']['m_k'] = 1;
$at['p'][$a]['atack'][$j]['yron']['m_y'] = 1;
}
}
$ji++;
}
unset($eff);
$pvr['hp'] = $btl->testYronPriem( $u1, $u2, 219, $at['p'][$a]['atack'][$j]['yron']['bRND'], -1, true );
if ($at['p'][$a]['atack'][$j]['yron']['k'] != 1 && $pvr['hp'] > 1)
{
$at['p'][$a]['atack'][$j]['yron']['y'] += $at['p'][$a]['atack'][$j]['yron']['bRND'];
$at['p'][$a]['atack'][$j]['yron']['r'] -= $at['p'][$a]['atack'][$j]['yron']['bRND'];
$at['p'][$a]['atack'][$j]['yron']['k'] += $at['p'][$a]['atack'][$j]['yron']['bRND'];
$at['p'][$a]['atack'][$j]['yron']['m_y'] += $at['p'][$a]['atack'][$j]['yron']['bRND'];
$at['p'][$a]['atack'][$j]['yron']['m_k'] += $at['p'][$a]['atack'][$j]['yron']['bRND'];
}
//
$at['p'][$a]['atack'][$j]['yron']['plog'][] = '$this->deleffm(219,'.(0+$uid).','.$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3].');
$this->priemAddLog( '.$id.', '.$a.', '.$b.', '.$u1.', '.$u2.',
2023-01-10 16:29:32 +00:00
"Точный удар",
2022-06-06 21:30:34 +00:00
"{tm1} '.$btl->addlt($a , 17 , $btl->users[$btl->uids[$u1]]['sex'] , NULL).'",
'.($btl->hodID + 1).' );';
//
$at['p'][$a]['atack'][$j]['yron']['used'][] = array($j_id,$uid,$pvr['used']);
$at['p'][$a]['atack'][$j]['yron']['kill'][] = array($j_id,$uid,$pvr['kill']);
//
$at['p'][$a]['priems']['kill'][$uid][$j_id] = true;
//
mysql_query('UPDATE `eff_users` SET `delete` = "'.time().'" WHERE `id` = "'.$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3].'" AND `uid` = "'.$uid.'" LIMIT 1');
unset($btl->stats[$btl->uids[$uid]]['u_priem'][$j_id]);
}
}
$j++;
}
}
2023-01-10 16:29:32 +00:00
//Удаляем прием
// -- конец приема
2022-06-06 21:30:34 +00:00
return $at;
};
unset( $pr_used_this );
}else{
2023-01-10 16:29:32 +00:00
//Действие при клике
2022-06-06 21:30:34 +00:00
$this->addEffPr($pl,$id);
}
unset($pvr);
?>