game/_incl_data/class/Battle/Fighter.php

619 lines
16 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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
*/