game/_incl_data/class/Battle/Fighter.php

619 lines
16 KiB
PHP
Raw Normal View History

<?php
namespace Battle;
use Helper\Math;
use User;
class Fighter
{
private string $obraz;
2024-01-06 15:30:34 +00:00
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;
}
2024-01-06 15:30:34 +00:00
}
2024-01-06 15:30:34 +00:00
/*
/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
*/