Переезд impstats и additem..
This commit is contained in:
+21
-54
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use Core\ConversionHelper;
|
||||
use Core\Db;
|
||||
use DarksLight2\Training\TrainingManager;
|
||||
use Insallah\Math;
|
||||
@@ -113,7 +114,7 @@ class Priems
|
||||
}
|
||||
$x++;
|
||||
$data['add_mg2static_points'] = $x;
|
||||
$data = $this->impStats($data);
|
||||
$data = ConversionHelper::arrayToDataString($data);
|
||||
Db::sql(
|
||||
'update eff_users set x = ?, data = ? where uid = ? and `delete` = 0 and v2 = 260 and user_use = ?',
|
||||
[$x, $data, $uid, $this->u->info['id']]
|
||||
@@ -415,40 +416,6 @@ class Priems
|
||||
return $r;
|
||||
}
|
||||
|
||||
/** Превращает строку data ('a=1|b=2|c=3') из БД в массив [a=>1, b=>2, c=>3].
|
||||
* @param $m
|
||||
* @return array
|
||||
*/
|
||||
public function lookStatsArray($m)
|
||||
{
|
||||
$arr = json_decode(str_replace(['=', '|'], ['":', ',"'], '{"' . $m . '}'), true);
|
||||
return $arr ?: [];
|
||||
}
|
||||
|
||||
/** Превращает массив [a=>1, b=>2, c=>3] в строку data ('a=1|b=2|c=3') для БД.
|
||||
* @param array $m
|
||||
* @return string
|
||||
*/
|
||||
private function impStats(array $m)
|
||||
{
|
||||
$str = json_encode($m);
|
||||
return $str ? str_replace(['":', ',"', '{"', '}'], ['=', '|'], $str) : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $data
|
||||
* @param array $values
|
||||
* @return string
|
||||
*/
|
||||
private function changeStatsData($data, array $values)
|
||||
{
|
||||
$arr = $this->lookStatsArray($data);
|
||||
foreach ($values as $key => $value) {
|
||||
$arr[$key] = $value;
|
||||
}
|
||||
return $this->impStats($arr);
|
||||
}
|
||||
|
||||
public function magicRegen($ue, $hpmin, $tmp, $pl, $eff, $rp = 0, $dp = 0, $krituet = true, $dopyrn = 0)
|
||||
{
|
||||
global $btl;
|
||||
@@ -533,7 +500,7 @@ class Priems
|
||||
mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $pl2['v2'] . '" LIMIT 1')
|
||||
);
|
||||
if (isset($pl2['priem']['id'])) {
|
||||
$dt1 = $this->lookStatsArray($pl2['priem']['date2']);
|
||||
$dt1 = ConversionHelper::dataStringToArray($pl2['priem']['date2']);
|
||||
if (isset($dt1['yron_u2'])) {
|
||||
|
||||
$minu = $this->getdr(
|
||||
@@ -1041,7 +1008,7 @@ class Priems
|
||||
mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $pl2['v2'] . '" LIMIT 1')
|
||||
);
|
||||
if (isset($pl2['priem']['id'])) {
|
||||
$dt1 = $this->lookStatsArray($pl2['priem']['date2']);
|
||||
$dt1 = ConversionHelper::dataStringToArray($pl2['priem']['date2']);
|
||||
if (isset($dt1['yron_u2'])) {
|
||||
$minu = $this->getdr(
|
||||
$dt1['yron_u2'], [0 => 'lvl1', 1 => 'yr1', 2 => 'ts5', 3 => 'ts6'],
|
||||
@@ -1661,8 +1628,8 @@ class Priems
|
||||
public function plusData($d1, $d2)
|
||||
{
|
||||
global $u;
|
||||
$j1 = $this->lookStatsArray($d1);
|
||||
$j2 = $this->lookStatsArray($this->redate($d2, $this->u->info['id']));
|
||||
$j1 = ConversionHelper::dataStringToArray($d1);
|
||||
$j2 = ConversionHelper::dataStringToArray($this->redate($d2, $this->u->info['id']));
|
||||
$v = $this->u->lookKeys($this->redate($d2, $this->u->info['id']), 0); // ключи 2
|
||||
//добавляем данные друг к другу
|
||||
$i = 0;
|
||||
@@ -1680,7 +1647,7 @@ class Priems
|
||||
$i++;
|
||||
}
|
||||
$inf = rtrim($inf, ', ');
|
||||
$j1 = $this->u->impStats($j1);
|
||||
$j1 = ConversionHelper::arrayToDataString($j1);
|
||||
return $j1;
|
||||
}
|
||||
|
||||
@@ -1688,7 +1655,7 @@ class Priems
|
||||
{
|
||||
global $u, $btl;
|
||||
$rcu = false;
|
||||
$j = $this->lookStatsArray($pl['date2']);
|
||||
$j = ConversionHelper::dataStringToArray($pl['date2']);
|
||||
$mpr = false;
|
||||
$addch = 0;
|
||||
$uid = $this->u->info['id'];
|
||||
@@ -1790,8 +1757,8 @@ class Priems
|
||||
}
|
||||
} elseif ($j['onlyOne'] > 1) {
|
||||
if ($mpr['x'] < $j['onlyOne'] && isset($j['date3Plus'])) {
|
||||
$j1 = $this->lookStatsArray($mpr['data']);
|
||||
$j2 = $this->lookStatsArray($this->redate($pl['date3'], $this->u->info['id']));
|
||||
$j1 = ConversionHelper::dataStringToArray($mpr['data']);
|
||||
$j2 = ConversionHelper::dataStringToArray($this->redate($pl['date3'], $this->u->info['id']));
|
||||
$v = $this->u->lookKeys($this->redate($pl['date3'], $this->u->info['id']), 0); // ключи 2
|
||||
//добавляем данные друг к другу
|
||||
$i = 0;
|
||||
@@ -1809,7 +1776,7 @@ class Priems
|
||||
$i++;
|
||||
}
|
||||
$inf = rtrim($inf, ', ');
|
||||
$j1 = $this->u->impStats($j1);
|
||||
$j1 = ConversionHelper::arrayToDataString($j1);
|
||||
$pld[0] = ' x' . ($mpr['x'] + 1);
|
||||
if ($j['refHod'] == 1) {
|
||||
$mpr['hod'] = $pl['limit'];
|
||||
@@ -1982,7 +1949,7 @@ class Priems
|
||||
$this->u->info['priems_z'] = $pz;
|
||||
$btl->users[$btl->uids[$this->u->info['id']]]['priems_z'] = $pz;
|
||||
$btl->stats[$btl->uids[$this->u->info['id']]]['priems_z'] = $pz;
|
||||
$tr = $this->lookStatsArray($pl['tr']);
|
||||
$tr = ConversionHelper::dataStringToArray($pl['tr']);
|
||||
if (isset($tr['tr_mpNow'])) {
|
||||
$tr['tr_mpNow'] = round($tr['tr_mpNow'] / 100 * (100 - $this->u->stats['min_use_mp']));
|
||||
$btl->users[$btl->uids[$this->u->info['id']]]['mpNow'] -= $tr['tr_mpNow'];
|
||||
@@ -2167,8 +2134,8 @@ class Priems
|
||||
public function testpriem($pl, $t = 1, $o = 0)
|
||||
{
|
||||
global $c, $u, $code, $btl;
|
||||
$tr = $this->lookStatsArray($pl['tr']);
|
||||
$d2 = $this->lookStatsArray($pl['date2']);
|
||||
$tr = ConversionHelper::dataStringToArray($pl['tr']);
|
||||
$d2 = ConversionHelper::dataStringToArray($pl['date2']);
|
||||
$x = 1;
|
||||
$notr = 0;
|
||||
|
||||
@@ -2342,7 +2309,7 @@ class Priems
|
||||
{
|
||||
global $u, $c, $code, $btl;
|
||||
$pz = explode('|', $this->u->info['priems_z']);
|
||||
$tr = $this->lookStatsArray($pl['tr']);
|
||||
$tr = ConversionHelper::dataStringToArray($pl['tr']);
|
||||
$trs = '';
|
||||
$x = 0;
|
||||
$notr = 0;
|
||||
@@ -2586,7 +2553,7 @@ class Priems
|
||||
);
|
||||
$leveledDamage = $baseDamage[$level] + 40 / 100 * (5 * $magicTargetTier);
|
||||
|
||||
list($damage, $isCrit, $isMiss) = $this->magicAttack(
|
||||
[$damage, $isCrit, $isMiss] = $this->magicAttack(
|
||||
$btl, $this->u->info['id'], $this->ue['id'], $leveledDamage, self::FIRE, 1
|
||||
);
|
||||
//Используем проверку на урон приемов
|
||||
@@ -2668,7 +2635,7 @@ class Priems
|
||||
) : $pl['date3'];
|
||||
|
||||
// Костыль. Будет работать, пока приём изменяет ОДИН параметр.
|
||||
$effect = "Защита от магии {$data[$element][1]}: " . current($this->lookStatsArray($dataStr));
|
||||
$effect = "Защита от магии {$data[$element][1]}: " . current(ConversionHelper::dataStringToArray($dataStr));
|
||||
$color = $this->logColor[$element];
|
||||
|
||||
$name = "Цель {$data[$element][1]}";
|
||||
@@ -2715,7 +2682,7 @@ class Priems
|
||||
}//Проверяем эффект
|
||||
$prv['j_priem'] = $btl->stats[$btl->uids[$u1]]['u_priem'][$j_id][0];
|
||||
|
||||
$pvr['data'] = $this->lookStatsArray($btl->stats[$btl->uids[$u1]]['effects'][$prv['j_priem']]['data']);
|
||||
$pvr['data'] = ConversionHelper::dataStringToArray($btl->stats[$btl->uids[$u1]]['effects'][$prv['j_priem']]['data']);
|
||||
$pName = $btl->stats[$btl->uids[$u1]]['effects'][$prv['j_priem']]['name'];
|
||||
|
||||
$pvr['hp'] = $pvr['data']['atgm'];
|
||||
@@ -2763,7 +2730,7 @@ class Priems
|
||||
private function devouringFlameInit($id, array $pl, Battle $btl)
|
||||
{
|
||||
$baseDamage = [6 => 53, 7 => 63, 8 => 77, 9 => 91, 10 => 110, 11 => 133,];
|
||||
list($damage, , $isMiss) = $this->magicAttack(
|
||||
[$damage, , $isMiss] = $this->magicAttack(
|
||||
$btl, $this->u->info['id'], $this->ue['id'], $baseDamage[$pl['level']], self::FIRE
|
||||
);
|
||||
if ($isMiss || $damage <= 0) {
|
||||
@@ -2777,7 +2744,7 @@ class Priems
|
||||
$logText, $btl->hodID + 1
|
||||
);
|
||||
|
||||
$data = $this->impStats(['atgm' => max(floor($damage / 5), 1)]);
|
||||
$data = ConversionHelper::arrayToDataString(['atgm' => max(floor($damage / 5), 1)]);
|
||||
|
||||
$this->addPriem(
|
||||
$this->ue['id'], $pl['id'], $data, 0, 77, 5, $this->u->info['id'], 1, 'пожирающеепламя', 0, 0, 1
|
||||
@@ -2801,7 +2768,7 @@ class Priems
|
||||
$datas = Db::getColumn($q, array_fill(0, 3, $this->ue['id']));
|
||||
$stats = array_fill_keys(['s1', 's2', 's3', 's5', 's6'], 0);
|
||||
foreach ($datas as $data) {
|
||||
$data = $this->lookStatsArray($data);
|
||||
$data = ConversionHelper::dataStringToArray($data);
|
||||
print_r($data);
|
||||
foreach (array_keys($stats) as $stat) {
|
||||
if (isset($data[$stat])) {
|
||||
|
||||
Reference in New Issue
Block a user