619 lines
16 KiB
PHP
619 lines
16 KiB
PHP
<?php
|
||
|
||
namespace Battle;
|
||
|
||
use Helper\Math;
|
||
use User;
|
||
|
||
class Fighter
|
||
{
|
||
private string $obraz;
|
||
private string $login;
|
||
private int $level;
|
||
private int $life;
|
||
private int $mana;
|
||
private int $maxlife;
|
||
private int $maxmana;
|
||
|
||
private int $damage;
|
||
private int $damageMultiplier;
|
||
private int $critChance;
|
||
private int $critMultiplier;
|
||
private int $evadeChance;
|
||
private int $counterstrikeChance;
|
||
private int $parryChance;
|
||
private int $shieldblockChance;
|
||
private int $ignoreArmorChance;
|
||
private int $anticritChance;
|
||
private int $antievadeChance;
|
||
private int $defence;
|
||
private int $airdefence;
|
||
private int $waterdefence;
|
||
private int $firedefence;
|
||
private int $earthdefence;
|
||
private int $armor;
|
||
public function __construct(private readonly int $id, private readonly int $team) {
|
||
$u = User::start($id);
|
||
$this->obraz = $u->info['sex'] . DIRECTORY_SEPARATOR . $u->info['obraz'];
|
||
$this->login = $u->info['login'];
|
||
$this->level = $u->info['level'];
|
||
$this->life = $u->stats['hpNow'];
|
||
$this->mana = $u->stats['mpNow'];
|
||
$this->maxlife = $u->stats['hpAll'];
|
||
$this->maxmana = $u->stats['mpAll'];
|
||
$this->damage = 100500;
|
||
$this->armor = 35;
|
||
$this->damageMultiplier = $u->stats['m10'];
|
||
$this->critChance = $u->stats['m1'];
|
||
$this->critMultiplier = $u->stats['m3'];
|
||
$this->evadeChance = $u->stats['m4'];
|
||
$this->counterstrikeChance = $u->stats['m6'];
|
||
$this->parryChance = $u->stats['m7'];
|
||
$this->shieldblockChance = $u->stats['m8'];
|
||
$this->ignoreArmorChance = $u->stats['m9'];
|
||
$this->anticritChance = $u->stats['m2'];
|
||
$this->antievadeChance = $u->stats['m5'];
|
||
$this->defence = $u->stats['za']; // ой не та это защита, ой не та. ещё ж броня должна быть.
|
||
$this->airdefence = $u->stats['zm2'];
|
||
$this->waterdefence = $u->stats['zm3'];
|
||
$this->firedefence = $u->stats['zm1'];
|
||
$this->earthdefence = $u->stats['zm4'];
|
||
unset($u);
|
||
}
|
||
|
||
public function __toString(): string
|
||
{
|
||
|
||
$dmg = Math::addPercent($this->damage, $this->damageMultiplier);
|
||
return <<<RETURN
|
||
$this->login [$this->level] id:$this->id <br>
|
||
Здоровье: $this->life / $this->maxlife <br>
|
||
Мана: $this->mana / $this->maxmana <br>
|
||
<img src="https://img.new-combats.tech/i/obraz/$this->obraz" alt=""><br>
|
||
Урон: $this->damage + $this->damageMultiplier% = $dmg <br>
|
||
Броня: $this->armor <br>
|
||
Крит: $this->critChance% <br>
|
||
Антикрит $this->anticritChance% <br>
|
||
Мощность крита $this->critMultiplier% <br>
|
||
Уровот $this->evadeChance% <br>
|
||
Антиуворот $this->antievadeChance% <br>
|
||
Контрудар $this->counterstrikeChance% <br>
|
||
Парирование $this->parryChance% <br>
|
||
Блок щитом $this->shieldblockChance% <br>
|
||
Игнор брони $this->ignoreArmorChance% <br>
|
||
Защита от урона $this->defence <br>
|
||
Зашита от огня $this->firedefence <br>
|
||
Защита от воды $this->waterdefence <br>
|
||
Защита от воздуха $this->airdefence <br>
|
||
Защита от земли $this->earthdefence <br><br>
|
||
Сражается за команду: $this->team
|
||
RETURN;
|
||
|
||
}
|
||
}
|
||
|
||
|
||
|
||
/*
|
||
|
||
/app/_incl_data/class/Battle.php:471:
|
||
array (size=126)
|
||
'zag' => string '' (length=0)
|
||
'id' => int 27205347
|
||
'login' => string 'Merlin' (length=6)
|
||
'login2' => string '' (length=0)
|
||
'online' => int 1704494746
|
||
'admin' => int 1
|
||
'city' => string 'capitalcity' (length=11)
|
||
'cityreg' => string 'capitalcity' (length=11)
|
||
'align' => string '1.99' (length=4)
|
||
'align_lvl' => int 0
|
||
'align_exp' => int 0
|
||
'clan' => int 0
|
||
'level' => int 8
|
||
'money' => float 62531.5
|
||
'money3' => float 30
|
||
'money2' => float 15
|
||
'money4' => float 40
|
||
'battle' => int 466011
|
||
'sex' => int 0
|
||
'obraz' => string '78.gif' (length=6)
|
||
'win' => int 0
|
||
'win_t' => int 0
|
||
'lose' => int 4
|
||
'lose_t' => int 0
|
||
'nich' => int 16
|
||
'timeMain' => int 1704494746
|
||
'invis' => int 0
|
||
'bot_id' => int 0
|
||
'animal' => int 0
|
||
'type_pers' => int 0
|
||
'notrhod' => int -1
|
||
'bot_room' => int 0
|
||
'inUser' => int 0
|
||
'inTurnir' => int 0
|
||
'inTurnirnew' => int 0
|
||
'stopexp' => int 0
|
||
'real' => int 1
|
||
'stats' => string 's1=3|s2=3|s3=3|s4=250|rinv=40|m9=5|m6=10|s7="0"|a1=0|a2=0|a3=0|a4=0|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0' (length=175)
|
||
'hpNow' => int 1132
|
||
'mpNow' => int 0
|
||
'enNow' => int 0
|
||
'hpAll' => int 2130
|
||
'mpAll' => int 0
|
||
'regHP' => int 1704492966
|
||
'regMP' => int 1704492966
|
||
'showmenu' => string '1|1|1|1|1|1|1|1' (length=15)
|
||
'prmenu' => string '0|1|2|3|4|5|6|7' (length=15)
|
||
'ability' => int 78
|
||
'skills' => int 9
|
||
'sskills' => int 0
|
||
'nskills' => int 0
|
||
'exp' => int 250
|
||
'minHP' => int 15
|
||
'minMP' => int 8
|
||
'zv' => int 0
|
||
'dn' => int 0
|
||
'dnow' => int 0
|
||
'team' => int 1
|
||
'battle_yron' => int 0
|
||
'battle_exp' => int 0
|
||
'enemy' => int 27319397
|
||
'last_a' => int 0
|
||
'last_b' => int 0
|
||
'battle_text' => string '' (length=0)
|
||
'upLevel' => int 57
|
||
'wipe' => int 0
|
||
'bagStats' => string '0' (length=1)
|
||
'timeGo' => int 1704297684
|
||
'timeGoL' => int 1704297679
|
||
'nextAct' => string '64e9f79e15fca80055d7eabb26f390a4' (length=32)
|
||
'active' => string '' (length=0)
|
||
'bot' => int 0
|
||
'lastAlign' => string '' (length=0)
|
||
'tactic1' => int 0
|
||
'tactic2' => int 0
|
||
'tactic3' => int 0
|
||
'tactic4' => int 7
|
||
'tactic5' => int 0
|
||
'tactic6' => float 0
|
||
'tactic7' => float 20
|
||
'x' => int 3
|
||
'y' => int 4
|
||
's' => int 1
|
||
'battleEnd' => int 0
|
||
'priemslot' => int 10
|
||
'priems' => string '0|2|3|0|0|138|235|213|140|4|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0' (length=87)
|
||
'priems_z' => string '0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0' (length=101)
|
||
'bet' => int 0
|
||
'clone' => int 0
|
||
'atack' => int 0
|
||
'bbexp' => int 0
|
||
'ref_data' => string '' (length=0)
|
||
'res_x' => int 0
|
||
'res_y' => int 0
|
||
'res_s' => int 1
|
||
'bn_capitalcity' => int 0
|
||
'bn_demonscity' => int 0
|
||
'smena' => int 3
|
||
'last_hp' => int -20
|
||
'last_pr' => int 0
|
||
'transfers' => int 65000
|
||
'btl_cof' => int 381
|
||
'dieline' => int 0
|
||
'lider' => int 462716
|
||
'old_battle' => int 10
|
||
'alog' => int 0
|
||
'mlog' => int 0
|
||
'seff' => null
|
||
'upexpdate' => int 1671486569
|
||
'expstopu' => int 0
|
||
'repexp' => int 35
|
||
/app/_incl_data/class/Battle.php:471:
|
||
array (size=102)
|
||
'a1' => int 0
|
||
'a2' => int 0
|
||
'a3' => int 0
|
||
'a4' => int 0
|
||
'a5' => int 0
|
||
'aall' => int 0
|
||
'm1' => int 15
|
||
'm10' => int 90
|
||
'm11' => int 0
|
||
'm14' => int 0
|
||
'm15' => int 0
|
||
'm18' => int 0
|
||
'm19' => int 0
|
||
'm2' => int 15
|
||
'm3' => int 0
|
||
'm4' => int 15
|
||
'm5' => int 15
|
||
'm6' => int 10
|
||
'm7' => int 0
|
||
'm8' => int 0
|
||
'm9' => int 5
|
||
'mall' => int 0
|
||
'mg1' => int 0
|
||
'mg2' => int 0
|
||
'mg3' => int 0
|
||
'mg4' => int 0
|
||
'mg7' => int 0
|
||
'pa1' => int 0
|
||
'pa2' => int 0
|
||
'pa3' => int 0
|
||
'pa4' => int 0
|
||
'pm1' => int 0
|
||
'pm2' => int 0
|
||
'pm3' => int 0
|
||
'pm4' => int 0
|
||
'pm7' => int 0
|
||
's1' => int 3
|
||
's2' => int 3
|
||
's3' => int 3
|
||
's4' => int 250
|
||
's5' => int 0
|
||
's6' => int 0
|
||
's7' => int 0
|
||
'za' => int 375
|
||
'za1' => int 375
|
||
'za2' => int 375
|
||
'za3' => int 375
|
||
'za4' => int 375
|
||
'zm' => int 125
|
||
'zm1' => int 125
|
||
'zm2' => int 125
|
||
'zm3' => int 125
|
||
'zm4' => int 125
|
||
'zona' => int 2
|
||
'zonb' => int 2
|
||
'levels' =>
|
||
array (size=17)
|
||
'upLevel' => int 57
|
||
'nextLevel' => int 8
|
||
'exp' => int 200000
|
||
'money' => int 0
|
||
'money_bonus1' => int 0
|
||
'money_bonus2' => int 0
|
||
'ability' => int 0
|
||
'skills' => int 0
|
||
'nskills' => int 0
|
||
'sskills' => int 0
|
||
'expBtlMax' => int 5000
|
||
'bprice' => int 2300
|
||
'hpRegen' => int 250
|
||
'mpRegen' => int 250
|
||
'money2' => float 0.5
|
||
'duh' => int 0
|
||
'vinos' => int 0
|
||
'id' => int 27205347
|
||
'login' => string 'Merlin' (length=6)
|
||
'hpNow' => int 1132
|
||
'mpNow' => int 0
|
||
'items' =>
|
||
array (size=5)
|
||
0 =>
|
||
array (size=14)
|
||
'type' => int 1
|
||
'data' => string '' (length=0)
|
||
'inOdet' => int 1
|
||
'item_id' => int 391
|
||
'inslot' => int 1
|
||
'useInBattle' => int 0
|
||
'btl_zd' => int 0
|
||
'iznosNOW' => float 0.7
|
||
'iznosMAX' => float 30
|
||
'magic_inci' => string '' (length=0)
|
||
'name' => string 'Серый Шлем' (length=19)
|
||
'id' => int 75917766
|
||
'img' => string 'helmet77.gif' (length=12)
|
||
'2h' => int 0
|
||
1 =>
|
||
array (size=14)
|
||
'type' => int 26
|
||
'data' => string 'tr_lvl=4|sv_yron_min=5|sv_yron_max=10|tya1=20|tya3=80' (length=53)
|
||
'inOdet' => int 3
|
||
'item_id' => int 631
|
||
'inslot' => int 3
|
||
'useInBattle' => int 0
|
||
'btl_zd' => int 0
|
||
'iznosNOW' => float 0.55
|
||
'iznosMAX' => float 110
|
||
'magic_inci' => string '' (length=0)
|
||
'name' => string 'Укрепленный Костыль ' (length=38)
|
||
'id' => int 75917784
|
||
'img' => string 'kostyl2.gif' (length=11)
|
||
'2h' => int 0
|
||
2 =>
|
||
array (size=14)
|
||
'type' => int 29
|
||
'data' => string '' (length=0)
|
||
'inOdet' => int 54
|
||
'item_id' => int 1032
|
||
'inslot' => int 53
|
||
'useInBattle' => int 1
|
||
'btl_zd' => int 0
|
||
'iznosNOW' => float 0
|
||
'iznosMAX' => float 3
|
||
'magic_inci' => string '446' (length=3)
|
||
'name' => string 'Живая Вода' (length=19)
|
||
'id' => int 75917747
|
||
'img' => string 'invoke_kar3_lifew.gif' (length=21)
|
||
'2h' => int 0
|
||
3 =>
|
||
array (size=14)
|
||
'type' => int 29
|
||
'data' => string '' (length=0)
|
||
'inOdet' => int 53
|
||
'item_id' => int 1034
|
||
'inslot' => int 53
|
||
'useInBattle' => int 1
|
||
'btl_zd' => int 0
|
||
'iznosNOW' => float 0
|
||
'iznosMAX' => float 3
|
||
'magic_inci' => string '449' (length=3)
|
||
'name' => string 'Сушеный Мухомор' (length=29)
|
||
'id' => int 75917742
|
||
'img' => string 'invoke_kar3_mush.gif' (length=20)
|
||
'2h' => int 0
|
||
4 =>
|
||
array (size=14)
|
||
'type' => int 18
|
||
'data' => string 'tr_lvl=8|tr_s2=30|tr_s3=30|tr_s1=15|tr_s4=30|tr_a1=9|add_m4=40|add_s2=1|add_s3=2|sv_yron_min=5|sv_yron_max=15|add_m5=30|add_m1=30|add_m9=15|complect=106|tya1=75|tya3=25||fromshop=1' (length=180)
|
||
'inOdet' => int 14
|
||
'item_id' => int 6473
|
||
'inslot' => int 3
|
||
'useInBattle' => int 0
|
||
'btl_zd' => int 0
|
||
'iznosNOW' => float 0.7
|
||
'iznosMAX' => float 25
|
||
'magic_inci' => string '' (length=0)
|
||
'name' => string 'Кинжал Злодеяний [8]' (length=35)
|
||
'id' => int 75917776
|
||
'img' => string 'knife76.gif' (length=11)
|
||
'2h' => int 0
|
||
'effects' =>
|
||
array (size=1)
|
||
0 =>
|
||
array (size=41)
|
||
'id' => int 106916938
|
||
'id_eff' => int 31
|
||
'uid' => int 27205347
|
||
'name' => string 'Касание Хаоса' (length=25)
|
||
'data' => string 'nofastfinisheff=1' (length=17)
|
||
'overType' => int 0
|
||
'timeUse' => int 1704492685
|
||
'timeAce' => int 0
|
||
'user_use' => string '' (length=0)
|
||
'delete' => int 0
|
||
'v1' => string '0' (length=1)
|
||
'v2' => int 0
|
||
'img2' => string '' (length=0)
|
||
'x' => int 1
|
||
'hod' => int -1
|
||
'bj' => string '0' (length=1)
|
||
'sleeptime' => int 0
|
||
'no_Ace' => int 0
|
||
'file_finish' => string '' (length=0)
|
||
'tr_life_user' => int 0
|
||
'deactiveTime' => int 0
|
||
'deactiveLast' => int 0
|
||
'mark' => int 0
|
||
'bs' => int 0
|
||
'id2' => int 31
|
||
'mname' => string 'Касание Хаоса' (length=25)
|
||
'type1' => int 21
|
||
'img' => string 'survival_timeout.gif' (length=20)
|
||
'mdata' => string 'nofastfinisheff=1' (length=17)
|
||
'actionTime' => int 86400
|
||
'type2' => int 6
|
||
'type3' => int 6
|
||
'onlyOne' => int 1
|
||
'oneType' => int 0
|
||
'noAce' => int 0
|
||
'see' => int 1
|
||
'info' => string 'Вы слишком близко приблизились к центру Излома Хаоса' (length=97)
|
||
'overch' => int 0
|
||
'bp' => int 1
|
||
'noch' => int 0
|
||
'minfo' => string '' (length=0)
|
||
'vip' => null
|
||
'rinv' => int 40
|
||
'mg5' => int 0
|
||
'mg6' => int 0
|
||
'a6' => int 0
|
||
's8' => int 0
|
||
's9' => int 0
|
||
's10' => int 0
|
||
's11' => int 0
|
||
's12' => int 0
|
||
's13' => int 0
|
||
's14' => int 0
|
||
's15' => int 0
|
||
'wp1id' => int 0
|
||
'reting' => int 3
|
||
'wp3id' => int 1
|
||
'wp54id' => int 2
|
||
'wp53id' => int 3
|
||
'wp14id' => int 4
|
||
'set_pog' =>
|
||
array (size=0)
|
||
empty
|
||
'set_pog2' =>
|
||
array (size=0)
|
||
empty
|
||
'ozash' =>
|
||
array (size=4)
|
||
1 =>
|
||
array (size=2)
|
||
0 => int 0
|
||
1 => int 0
|
||
2 =>
|
||
array (size=2)
|
||
0 => int 0
|
||
1 => int 0
|
||
3 =>
|
||
array (size=2)
|
||
0 => int 0
|
||
1 => int 0
|
||
4 =>
|
||
array (size=2)
|
||
0 => int 0
|
||
1 => int 0
|
||
'ozmsh' =>
|
||
array (size=4)
|
||
1 =>
|
||
array (size=2)
|
||
0 => int 0
|
||
1 => int 0
|
||
2 =>
|
||
array (size=2)
|
||
0 => int 0
|
||
1 => int 0
|
||
3 =>
|
||
array (size=2)
|
||
0 => int 0
|
||
1 => int 0
|
||
4 =>
|
||
array (size=2)
|
||
0 => int 0
|
||
1 => int 0
|
||
'weapon1' => int 1
|
||
'weapon2' => int 1
|
||
'sheld1' => int 0
|
||
'sv_' =>
|
||
array (size=57)
|
||
'a1' => int 0
|
||
'a2' => int 0
|
||
'a3' => int 0
|
||
'a4' => int 0
|
||
'a5' => int 0
|
||
'aall' => int 0
|
||
'hpall' => int 0
|
||
'm1' => int 0
|
||
'm10' => int 0
|
||
'm11' => int 0
|
||
'm14' => int 0
|
||
'm15' => int 0
|
||
'm18' => int 0
|
||
'm19' => int 0
|
||
'm2' => int 0
|
||
'm3' => int 0
|
||
'm4' => int 0
|
||
'm5' => int 0
|
||
'm6' => int 0
|
||
'm7' => int 0
|
||
'm8' => int 0
|
||
'm9' => int 0
|
||
'mall' => int 0
|
||
'mg1' => int 0
|
||
'mg2' => int 0
|
||
'mg3' => int 0
|
||
'mg4' => int 0
|
||
'mg7' => int 0
|
||
'mpall' => int 0
|
||
'pa1' => int 0
|
||
'pa2' => int 0
|
||
'pa3' => int 0
|
||
'pa4' => int 0
|
||
'pm1' => int 0
|
||
'pm2' => int 0
|
||
'pm3' => int 0
|
||
'pm4' => int 0
|
||
'pm7' => int 0
|
||
's1' => int 0
|
||
's2' => int 0
|
||
's3' => int 0
|
||
's4' => int 0
|
||
's5' => int 0
|
||
's6' => int 0
|
||
's7' => int 0
|
||
'za' => int 0
|
||
'za1' => int 0
|
||
'za2' => int 0
|
||
'za3' => int 0
|
||
'za4' => int 0
|
||
'zm' => int 0
|
||
'zm1' => int 0
|
||
'zm2' => int 0
|
||
'zm3' => int 0
|
||
'zm4' => int 0
|
||
'zona' => int 0
|
||
'zonb' => int 0
|
||
'sv_i' =>
|
||
array (size=57)
|
||
'a1' => int 0
|
||
'a2' => int 0
|
||
'a3' => int 0
|
||
'a4' => int 0
|
||
'a5' => int 0
|
||
'aall' => int 0
|
||
'hpall' => int 0
|
||
'm1' => int 0
|
||
'm10' => int 0
|
||
'm11' => int 0
|
||
'm14' => int 0
|
||
'm15' => int 0
|
||
'm18' => int 0
|
||
'm19' => int 0
|
||
'm2' => int 0
|
||
'm3' => int 0
|
||
'm4' => int 0
|
||
'm5' => int 0
|
||
'm6' => int 0
|
||
'm7' => int 0
|
||
'm8' => int 0
|
||
'm9' => int 0
|
||
'mall' => int 0
|
||
'mg1' => int 0
|
||
'mg2' => int 0
|
||
'mg3' => int 0
|
||
'mg4' => int 0
|
||
'mg7' => int 0
|
||
'mpall' => int 0
|
||
'pa1' => int 0
|
||
'pa2' => int 0
|
||
'pa3' => int 0
|
||
'pa4' => int 0
|
||
'pm1' => int 0
|
||
'pm2' => int 0
|
||
'pm3' => int 0
|
||
'pm4' => int 0
|
||
'pm7' => int 0
|
||
's1' => int 0
|
||
's2' => int 0
|
||
's3' => int 0
|
||
's4' => int 0
|
||
's5' => int 0
|
||
's6' => int 0
|
||
's7' => int 0
|
||
'za' => int 0
|
||
'za1' => int 0
|
||
'za2' => int 0
|
||
'za3' => int 0
|
||
'za4' => int 0
|
||
'zm' => int 0
|
||
'zm1' => int 0
|
||
'zm2' => int 0
|
||
'zm3' => int 0
|
||
'zm4' => int 0
|
||
'zona' => int 0
|
||
'zonb' => int 0
|
||
'dom' =>
|
||
array (size=0)
|
||
empty
|
||
'prsu' =>
|
||
array (size=0)
|
||
empty
|
||
'x' => int 3
|
||
'y' => int 4
|
||
's' => int 1
|
||
'maxves' => int 100
|
||
'speed_dungeon' => int 500
|
||
'speedhp' => int 500
|
||
'this_animal' => int 0
|
||
'lvl' => int 8
|
||
'hpAll' => int 2130
|
||
'mpAll' => int 0
|
||
|
||
*/
|