WIP: перед введенимем класса Fighter.php

This commit is contained in:
Ivor Barhansky 2024-01-06 00:14:35 +02:00
parent 07f905ef64
commit a2c658166d
67 changed files with 5555 additions and 7135 deletions

View File

@ -25,10 +25,6 @@ RewriteRule casino/SWFP.pl casino/SWFP.php [L]
RewriteCond %{ENV:REDIRECT} !^yes$ RewriteCond %{ENV:REDIRECT} !^yes$
RewriteRule ^r([0-9]+)/?$ /register.php?ref=$1 [L] RewriteRule ^r([0-9]+)/?$ /register.php?ref=$1 [L]
RewriteRule ^adminion/([a-zA-Z0-9]+)/?$ /adminion/index.php?mod=$1 [L]
RewriteRule ^adminion/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ /adminion/index.php?mod=$1 [L]
RewriteRule ^adminion/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ /adminion/index.php?mod=$1 [L]
RewriteRule ^settings/?$ /settings.php [L] RewriteRule ^settings/?$ /settings.php [L]
RewriteRule ^info/(.*)/?$ /inf.php?$1 [L] RewriteRule ^info/(.*)/?$ /inf.php?$1 [L]
@ -45,9 +41,6 @@ RewriteRule ^clan/?$ /clans_inf.php [L]
RewriteRule ^ruins/(.*)/?$ /ruins.php?$1 [L] RewriteRule ^ruins/(.*)/?$ /ruins.php?$1 [L]
RewriteRule ^ruins/?$ /ruins.php [L] RewriteRule ^ruins/?$ /ruins.php [L]
RewriteRule ^exp/(.*)/?$ /exp.php?$1 [L]
RewriteRule ^exp/?$ /exp.php [L]
RewriteRule ^news/(.*)/?$ /n/$1 [R=301,L] RewriteRule ^news/(.*)/?$ /n/$1 [R=301,L]
RewriteRule ^news/?$ /n [R=301,L] RewriteRule ^news/?$ /n [R=301,L]
@ -91,6 +84,3 @@ RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] RewriteRule . /index.php [L]
</IfModule> </IfModule>
Order Allow,Deny
Allow from all

32
AI.php
View File

@ -484,3 +484,35 @@ foreach ($p as $prow) {
} }
echo "<br>"; echo "<br>";
} }
$stats = Db::getRows('select id, stats from stats');
$sarr = [];
foreach ($stats as $stat) {
$data = Conversion::dataStringToArray($stat['stats']);
$arr = [
'uid' => $stat['id'],
's1' => $data['s1'] ?? 0,
's2' => $data['s2'] ?? 0,
's3' => $data['s3'] ?? 0,
's4' => $data['s4'] ?? 0,
's5' => $data['s5'] ?? 0,
's6' => $data['s6'] ?? 0,
's7' => $data['s7'] ?? 0,
'a1' => $data['a1'] ?? 0,
'a2' => $data['a2'] ?? 0,
'a3' => $data['a3'] ?? 0,
'a4' => $data['a4'] ?? 0,
'mg1' => $data['mg1'] ?? 0,
'mg2' => $data['mg2'] ?? 0,
'mg3' => $data['mg3'] ?? 0,
'mg4' => $data['mg4'] ?? 0,
];
unset($data['s1'], $data['s2'], $data['s3'], $data['s4'], $data['s5'], $data['s6'], $data['s7'],
$data['a1'], $data['a2'], $data['a3'], $data['a4'],
$data['mg1'], $data['mg2'], $data['mg3'], $data['mg4']);
$arr['tails'] = Conversion::arrayToDataString($data);
$arr['tails_json'] = json_encode($data);
$sarr[] = $arr;
}
var_dump($sarr);

6
Array
View File

@ -1,6 +0,0 @@
# Netscape HTTP Cookie File
# https://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
new-combats.com FALSE / FALSE 0 PHPSESSID vt7d2f0tttjoneil7bqsc7org0
new-combats.com FALSE /jx/battle/ FALSE 1517571089 btl 0

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
<?php
namespace Battle;
class Fighter
{
}

View File

@ -24,6 +24,8 @@ class Finish
private int $aBexp = 0; //Добавочный опыт в боях private int $aBexp = 0; //Добавочный опыт в боях
private Battle $battle; private Battle $battle;
private array $btlstatus = [];
public function __construct(Battle $battle) public function __construct(Battle $battle)
{ {
$this->battle = $battle; $this->battle = $battle;
@ -35,7 +37,6 @@ class Finish
$injuryName = [1 => 'легкую', 2 => 'среднюю', 3 => 'тяжелую', 4 => 'неизлечимую',]; $injuryName = [1 => 'легкую', 2 => 'среднюю', 3 => 'тяжелую', 4 => 'неизлечимую',];
$dnr = 0; //??? $dnr = 0; //???
$chat = new Chat(); $chat = new Chat();
mysql_query('LOCK TABLES users,stats,battle,battle_last,battle_end,chat WRITE');
$test = Db::getRow('select id, team_win, testfinish from battle where id = ? and team_win != -1', [$this->battle->info['id']]); $test = Db::getRow('select id, team_win, testfinish from battle where id = ? and team_win != -1', [$this->battle->info['id']]);
if ($test['testfinish'] == -1) { if ($test['testfinish'] == -1) {
@ -259,7 +260,7 @@ class Finish
); );
} }
unset($spik, $plik); unset($spik, $plik);
//
$usrreal = ''; $usrreal = '';
$usr_real = mysql_fetch_array( $usr_real = mysql_fetch_array(
mysql_query( mysql_query(
@ -270,13 +271,9 @@ class Finish
$usr_real = $this->battle->users[$i]; $usr_real = $this->battle->users[$i];
} }
if (isset($usr_real['id'])) { if (isset($usr_real['id'])) {
if ($usr_real['align'] > 0) { $login = new User\Login($usr_real['align'], $usr_real['clan'], $usr_real['level'], $usr_real['login']);
$usrreal .= '<img src=//img.new-combats.tech/i/align/align' . $usr_real['align'] . '.gif width=12 height=15 >'; $usrreal .= $login->fullLogin;
} unset($login);
if ($usr_real['clan'] > 0) {
$usrreal .= '<img src=//img.new-combats.tech/i/clan/' . $usr_real['clan'] . '.gif width=24 height=15 >';
}
$usrreal .= '<strong>' . $usr_real['login'] . '</strong>[' . $usr_real['level'] . ']<a target=_blank href=/info/' . $usr_real['id'] . ' ><img src=//img.new-combats.tech/i/inf_capitalcity.gif alt=""></a>';
} }
$text = str_replace('{u1}', $usrreal, $text); $text = str_replace('{u1}', $usrreal, $text);
@ -357,14 +354,14 @@ class Finish
$usrwin = ''; $usrwin = '';
while ($j < count($this->battle->users)) { while ($j < count($this->battle->users)) {
if ($this->battle->users[$j]['no_ip'] != 'trupojor' && $this->battle->users[$j]['bot'] == 0 && $this->battle->stats[$j]['hpNow'] > 0) { if ($this->battle->users[$j]['no_ip'] != 'trupojor' && $this->battle->users[$j]['bot'] == 0 && $this->battle->stats[$j]['hpNow'] > 0) {
$usrwin .= ', '; $login = new User\Login(
if ($this->battle->users[$j]['align'] > 0) { $this->battle->users[$j]['align'],
$usrwin .= '<img width=12 height=15 src=//img.new-combats.tech/i/align/align' . $this->battle->users[$j]['align'] . '.gif >'; $this->battle->users[$j]['clan'],
} $this->battle->users[$j]['level'],
if ($this->battle->users[$j]['clan'] > 0) { $this->battle->users[$j]['login']
$usrwin .= '<img width=24 height=15 src=//img.new-combats.tech/i/clan/' . $this->battle->users[$j]['clan'] . '.gif >'; );
} $usrwin .= ', ' . $login->fullLogin;
$usrwin .= '<strong>' . $this->battle->users[$j]['login'] . '</strong> [' . $this->battle->users[$j]['level'] . ']<a target=_blank href=info/' . $this->battle->users[$j]['id'] . ' ><img alt="" src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>'; unset($login);
} }
$j++; $j++;
} }
@ -950,9 +947,11 @@ class Finish
) )
); );
$btlstatus = $this->typeBattle($prsusers[0]);
$this->btlstatus = Battle::getType($prsusers[0]);
if ($this->battle->info['smert'] == 1) { if ($this->battle->info['smert'] == 1) {
$btlstatus = [150, 150, 'Жесточайшее Сражение', 'Жесточайшее Сражение']; $this->btlstatus = [150, 150, 'Жесточайшее Сражение', 'Жесточайшее Сражение'];
} }
// //
if ($this->battle->stats[$i]['clanpos'] > 0 && ($this->battle->stats[$i]['clanpos'] == 1 || $this->battle->stats[$i]['clanpos'] == 2 || $this->battle->stats[$i]['clanpos'] == 3)) { if ($this->battle->stats[$i]['clanpos'] > 0 && ($this->battle->stats[$i]['clanpos'] == 1 || $this->battle->stats[$i]['clanpos'] == 2 || $this->battle->stats[$i]['clanpos'] == 3)) {
@ -961,11 +960,11 @@ class Finish
unset($r1); unset($r1);
//Статусная битва //Статусная битва
if ($btlstatus[0] > 0) { if ($this->btlstatus[0] > 0) {
if ($this->battle->info['type'] == 99) { if ($this->battle->info['type'] == 99) {
$this->battle->info['addExp'] += $btlstatus[1]; $this->battle->info['addExp'] += $this->btlstatus[1];
} else { } else {
$this->battle->info['addExp'] += $btlstatus[0]; $this->battle->info['addExp'] += $this->btlstatus[0];
} }
} }
@ -1126,11 +1125,11 @@ class Finish
unset($lime); unset($lime);
if ($btlstatus[0] > 0) { if ($this->btlstatus[0] > 0) {
if ($this->battle->info['type'] == 99) { if ($this->battle->info['type'] == 99) {
$prc .= ' (' . $btlstatus[3] . ')'; $prc .= ' (' . $this->btlstatus[3] . ')';
} else { } else {
$prc .= ' (' . $btlstatus[2] . ')'; $prc .= ' (' . $this->btlstatus[2] . ')';
} }
} }
@ -1504,13 +1503,17 @@ class Finish
mysql_query('UPDATE `battle_users` SET `finish` = 1 WHERE `uid` = "' . $this->battle->users[$i]['id'] . '"'); mysql_query('UPDATE `battle_users` SET `finish` = 1 WHERE `uid` = "' . $this->battle->users[$i]['id'] . '"');
$this->saveLogs(); $this->saveLogs();
if ($u->info['battle'] != 0 && !isset($u->info['battle_lsto'])) { if ($u->info['battle'] != 0 && !isset($u->info['battle_lsto'])) {
echo '<script>document.getElementById(\'teams\').style.display=\'none\';var battleFinishData = "' . $u->info['battle_text'] . '";</script>'; echo <<<HTML
<script>
document.getElementById('teams').style.display='none';
var battleFinishData = {$u->info['battle_text']}
</script>
HTML;
} }
} }
} }
mysql_query('UPDATE `battle` SET `testfinish` = "0" WHERE `id` = "' . $this->battle->info['id'] . '" LIMIT 1'); mysql_query('UPDATE `battle` SET `testfinish` = "0" WHERE `id` = "' . $this->battle->info['id'] . '" LIMIT 1');
mysql_query('UNLOCK TABLES');
} }
private function addItemToItemsLocal(int $itemId, int $uid, string $data = ''): void private function addItemToItemsLocal(int $itemId, int $uid, string $data = ''): void
@ -1597,23 +1600,6 @@ class Finish
Db::sql('delete from battle_actions where btl = ?', [$this->battle->info['id']]); Db::sql('delete from battle_actions where btl = ?', [$this->battle->info['id']]);
} }
private function typeBattle(int $x): array
{
$r = [0, 0, 'Обычный поединок', 'Кровавый Поединок'];
if ($x >= 50000 && $x < 100000) {
$r = [25, 50, 'Великая Битва', 'Кровавая Битва'];
} elseif ($x < 500000) {
$r = [50, 75, 'Величайшая Битва', 'Кровавая Резня'];
} elseif ($x < 1000000) {
$r = [75, 100, 'Историческая Битва', 'Кровавая Сеча'];
} elseif ($x < 2500000) {
$r = [100, 125, 'Эпохальная Битва', 'Кровавое Побоище'];
} elseif ($x >= 5000000) {
$r = [150, 150, 'Судный День', 'Судный День'];
}
return $r;
}
private function dieInDungeon(int $dnr, int $i, User $u, ChatMessage $cmsg, Chat $chat): void private function dieInDungeon(int $dnr, int $i, User $u, ChatMessage $cmsg, Chat $chat): void
{ {
if ($dnr != 1) { if ($dnr != 1) {
@ -1913,4 +1899,9 @@ class Finish
} }
public function getBtlstatus(): array
{
return $this->btlstatus;
}
} }

View File

@ -169,7 +169,6 @@ class Log
'<вырезано цензурой> каратисты фиговы', '<вырезано цензурой> каратисты фиговы',
]; ];
$randomcomment = $comments[array_rand($comments)]; $randomcomment = $comments[array_rand($comments)];
$text = "{tm1} <i>Комментатор: $randomcomment</i>";
self::add( self::add(
[ [
@ -181,4 +180,497 @@ class Log
] ]
); );
} }
public static function getAttackTurnText(int $weaponType, int $attackZone): array
{
$w = [
0 => ['грудью', 'ребром руки', 'лбом', 'кулаком', 'ногой', 'левой ногой', 'правой ногой', 'коленом',],
1 => ['ножом', 'тыльной стороной лезвия ножа', 'рукоятью ножа', 'лезвием ножа'],
2 => ['сучковатой палкой', 'поленом', 'тяжелой дубиной', 'дубиной', 'рукоятью молота'],
3 => ['секирой', 'топором', 'лезвием секиры', 'алебардой', 'тяжелым держаком', 'длинной секирой'],
4 => ['ножнами', 'гардой', 'мечом', 'лезвием меча', 'рукоятью меча', 'тупым лезвием', 'острой стороной меча', 'огромным мечом',],
5 => ['сучковатой палкой', 'посохом', 'тяжелой тростью', 'корявым посохом', 'основанием посоха'],
22 => ['костылем'],
100 => ['непонятной хреновиной'],
];
$z = [
1 => ['в нос', 'в глаз', 'в челюсть', 'по переносице', 'в кадык', 'по затылку', 'в правый глаз', 'в левый глаз', 'в скулу',],
2 => ['в грудь', 'в корпус', 'в солнечное сплетение', 'в сердце', 'в область лопаток'],
3 => ['в бок', 'по желудку', 'по левой руке', 'по правой руке'],
4 => ['по <вырезано цензурой>', 'в пах', 'в промежность', 'по левой ягодице', 'по правой ягодице'],
5 => ['по ногам', 'в область правой пятки', 'в область левой пятки', 'по коленной чашечке', 'по икрам'],
100 => ['по непонятному месту'],
];
if (!in_array($weaponType, [0, 1, 2, 3, 4, 5, 22])) {
$weaponType = 100;
}
if (!in_array($attackZone, [1, 2, 3, 4, 5])) {
$attackZone = 100;
}
return [
$w[$weaponType][array_rand($w[$weaponType])],
$z[$attackZone][array_rand($z[$attackZone])],
];
}
public static function addLogLine(int $type, int $gender, bool $count = false): string|int
{
$logtext = [
[ // муж.
[],
[
'вспомнил что-то важное',
'высморкался',
'задумался',
'замешкался',
'засмотрелся на <вырезано цензурой>',
'кашлянул',
'ковырялся в зубах',
'обернулся',
'осмотрелся',
'почесался',
'пошатнулся',
'пришел в себя',
'пытался сконцентрироваться',
'пытался увернуться',
'пытался что-то сказать',
'расплылся в улыбке',
'расстроился',
'растерялся',
'удивился',
'чесал <вырезано цензурой>',
'пытался отойти покурить',
'чесал яйца',
],
[
', и за это ',
', а ',
', но в это время ',
', и тут ',
', но вдруг неожиданно ',
', и вдруг ',
', но ',
', и внезапно ',
', но неожиданно ',
', и в этот момент ',
', и в ту же секунду ',
', и в этот миг ',
],
[
'обезумевший',
'расстроенный',
'неустрашимый',
'продвинутый',
'расстроенный',
'страшный',
'задумчивый',
'небритый',
'бесстрастный',
'разъяренный',
'смелый',
'безумный',
'восхитительный',
'жестокий',
'злобный',
'мужественный',
'непобедимый',
'наглый',
'хитрый',
'храбрый',
'отважный',
'железный',
'могучий',
'сильнейший',
'крепкий',
'великий',
'бесстрашный',
],
[
'случайно ',
'отчаянно ',
'проснувшись ',
'мимоходом ',
'разбежавшись ',
'сдуру ',
'со скуки ',
'не помня себя от испуга ',
'улыбаясь ',
'прослезившись ',
'пошатнувшись ',
'проснувшись ',
'беспричинно ',
'опрометчиво ',
'разбежавшись ',
'зевнув ',
'сделав двойное сальто ',
'не подумав ',
'хихикая ',
'ласково ',
'с испугу ',
],
[
'влепил ',
'вломил ',
'саданул ',
],
[
'грубый',
'наглый',
'красивый',
],
[
'неизвестный удар',
'колющий удар',
'рубящий удар',
'дробящий удар',
'режущий удар',
'обжигающий удар',
'удар электричеством',
'обмораживающий удар',
'удар магией земли',
'удар светлой магией',
'удар тёмной магией',
'удар серой магией',
'обычный удар',
'удар',
],
[
'не контролировал ситуацию',
'обманулся',
'старался провести удар',
'думал о <вырезано цензурой>',
'испугался',
'потерял самоконтроль',
'потерял момент',
'был слишком самоуверен',
'пытался провести удар',
'поскользнулся',
'не думал о бое',
'не рассчитал свои силы',
'промахнулся',
'оступился',
'думал не о том',
],
[
', и потому ',
' и ',
', но ',
', вследствие чего ',
', потому ',
],
[
'остановил',
'поставил блок на',
'блокировал',
'отбил',
],
[
'ушел вправо от удара',
'ушел влево от удара',
'увел удар',
'уклонился от удара',
'увернулся от удара',
],
[
'приняв боевые 100 грамм',
'сказав &quot;БУ!&quot;',
'показав противнику кукиш',
'в отчаянном рывке',
'показав сразу два пальца',
],
[
'о<вырезано цензурой>ный',
'точнейший',
],
[
'погиб!',
'повержен!',
'мертв!',
'убит!',
'проиграл бой!',
],
[
'пропустил свой ход',
'потратил свой ход на магию',
'потратил свой ход на прием',
],
[
'использовал',
],
[
'{u1}, вспомнив слова своего сэнсея, из последних сил применил прием &quot;{pr}&quot;.',
'Кроличья лапка, подкова в перчатке и прием &quot;{pr}&quot; помогли {u1} продержаться ещё немного.',
'{u1}, пораскинув мозгами по земле, сообразил, что его выручат или прием &quot;{pr}&quot; или вмешательство Мусорщика.',
'{u1} выкрикнув: &quot;А ещё я вот так могу!&quot;, применил прием &quot;{pr}&quot;.',
'{u1} понял, пропустив очередной удар в голову, что поможет ему только прием &quot;{pr}&quot;.',
'{u1} сам не поняв зачем, применил прием &quot;{pr}&quot;.',
'{u1} нетрезво оценив положение, решил, что его спасение это прием &quot;{pr}&quot;.',
],
[
'{u1}, вспомнив слова своего сэнсея, из последних сил применил прием &quot;{pr}&quot; на {u2}.',
],
[
'{u1}, победив страх, решил поразить {u2} заклятьем &quot;{pr}&quot;',
'{u1} наконец сфокусировал свое внимание на поединке и наколдовал &quot;{pr}&quot; на {u2}',
'{u1} нарисовав вокруг себя несколько рун, призвал заклятье &quot;{pr}&quot; на {u2}',
'{u1} догадавшись, что пришло время показать себя, произнес заклятье &quot;{pr}&quot; на {u2}',
'{u1} с испугу произнес, первое пришедшее на ум, заклятье &quot;{pr}&quot; на {u2}',
'{u1} впал в транс и начал бормотать заклятие &quot;{pr}&quot; на {u2}',
'{u1} очнулся от медитации, и призвал заклятье &quot;{pr}&quot; на {u2}',
],
[
'{u1} пытался наколдовать ужасающее заклятие &quot;{pr}&quot; на {u2}, но ничего не вышло',
'{u1} не смог сфокусировать и наколдовать &quot;{pr}&quot; на {u2}, но ничего не вышло',
'{u1} с испугу произнес ошибочное заклятие &quot;{pr}&quot; на {u2} и ничего не вышло',
'{u1}, потеряв концентрацию, не смог наколдовать &quot;{pr}&quot; на {u2} и ничего не вышло',
'{u1} <вырезано цензурой> от перенапряжения, вследствие чего не смог наколдовать &quot;{pr}&quot; на {u2}',
'{u1} пытался превратить {u2} в табуретку при помощи заклинания &quot;{pr}&quot;... но ничего не вышло',
],
[
'{u1}, победив страх, решил поразить всех и наколдовал &quot;{pr}&quot;',
'{u1} наконец сфокусировал свое внимание на поединке и наколдовал &quot;{pr}&quot;',
'{u1} нарисовав вокруг себя несколько рун, призвал заклятье &quot;{pr}&quot;',
'{u1} догадавшись, что пришло время показать себя, произнес заклятье &quot;{pr}&quot;',
'{u1} с испугу произнес, первое пришедшее на ум, заклятье &quot;{pr}&quot;',
'{u1} впал в транс и начал бормотать заклятие &quot;{pr}&quot;',
'{u1} очнулся от медитации, и призвал заклятье &quot;{pr}&quot;',
],
],
[ // жен.
[],
[
'вспомнила что-то важное',
'высморкалась',
'задумалась',
'замешкалась',
'засмотрелась на <вырезано цензурой>',
'кашлянула',
'ковырялась в зубах',
'обернулась',
'осмотрелась',
'почесалась',
'пошатнулась',
'пришла в себя',
'пыталась сконцентрироваться',
'пыталась увернуться',
'пыталась что-то сказать',
'расплылалась в улыбке',
'расстроилась',
'растерялась',
'удивилась',
'чесала <вырезано цензурой>',
'пыталась отойти покурить',
'поправляла прическу',
],
[
', и за это ',
', а ',
', но в это время ',
', и тут ',
', но вдруг неожиданно ',
', и вдруг ',
', но ',
', и внезапно ',
', но неожиданно ',
', и в этот момент ',
', и в ту же секунду ',
', и в этот миг ',
],
[
'обезумевшая',
'расстроенная',
'неустрашимая',
'продвинутая',
'расстроенная',
'страшная',
'задумчивая',
'взъерошенная',
'бесстрастная',
'разъяренная',
'смелая',
'безумная',
'восхитительная',
'жестокая',
'злобная',
'мужественная',
'непобедимая',
'наглая',
'хитрая',
'храбрая',
'отважная',
'железная',
'могучая',
'сильнейшая',
'крепкая',
'великая',
'бесстрашная',
],
[
'случайно ',
'отчаянно ',
'проснувшись ',
'мимоходом ',
'разбежавшись ',
'сдуру ',
'со скуки ',
'не помня себя от испуга ',
'улыбаясь ',
'прослезившись ',
'пошатнувшись ',
'проснувшись ',
'беспричинно ',
'опрометчиво ',
'разбежавшись ',
'зевнув ',
'сделав двойное сальто ',
'не подумав ',
'хихикая ',
'ласково ',
'с испугу ',
],
[
'влепила ',
'вломила ',
'саданула ',
],
[
'грубый',
'наглый',
'красивый',
],
[
'тычок',
'тычок',
'рубящий удар',
'разбивающий удар',
'рассекающий удар',
'обжигающий удар',
'удар электричеством',
'обмораживающий удар',
'удар магией земли',
'удар светлой магией',
'удар тёмной магией',
'удар серой магией',
'неизсветный удар',
'удар',
],
[
'не контролировала ситуацию',
'обманулась',
'старалась провести удар',
'думала о <вырезано цензурой>',
'испугалась',
'потеряла самоконтроль',
'потеряла момент',
'была слишком самоуверенна',
'пыталась провести удар',
'поскользнулась',
'не думала о бое',
'не рассчитала свои силы',
'промахнулась',
'оступилась',
'думала не о том',
],
[
', и потому ',
' и ',
', но ',
', вследствие чего ',
', потому ',
],
[
'остановила',
'поставила блок на',
'блокировала',
'отбила',
],
[
'ушла вправо от удара',
'ушла влево от удара',
'увела удар',
'уклонилась от удара',
'увернулась от удара',
],
[
'приняв боевые 100 грамм',
'сказав &quot;БУ!&quot;',
'показав противнику кукиш',
'в отчаянном рывке',
'показав сразу два пальца',
],
[
'о<вырезано цензурой>ный',
'точнейший',
],
[
'погибла!',
'повержена!',
'мертва!',
'убита!',
'проиграла бой!',
],
[
'пропустила свой ход',
'потратила свой ход на магию',
'потратила свой ход на прием',
],
[
'использовала',
],
[
'{u1}, вспомнив слова своего сэнсея, из последних сил применила прием &quot;{pr}&quot;.',
'Кроличья лапка, подкова в перчатке и прием &quot;{pr}&quot; помогли {u1} продержаться ещё немного.',
'{u1}, пораскинув мозгами по земле, сообразила, что её выручат или прием &quot;{pr}&quot; или вмешательство Мусорщика.',
'{u1} выкрикнув: &quot;А ещё я вот так могу!&quot;, применила прием &quot;{pr}&quot;.',
'{u1} поняла, пропустив очередной удар в голову, что поможет ей только прием &quot;{pr}&quot;.',
'{u1} сама не поняв зачем, применила прием &quot;{pr}&quot;.',
'{u1} нетрезво оценив положение, решила, что её спасение это прием &quot;{pr}&quot;.',
],
[
'{u1}, вспомнив слова своего сэнсея, из последних сил применила прием &quot;{pr}&quot; на {u2}.',
],
[
'{u1}, победив страх, решила поразить {u2} заклятьем &quot;{pr}&quot;',
'{u1} наконец сфокусировала свое внимание на поединке и наколдовала &quot;{pr}&quot; на {u2}',
'{u1} нарисовав вокруг себя несколько рун, призвала заклятье &quot;{pr}&quot; на {u2}',
'{u1} догадавшись, что пришло время показать себя, произнесла заклятье &quot;{pr}&quot; на {u2}',
'{u1} с испугу произнесла, первое пришедшее на ум, заклятье &quot;{pr}&quot; на {u2}',
'{u1} впала в транс и начала бормотать заклятие &quot;{pr}&quot; на {u2}',
'{u1} очнулась от медитации, и призвала заклятье &quot;{pr}&quot; на {u2}',
],
[
'{u1} пыталась наколдовать ужасающее заклятие &quot;{pr}&quot; на {u2}, но ничего не вышло',
'{u1} не смогла сфокусировать и наколдовать &quot;{pr}&quot; на {u2}, но ничего не вышло',
'{u1} с испугу произнесла ошибочное заклятие &quot;{pr}&quot; на {u2} и ничего не вышло',
'{u1}, потеряв концентрацию, не смогла наколдовать &quot;{pr}&quot; на {u2} и ничего не вышло',
'{u1} <вырезано цензурой> от перенапряжения, вследствие чего не смогла наколдовать &quot;{pr}&quot; на {u2}',
'{u1} пыталась превратить {u2} в табуретку при помощи заклинания &quot;{pr}&quot;... но ничего не вышло',
],
[
'{u1}, победив страх, решила поразить всех и наколдовала &quot;{pr}&quot;',
'{u1} наконец сфокусировала свое внимание на поединке и наколдовала &quot;{pr}&quot;',
'{u1} нарисовав вокруг себя несколько рун, призвала заклятье &quot;{pr}&quot;',
'{u1} догадавшись, что пришло время показать себя, произнесла заклятье &quot;{pr}&quot;',
'{u1} с испугу произнесла, первое пришедшее на ум, заклятье &quot;{pr}&quot;',
'{u1} впала в транс и начала бормотать заклятие &quot;{pr}&quot;',
'{u1} очнулась от медитации, и призвала заклятье &quot;{pr}&quot;',
],
],
];
if ($count) {
return count($logtext[$gender][$type]);
}
if (!in_array($gender, [0, 1]) || !in_array($type, range(1, 21))) {
return 'произошло нечто непонятное';
}
return $logtext[$gender][$type][array_rand($logtext[$gender][$type])];
}
} }

View File

@ -0,0 +1,114 @@
<?php
namespace Battle\Priem;
abstract class AbstractPriem implements PriemInterface
{
protected int $caster;
protected string $name;
protected string $icon;
protected int $power;
/**
* На кого применяем приём. Например:
* self, static_friend, static_enemy, random_friend, random_enemy, random_friend_group, random_enemy_group,
* all_friend, all_enemy, all,...
* @var int
*/
protected int $targetType;
/**
* Массив id союзников
* @var array
*/
protected array $friendTeam;
/** Массив id противников
* @var array
*/
protected array $enemyTeam;
public function __construct(
int $caster,
array $friendTeam,
array $enemyTeam,
int $targetType,
string $name,
string $icon = '',
) {
$this->caster = $caster;
$this->friendTeam = $friendTeam;
$this->enemyTeam = $enemyTeam;
$this->targetType = $targetType;
$this->icon = $icon;
$this->name = $name;
}
protected function getTarget(): array
{
$targets = [];
$allExceptCaster = array_merge($this->friendTeam, $this->enemyTeam);
switch ($this->targetType) {
case self::TAGRET_SELF:
$targets[] = $this->caster;
break;
case self::TARGET_RANDOM_ENEMY:
shuffle($this->enemyTeam);
$targets[] = end($this->enemyTeam);
break;
case self::TARGET_RANDOM_FRIEND:
shuffle($this->friendTeam);
$targets[] = end($this->friendTeam);
break;
case self::TARGET_RANDOM:
shuffle($allExceptCaster);
$targets[] = end($allExceptCaster);
break;
case self::TARGET_RANDOM_ENEMIES:
for ($i = 1; $i <= count($this->enemyTeam); $i++) {
if ($i > 1 && mt_rand(1,2) === 1) {
continue;
}
shuffle($this->enemyTeam);
$targets[] = array_shift($this->enemyTeam);
}
break;
case self::TARGET_RANDOM_FRIENDS:
for ($i = 1; $i <= count($this->friendTeam); $i++) {
if ($i > 1 && mt_rand(1,2) === 1) {
continue;
}
shuffle($this->friendTeam);
$targets[] = array_shift($this->friendTeam);
}
break;
case self::TARGET_RANDOMS:
for ($i = 1; $i <= count($allExceptCaster); $i++) {
if ($i > 1 && mt_rand(1,2) === 1) {
continue;
}
shuffle($allExceptCaster);
$targets[] = array_shift($allExceptCaster);
}
break;
case self::TARGET_ALL_ENEMIES:
$targets = $this->enemyTeam;
break;
case self::TARGET_ALL_FRIENDS:
$targets = $this->friendTeam;
break;
case self::TARGET_ALL:
$targets = $allExceptCaster;
$targets[] = $this->caster;
break;
}
return $targets;
}
/**
* Возвращает иконку приёма. В текущей реализации у каждого приёма должна быть иконка.
* @return string
*/
abstract public function getIcon(): string;
}

View File

@ -0,0 +1,78 @@
<?php
namespace Battle\Priem;
class Priem extends AbstractPriem
{
/*
id, name, image,
damage_type_value: static, +value,
damage_time: now, next_turn, x_turns,
target: self, static_friend, static_enemy, random_friend, random_enemy, random_friend_group, random_enemy_group, all_friend, all_enemy, all,
damage_type: physical (колка, рубка, резка, дробка), magical (water, air, earth, fire,)
physical: {
type: [static, +value,]
time: [now, next_turn, x_turns,]
target: [static_enemy,]
}
*/
protected int $power;
private array $targets;
/**
* @param int $caster
* @param array $friendTeam
* @param array $enemyTeam
* @param int $targetType
* @param int $power
* @param int $powerType static, +value,
* @param string $name
* @param int $activeTurns количество ходов которое будет применяться приём. 0 - выполнить в текущий ход.
* @param string $icon
*/
public function __construct(
int $caster,
array $friendTeam,
array $enemyTeam,
int $targetType,
int $power,
int $powerType,
string $name,
int $activeTurns = 1,
string $icon = '',
) {
parent::__construct($caster, $friendTeam, $enemyTeam, $targetType, $name, $icon);
$this->power = $power;
$this->targets = $this->getTarget();
}
public function getIcon(): string
{
return $this->icon;
}
public function getTargetType(): int
{
return $this->targetType;
}
public function getTarget(): array
{
return $this->targets;
}
public function getPower(): int
{
return $this->power;
}
}
//$pr = new Priem(45,[1,2,3],[4,5,6],5,44,'Kaboom!', 'kaboom.gif');
//$pr->

View File

@ -0,0 +1,36 @@
<?php
namespace Battle\Priem;
interface PriemInterface
{
public const DAMAGE = 1;
public const HEAL = 2;
public const TAGRET_SELF = 1; //Приём на себя
public const TARGET_CUSTOM = 2; //Приём на конкретного персонажа
public const TARGET_RANDOM_ENEMY = 3; //Приём на случайного врага
public const TARGET_RANDOM_FRIEND = 4; //Приём на случайного друга
public const TARGET_RANDOM = 5; //Приём на случайного персонажа
public const TARGET_RANDOM_ENEMIES = 6; //Приём на случайных врагов
public const TARGET_RANDOM_FRIENDS = 7; //Приём на случайных друзей
public const TARGET_RANDOMS = 8; //Приём на случайных персонажей
public const TARGET_ALL_ENEMIES = 9; //Приём на всех врагов
public const TARGET_ALL_FRIENDS = 10; //Приём на всех друзей
public const TARGET_ALL = 11; //Приём на всех персонажей
/**
* Возвращает тип цели к которым применяется приём.
* @return int
*/
public function getTargetType(): int;
/**
* Возвращает силу действия приёма. Параметр на который изменится та или иная характеристика. Урон для боевых,
* количество восстановленого здоровья для лечения, количество процентов для процентных значений.
* @return int
*/
public function getPower(): int;
}

View File

@ -0,0 +1,13 @@
<?php
namespace Battle\Priem;
class UsePriem
{
public function __construct(Priem $priem) {
$damage = $priem->getPower();
$targets = $priem->getTarget();
}
}

View File

@ -0,0 +1,580 @@
<?php
namespace Battle;
use Battle;
use Helper\Comparsion;
use Helper\Conversion;
class Razmen
{
private array $attackerStats;
private array $targetStats;
private int $uid1;
private int $uid2;
/**
* @param Battle $battle
* @param int $id
* @param array $at
*/
public function __construct(private readonly Battle $battle, private readonly int $id, private array $at)
{
$uid1 = $this->battle->atacks[$this->id]['uid1'];
$uid2 = $this->battle->atacks[$this->id]['uid2'];
$stats1 = $this->battle->stats[$this->battle->uids[$uid1]];
$stats2 = $this->battle->stats[$this->battle->uids[$uid2]];
if ($stats1['yhod'] > 0) {
$uid1 = $this->battle->yhod_user($uid2, $uid1, $stats1['yhod']);
} elseif ($stats2['yhod'] > 0) {
$uid2 = $this->battle->yhod_user($uid1, $uid2, $stats2['yhod']);
}
$this->uid1 = $uid1;
$this->uid2 = $uid2;
$this->attackerStats = $this->battle->stats[$this->battle->uids[$uid1]];
$this->targetStats = $this->battle->stats[$this->battle->uids[$uid2]];
# Переменные - Моё почтение!
# $this->stats[$this->uids[$this->yhod_user($this->atacks[$this->id]['uid2'], $this->atacks[$this->id]['uid1'], $this->stats[$this->uids[$this->atacks[$this->id]['uid1']]]['yhod'])]];
# $this->battle->stats[$this->battle->uids[$this->battle->yhod_user($this->battle->atacks[$this->id]['uid2'], $this->battle->atacks[$this->id]['uid1'], $this->battle->stats[$this->battle->uids[$this->battle->atacks[$this->id]['uid1']]]['yhod'])]];
}
private function updateBattleStats(): void
{
$this->battle->stats[$this->battle->uids[$this->uid1]] = $this->attackerStats;
$this->battle->stats[$this->battle->uids[$this->uid2]] = $this->targetStats;
}
/**
* Расчет парирования Цели (uid2) от Атакующего (uid1)
* @param int $counterstrikecheck
* @param bool $pat
* @param int $loopstart
* @return void
*/
public function parry(int $counterstrikecheck = 0, bool $pat = false, int $loopstart = 0): void
{
if ($pat) {
$tempAt = $this->at;
$this->at = $tempAt['p'];
}
if ($loopstart > 0) {
$loopstart--;
}
if (is_array($this->at[1]['atack'])) {
for ($j = $loopstart; $j < count($this->at[1]['atack']) && $j < 8; $j++) {
if (
!empty($this->targetStats['no_pr1']) ||
$this->at[1]['atack'][$j][2] != $counterstrikecheck ||
$this->mfs(__FUNCTION__, [1 => $this->targetStats['m7'], 2 => $this->attackerStats['m7'],]) != 1 ||
$this->battle->atacks[$this->id]['out2'] != 0
) {
continue;
}
if (!empty($this->attackerStats['nopryh']) || $this->attackerStats['nopryh_act'] > 0) {
continue;
}
// Парировал
$this->attackerStats['nopryh'] = (int)floor($this->attackerStats['nopryh']);
$this->at[1]['atack'][$j][1] = 6;
$this->attackerStats['nopryh']--;
$this->attackerStats['nopryh_act']++;
}
}
if (is_array($this->at[2]['atack'])) {
for ($j = $loopstart; $j < count($this->at[2]['atack']) && $j < 8; $j++) {
if (
!empty($this->attackerStats['no_pr1']) ||
$this->at[2]['atack'][$j][2] != $counterstrikecheck ||
$this->mfs(__FUNCTION__, [1 => $this->attackerStats['m7'], 2 => $this->targetStats['m7'],]) != 1 ||
$this->battle->atacks[$this->id]['out1'] != 0
) {
continue;
}
if (!empty($this->targetStats['nopryh']) || $this->targetStats['nopryh_act'] > 0) {
continue;
}
// Парировал
$this->targetStats['nopryh'] = (int)floor($this->targetStats['nopryh']);
$this->at[2]['atack'][$j][1] = 6;
$this->targetStats['nopryh']--;
$this->targetStats['nopryh_act']++;
}
}
if (isset($tempAt)) {
$tempAt['p'] = $this->at;
$this->at = $tempAt;
}
$this->updateBattleStats();
}
/**
* Расчет блока щитом Цели (uid2) от Атакующего (uid1)
* @param int $counterstrikecheck
* @param bool $pat
* @return void
*/
public function blockByShield(int $counterstrikecheck = 0, bool $pat = false): void
{
if ($pat) {
$tempAt = $this->at;
$this->at = $tempAt['p'];
}
//m8 блок щитом, m18 абсолютный блок щитом
if ($this->targetStats['shield1'] > 0) {
for ($j = 0; $j < count($this->at[1]['atack']) && $j < 8; $j++) {
if (
$this->at[1]['atack'][$j][2] != $counterstrikecheck ||
$this->battle->atacks[$this->id]['out2'] != 0 ||
$this->mfs(__FUNCTION__, $this->targetStats['m8'] / 2 + $this->targetStats['m18']) != 1
) {
continue;
}
$this->at[1]['atack'][$j][1] = 7;
}
}
if ($this->attackerStats['shield1'] > 0) {
for ($j = 0; $j < count($this->at[2]['atack']) && $j < 8; $j++) {
if (
$this->at[2]['atack'][$j][2] != $counterstrikecheck ||
$this->battle->atacks[$this->id]['out1'] != 0 ||
$this->mfs(__FUNCTION__, $this->attackerStats['m8'] / 2 + $this->attackerStats['m18']) != 1
) {
continue;
}
$this->at[2]['atack'][$j][1] = 7;
}
}
if (isset($tempAt)) {
$tempAt['p'] = $this->at;
$this->at = $tempAt;
}
$this->updateBattleStats();
}
/**
* Расчет крита Атакующего (uid1) по Цели (uid2)
* @param bool $pat
* @param int $loopstart
* @return void
*/
public function criticalDamage(bool $pat = false, int $loopstart = 0): void
{
if ($pat) {
$tempAt = $this->at;
$this->at = $tempAt['p'];
}
if ($loopstart > 0) {
$loopstart--;
}
$checkhand = false;
if (is_array($this->at[1]['atack'])) {
for ($j = $loopstart; $j < count($this->at[1]['atack']) && $j < 8; $j++) {
[$data, $checkhand] = $this->getDataArrayByHand($checkhand, $this->attackerStats);
if ($this->mfs(__FUNCTION__, ['mf' => $this->attackerStats['m1'] + $data['sv_m1'], 'amf' => $this->attackerStats['m14'], 'smf' => $this->targetStats['m2']]) != 1) {
continue;
}
$this->at[1]['atack'][$j][1] = match (true) {
$this->at[1]['atack'][$j][1] == 3 => 4, //в блок
!in_array($this->at[1]['atack'][$j][1], [2, 6, 7, 8]) => 5, //обычный крит
default => 1 // а ты что такое?
};
}
}
if (is_array($this->at[2]['atack'])) {
for ($j = $loopstart; $j < count($this->at[2]['atack']) && $j < 8; $j++) {
[$data, $checkhand] = $this->getDataArrayByHand($checkhand, $this->targetStats);
if ($this->mfs(__FUNCTION__, ['mf' => $this->targetStats['m1'] + $data['sv_m1'], 'amf' => $this->targetStats['m14'], 'smf' => $this->attackerStats['m2']]) != 1) {
continue;
}
$this->at[2]['atack'][$j][1] = match (true) {
$this->at[2]['atack'][$j][1] == 3 => 4, //в блок
!in_array($this->at[2]['atack'][$j][1], [2, 6, 7, 8]) => 5, //обычный крит
default => 1 // а ты что такое?
};
}
}
if (isset($tempAt)) {
$tempAt['p'] = $this->at;
$this->at = $tempAt;
}
$this->updateBattleStats();
}
/**
* Расчет уворота Цели (uid2) от Атакующего (uid1)
* @param int $counterstrikecheck
* @param bool $pat
* @param int $loopstart
* @return void
*/
public function evasion(int $counterstrikecheck = 0, bool $pat = false, int $loopstart = 0): void
{
if ($pat) {
$tempAt = $this->at;
$this->at = $tempAt['p'];
}
if ($loopstart > 0) {
$loopstart--;
}
$checkhand = false;
if (is_array($this->at[1]['atack'])) {
for ($j = $loopstart; $j < count($this->at[1]['atack']) && $j < 8; $j++) {
[$data, $checkhand] = $this->getDataArrayByHand($checkhand, $this->attackerStats);
if (
$this->at[1]['atack'][$j][2] != $counterstrikecheck ||
$this->battle->atacks[$this->id]['out2'] != 0 ||
$this->mfs(
__FUNCTION__,
[
'mf' => $this->targetStats['m4'],
'amf' => $this->targetStats['m15'],
'smf' => $this->attackerStats['m5'] + $data['sv_m5'],
'asmf' => $this->attackerStats['m21'],
]
) != 1
) {
continue;
}
$this->attackerStats['nopryh'] = (int)floor($this->attackerStats['nopryh']);
if (!isset($this->attackerStats['nopryh']) || $this->attackerStats['nopryh'] < 1) {
$this->at[1]['atack'][$j][1] = 2;
} else {
$this->attackerStats['nopryh']--;
$this->attackerStats['nopryh_act']++;
}
}
}
if (is_array($this->at[2]['atack'])) {
for ($j = $loopstart; $j < count($this->at[2]['atack']) && $j < 8; $j++) {
[$data, $checkhand] = $this->getDataArrayByHand($checkhand, $this->targetStats);
if (
$this->at[2]['atack'][$j][2] != $counterstrikecheck ||
$this->battle->atacks[$this->id]['out1'] != 0 ||
$this->mfs(
__FUNCTION__,
[
'mf' => $this->attackerStats['m4'],
'amf' => $this->attackerStats['m15'],
'smf' => $this->targetStats['m5'] + $data['sv_m5'],
'asmf' => $this->targetStats['m21'],
]
) != 1
) {
continue;
}
$this->targetStats['nopryh'] = (int)floor($this->targetStats['nopryh']);
if (!isset($this->targetStats['nopryh']) || $this->targetStats['nopryh'] < 1) {
$this->at[2]['atack'][$j][1] = 2;
} else {
$this->targetStats['nopryh']--;
$this->targetStats['nopryh_act']++;
}
}
}
if (isset($tempAt)) {
$tempAt['p'] = $this->at;
$this->at = $tempAt;
}
$this->updateBattleStats();
}
/**
* Расчет контрудара Цели (uid2) по Атакующему (uid1)
* @param int $counterstrikecheck
* @return void
*/
public function counterstrike(int $counterstrikecheck = 0): void //terrorists win!
{
if (is_array($this->at[1]['atack'])) {
for ($j = 0; $j < count($this->at[1]['atack']) && $j < 8; $j++) {
if (
$this->at[1]['atack'][$j][1] != 2 ||
$this->at[1]['atack'][$j][2] != $counterstrikecheck ||
$this->mfs(__FUNCTION__, ['a' => $this->targetStats['m6'], 'b' => $this->attackerStats['m6']]) != 1
) {
continue;
}
$this->at[1]['atack'][$j][1] = 8;
$rand = mt_rand(1, 5);
if ($this->battle->testRazmenblock1($this->id, $this->uid2, $this->uid1)) {
$this->at[2]['atack'][] = [$rand, 3, 0, 1];
} else {
$this->at[2]['atack'][] = [$rand, 1, 0, 1]; // 3 , 0 , 1
}
$this->counterstrikehit(count($this->at[2]['atack']));
}
}
if (is_array($this->at[2]['atack'])) {
for ($j = 0; $j < count($this->at[2]['atack']) && $j < 8; $j++) {
if (
$this->at[2]['atack'][$j][1] != 2 ||
$this->at[2]['atack'][$j][2] != $counterstrikecheck ||
$this->mfs(__FUNCTION__, ['a' => $this->attackerStats['m6'], 'b' => $this->targetStats['m6']]) != 1
) {
continue;
}
$this->at[2]['atack'][$j][1] = 8;
$rand = mt_rand(1, 5);
if ($this->battle->testRazmenblock1($this->id, $this->uid1, $this->uid2)) {
$this->at[1]['atack'][] = [$rand, 3, 0, 1];
} else {
$this->at[1]['atack'][] = [$rand, 1, 0, 1]; // 3 , 0 , 1
}
$this->counterstrikehit(count($this->at[1]['atack']));
}
}
$this->updateBattleStats();
}
/**
* Рассчёт урона.
* @param bool $pat
* @param int $loopstart
* @return void
*/
public function damage(bool $pat = false, int $loopstart = 0): void
{
$yhod = [1 => 0, 0];
if ($this->battle->stats[$this->battle->uids[$this->uid1]]['yhod'] > 0) {
$yhod = [1 => 1, 0];
} elseif ($this->battle->stats[$this->battle->uids[$this->uid2]]['yhod'] > 0) {
$yhod = [1 => 0, 1];
}
if ($pat) {
$tempAt = $this->at;
$this->at = $tempAt['p'];
}
if ($loopstart > 0) {
$loopstart--;
}
$checkhand = false;
if (is_array($this->at[1]['atack'])) {
for ($j = $loopstart; $j < count($this->at[1]['atack']) && $j < 8; $j++) {
[$data, $checkhand, $wp, $witm] = $this->getDataArrayByHand($checkhand, $this->attackerStats);
$this->at[1]['atack'][$j]['wt'] = $witm['type'];
$this->at[1]['atack'][$j]['yhod'] = $yhod[1];
if (
!isset($this->at[1]['atack'][$j]['yron']) &&
in_array($this->at[1]['atack'][$j][1], [1, 4, 5])
) {
$type = 'yron';
} else {
$type = 'block';
}
$this->at[1]['atack'][$j][$type] = $this->battle->yronGetrazmen($this->uid2, $this->uid1, $witm);
if ($this->at[1]['atack'][$j][1] == 4) {
$this->at[1]['atack'][$j][$type]['y_old'] = $this->at[1]['atack'][$j][$type]['y'];
$this->at[1]['atack'][$j][$type]['y'] = (int)round($this->at[1]['atack'][$j][$type]['k'] / 2);
} elseif ($this->at[1]['atack'][$j][1] == 5) {
$this->at[1]['atack'][$j][$type]['y_old'] = $this->at[1]['atack'][$j][$type]['y'];
$this->at[1]['atack'][$j][$type]['y'] = $this->at[1]['atack'][$j][$type]['k'];
}
$this->at[1]['atack'][$j][$type]['2h'] = $data['2h'];
$this->at[1]['atack'][$j][$type]['w'] = $wp;
if ($this->at[1]['atack'][$j][$type]['y'] > 0) {
$this->at[1]['atack'][$j][$type]['r'] = '-' . $this->at[1]['atack'][$j][$type]['y'];
} else {
$this->at[1]['atack'][$j][$type]['r'] = '--';
}
}
}
if (is_array($this->at[2]['atack'])) {
for ($j = $loopstart; $j < count($this->at[2]['atack']) && $j < 8; $j++) {
[$data, $checkhand, $wp, $witm] = $this->getDataArrayByHand($checkhand, $this->targetStats);
$this->at[2]['atack'][$j]['wt'] = $witm['type'];
$this->at[2]['atack'][$j]['yhod'] = $yhod[1];
if (
!isset($this->at[2]['atack'][$j]['yron']) &&
in_array($this->at[2]['atack'][$j][1], [1, 4, 5])
) {
$type = 'yron';
} else {
$type = 'block';
}
$this->at[2]['atack'][$j][$type] = $this->battle->yronGetrazmen($this->uid1, $this->uid2, $witm);
if ($this->at[2]['atack'][$j][1] == 4) {
$this->at[2]['atack'][$j][$type]['y_old'] = $this->at[2]['atack'][$j][$type]['y'];
$this->at[2]['atack'][$j][$type]['y'] = (int)round($this->at[2]['atack'][$j][$type]['k'] / 2);
} elseif ($this->at[2]['atack'][$j][1] == 5) {
$this->at[2]['atack'][$j][$type]['y_old'] = $this->at[2]['atack'][$j][$type]['y'];
$this->at[2]['atack'][$j][$type]['y'] = $this->at[2]['atack'][$j][$type]['k'];
}
$this->at[2]['atack'][$j][$type]['2h'] = $data['2h'];
$this->at[2]['atack'][$j][$type]['w'] = $wp;
if ($this->at[2]['atack'][$j][$type]['y'] > 0) {
$this->at[2]['atack'][$j][$type]['r'] = '-' . $this->at[2]['atack'][$j][$type]['y'];
} else {
$this->at[2]['atack'][$j][$type]['r'] = '--';
}
}
}
if (isset($tempAt)) {
$tempAt['p'] = $this->at;
$this->at = $tempAt;
}
$this->updateBattleStats();
}
/**
* Возвращает массив:
*
* 0 => data предмета в зависимости от руки в которой тот находится,
*
* 1 => флажок проверки руки,
*
* 2 => число слота руки(?!),
*
* 3 => массив параметров предмета для Battle::class->yronGetrazmen()
* @param bool $check
* @param array $stats
* @return array{array,bool,int,array}
*/
private function getDataArrayByHand(bool $check, array $stats): array
{
if (!$check && isset($stats['wp3id'])) { //Левая рука
$wp = 3;
$check = true;
} else { //Правая рука
if (isset($stats['wp14id']) && $stats['items'][$stats['wp14id']]['type'] != 13) {
$wp = 14;
} else {
$wp = 3;
}
$check = false;
}
$witm = $stats['items'][$stats["wp{$wp}id"]];
return [Conversion::dataStringToArray($witm['data']), $check, $wp, $witm];
}
private function mfs(int|string $type, array|int $mf): int
{
if (is_array($mf)) {
$mf = array_map(fn($a) => max($a, 0), $mf);
}
$rval = 0;
if ($type == 'criticalDamage') {
//Крит
if ($mf['mf'] > $mf['smf']) {
$rval = 100 - floor(((($mf['smf']) / ($mf['mf'] + 1)) * 100));
}
$rval = Comparsion::minimax($rval, 0, 75);
if ($mf['amf'] > 0) {
$mf['amf'] = min(100, $mf['amf']);
if (($mf['amf'] * 100) >= mt_rand(1, 10000)) {
$rval = 100;
}
}
} elseif ($type == 'evasion') {
if ($mf['mf'] > $mf['smf']) {
$rval = 100 - floor(((($mf['smf']) / ($mf['mf'] + 1)) * 100)); //2.5
}
$rval = Comparsion::minimax($rval, 0, 75);
if ($mf['asmf'] > 0) {
$mf['asmf'] = min(100, $mf['asmf']);
if ($mf['asmf'] >= mt_rand(1, 100)) {
$rval = 0;
}
}
if ($mf['amf'] >= 0) {
$mf['amf'] = min(100, $mf['amf']);
if ($mf['amf'] >= mt_rand(1, 100)) {
$rval = 100;
}
}
} elseif ($type == 'parry') {
$mf[1] = max($mf[1], 1);
$mf[2] = max($mf[2], 1);
$rval = $mf[1] - $mf[2] / 2;
$rval = Comparsion::minimax($rval, 1, 75);
} elseif ($type == 4) {
$mf = round($mf * 0.6);
$mf = Comparsion::minimax($mf, 0, 100);
$rval = min($mf, 100); //пробой брони
} elseif ($type == 'blockByShield') {
$mf = max($mf, 0);
$rval = min($mf, 85); //блок щитом
} elseif ($type == 'counterstrike') {
//Контрудар
if ($mf['a'] > 0) {
if ($mf['b'] > 0) {
$rval = round($mf['a'] - ($mf['b'] / 2));
} else {
$rval = $mf['a'];
}
}
$rval = Comparsion::minimax($rval, 0, 75);
}
return Helper::getChanse($rval) ? 1 : 0;
}
/**
* Повторный просчёт всего для успешного контрудара.
* @param int $loopstart
* @return void
*/
private function counterstrikehit(int $loopstart): void
{
$this->evasion(1, true, $loopstart);
$this->parry(1, true, $loopstart);
$this->blockByShield(1, true);
$this->criticalDamage(true, $loopstart);
$this->damage(true, $loopstart);
}
public function getAt(): array
{
return $this->at;
}
}

View File

@ -512,9 +512,6 @@ ORDER BY `1price`ASC , inGroupCount DESC'
if ($pl['dn_delete'] > 0) { if ($pl['dn_delete'] > 0) {
$is2 .= '<div style="color:brown;">Предмет будет удален при выходе из подземелья</div>'; $is2 .= '<div style="color:brown;">Предмет будет удален при выходе из подземелья</div>';
} }
if ($this->pokol > $pl['geni']) {
$is2 .= '<div style="color:brown">Предмет устарел</div>';
}
if (isset($po['zazuby']) && $po['zazuby'] > 0) { if (isset($po['zazuby']) && $po['zazuby'] > 0) {
$is2 .= '<div style="color:brown;">Предмет куплен за зубы</div>'; $is2 .= '<div style="color:brown;">Предмет куплен за зубы</div>';
} }

View File

@ -75,13 +75,11 @@ class Config
$c['nosanich'] = true; //Странички Саныча не выпадают - true , выпадают - false $c['nosanich'] = true; //Странички Саныча не выпадают - true , выпадают - false
$c['zuby'] = false; //зубы $c['zuby'] = false; //зубы
$c['limitedexp'] = false; //лимит опыта $c['limitedexp'] = false; //лимит опыта
$c['infinity5level'] = false; //вечные 5 уровни
$c['expstop'] = 2999999; //9; //Опыт на котором останавливаемся 11 149999999 $c['expstop'] = 2999999; //9; //Опыт на котором останавливаемся 11 149999999
$c['expstopu'] = 2999999; //Опыт на котором останавливаемся $c['expstopu'] = 2999999; //Опыт на котором останавливаемся
$c['noobgade'] = false; //нуб квест (пещера) $c['noobgade'] = false; //нуб квест (пещера)
$c['level_ransfer'] = 8; //С какого уровня разрешены передачи $c['level_ransfer'] = 8; //С какого уровня разрешены передачи
$c['nolevel'] = false; //лимитирование уровней
$c['noitembuy'] = false; //Не требует ресурсы для покупки $c['noitembuy'] = false; //Не требует ресурсы для покупки
$c['effz'] = 0; //Скольким секундам равен заряд $c['effz'] = 0; //Скольким секундам равен заряд
$c['money_haot'] = true; //кр за хаоты $c['money_haot'] = true; //кр за хаоты

View File

@ -0,0 +1,13 @@
<?php
namespace Core;
class Debug
{
public static function x(): void
{
ini_set('xdebug.var_display_max_depth', 10);
ini_set('xdebug.var_display_max_children', 256);
ini_set('xdebug.var_display_max_data', 1024);
}
}

View File

@ -383,10 +383,12 @@ class FightRequest
/** /**
* Звуковой пинг в чат? * Звуковой пинг в чат?
* @param string $to
* @param int $room
* @return void * @return void
* @todo убрать колхоз с условиями когда станет ясно как оно работает. * @todo убрать колхоз с условиями когда станет ясно как оно работает.
*/ */
private function sendSysChatSound(string $to = '', int $room = 0) private function sendSysChatSound(string $to = '', int $room = 0): void
{ {
$cmsg = new ChatMessage(); $cmsg = new ChatMessage();
if (empty($to)) { if (empty($to)) {
@ -399,9 +401,9 @@ class FightRequest
} else { } else {
$cmsg->setRoom($room); $cmsg->setRoom($room);
} }
$cmsg->setCity($this->u->info['city']);
$cmsg->setType(11); $cmsg->setType(11);
$cmsg->setSound(117); $cmsg->setSound(117);
$cmsg->setText('Ваш бой начался!');
(new Chat())->sendMsg($cmsg); (new Chat())->sendMsg($cmsg);
} }
@ -621,6 +623,7 @@ class FightRequest
$nz['time_start'] = 600; $nz['time_start'] = 600;
} }
if (isset($_POST['mut_hidden'])) { if (isset($_POST['mut_hidden'])) {
$nz['invise'] = 1; $nz['invise'] = 1;
} }
@ -817,19 +820,17 @@ class FightRequest
return isset($symbols[1]) ? $symbols[0] . '.' . $symbols[1] : $symbols[0] . '.0'; return isset($symbols[1]) ? $symbols[0] . '.' . $symbols[1] : $symbols[0] . '.0';
} }
public function getEndedBattlesList(string $slogin, int $dt) public function getEndedBattlesList(string $slogin, int $dt): void
{ {
$code = PassGen::intCode(); $code = PassGen::intCode();
$btl = ''; $btl = '';
$see = '';
$usr = Db::getRow('select id, login, level, city from users where login = ? limit 1', [$slogin]);
if (isset($usr['id'])) { $uid = Db::getValue('select id from users where login = ? limit 1', [$slogin]);
$tms = $dt;
$tmf = $dt + 86400; if ($uid) {
$sp = Db::getRows( $sp = Db::getRows(
'select * from battle_last where time >= ? and time < ? and uid = ? order by id desc ', 'select * from battle_last where time >= ? and time < ? and uid = ? order by id desc ',
[$tms, $tmf, $usr['id']] [$dt, $dt + 86400, $uid]
); );
$jk = 0; $jk = 0;
$btl_lst = []; $btl_lst = [];
@ -840,11 +841,13 @@ class FightRequest
$tms = []; $tms = [];
$ts = []; $ts = [];
$spi = Db::getRows('select * from battle_last where battle_id = ?', [$pl['battle_id']]); $spi = Db::getRows('select * from battle_last where battle_id = ?', [$pl['battle_id']]);
foreach ($spi as $pli) { foreach ($spi as $pli) {
if (!isset($tms[$pli['team']])) { if (!isset($tms[$pli['team']])) {
$ts[] = $pli['team']; $ts[] = $pli['team'];
} }
$tms[$pli['team']][count($tms[$pli['team']])] = $pli;
$tms[$pli['team']][] = $pli;
} }
$k = 0; $k = 0;
while ($k < count($ts)) { while ($k < count($ts)) {
@ -859,7 +862,7 @@ class FightRequest
} }
$tm2 .= '<b>' . $tms[$g][$h]['login'] . '</b> [' . $tms[$g][$h]['lvl'] . '] $tm2 .= '<b>' . $tms[$g][$h]['login'] . '</b> [' . $tms[$g][$h]['lvl'] . ']
<a href="info/' . $tms[$g][$h]['uid'] . '" target="_blank"> <a href="info/' . $tms[$g][$h]['uid'] . '" target="_blank">
<img src="' . Config::img() . '/i/inf_capitalcity.gif" alt=""></a>, '; <img src="' . Config::img() . '/i/inf.gif" alt=""></a>, ';
} }
$h++; $h++;
} }
@ -875,20 +878,24 @@ class FightRequest
$k++; $k++;
} }
} }
if (!isset($btl_lst[$b['id']])) {
$btl_lst[$b['id']] = true; if (isset($btl_lst[$b['id']])) {
if ($tm == '') { continue;
$tm = 'Данные поединка потеряны';
}
$jk++;
$btl .= $jk . '. <span class=date>' . date(
'd.m.y H:i', $pl['time']
) . '</span> ' . $tm . ' <A HREF="logs.php?log=' . $pl['battle_id'] . '&rnd=' . $code . '" target=_blank>»»</A><br>';
} }
$btl_lst[$b['id']] = true;
if ($tm == '') {
$tm = 'Данные поединка потеряны';
}
$jk++;
$btl .= $jk . '. <span class=date>' . date('d.m.y H:i', $pl['time']) . '</span> ' .
$tm . ' <a href="/logs.php?log=' . $pl['battle_id'] . '&rnd=' . $code . '" target=_blank>»»</a><br>';
} }
} }
$see .= empty($btl) ? '<div style="font-weight: bold;">В этот день не было боев, или же, летописец опять потерял свитки...</div><hr><br>' : $btl;
echo $see; echo empty($btl) ?
'<div style="font-weight: bold;">В этот день не было боев, или же, летописец опять потерял свитки...</div><hr><br>' :
$btl;
} }
public function getCurrentBattlesList(): void public function getCurrentBattlesList(): void

View File

@ -2,7 +2,6 @@
namespace Magic\Elemental; namespace Magic\Elemental;
use Battle;
use DTO\BattleSpell; use DTO\BattleSpell;
use Helper\Math; use Helper\Math;

View File

@ -14,7 +14,7 @@ class ActionModel
$this->uid = $uid; $this->uid = $uid;
} }
public static function new(array $user, string $vals, string $vars, int $time = 0) public static function new(array $user, string $vals, string $vars, int $time = 0): void
{ {
if (!$time) { if (!$time) {
$time = time(); $time = time();
@ -60,7 +60,7 @@ class ActionModel
); );
} }
public function deleteByVals(string $vals) public function deleteByVals(string $vals): void
{ {
Db::sql('delete from actions where uid = ? and vals = ?', [$this->uid, $vals]); Db::sql('delete from actions where uid = ? and vals = ?', [$this->uid, $vals]);
} }
@ -83,4 +83,25 @@ class ActionModel
return !empty($arr) ? $arr : []; return !empty($arr) ? $arr : [];
}*/ }*/
public function getDailyQuest(): array|false
{
return Db::getRow("select * from actions where uid = ? and vars = 'day_quest' limit 1", [$this->uid]);
}
public function getFinishedDailyQuestTasks(int $timeout): array
{
$arr = [];
$counter = Db::getRows(
"select count(*) as c, vars
from actions
where vars in ('end_trup', 'end_xaot', 'psh0', 'trup_sun', 'izlom', 'win') and time > ? and uid = ?
group by vars",
[$timeout, $this->uid]
);
foreach ($counter as $c) {
$arr[$c['vars']] = $c['c'];
}
return $arr;
}
} }

View File

@ -0,0 +1,48 @@
<?php
namespace Model;
use Core\Db;
use stdClass;
readonly class BattleModel
{
public stdClass $battle;
public array $battleArray;
private array $all;
public function __construct(int $id) {
$this->all = Db::getRows('select * from battle');
if (empty($id)) {
$this->battle = new stdClass();
$this->battleArray = [];
} else {
foreach ($this->all as $b) {
if ($b['id'] != $id) {
continue;
}
$this->battle = (object)$b;
$this->battleArray = get_object_vars($this->battle);
return;
}
}
}
public static function countClanWars(int $clanid): array
{
$today = (new \DateTimeImmutable('now 00:00:00'))->getTimestamp();
$sql = "select count(id) from battle where
type = 250 and
time_over > ? and
(team_win = ? and clan1 = ?) or (team_win = ? and clan2 = ?)";
$count1 = Db::getValue($sql, [$today, 1, $clanid, 2, $clanid]);
$count2 = Db::getValue($sql, [$today, 2, $clanid, 1, $clanid]);
return [
$count1 ?? 0,
$count2 ?? 0,
];
}
}

View File

@ -84,7 +84,7 @@ class Priems
$mpNow = $this->zeromax($btl->stats[$btl->uids[$uid]]['mpNow'], $btl->stats[$btl->uids[$uid]]['mpAll']); $mpNow = $this->zeromax($btl->stats[$btl->uids[$uid]]['mpNow'], $btl->stats[$btl->uids[$uid]]['mpAll']);
if ($mpNow > 0) { if ($mpNow > 0) {
Db::sql( Db::sql(
'update stats set mpNow = ? where id = ?', 'update stats set mpnow = ? where id = ?',
[$btl->stats[$btl->uids[$uid]]['mpNow'], $uid] [$btl->stats[$btl->uids[$uid]]['mpNow'], $uid]
); );
} }
@ -113,7 +113,7 @@ class Priems
$u = $this->u; // Для присоедиянемых файлов. $u = $this->u; // Для присоедиянемых файлов.
$return_main = true; $return_main = true;
$ue = Db::getRow( $ue = Db::getRow(
'select * from users left join stats on (users.id = stats.id) where users.id = ? and battle = ? and hpNow > 0', 'select * from users left join stats on (users.id = stats.id) where users.id = ? and battle = ? and hpnow > 0',
[$eff['uid'], $btl->info['id']] [$eff['uid'], $btl->info['id']]
); );
@ -461,11 +461,11 @@ class Priems
/** /**
* Новая функция магического заклинания с приёма. * Новая функция магического заклинания с приёма.
* Работает с числовыми приёмами в папке [priem]. * Работает с числовыми приёмами в папке [priem].
* @param int $attackerId кто использует приём * @param int $attackerId кто использует приём
* @param int $defenderId на кого использует приём * @param int $defenderId на кого использует приём
* @param float $damage базовый урон приёма * @param float $damage базовый урон приёма
* @param string $damageType тип урона (стихия?) приходит строкой, и конвертируется функцией. * @param string $damageType тип урона (стихия?) приходит строкой, и конвертируется функцией.
* @param bool $hasCritical флаг, что приём МОЖЕТ критовать * @param bool $hasCritical флаг, что приём МОЖЕТ критовать
* @return array [0|damage] int урон, [1|crit] bool был ли крит, [2|miss] bool был ли промах, [3|miss_type] int тип промаха (всегда = 2). * @return array [0|damage] int урон, [1|crit] bool был ли крит, [2|miss] bool был ли промах, [3|miss_type] int тип промаха (всегда = 2).
* @author Insallah * @author Insallah
*/ */
@ -781,8 +781,7 @@ class Priems
$krituet = true, $krituet = true,
$heal = 0, $heal = 0,
$namenew = null $namenew = null
) ) {
{
$trawm_off = false; $trawm_off = false;
global $btl; global $btl;
if ($namenew != null) { if ($namenew != null) {
@ -961,7 +960,8 @@ class Priems
); );
//заносим в лог боя //заносим в лог боя
$vLog = 'time1=' . time() . '||s1=' . $btl->users[$btl->uids[$usu]]['sex'] . '||t1=' . $btl->users[$btl->uids[$usu]]['team'] . '||login1=' . $btl->users[$btl->uids[$usu]]['login'] . '||s2=' . $btl->users[$btl->uids[$uen]]['sex'] . '||t2=' . $btl->users[$btl->uids[$uen]]['team'] . '||login2=' . $btl->users[$btl->uids[$uen]]['login'] . ''; $vLog = 'time1=' . time(
) . '||s1=' . $btl->users[$btl->uids[$usu]]['sex'] . '||t1=' . $btl->users[$btl->uids[$usu]]['team'] . '||login1=' . $btl->users[$btl->uids[$usu]]['login'] . '||s2=' . $btl->users[$btl->uids[$uen]]['sex'] . '||t2=' . $btl->users[$btl->uids[$uen]]['team'] . '||login2=' . $btl->users[$btl->uids[$uen]]['login'] . '';
$mas1 = [ $mas1 = [
'time' => time(), 'time' => time(),
'battle' => $btl->info['id'], 'battle' => $btl->info['id'],
@ -1392,18 +1392,18 @@ class Priems
} }
} }
if (isset($btl->stats[$btl->uids[$this->u->info['id']]]['nousepriem']) && $btl->stats[$btl->uids[$this->u->info['id']]]['nousepriem'] > 0 && $pl['nosh'] == 0) { if (
if ($btl->stats[$btl->uids[$this->u->info['id']]]['noshock_voda'] > 0 && substr( isset($btl->stats[$btl->uids[$this->u->info['id']]]['nousepriem']) &&
$pl['img'], 0, $btl->stats[$btl->uids[$this->u->info['id']]]['nousepriem'] > 0 &&
10 $pl['nosh'] == 0 &&
) == 'wis_water_') { ($btl->stats[$btl->uids[$this->u->info['id']]]['noshock_voda'] <= 0 || !str_starts_with($pl['img'], 'wis_water_'))
//вода ) {
} else { $notr++;
$notr++;
}
} }
if ($pl['id'] == $btl->stats[$btl->uids[$this->u->info['id']]]['notuse_last_pr']) {
if (isset($btl->stats[$btl->uids[$this->u->info['id']]]['notuse_last_pr']) &&
$pl['id'] == $btl->stats[$btl->uids[$this->u->info['id']]]['notuse_last_pr']) {
$notr++; $notr++;
} }
@ -1423,7 +1423,7 @@ class Priems
if ($pl['xuse'] > 0) { if ($pl['xuse'] > 0) {
$xu = $this->u->testAction( $xu = $this->u->testAction(
'`vars` = "use_priem_' . $btl->info['id'] . '_' . $this->u->info['id'] . '" AND `vals` = "' . $pl['id'] . '" LIMIT ' . $pl['xuse'] . '', '`vars` = "use_priem_' . $btl->info['id'] . '_' . $this->u->info['id'] . '" AND `vals` = "' . $pl['id'] . '" LIMIT ' . $pl['xuse'],
2 2
); );
if ($xu[0] >= $pl['xuse']) { if ($xu[0] >= $pl['xuse']) {
@ -1574,13 +1574,13 @@ class Priems
} }
/** /**
* @param int $uid на кого кастуем * @param int $uid на кого кастуем
* @param int $pr id приема * @param int $pr id приема
* @param int|string $data дата, если -1, то добавляем дату3 * @param int|string $data дата, если -1, то добавляем дату3
* @param int $d2 * @param int $d2
* @param $tm * @param $tm
* @param int $h ход * @param int $h ход
* @param int $uu id юзера который использовал * @param int $uu id юзера который использовал
* @param $max * @param $max
* @param $bj * @param $bj
* @param $tp * @param $tp
@ -1609,8 +1609,7 @@ class Priems
$noupdatebtl = 0, $noupdatebtl = 0,
$noplus = 0, $noplus = 0,
$pname = null $pname = null
) ) {
{
global $btl; global $btl;
//$pl = mysql_fetch_assoc(mysql_query('SELECT * FROM `priems` WHERE `id` = ' . (int)$pr)); //$pl = mysql_fetch_assoc(mysql_query('SELECT * FROM `priems` WHERE `id` = ' . (int)$pr));
$pl = Db::getRow('select * from priems where id = ?', [$pr]); $pl = Db::getRow('select * from priems where id = ?', [$pr]);
@ -1664,7 +1663,7 @@ class Priems
unset($num); unset($num);
} }
if (!isset($num['id'])) { if (!isset($num['id'])) {
$q = 'insert into eff_users (tr_life_user, bj, user_use, hod, v2, img2, id_eff, uid, name, data, overType, timeUse, v1) values (?,?,?,?,?,?,?,?,?,?,?,?,?)'; $q = 'insert into eff_users (tr_life_user, bj, user_use, hod, v2, img2, id_eff, uid, name, data, overtype, timeuse, v1) values (?,?,?,?,?,?,?,?,?,?,?,?,?)';
$image = !empty($pl['img']) ? $pl['img'] : $pl['id']; $image = !empty($pl['img']) ? $pl['img'] : $pl['id'];
$name = !empty($pname) ? $pname : $pl['name']; $name = !empty($pname) ? $pname : $pl['name'];
$image .= '.gif'; $image .= '.gif';
@ -1728,8 +1727,8 @@ class Priems
/** Получает строку data c шаблонной записью типа add_m11=2*{lvl1} и конвертирует в реальную строку. /** Получает строку data c шаблонной записью типа add_m11=2*{lvl1} и конвертирует в реальную строку.
* <br>Шаблон: <br>lvl1 = $uid[level] <br>ts5 = $uid[s5] <br>mpAll = $uid[mpAll] * <br>Шаблон: <br>lvl1 = $uid[level] <br>ts5 = $uid[s5] <br>mpAll = $uid[mpAll]
* @param string $pl строка в формате data * @param string $pl строка в формате data
* @param int $uid пользователь, параметры которого используются для подставки в шаблон. * @param int $uid пользователь, параметры которого используются для подставки в шаблон.
* @return string строка в формате data с развёрнутыми шаблонами. * @return string строка в формате data с развёрнутыми шаблонами.
*/ */
public function redate($pl, $uid) public function redate($pl, $uid)
@ -1740,13 +1739,13 @@ class Priems
$e = explode('|', $pl); $e = explode('|', $pl);
while ($i < count($e)) { while ($i < count($e)) {
$f = explode('=', $e[$i]); $f = explode('=', $e[$i]);
// $f[1] = $this->getdr( // $f[1] = $this->getdr(
// $f[1], [0 => 'lvl1', 1 => 'ts5', 2 => 'mpAll'], [ // $f[1], [0 => 'lvl1', 1 => 'ts5', 2 => 'mpAll'], [
// 0 => $btl->users[$btl->uids[$uid]]['level'], // 0 => $btl->users[$btl->uids[$uid]]['level'],
// 1 => $btl->stats[$btl->uids[$uid]]['s5'], // 1 => $btl->stats[$btl->uids[$uid]]['s5'],
// 2 => $btl->stats[$btl->uids[$uid]]['mpAll'], // 2 => $btl->stats[$btl->uids[$uid]]['mpAll'],
// ] // ]
// ); // );
$f[1] = $this->getDynamicInfo($f[1]); $f[1] = $this->getDynamicInfo($f[1]);
if ($f[0] != '' && $f[1] != '') { if ($f[0] != '' && $f[1] != '') {
$e[$i] = implode('=', $f); $e[$i] = implode('=', $f);
@ -1977,7 +1976,8 @@ class Priems
} else { } else {
//бьем противника с пропуском хода //бьем противника с пропуском хода
mysql_query( mysql_query(
'INSERT INTO `battle_act` (`battle`,`uid1`,`uid2`,`time`,`out1`,`type`,`tpo1`) VALUES ("' . $btl->info['id'] . '","' . $this->u->info['id'] . '","' . $this->u->info['enemy'] . '","' . time() . '","1","1","2")' 'INSERT INTO `battle_act` (`battle`,`uid1`,`uid2`,`time`,`out1`,`type`,`tpo1`) VALUES ("' . $btl->info['id'] . '","' . $this->u->info['id'] . '","' . $this->u->info['enemy'] . '","' . time(
) . '","1","1","2")'
); );
} }
} }
@ -2081,9 +2081,11 @@ class Priems
); );
if ($upd) { if ($upd) {
TrainingManager::getInstance() TrainingManager::getInstance()
->addPoint('my_user_fourth_quest', function (TrainingManager $manager) { ->addPoint(
$manager->store(); 'my_user_fourth_quest', function (TrainingManager $manager) {
}); $manager->store();
}
);
$this->u->info['priems'] = $p; $this->u->info['priems'] = $p;
} }
} else { } else {
@ -2097,12 +2099,16 @@ class Priems
public function getTechniquesInfo(?int $id = null): array public function getTechniquesInfo(?int $id = null): array
{ {
if (isset($id)) { if (isset($id)) {
return Db::getRow('SELECT * FROM techniques_categories LEFT JOIN priems ON techniques_categories.technique_id = priems.id return Db::getRow(
WHERE priems.level <= ? AND priems.activ > 0 AND priems.id = ? ORDER BY priems.img,priems.level', [User::start()->info['level'], $id]); 'select * from techniques_categories left join priems on techniques_categories.technique_id = priems.id
where priems.level <= ? and priems.activ > 0 and priems.id = ? order by priems.img,priems.level', [User::start()->info['level'], $id]
);
} }
return Db::getRows('SELECT * FROM techniques_categories LEFT JOIN priems ON techniques_categories.technique_id = priems.id return Db::getRows(
WHERE priems.level <= ? AND priems.activ > 0 ORDER BY priems.img,priems.level', [User::start()->info['level']]); 'select * from techniques_categories left join priems on techniques_categories.technique_id = priems.id
where priems.level <= ? and priems.activ > 0 order by priems.img,priems.level', [User::start()->info['level']]
);
} }
public function seeMy($t) public function seeMy($t)
@ -2294,7 +2300,9 @@ class Priems
echo echo
<<< HTML <<< HTML
<a href="javascript:void(0)" onclick="location.href='main.php?skills=1&rz=4&use_priem=$priem[id]';"> <a href="javascript:void(0)" onclick="location.href='main.php?skills=1&rz=4&use_priem=$priem[id]';">
<img class="pwq$priem[category_id] pwqall" onMouseOver="top.popup(this, '(#$priem[id]) <b>$priem[name]</b><Br>{$this->priemInfo($priem, 1)[0]}');" onMouseOut="top.hic();" onMouseDown="top.hic();" style="display:none;margin-top:2px; $cl margin-left:1px;" src="//img.new-combats.tech/i/eff/$priem[img].gif" width="40" height="25" /> <img class="pwq$priem[category_id] pwqall" onMouseOver="top.popup(this, '(#$priem[id]) <b>$priem[name]</b><Br>{$this->priemInfo(
$priem, 1
)[0]}');" onMouseOut="top.hic();" onMouseDown="top.hic();" style="display:none;margin-top:2px; $cl margin-left:1px;" src="//img.new-combats.tech/i/eff/$priem[img].gif" width="40" height="25" />
</a> </a>
HTML; HTML;
} }
@ -2358,7 +2366,7 @@ class Priems
$btl->stats[$btl->uids[$u1]]['hpNow'] = $pvr['hpNow']; $btl->stats[$btl->uids[$u1]]['hpNow'] = $pvr['hpNow'];
Db::sql('update stats set hpNow = ? where id = ?', [$btl->stats[$btl->uids[$u1]]['hpNow'], $u1]); Db::sql('update stats set hpnow = ? where id = ?', [$btl->stats[$btl->uids[$u1]]['hpNow'], $u1]);
$color = $this->logColor[self::FIRE]; $color = $this->logColor[self::FIRE];
$prv['text'] = '{u2} утратил здоровье от &quot;{pr}&quot; '; $prv['text'] = '{u2} утратил здоровье от &quot;{pr}&quot; ';
@ -2444,7 +2452,7 @@ class Priems
$btl->stats[$btl->uids[$this->ue['id']]]['hpNow'] = $this->ue['hpNow']; $btl->stats[$btl->uids[$this->ue['id']]]['hpNow'] = $this->ue['hpNow'];
Db::sql('update stats set hpNow = ? where id = ?', [$this->ue['hpNow'], $this->ue['id']]); Db::sql('update stats set hpnow = ? where id = ?', [$this->ue['hpNow'], $this->ue['id']]);
if ($isMiss) { if ($isMiss) {
$color = $this->logColor['miss']; $color = $this->logColor['miss'];
@ -2623,7 +2631,7 @@ class Priems
$uu = $pl['id'] === 260 ? '' : $this->u->info['id']; $uu = $pl['id'] === 260 ? '' : $this->u->info['id'];
Db::sql( Db::sql(
'insert into eff_users (hod, v1, v2, img2, id_eff, uid, name, data, overType, timeUse, user_use) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', 'insert into eff_users (hod, v1, v2, img2, id_eff, uid, name, data, overtype, timeuse, user_use) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
[$hd1, 'priem', $pl['id'], $pl['img'] . '.gif', 22, $uid, $pl['name'], $data, 0, $tm, $uu] [$hd1, 'priem', $pl['id'], $pl['img'] . '.gif', 22, $uid, $pl['name'], $data, 0, $tm, $uu]
); );
@ -2724,7 +2732,7 @@ class Priems
* Конечный damage после множителей делится на 5 и пишется в БД (atgm=). * Конечный damage после множителей делится на 5 и пишется в БД (atgm=).
* Файлы: 33, 56, 57, 58, 59, 60. * Файлы: 33, 56, 57, 58, 59, 60.
* @param $id * @param $id
* @param array $pl массив значений из БД priems. * @param array $pl массив значений из БД priems.
* @param Battle $btl * @param Battle $btl
* @return void * @return void
*/ */
@ -2756,7 +2764,7 @@ class Priems
* Если есть одинаковые статы из них выбирается случайный. * Если есть одинаковые статы из них выбирается случайный.
* Файл:267, приём 268. Понимай как хочешь. * Файл:267, приём 268. Понимай как хочешь.
* @param $id * @param $id
* @param array $pl * @param array $pl
* @param Battle $btl * @param Battle $btl
* @return void * @return void
*/ */
@ -2765,7 +2773,7 @@ class Priems
$q = 'select stats as data from stats where id = ? $q = 'select stats as data from stats where id = ?
union all select stats as data from test_bot where id = ? union all select stats as data from test_bot where id = ?
union all select data from eff_users where `delete` = 0 and uid = ? union all select data from eff_users where `delete` = 0 and uid = ?
union all select data from items_users where inOdet > 0 and `delete` = 0 and uid = ?'; union all select data from items_users where inodet > 0 and `delete` = 0 and uid = ?';
$datas = Db::getColumn($q, array_fill(0, 3, $this->ue['id'])); $datas = Db::getColumn($q, array_fill(0, 3, $this->ue['id']));
$stats = array_fill_keys(['s1', 's2', 's3', 's5', 's6'], 0); $stats = array_fill_keys(['s1', 's2', 's3', 's5', 's6'], 0);
foreach ($datas as $data) { foreach ($datas as $data) {

View File

@ -433,7 +433,7 @@ class Quests
} }
if (isset($d['add_rep'])) { if (isset($d['add_rep'])) {
$t .= 'Репутация ' . $u->city_name[$pl['city']] . ': ' . $d['add_rep'] . '<br>'; $t .= 'Репутация ' . $pl['city'] . ': ' . $d['add_rep'] . '<br>';
} }
if (isset($d['add_repizlom'])) { if (isset($d['add_repizlom'])) {
@ -582,7 +582,7 @@ class Quests
return $r; return $r;
} }
public function testquest() public function testquest(): void
{ {
global $u; global $u;
if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') { if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') {
@ -749,12 +749,9 @@ class Quests
} }
unset($x, $i, $ii, $ex, $x2, $bot2, $ex2); unset($x, $i, $ii, $ex, $x2, $bot2, $ex2);
if ($pl['city'] != '') { if ($pl['city'] != '') {
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $u->city_name[$pl['city']] . ', '; $t .= '' . $d['add_rep'] . ' ед. репутации ' . $pl['city'] . ', ';
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1')); $rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'));
// Рыцарки
/*if($rep['rep'.$pl['city']] < 10000 && $rep['rep'.$pl['city']] + $d['add_rep'] >= 10000 && $pl['kin'] != 1) {
$rep['rep'.$pl['city']] = 9999;
} else*/
if ($rep['rep' . $pl['city']] < 24999 && $rep['rep' . $pl['city']] + $d['add_rep'] >= 24999 && $pl['kin'] != 2) { if ($rep['rep' . $pl['city']] < 24999 && $rep['rep' . $pl['city']] + $d['add_rep'] >= 24999 && $pl['kin'] != 2) {
$rep['rep' . $pl['city']] = 24999; $rep['rep' . $pl['city']] = 24999;
} else { } else {
@ -976,7 +973,7 @@ class Quests
if ($this->stats['more_awards'] >= 0) { if ($this->stats['more_awards'] >= 0) {
$d['add_rep'] += $d['add_rep'] / 100 * 50; $d['add_rep'] += $d['add_rep'] / 100 * 50;
} }
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $u->city_name[$quest['city']] . ', '; $t .= '' . $d['add_rep'] . ' ед. репутации ' . $quest['city'] . ', ';
if ( if (
$rep['rep' . $quest['city']] < 24999 && $rep['rep' . $quest['city']] < 24999 &&
$rep['rep' . $quest['city']] + $d['add_rep'] >= 24999 && $rep['rep' . $quest['city']] + $d['add_rep'] >= 24999 &&

View File

@ -9,6 +9,7 @@ use Model\ActionModel;
use User\Effects; use User\Effects;
use User\InfoBox; use User\InfoBox;
use User\ItemsModel; use User\ItemsModel;
use User\Login;
use User\Reputation; use User\Reputation;
use User\Stats; use User\Stats;
use User\UserCalculatedStats; use User\UserCalculatedStats;
@ -17,7 +18,6 @@ use User\UserStats;
class User class User
{ {
private static ?self $flag_one = null; private static ?self $flag_one = null;
public int $pokol = 2; //Акктуальное поколение предметов
public array $aves = ['now' => 0, 'max' => 0]; public array $aves = ['now' => 0, 'max' => 0];
public array $room = []; public array $room = [];
public array $align_nm = [ public array $align_nm = [
@ -26,34 +26,6 @@ class User
3 => 'Тьма', 3 => 'Тьма',
7 => 'Нейтралитет', 7 => 'Нейтралитет',
]; ];
public array $mod_nm = [
0 => [0 => ''],
1 => [
'1' => 'Свет',
'1.1' => 'Паладин Поднебесья',
'1.4' => 'Таможенный Паладин',
'1.5' => 'Паладин Солнечной Улыбки',
'1.6' => 'Инквизитор',
'1.7' => 'Паладин Огненной Зари',
'1.75' => 'Паладин-Хранитель',
'1.9' => 'Паладин Неба',
'1.91' => 'Старший Паладин Неба',
'1.92' => 'Ветеран Ордена',
'1.99' => 'Верховный Паладин',
],
3 => [
'3' => 'Тьма',
'3.01' => 'Тарман-Служитель',
'3.05' => 'Тарман-Надсмотрщик',
'3.06' => 'Каратель',
'3.07' => 'Тарман-Убийца',
'3.075' => 'Тарман-Хранитель',
'3.09' => 'Тарман-Палач',
'3.091' => 'Тарман-Владыка',
'3.092' => 'Ветеран Армады',
'3.99' => 'Тарман Патриарх',
],
];
public array $rgd = [0 => 0, 1 => 0]; public array $rgd = [0 => 0, 1 => 0];
public array $city_name = [ public array $city_name = [
'emeraldscity' => 'Emeralds city', 'emeraldscity' => 'Emeralds city',
@ -584,25 +556,35 @@ class User
public string $error = ''; public string $error = '';
public array $info = []; public array $info = [];
public array $rep; public array $rep;
public $tfer; /** Для переводов персонажа */
public $stats; public array|false $tfer;
public array $stats;
private InfoBox $infoBox; private InfoBox $infoBox;
private Reputation $reputation; private Reputation $reputation;
private Stats $userStats; private Stats $userStats;
private function __construct() private function __construct(int $uid = 0)
{ {
if (empty($_SESSION['uid']) && empty($_COOKIE['login'])) { if (empty($_SESSION['uid']) && empty($_COOKIE['login']) && empty($uid)) {
return; return;
} }
$user = !empty($_SESSION['uid']) ? $_SESSION['uid'] : $_COOKIE['login']; $user = match (true) {
!empty($uid) => $uid,
!empty($_SESSION['uid']) => $_SESSION['uid'],
default => $_COOKIE['login']
};
$this->info = self::getInfo($user); $this->info = self::getInfo($user);
unset($user); unset($user);
Database::init(); // для всяких mysql_* Database::init(); // для всяких mysql_*
$this->userStats = new Stats($this);
//$this->getStats($this->info); // Бля, а вдруг?
$this->stats = $this->userStats->getStats($this->info);
$this->infoTasks(); $this->infoTasks();
if (Core\Config::get('securetime') > 0) { if (Core\Config::get('securetime') > 0) {
@ -813,11 +795,18 @@ class User
} }
//Выделяем передачи //Выделяем передачи
$this->tfer = mysql_fetch_array(
mysql_query( $this->tfer = Db::getRow(
'SELECT `id`,`time`,`uid1`,`uid2`,`city`,`room`,`good1`,`good2`,`cancel1`,`cancel2`,`money1`,`money2`,`start1`,`start2`,`text`,`r0`,`r1`,`r2`,`finish1`,`finish2` FROM `transfers` WHERE (`uid1` = "' . $this->info['id'] . '" OR `uid2` = "' . $this->info['id'] . '") AND (`cancel1` = "0" OR (`finish1` > 0 AND `uid1` = "' . $this->info['id'] . '") OR (`finish2` > 0 AND `uid2` = "' . $this->info['id'] . '")) AND (`cancel2` = "0" OR (`finish2` > 0 AND `uid2` = "' . $this->info['id'] . '") OR (`finish1` > 0 AND `uid1` = "' . $this->info['id'] . '")) ORDER BY `id` DESC LIMIT 1' 'select *
) from transfers
where (uid1 = ? or uid2 = ?)
and (cancel1 = 0 or (finish1 > 0 and uid1 = ?) or (finish2 > 0 and uid2 = ?))
and (cancel2 = 0 or (finish2 > 0 and uid2 = ?) or (finish1 > 0 and uid1 = ?))
order by id desc
limit 1',
[$this->info['id'], $this->info['id'], $this->info['id'], $this->info['id'], $this->info['id'], $this->info['id']]
); );
if ($this->tfer) { if ($this->tfer) {
if ($this->tfer['uid1'] == $this->tfer['uid2']) { if ($this->tfer['uid1'] == $this->tfer['uid2']) {
$this->tfer = false; $this->tfer = false;
@ -891,11 +880,11 @@ class User
$cmp = Db::getValue('select val from save_com where uid = ? and id = ?', [$this->info['id'], (int)$_GET['usec1']]); $cmp = Db::getValue('select val from save_com where uid = ? and id = ?', [$this->info['id'], (int)$_GET['usec1']]);
if ($cmp) { if ($cmp) {
//снимаем все вещи //снимаем все вещи
Db::sql('update items_users set inOdet = 0 where uid = ?', [$this->info['id']]); Db::sql('update items_users set inodet = 0 where uid = ?', [$this->info['id']]);
//одеваем вещи, если они не удалены //одеваем вещи, если они не удалены
$cm = Conversion::dataStringToArray($cmp); $cm = Conversion::dataStringToArray($cmp);
foreach ($cm as $slot => $itemid) { foreach ($cm as $slot => $itemid) {
Db::sql('update items_users set inOdet = ? where id = ? and uid = ? and inShop = 0', [(int)$slot, (int)$itemid, $this->info['id']]); Db::sql('update items_users set inodet = ? where id = ? and uid = ? and inshop = 0', [(int)$slot, (int)$itemid, $this->info['id']]);
} }
} }
@ -1013,7 +1002,7 @@ class User
$j++; $j++;
} }
if ($tritm != '' && !$tr) { if ($tritm != '' && !$tr) {
$this->error = 'Необходимы предметы: ' . $tritm . ''; $this->error = 'Необходимы предметы: ' . $tritm;
} }
} }
while ($x < count($t)) { while ($x < count($t)) {
@ -1029,7 +1018,7 @@ class User
mysql_query( mysql_query(
'UPDATE `users` SET `obraz` = "' . $o['img'] . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1' 'UPDATE `users` SET `obraz` = "' . $o['img'] . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
); );
$this->addAction(time(), 'sel_obraz', 'id=' . $o['id'] . ''); $this->addAction(time(), 'sel_obraz', 'id=' . $o['id']);
$this->info['obraz'] = $o['img']; $this->info['obraz'] = $o['img'];
} }
} else { } else {
@ -1044,7 +1033,7 @@ class User
} else { } else {
$this->error = 'Выбирать образ можно не чаще одного раза в сутки, следующая смена ' . date( $this->error = 'Выбирать образ можно не чаще одного раза в сутки, следующая смена ' . date(
'd.m.Y H:i', $sm['time'] + 86400 'd.m.Y H:i', $sm['time'] + 86400
) . ''; );
unset($_GET['obr_sel']); unset($_GET['obr_sel']);
$_GET['inv'] = 1; $_GET['inv'] = 1;
} }
@ -1115,9 +1104,6 @@ class User
return; return;
} }
$this->userStats = new Stats($this);
//$this->getStats($this->info); // Бля, а вдруг?
$this->stats = $this->userStats->getStats($this->info);
$this->info['achiv'] = Db::getRow('select * from users_achiv where id = ?', [$this->info['id']]); $this->info['achiv'] = Db::getRow('select * from users_achiv where id = ?', [$this->info['id']]);
if (!isset($this->info['achiv']['id'])) { if (!isset($this->info['achiv']['id'])) {
@ -1365,12 +1351,13 @@ class User
//Расчет защиты (магия) //Расчет защиты (магия)
/** Singletone. /** Singletone.
* @param int $uid
* @return User * @return User
*/ */
public static function start(): User public static function start(int $uid = 0): User
{ {
if (!isset(self::$flag_one)) { if (!isset(self::$flag_one)) {
self::$flag_one = new self(); self::$flag_one = new self($uid);
} }
return self::$flag_one; return self::$flag_one;
} }
@ -1401,13 +1388,10 @@ class User
where users.id = ?', where users.id = ?',
[$uid] [$uid]
); );
$imgBase = Config::img() . DIRECTORY_SEPARATOR . 'i'; if (!isset($login)) {
return "uid:$uid";
$alignStr = empty($align) ? '' : "<img src='$imgBase/align/align$align.gif' alt=''>"; }
$clanStr = empty($clanName) ? '' : "<img src='$imgBase/clan/$clanName.gif' alt='$clanName'>"; return (new Login($align, $clanName, $level, $login))->fullLogin;
$spacedLogin = str_replace(' ', '%20', $login);
$loginLink = "<a href='/inf.php?login=$spacedLogin' target='_blank'><img src='img/inf.gif' title='Инф. о $login' alt='Инф. о $login'></a>";
return "$alignStr$clanStr<strong>$login</strong> [$level]$loginLink";
} }
public function dayquest(int $id): string public function dayquest(int $id): string
@ -1465,11 +1449,11 @@ class User
} }
$this->error = 'Вы успешно восстановили ' . round($this->stats['hpAll'] - $this->stats['hpNow']) . ' HP.'; $this->error = 'Вы успешно восстановили ' . round($this->stats['hpAll'] - $this->stats['hpNow']) . ' HP.';
Db::sql( Db::sql(
'insert into vortex (uid, room, time, val, type) VALUES (?,?,unix_timestamp(),?,1)', 'insert into vortex (uid, room, time, val, type) values (?,?,unix_timestamp(),?,1)',
[$this->info['id'], $this->info['room'], round($this->stats['hpAll'] - $this->stats['hpNow'])] [$this->info['id'], $this->info['room'], round($this->stats['hpAll'] - $this->stats['hpNow'])]
); );
$this->stats['hpNow'] = $this->stats['hpAll']; $this->stats['hpNow'] = $this->stats['hpAll'];
Db::sql('update stats set hpNow = ? where id = ?', [$this->stats['hpNow'], $this->info['id']]); Db::sql('update stats set hpnow = ? where id = ?', [$this->stats['hpNow'], $this->info['id']]);
} }
} elseif (isset($_GET['vmp'])) { } elseif (isset($_GET['vmp'])) {
$v = Db::getValue('select time from vortex where uid = ? and type = 2 order by time desc limit 1'); $v = Db::getValue('select time from vortex where uid = ? and type = 2 order by time desc limit 1');
@ -1482,11 +1466,11 @@ class User
} }
$this->error = 'Вы успешно восстановили ' . round($this->stats['mpAll'] - $this->stats['mpNow']) . ' MP.'; $this->error = 'Вы успешно восстановили ' . round($this->stats['mpAll'] - $this->stats['mpNow']) . ' MP.';
Db::sql( Db::sql(
'insert into vortex (uid, room, time, val, type) VALUES (?,?,unix_timestamp(),?,2)', 'insert into vortex (uid, room, time, val, type) values (?,?,unix_timestamp(),?,2)',
[$this->info['id'], $this->info['room'], round($this->stats['mpAll'] - $this->stats['mpNow'])] [$this->info['id'], $this->info['room'], round($this->stats['mpAll'] - $this->stats['mpNow'])]
); );
$this->stats['mpNow'] = $this->stats['mpAll']; $this->stats['mpNow'] = $this->stats['mpAll'];
Db::sql('update stats set mpNow = ? where id = ?', [$this->stats['mpNow'], $this->info['id']]); Db::sql('update stats set mpnow = ? where id = ?', [$this->stats['mpNow'], $this->info['id']]);
} }
} }
@ -1532,7 +1516,7 @@ class User
if ($an <= 0) { if ($an <= 0) {
return; return;
} }
Db::sql('replace into users_align (uid, time, align) VALUES (?,unix_timestamp(),?)', [$uid, floor($an)]); Db::sql('replace into users_align (uid, time, align) values (?,unix_timestamp(),?)', [$uid, floor($an)]);
} }
@ -1987,7 +1971,7 @@ class User
//копируем пользователя //копируем пользователя
Db::sql( Db::sql(
"insert into users (align, login, level, pass, city, cityreg, name, sex, timereg, obraz, bot_id, inTurnir) values (?,?,?,uuid(),'Неведомые земли','Неведомые земли',?,?,?,?,?,?)", "insert into users (align, login, level, pass, city, cityreg, name, sex, timereg, obraz, bot_id, inturnir) values (?,?,?,uuid(),'Неведомые земли','Неведомые земли',?,?,?,?,?,?)",
[ [
$clon['align'] ?? 0, $clon['align'] ?? 0,
$clon['login'], $clon['login'],
@ -2027,17 +2011,17 @@ class User
$uid = (int)Db::lastInsertId(); $uid = (int)Db::lastInsertId();
//копируем статы //копируем статы
Db::sql('insert into stats (clone, id, stats, hpNow, upLevel, bot, priems) values (?,?,?,1000000,?,1,?)', [$clon['id'], $uid, $clon['stats'], $clon['upLevel'], $clon['priems']]); Db::sql('insert into stats (clone, id, stats, hpnow, uplevel, bot, priems) values (?,?,?,1000000,?,1,?)', [$clon['id'], $uid, $clon['stats'], $clon['upLevel'], $clon['priems']]);
//копируем предметы //копируем предметы
Db::sql( Db::sql(
"insert into items_users (uid, item_id, data, inOdet, iznosMAX, kolvo) select ?, item_id, replace(data, 'toclan', 'to_clan_'), inOdet, iznosMAX, kolvo from items_users where inOdet > 0 and uid = ?", "insert into items_users (uid, item_id, data, inodet, iznosmax, kolvo) select ?, item_id, replace(data, 'toclan', 'to_clan_'), inodet, iznosmax, kolvo from items_users where inodet > 0 and uid = ?",
[$uid, $clon['id']] [$uid, $clon['id']]
); );
//копируем эффекты //копируем эффекты
Db::sql( Db::sql(
"insert into eff_users (uid, id_eff, data, name, overType, timeUse, x) select ?, id_eff, data, name, overType, timeUse, x from eff_users where uid = ? and deactiveTime < unix_timestamp() and v1 != 'priem'", "insert into eff_users (uid, id_eff, data, name, overtype, timeuse, x) select ?, id_eff, data, name, overtype, timeuse, x from eff_users where uid = ? and deactivetime < unix_timestamp() and v1 != 'priem'",
[$uid, $clon['id']] [$uid, $clon['id']]
); );
@ -2047,7 +2031,7 @@ class User
} else { } else {
$bot = Db::getRow('select id, login, stats, upLevel, itemsUse from test_bot where id = ?', [$id]); $bot = Db::getRow('select id, login, stats, uplevel, itemsuse from test_bot where id = ?', [$id]);
if (!isset($bot['id'])) { if (!isset($bot['id'])) {
return []; return [];
@ -2088,7 +2072,7 @@ class User
$bot['stats'] = Conversion::arrayToDataString($statss); $bot['stats'] = Conversion::arrayToDataString($statss);
unset($statss); unset($statss);
} }
Db::sql('insert into stats (id, stats, hpNow, upLevel, bot) values (?,?,1000000,?,1)', [$uid, $bot['stats'], $bot['upLevel']]); Db::sql('insert into stats (id, stats, hpnow, uplevel, bot) values (?,?,1000000,?,1)', [$uid, $bot['stats'], $bot['upLevel']]);
$bot['id'] = $uid; $bot['id'] = $uid;
$bot['logins_bot'] = $logins_bot; $bot['logins_bot'] = $logins_bot;
@ -2109,7 +2093,7 @@ class User
$w3b = 1; $w3b = 1;
} }
} }
Db::sql('update items_users set inOdet = ? where id = ?', [$inslot, $iditem]); Db::sql('update items_users set inodet = ? where id = ?', [$inslot, $iditem]);
} }
return $bot; return $bot;
} }
@ -2188,7 +2172,7 @@ class User
public function freeStatsMod($id, $s, $uid): void public function freeStatsMod($id, $s, $uid): void
{ {
$itm = Db::getValue('select data from items_users where id = ? and uid = ? and inShop = 0 and inOdet = 0', [$id, $uid]); $itm = Db::getValue('select data from items_users where id = ? and uid = ? and inshop = 0 and inodet = 0', [$id, $uid]);
if (!isset($itm)) { if (!isset($itm)) {
return; return;
@ -2236,7 +2220,7 @@ class User
public function freeStatsItem(int $id, int $s, int $uid): void public function freeStatsItem(int $id, int $s, int $uid): void
{ {
$itm = Db::getValue('select data from items_users where id = ? and uid = ? and inShop = 0 and inOdet = 0', [$id, $uid]); $itm = Db::getValue('select data from items_users where id = ? and uid = ? and inshop = 0 and inodet = 0', [$id, $uid]);
if (!$itm || $s != 1 && $s != 2 && $s != 3 && $s != 5) { if (!$itm || $s != 1 && $s != 2 && $s != 3 && $s != 5) {
return; return;
} }
@ -2253,7 +2237,7 @@ class User
public function freeStats2Item(int $id, int $s, int $uid, int $tp): void public function freeStats2Item(int $id, int $s, int $uid, int $tp): void
{ {
$itm = Db::getRow('select id, data, so from items_users where id = ? and uid = ? and inShop = 0 and inOdet = 0', [$id, $uid]); $itm = Db::getRow('select id, data, so from items_users where id = ? and uid = ? and inshop = 0 and inodet = 0', [$id, $uid]);
if (!isset($itm['id']) || $itm['so'] <= 0) { if (!isset($itm['id']) || $itm['so'] <= 0) {
return; return;
} }
@ -2323,7 +2307,7 @@ class User
public function obj_addItem(int $id): void public function obj_addItem(int $id): void
{ {
$itm = Db::getRow('select id, inGroup, item_id, uid from items_users where uid = ? and inOdet = 0 and inShop = 0 and id = ?', [$this->info['id'], $id]); $itm = Db::getRow('select id, ingroup, item_id, uid from items_users where uid = ? and inodet = 0 and inshop = 0 and id = ?', [$this->info['id'], $id]);
if ($this->info['transfers'] < 1) { if ($this->info['transfers'] < 1) {
$this->error = 'На сегодня лимит передач исчерпан.'; $this->error = 'На сегодня лимит передач исчерпан.';
return; return;
@ -2332,25 +2316,25 @@ class User
return; return;
} }
if ($itm['inGroup'] > 0 && $this->itemsX($id) > 1) { if ($itm['inGroup'] > 0 && $this->itemsX($id) > 1) {
Db::sql('update items_users set inshop = 1 where inShop != 30 and uid = ? and item_id = ? and inGroup = ?', [$this->info['id'], $itm['item_id'], $itm['inGroup']]); Db::sql('update items_users set inshop = 1 where inshop != 30 and uid = ? and item_id = ? and ingroup = ?', [$this->info['id'], $itm['item_id'], $itm['inGroup']]);
} else { } else {
Db::sql('update items_users set inshop = 1 where inShop != 30 and uid = ? and id = ? and inOdet = 0', [$this->info['id'], $id]); Db::sql('update items_users set inshop = 1 where inshop != 30 and uid = ? and id = ? and inodet = 0', [$this->info['id'], $id]);
} }
} }
public function itemsX(int $id, $uid = null, $item_id = null): bool|int public function itemsX(int $id, $uid = null, $item_id = null): bool|int
{ {
//fixme какая-то дичь тут. //fixme какая-то дичь тут.
$item = Db::getRow('select uid, item_id, inGroup, inShop from items_users where id = ?', [$id]); $item = Db::getRow('select uid, item_id, ingroup, inshop from items_users where id = ?', [$id]);
return Db::getValue( return Db::getValue(
'select count(id) from items_users where inShop = ? and item_id = ? and uid = ? and inGroup = ?', 'select count(id) from items_users where inshop = ? and item_id = ? and uid = ? and ingroup = ?',
[$item['inShop'], $item['item_id'], $item['uid'], $item['ingroup']] [$item['inShop'], $item['item_id'], $item['uid'], $item['ingroup']]
); );
} }
public function obj_takeItem($id): void public function obj_takeItem($id): void
{ {
$itm = Db::getRow('select id, inGroup from items_users where id = ? and uid = ? and inOdet = 0 and inShop = 0'); $itm = Db::getRow('select id, ingroup from items_users where id = ? and uid = ? and inodet = 0 and inshop = 0');
if ($this->info['transfers'] < 1) { if ($this->info['transfers'] < 1) {
$this->error = 'На сегодня лимит передач исчерпан.'; $this->error = 'На сегодня лимит передач исчерпан.';
return; return;
@ -2359,15 +2343,15 @@ class User
return; return;
} }
if ($itm['inGroup'] > 0 && $this->itemsX($id) > 1) { if ($itm['inGroup'] > 0 && $this->itemsX($id) > 1) {
Db::sql('update items_users set inshop = 0 where inShop != 30 and uid = ? and (id = ? or inGroup = ?) and inOdet = 0', [$this->info['id'], $id, $itm['inGroup']]); Db::sql('update items_users set inshop = 0 where inshop != 30 and uid = ? and (id = ? or ingroup = ?) and inodet = 0', [$this->info['id'], $id, $itm['inGroup']]);
} else { } else {
Db::sql('update items_users set inshop = 0 where inShop != 30 and uid = ? and id = ? and inOdet = 0', [$this->info['id'], $id]); Db::sql('update items_users set inshop = 0 where inshop != 30 and uid = ? and id = ? and inodet = 0', [$this->info['id'], $id]);
} }
} }
public function itemsSmSave(int $id, int $s, int $uid): void public function itemsSmSave(int $id, int $s, int $uid): void
{ {
$itm = Db::getValue('select data from items_users where id = ? and uid = ? and inShop = 0 and inOdet = 0', [$id, $uid]); $itm = Db::getValue('select data from items_users where id = ? and uid = ? and inshop = 0 and inodet = 0', [$id, $uid]);
if (!$itm) { if (!$itm) {
return; return;
} }
@ -2619,7 +2603,7 @@ class User
//----------------------------------------------- //-----------------------------------------------
$idt = mysql_fetch_array( $idt = mysql_fetch_array(
mysql_query( mysql_query(
'SELECT `id`,`name`,`img`,`type`,`inslot`,`2h`,`2too`,`iznosMAXi`,`inRazdel`,`price1`,`price2`,`price3`,`magic_chance`,`info`,`massa`,`level`,`magic_inci`,`overTypei`,`group`,`group_max`,`geni`,`ts`,`srok`,`class`,`class_point`,`anti_class`,`anti_class_point`,`max_text`,`useInBattle`,`lbtl`,`lvl_itm`,`lvl_exp`,`lvl_aexp` FROM `items_main` WHERE `id` = "' . $id['item_id'] . '" LIMIT` 1' 'SELECT `id`,`name`,`img`,`type`,`inslot`,`2h`,`2too`,`iznosMAXi`,`inRazdel`,`price1`,`price2`,`price3`,`magic_chance`,`info`,`massa`,`level`,`magic_inci`,`overTypei`,`group`,`group_max`,`ts`,`srok`,`class`,`class_point`,`anti_class`,`anti_class_point`,`max_text`,`useInBattle`,`lbtl`,`lvl_itm`,`lvl_exp`,`lvl_aexp` FROM `items_main` WHERE `id` = "' . $id['item_id'] . '" LIMIT` 1'
) )
); );
@ -2664,7 +2648,7 @@ class User
} }
//Новая чарка //Новая чарка
$srune = mysql_query('SELECT * FROM `new_charov` WHERE 1'); $srune = mysql_query('select * from new_charov where 1');
$irun = 0; $irun = 0;
while ($nrune = mysql_fetch_array($srune)) { while ($nrune = mysql_fetch_array($srune)) {
$irun++; $irun++;
@ -2711,7 +2695,7 @@ class User
} elseif ($rune['type'] == 62) { } elseif ($rune['type'] == 62) {
$idt = mysql_fetch_array( $idt = mysql_fetch_array(
mysql_query( mysql_query(
'SELECT `id`,`name`,`img`,`type`,`inslot`,`2h`,`2too`,`iznosMAXi`,`inRazdel`,`price1`,`price2`,`price3`,`magic_chance`,`info`,`massa`,`level`,`magic_inci`,`overTypei`,`group`,`group_max`,`geni`,`ts`,`srok`,`class`,`class_point`,`anti_class`,`anti_class_point`,`max_text`,`useInBattle`,`lbtl`,`lvl_itm`,`lvl_exp`,`lvl_aexp` FROM `items_main` WHERE `id` = "' . $id['item_id'] . '" LIMIT` 1' 'SELECT `id`,`name`,`img`,`type`,`inslot`,`2h`,`2too`,`iznosMAXi`,`inRazdel`,`price1`,`price2`,`price3`,`magic_chance`,`info`,`massa`,`level`,`magic_inci`,`overTypei`,`group`,`group_max`,`ts`,`srok`,`class`,`class_point`,`anti_class`,`anti_class_point`,`max_text`,`useInBattle`,`lbtl`,`lvl_itm`,`lvl_exp`,`lvl_aexp` FROM `items_main` WHERE `id` = "' . $id['item_id'] . '" LIMIT` 1'
) )
); );
if ($idt['type'] == 7) { if ($idt['type'] == 7) {
@ -3011,7 +2995,7 @@ class User
} elseif ($rune['type'] == 46) { } elseif ($rune['type'] == 46) {
$idt = mysql_fetch_array( $idt = mysql_fetch_array(
mysql_query( mysql_query(
'SELECT `id`,`name`,`img`,`type`,`inslot`,`2h`,`2too`,`iznosMAXi`,`inRazdel`,`price1`,`price2`,`price3`,`magic_chance`,`info`,`massa`,`level`,`magic_inci`,`overTypei`,`group`,`group_max`,`geni`,`ts`,`srok`,`class`,`class_point`,`anti_class`,`anti_class_point`,`max_text`,`useInBattle`,`lbtl`,`lvl_itm`,`lvl_exp`,`lvl_aexp` FROM `items_main` WHERE `id` = ' . $id['item_id'] 'SELECT `id`,`name`,`img`,`type`,`inslot`,`2h`,`2too`,`iznosMAXi`,`inRazdel`,`price1`,`price2`,`price3`,`magic_chance`,`info`,`massa`,`level`,`magic_inci`,`overTypei`,`group`,`group_max`,`ts`,`srok`,`class`,`class_point`,`anti_class`,`anti_class_point`,`max_text`,`useInBattle`,`lbtl`,`lvl_itm`,`lvl_exp`,`lvl_aexp` FROM `items_main` WHERE `id` = ' . $id['item_id']
) )
); );
if ($idt['type'] == 5) { if ($idt['type'] == 5) {
@ -3190,7 +3174,7 @@ class User
} elseif ($rune['type'] == 68) { } elseif ($rune['type'] == 68) {
$idt = mysql_fetch_array( $idt = mysql_fetch_array(
mysql_query( mysql_query(
'SELECT `id`,`name`,`img`,`type`,`inslot`,`2h`,`2too`,`iznosMAXi`,`inRazdel`,`price1`,`price2`,`price3`,`magic_chance`,`info`,`massa`,`level`,`magic_inci`,`overTypei`,`group`,`group_max`,`geni`,`ts`,`srok`,`class`,`class_point`,`anti_class`,`anti_class_point`,`max_text`,`useInBattle`,`lbtl`,`lvl_itm`,`lvl_exp`,`lvl_aexp` FROM `items_main` WHERE `id` = "' . $id['item_id'] . '" LIMIT` 1' 'SELECT `id`,`name`,`img`,`type`,`inslot`,`2h`,`2too`,`iznosMAXi`,`inRazdel`,`price1`,`price2`,`price3`,`magic_chance`,`info`,`massa`,`level`,`magic_inci`,`overTypei`,`group`,`group_max`,`ts`,`srok`,`class`,`class_point`,`anti_class`,`anti_class_point`,`max_text`,`useInBattle`,`lbtl`,`lvl_itm`,`lvl_exp`,`lvl_aexp` FROM `items_main` WHERE `id` = "' . $id['item_id'] . '" LIMIT` 1'
) )
); );
if ($idt['type'] == 5) { if ($idt['type'] == 5) {
@ -3310,7 +3294,6 @@ class User
`im`.`overTypei`, `im`.`overTypei`,
`im`.`group`, `im`.`group`,
`im`.`group_max`, `im`.`group_max`,
`im`.`geni`,
`im`.`ts`, `im`.`ts`,
`im`.`srok`, `im`.`srok`,
`im`.`class`, `im`.`class`,
@ -3371,7 +3354,7 @@ class User
`im`.`magic_inci`, `im`.`overTypei`, `im`.`magic_inci`, `im`.`overTypei`,
`im`.`group`, `im`.`group`,
`im`.`group_max`, `im`.`group_max`,
`im`.`geni`, `im`.`ts`, `im`.`ts`,
`im`.`srok`, `im`.`srok`,
`im`.`class`, `im`.`class_point`, `im`.`class`, `im`.`class_point`,
`im`.`anti_class`, `im`.`anti_class_point`, `im`.`anti_class`, `im`.`anti_class_point`,
@ -4241,10 +4224,6 @@ class User
$is2 .= '<div style="color:brown;">Предмет будет удален при выходе из подземелья</div>'; $is2 .= '<div style="color:brown;">Предмет будет удален при выходе из подземелья</div>';
} }
if ($this->pokol > $pl['geni']) {
$is2 .= '<div style="color:brown">Предмет устарел</div>';
}
if (isset($po['zazuby']) && $po['zazuby'] > 0) { if (isset($po['zazuby']) && $po['zazuby'] > 0) {
$is2 .= '<div style="color:brown;">Предмет куплен за зубы</div>'; $is2 .= '<div style="color:brown;">Предмет куплен за зубы</div>';
} }
@ -4867,7 +4846,6 @@ class User
`im`.`overTypei`, `im`.`overTypei`,
`im`.`group`, `im`.`group`,
`im`.`group_max`, `im`.`group_max`,
`im`.`geni`,
`im`.`ts`, `im`.`ts`,
`im`.`srok`, `im`.`srok`,
`im`.`class`, `im`.`class`,
@ -4983,7 +4961,6 @@ class User
`im`.`overTypei`, `im`.`overTypei`,
`im`.`group`, `im`.`group`,
`im`.`group_max`, `im`.`group_max`,
`im`.`geni`,
`im`.`ts`, `im`.`ts`,
`im`.`srok`, `im`.`srok`,
`im`.`class`, `im`.`class`,
@ -5064,7 +5041,7 @@ class User
$i = 0; $i = 0;
do { //fixme ужасный цикл, ужасный запрос. do { //fixme ужасный цикл, ужасный запрос.
$i++; $i++;
$gr = Db::getValue('select inGroup from items_users where uid = ? and inGroup = ? and item_id = ?', [$uid, $i, $item]); $gr = Db::getValue('select ingroup from items_users where uid = ? and ingroup = ? and item_id = ?', [$uid, $i, $item]);
if (empty($gr)) { if (empty($gr)) {
$g = 1; $g = 1;
@ -5107,24 +5084,24 @@ class User
item_id, item_id,
time_create, time_create,
time_sleep, time_sleep,
timeOver, timeover,
name, name,
overType, overtype,
inOdet, inodet,
iznosNOW, iznosnow,
iznosMAX, iznosmax,
iznosMAXi iznosmaxi
from items_users from items_users
left join items_main on items_main.id = item_id left join items_main on items_main.id = item_id
where where
( (
inOdet != 0 or inodet != 0 or
data like '%srok%' or data like '%srok%' or
data like '%vip_sale%' or data like '%vip_sale%' or
data like '%sudba=1%' or data like '%sudba=1%' or
iznosNOW > 0 or iznosnow > 0 or
srok > 0 or srok > 0 or
(timeOver !=0 and timeOver < unix_timestamp()) (timeover !=0 and timeover < unix_timestamp())
) and uid = ?", ) and uid = ?",
[$u['id']] [$u['id']]
); );
@ -5141,7 +5118,9 @@ class User
$notr++; $notr++;
} }
} }
if ($itm['iznosNOW'] >= ceil($itm['iznosMAX']) && $itm['iznosMAXi'] != 999999999) { if (isset($itm['iznosNOW'], $itm['iznosMAX'], $itm['iznosMAXi']) &&
$itm['iznosNOW'] >= ceil($itm['iznosMAX']) &&
$itm['iznosMAXi'] != 999999999) {
$notr++; $notr++;
} }
if ($notr > 0 && $itm['inOdet'] != 0) { if ($notr > 0 && $itm['inOdet'] != 0) {
@ -5240,7 +5219,7 @@ class User
return 0; return 0;
} }
$sql = 'select count(*) from items_users where id = ? and inOdet != 0'; $sql = 'select count(*) from items_users where id = ? and inodet != 0';
$args = [$id]; $args = [$id];
if ($uid > 0) { if ($uid > 0) {
$sql .= ' and uid = ?'; $sql .= ' and uid = ?';
@ -5250,7 +5229,7 @@ class User
if (empty(Db::getValue($sql, $args))) { if (empty(Db::getValue($sql, $args))) {
return 0; return 0;
} }
Db::sql('update items_users set lastUPD = unix_timestamp(), inOdet = 0 where id = ?', [$id]); Db::sql('update items_users set lastupd = unix_timestamp(), inodet = 0 where id = ?', [$id]);
if (isset($_GET['remitem']) || isset($_GET['sid'])) { if (isset($_GET['remitem']) || isset($_GET['sid'])) {
$this->info['autospell'] = 1; $this->info['autospell'] = 1;
Db::sql('update users set autospell = 1 where id = ?', [$this->info['id']]); Db::sql('update users set autospell = 1 where id = ?', [$this->info['id']]);
@ -5282,7 +5261,7 @@ class User
public function btlMagicList(): string public function btlMagicList(): string
{ {
$sv = array_fill(1, 10, '<img class="nopriemuse" title="Пустой слот магия" src="' . Config::img() . '/i/items/w/w101.gif" alt="">'); $sv = array_fill(1, 12, '<img class="nopriemuse" title="Пустой слот магия" src="' . Config::img() . '/i/items/w/w101.gif" alt="">');
foreach ($this->stats['items'] as $stat) { foreach ($this->stats['items'] as $stat) {
if (!in_array($stat['inslot'], [40, 51])) { if (!in_array($stat['inslot'], [40, 51])) {
@ -5335,7 +5314,7 @@ class User
public function endEffect($id, $u): int public function endEffect($id, $u): int
{ {
$e = Db::getRow('select id, uid, id_eff, name, sleeptime, data, type1 from eff_users left join eff_main on id_eff = id2 where id = ? and deactiveTime < unix_timestamp()', [$id]); $e = Db::getRow('select id, uid, id_eff, name, sleeptime, data, type1 from eff_users left join eff_main on id_eff = id2 where id = ? and deactivetime < unix_timestamp()', [$id]);
if (!isset($e['id'])) { if (!isset($e['id'])) {
return 0; return 0;
@ -5391,11 +5370,15 @@ class User
{ {
$r = ''; $r = '';
$sp = Db::getRows( $sp = Db::getRows(
'select iznosNOW, iznosMAX, name from items_users left join items_main on item_id = items_main.id where uid = ? and inShop = 0 and inOdet between 1 and 18 limit 18', 'select iznosnow, iznosmax, name from items_users left join items_main on item_id = items_main.id where uid = ? and inshop = 0 and inodet between 1 and 18 limit 18',
[$this->info['id']] [$this->info['id']]
); );
foreach ($sp as $pl) { foreach ($sp as $pl) {
if ($pl['iznosNOW'] <= ceil($pl['iznosMAX'] * 0.80)) { if (
!isset($pl['iznosMAX']) ||
!isset($pl['iznosNOW']) ||
$pl['iznosNOW'] <= ceil($pl['iznosMAX'] * 0.80)
) {
continue; continue;
} }
$r .= '<strong>' . $pl['name'] . '</strong> [<span style="color: brown">' . floor($pl['iznosNOW']) . '/' . $r .= '<strong>' . $pl['name'] . '</strong> [<span style="color: brown">' . floor($pl['iznosNOW']) . '/' .
@ -5409,16 +5392,16 @@ class User
if ($uid < 1) { if ($uid < 1) {
return 0; return 0;
} }
Db::sql('update items_users set lastUPD = unix_timestamp(), inOdet = 0 where inOdet != 0 and uid = ?', [$uid]); Db::sql('update items_users set lastupd = unix_timestamp(), inodet = 0 where inodet != 0 and uid = ?', [$uid]);
return 1; return 1;
} }
public function odetItem(int $id, int $uid) public function odetItem(int $id, int $uid)
{ {
$sql = "select items_users.id, data, 2price, inGroup, gift, gtxt1, `group`, price2, name, type, inslot, 2too, 2h $sql = "select items_users.id, data, 2price, ingroup, gift, gtxt1, `group`, price2, name, type, inslot, 2too, 2h
from items_users from items_users
left join items_main on item_id = items_main.id left join items_main on item_id = items_main.id
where items_users.id = ? and inOdet = 0 and inShop = 0"; where items_users.id = ? and inodet = 0 and inshop = 0";
$args = [$id]; $args = [$id];
if ($uid) { if ($uid) {
@ -5439,7 +5422,7 @@ class User
if ( if (
isset($tr['maks_itm_one']) && isset($tr['maks_itm_one']) &&
$tr['maks_itm_one'] > 0 && $tr['maks_itm_one'] > 0 &&
Db::getValue('select true from items_users where uid = ? and inOdet > 0 and data like ? limit 1', [$this->info['id'], "%maks_itm_one={$tr['maks_itm_one']}%"]) Db::getValue('select true from items_users where uid = ? and inodet > 0 and data like ? limit 1', [$this->info['id'], "%maks_itm_one={$tr['maks_itm_one']}%"])
) { ) {
$this->error = 'Возможное использование максимум одного предмета!'; $this->error = 'Возможное использование максимум одного предмета!';
$notr++; $notr++;
@ -5491,7 +5474,7 @@ class User
} elseif (isset($tr['open']) && isset($_GET['open']) && isset($tr['items_in_file'])) { } elseif (isset($tr['open']) && isset($_GET['open']) && isset($tr['items_in_file'])) {
$io = ''; $io = '';
if ($itm['inGroup'] > 0) { if ($itm['inGroup'] > 0) {
Db::sql('update items_users set lastUPD = unix_timestamp(), inGroup = 0 where id = ?', [$itm['id']]); Db::sql('update items_users set lastupd = unix_timestamp(), ingroup = 0 where id = ?', [$itm['id']]);
} }
if (file_exists('_incl_data/class/Magic/' . $tr['items_in_file'] . '.php')) { if (file_exists('_incl_data/class/Magic/' . $tr['items_in_file'] . '.php')) {
require_once '_incl_data/class/Magic/' . $tr['items_in_file'] . '.php'; require_once '_incl_data/class/Magic/' . $tr['items_in_file'] . '.php';
@ -5530,7 +5513,7 @@ class User
$this->error = 'Не удалось открыть подарок. Содержимое испорчено.'; $this->error = 'Не удалось открыть подарок. Содержимое испорчено.';
} elseif ($itmin['item_id'] == 4868) { } elseif ($itmin['item_id'] == 4868) {
//Летучая мышь //Летучая мышь
Db::sql('update stats set hpNow = 1, mpNow = 1 where id = ?', [$this->info['id']]); Db::sql('update stats set hpnow = 1, mpnow = 1 where id = ?', [$this->info['id']]);
$this->deleteItem($itm['id'], $this->info['id']); $this->deleteItem($itm['id'], $this->info['id']);
$this->deleteItem($itmin['id'], $this->info['id']); $this->deleteItem($itmin['id'], $this->info['id']);
$this->error = 'Вы потеряли все HP...'; $this->error = 'Вы потеряли все HP...';
@ -5660,7 +5643,7 @@ class User
$itms[$i] = $itms[$i][0]; $itms[$i] = $itms[$i][0];
$s = mysql_fetch_array( $s = mysql_fetch_array(
mysql_query( mysql_query(
'SELECT `id`,`name`,`img`,`type`,`inslot`,`2h`,`2too`,`iznosMAXi`,`inRazdel`,`price1`,`price2`,`price3`,`magic_chance`,`info`,`massa`,`level`,`magic_inci`,`overTypei`,`group`,`group_max`,`geni`,`ts`,`srok`,`class`,`class_point`,`anti_class`,`anti_class_point`,`max_text`,`useInBattle`,`lbtl`,`lvl_itm`,`lvl_exp`,`lvl_aexp` FROM `items_main` WHERE `id`="' . ((int)$itms[$i]) . '" LIMIT 1' 'SELECT `id`,`name`,`img`,`type`,`inslot`,`2h`,`2too`,`iznosMAXi`,`inRazdel`,`price1`,`price2`,`price3`,`magic_chance`,`info`,`massa`,`level`,`magic_inci`,`overTypei`,`group`,`group_max`,`ts`,`srok`,`class`,`class_point`,`anti_class`,`anti_class_point`,`max_text`,`useInBattle`,`lbtl`,`lvl_itm`,`lvl_exp`,`lvl_aexp` FROM `items_main` WHERE `id`="' . ((int)$itms[$i]) . '" LIMIT 1'
) )
); );
if (isset($s['id'])) { if (isset($s['id'])) {
@ -5809,10 +5792,8 @@ LIMIT 1'
if ($x == 0 or $x == null) { if ($x == 0 or $x == null) {
$x = $this->itemsX($itm['id']); //кол-во распада $x = $this->itemsX($itm['id']); //кол-во распада
$inGroup = 0; $inGroup = 0;
} elseif ($x != 0) {
$inGroup = $this->stackGroupCheck($this->info['id'], $itm['inGroup'], $itm['item_id']);
} else { } else {
$inGroup = 0; $inGroup = $this->stackGroupCheck($this->info['id'], $itm['inGroup'], $itm['item_id']);
} }
$sp = mysql_query( $sp = mysql_query(
'SELECT `im`.`id`, 'SELECT `im`.`id`,
@ -5835,7 +5816,6 @@ LIMIT 1'
`im`.`overTypei`, `im`.`overTypei`,
`im`.`group`, `im`.`group`,
`im`.`group_max`, `im`.`group_max`,
`im`.`geni`,
`im`.`ts`, `im`.`ts`,
`im`.`srok`, `im`.`srok`,
`im`.`class`, `im`.`class`,
@ -5906,25 +5886,21 @@ LIMIT 1'
} }
} }
private function trItem($po) private function trItem($po): int
{ {
$tr = '';
$t = $this->items['tr'];
$x = 0;
$notr = 0; $notr = 0;
while ($x < count($t)) { foreach ($this->items['tr'] as $trn) {
$n = $t[$x]; if (!isset($po["tr_$trn"])) {
if (isset($po['tr_' . $n])) { continue;
if ($n == 'sex') { }
if ($this->info['sex'] != $po['tr_' . $n]) { if (
$notr++; $trn === 'sex' && $this->info['sex'] != $po["tr_$trn"] ||
} $trn !== 'align' && $po["tr_$trn"] > $this->stats[$trn]
} elseif ($po['tr_' . $n] > $this->stats[$n] && $n != 'align') { ) {
$notr++; $notr++;
}
} }
$x++;
} }
return $notr; return $notr;
} }
@ -6046,67 +6022,23 @@ LIMIT 1'
if (isset($this->stats['levels']['upLevel'])) { if (isset($this->stats['levels']['upLevel'])) {
$telvl = []; $telvl = [];
$sp = mysql_query('SELECT `upLevel`,`exp` FROM `levels`');
while ($pl = mysql_fetch_array($sp)) { foreach (Db::getRows('select uplevel, exp from levels') as $row) {
$telvl[$pl['upLevel']] = $pl['exp']; $telvl[$row['uplevel']] = $row['exp'];
} }
if ($this->info['exp'] >= $telvl[$this->info['upLevel']]) { if ($this->info['exp'] >= $telvl[$this->info['upLevel']]) {
$lvl = mysql_fetch_array( [$lvl, $lvln] = Db::getRows('select * from levels where uplevel >= ? order by uplevel limit 2', [$this->info['upLevel']]);
mysql_query(
'SELECT `duh`,`vinos`,`bprice`,`upLevel`,`nextLevel`,`exp`,`money`,`money_bonus1`,`money_bonus2`,`ability`,`skills`,`nskills`,`sskills`,`expBtlMax`,`hpRegen`,`mpRegen`,`money2` FROM `levels` WHERE `upLevel`="' . $this->info['upLevel'] . '" LIMIT 1'
)
);
$lvln = mysql_fetch_array(
mysql_query(
'SELECT `duh`,`vinos`,`bprice`,`upLevel`,`nextLevel`,`exp`,`money`,`money_bonus1`,`money_bonus2`,`ability`,`skills`,`nskills`,`sskills`,`expBtlMax`,`hpRegen`,`mpRegen`,`money2` FROM `levels` WHERE `upLevel`="' . ($lvl['upLevel'] + 1) . '" LIMIT 1'
)
);
//Кристал вечности
if ($this->info['exp'] > 12499 && $this->info['level'] <= 5 && Config::get('infinity5level')) {
$itm = mysql_fetch_array(
mysql_query(
'SELECT `id`,`item_id`,`1price`,`2price`,`3price`,`uid`,`use_text`,`data`,`inOdet`,`inShop`,`delete`,`iznosNOW`,`iznosMAX`,`gift`,`gtxt1`,`gtxt2`,`kolvo`,`geniration`,`magic_inc`,`maidin`,`lastUPD`,`timeOver`,`overType`,`secret_id`,`time_create`,`inGroup`,`dn_delete`,`inTransfer`,`post_delivery`,`lbtl_`,`bexp`,`so`,`blvl` FROM `items_users` WHERE `item_id` = "1204" AND `delete` = "0" AND `uid` = "' . $this->info['id'] . '" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'
)
);
if (!isset($itm['id']) && $this->info['host_reg'] != 'noinfinity5' && $this->info['twink'] == 0) {
$this->info['exp'] = 12499;
mysql_query(
'UPDATE `stats` SET `exp` = "12499" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
);
echo '<script>chat.sendMsg(["new","' . time(
) . '","6","","' . $this->info['login'] . '","Для перехода на 6-ой уровень требуется &quot;<strong>Кристалл Вечности [6]</strong>&quot;.","Black","1","1","0"]);</script>';
} else {
mysql_query(
'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
$text = 'Предмет &quot;<strong>Кристалл Вечности [6]</strong>&quot; был успешно использован.';
echo '<script>chat.sendMsg(["new","' . time() . '","6","","' . $this->info['login'] . '","' . $text . '","Black","1","1","0"]);</script>';
}
}
$i = 0; $i = 0;
$ult = 0; $ult = 0;
$sex1 = ''; $sex1 = '';
if ($this->info['sex'] == 1) { if ($this->info['sex'] == 1) {
$sex1 = 'ла'; $sex1 = 'ла';
} }
while ($i != 1) { while ($i != 1) {
if (Config::get('nolevel') && $this->info['exp'] >= $lvl['exp'] && isset($lvln['upLevel'])) {
$tlus = mysql_fetch_array(
mysql_query(
'SELECT COUNT(*) FROM `users` WHERE `real` = 1 AND `level` = "' . $this->info['level'] . '" LIMIT 1'
)
);
//берем апп или уровень, $lvln
if ($tlus[0] < $this->info['level'] * 5) {
//Нельзя получать лвл/аппы пока не будет 100 персонажей текущего уровня
$this->info['exp'] = $lvl['exp'] - 1;
mysql_query(
'UPDATE `stats` SET `exp` = "' . $this->info['exp'] . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
);
}
}
if ($this->info['exp'] < $lvl['exp'] || !isset($lvln['upLevel'])) { if ($this->info['exp'] < $lvl['exp'] || !isset($lvln['upLevel'])) {
$i = 1; $i = 1;
} else { } else {
@ -6282,6 +6214,7 @@ LIMIT 1'
$rt++; $rt++;
} }
} }
if ($ult == 1) { if ($ult == 1) {
$chat = new Chat(); $chat = new Chat();
$cmsg = new ChatMessage(); $cmsg = new ChatMessage();
@ -6476,10 +6409,10 @@ LIMIT 1'
if ($u['hpNow'] < $st['hpAll'] || $u['mpNow'] < $st['mpAll']) { if ($u['hpNow'] < $st['hpAll'] || $u['mpNow'] < $st['mpAll']) {
Db::sql( Db::sql(
'update stats set 'update stats set
regHP = unix_timestamp(), reghp = unix_timestamp(),
regMP = unix_timestamp(), regmp = unix_timestamp(),
hpNow = ?, hpnow = ?,
mpNow = ? mpnow = ?
where id = ?', [$st['hpNow'], $st['mpNow'], $u['id']] where id = ?', [$st['hpNow'], $st['mpNow'], $u['id']]
); );
} }

View File

@ -73,7 +73,7 @@ class ItemsModel
return [ return [
'now' => Db::getValue('select sum(massa) from items_users left join items_main on item_id = items_main.id 'now' => Db::getValue('select sum(massa) from items_users left join items_main on item_id = items_main.id
where uid = ? and (`delete` = 0 or (`delete` = 1000 and inGroup > 0)) and inShop = 0 and inOdet = 0', [$uid]), where uid = ? and (`delete` = 0 or (`delete` = 1000 and inGroup > 0)) and inShop = 0 and inOdet = 0', [$uid]),
'max' => 40 + ($stats['os7'] * 10) + $stats['s4'] + $stats['maxves'] + $stats['s1'] * 4, 'max' => 40 + (($stats['os7'] ?? 0) * 10) + $stats['s4'] + $stats['maxves'] + $stats['s1'] * 4,
'items' => Db::getValue('select count(*) from items_users where uid = ? and `delete` = 0 and inShop = 0 and inOdet = 0', [$uid]), 'items' => Db::getValue('select count(*) from items_users where uid = ? and `delete` = 0 and inShop = 0 and inOdet = 0', [$uid]),
]; ];
} }

View File

@ -0,0 +1,23 @@
<?php
namespace User;
use Core\Config;
readonly final class Login
{
public string $fullLogin;
public function __construct(
int|string|null $align,
int|string|null $clanName,
int $level,
string $login
) {
$imgBase = Config::img() . DIRECTORY_SEPARATOR . 'i';
$alignStr = empty($align) ? '' : "<img src='$imgBase/align/align$align.gif' alt=''>";
$clanStr = empty($clanName) ? '' : "<img src='$imgBase/clan/$clanName.gif' alt='$clanName'>";
$spacedLogin = str_replace(' ', '%20', $login);
$loginLink = "<a href='/inf.php?login=$spacedLogin' target='_blank'><img src='$imgBase/inf.gif' title='Инф. о $login' alt='Инф. о $login'></a>";
$this->fullLogin = "$alignStr$clanStr<strong>$login</strong> [$level]$loginLink";
}
}

View File

@ -126,17 +126,18 @@ class Stats
public function getStats(int|array|null $uid = null, $i1 = 0, $reimg = false, $btl_cache = false): array public function getStats(int|array|null $uid = null, $i1 = 0, $reimg = false, $btl_cache = false): array
{ {
$u = match (true) { $u = match (true) {
empty($uid) => User::getInfo($this->u->info['id']), empty($uid) => $this->u->info,
is_array($uid) => $uid, is_array($uid) => $uid,
default => User::getInfo($uid), default => User::getInfo($uid),
}; };
if (!isset($u['id'])) { if (!isset($u['id'])) {
return []; return [];
} }
// Как? Нахуя 4 переменные разные для одного и того же? // Как? Нахуя 4 переменные разные для одного и того же?
$st = array_fill_keys($this->sysNames, 0); $st = array_fill_keys(array_keys($this->sysNames), 0);
$sti = $st; $sti = $st;
$s_v = $st; $s_v = $st;
$s_vi = $st; $s_vi = $st;
@ -168,9 +169,12 @@ class Stats
$st['items'] = []; $st['items'] = [];
$st['effects'] = []; $st['effects'] = [];
$st['vip'] = $u['vip']; $st['vip'] = $u['vip'];
foreach (Conversion::dataStringToArray($u['stats']) as $stat => $value) { foreach (Conversion::dataStringToArray($u['stats']) as $stat => $value) {
//fixme несуществующие статы mg5 mg6 a6 s8-s15
$this->addKeyIfNotExist($stat, (int)$value, $st); $this->addKeyIfNotExist($stat, (int)$value, $st);
} }
@ -282,13 +286,13 @@ class Stats
// мф.анти-уворот = 2.5 // мф.анти-уворот = 2.5
$st['m5'] += $st['s2'] * 5; $st['m5'] += $st['s2'] * 5;
$st['za'] += $st['s4'] * 1.0; $st['za'] += $st['s4'];
$st['m19'] += (int)($st['s3'] * 0.03);
$st['m19'] += round($st['s3'] * 0.03);
//Мощности
//Мощность против "Мощность крит. урона". Гамс
$st['antm3'] += $st['s5'] * 0.5;
//Бонусы комплектов //Бонусы комплектов
if (is_iterable($coms['new'])) { if (is_iterable($coms['new'])) {
@ -321,33 +325,19 @@ class Stats
//Бонусы статов //Бонусы статов
$this->addStatBonuses($st); $this->addStatBonuses($st);
//если второе оружие одето /* Владения */
if ($hnd2 == 1 && $hnd1 == 1) {
$st['zona']++;
}
if ($sht1 == 1) {
$st['zonb']++;
}/* Владения */
//mib1-mib4, mab1-mab4 armor?? //mib1-mib4, mab1-mab4 armor??
if (isset($st['s5'])) { if (!empty($st['s5'])) {
$st['pm1'] += $st['s5'] * 0.5; $st['pm1'] += (int)($st['s5'] * 0.5);
$st['pm2'] += $st['s5'] * 0.5; $st['pm2'] += (int)($st['s5'] * 0.5);
$st['pm3'] += $st['s5'] * 0.5; $st['pm3'] += (int)($st['s5'] * 0.5);
$st['pm4'] += $st['s5'] * 0.5; $st['pm4'] += (int)($st['s5'] * 0.5);
$st['pm7'] += $st['s5'] * 0.5; $st['pm7'] += (int)($st['s5'] * 0.5);
} }
if (isset($st['m11a'])) { if (!empty($st['aall'])) {
$st['pm1'] += $st['m11a'] * 0.5;
$st['pm2'] += $st['m11a'] * 0.5;
$st['pm3'] += $st['m11a'] * 0.5;
$st['pm4'] += $st['m11a'] * 0.5;
$st['pm7'] += $st['m11a'] * 0.5;
}
if (isset($st['aall'])) {
$st['a1'] += $st['aall']; $st['a1'] += $st['aall'];
$st['a2'] += $st['aall']; $st['a2'] += $st['aall'];
$st['a3'] += $st['aall']; $st['a3'] += $st['aall'];
@ -355,56 +345,35 @@ class Stats
$st['a5'] += $st['aall']; $st['a5'] += $st['aall'];
} }
if (isset($st['m2all'])) { if (!empty($st['zm'])) {
$st['mg1'] += $st['m2all'];
$st['mg2'] += $st['m2all'];
$st['mg3'] += $st['m2all'];
$st['mg4'] += $st['m2all'];
$st['mg7'] += $st['m2all'];
}
if (isset($st['zm'])) {
$st['zm1'] += $st['zm']; $st['zm1'] += $st['zm'];
$st['zm2'] += $st['zm']; $st['zm2'] += $st['zm'];
$st['zm3'] += $st['zm']; $st['zm3'] += $st['zm'];
$st['zm4'] += $st['zm']; $st['zm4'] += $st['zm'];
$st['zm5'] += $st['zm'];
$st['zm6'] += $st['zm'];
$st['zm7'] += $st['zm'];
} }
if (isset($st['zma'])) { if (!empty($st['mall'])) {
$st['zm1'] += $st['zma'];
$st['zm2'] += $st['zma'];
$st['zm3'] += $st['zma'];
$st['zm4'] += $st['zma'];
$st['zm5'] += $st['zma'];
$st['zm6'] += $st['zma'];
$st['zm7'] += $st['zma'];
}
if (isset($st['mall'])) {
$st['mg1'] += $st['mall']; $st['mg1'] += $st['mall'];
$st['mg2'] += $st['mall']; $st['mg2'] += $st['mall'];
$st['mg3'] += $st['mall']; $st['mg3'] += $st['mall'];
$st['mg4'] += $st['mall']; $st['mg4'] += $st['mall'];
} }
if (isset($st['m11'])) { if (!empty($st['m11'])) {
$st['pm1'] += $st['m11']; $st['pm1'] += $st['m11'];
$st['pm2'] += $st['m11']; $st['pm2'] += $st['m11'];
$st['pm3'] += $st['m11']; $st['pm3'] += $st['m11'];
$st['pm4'] += $st['m11']; $st['pm4'] += $st['m11'];
} }
if (isset($st['m10'])) { if (!empty($st['m10'])) {
$st['pa1'] += $st['m10']; $st['pa1'] += $st['m10'];
$st['pa2'] += $st['m10']; $st['pa2'] += $st['m10'];
$st['pa3'] += $st['m10']; $st['pa3'] += $st['m10'];
$st['pa4'] += $st['m10']; $st['pa4'] += $st['m10'];
} }
if (isset($st['za'])) { if (!empty($st['za'])) {
$st['za1'] += $st['za']; $st['za1'] += $st['za'];
$st['za2'] += $st['za']; $st['za2'] += $st['za'];
$st['za3'] += $st['za']; $st['za3'] += $st['za'];
@ -412,16 +381,16 @@ class Stats
} }
if (!empty($st['hpVinos'])) { if (!empty($st['hpVinos'])) {
$st['hpall'] += round($st['hpVinos'] * $st['s4']); $st['hpall'] += (int)($st['hpVinos'] * $st['s4']);
} }
if (!empty($st['mpVinos'])) { if (!empty($st['mpVinos'])) {
$st['mpall'] += round($st['mpVinos'] * $st['s6']); $st['mpall'] += (int)($st['mpVinos'] * $st['s6']);
} }
if (!empty($st['hpProc'])) { if (!empty($st['hpProc'])) {
$st['hpall'] += round($st['hpall'] / 100 * $st['hpProc']); $st['hpall'] += (int)($st['hpall'] / 100 * $st['hpProc']);
} }
if (!empty($st['mpProc'])) { if (!empty($st['mpProc'])) {
$st['mpall'] += round($st['mpall'] / 100 * $st['mpProc']); $st['mpall'] += (int)($st['mpall'] / 100 * $st['mpProc']);
} }
//Реген. - 250 ед. //Реген. - 250 ед.
@ -430,6 +399,15 @@ class Stats
$st['mpNow'] = Comparsion::minimax($st['mpNow'], 0, $st['mpall']); $st['mpNow'] = Comparsion::minimax($st['mpNow'], 0, $st['mpall']);
//зоны блока и удара //зоны блока и удара
//если второе оружие одето
if ($hnd2 == 1 && $hnd1 == 1) {
$st['zona']++;
}
if ($sht1 == 1) {
$st['zonb']++;
}
if ($st['zona'] < 1) { if ($st['zona'] < 1) {
$st['zona'] = 1; $st['zona'] = 1;
} }
@ -473,12 +451,9 @@ class Stats
$st['btl_cof'] = $st['prckr']; $st['btl_cof'] = $st['prckr'];
Db::sql('update stats set btl_cof = ? where id = ?', [$st['prckr'], $st['id']]); Db::sql('update stats set btl_cof = ? where id = ?', [$st['prckr'], $st['id']]);
} }
if ($st['hpall'] < 1) {
$st['hpall'] = 1; $st['hpall'] = max($st['hpall'], 1);
} $st['mpall'] = max($st['mpall'], 0);
if ($st['mpall'] < 0) {
$st['mpall'] = 0;
}
if (stristr($u['login'], '(зверь ') || (stristr($u['login'], 'Каменный страж') && $u['ip'] == '0')) { if (stristr($u['login'], '(зверь ') || (stristr($u['login'], 'Каменный страж') && $u['ip'] == '0')) {
$st['this_animal'] = 1; $st['this_animal'] = 1;
@ -495,8 +470,8 @@ class Stats
} else { } else {
$rt = $st; $rt = $st;
} }
if ($u['hpAll'] != $st['hpall'] || $u['mpAll'] != $st['mpall']) { if ($u['hpAll'] != $st['hpAll'] || $u['mpAll'] != $st['mpAll']) {
Db::sql('update stats set hpAll = ?, mpAll = ? where id = ?', [$st['hpall'], $st['mpall'], $u['id']]); Db::sql('update stats set hpAll = ?, mpAll = ? where id = ?', [$st['hpAll'], $st['mpAll'], $u['id']]);
} }
if ($btl_cache) { if ($btl_cache) {
$dataca = [ $dataca = [
@ -564,6 +539,7 @@ class Stats
5 => [70, 89,],//Великолепная 5 => [70, 89,],//Великолепная
]; ];
foreach ($wearedItems as $wearedItem) { foreach ($wearedItems as $wearedItem) {
$this->addKeyIfNotExist('wp' . $wearedItem['inOdet'] . 'id', $h, $st); $this->addKeyIfNotExist('wp' . $wearedItem['inOdet'] . 'id', $h, $st);
@ -591,48 +567,37 @@ class Stats
$this->addKeyIfNotExist('reting', 1, $st); $this->addKeyIfNotExist('reting', 1, $st);
} }
if (isset($data['add_oza'])) { # Пришлось зацикливать, уж больно однотипное.
$oza = array_fill_keys($oza, $ozaozmtypes[$data['add_oza']]); # oza[X][0,1] = add_ozaX[0,1] + add_oza[0,1]
} # ozm[X][0,1] = add_ozmX[0,1] + add_ozm[0,1]
for ($i = 1; $i <= 4; $i++) {
if (!isset($data["add_oza$i"])) {
continue;
}
if (isset($data['add_ozm'])) { if (isset($data['add_oza']) && in_array($data['add_oza'], range(1, 5))) {
$ozm = array_fill_keys($ozm, $ozaozmtypes[$data['add_ozm']]); $oza[$i][0] += $ozaozmtypes[$data['add_oza']][0];
} else { $oza[$i][1] += $ozaozmtypes[$data['add_oza']][1];
$ozm = array_fill_keys($ozm, $ozaozmtypes[1]); }
} if (isset($data['add_ozm']) && in_array($data['add_ozm'], range(1, 5))) {
$ozm[$i][0] += $ozaozmtypes[$data['add_ozm']][0];
$ozm[$i][1] += $ozaozmtypes[$data['add_ozm']][1];
} else {
$ozm[$i][0] += $ozaozmtypes[1][0];
$ozm[$i][1] += $ozaozmtypes[1][1];
}
if (in_array($data['add_oza1'], range(1, 5))) { if (in_array($data["add_oza$i"], range(1, 5))) {
$oza[1] = $ozaozmtypes[$data['add_oza1']]; $oza[$i][0] += $ozaozmtypes[$data["add_oza$i"]][0];
} $oza[$i][1] += $ozaozmtypes[$data["add_oza$i"]][1];
if (in_array($data['add_oza2'], range(1, 5))) { }
$oza[2] = $ozaozmtypes[$data['add_oza2']]; if (isset($data["add_ozm$i"]) && in_array($data["add_ozm$i"], range(1, 5))) {
} $ozm[$i][0] += $ozaozmtypes[$data["add_ozm$i"]][0];
if (in_array($data['add_oza3'], range(1, 5))) { $ozm[$i][1] += $ozaozmtypes[$data["add_ozm$i"]][1];
$oza[3] = $ozaozmtypes[$data['add_oza3']]; } else {
} $ozm[$i][0] += $ozaozmtypes[1][0];
if (in_array($data['add_oza4'], range(1, 5))) { $ozm[$i][1] += $ozaozmtypes[1][1];
$oza[4] = $ozaozmtypes[$data['add_oza4']]; }
}
if (in_array($data['add_ozm1'], range(1, 5))) {
$ozm[1] = $ozaozmtypes[$data['add_ozm1']];
} else {
$ozm[1] = $ozaozmtypes[1];
}
if (in_array($data['add_ozm2'], range(1, 5))) {
$ozm[2] = $ozaozmtypes[$data['add_ozm2']];
} else {
$ozm[2] = $ozaozmtypes[1];
}
if (in_array($data['add_ozm3'], range(1, 5))) {
$ozm[3] = $ozaozmtypes[$data['add_ozm3']];
} else {
$ozm[3] = $ozaozmtypes[1];
}
if (in_array($data['add_ozm4'], range(1, 5))) {
$ozm[4] = $ozaozmtypes[$data['add_ozm4']];
} else {
$ozm[4] = $ozaozmtypes[1];
} }
if (isset($data['art'])) { if (isset($data['art'])) {
@ -1167,7 +1132,11 @@ class Stats
); );
//Бонус за количество полностью вырытых пещер. //Бонус за количество полностью вырытых пещер.
$st['m10'] += 10 * $finishedDungeons; if (isset($st['m10'])) {
$st['m10'] += 10 * $finishedDungeons;
} else {
$st['m10'] = 10 * $finishedDungeons;
}
} }
private function addAdminBonuses(array $u, array &$st): void private function addAdminBonuses(array $u, array &$st): void
@ -1197,11 +1166,22 @@ class Stats
*/ */
private function renameArrayKeys(array &$st): void private function renameArrayKeys(array &$st): void
{ {
$st['lvl'] = $st['level']; if (isset($st['level'])) {
$st['hpNow'] = $st['hpnow']; $st['lvl'] = $st['level'];
$st['mpNow'] = $st['mpnow']; }
if (isset($st['hpall'])) {
unset($st['level'], $st['hpnow'], $st['mpnow']); $st['hpAll'] = $st['hpall'];
}
if (isset($st['mpall'])) {
$st['mpAll'] = $st['mpall'];
}
if (isset($st['hpnow'])) {
$st['hpNow'] = $st['hpnow'];
}
if (isset($st['mpnow'])) {
$st['mpNow'] = $st['mpnow'];
}
unset($st['level'], $st['hpnow'], $st['mpnow'], $st['hpall'], $st['mpall']);
} }
public static function saveBattleStats(array $stats, int $id): void public static function saveBattleStats(array $stats, int $id): void

View File

@ -107,7 +107,7 @@ $pvr = array();
} }
// //
$pvr['x5']['priem']['id'] = $pvr['x5']['v2']; $pvr['x5']['priem']['id'] = $pvr['x5']['v2'];
$btl->delPriem($pvr['x5'],$btl->users[$btl->uids[$this->ue['id']]],2); $btl->delPriem($pvr['x5'], $btl->users[$btl->uids[$this->ue['id']]], 2);
// //
//Добавляем прием //Добавляем прием

View File

@ -107,7 +107,7 @@ $pvr = array();
} }
// //
$pvr['x5']['priem']['id'] = $pvr['x5']['v2']; $pvr['x5']['priem']['id'] = $pvr['x5']['v2'];
$btl->delPriem($pvr['x5'],$btl->users[$btl->uids[$this->ue['id']]],2); $btl->delPriem($pvr['x5'], $btl->users[$btl->uids[$this->ue['id']]], 2);
// //
//Добавляем прием //Добавляем прием

View File

@ -107,7 +107,7 @@ $pvr = array();
} }
// //
$pvr['x5']['priem']['id'] = $pvr['x5']['v2']; $pvr['x5']['priem']['id'] = $pvr['x5']['v2'];
$btl->delPriem($pvr['x5'],$btl->users[$btl->uids[$this->ue['id']]],2); $btl->delPriem($pvr['x5'], $btl->users[$btl->uids[$this->ue['id']]], 2);
// //
//Добавляем прием //Добавляем прием

View File

@ -1,6 +1,6 @@
<?php <?php
if(!defined('GAME')) { if (!defined('GAME')) {
die(); die();
} }
/* /*
Прием: Магический барьер [4] Прием: Магический барьер [4]
@ -8,136 +8,150 @@ if(!defined('GAME')) {
Цена: 2 маны - 1 ед. Цена: 2 маны - 1 ед.
Процент поглощения: 50% Процент поглощения: 50%
*/ */
$pvr = array(); $pvr = [];
//Действие при клике //Действие при клике
if( isset($pr_momental_this)) { if (isset($pr_momental_this)) {
$fx_moment = function( $uid, $enemy, $j_id, $yron, $profil ) { $fx_moment = function ($uid, $enemy, $j_id, $yron, $profil) {
if(!isset($btl->stats[$btl->uids[$uid]]['um_priem'][$j_id])) { if (!isset($btl->stats[$btl->uids[$uid]]['um_priem'][$j_id])) {
global $u, $btl; global $u, $btl;
$prv['j_priem'] = $btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][0]; $prv['j_priem'] = $btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][0];
$prv['priem_th'] = $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id']; $prv['priem_th'] = $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id'];
$yron = $btl->testPogB($uid,$yron,$btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id']); $yron = $btl->testPogB($uid, $yron, $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id']);
$btl->testPogB($uid,1,$btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id'],1); $btl->testPogB($uid, 1, $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id'], 1);
//$btl->stats[$btl->uids[$uid]]['um_priem'][$j_id] //$btl->stats[$btl->uids[$uid]]['um_priem'][$j_id]
/*$btl->priemAddLogFast( $uid, 0, "Призрачная защита", /*$btl->priemAddLogFast( $uid, 0, "Призрачная защита",
'{tm1} '.$btl->addlt(1 , 17 , $btl->users[$btl->uids[$uid]]['sex'] , NULL).'', '{tm1} '.$btl->addlt(1 , 17 , $btl->users[$btl->uids[$uid]]['sex'] , NULL).'',
0, time() );*/ 0, time() );*/
if( $yron < 0 ) { if ($yron < 0) {
$yron = 0; $yron = 0;
} }
$btl->stats[$btl->uids[$uid]]['um_priem'][$j_id] = true; $btl->stats[$btl->uids[$uid]]['um_priem'][$j_id] = true;
} }
return round($yron); return round($yron);
}; };
}elseif( isset($pr_tested_this) ) { } elseif (isset($pr_tested_this)) {
$fx_priem = function( $id , $at , $uid, $j_id ) { $fx_priem = function ($id, $at, $uid, $j_id) {
// -- начало приема // -- начало приема
global $u, $btl; global $u, $btl;
// //
//Параметры приема //Параметры приема
$pvr['used'] = 0; $pvr['used'] = 0;
// //
$uid1 = $btl->atacks[$id]['uid1']; $uid1 = $btl->atacks[$id]['uid1'];
$uid2 = $btl->atacks[$id]['uid2']; $uid2 = $btl->atacks[$id]['uid2'];
if( $uid == $uid2 ) { if ($uid == $uid2) {
$a = 1; $a = 1;
$b = 2; $b = 2;
$u1 = $uid1; $u1 = $uid1;
$u2 = $uid2; $u2 = $uid2;
}elseif( $uid == $uid1 ) { } elseif ($uid == $uid1) {
$a = 2; $a = 2;
$b = 1; $b = 1;
$u1 = $uid2; $u1 = $uid2;
$u2 = $uid1; $u2 = $uid1;
} }
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]); // -- конец приема
} return $at;
// };
// -- конец приема unset($pr_used_this);
return $at; } elseif (isset($pr_used_this)) {
}; $fx_priem = function ($id, $at, $uid, $j_id) {
unset( $pr_used_this ); // -- начало приема
}elseif( isset($pr_used_this) ) { global $u, $btl;
$fx_priem = function( $id , $at , $uid, $j_id ) { //
// -- начало приема //Параметры приема
global $u, $btl; $pvr['used'] = 0;
// //
//Параметры приема $uid1 = $btl->atacks[$id]['uid1'];
$pvr['used'] = 0; $uid2 = $btl->atacks[$id]['uid2'];
// if ($uid == $uid2) {
$uid1 = $btl->atacks[$id]['uid1']; $a = 1;
$uid2 = $btl->atacks[$id]['uid2']; $b = 2;
if( $uid == $uid2 ) { $u1 = $uid1;
$a = 1; $u2 = $uid2;
$b = 2; } elseif ($uid == $uid1) {
$u1 = $uid1; $a = 2;
$u2 = $uid2; $b = 1;
}elseif( $uid == $uid1 ) { $u1 = $uid2;
$a = 2; $u2 = $uid1;
$b = 1; }
$u1 = $uid2; if ($a > 0) {
$u2 = $uid1; $j = 0;
} $k = 0;
if( $a > 0 ) { $wp = 3;
$j = 0; $k = 0; $wp = 3; $checktuman = mysql_fetch_array(
$checktuman=mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid` = "'.$uid.'" mysql_query(
'SELECT * FROM `eff_users` WHERE `uid` = "' . $uid . '"
AND (`v2` = 273 OR `v2` = 286 OR `v2` = 287 OR `v2` = 288) AND (`v2` = 273 OR `v2` = 286 OR `v2` = 287 OR `v2` = 288)
AND `delete` =0 LIMIT 1')); //проверка на туманный образ AND `delete` =0 LIMIT 1'
if(!isset($checktuman['id'])) )
{ ); //проверка на туманный образ
while($j < count($at['p'][$a]['atack'])) { if (!isset($checktuman['id'])) {
if( isset($at['p'][$a]['atack'][$j]['yron']) && ( while ($j < count($at['p'][$a]['atack'])) {
$at['p'][$a]['atack'][$j][1] == 1 || if (isset($at['p'][$a]['atack'][$j]['yron']) && (
$at['p'][$a]['atack'][$j][1] == 4 || $at['p'][$a]['atack'][$j][1] == 1 ||
$at['p'][$a]['atack'][$j][1] == 5 )) { $at['p'][$a]['atack'][$j][1] == 4 ||
//if( !isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) { $at['p'][$a]['atack'][$j][1] == 5)) {
// //if( !isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) {
$prv['j_priem'] = $btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][0]; //
$prv['priem_th'] = $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id']; $prv['j_priem'] = $btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][0];
// $prv['priem_th'] = $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id'];
$attest = round($btl->testPogB($uid,$at['p'][$a]['atack'][$j]['yron']['y'],$btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id'])); //
if( $at['p'][$a]['atack'][$j]['yron']['y'] < 1 ) { $at['p'][$a]['atack'][$j]['yron']['y'] = 0; } $attest = round($btl->testPogB($uid, $at['p'][$a]['atack'][$j]['yron']['y'], $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id']));
if ($at['p'][$a]['atack'][$j]['yron']['y'] < 1) {
$at['p'][$a]['atack'][$j]['yron']['y'] = 0;
}
$at['p'][$a]['atack'][$j]['yron']['y'] = round($at['p'][$a]['atack'][$j]['yron']['y']/2); $at['p'][$a]['atack'][$j]['yron']['y'] = round($at['p'][$a]['atack'][$j]['yron']['y'] / 2);
$at['p'][$a]['atack'][$j]['yron']['r'] = round($at['p'][$a]['atack'][$j]['yron']['r']/2); $at['p'][$a]['atack'][$j]['yron']['r'] = round($at['p'][$a]['atack'][$j]['yron']['r'] / 2);
$at['p'][$a]['atack'][$j]['yron']['k'] = round($at['p'][$a]['atack'][$j]['yron']['k']/2); $at['p'][$a]['atack'][$j]['yron']['k'] = round($at['p'][$a]['atack'][$j]['yron']['k'] / 2);
$at['p'][$a]['atack'][$j]['yron']['m_k'] = round($at['p'][$a]['atack'][$j]['yron']['m_k']1.2); $at['p'][$a]['atack'][$j]['yron']['m_k'] = round($at['p'][$a]['atack'][$j]['yron']['m_k'] / 1.2);
$at['p'][$a]['atack'][$j]['yron']['m_y'] = round($at['p'][$a]['atack'][$j]['yron']['m_y']/2); $at['p'][$a]['atack'][$j]['yron']['m_y'] = round($at['p'][$a]['atack'][$j]['yron']['m_y'] / 2);
if( $at['p'][$a]['atack'][$j]['yron']['y'] < 1 ) { $at['p'][$a]['atack'][$j]['yron']['y'] = 1; } if ($at['p'][$a]['atack'][$j]['yron']['y'] < 1) {
if( $at['p'][$a]['atack'][$j]['yron']['r'] >= 0 ) { $at['p'][$a]['atack'][$j]['yron']['r'] = -1; } $at['p'][$a]['atack'][$j]['yron']['y'] = 1;
if( $at['p'][$a]['atack'][$j]['yron']['k'] < 1 ) { $at['p'][$a]['atack'][$j]['yron']['k'] = 1; } }
if( $at['p'][$a]['atack'][$j]['yron']['m_k'] < 1 ) { $at['p'][$a]['atack'][$j]['yron']['m_k'] = 1; } if ($at['p'][$a]['atack'][$j]['yron']['r'] >= 0) {
if( $at['p'][$a]['atack'][$j]['yron']['m_y'] < 1 ) { $at['p'][$a]['atack'][$j]['yron']['m_y'] = 1; } $at['p'][$a]['atack'][$j]['yron']['r'] = -1;
// }
$at['p'][$a]['atack'][$j]['yron']['used'][] = array($j_id,$uid,$pvr['used']); if ($at['p'][$a]['atack'][$j]['yron']['k'] < 1) {
$at['p'][$a]['atack'][$j]['yron']['kill'][] = array($j_id,$uid,$pvr['kill']); $at['p'][$a]['atack'][$j]['yron']['k'] = 1;
// }
$at['p'][$a]['priems']['kill'][$uid][$j_id] = true; if ($at['p'][$a]['atack'][$j]['yron']['m_k'] < 1) {
//} $at['p'][$a]['atack'][$j]['yron']['m_k'] = 1;
} }
$j++; if ($at['p'][$a]['atack'][$j]['yron']['m_y'] < 1) {
} $at['p'][$a]['atack'][$j]['yron']['m_y'] = 1;
} }
} //
// -- конец приема $at['p'][$a]['atack'][$j]['yron']['used'][] = [$j_id, $uid, $pvr['used']];
return $at; $at['p'][$a]['atack'][$j]['yron']['kill'][] = [$j_id, $uid, $pvr['kill']];
}; //
unset( $pr_used_this ); $at['p'][$a]['priems']['kill'][$uid][$j_id] = true;
}else{ //}
//Действие при клике }
$btl->priemAddLog( $id, 1, 2, $u->info['id'], $u->info['enemy'], $j++;
'Магический Барьер [4]', }
'{tm1} '.$btl->addlt(1 , 21 , $btl->users[$btl->uids[$u->info['id']]]['sex'] , NULL).'', }
($btl->hodID+1) }
); // -- конец приема
echo '<font color=red><b>Вы успешно использовали прием &quot;Магический Барьер [4]&quot;</b></font>'; return $at;
$this->addEffPr($pl,$id); };
unset($pr_used_this);
} else {
//Действие при клике
$btl->priemAddLog(
$id, 1, 2, $u->info['id'], $u->info['enemy'],
'Магический Барьер [4]',
'{tm1} ' . $btl->addlt(1, 21, $btl->users[$btl->uids[$u->info['id']]]['sex'], null) . '',
($btl->hodID + 1)
);
echo '<font color=red><b>Вы успешно использовали прием &quot;Магический Барьер [4]&quot;</b></font>';
$this->addEffPr($pl, $id);
} }
unset($pvr); unset($pvr);
?>

View File

@ -1,115 +1,104 @@
<?php <?php
if(!defined('GAME')) { if (!defined('GAME')) {
die(); die();
} }
/* /*
Прием: Скрытая ловкость Прием: Скрытая ловкость
Уворот от 1-го удара и наносите контрудар Уворот от 1-го удара и наносите контрудар
*/ */
$pvr = array(); $pvr = [];
if( isset($pr_tested_this) ) { if (isset($pr_tested_this)) {
$fx_priem = function( $id , $at , $uid, $j_id ) { $fx_priem = function ($id, $at, $uid, $j_id) {
// -- начало приема // -- начало приема
global $u, $btl; global $u, $btl;
// //
//Параметры приема //Параметры приема
$pvr['used'] = 0; $pvr['used'] = 0;
// //
$uid1 = $btl->atacks[$id]['uid1']; $uid1 = $btl->atacks[$id]['uid1'];
$uid2 = $btl->atacks[$id]['uid2']; $uid2 = $btl->atacks[$id]['uid2'];
if( $uid == $uid2 ) { if ($uid == $uid2) {
$a = 1; $a = 1;
$b = 2; $b = 2;
$u1 = $uid1; $u1 = $uid1;
$u2 = $uid2; $u2 = $uid2;
}elseif( $uid == $uid1 ) { } elseif ($uid == $uid1) {
$a = 2; $a = 2;
$b = 1; $b = 1;
$u1 = $uid2; $u1 = $uid2;
$u2 = $uid1; $u2 = $uid1;
} }
if( isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) { 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'); 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]); unset($btl->stats[$btl->uids[$uid]]['u_priem'][$j_id]);
} }
// //
// -- конец приема // -- конец приема
return $at; return $at;
}; };
unset( $pr_used_this ); unset($pr_used_this);
}elseif( isset($pr_used_this) ) { } elseif (isset($pr_used_this)) {
$fx_priem = function( $id , $at , $uid, $j_id ) { $fx_priem = function ($id, $at, $uid, $j_id) {
// -- начало приема // -- начало приема
global $u, $btl; global $u, $btl;
// //
//Параметры приема //Параметры приема
$pvr['used'] = 0; $pvr['used'] = 0;
// //
$uid1 = $btl->atacks[$id]['uid1']; $uid1 = $btl->atacks[$id]['uid1'];
$uid2 = $btl->atacks[$id]['uid2']; $uid2 = $btl->atacks[$id]['uid2'];
if( $uid == $uid2 ) { if ($uid == $uid2) {
$a = 1; $a = 1;
$b = 2; $b = 2;
$u1 = $uid1; $u1 = $uid1;
$u2 = $uid2; $u2 = $uid2;
}elseif( $uid == $uid1 ) { } elseif ($uid == $uid1) {
$a = 2; $a = 2;
$b = 1; $b = 1;
$u1 = $uid2; $u1 = $uid2;
$u2 = $uid1; $u2 = $uid1;
} }
if( $a > 0 ) { if ($a > 0) {
$j = 0; $k = 0; $wp = 3; $j = 0;
while($j < count($at['p'][$a]['atack'])) { $k = 0;
if( $wp = 3;
!isset($at['p'][$a]['atack'][$j]['priem_used']) && while ($j < count($at['p'][$a]['atack'])) {
( $at['p'][$a]['atack'][$j][1] > 0 ) if (
){ !isset($at['p'][$a]['atack'][$j]['priem_used']) &&
if(/* $btl->stats[$btl->uids[$u1]]['nopryh_act'] < 1 хуй знает для чего &&*/ $pvr['used'] == 0 && !isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) { ($at['p'][$a]['atack'][$j][1] > 0)
// ) {
//Уворот от удара выставляем if (/* $btl->stats[$btl->uids[$u1]]['nopryh_act'] < 1 хуй знает для чего &&*/ $pvr['used'] == 0 && !isset($at['p'][$a]['priems']['kill'][$uid][$j_id])) {
unset($at['p'][$a]['atack'][$j]['yron']); //
$at['p'][$a]['atack'][$j][1] = 8; //Уворот от удара выставляем
$pvr['rnd_a'] = rand(1,5); unset($at['p'][$a]['atack'][$j]['yron']);
if( $btl->testRazmenblock1($id,$u2,$u1,$pvr['rnd_a']) == false ) { $at['p'][$a]['atack'][$j][1] = 8;
//Попал $pvr['rnd_a'] = rand(1, 5);
$at['p'][$b]['atack'][] = array( $pvr['rnd_a'] , 1 , 0 , 1 ); // 1 1 1 if (!$btl->testRazmenblock1($id, $u2, $u1)) {
}else{ //Попал
//В блок $at['p'][$b]['atack'][] = [$pvr['rnd_a'], 1, 0, 1]; // 1 1 1
$at['p'][$b]['atack'][] = array( $pvr['rnd_a'] , 3 , 0 , 1 ); // 2 1 1 } else {
} //В блок
//$at = $btl->contrRestart($id,$at,true); $at['p'][$b]['atack'][] = [$pvr['rnd_a'], 3, 0, 1]; // 2 1 1
//$at = $btl->priemsTestRazmen($id,$at); }
// $at['p'][$a]['atack'][$j]['yron']['used'][] = [$j_id, $uid, $pvr['used']];
/*$at['p'][$a]['atack'][$j]['yron']['plog'][] = '$this->deleffm(215,'.(0+$uid).','.$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3].'); $at['p'][$a]['atack'][$j]['yron']['kill'][] = [$j_id, $uid, $pvr['kill']];
$this->priemAddLog( '.$id.', '.$b.', '.$a.', '.$u2.', '.$u1.', $at['p'][$a]['priems']['kill'][$uid][$j_id] = true;
"Скрытая ловкость", $at['p'][$a]['atack'][$j]['priem_used'] = $id;
"{tm1} '.$btl->addlt($b , 17 , $btl->users[$btl->uids[$u2]]['sex'] , NULL).'", if (!$btl->testRazmenblock1($id, $u2, $u1)) {
'.($btl->hodID + 1).' );';*/ $at = $this->yronRazmen($id, $at, true);
// }
$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; $j++;
$at['p'][$a]['atack'][$j]['priem_used'] = $id; }
// }
if( $btl->testRazmenblock1($id,$u2,$u1,$pvr['rnd_a']) == false ) { // -- конец приема
$at = $this->yronRazmen($id,$at,true); return $at;
} };
// unset($pr_used_this);
} } else {
// //Действие при клике
} $this->addEffPr($pl, $id);
$j++;
}
}
// -- конец приема
return $at;
};
unset( $pr_used_this );
}else{
//Действие при клике
$this->addEffPr($pl,$id);
} }
unset($pvr); unset($pvr);
?>

View File

@ -114,7 +114,7 @@ if( isset($pr_tested_this) ) {
}else{mysql_query('UPDATE `eff_users` SET `uid` = "'.$u1.'" WHERE `id` = "'.$pvr['pl']['id'].'" LIMIT 1');}*/ }else{mysql_query('UPDATE `eff_users` SET `uid` = "'.$u1.'" WHERE `id` = "'.$pvr['pl']['id'].'" LIMIT 1');}*/
$btl->delPriem($pvr['pl'],$btl->users[$btl->uids[$u2]],100,0,$pvr['pl']['name']); $btl->delPriem($pvr['pl'], $btl->users[$btl->uids[$u2]], 100, 0, $pvr['pl']['name']);
//$this->addPriem($u1,$pvr['pl']['priem']['id'],''.$pvr['pl']['priem']['data2'].'',''.$pvr['pl']['priem']['data3'].'',77,5,$u1,1,''.$pvr['pl']['priem']['name'].'',0,0,1); //$this->addPriem($u1,$pvr['pl']['priem']['id'],''.$pvr['pl']['priem']['data2'].'',''.$pvr['pl']['priem']['data3'].'',77,5,$u1,1,''.$pvr['pl']['priem']['name'].'',0,0,1);

View File

@ -119,7 +119,7 @@ if( isset($pr_used_this) && isset($pr_moment) ) {
($btl->hodID) ($btl->hodID)
); );
// спасение // спасение
$btl->spaCheck($u1]); $btl->spaCheck($u1);
// спасение // спасение
} }
// -- конец приема // -- конец приема

View File

@ -158,7 +158,7 @@ if( isset($pr_used_this) && isset($pr_moment) ) {
($btl->hodID) ($btl->hodID)
); );
// спасение // спасение
$btl->spaCheck($u1]); $btl->spaCheck($u1);
// спасение // спасение
$pvr['ijk']++; $pvr['ijk']++;
} }

View File

@ -161,7 +161,7 @@ if( isset($pr_used_this) && isset($pr_moment) ) {
($btl->hodID) ($btl->hodID)
); );
// спасение // спасение
$btl->spaCheck($u1]); $btl->spaCheck($u1);
// спасение // спасение
// //

View File

@ -35,7 +35,7 @@ if( isset($pr_used_this) && isset($pr_moment) ) {
$prv['priem_th'] = $btl->stats[$btl->uids[$u1]]['effects'][$prv['j_priem']]['id']; $prv['priem_th'] = $btl->stats[$btl->uids[$u1]]['effects'][$prv['j_priem']]['id'];
//действия //действия
$pvr['hp'] = 20); $pvr['hp'] = 20;
$pvr['hp'] = $priem->magatack( $btl->stats[$btl->uids[$u1]]['effects'][$prv['j_priem']]['user_use'], $u1, $pvr['hp'], 'тьма', 1 ); $pvr['hp'] = $priem->magatack( $btl->stats[$btl->uids[$u1]]['effects'][$prv['j_priem']]['user_use'], $u1, $pvr['hp'], 'тьма', 1 );
$pvr['promah_type'] = $pvr['hp'][3]; $pvr['promah_type'] = $pvr['hp'][3];
$pvr['promah'] = $pvr['hp'][2]; $pvr['promah'] = $pvr['hp'][2];
@ -57,7 +57,7 @@ if( isset($pr_used_this) && isset($pr_moment) ) {
} }
// //
$pvr['hp'] = 20; $pvr['hp'] = 20;
$pvr['hp'] = $btl->testYronPriem( $btl->stats[$btl->uids[$rand_user]]['effects'][$prv['j_priem']]['user_use'], $rand_user, 12, $pvr['hp'], -1, true , false , 0); $pvr['hp'] = $btl->testYronPriem( $btl->stats[$btl->uids[$rand_user[array_rand($rand_user)]]]['effects'][$prv['j_priem']]['user_use'], $rand_user, 12, $pvr['hp'], -1, true , false , 0);
// //
$pvr['rndu']['id'] = $rand_user; $pvr['rndu']['id'] = $rand_user;
$pvr['color'] = '006699'; $pvr['color'] = '006699';

View File

@ -1,115 +1,112 @@
<?php <?php
if(!defined('GAME')) { if (!defined('GAME')) {
die(); die();
} }
/* /*
Прием: Танец лезвий Прием: Танец лезвий
Уворот от 1-го удара и наносите контрудар Уворот от 1-го удара и наносите контрудар
*/ */
$pvr = array(); $pvr = [];
if( isset($pr_tested_this) ) { if (isset($pr_tested_this)) {
$fx_priem = function( $id , $at , $uid, $j_id ) { $fx_priem = function ($id, $at, $uid, $j_id) {
// -- начало приема // -- начало приема
global $u, $btl; global $u, $btl;
// //
//Параметры приема //Параметры приема
$pvr['used'] = 0; $pvr['used'] = 0;
// //
$uid1 = $btl->atacks[$id]['uid1']; $uid1 = $btl->atacks[$id]['uid1'];
$uid2 = $btl->atacks[$id]['uid2']; $uid2 = $btl->atacks[$id]['uid2'];
if( $uid == $uid2 ) { if ($uid == $uid2) {
$a = 1; $a = 1;
$b = 2; $b = 2;
$u1 = $uid1; $u1 = $uid1;
$u2 = $uid2; $u2 = $uid2;
}elseif( $uid == $uid1 ) { } elseif ($uid == $uid1) {
$a = 2; $a = 2;
$b = 1; $b = 1;
$u1 = $uid2; $u1 = $uid2;
$u2 = $uid1; $u2 = $uid1;
} }
if( isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) { 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'); 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]); unset($btl->stats[$btl->uids[$uid]]['u_priem'][$j_id]);
} }
// //
// -- конец приема // -- конец приема
return $at; return $at;
}; };
unset( $pr_used_this ); unset($pr_used_this);
}elseif( isset($pr_used_this) ) { } elseif (isset($pr_used_this)) {
$fx_priem = function( $id , $at , $uid, $j_id ) { $fx_priem = function ($id, $at, $uid, $j_id) {
// -- начало приема // -- начало приема
global $u, $btl; global $u, $btl;
// //
//Параметры приема //Параметры приема
$pvr['used'] = 0; $pvr['used'] = 0;
// //
$uid1 = $btl->atacks[$id]['uid1']; $uid1 = $btl->atacks[$id]['uid1'];
$uid2 = $btl->atacks[$id]['uid2']; $uid2 = $btl->atacks[$id]['uid2'];
if( $uid == $uid2 ) { if ($uid == $uid2) {
$a = 1; $a = 1;
$b = 2; $b = 2;
$u1 = $uid1; $u1 = $uid1;
$u2 = $uid2; $u2 = $uid2;
}elseif( $uid == $uid1 ) { } elseif ($uid == $uid1) {
$a = 2; $a = 2;
$b = 1; $b = 1;
$u1 = $uid2; $u1 = $uid2;
$u2 = $uid1; $u2 = $uid1;
} }
if( $a > 0 ) { if ($a > 0) {
$j = 0; $k = 0; $wp = 3; $j = 0;
while($j < count($at['p'][$a]['atack'])) { $k = 0;
if( $wp = 3;
!isset($at['p'][$a]['atack'][$j]['priem_used']) && while ($j < count($at['p'][$a]['atack'])) {
( $at['p'][$a]['atack'][$j][1] > 0 ) if (
) { !isset($at['p'][$a]['atack'][$j]['priem_used']) &&
if(/* $btl->stats[$btl->uids[$u1]]['nopryh_act'] < 1 хуй знает для чего &&*/ $pvr['used'] == 0 && !isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) { ($at['p'][$a]['atack'][$j][1] > 0)
// ) {
//Уворот от удара выставляем if ($btl->stats[$btl->uids[$u1]]['nopryh_act'] < 1 && $pvr['used'] == 0 && !isset($at['p'][$a]['priems']['kill'][$uid][$j_id])) {
unset($at['p'][$a]['atack'][$j]['yron']); //
$at['p'][$a]['atack'][$j][1] = 8; //Уворот от удара выставляем
$pvr['rnd_a'] = rand(1,5); unset($at['p'][$a]['atack'][$j]['yron']);
if( $btl->testRazmenblock1($id,$u2,$u1,$pvr['rnd_a']) == false ) { $at['p'][$a]['atack'][$j][1] = 8;
//Попал $pvr['rnd_a'] = rand(1, 5);
$at['p'][$b]['atack'][] = array( $pvr['rnd_a'] , 1 , 0 , 1 ); if (!$btl->testRazmenblock1($id, $u2, $u1)) {
}else{ //Попал
//В блок $at['p'][$b]['atack'][] = [$pvr['rnd_a'], 1, 0, 1];
$at['p'][$b]['atack'][] = array( $pvr['rnd_a'] , 3 , 0 , 1 ); } else {
} //В блок
//$at = $btl->contrRestart($id,$at,true); $at['p'][$b]['atack'][] = [$pvr['rnd_a'], 3, 0, 1];
//$at = $btl->priemsTestRazmen($id,$at); }
// $at['p'][$a]['atack'][$j]['yron']['plog'][] = '$this->deleffm(48,' . (0 + $uid) . ',' . $btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3] . ');
$at['p'][$a]['atack'][$j]['yron']['plog'][] = '$this->deleffm(48,'.(0+$uid).','.$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3].'); $this->priemAddLog( ' . $id . ', ' . $b . ', ' . $a . ', ' . $u2 . ', ' . $u1 . ',
$this->priemAddLog( '.$id.', '.$b.', '.$a.', '.$u2.', '.$u1.',
"Танец лезвий", "Танец лезвий",
"{tm1} '.$btl->addlt($b , 17 , $btl->users[$btl->uids[$u2]]['sex'] , NULL).'", "{tm1} ' . $btl->addlt($b, 17, $btl->users[$btl->uids[$u2]]['sex'], null) . '",
'.($btl->hodID + 1).' );'; ' . ($btl->hodID + 1) . ' );';
// $at['p'][$a]['atack'][$j]['yron']['used'][] = [$j_id, $uid, $pvr['used']];
$at['p'][$a]['atack'][$j]['yron']['used'][] = array($j_id,$uid,$pvr['used']); $at['p'][$a]['atack'][$j]['yron']['kill'][] = [$j_id, $uid, $pvr['kill']];
$at['p'][$a]['atack'][$j]['yron']['kill'][] = array($j_id,$uid,$pvr['kill']); //
// $at['p'][$a]['priems']['kill'][$uid][$j_id] = true;
$at['p'][$a]['priems']['kill'][$uid][$j_id] = true; $at['p'][$a]['atack'][$j]['priem_used'] = $id;
$at['p'][$a]['atack'][$j]['priem_used'] = $id; //
// if (!$btl->testRazmenblock1($id, $u2, $u1)) {
if( $btl->testRazmenblock1($id,$u2,$u1,$pvr['rnd_a']) == false ) { $at = $this->yronRazmen($id, $at, true);
$at = $this->yronRazmen($id,$at,true); }
} //
// }
} //
// }
} $j++;
$j++; }
} }
} // -- конец приема
// -- конец приема return $at;
return $at; };
}; unset($pr_used_this);
unset( $pr_used_this ); } else {
}else{ //Действие при клике
//Действие при клике $this->addEffPr($pl, $id);
$this->addEffPr($pl,$id);
} }
unset($pvr); unset($pvr);
?>

View File

@ -95,7 +95,7 @@ if(isset($hod))
if($this->minMana($eff['user_use'],$minmp,4)==false) if($this->minMana($eff['user_use'],$minmp,4)==false)
{ {
//снимаем эффект, мана закончилась //снимаем эффект, мана закончилась
$btl->delPriem($eff,$btl->users[$btl->uids[$eff['uid']]],2); $btl->delPriem($eff, $btl->users[$btl->uids[$eff['uid']]], 2);
} }
} }
}else{ }else{
@ -236,7 +236,7 @@ if(isset($hod))
if($dell) { if($dell) {
$dell['priem']['id']=$dell['id']; $dell['priem']['id']=$dell['id'];
//if($dell['x']==1){ //if($dell['x']==1){
$btl->delPriem($dell,$u->info,99); $btl->delPriem($dell, $u->info, 99);
/*}else{ /*}else{
$i=0; $i=0;
$e = explode('|',$dell['data']); $e = explode('|',$dell['data']);

View File

@ -53,7 +53,7 @@ if(isset($hod))
if($this->minMana($eff['user_use'],$minmp,1)==false) if($this->minMana($eff['user_use'],$minmp,1)==false)
{ {
//снимаем эффект, мана закончилась //снимаем эффект, мана закончилась
$btl->delPriem($eff,$btl->users[$btl->uids[$eff['uid']]],2); $btl->delPriem($eff, $btl->users[$btl->uids[$eff['uid']]], 2);
} }
} }
}else{ }else{
@ -479,7 +479,7 @@ if(isset($hod))
$pwi['priem'] = mysql_fetch_array(mysql_query('SELECT * FROM `priems` WHERE `id` = "26" LIMIT 1')); $pwi['priem'] = mysql_fetch_array(mysql_query('SELECT * FROM `priems` WHERE `id` = "26" LIMIT 1'));
if(isset($pwi['id'])) if(isset($pwi['id']))
{ {
$btl->delPriem($pwi,$btl->users[$btl->uids[$ue['id']]],2); $btl->delPriem($pwi, $btl->users[$btl->uids[$ue['id']]], 2);
} }
$this->magicAtack($ue,$hpmin,1,$pl,$eff,2,$hpmxx[$pl['id']]); $this->magicAtack($ue,$hpmin,1,$pl,$eff,2,$hpmxx[$pl['id']]);
unset($pwx,$pwi,$hpmin,$hpmxx); unset($pwx,$pwi,$hpmin,$hpmxx);

View File

@ -307,7 +307,7 @@ if ($pl['id'] == 189) {
$hpmin = $u->info['level'] * 5; $hpmin = $u->info['level'] * 5;
} elseif ($pl['id'] == 271) { } elseif ($pl['id'] == 271) {
//прием Прорыв 1\3 урона оружием //прием Прорыв 1\3 урона оружием
$tp_atk = $btl->weaponTx($btl->stats[$btl->uids[$u->info['id']]]['items'][$btl->stats[$btl->uids[$u->info['id']]]['wp3id']]); $tp_atk = $btl->weaponTx($btl->stats[$btl->uids[$u->info['id']]]['items'][$btl->stats[$btl->uids[$u->info['id']]]['wp3id']]['data']);
$yi_atk = $btl->weaponAt22($btl->stats[$btl->uids[$u->info['id']]]['items'][$btl->stats[$btl->uids[$u->info['id']]]['wp3id']], $btl->stats[$btl->uids[$u->info['id']]], $tp_atk); $yi_atk = $btl->weaponAt22($btl->stats[$btl->uids[$u->info['id']]]['items'][$btl->stats[$btl->uids[$u->info['id']]]['wp3id']], $btl->stats[$btl->uids[$u->info['id']]], $tp_atk);

View File

@ -217,7 +217,7 @@ if(isset($hod))
if($this->minMana($eff['user_use'],$minmp,3)==false) if($this->minMana($eff['user_use'],$minmp,3)==false)
{ {
//снимаем эффект, мана закончилась //снимаем эффект, мана закончилась
$btl->delPriem($eff,$btl->users[$btl->uids[$eff['uid']]],2); $btl->delPriem($eff, $btl->users[$btl->uids[$eff['uid']]], 2);
} }
} }
}else{ }else{
@ -458,7 +458,7 @@ if(isset($hod))
if($dell){ if($dell){
$dell['priem']['id']=$dell['id']; $dell['priem']['id']=$dell['id'];
$btl->delPriem($dell,$u->info,99,false,$pl['name']); $btl->delPriem($dell, $u->info, 99, 0, $pl['name']);
} }
} }

View File

@ -1,3 +0,0 @@
Sign successfully
IK sing :RpNOBfN+zusMfjQHDqp6UQ==
locally formed :RpNOBfN+zusMfjQHDqp6UQ==

View File

@ -67,6 +67,7 @@ if (!isset($_COOKIE['d1c'])) {
} }
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ru-RU"> <html lang="ru-RU">
<head> <head>

View File

@ -116,24 +116,11 @@ if (isset($r2['pos'])) {
} }
} }
$timday = strtotime('now 00:00:00'); [$clanw, $clanl] = \Model\BattleModel::countClanWars($clan['id']);
$clanw = mysql_fetch_array(
mysql_query(
'SELECT COUNT(`id`) FROM `battle` WHERE `type` = 250 AND `time_over` > "' . $timday . '" AND ((`team_win`=1 AND `clan1` = "' . $clan['id'] . '") OR (`team_win`=2 AND `clan2` = "' . $clan['id'] . '")) LIMIT 1'
)
);
$clanw = $clanw[0];
$clanl = mysql_fetch_array(
mysql_query(
'SELECT COUNT(`id`) FROM `battle` WHERE `type` = 250 AND `time_over` > "' . $timday . '" AND ((`team_win`=2 AND `clan1` = "' . $clan['id'] . '") OR (`team_win`=1 AND `clan2` = "' . $clan['id'] . '")) LIMIT 1'
)
);
$clanl = $clanl[0];
$clanwar = mysql_query( $clanwar = mysql_query(
'SELECT * FROM `clan_wars` WHERE (`clan1`="' . $clan['id'] . '" OR `clan2`="' . $clan['id'] . '") AND `time_finish` > "' . time( 'SELECT * FROM `clan_wars` WHERE (`clan1`="' . $clan['id'] . '" OR `clan2`="' . $clan['id'] . '") AND `time_finish` > "' . time() . '"'
) . '"'
); );
$clwe = ""; $clwe = "";
while ($clanwa = mysql_fetch_array($clanwar)) { while ($clanwa = mysql_fetch_array($clanwar)) {
@ -304,8 +291,7 @@ while ($clanwa = mysql_fetch_array($clanwar)) {
$html .= '<br>'; $html .= '<br>';
$sp = mysql_query( $sp = mysql_query(
'SELECT * FROM `users` WHERE `clan` = "' . $clan['id'] . '" AND `clan_prava` != "glava" AND `online` > "' . (time( 'SELECT * FROM `users` WHERE `clan` = "' . $clan['id'] . '" AND `clan_prava` != "glava" AND `online` > "' . (time() - 520) . '" ORDER BY `login` ASC'
) - 520) . '" ORDER BY `login` ASC'
); );
while ($pl = mysql_fetch_array($sp)) { while ($pl = mysql_fetch_array($sp)) {
$html .= '<div>'; $html .= '<div>';
@ -320,8 +306,7 @@ while ($clanwa = mysql_fetch_array($clanwar)) {
$html .= '</div>'; $html .= '</div>';
} }
$sp = mysql_query( $sp = mysql_query(
'SELECT * FROM `users` WHERE `clan` = "' . $clan['id'] . '" AND `clan_prava` != "glava" AND `online` <= "' . (time( 'SELECT * FROM `users` WHERE `clan` = "' . $clan['id'] . '" AND `clan_prava` != "glava" AND `online` <= "' . (time() - 520) . '" ORDER BY `login` ASC'
) - 520) . '" ORDER BY `login` ASC'
); );
while ($pl = mysql_fetch_array($sp)) { while ($pl = mysql_fetch_array($sp)) {
$html .= '<div style="color:grey">'; $html .= '<div style="color:grey">';

1941
exp.php

File diff suppressed because it is too large Load Diff

View File

@ -7,233 +7,251 @@ require_once('_incl_data/__config.php');
require_once('_incl_data/class/__db_connect.php'); require_once('_incl_data/class/__db_connect.php');
define('IP', UserIp::get()); define('IP', UserIp::get());
class battleNew {
$user = mysql_fetch_array(mysql_query('SELECT `id`,`battle` FROM `users` WHERE `login` = "' . mysql_real_escape_string($_COOKIE['login']) . '"'));
if (isset($user['id']) && $user['battle'] > 0) {
} $stats = mysql_fetch_array(
mysql_query(
$user = mysql_fetch_array(mysql_query('SELECT `id`,`battle` FROM `users` WHERE `login` = "'.mysql_real_escape_string($_COOKIE['login']).'"')); 'SELECT
if(isset($user['id']) && $user['battle'] > 0) {
$stats = mysql_fetch_array(mysql_query('SELECT
`id`,`team`,`enemy`, `id`,`team`,`enemy`,
`tactic1`,`tactic2`,`tactic3`,`tactic4`,`tactic5`,`tactic6`,`tactic7`, `tactic1`,`tactic2`,`tactic3`,`tactic4`,`tactic5`,`tactic6`,`tactic7`,
`battle_yron`,`priems`,`priems_z`,`priemslot` `battle_yron`,`priems`,`priems_z`,`priemslot`
FROM `stats` WHERE `id` = "'.$user['id'].'" LIMIT 1')); FROM `stats` WHERE `id` = "' . $user['id'] . '" LIMIT 1'
)
);
if( $stats['hpNow'] > $stats['hpAll'] ) { if ($stats['hpNow'] > $stats['hpAll']) {
$stats['hpNow'] = $stats['hpAll']; $stats['hpNow'] = $stats['hpAll'];
} }
if( $stats['mpNow'] > $stats['mpAll'] ) { if ($stats['mpNow'] > $stats['mpAll']) {
$stats['mpNow'] = $stats['mpAll']; $stats['mpNow'] = $stats['mpAll'];
} }
//Получаем данные о поединке //Получаем данные о поединке
$r = ''; $r = '';
//Проверяем размен с текущим противником //Проверяем размен с текущим противником
$bot_go = false; $bot_go = false;
$rd = ''; $rd = '';
$sp = mysql_query('SELECT `id`,`uid1`,`uid2`,`time` FROM `battle_act` WHERE ( `uid1` = "'.$user['id'].'" OR `uid2` = "'.$user['id'].'" ) AND `battle` = "'.$user['battle'].'" ORDER BY `time` ASC'); $sp = mysql_query(
while( $pl = mysql_fetch_array($sp) ) { 'SELECT `id`,`uid1`,`uid2`,`time` FROM `battle_act` WHERE ( `uid1` = "' . $user['id'] . '" OR `uid2` = "' . $user['id'] . '" ) AND `battle` = "' . $user['battle'] . '" ORDER BY `time` ASC'
$rd .= ',['.$pl['id'].','.$pl['uid1'].','.$pl['uid2'].','.($pl['time']-time()+$bt['timeout']).']'; );
// while ($pl = mysql_fetch_array($sp)) {
if( $pl['uid1'] == $user['id'] && $bot_go == false ) { $rd .= ',[' . $pl['id'] . ',' . $pl['uid1'] . ',' . $pl['uid2'] . ',' . ($pl['time'] - time() + $bt['timeout']) . ']';
$bot_test = mysql_fetch_array(mysql_query('SELECT `id` FROM `stats` WHERE `id` = "'.$pl['uid2'].'" LIMIT 1')); //
if(isset($bot_test['id'])) { if ($pl['uid1'] == $user['id'] && $bot_go == false) {
$bot_go = true; $bot_test = mysql_fetch_array(mysql_query('SELECT `id` FROM `stats` WHERE `id` = "' . $pl['uid2'] . '" LIMIT 1'));
} if (isset($bot_test['id'])) {
} $bot_go = true;
// }
} }
$rd = ltrim($rd,','); //
$r .= ',"act":['.$rd.']'; }
unset($sp,$pl,$rd); $rd = ltrim($rd, ',');
$r .= ',"act":[' . $rd . ']';
unset($sp, $pl, $rd);
//Удары ботов //Удары ботов
if( $bot_go == true ) { if ($bot_go == true) {
$error = 'Обычное обновление!'; $error = 'Обычное обновление!';
} }
if(isset($_GET['global'])) { if (isset($_GET['global'])) {
$btl = new \Model\BattleModel($user['battle']);
$bt = $btl->battleArray;
$bt = mysql_fetch_array(mysql_query('SELECT `id`,`timeout`,`hod` FROM `battle` WHERE `id` = "'.$user['battle'].'" LIMIT 1')); if (isset($bt['id'])) {
if(isset($bt['id'])) {
//Получение инф. о пользователях в бою //Получение инф. о пользователях в бою
$rd = ''; $rd = '';
$sp = mysql_query('SELECT `id`,`login`,`level`,`align`,`clan` FROM `users` WHERE `battle` = "'.$bt['id'].'"'); $sp = mysql_query('SELECT `id`,`login`,`level`,`align`,`clan` FROM `users` WHERE `battle` = "' . $bt['id'] . '"');
while( $pl = mysql_fetch_array($sp) ) { while ($pl = mysql_fetch_array($sp)) {
$st = mysql_fetch_array(mysql_query('SELECT `hpNow`,`mpNow`,`hpAll`,`mpAll`,`team` FROM `stats` WHERE `id` = "'.$pl['id'].'" LIMIT 1')); $st = mysql_fetch_array(mysql_query('SELECT `hpNow`,`mpNow`,`hpAll`,`mpAll`,`team` FROM `stats` WHERE `id` = "' . $pl['id'] . '" LIMIT 1'));
$rd .= '['.(0+$pl['id']).','.(0+$st['hpNow']).','.(0+$st['mpNow']).','.(0+$st['hpAll']).','.(0+$st['mpAll']).'],'; $rd .= '[' . (0 + $pl['id']) . ',' . (0 + $st['hpNow']) . ',' . (0 + $st['mpNow']) . ',' . (0 + $st['hpAll']) . ',' . (0 + $st['mpAll']) . '],';
} }
$rd = rtrim($rd,','); $rd = rtrim($rd, ',');
$r .= ',"u":['.$rd.']'; $r .= ',"u":[' . $rd . ']';
}else{ } else {
$error = 'Поединок не найден...'; $error = 'Поединок не найден...';
} }
//Эффекты текущего персонажа и противника //Эффекты текущего персонажа и противника
$r .= ',"eff_me":['; $r .= ',"eff_me":[';
$i = 0; $i = 0;
$sp = mysql_query('SELECT * FROM `eff_users` WHERE ( `uid` = "'.$user['id'].'" OR `uid` = "'.$stats['enemy'].'" ) AND `delete` = "0" ORDER BY `id` DESC'); $sp = mysql_query('SELECT * FROM `eff_users` WHERE ( `uid` = "' . $user['id'] . '" OR `uid` = "' . $stats['enemy'] . '" ) AND `delete` = "0" ORDER BY `id` DESC');
while( $pl = mysql_fetch_array($sp) ) { while ($pl = mysql_fetch_array($sp)) {
if( $pl['v1'] == 'priem' ) { if ($pl['v1'] == 'priem') {
$prm = mysql_fetch_array(mysql_query('SELECT * FROM `priems` WHERE `id` = "'.$pl['v2'].'" LIMIT 1')); $prm = mysql_fetch_array(mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $pl['v2'] . '" LIMIT 1'));
if( $user['id'] == $pl['uid'] || $prm['neg'] > 0 ) { if ($user['id'] == $pl['uid'] || $prm['neg'] > 0) {
if( $i == 0 ) { if ($i == 0) {
$i++; $i++;
}else{ } else {
$r .= ','; $r .= ',';
} }
$r .= '['.$pl['uid'].','.$pl['id'].','.$pl['id_eff'].',"'.$pl['name'].'","'.$prm['img'].'.gif","14"]'; $r .= '[' . $pl['uid'] . ',' . $pl['id'] . ',' . $pl['id_eff'] . ',"' . $pl['name'] . '","' . $prm['img'] . '.gif","14"]';
} }
}else{ } else {
if( $user['id'] == $pl['uid'] ) { if ($user['id'] == $pl['uid']) {
if( $i == 0 ) { if ($i == 0) {
$i++; $i++;
}else{ } else {
$r .= ','; $r .= ',';
} }
$eff = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "'.$pl['id_eff'].'" LIMIT 1')); $eff = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "' . $pl['id_eff'] . '" LIMIT 1'));
$r .= '['.$pl['uid'].','.$pl['id'].','.$pl['id_eff'].',"'.$pl['name'].'","'.$eff['img'].'","'.$eff['type1'].'"]'; $r .= '[' . $pl['uid'] . ',' . $pl['id'] . ',' . $pl['id_eff'] . ',"' . $pl['name'] . '","' . $eff['img'] . '","' . $eff['type1'] . '"]';
} }
} }
} }
$r .= ']'; $r .= ']';
// //
}elseif(isset($_GET['loading'])) { } elseif (isset($_GET['loading'])) {
//Загрузда дополнительных данных //Загрузда дополнительных данных
if(isset($_GET['uload']) && $_GET['uload'] != '0') { if (isset($_GET['uload']) && $_GET['uload'] != '0') {
//Загрузка пользователей //Загрузка пользователей
$ex = explode(',',$_GET['uload']); $ex = explode(',', $_GET['uload']);
$i = 1; $i = 1;
$rd = ''; $rd = '';
while( $i < count($ex) ) { while ($i < count($ex)) {
if( $ex[$i] > 0 ) { if ($ex[$i] > 0) {
// //
$us = mysql_fetch_array(mysql_query('SELECT $us = mysql_fetch_array(
mysql_query(
'SELECT
`id`,`login`,`level`,`clan`,`align`,`obraz` `id`,`login`,`level`,`clan`,`align`,`obraz`
FROM `users` WHERE `battle` = "'.$user['battle'].'" AND `id` = "'.mysql_real_escape_string($ex[$i]).'" LIMIT 1')); FROM `users` WHERE `battle` = "' . $user['battle'] . '" AND `id` = "' . mysql_real_escape_string($ex[$i]) . '" LIMIT 1'
if(isset($us['id'])) { )
$ss = mysql_fetch_array(mysql_query('SELECT );
if (isset($us['id'])) {
$ss = mysql_fetch_array(
mysql_query(
'SELECT
`hpNow`,`mpNow`,`hpAll`,`mpAll`,`team` `hpNow`,`mpNow`,`hpAll`,`mpAll`,`team`
FROM `stats` WHERE `id` = "'.$us['id'].'" LIMIT 1')); FROM `stats` WHERE `id` = "' . $us['id'] . '" LIMIT 1'
)
);
if( $ss['hpNow'] > $ss['hpAll'] ) { if ($ss['hpNow'] > $ss['hpAll']) {
$ss['hpNow'] = $ss['hpAll']; $ss['hpNow'] = $ss['hpAll'];
} }
if( $ss['mpNow'] > $ss['mpAll'] ) { if ($ss['mpNow'] > $ss['mpAll']) {
$ss['mpNow'] = $ss['mpAll']; $ss['mpNow'] = $ss['mpAll'];
} }
$rd .= ',{'; $rd .= ',{';
// //
$rd .= ' "id":'.( 0 + (int)$ex[$i] ); $rd .= ' "id":' . (0 + (int)$ex[$i]);
$rd .= ',"login":"'.$us['login'].'"'; $rd .= ',"login":"' . $us['login'] . '"';
$rd .= ',"level":"'.$us['level'].'"'; $rd .= ',"level":"' . $us['level'] . '"';
$rd .= ',"align":"'.$us['align'].'"'; $rd .= ',"align":"' . $us['align'] . '"';
$rd .= ',"clan":"'.$us['clan'].'"'; $rd .= ',"clan":"' . $us['clan'] . '"';
$rd .= ',"team":"'.$ss['team'].'"'; $rd .= ',"team":"' . $ss['team'] . '"';
$rd .= ',"hp":'.( 0 + $ss['hpNow'] ).''; $rd .= ',"hp":' . (0 + $ss['hpNow']);
$rd .= ',"mp":'.( 0 + $ss['mpNow'] ).''; $rd .= ',"mp":' . (0 + $ss['mpNow']);
$rd .= ',"hpAll":'.( 0 + $ss['hpAll'] ).''; $rd .= ',"hpAll":' . (0 + $ss['hpAll']);
$rd .= ',"mpAll":'.( 0 + $ss['mpAll'] ).''; $rd .= ',"mpAll":' . (0 + $ss['mpAll']);
$rd .= ',"sex":'.( 0 + $us['sex'] ).''; $rd .= ',"sex":' . (0 + $us['sex']);
$rd .= ',"obraz":"'.$us['obraz'].'"'; $rd .= ',"obraz":"' . $us['obraz'] . '"';
// //
//Предметы //Предметы
$ri = ''; $ri = '';
$sp = mysql_query('SELECT `id`,`item_id`,`inOdet`,`magic_inc` FROM `items_users` WHERE `uid` = "'.$us['id'].'" AND `delete` = 0 AND `inOdet` > 0'); $sp = mysql_query('SELECT `id`,`item_id`,`inOdet`,`magic_inc` FROM `items_users` WHERE `uid` = "' . $us['id'] . '" AND `delete` = 0 AND `inOdet` > 0');
while( $pl = mysql_fetch_array($sp) ) { while ($pl = mysql_fetch_array($sp)) {
// //
$im = mysql_fetch_array(mysql_query('SELECT `id`,`name`,`img`,`magic_inci` FROM `items_main` WHERE `id` = "'.$pl['item_id'].'" LIMIT 1')); $im = mysql_fetch_array(mysql_query('SELECT `id`,`name`,`img`,`magic_inci` FROM `items_main` WHERE `id` = "' . $pl['item_id'] . '" LIMIT 1'));
// //
$ccv = ''; $ccv = '';
if( $pl['magic_inc'] == '' ) { if ($pl['magic_inc'] == '') {
$pl['magic_inc'] = $im['magic_inci']; $pl['magic_inc'] = $im['magic_inci'];
} }
if( $pl['magic_inc'] != '' ) { if ($pl['magic_inc'] != '') {
$mgi = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "'.$pl['magic_inc'].'" AND `type1` = "12345" LIMIT 1')); $mgi = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "' . $pl['magic_inc'] . '" AND `type1` = "12345" LIMIT 1'));
if(isset($mgi['id2'])) { if (isset($mgi['id2'])) {
$ccv .= 'top.useMagicBattle(\''.$mgi['mname'].'\','.$pl['id'].',\''.$mgi['img'].'\',1,2);'; $ccv .= 'top.useMagicBattle(\'' . $mgi['mname'] . '\',' . $pl['id'] . ',\'' . $mgi['img'] . '\',1,2);';
} }
} }
// //
$ri .= ',['.$pl['id'].','.$pl['item_id'].','.$pl['inOdet'].',"'.$im['name'].'","'.$im['img'].'","'.$ccv.'"]'; $ri .= ',[' . $pl['id'] . ',' . $pl['item_id'] . ',' . $pl['inOdet'] . ',"' . $im['name'] . '","' . $im['img'] . '","' . $ccv . '"]';
} }
$ri = ltrim($ri,','); $ri = ltrim($ri, ',');
$rd .= ',"itm":['.$ri.']'; $rd .= ',"itm":[' . $ri . ']';
// //
//Эффекты (не требуется кэширование) //Эффекты (не требуется кэширование)
$ri = ''; $ri = '';
$ri = ltrim($ri,','); $ri = ltrim($ri, ',');
$rd .= ',"eff":['.$ri.']'; $rd .= ',"eff":[' . $ri . ']';
// //
// //
$rd .= ' }'; $rd .= ' }';
} }
} }
$i++; $i++;
} }
$rd = ltrim($rd,','); $rd = ltrim($rd, ',');
$r .= ',"ul":['.$rd.']'; $r .= ',"ul":[' . $rd . ']';
unset($rd,$ri); unset($rd, $ri);
// //
} }
// //
if(isset($_GET['pload']) && $_GET['pload'] != '0') { if (isset($_GET['pload']) && $_GET['pload'] != '0') {
//Загрузка приемов //Загрузка приемов
$ex = explode(',',$_GET['pload']); $ex = explode(',', $_GET['pload']);
$i = 1; $i = 1;
$rd = ''; $rd = '';
while( $i < count($ex) ) { while ($i < count($ex)) {
if( $ex[$i] > 0 ) { if ($ex[$i] > 0) {
// //
$pl = mysql_fetch_array(mysql_query('SELECT $pl = mysql_fetch_array(
mysql_query(
'SELECT
`id`,`name`,`img`,`type`,`onUser`,`team` `id`,`name`,`img`,`type`,`onUser`,`team`
FROM `priems` WHERE `id` = "'.mysql_real_escape_string($ex[$i]).'" LIMIT 1')); FROM `priems` WHERE `id` = "' . mysql_real_escape_string($ex[$i]) . '" LIMIT 1'
if(isset($pl['id'])) { )
// );
$rd .= ',{'; if (isset($pl['id'])) {
// //
$rd .= ' "id":'.( 0 + (int)$ex[$i] ); $rd .= ',{';
$rd .= ',"name":"'.$pl['name'].'"'; //
$rd .= ',"img":"'.$pl['img'].'"'; $rd .= ' "id":' . (0 + (int)$ex[$i]);
$rd .= ',"type":"'.$pl['type'].'"'; $rd .= ',"name":"' . $pl['name'] . '"';
$rd .= ',"onUser":"'.$pl['onUser'].'"'; $rd .= ',"img":"' . $pl['img'] . '"';
$rd .= ',"team":"'.$pl['team'].'"'; $rd .= ',"type":"' . $pl['type'] . '"';
// $rd .= ',"onUser":"' . $pl['onUser'] . '"';
$rd .= ' }'; $rd .= ',"team":"' . $pl['team'] . '"';
// //
} $rd .= ' }';
} //
$i++; }
} }
$rd = ltrim($rd,','); $i++;
$r .= ',"pl":['.$rd.']'; }
unset($sp,$pl,$rd); $rd = ltrim($rd, ',');
// $r .= ',"pl":[' . $rd . ']';
} unset($sp, $pl, $rd);
// //
} }
//
}
}else{ } else {
$error = 'Пользователь в бою не найден...'; $error = 'Пользователь в бою не найден...';
} }
echo '{ "btl":"'.(0+$bt['id']).'" , "hod":"'.(0+$bt['hod']).'" , "you":"'.(0+$user['id']).'" , "enemy":"'.(0+$stats['enemy']).'" , "pr": [ "'.$stats['priems'].'" , "'.$stats['priems_z'].'" , '.(0+$stats['priemslot']).' ] , "dm":"'.floor($stats['battle_yron']).'" , "to":"'.round($bt['timeout']/60,2).'" , "r":{ '.ltrim($r,',').' } , "e":"'.$error.'" , "t1":"'.$stats['tactic1'].'" , "t2":"'.$stats['tactic2'].'" , "t3":"'.$stats['tactic3'].'" , "t4":"'.$stats['tactic4'].'" , "t5":"'.$stats['tactic5'].'" , "t6":"'.$stats['tactic6'].'" , "t7":"'.$stats['tactic7'].'" }'; echo '{ "btl":"' . (0 + $bt['id']) . '" , "hod":"' . (0 + $bt['hod']) . '" , "you":"' . (0 + $user['id']) . '" , "enemy":"' . (0 + $stats['enemy']) . '" , "pr": [ "' . $stats['priems'] . '" , "' . $stats['priems_z'] . '" , ' . (0 + $stats['priemslot']) . ' ] , "dm":"' . floor(
$stats['battle_yron']
) . '" , "to":"' . round($bt['timeout'] / 60, 2) . '" , "r":{ ' . ltrim(
$r, ','
) . ' } , "e":"' . $error . '" , "t1":"' . $stats['tactic1'] . '" , "t2":"' . $stats['tactic2'] . '" , "t3":"' . $stats['tactic3'] . '" , "t4":"' . $stats['tactic4'] . '" , "t5":"' . $stats['tactic5'] . '" , "t6":"' . $stats['tactic6'] . '" , "t7":"' . $stats['tactic7'] . '" }';

View File

@ -53,7 +53,6 @@ while ($pl = mysql_fetch_array($sp)) {
} }
// //
$html .= $i . '. <span class="date">' . date('H:i', $pl['time']) . '</span> '; $html .= $i . '. <span class="date">' . date('H:i', $pl['time']) . '</span> ';
$html .= ' <img title="' . $u->city_name[$pl['city']] . '" src="//img.new-combats.tech/i/city_ico/' . $pl['city'] . '.gif">';
$html .= ' (' . $users . ') (' . $pl['min_lvl_1'] . '-' . $pl['max_lvl_1'] . ') Тип боя: <img src="//img.new-combats.tech/i/fighttype' . $pl['type'] . '.gif"> '; $html .= ' (' . $users . ') (' . $pl['min_lvl_1'] . '-' . $pl['max_lvl_1'] . ') Тип боя: <img src="//img.new-combats.tech/i/fighttype' . $pl['type'] . '.gif"> ';
if ($pl['noinc'] > 0) { if ($pl['noinc'] > 0) {
$html .= '<img src="//img.new-combats.tech/closefight.gif" title="В поединок нельзя вмешаться">'; $html .= '<img src="//img.new-combats.tech/closefight.gif" title="В поединок нельзя вмешаться">';
@ -113,7 +112,6 @@ while ($pl = mysql_fetch_array($sp)) {
// //
$html .= $i . '. <span class="date">' . date('d.m.Y H:i', $pl['time_start']) . '</span> '; $html .= $i . '. <span class="date">' . date('d.m.Y H:i', $pl['time_start']) . '</span> ';
$html .= ' <img title="' . $u->city_name[$pl['city']] . '" src="//img.new-combats.tech/i/city_ico/' . $pl['city'] . '.gif">';
$html .= ' (' . $users . ') Тип боя: <img src="//img.new-combats.tech/i/fighttype' . $pl['type'] . '.gif"> '; $html .= ' (' . $users . ') Тип боя: <img src="//img.new-combats.tech/i/fighttype' . $pl['type'] . '.gif"> ';
if ($pl['noinc'] > 0) { if ($pl['noinc'] > 0) {
$html .= '<img src="//img.new-combats.tech/closefight.gif" title="В поединок нельзя вмешаться">'; $html .= '<img src="//img.new-combats.tech/closefight.gif" title="В поединок нельзя вмешаться">';
@ -145,9 +143,6 @@ $sp = mysql_query('SELECT * FROM `bs_turnirs`');
$i = 0; $i = 0;
while ($pl = mysql_fetch_array($sp)) { while ($pl = mysql_fetch_array($sp)) {
$i++; $i++;
//
$html .= $i . '. <img title="' . $u->city_name[$pl['city']] . '" src="//img.new-combats.tech/i/city_ico/' . $pl['city'] . '.gif">';
//
$html .= ' [' . $pl['level'] . ']'; $html .= ' [' . $pl['level'] . ']';
if ($pl['status'] == 0) { if ($pl['status'] == 0) {
//Ожидаем начала нового турнира //Ожидаем начала нового турнира

View File

@ -266,7 +266,11 @@ if (isset($uer)) {
<!-- pos1 --> <!-- pos1 -->
<?php <?php
//Персонаж онлайн //Персонаж онлайн
$battleid = Db::getValue('select id from battle where id = ? and time_over = 0', [$inf['battle']]); if ($inf['battle']) {
$b = new \Model\BattleModel($inf['battle']);
$battleid = $b->battle->time_over == 0 ? $b->battle->id : false;
unset($b);
}
if ($inf['room'] != 303) { if ($inf['room'] != 303) {
if ($inf['online'] > time() - 520 && $inf['banned'] == 0 && $inf['invis'] != 1 && $inf['invis'] < time()) { if ($inf['online'] > time() - 520 && $inf['banned'] == 0 && $inf['invis'] != 1 && $inf['invis'] < time()) {

View File

@ -596,7 +596,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
?> ?>
<BR> <BR>
</td> </td>
<td align="center" valign="top" style='padding: 0,2,0,5'> <td align="center" valign="top" style='padding: 0 2px 0 5px'>
<a title="<?= $itm['name'] ?>" href="/item/<?= $itm['id'] ?>"> <a title="<?= $itm['name'] ?>" href="/item/<?= $itm['id'] ?>">
<SPAN style='background-color: #E0E0E0'> <SPAN style='background-color: #E0E0E0'>
<img src="//img.new-combats.tech/i/items/<?= $itm['img'] ?>" <img src="//img.new-combats.tech/i/items/<?= $itm['img'] ?>"
@ -612,7 +612,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
<p> <p>
</td> </td>
<!-- End of text --> <!-- End of text -->
<td style='padding-left: 3' align=right> <td style='padding-left: 3px' align=right>
<img id="imright" height=144 <img id="imright" height=144
src="//img.new-combats.tech/i/encicl/pict_<?= $rz[$rt[$itm['type']]][0] ?>.jpg" width=139 src="//img.new-combats.tech/i/encicl/pict_<?= $rz[$rt[$itm['type']]][0] ?>.jpg" width=139
border=0> border=0>
@ -621,7 +621,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
</tr> </tr>
<tr valign=top> <tr valign=top>
<td></td> <td></td>
<td valign=center style="padding-bottom:50" align="right"><IMG height=236 <td valign=center style="padding-bottom:50px" align="right"><IMG height=236
src="//img.new-combats.tech/i/encicl/pictr_<?= $rz[$rt[$itm['type']]][0] ?>.jpg" src="//img.new-combats.tech/i/encicl/pictr_<?= $rz[$rt[$itm['type']]][0] ?>.jpg"
width=128 border=0> width=128 border=0>
</td> </td>
@ -643,7 +643,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
$sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 26'); $sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 26');
} elseif ($rv == 3) { } elseif ($rv == 3) {
//Свитки //Свитки
$sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 29 AND `name` NOT LIKE "%Кристаллизатор%"'); $sp = mysql_query("SELECT * FROM `items_main` WHERE `type` = 29 AND `name` NOT LIKE '%Кристаллизатор%'");
} elseif ($rv == 2) { } elseif ($rv == 2) {
//Эликсиры //Эликсиры
$sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 30'); $sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 30');
@ -682,7 +682,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
$sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 1'); $sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 1');
} elseif ($rv == 16) { } elseif ($rv == 16) {
//Елки //Елки
$sp = mysql_query('SELECT * FROM `items_main` WHERE `name` LIKE "%Елка%"'); $sp = mysql_query("SELECT * FROM `items_main` WHERE `name` LIKE '%Елка%'");
} elseif ($rv == 17) { } elseif ($rv == 17) {
//Дубины //Дубины
$sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 20'); $sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 20');
@ -700,7 +700,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
$sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 22'); $sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 22');
} elseif ($rv == 22) { } elseif ($rv == 22) {
//Цветы //Цветы
$sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 32 AND `img` LIKE "f_%"'); $sp = mysql_query("SELECT * FROM `items_main` WHERE `type` = 32 AND `img` LIKE 'f_%'");
} elseif ($rv == 25) { } elseif ($rv == 25) {
//Подарки //Подарки
$sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 38 OR `type` = 63'); $sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 38 OR `type` = 63');
@ -1074,7 +1074,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
?> ?>
<BR> <BR>
</td> </td>
<td align="center" valign="top" style='padding: 0,2,0,5'> <td align="center" valign="top" style='padding: 0 2px 0 5px'>
<a title="<?= $itm['name'] ?>" href="/item/<?= $itm['id'] ?>"> <a title="<?= $itm['name'] ?>" href="/item/<?= $itm['id'] ?>">
<SPAN style='background-color: #E0E0E0'> <SPAN style='background-color: #E0E0E0'>
<img src="//img.new-combats.tech/i/items/<?= $itm['img'] ?>" <img src="//img.new-combats.tech/i/items/<?= $itm['img'] ?>"
@ -1096,7 +1096,9 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
<BR> <BR>
<p> <p>
<!-- End of text --> <!-- End of text -->
<td style='padding-left: 3' align=right> </p>
</td>
<td style='padding-left: 3px' align=right>
<img id="imright2" height=144 src="//img.new-combats.tech/i/encicl/pict_subject.jpg" width=139> <img id="imright2" height=144 src="//img.new-combats.tech/i/encicl/pict_subject.jpg" width=139>
</td> </td>
<td valign=top background="/forum_script/img/rightground.jpg">&nbsp;&nbsp;&nbsp;&nbsp;</td> <td valign=top background="/forum_script/img/rightground.jpg">&nbsp;&nbsp;&nbsp;&nbsp;</td>
@ -1158,7 +1160,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
<!-- --> <!-- -->
</td> </td>
<td valign="bottom" style="padding-bottom:50" align="right"> <td valign="bottom" style="padding-bottom:50px" align="right">
<IMG height=236 src="//img.new-combats.tech/i/encicl/pictr_subject.jpg" width=128 border=0> <IMG height=236 src="//img.new-combats.tech/i/encicl/pictr_subject.jpg" width=128 border=0>
</td> </td>
<td width="23" valign=top background="/forum_script/img/rightground.jpg">&nbsp;</td> <td width="23" valign=top background="/forum_script/img/rightground.jpg">&nbsp;</td>

View File

@ -5,7 +5,7 @@ function info_reflesh(id_info,uid,up_info,obraz,hp,hpAll,mp,mpAll,invis,sex,eff,
{ {
stl4[id_info] = { 4:'',5:'',6:'' }; img4 = ''; lst4 = 0; stl4[id_info] = { 4:'',5:'',6:'' }; img4 = ''; lst4 = 0;
var d = document.getElementById(`player${id_info}`); var d = document.getElementById(`player${id_info}`);
if(d!=undefined) if(d)
{ {
var mbmp = ''; var mbmp = '';
var nomp = 0; var nomp = 0;
@ -30,7 +30,7 @@ function info_reflesh(id_info,uid,up_info,obraz,hp,hpAll,mp,mpAll,invis,sex,eff,
hpAll = '100%'; hpAll = '100%';
} }
var zaggg = '',zggg1 = '',zggg2 = '',zggg3,zggg4 = ''; var zaggg = '',zggg1 = '',zggg2 = '',zggg3,zggg4 = '';
if( zag != undefined && zag != 0 && zag != '' ) { if(zag) {
zggg1 = 'class="inf2s"'; zggg1 = 'class="inf2s"';
zggg2 = 'position:relative;height:280px;'; zggg2 = 'position:relative;height:280px;';
zggg3 = 'position:absolute;top:3px;left:3px;z-index:102;'; zggg3 = 'position:absolute;top:3px;left:3px;z-index:102;';

View File

@ -42,6 +42,7 @@ const chat = {
efftxt: function (id, txt) { efftxt: function (id, txt) {
return txt; return txt;
}, },
ignore: function (login) { ignore: function (login) {
if (this.ignoreList[login] !== undefined) { if (this.ignoreList[login] !== undefined) {
if ($('#ignr_alu').attr('id') !== undefined) { if ($('#ignr_alu').attr('id') !== undefined) {
@ -63,10 +64,13 @@ const chat = {
ingr_alu.html(`${ingr_alu.html()}<div id="ignr_u_${this.ignoreList.x}"><b>${login}</b> <a target="_blank" href="/info/${login}"><img alt="Инф. о ${login}" src="${c.img2}/i/inf_capitalcity.gif" onMouseOver="top.hi(this,\'<b>Инф. о ${login}</b>\',event,5,-2,2,2,\'\');" onMouseOut="top.hic();" onMouseDown="top.hic();"></a> <small><a href="javascript:void(0)" onclick="chat.ignorUn(${this.ignoreList.x})">Clear</a></small></div>`); ingr_alu.html(`${ingr_alu.html()}<div id="ignr_u_${this.ignoreList.x}"><b>${login}</b> <a target="_blank" href="/info/${login}"><img alt="Инф. о ${login}" src="${c.img2}/i/inf_capitalcity.gif" onMouseOver="top.hi(this,\'<b>Инф. о ${login}</b>\',event,5,-2,2,2,\'\');" onMouseOut="top.hic();" onMouseDown="top.hic();"></a> <small><a href="javascript:void(0)" onclick="chat.ignorUn(${this.ignoreList.x})">Clear</a></small></div>`);
} }
}, },
getRandom: function (a, b) { getRandom: function (a, b) {
return a + ((b - a) * Math.random()); return a + ((b - a) * Math.random());
}, },
feerverk_id: 0, feerverk_id: 0,
feerverk: function (name) { feerverk: function (name) {
const frc = { const frc = {
'name': 'fw04', 'name': 'fw04',
@ -82,7 +86,7 @@ const chat = {
frc.left -= 35; frc.left -= 35;
} }
if (frc.name !== undefined) { if (frc.name) {
this.sendSound(frc.sound); this.sendSound(frc.sound);
const obj = top.frames.main.document.getElementById('frvrks'); const obj = top.frames.main.document.getElementById('frvrks');
if (obj !== undefined) { if (obj !== undefined) {
@ -103,6 +107,7 @@ const chat = {
if (zad > 0) { if (zad > 0) {
setTimeout(`chat.feerverk_go(${id}, ${time_back}, "${img}", ${x}, 0);`, 500 * zad); setTimeout(`chat.feerverk_go(${id}, ${time_back}, "${img}", ${x}, 0);`, 500 * zad);
} else { } else {
time_back--; time_back--;
top.frames.main.document.getElementById(`frvanim_${id}`); top.frames.main.document.getElementById(`frvanim_${id}`);
if (time_back > 0) { if (time_back > 0) {
@ -258,10 +263,12 @@ const chat = {
clearText: function () { clearText: function () {
$('#textmsg').val(''); $('#textmsg').val('');
}, },
reflesh: function () { reflesh: function () {
this.time = 0; this.time = 0;
this.testTimer(true); this.testTimer(true);
}, },
reMoney: function () { reMoney: function () {
$('#moneyGM').html(`${c.money} кр.`); $('#moneyGM').html(`${c.money} кр.`);
}, },

View File

@ -1,4 +1,9 @@
<?php <?php
// я ебу, архивы поединков используют динамически-генерируемые логи из шаблона на лету
// вместо того чтобы хранить тупо статический текст
// сколько ещё открытий чудных?
// мораль: перед удалением проверить кто и где вызывает файл.
$log_text = []; $log_text = [];
$log_text[0] = []; //для муж. $log_text[0] = []; //для муж.

View File

@ -78,13 +78,11 @@ if (!isset($CRON_CORE) && $u->info['online'] < time() - 30) {
$error = fn(string $str): string => '<div style="color: red; text-align: center; font-weight: bold;">' . $str . '</div>'; $error = fn(string $str): string => '<div style="color: red; text-align: center; font-weight: bold;">' . $str . '</div>';
require_once 'log_text.php';
$btl = new Battle(); $btl = new Battle();
require_once('log_text.php'); $isBattle = $btl->initRefresh($u);
$btl->is = $u->is;
$btl->items = $u->items;
$btl->info = $btl->battleInfo($u->info['battle']);
if (!isset($btl->info['id'])) { if (!$isBattle) {
if ($u->info['battle'] == -1) { if ($u->info['battle'] == -1) {
//завершаем поединок //завершаем поединок
Db::sql('update users set battle = 0, online = unix_timestamp() where id = ?', [$u->info['id']]); Db::sql('update users set battle = 0, online = unix_timestamp() where id = ?', [$u->info['id']]);

View File

@ -86,12 +86,11 @@ if (isset($CRON_CORE) && (isset($_POST['atack'], $_POST['block']) || (isset($_PO
) . "' WHERE `id`='" . $u->info['id'] . "' LIMIT 1" ) . "' WHERE `id`='" . $u->info['id'] . "' LIMIT 1"
); );
} }
$btl = new Battle();
require_once('log_text.php'); require_once('log_text.php');
$btl->is = $u->is; $btl = new Battle();
$btl->items = $u->items; $isBattle = $btl->initRefresh($u);
$btl->info = $btl->battleInfo($u->info['battle']);
if (!isset($btl->info['id'])) { if (!$isBattle) {
if ($u->info['battle'] == -1) { if ($u->info['battle'] == -1) {
//завершаем поединок //завершаем поединок
$upd = mysql_query( $upd = mysql_query(

1214
logs.php

File diff suppressed because it is too large Load Diff

414
main.php
View File

@ -7,49 +7,7 @@ use Core\{Config, Database, Db};
use User\ItemsModel; use User\ItemsModel;
use User\UserIp; use User\UserIp;
?> function var_info($vars, $d = false): void
<style>
/* Paste this css to your style sheet file or under head tag */
/* This only works with JavaScript,
if it's not present, don't show loader */
.no-js #loader {
display: none;
}
.js #loader {
display: block;
position: absolute;
left: 100px;
top: 0;
}
.se-pre-con {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 9999;
background: url(default.gif) center no-repeat #e2e0e1;
}
pre {
border: 1px solid gray;
border-radius: 5px;
padding: 3px 6px;
background: #cecece;
color: black;
font-family: Arial, sans-serif;
font-size: 12px;
}
</style>
<link href="<?= Config::img() ?>/css/main.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="/css/training/modal.css">
<div class="se-pre-con" id="se-pre-con"></div>
<?php
function var_info($vars, $d = false)
{ {
echo "<pre>\n"; echo "<pre>\n";
var_dump($vars); var_dump($vars);
@ -72,7 +30,7 @@ $code = PassGen::intCode(); //для ссылок вида ?rnd=XXXXXX, врод
/** Восстанавливаем всем ботам, которые не в бою здоровье до максимума. */ /** Восстанавливаем всем ботам, которые не в бою здоровье до максимума. */
Db::sql( Db::sql(
'update stats set hpNow = hpAll, mpNow = mpAll where id in (select id from users where bot = 2 and battle = 0)' 'update stats set hpnow = hpall, mpnow = mpall where id in (select id from users where bot = 2 and battle = 0)'
); );
if ($u->info['banned'] > 0) { if ($u->info['banned'] > 0) {
@ -99,12 +57,12 @@ if ($u->room['file'] == "room_hostel" || $u->room['file'] == "post") {
if (($u->info['online'] < time() - 60 || $u->info['afk'] != '')) { if (($u->info['online'] < time() - 60 || $u->info['afk'] != '')) {
$filter->setOnline(0, $u->info['id']); $filter->setOnline(0, $u->info['id']);
Db::sql( Db::sql(
'update users set online = unix_timestamp(), timeMain = unix_timestamp(), afk = ? where id = ?', 'update users set online = unix_timestamp(), timemain = unix_timestamp(), afk = ? where id = ?',
['', $u->info['id']] ['', $u->info['id']]
); );
} elseif ($u->info['timeMain'] < time() - 60 || $u->info['afk'] != '') { } elseif ($u->info['timeMain'] < time() - 60 || $u->info['afk'] != '') {
Db::sql( Db::sql(
'update users set online = unix_timestamp(), timeMain = unix_timestamp(), afk = ? where id = ?', 'update users set online = unix_timestamp(), timemain = unix_timestamp(), afk = ? where id = ?',
['', $u->info['id']] ['', $u->info['id']]
); );
} }
@ -129,10 +87,6 @@ if ($u->info['battle_text'] != '' && $u->info['last_b'] > 0) {
); );
} }
if (!isset($_GET['mAjax']) && !isset($_GET['ajaxHostel'])) {
echo '<!DOCTYPE html>
<div style="padding-top:0; margin-top:17px; /*height:100%;*/ background-color:#e2e0e1;">';
}
$act = -2; $act = -2;
$act2 = 0; $act2 = 0;
$u->stats = $u->getStats($u->info['id'], 0); $u->stats = $u->getStats($u->info['id'], 0);
@ -176,11 +130,11 @@ if (isset($_GET['atak_user']) && $u->info['battle'] == 0 && $_GET['atak_user'] !
] ]
); );
$check = Db::getValue( $check = Db::getValue(
'select id from eff_users where id_eff = 478 and uid = ? and `delete` = 0 order by overType desc limit 1', 'select id from eff_users where id_eff = 478 and uid = ? and `delete` = 0 order by overtype desc limit 1',
[$u->info['id']] [$u->info['id']]
); );
$check2 = Db::getValue( $check2 = Db::getValue(
'select id from eff_users where id_eff = 479 and uid = ? and `delete` = 0 order by overType desc limit 1', 'select id from eff_users where id_eff = 479 and uid = ? and `delete` = 0 order by overtype desc limit 1',
[$ua['id']] [$ua['id']]
); );
$check3 = Db::getValue( $check3 = Db::getValue(
@ -234,7 +188,8 @@ if (isset($_GET['atak_user']) && $u->info['battle'] == 0 && $_GET['atak_user'] !
} }
Db::sql( Db::sql(
'update stats set hpNow = ?, mpNow = ? where id = ?', [ 'update stats set hpnow = ?, mpnow = ? where id = ?',
[
$usta['hpNow'], $usta['hpNow'],
$usta['mpNow'], $usta['mpNow'],
$usta['id'], $usta['id'],
@ -292,70 +247,6 @@ if ($u->info['battle'] == 0) {
'select id, battle from battle_users where uid = ? and finish = 0 limit 1', [$u->info['id']] 'select id, battle from battle_users where uid = ? and finish = 0 limit 1', [$u->info['id']]
); );
} }
if (isset($btl_last['id']) && $u->info['battle'] == 0) {
require_once('modules_data/btl_.php');
$u->info['battle_lsto'] = true;
} elseif ($u->info['battle'] == 0) {
//Проверка/Снятие предметов
if (!isset($sleep['id'])) {
$act2 = $u->testItems($u->info['id'], $u->stats, 0);
}
if ($act2 != -2 && $act == -2) {
$act = $act2;
}
if ($u->room['block_all'] != 0) {
unset($_GET['inv'], $_GET['skills'], $_GET['anketa']);
}
if (!isset($u->tfer['id']) && $u->room['block_all'] == 0) {
//Одеть/снять предмет
if (isset($_GET['rstv']) && isset($_GET['inv'])) {
$u->freeStatsMod($_GET['rstv'], $_GET['mf'], $u->info['id']);
} elseif (isset($_GET['ufs2']) && isset($_GET['inv'])) {
$u->freeStats2Item($_GET['itmid'], $_GET['ufs2'], $u->info['id'], 1);
} elseif (isset($_GET['ufs2mf']) && isset($_GET['inv'])) {
$u->freeStats2Item($_GET['itmid'], $_GET['ufs2mf'], $u->info['id'], 2);
} elseif (isset($_GET['ufsmst']) && isset($_GET['inv'])) {
$u->itemsSmSave($_GET['itmid'], $_GET['ufsmst'], $u->info['id']);
} elseif (isset($_GET['ufsms']) && isset($_GET['inv'])) {
$u->itemsSmSave($_GET['itmid'], $_GET['ufsms'] + 100, $u->info['id']);
} elseif (isset($_GET['ufs']) && isset($_GET['inv'])) {
$u->freeStatsItem($_GET['itmid'], $_GET['ufs'], $u->info['id']);
} elseif (isset($_GET['sid']) && isset($_GET['inv'])) {
$act = $u->snatItem($_GET['sid'], $u->info['id']);
} elseif (isset($_GET['oid']) && isset($_GET['inv'])) {
$act = $u->odetItem($_GET['oid'], $u->info['id']);
} elseif (isset($_GET['item_rune']) && isset($_GET['inv'])) {
$u->runeItem(null);
} elseif (isset($_GET['remitem'], $_GET['inv'])) {
$act = $u->snatItemAll($u->info['id']);
} elseif (isset($_GET['delete']) && isset($_GET['inv']) && $u->newAct($_GET['sd4'])) {
if ($u->info['allLock'] < time()) {
$u->deleteItem(intval($_GET['delete']), $u->info['id']);
} else {
echo '<script>setTimeout(function(){alert("Вам запрещено удалять предметы до ' . date(
'd.m.y H:i', $u->info['allLock']
) . '")},250);</script>';
}
} elseif (isset($_GET['unstack']) && isset($_GET['inv']) && $u->newAct($_GET['sd4'])) {
$u->unstack(intval($_GET['unstack']), intval($_GET['unstackCount']));
} elseif (isset($_GET['stack']) && isset($_GET['inv'])) {
$u->stack($_GET['stack']);
} elseif (isset($_GET['end_qst_now'])) {
$q->endq((int)$_GET['end_qst_now'], 'end');
}
//Использовать эффект
if (isset($_GET['use_pid'])) {
$magic->useItems((int)$_GET['use_pid']);
}
} else {
if ($u->room['block_all'] > 0) {
$u->error = 'В данной локации запрещено пользоваться чем-либо...';
}
}
}
if ($magic->youuse > 0) { if ($magic->youuse > 0) {
$act = 1; $act = 1;
@ -372,90 +263,6 @@ if ($act != -2) {
} }
} }
/*-----------------------*/
if (isset($_GET['security']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('modules_data/_changepass.php');
} elseif (isset($_GET['friends']) && !isset($u->tfer['id'])) {
require_once('modules_data/_friends.php');
} elseif (($u->info['admin'] > 0 || $u->info['level'] > 7 || $u->info['align'] == 50) && isset($_GET['notepad']) && !isset($u->tfer['id'])) {
require_once('modules_data/notepad.php');
} elseif (isset($_GET['moderation'])) {
require_once('modules_data/_mod.php');
} elseif (isset($_GET['vip']) && !isset($u->tfer['id'])) {
require_once('modules_data/vip.php');
} elseif (
(
isset($_GET['zayvka']) &&
$u->info['battle'] == 0
) ||
(
isset($_GET['zayvka']) &&
(
$_GET['r'] == 6 ||
$_GET['r'] == 7 ||
!isset($_GET['r'])
) &&
$u->info['battle'] > 0
) &&
!isset($u->tfer['id'])
) {
require_once('modules_data/_zv.php');
} elseif (isset($_GET['alh']) && !isset($u->tfer['id'])) {
require_once('modules_data/_alh.php');
} elseif (isset($_GET['clan']) && !isset($u->tfer['id'])) {
require_once('modules_data/_clan.php'); //Панель кланов
} elseif (isset($_GET['alhp']) && ($u->info['admin'] == 1 || $u->info['align'] == 50) && !isset($u->tfer['id'])) {
require_once('modules_data/_alhp.php'); //Панель алхимиков
} elseif ($u->info['align'] > 0 && !isset($u->tfer['id']) && !empty($_GET['ap'])) {
require_once('modules_data/alignPanel.php'); //Панель склонностей, GET чтобы вызывать по ссылке.
} elseif ($u->info['battle'] != 0) {
//поединок
if ((!isset($btl_last['id']) || $u->info['battle'] > 0) && !isset($u->info['battle_lsto'])) {
require_once('modules_data/btl_.php');
echo '<script type="text/javascript" src="js/onlineList.js"></script>';
}
} else {
if (isset($_GET['talk']) && !isset($u->tfer['id'])) {
echo "<script>document.getElementById('se-pre-con').parentNode.removeChild(document.getElementById('se-pre-con'));</script>";
if ($u->info['dnow'] > 0) {
$d = new Dungeon;
}
require_once('modules_data/_dialog.php');
} elseif (isset($_GET['inv']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('modules_data/_inv.php');
} elseif (isset($_GET['add_eff']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('modules_data/add_eff.php');
} elseif (isset($_GET['referals']) && $trololo == 1 && !isset($u->tfer['id'])) {
require_once('modules_data/_ref.php');
} elseif (isset($_GET['obraz']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('modules_data/_obraz.php');
} elseif (isset($_GET['skills']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('modules_data/_umenie.php');
} elseif ((isset($_GET['transfer']) || isset($u->tfer['id'])) && $u->info['level'] >= Config::get(
'level_ransfer'
) && $trololo == 1 && $u->info['inTurnir'] == 0 && $u->info['inTurnirnew'] == 0) {
if ($u->info['allLock'] > time()) {
require_once('modules_data/_locations.php');
echo '<script>setTimeout(function(){alert("Вам запрещены передачи до ' . date(
'd.m.y H:i', $u->info['allLock']
) . '")},250);</script>';
} else {
require_once('modules_data/_transfers.php');
}
} elseif (isset($_GET['anketa']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('settings.php');
} elseif (isset($_GET['newanimal']) && $trololo == 1) {
require_once('modules_data/_newanimal.php');
} elseif (isset($_GET['act_trf']) && $u->room['block_all'] == 0) {
require_once('modules_data/act_trf.php');
} elseif (isset($_GET['titul']) && $u->room['block_all'] == 0) {
require_once('modules_data/titul.php');
} elseif (!isset($u->tfer['id'])) {
require_once('modules_data/_locations.php');
}
}
//Проверяем квесты на готовность //Проверяем квесты на готовность
if (in_array( if (in_array(
$u->room['file'], $u->room['file'],
@ -547,12 +354,209 @@ foreach ($sp as $pl) {
</a> </a>
HTML; HTML;
} }
} else {
echo '[!]';
} }
unset($tk, $itmo); unset($tk, $itmo);
} }
$spl = Db::getValue('select exp from levels where nextlevel = ? order by exp limit 1', [$u->info['level'] + 1]);
?>
<style>
/* Paste this css to your style sheet file or under head tag */
/* This only works with JavaScript,
if it's not present, don't show loader */
.no-js #loader {
display: none;
}
.js #loader {
display: block;
position: absolute;
left: 100px;
top: 0;
}
.se-pre-con {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 9999;
background: url(default.gif) center no-repeat #e2e0e1;
}
pre {
border: 1px solid gray;
border-radius: 5px;
padding: 3px 6px;
background: #cecece;
color: black;
font-family: Arial, sans-serif;
font-size: 12px;
}
</style>
<link href="<?= Config::img() ?>/css/main.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="/css/training/modal.css">
<div class="se-pre-con" id="se-pre-con"></div>
<?php
if (!isset($_GET['mAjax']) && !isset($_GET['ajaxHostel'])) {
echo '<!DOCTYPE html>
<div style="padding-top:0; margin-top:17px; /*height:100%;*/ background-color:#e2e0e1;">';
}
if (isset($btl_last['id']) && $u->info['battle'] == 0) {
require_once('modules_data/btl_.php');
$u->info['battle_lsto'] = true;
} elseif ($u->info['battle'] == 0) {
//Проверка/Снятие предметов
if (!isset($sleep['id'])) {
$act2 = $u->testItems($u->info['id'], $u->stats, 0);
}
if ($act2 != -2 && $act == -2) {
$act = $act2;
}
if ($u->room['block_all'] != 0) {
unset($_GET['inv'], $_GET['skills'], $_GET['anketa']);
}
if (!isset($u->tfer['id']) && $u->room['block_all'] == 0) {
//Одеть/снять предмет
if (isset($_GET['rstv']) && isset($_GET['inv'])) {
$u->freeStatsMod($_GET['rstv'], $_GET['mf'], $u->info['id']);
} elseif (isset($_GET['ufs2']) && isset($_GET['inv'])) {
$u->freeStats2Item($_GET['itmid'], $_GET['ufs2'], $u->info['id'], 1);
} elseif (isset($_GET['ufs2mf']) && isset($_GET['inv'])) {
$u->freeStats2Item($_GET['itmid'], $_GET['ufs2mf'], $u->info['id'], 2);
} elseif (isset($_GET['ufsmst']) && isset($_GET['inv'])) {
$u->itemsSmSave($_GET['itmid'], $_GET['ufsmst'], $u->info['id']);
} elseif (isset($_GET['ufsms']) && isset($_GET['inv'])) {
$u->itemsSmSave($_GET['itmid'], $_GET['ufsms'] + 100, $u->info['id']);
} elseif (isset($_GET['ufs']) && isset($_GET['inv'])) {
$u->freeStatsItem($_GET['itmid'], $_GET['ufs'], $u->info['id']);
} elseif (isset($_GET['sid']) && isset($_GET['inv'])) {
$act = $u->snatItem($_GET['sid'], $u->info['id']);
} elseif (isset($_GET['oid']) && isset($_GET['inv'])) {
$act = $u->odetItem($_GET['oid'], $u->info['id']);
} elseif (isset($_GET['item_rune']) && isset($_GET['inv'])) {
$u->runeItem(null);
} elseif (isset($_GET['remitem'], $_GET['inv'])) {
$act = $u->snatItemAll($u->info['id']);
} elseif (isset($_GET['delete']) && isset($_GET['inv']) && $u->newAct($_GET['sd4'])) {
if ($u->info['allLock'] < time()) {
$u->deleteItem(intval($_GET['delete']), $u->info['id']);
} else {
echo '<script>setTimeout(function(){alert("Вам запрещено удалять предметы до ' . date(
'd.m.y H:i', $u->info['allLock']
) . '")},250);</script>';
}
} elseif (isset($_GET['unstack']) && isset($_GET['inv']) && $u->newAct($_GET['sd4'])) {
$u->unstack(intval($_GET['unstack']), intval($_GET['unstackCount']));
} elseif (isset($_GET['stack']) && isset($_GET['inv'])) {
$u->stack($_GET['stack']);
} elseif (isset($_GET['end_qst_now'])) {
$q->endq((int)$_GET['end_qst_now'], 'end');
}
//Использовать эффект
if (isset($_GET['use_pid'])) {
$magic->useItems((int)$_GET['use_pid']);
}
} else {
if ($u->room['block_all'] > 0) {
$u->error = 'В данной локации запрещено пользоваться чем-либо...';
}
}
}
/*-----------------------*/
if (isset($_GET['security']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('modules_data/_changepass.php');
} elseif (isset($_GET['friends']) && !isset($u->tfer['id'])) {
require_once('modules_data/_friends.php');
} elseif (($u->info['admin'] > 0 || $u->info['level'] > 7 || $u->info['align'] == 50) && isset($_GET['notepad']) && !isset($u->tfer['id'])) {
require_once('modules_data/notepad.php');
} elseif (isset($_GET['moderation'])) {
require_once('modules_data/_mod.php');
} elseif (isset($_GET['vip']) && !isset($u->tfer['id'])) {
require_once('modules_data/vip.php');
} elseif (
(
isset($_GET['zayvka']) &&
$u->info['battle'] == 0
) ||
(
isset($_GET['zayvka']) &&
(
$_GET['r'] == 6 ||
$_GET['r'] == 7 ||
!isset($_GET['r'])
) &&
$u->info['battle'] > 0
) &&
!isset($u->tfer['id'])
) {
require_once('modules_data/_zv.php');
} elseif (isset($_GET['alh']) && !isset($u->tfer['id'])) {
require_once('modules_data/_alh.php');
} elseif (isset($_GET['clan']) && !isset($u->tfer['id'])) {
require_once('modules_data/_clan.php'); //Панель кланов
} elseif (isset($_GET['alhp']) && ($u->info['admin'] == 1 || $u->info['align'] == 50) && !isset($u->tfer['id'])) {
require_once('modules_data/_alhp.php'); //Панель алхимиков
} elseif ($u->info['align'] > 0 && !isset($u->tfer['id']) && !empty($_GET['ap'])) {
require_once('modules_data/alignPanel.php'); //Панель склонностей, GET чтобы вызывать по ссылке.
} elseif ($u->info['battle'] != 0) {
//поединок
if ((!isset($btl_last['id']) || $u->info['battle'] > 0) && !isset($u->info['battle_lsto'])) {
require_once('modules_data/btl_.php');
echo '<script type="text/javascript" src="js/onlineList.js"></script>';
}
} else {
if (isset($_GET['talk']) && !isset($u->tfer['id'])) {
echo "<script>document.getElementById('se-pre-con').parentNode.removeChild(document.getElementById('se-pre-con'));</script>";
if ($u->info['dnow'] > 0) {
$d = new Dungeon;
}
require_once('modules_data/_dialog.php');
} elseif (isset($_GET['inv']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('modules_data/_inv.php');
} elseif (isset($_GET['add_eff']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('modules_data/add_eff.php');
} elseif (isset($_GET['referals']) && $trololo == 1 && !isset($u->tfer['id'])) {
require_once('modules_data/_ref.php');
} elseif (isset($_GET['obraz']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('modules_data/_obraz.php');
} elseif (isset($_GET['skills']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('modules_data/_umenie.php');
} elseif ((isset($_GET['transfer']) || isset($u->tfer['id'])) && $u->info['level'] >= Config::get(
'level_ransfer'
) && $trololo == 1 && $u->info['inTurnir'] == 0 && $u->info['inTurnirnew'] == 0) {
if ($u->info['allLock'] > time()) {
require_once('modules_data/_locations.php');
echo '<script>setTimeout(function(){alert("Вам запрещены передачи до ' . date(
'd.m.y H:i', $u->info['allLock']
) . '")},250);</script>';
} else {
require_once('modules_data/_transfers.php');
}
} elseif (isset($_GET['anketa']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('settings.php');
} elseif (isset($_GET['newanimal']) && $trololo == 1) {
require_once('modules_data/_newanimal.php');
} elseif (isset($_GET['act_trf']) && $u->room['block_all'] == 0) {
require_once('modules_data/act_trf.php');
} elseif (isset($_GET['titul']) && $u->room['block_all'] == 0) {
require_once('modules_data/titul.php');
} elseif (!isset($u->tfer['id'])) {
require_once('modules_data/_locations.php');
}
}
if ($iloc != '') { if ($iloc != '') {
if ($iloce != '') { if ($iloce != '') {
$iloc = '<div style="padding:10px; color: red;">' . $iloce . '</div>' . $iloc; $iloc = '<div style="padding:10px; color: red;">' . $iloce . '</div>' . $iloc;
@ -617,10 +621,8 @@ if ($iloc != '') {
} }
unset($iloc, $iloce); unset($iloc, $iloce);
/*-----------------------*/ /*-----------------------*/
$spl = Db::getValue('select exp from levels where nextLevel = ? order by exp limit 1', [$u->info['level'] + 1]);
//Сломаное обучение. Как оно достало! Ins. 🤬 //Сломаное обучение. Как оно достало! Ins. 🤬
//$training_manager->render(); //$training_manager->render();
?> ?>

View File

@ -52,7 +52,7 @@ if ($r === FightRequest::BATTLE_RAZDEL_ENDED) {
IntlDateFormatter::LONG, IntlDateFormatter::LONG,
IntlDateFormatter::NONE IntlDateFormatter::NONE
); );
$dt = $_GET['logs2'] ??= time(); $dt = $_GET['logs2'] ??= (new DateTime('now midnight'))->gettimestamp();
$slogin = $_GET['filter'] ?? $_POST['filter'] ?? $u->info['login']; $slogin = $_GET['filter'] ?? $_POST['filter'] ?? $u->info['login'];
$slogin = str_replace('"', '', $slogin); $slogin = str_replace('"', '', $slogin);
$slogin = str_replace("'", '', $slogin); $slogin = str_replace("'", '', $slogin);
@ -190,10 +190,10 @@ if ($r === FightRequest::BATTLE_RAZDEL_ENDED) {
<a href="/main.php?zayvka=1&r=<?= FightRequest::BATTLE_RAZDEL_TOURNAMENTS ?>&rnd=<?= $code ?>">Турниры</a> <a href="/main.php?zayvka=1&r=<?= FightRequest::BATTLE_RAZDEL_TOURNAMENTS ?>&rnd=<?= $code ?>">Турниры</a>
</td> </td>
<td class="<?= $r == FightRequest::BATTLE_RAZDEL_GROUP ? 's' : 'm' ?>"> <td class="<?= $r == FightRequest::BATTLE_RAZDEL_GROUP ? 's' : 'm' ?>">
<a href="main.php?zayvka=1&r=<?= FightRequest::BATTLE_RAZDEL_GROUP ?>&rnd=<?= $code ?>">Групповые</a> <a href="/main.php?zayvka=1&r=<?= FightRequest::BATTLE_RAZDEL_GROUP ?>&rnd=<?= $code ?>">Групповые</a>
</td> </td>
<td class="<?= $r == FightRequest::BATTLE_RAZDEL_CHAOTIC ? 's' : 'm' ?>"> <td class="<?= $r == FightRequest::BATTLE_RAZDEL_CHAOTIC ? 's' : 'm' ?>">
<a href="main.php?zayvka=1&r=<?= FightRequest::BATTLE_RAZDEL_CHAOTIC ?>&rnd=<?= $code ?>">Хаотичные</a> <a href="/main.php?zayvka=1&r=<?= FightRequest::BATTLE_RAZDEL_CHAOTIC ?>&rnd=<?= $code ?>">Хаотичные</a>
</td> </td>
<td class="<?= $r == FightRequest::BATTLE_RAZDEL_CURRENT ? 's' : 'm' ?>"> <td class="<?= $r == FightRequest::BATTLE_RAZDEL_CURRENT ? 's' : 'm' ?>">
<a href="/main.php?zayvka=1&r=<?= FightRequest::BATTLE_RAZDEL_CURRENT ?>&rnd=<?= $code ?>">Текущие</a> <a href="/main.php?zayvka=1&r=<?= FightRequest::BATTLE_RAZDEL_CURRENT ?>&rnd=<?= $code ?>">Текущие</a>

View File

@ -19,21 +19,9 @@ if ($u->info['battle'] == 0 || isset($_GET['bend'])) {
die('<script>top.frames[\'main\'].location = "main.php";</script>'); die('<script>top.frames[\'main\'].location = "main.php";</script>');
} }
$thisBattle = Db::getRow('select * from battle where id = ?', [$u->info['battle']]); $thisBattle = Battle::get($u->info['battle']);
$allprice = Db::getValue('select sum(price1) from battle_users where battle = ?', [$u->info['battle']]); $allprice = Db::getValue('select sum(price1) from battle_users where battle = ?', [$u->info['battle']]);
function typeBattle($x): array
{
return match (true) {
$x >= 5000000 => [150, 150, 'Судный День', 'Судный День'],
$x >= 2500000 => [100, 125, 'Эпохальная Битва', 'Кровавое Побоище'],
$x >= 1000000 => [75, 100, 'Историческая Битва', 'Кровавая Сеча'],
$x >= 500000 => [50, 75, 'Величайшая Битва', 'Кровавая Резня'],
$x >= 100000 => [25, 50, 'Великая Битва', 'Кровавая Битва'],
default => [0, 0, 'Поединок', 'Кровавый Поединок'],
};
}
function finish(User $u): void function finish(User $u): void
{ {
if (!isset($_GET['finish'])) { if (!isset($_GET['finish'])) {
@ -72,11 +60,9 @@ function normJsonStr($str)
); );
} }
$allprice = typeBattle($allprice); $allprice = Battle::getType($allprice, $thisBattle['smert'] == 1);
if ($thisBattle['smert'] == 1) {
$allprice = [150, 150, 'Жесточайшее Сражение', 'Жесточайшее Сражение'];
}
?> ?>
<script src="/js/jquery.js"></script> <script src="/js/jquery.js"></script>

View File

@ -263,7 +263,7 @@ if ($u->room['file'] == 'bsenter') {
<BR> <BR>
</fieldset> </fieldset>
</form> </form>
<h4>Топ 10 игроков (новая статистиика) турнир 5<? //=$t['level']?> уровней</h4> <h4>Топ 10 игроков (новая статистиика) турнир 5 уровней</h4>
<?php <?php
$sp = mysql_query('SELECT * FROM `users` WHERE `win_bs`>0 ORDER BY `win_bs` DESC LIMIT 10'); $sp = mysql_query('SELECT * FROM `users` WHERE `win_bs`>0 ORDER BY `win_bs` DESC LIMIT 10');
$i = 1; $i = 1;
@ -279,7 +279,7 @@ if ($u->room['file'] == 'bsenter') {
$i++; $i++;
} }
?> ?>
<h4>Победители 10-ти предыдущих турниров для 5<? //=$t['level']?> уровней</h4> <h4>Победители 10-ти предыдущих турниров для 5 уровней</h4>
<?php <?php
$sp = mysql_query('SELECT * FROM `bs_statistic` WHERE `wuid` > 0 ORDER BY `id` DESC LIMIT 10'); $sp = mysql_query('SELECT * FROM `bs_statistic` WHERE `wuid` > 0 ORDER BY `id` DESC LIMIT 10');
$i = 1; $i = 1;
@ -317,7 +317,7 @@ if ($u->room['file'] == 'bsenter') {
$i++; $i++;
} }
?> ?>
<h4>Самый продолжительный турнир для 5<? //=$t['level']?> уровней</h4> <h4>Самый продолжительный турнир для 5 уровней</h4>
<?php <?php
$sp = mysql_query('SELECT * FROM `bs_statistic` WHERE `wuid` > 0 ORDER BY `time_sf` DESC LIMIT 1'); $sp = mysql_query('SELECT * FROM `bs_statistic` WHERE `wuid` > 0 ORDER BY `time_sf` DESC LIMIT 1');
$i = 1; $i = 1;

View File

@ -1,416 +1,429 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
//id Новогоднего подарка //id Новогоднего подарка
$pidid = 4008; $pidid = 4008;
$dy = 1; $dy = 1;
if((date('n',time())==2 && date('j',time())<=14)) if ((date('n', time()) == 2 && date('j', time()) <= 14)) {
{ $dy = 0;
$dy = 0;
} }
$dt = date('Y',time())+$dy; $dt = date('Y', time()) + $dy;
$dt = 2023; $dt = 2023;
if($u->room['file']=='elka') if ($u->room['file'] != 'elka') {
{ return;
if(isset($_GET['elka_shar'])&& isset($_GET['shar_name'])) //Украшение Ёлки
{
$itd = mysql_fetch_array(mysql_query(' SELECT * FROM `items_users` WHERE `item_id` > 2723 AND `item_id` < 2741 AND `uid`= "'.$u->info['id'].'" AND `delete` = 0 AND `id`= "'.$_GET['elka_shar'].'" LIMIT 1 '));
if (isset($itd['id'])){
$itdu=mysql_query('UPDATE `items_users` SET `delete` ="'.time().'" WHERE `id` ="'.$_GET['elka_shar'].'" LIMIT 1 ');
if (isset($itdu))
{
//eff Благословение Ёлки X
$effe = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid`= "'.$u->info['id'].'" AND `delete` = 0 AND `id_eff`= 477 LIMIT 1'));
if (isset($effe['id']))
{
$tdata=str_replace("add_hpAll=", "", $effe['data']);
$tdata=$tdata+5;
if ($tdata>500){$tdata=500;}
$newdata='add_hpAll='.$tdata;
$newname='Благословение Ёлки x'.($tdata/5);
$effeadd=mysql_query('UPDATE `eff_users` SET `name` = "'.$newname.'",`data`="'.$newdata.'", `timeUse` = "'.time().'"WHERE `id` ="'.$effe['id'].'" ');
if (isset($effeadd))
{
echo "Вы получили <b><font color=red>Благословение Ёлки x".round($tdata/5)."</font></b> " ;
}
}
else
{
$effeadd=mysql_query('INSERT INTO `eff_users`
(`id`,`id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`)
VALUES
(NULL, "477", "'.$u->info['id'].'", "Благословение Ёлки x1", "add_hpAll=5", "110", "'.time().'", "0", "", "0", "0", "0", "", "1", "-1", "0", "0", "0", "", "0", "0", "0", "0", "0")');
if (isset($effeadd))
{
echo "Вы получили <b><font color=red>Благословение Ёлки x1</font></b> " ;
}
}
echo "Использовал: <b><font color=red>".$_GET['shar_name']."</font><b>" ;
}
else
{
echo "<b><font color=red>Ошибка</font></b>" ;
}
}
}
if(isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d') <= 8)))
{
//получаем свой новогодний подарок за текущий год addItem($id,$uid)
$smt = $u->testAction('`uid` = "'.$u->info['id'].'" AND `vars` = "take_gift_'.$dt.'" LIMIT 1',1);
if(!isset($smt['id']))
{
$pid = \User\ItemsModel::addItem($pidid,$u->info['id']);
if($pid>0)
{
mysql_query('UPDATE `items_users` SET `gift` = "Администрация",`gtxt1` = "Поздравляем Вас с Новым Годом!" WHERE `id` = "'.$pid.'" AND `uid` = "'.$u->info['id'].'" LIMIT 1');
$u->addAction(time(),'take_gift_'.$dt.'',$u->info['city']);
echo '<font color=red>Предмет находится у Вас в инвентаре, в разделе "прочее"</font>';
}else{
echo '<font color=red>Не удалось получить подарок...</font>';
}
}else{
echo '<font color=red>Вы уже получили свой подарок ;)</font>';
}
}elseif(isset($_GET['del']))
{
if($u->info['admin']>0 || ($u->info['align']>1 && $u->info['align']<2) || ($u->info['align']>3 && $u->info['align']<4))
{
if($u->info['admin']==0)
{
$pInfo = ''.$u->info['align'].'|'.$u->info['clan'].'|'.$u->info['login'].'|'.$u->info['level'].'|'.$u->info['cityreg'].'';
}else{
$pInfo = '1';
}
mysql_query("UPDATE `elka` SET `delete`='".$pInfo."' WHERE `id`='".mysql_real_escape_string($_GET['del'])."'");
}
}elseif(isset($_GET['use_cup']))
{
$smt = $u->testAction('`uid` = "'.$u->info['id'].'" AND `time` > '.(time()-600).' AND `vars` = "use_cupNewYear" LIMIT 1',1);
if(!isset($smt['id']))
{
$u->addAction(time(),'use_cupNewYear','');
mysql_query('UPDATE `stats` SET `hpNow` = "'.$u->stats['hpAll'].'",`mpNow` = "'.$u->stats['mpAll'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
echo '<font color=red>Успешно использован эликсир "Полное восстановление"</font>';
}
}elseif(isset($_POST['message']))
{
$_POST['message'] = htmlspecialchars($_POST['message'],NULL);
if($_POST['message']!='')
{
$dy = 1;
if((date('n',time())==1 && date('j',time())<=15))
{
$dy = 0;
}
$u->info['ET'] = $u->testAction('`uid` = "'.$u->info['id'].'" AND `time` > '.(time()-600).' AND `vars` = "send_elka" LIMIT 1',1);
if(isset($u->info['ET']['id']))
{
echo '<font color=red>Оставлять надписи на стволе ёлки можно не чаще одного раза в 10 минут</font>';
}else{
$pInfo = ''.$u->info['align'].'|'.$u->info['clan'].'|'.$u->info['login'].'|'.$u->info['level'].'|'.$u->info['cityreg'].'|'.$u->info['id'].'';
mysql_query("INSERT INTO `elka` (`year`,`time`,`pers`,`text`,`city`) VALUES (".(date('Y',time())+$dy).",".time().",'".$pInfo."','".mysql_real_escape_string($_POST['message'])."','".$u->info['city']."'); ");
$u->addAction(time(),'send_elka','');
}
}
}
?>
<style type="text/css">
.pH3 { COLOR: #8f0000; FONT-FAMILY: Arial; FONT-SIZE: 12pt; FONT-WEIGHT: bold; }
.class_ {
font-weight: bold;
color: #C5C5C5;
cursor:pointer;
}
.class_st {
font-weight: bold;
color: #659BA3;
cursor:pointer;
}
.class__ {
font-weight: bold;
color: #FFFFFF;
cursor:pointer;
background-color: #659BA3;
}
.class__st {
font-weight: bold;
color: #FFFFFF;
cursor:pointer;
background-color: #659BA3;
font-size: 10px;
}
.class_old {
font-weight: bold;
color: #919191;
cursor:pointer;
}
.class__old {
font-weight: bold;
color: #FFFFFF;
cursor:pointer;
background-color: #838383;
font-size: 10px;
}
</style>
<div align="right"><?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?></div>
<div id="hint3" style="visibility:hidden"></div>
<TABLE width="100%" cellspacing="0" cellpadding="0">
<tr><td valign="top"><div align="center" class="pH3">Новогодняя елка <?php
echo $dt; ?>!</div>
<br />
<!-- Подарки -->
<?php
$sg = 1;
//Если есть подарки
if((date('n',time())==12 || date('n',time())<=2) && $sg==1)
{
?>
<div style="padding-left:10px;">
<span class="pH3"><small>Подарки:</small></span>
<div>
<?php
$smt = $u->testAction('`uid` = "'.$u->info['id'].'" AND `time` > '.(time()-600).' AND `vars` = "use_cupNewYear" LIMIT 1',1);
?>
<a href="?use_cup=<?= $code; ?>" <?php if(isset($smt['id'])){ echo 'onClick="alert(\'Использовать "Чаша жизненных сил" можно не чаще одного раза в 10 минут\');return false;"'; } ?> /><img src="//img.new-combats.tech/cup2012.gif" style="padding:10px;<?php if(isset($smt['id'])){ echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;'; } ?>" title="Выпить из`Чаши жизненных сил`"></a>
<?php
if( date('m') == 12 || (date('m') == 1 && date('d') <= 8)) {
$pd = $u->testAction('`uid` = "'.$u->info['id'].'" AND `time` > '.(time()-600).' AND `vars` = "take_gift'.$dt.'" LIMIT 1',1);
?>
<a href="?take_gift=<?= $code; ?>" <?php if(isset($pd['id'])){ echo 'onClick="return false;"'; } ?> /><img src="//img.new-combats.tech/i/items/<?= 'podarok'.($dt-1); ?>.gif" style="padding:10px;<?php if(isset($pd['id'])){ echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;'; } ?>" title="Взять `Новогодний подарок 2023`"></a>
<?php } ?>
</div>
</div>
<hr>
<?php
}
//ТУТ Елка
// if($u->info['admin']>0)
// {
?>
<div style="padding-left:10px;">
<span class="pH3"><small>Наряжаем Ёлку:</small></span>
<div>
<?php
$it = mysql_fetch_array(mysql_query(' SELECT * FROM `items_users` WHERE `item_id` > 2723 AND `item_id` < 2741 AND `uid`= "'.$u->info['id'].'" AND `delete` = 0 LIMIT 1 '));
if (isset($it['item_id']))
{
$itt = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$it['item_id'].'" LIMIT 1'));
?>
<a href="?elka_shar=<?echo $it['id'];?>&shar_name=<?echo $itt['name'];?>" <?php if(!isset($itt['id'])){ echo 'onClick="return false;"'; } ?> /><img src="//img.new-combats.tech/i/items/<?= $itt['img']; ?>" style="padding:10px;<?php if(!isset($it['id'])){ echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;'; } ?>" title="Повесить `Шар`"></a>
<?}
else { echo "У Вас нет шаров для украшения Ёлки!";}
?>
</div>
</div>
<hr>
<?php
// }
if(isset($_GET['page']))
{
$fpage = round($_GET['page']);
if($fpage<=0)
{
$fpage = 1;
}
}else{
$fpage = 1;
}
$limit1 = ($fpage-1)*20+$fpage-1;
$limit2 = 21;
$i = mysql_fetch_array(mysql_query('SELECT COUNT(`year`) FROM `elka` WHERE `year` = "'.$dt.'" AND (`delete` = "0" OR '.$u->info['admin'].' > 0) ORDER BY `id` DESC'));
$i = $i[0];
$d = ceil($i/21);
if($i>0)
{
if($d<13)
{
$j=0;
$pagesN = '';
while($i>=0)
{
$i -= 21;
if($i!=0)
{
$j++;
$r2 = '';
if($j<=$d)
{
if(isset($r))
{
$r2 = '&r='.$r;
}
$jt = $j;
if($fpage==$j)
{
$jt = '<span class="number">'.$j.'</span>';
}
$pagesN .= ' <a href="?id='.$post['id'].'&d='.$_GET['d'].'&page='.$j.'" title="Перейти на страницу №'.$j.'">'.$jt.'</a> ';
}
}
}
$pages .= ' '.$pagesN.' ';
}else{
$j = $fpage-6;
$i = 0;
$pagesN = '';
while($k<13)
{
if($j>0)
{
if($j<=$d)
{
$jt = $j;
if($fpage==$j)
{
$jt = '<span class="number">'.$j.'</span>';
}
$pagesN .= ' <a href="?id='.$post['id'].'&d='.$_GET['d'].'&page='.$j.'" title="Перейти на страницу №'.$j.'">'.$jt.'</a> ';
}
$k++;
}
$j++;
}
$prpage = $fpage-12;
$nxpage = $fpage+12;
if($prpage<=0)
{
$prpage = 1;
}
if($nxpage>$d)
{
$nxpage = $d;
}
$_GET['d'] = (int)$_GET['d'];
if($fpage-7>0)
{
$pages .= '<a href="?id='.$post['id'].'&d='.$_GET['d'].'&page=1" title="Первая страница">«</a> <a href="?id='.$post['id'].'&d='.$_GET['d'].'&page='.$prpage.'" title="Показать предыдущие страницы">...</a> ';
}
$pages .= ' '.$pagesN.' ';
if($fpage<$d-5)
{
$pages .= '<a href="?id='.$post['id'].'&d='.$_GET['d'].'&page='.$nxpage.'" title="Показать следующие страницы">...</a> <a href="?id='.$post['id'].'&d='.$_GET['d'].'&page='.$d.'" title="Последняя страница">»</a>';
}
}
}else{
$pages = '';
}
?>
<U>Посетители оставили надписи на стволе елки:</U> <?= $pages; ?><br>
<div style="padding:5px;">
<?php
$sp = mysql_query('SELECT * FROM `elka` WHERE `year`="'.$dt.'" AND `city`="'.$u->info['city'].'" AND (`delete` = "0" OR '.$u->info['admin'].' > 0) ORDER BY `time` DESC LIMIT '.$limit1.','.$limit2.'');
$page = floor((int)$_POST['page']);
if($page<1){ $page = 1; }elseif($page>300){ $page==300; }
while($pl = mysql_fetch_array($sp))
{
$prs = explode('|',$pl['pers']); $pers = '';
if($prs[0]!=0)
{
$pers .= '<img src="//img.new-combats.tech/i/align/align'.$prs[0].'.gif">';
}
if($prs[1]!=0)
{
$clanPrs = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id`="'.$prs[1].'" LIMIT 1'));
$pers .= '<img src="//img.new-combats.tech/i/clan/'.$clanPrs['name_mini'].'.gif">';
}
$pers .= '<b>'.$prs[2].'</b>['.$prs[3].']<a href="/info/'.$prs[5].'" title="Инф. о '.$prs[2].'" target="blank"><img src="//img.new-combats.tech/i/inf_'.$prs[4].'.gif"></a>';
if($pl['delete']!='0')
{
if($pl['delete']=='1')
{
if($u->info['admin']>0)
{
$pl['text'] = '<font color=red><i>Сообщение стерто</i></font> <font color=grey><small>('.$pl['text'].')</small></font>';
}else{
$pl['text'] = '<font color=red><i>Сообщение стерто</i></font>';
}
}else{
$prs = explode('|',$pl['delete']); $pers2 = '';
if($prs[0]!=0)
{
$pers2 .= '<img src="//img.new-combats.tech/i/align/align'.$prs[0].'.gif">';
}
if($prs[1]!=0)
{
$clanPrs = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id`="'.$prs[1].'" LIMIT 1'));
$pers2 .= '<img src="//img.new-combats.tech/i/clan/'.$clanPrs['img'].'.gif">';
}
$pers2 .= '<a href="javascript:top.toUser(\''.$prs[2].'\',\'private\');"><b>'.$prs[2].'</b></a>['.$prs[3].']<a href="/info/'.$prs[2].'" title="Инф. о '.$prs[2].'" target="blank"><img src="//img.new-combats.tech/i/inf_'.$prs[4].'.gif"></a>';
if($u->info['admin']>0 || ($u->info['align']>1 && $u->info['align']<2) || ($u->info['align']>3 && $u->info['align']<4))
{
$pl['text'] = '<i><font color=red>Сообщение стерто персонажем</font> '.$pers2.'</i> <font color=grey><small>('.$pl['text'].')</small></font>';
}else{
$pl['text'] = '<i><font color=red>Сообщение стерто персонажем</font> '.$pers2.'</i>';
}
}
}
if(($u->info['admin']>0 || ($u->info['align']>1 && $u->info['align']<2) || ($u->info['align']>3 && $u->info['align']<4)) && $pl['delete']=='0')
{
$dl = ' <a href="main.php?page='.$_POST['page'].'&del='.$pl['id'].'"><small>Стереть</small></a>';
}else{
$dl = '';
}
echo '<font class=date>'.date('d.m.Y H:i',$pl['time']).'</font> '.$pers.' - '.$pl['text'].''.$dl.'<BR>';
}
?>
</div>
Страницы: <?= $pages; ?><br>
<FORM method="post" action="main.php">
Оставить сообщение: <INPUT type=text name=message maxlength=150 size=50>&nbsp;<INPUT type=submit name=addmessage value='Добавить'>
</FORM>
<td width="280" valign="top"><table cellspacing="0" cellpadding="0">
<tr>
<td width="100%">&nbsp;</td>
<td><table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td><!-- -->
<?= $goLis; ?>
<!-- -->
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td nowrap="nowrap"><table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
<tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7" /></td>
<td bgcolor="#D3D3D3" nowrap="nowrap"><a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.9&amp;rnd=<?= $code; ?>';" title="<?php thisInfRm('1.180.0.9',1); ?>">Центральная Площадь</a></td>
</tr>
</table></td>
</tr> <tr>
<td nowrap="nowrap"><table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
<tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7" /></td>
<td bgcolor="#D3D3D3" nowrap="nowrap"><div align="left"><a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.209&amp;rnd=<?= $code; ?>';" title="<?php thisInfRm('1.180.0.209',1); ?>">Ледяная пещера</a></div></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
<br />
<center></center></td>
</table>
<div id="textgo" style="visibility:hidden;"></div>
<?php
} }
if (isset($_GET['elka_shar']) && isset($_GET['shar_name'])) //Украшение Ёлки
{
$itd = mysql_fetch_array(
mysql_query(' SELECT * FROM `items_users` WHERE `item_id` > 2723 AND `item_id` < 2741 AND `uid`= "' . $u->info['id'] . '" AND `delete` = 0 AND `id`= "' . $_GET['elka_shar'] . '" LIMIT 1 ')
);
if (isset($itd['id'])) {
$itdu = mysql_query('UPDATE `items_users` SET `delete` ="' . time() . '" WHERE `id` ="' . $_GET['elka_shar'] . '" LIMIT 1 ');
if (isset($itdu)) {
//eff Благословение Ёлки X
$effe = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid`= "' . $u->info['id'] . '" AND `delete` = 0 AND `id_eff`= 477 LIMIT 1'));
if (isset($effe['id'])) {
$tdata = str_replace("add_hpAll=", "", $effe['data']);
$tdata = $tdata + 5;
if ($tdata > 500) {
$tdata = 500;
}
$newdata = 'add_hpAll=' . $tdata;
$newname = 'Благословение Ёлки x' . ($tdata / 5);
$effeadd = mysql_query('UPDATE `eff_users` SET `name` = "' . $newname . '",`data`="' . $newdata . '", `timeUse` = "' . time() . '"WHERE `id` ="' . $effe['id'] . '" ');
if (isset($effeadd)) {
echo "Вы получили <b><font color=red>Благословение Ёлки x" . round($tdata / 5) . "</font></b> ";
}
} else {
$effeadd = mysql_query(
'INSERT INTO `eff_users`
(`id`,`id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`)
VALUES
(NULL, "477", "' . $u->info['id'] . '", "Благословение Ёлки x1", "add_hpAll=5", "110", "' . time(
) . '", "0", "", "0", "0", "0", "", "1", "-1", "0", "0", "0", "", "0", "0", "0", "0", "0")'
);
if (isset($effeadd)) {
echo "Вы получили <b><font color=red>Благословение Ёлки x1</font></b> ";
}
}
echo "Использовал: <b><font color=red>" . $_GET['shar_name'] . "</font><b>";
} else {
echo "<b><font color=red>Ошибка</font></b>";
}
}
}
if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d') <= 8))) {
//получаем свой новогодний подарок за текущий год addItem($id,$uid)
$smt = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "take_gift_' . $dt . '" LIMIT 1', 1);
if (!isset($smt['id'])) {
$pid = \User\ItemsModel::addItem($pidid, $u->info['id']);
if ($pid > 0) {
mysql_query('UPDATE `items_users` SET `gift` = "Администрация",`gtxt1` = "Поздравляем Вас с Новым Годом!" WHERE `id` = "' . $pid . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1');
$u->addAction(time(), 'take_gift_' . $dt . '', $u->info['city']);
echo '<font color=red>Предмет находится у Вас в инвентаре, в разделе "прочее"</font>';
} else {
echo '<font color=red>Не удалось получить подарок...</font>';
}
} else {
echo '<font color=red>Вы уже получили свой подарок ;)</font>';
}
} elseif (isset($_GET['del'])) {
if ($u->info['admin'] > 0 || ($u->info['align'] > 1 && $u->info['align'] < 2) || ($u->info['align'] > 3 && $u->info['align'] < 4)) {
if ($u->info['admin'] == 0) {
$pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg'] . '';
} else {
$pInfo = '1';
}
mysql_query("UPDATE `elka` SET `delete`='" . $pInfo . "' WHERE `id`='" . mysql_real_escape_string($_GET['del']) . "'");
}
} elseif (isset($_GET['use_cup'])) {
$smt = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "use_cupNewYear" LIMIT 1', 1);
if (!isset($smt['id'])) {
$u->addAction(time(), 'use_cupNewYear', '');
mysql_query('UPDATE `stats` SET `hpNow` = "' . $u->stats['hpAll'] . '",`mpNow` = "' . $u->stats['mpAll'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
echo '<font color=red>Успешно использован эликсир "Полное восстановление"</font>';
}
} elseif (isset($_POST['message'])) {
$_POST['message'] = htmlspecialchars($_POST['message'], null);
if ($_POST['message'] != '') {
$dy = 1;
if ((date('n', time()) == 1 && date('j', time()) <= 15)) {
$dy = 0;
}
$u->info['ET'] = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "send_elka" LIMIT 1', 1);
if (isset($u->info['ET']['id'])) {
echo '<font color=red>Оставлять надписи на стволе ёлки можно не чаще одного раза в 10 минут</font>';
} else {
$pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg'] . '|' . $u->info['id'] . '';
mysql_query(
"INSERT INTO `elka` (`year`,`time`,`pers`,`text`,`city`) VALUES (" . (date('Y', time()) + $dy) . "," . time() . ",'" . $pInfo . "','" . mysql_real_escape_string(
$_POST['message']
) . "','" . $u->info['city'] . "'); "
);
$u->addAction(time(), 'send_elka', '');
}
}
}
?> ?>
<style type="text/css">
.pH3 {
COLOR: #8f0000;
FONT-FAMILY: Arial;
FONT-SIZE: 12pt;
FONT-WEIGHT: bold;
}
.class_ {
font-weight: bold;
color: #C5C5C5;
cursor: pointer;
}
.class_st {
font-weight: bold;
color: #659BA3;
cursor: pointer;
}
.class__ {
font-weight: bold;
color: #FFFFFF;
cursor: pointer;
background-color: #659BA3;
}
.class__st {
font-weight: bold;
color: #FFFFFF;
cursor: pointer;
background-color: #659BA3;
font-size: 10px;
}
.class_old {
font-weight: bold;
color: #919191;
cursor: pointer;
}
.class__old {
font-weight: bold;
color: #FFFFFF;
cursor: pointer;
background-color: #838383;
font-size: 10px;
}
</style>
<div align="right"><?php if ($re != '') {
echo '<font color="red"><b>' . $re . '</b></font>';
} ?></div>
<div id="hint3" style="visibility:hidden"></div>
<TABLE width="100%" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">
<div align="center" class="pH3">Новогодняя елка <?php
echo $dt; ?>!
</div>
<br/>
<!-- Подарки -->
<?php
$sg = 1;
//Если есть подарки
if ((date('n', time()) == 12 || date('n', time()) <= 2) && $sg == 1) {
?>
<div style="padding-left:10px;">
<span class="pH3"><small>Подарки:</small></span>
<div>
<?php
$smt = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "use_cupNewYear" LIMIT 1', 1);
?>
<a href="?use_cup=<?= $code; ?>" <?php if (isset($smt['id'])) {
echo 'onClick="alert(\'Использовать "Чаша жизненных сил" можно не чаще одного раза в 10 минут\');return false;"';
} ?> /><img src="//img.new-combats.tech/cup2012.gif" style="padding:10px;<?php if (isset($smt['id'])) {
echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;';
} ?>" title="Выпить из`Чаши жизненных сил`"></a>
<?php
if (date('m') == 12 || (date('m') == 1 && date('d') <= 8)) {
$pd = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "take_gift' . $dt . '" LIMIT 1', 1);
?>
<a href="?take_gift=<?= $code; ?>" <?php if (isset($pd['id'])) {
echo 'onClick="return false;"';
} ?> /><img src="//img.new-combats.tech/i/items/<?= 'podarok' . ($dt - 1); ?>.gif" style="padding:10px;<?php if (isset($pd['id'])) {
echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;';
} ?>" title="Взять `Новогодний подарок 2023`"></a>
<?php } ?>
</div>
</div>
<hr>
<?php
}
//ТУТ Елка
// if($u->info['admin']>0)
// {
?>
<div style="padding-left:10px;">
<span class="pH3"><small>Наряжаем Ёлку:</small></span>
<div>
<?php
$it = mysql_fetch_array(mysql_query(' SELECT * FROM `items_users` WHERE `item_id` > 2723 AND `item_id` < 2741 AND `uid`= "' . $u->info['id'] . '" AND `delete` = 0 LIMIT 1 '));
if (isset($it['item_id'])) {
$itt = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "' . $it['item_id'] . '" LIMIT 1'));
?>
<a href="?elka_shar=<?php echo $it['id']; ?>&shar_name=<?php echo $itt['name']; ?>" <?php if (!isset($itt['id'])) {
echo 'onClick="return false;"';
} ?> /><img src="//img.new-combats.tech/i/items/<?= $itt['img']; ?>" style="padding:10px;<?php if (!isset($it['id'])) {
echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;';
} ?>" title="Повесить `Шар`"></a>
<?php
} else {
echo "У Вас нет шаров для украшения Ёлки!";
}
?>
</div>
</div>
<hr>
<?php
// }
if (isset($_GET['page'])) {
$fpage = round($_GET['page']);
if ($fpage <= 0) {
$fpage = 1;
}
} else {
$fpage = 1;
}
$limit1 = ($fpage - 1) * 20 + $fpage - 1;
$limit2 = 21;
$i = mysql_fetch_array(mysql_query('SELECT COUNT(`year`) FROM `elka` WHERE `year` = "' . $dt . '" AND (`delete` = "0" OR ' . $u->info['admin'] . ' > 0) ORDER BY `id` DESC'));
$i = $i[0];
$d = ceil($i / 21);
if ($i > 0) {
if ($d < 13) {
$j = 0;
$pagesN = '';
while ($i >= 0) {
$i -= 21;
if ($i != 0) {
$j++;
$r2 = '';
if ($j <= $d) {
if (isset($r)) {
$r2 = '&r=' . $r;
}
$jt = $j;
if ($fpage == $j) {
$jt = '<span class="number">' . $j . '</span>';
}
$pagesN .= ' <a href="?id=' . $post['id'] . '&d=' . $_GET['d'] . '&page=' . $j . '" title="Перейти на страницу №' . $j . '">' . $jt . '</a> ';
}
}
}
$pages .= ' ' . $pagesN . ' ';
} else {
$j = $fpage - 6;
$i = 0;
$pagesN = '';
while ($k < 13) {
if ($j > 0) {
if ($j <= $d) {
$jt = $j;
if ($fpage == $j) {
$jt = '<span class="number">' . $j . '</span>';
}
$pagesN .= ' <a href="?id=' . $post['id'] . '&d=' . $_GET['d'] . '&page=' . $j . '" title="Перейти на страницу №' . $j . '">' . $jt . '</a> ';
}
$k++;
}
$j++;
}
$prpage = $fpage - 12;
$nxpage = $fpage + 12;
if ($prpage <= 0) {
$prpage = 1;
}
if ($nxpage > $d) {
$nxpage = $d;
}
$_GET['d'] = (int)$_GET['d'];
if ($fpage - 7 > 0) {
$pages .= '<a href="?id=' . $post['id'] . '&d=' . $_GET['d'] . '&page=1" title="Первая страница">«</a> <a href="?id=' . $post['id'] . '&d=' . $_GET['d'] . '&page=' . $prpage . '" title="Показать предыдущие страницы">...</a> ';
}
$pages .= ' ' . $pagesN . ' ';
if ($fpage < $d - 5) {
$pages .= '<a href="?id=' . $post['id'] . '&d=' . $_GET['d'] . '&page=' . $nxpage . '" title="Показать следующие страницы">...</a> <a href="?id=' . $post['id'] . '&d=' . $_GET['d'] . '&page=' . $d . '" title="Последняя страница">»</a>';
}
}
} else {
$pages = '';
}
?>
<U>Посетители оставили надписи на стволе елки:</U> <?= $pages; ?><br>
<div style="padding:5px;">
<?php
$sp = mysql_query(
'SELECT * FROM `elka` WHERE `year`="' . $dt . '" AND `city`="' . $u->info['city'] . '" AND (`delete` = "0" OR ' . $u->info['admin'] . ' > 0) ORDER BY `time` DESC LIMIT ' . $limit1 . ',' . $limit2 . ''
);
$page = floor((int)$_POST['page']);
if ($page < 1) {
$page = 1;
} elseif ($page > 300) {
$page == 300;
}
while ($pl = mysql_fetch_array($sp)) {
$prs = explode('|', $pl['pers']);
$pers = '';
if ($prs[0] != 0) {
$pers .= '<img src="//img.new-combats.tech/i/align/align' . $prs[0] . '.gif">';
}
if ($prs[1] != 0) {
$clanPrs = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id`="' . $prs[1] . '" LIMIT 1'));
$pers .= '<img src="//img.new-combats.tech/i/clan/' . $clanPrs['name_mini'] . '.gif">';
}
$pers .= '<b>' . $prs[2] . '</b>[' . $prs[3] . ']<a href="/info/' . $prs[5] . '" title="Инф. о ' . $prs[2] . '" target="blank"><img src="//img.new-combats.tech/i/inf_' . $prs[4] . '.gif"></a>';
if ($pl['delete'] != '0') {
if ($pl['delete'] == '1') {
if ($u->info['admin'] > 0) {
$pl['text'] = '<font color=red><i>Сообщение стерто</i></font> <font color=grey><small>(' . $pl['text'] . ')</small></font>';
} else {
$pl['text'] = '<font color=red><i>Сообщение стерто</i></font>';
}
} else {
$prs = explode('|', $pl['delete']);
$pers2 = '';
if ($prs[0] != 0) {
$pers2 .= '<img src="//img.new-combats.tech/i/align/align' . $prs[0] . '.gif">';
}
if ($prs[1] != 0) {
$clanPrs = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id`="' . $prs[1] . '" LIMIT 1'));
$pers2 .= '<img src="//img.new-combats.tech/i/clan/' . $clanPrs['img'] . '.gif">';
}
$pers2 .= '<a href="javascript:top.toUser(\'' . $prs[2] . '\',\'private\');"><b>' . $prs[2] . '</b></a>[' . $prs[3] . ']<a href="/info/' . $prs[2] . '" title="Инф. о ' . $prs[2] . '" target="blank"><img src="//img.new-combats.tech/i/inf_' . $prs[4] . '.gif"></a>';
if ($u->info['admin'] > 0 || ($u->info['align'] > 1 && $u->info['align'] < 2) || ($u->info['align'] > 3 && $u->info['align'] < 4)) {
$pl['text'] = '<i><font color=red>Сообщение стерто персонажем</font> ' . $pers2 . '</i> <font color=grey><small>(' . $pl['text'] . ')</small></font>';
} else {
$pl['text'] = '<i><font color=red>Сообщение стерто персонажем</font> ' . $pers2 . '</i>';
}
}
}
if (($u->info['admin'] > 0 || ($u->info['align'] > 1 && $u->info['align'] < 2) || ($u->info['align'] > 3 && $u->info['align'] < 4)) && $pl['delete'] == '0') {
$dl = ' <a href="main.php?page=' . $_POST['page'] . '&del=' . $pl['id'] . '"><small>Стереть</small></a>';
} else {
$dl = '';
}
echo '<font class=date>' . date('d.m.Y H:i', $pl['time']) . '</font> ' . $pers . ' - ' . $pl['text'] . '' . $dl . '<BR>';
}
?>
</div>
Страницы: <?= $pages; ?><br>
<FORM method="post" action="main.php">
Оставить сообщение: <INPUT type=text name=message maxlength=150 size=50>&nbsp;<INPUT type=submit name=addmessage value='Добавить'>
</FORM>
<td width="280" valign="top">
<table cellspacing="0" cellpadding="0">
<tr>
<td width="100%">&nbsp;</td>
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td><!-- -->
<?= $goLis; ?>
<!-- -->
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td nowrap="nowrap">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
<tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
<td bgcolor="#D3D3D3" nowrap="nowrap">
<a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.9&amp;rnd=<?= $code; ?>';" title="<?php thisInfRm(
'1.180.0.9', 1
); ?>">Центральная Площадь</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td nowrap="nowrap">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
<tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
<td bgcolor="#D3D3D3" nowrap="nowrap">
<div align="left">
<a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.209&amp;rnd=<?= $code; ?>';" title="<?php thisInfRm(
'1.180.0.209', 1
); ?>">Ледяная пещера</a></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br/>
<center></center>
</td>
</table>
<div id="textgo" style="visibility:hidden;"></div>

View File

@ -22,7 +22,7 @@ if($u->room['file']=='novich')
$ids = ''; $ids = '';
$map_locs = array(); $map_locs = array();
$spm2 = mysql_query('SELECT `id`,`x`,`y` FROM `dungeon_map` WHERE `id_dng` = "106"'); $spm2 = mysql_query('SELECT `id`,`x`,`y` FROM `dungeon_map` WHERE `id_dng` = 106');
while( $plm2 = mysql_fetch_array( $spm2 ) ) { while( $plm2 = mysql_fetch_array( $spm2 ) ) {
$map_locs[] = array($plm2['x'],$plm2['y']); $map_locs[] = array($plm2['x'],$plm2['y']);
} }
@ -41,7 +41,7 @@ if($u->room['file']=='novich')
//Добавляем ботов и обьекты в пещеру $zid с for_dn = $dungeon['id'] //Добавляем ботов и обьекты в пещеру $zid с for_dn = $dungeon['id']
//Добавляем ботов //Добавляем ботов
$vls = ''; $vls = '';
$sp = mysql_query('SELECT * FROM `dungeon_bots` WHERE `for_dn` = "106"'); $sp = mysql_query('SELECT * FROM `dungeon_bots` WHERE `for_dn` = 106');
while( $pl = mysql_fetch_array( $sp ) ) { while( $pl = mysql_fetch_array( $sp ) ) {
if( $pl['id_bot'] == 0 && $pl['bot_group'] !=''){ if( $pl['id_bot'] == 0 && $pl['bot_group'] !=''){
$bots = explode( ',', $pl['bot_group'] ); $bots = explode( ',', $pl['bot_group'] );
@ -54,7 +54,7 @@ if($u->room['file']=='novich')
$ins1 = mysql_query('INSERT INTO `dungeon_bots` (`dn`,`id_bot`,`colvo`,`items`,`x`,`y`,`dialog`,`atack`,`go_bot`,`noatack`) VALUES '.$vls.''); $ins1 = mysql_query('INSERT INTO `dungeon_bots` (`dn`,`id_bot`,`colvo`,`items`,`x`,`y`,`dialog`,`atack`,`go_bot`,`noatack`) VALUES '.$vls.'');
//Добавляем обьекты //Добавляем обьекты
$vls = ''; $vls = '';
$sp = mysql_query('SELECT * FROM `dungeon_obj` WHERE `for_dn` = "106"'); $sp = mysql_query('SELECT * FROM `dungeon_obj` WHERE `for_dn` = 106');
while($pl = mysql_fetch_array($sp)) while($pl = mysql_fetch_array($sp))
{ {
$vls .= '("'.$zid.'","'.$pl['name'].'","'.$pl['img'].'","'.$pl['x'].'","'.$pl['y'].'","'.$pl['action'].'","'.$pl['type'].'","'.$pl['w'].'","'.$pl['h'].'","'.$pl['s'].'","'.$pl['s2'].'","'.$pl['os1'].'","'.$pl['os2'].'","'.$pl['os3'].'","'.$pl['os4'].'","'.$pl['type2'].'","'.$pl['top'].'","'.$pl['left'].'","'.$pl['date'].'"),'; $vls .= '("'.$zid.'","'.$pl['name'].'","'.$pl['img'].'","'.$pl['x'].'","'.$pl['y'].'","'.$pl['action'].'","'.$pl['type'].'","'.$pl['w'].'","'.$pl['h'].'","'.$pl['s'].'","'.$pl['s2'].'","'.$pl['os1'].'","'.$pl['os2'].'","'.$pl['os3'].'","'.$pl['os4'].'","'.$pl['type2'].'","'.$pl['top'].'","'.$pl['left'].'","'.$pl['date'].'"),';

View File

@ -417,7 +417,7 @@ if ($u->info['admin'] > 0) {
</tr> </tr>
</table> </table>
<?= $err ?> <?= $err ?>
<? switch ($level){ <?php switch ($level){
case 1:#-----Вход case 1:#-----Вход
?> ?>
<TABLE cellpadding=0 cellspacing=0> <TABLE cellpadding=0 cellspacing=0>
@ -458,7 +458,7 @@ if ($u->info['admin'] > 0) {
<A href="?arenda=advanced2&sd4=<?= $u->info['id']; ?>" onClick="return confirm('Вы уверены, что хотите заплатить 10 кр.?')">Арендовать</A> <A href="?arenda=advanced2&sd4=<?= $u->info['id']; ?>" onClick="return confirm('Вы уверены, что хотите заплатить 10 кр.?')">Арендовать</A>
<HR> <HR>
<? <?php
break; break;
case 2:#-----Арендованная койка case 2:#-----Арендованная койка
?> ?>
@ -479,7 +479,7 @@ if ($u->info['admin'] > 0) {
&nbsp;&bull; Размер сундука: <?= $maxbox; ?> вещей<BR> &nbsp;&bull; Размер сундука: <?= $maxbox; ?> вещей<BR>
&nbsp;&bull; Сувениры: <?= $max_p_box; ?> шт.<BR> &nbsp;&bull; Сувениры: <?= $max_p_box; ?> шт.<BR>
<? if ($objaga['type'] == "advanced2") { <?php if ($objaga['type'] == "advanced2") {
echo '&nbsp;&bull; Мест для животных: 2 <BR>'; echo '&nbsp;&bull; Мест для животных: 2 <BR>';
} ?> } ?>
&nbsp&bull; Койка<BR> &nbsp&bull; Койка<BR>
@ -498,7 +498,7 @@ if ($u->info['admin'] > 0) {
Смена аренды, оплаченной зубами на кредитную аренду запрещена.<BR> Смена аренды, оплаченной зубами на кредитную аренду запрещена.<BR>
Количество вещей, сувениров и животных на вашем складе не должно превышать допустимое значение для выбранного арендуемого помещения.<BR> Количество вещей, сувениров и животных на вашем складе не должно превышать допустимое значение для выбранного арендуемого помещения.<BR>
</SMALL> </SMALL>
<? <?php
break; break;
case 3:#-----Комната case 3:#-----Комната
switch ($room){ switch ($room){
@ -509,7 +509,7 @@ if ($u->info['admin'] > 0) {
<TEXTAREA rows=15 style='width: 90%;' name='notes'><?= $objaga['notes']; ?></TEXTAREA><BR> <TEXTAREA rows=15 style='width: 90%;' name='notes'><?= $objaga['notes']; ?></TEXTAREA><BR>
<INPUT type='hidden' name='room' value='1'> <INPUT type='hidden' name='room' value='1'>
<INPUT type='submit' name='savenotes' value='Сохранить текст'> <INPUT type='submit' name='savenotes' value='Сохранить текст'>
<? <?php
break; break;
case 2:#-----Сундук case 2:#-----Сундук
@ -693,7 +693,7 @@ if ($u->info['admin'] > 0) {
</TD> </TD>
</TR> </TR>
</TABLE> </TABLE>
<? break; <?php break;
case 7:#-----Персонажи case 7:#-----Персонажи
?> ?>
@ -832,7 +832,7 @@ if ($u->info['admin'] > 0) {
echo $r; echo $r;
?> ?>
<? <?php
break; break;
case 3:#-----Животные case 3:#-----Животные
?> ?>
@ -851,7 +851,7 @@ if ($u->info['admin'] > 0) {
} }
?></A> ?></A>
</TD> </TD>
<? if ($cage2['pet_in_cage'] == 2) { <?php if ($cage2['pet_in_cage'] == 2) {
echo '<TD width=150 align=center><nobr><B>' . $cage2['name'] . '</B> [' . $cage2['level'] . ']</nobr> echo '<TD width=150 align=center><nobr><B>' . $cage2['name'] . '</B> [' . $cage2['level'] . ']</nobr>
<A href="/main.php?pet_id=' . $cage2['id'] . '&sd4=' . $u->info['id'] . '&room=3&0.' . rand(0, 9999999999999999) . '" alt="Оставить"><IMG src="//img.new-combats.tech/i/obraz/' . $cage2['sex'] . '/' . $cage2['obraz'] . '.gif" width=120 height=220>'; <A href="/main.php?pet_id=' . $cage2['id'] . '&sd4=' . $u->info['id'] . '&room=3&0.' . rand(0, 9999999999999999) . '" alt="Оставить"><IMG src="//img.new-combats.tech/i/obraz/' . $cage2['sex'] . '/' . $cage2['obraz'] . '.gif" width=120 height=220>';
} else { } else {
@ -875,7 +875,7 @@ if ($u->info['admin'] > 0) {
</A> </A>
</TD> </TD>
</TR></TABLE> </TR></TABLE>
<? <?php
break; break;
case 4:#-----Сон case 4:#-----Сон
?> ?>
@ -892,7 +892,7 @@ if ($u->info['admin'] > 0) {
<A href="?to_<?= $link; ?>=1&sd4=<?= $u->info['id']; ?>&room=4&0.<?= rand(0, 9999999999999999); ?>"><?= $button; ?></A><BR> <A href="?to_<?= $link; ?>=1&sd4=<?= $u->info['id']; ?>&room=4&0.<?= rand(0, 9999999999999999); ?>"><?= $button; ?></A><BR>
<?= $div1 ?> <?= $div1 ?>
</SMALL> </SMALL>
<? <?php
}#--Конец свича $room }#--Конец свича $room
break; break;
case 4:#-----------------------------------------------смена аренды---------------------------------------- case 4:#-----------------------------------------------смена аренды----------------------------------------
@ -915,7 +915,7 @@ if ($u->info['admin'] > 0) {
&bull; Койка<BR> &bull; Койка<BR>
<A href="?changearenda=base&sd4=<?= $u->info['id']; ?>" onClick="return confirm('Вы уверены, что хотите заплатить 1 кр. за смену помещения?')">Сменить помещение</A> <A href="?changearenda=base&sd4=<?= $u->info['id']; ?>" onClick="return confirm('Вы уверены, что хотите заплатить 1 кр. за смену помещения?')">Сменить помещение</A>
<? <?php
} }
if ($objaga['type'] != "advanced"){ if ($objaga['type'] != "advanced"){
?> ?>
@ -929,7 +929,7 @@ if ($u->info['admin'] > 0) {
<A href="?changearenda=advanced&sd4=<?= $u->info['id']; ?>" onClick="return confirm('Вы уверены, что хотите заплатить 3 кр. за смену помещения?')">Сменить помещение</A> <A href="?changearenda=advanced&sd4=<?= $u->info['id']; ?>" onClick="return confirm('Вы уверены, что хотите заплатить 3 кр. за смену помещения?')">Сменить помещение</A>
<? <?php
} }
if ($objaga['type'] != "advanced2"){ if ($objaga['type'] != "advanced2"){
?> ?>
@ -944,7 +944,7 @@ if ($u->info['admin'] > 0) {
<A href="?changearenda=advanced2&sd4=<?= $u->info['id']; ?>" onClick="return confirm('Вы уверены, что хотите заплатить 10 кр. за смену помещения?')">Сменить помещение</A> <A href="?changearenda=advanced2&sd4=<?= $u->info['id']; ?>" onClick="return confirm('Вы уверены, что хотите заплатить 10 кр. за смену помещения?')">Сменить помещение</A>
<? <?php
} }
echo '<HR>'; echo '<HR>';
} }
@ -998,8 +998,8 @@ if ($u->info['admin'] > 0) {
<td bgcolor="#D3D3D3" nowrap><a href="#" id="greyText" class="menutop" onClick="location='main.php?loc=1.180.0.218&rnd=<?= $code; ?>';" <td bgcolor="#D3D3D3" nowrap><a href="#" id="greyText" class="menutop" onClick="location='main.php?loc=1.180.0.218&rnd=<?= $code; ?>';"
title="<?php thisInfRm('1.180.0.218', 1); ?>">Общ. Этаж 2</a></td> title="<?php thisInfRm('1.180.0.218', 1); ?>">Общ. Этаж 2</a></td>
</tr> </tr>
<? } ?> <?php } ?>
<? if ($u->info['room'] == '218' and $ar_lvl >= 2 and $sleep_mod == 0) { ?> <?php if ($u->info['room'] == '218' and $ar_lvl >= 2 and $sleep_mod == 0) { ?>
<tr> <tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td> <td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
<td bgcolor="#D3D3D3" nowrap><a href="#" id="greyText" class="menutop" onClick="location='main.php?loc=1.180.0.217&rnd=<?= $code; ?>';" <td bgcolor="#D3D3D3" nowrap><a href="#" id="greyText" class="menutop" onClick="location='main.php?loc=1.180.0.217&rnd=<?= $code; ?>';"

View File

@ -2,246 +2,240 @@
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
} }
if ($u->room['file'] == 'znahar') { if ($u->room['file'] != 'znahar') {
?> return;
<STYLE> }
.H3 { ?>
COLOR: #8f0000; <STYLE>
FONT-FAMILY: Arial; .H3 {
FONT-SIZE: 12pt; COLOR: #8f0000;
FONT-WEIGHT: bold; FONT-FAMILY: Arial;
} FONT-SIZE: 12pt;
</STYLE> FONT-WEIGHT: bold;
<SCRIPT> }
function gfastshow(dsc, dx, dy) { </STYLE>
top.fullfastshow(document, mmoves3, window.event, dsc, dx, dy); <SCRIPT>
} function gfastshow(dsc, dx, dy) {
top.fullfastshow(document, mmoves3, window.event, dsc, dx, dy);
}
function ghideshow() { function ghideshow() {
top.fullhideshow(mmoves3); top.fullhideshow(mmoves3);
} }
</SCRIPT> </SCRIPT>
</HEAD> </HEAD>
<body leftmargin=5 topmargin=5 marginwidth=5 marginheight=5 bgcolor=e2e0e0> <body leftmargin=5 topmargin=5 marginwidth=5 marginheight=5 bgcolor=e2e0e0>
<div id="mmoves3" <div id="mmoves3"
style="background-color:#FFFFCC; visibility:hidden; z-index: 101; overflow:visible; position:absolute; border-color:#666666; border-style:solid; border-width: 1px; padding: 2px;"></div> style="background-color:#FFFFCC; visibility:hidden; z-index: 101; overflow:visible; position:absolute; border-color:#666666; border-style:solid; border-width: 1px; padding: 2px;"></div>
<SCRIPT src='//img.new-combats.tech/i/commoninf.js'></SCRIPT> <SCRIPT src='//img.new-combats.tech/i/commoninf.js'></SCRIPT>
<TABLE width=100%> <TABLE width=100%>
<TR> <TR>
<TD> <TD>
<DIV class='H3' align=center>Комната Знахаря</DIV> <DIV class='H3' align=center>Комната Знахаря</DIV>
<BR> <BR>
<BR> <BR>
<b><i>Запахи трав наполняют помещение, непонятные и пугающие предметы скрываются в пляшущих тенях...<BR> <b><i>Запахи трав наполняют помещение, непонятные и пугающие предметы скрываются в пляшущих тенях...<BR>
Говорят, здесь можно изменить свою судьбу. Говорят, здесь можно изменить свою судьбу.
Стать кем-то иным... кем раньше был лишь в мечтах...</i></b><BR><BR> Стать кем-то иным... кем раньше был лишь в мечтах...</i></b><BR><BR>
Деньги: <B><?= $u->info['money']; ?></B> кр.<BR> Деньги: <B><?= $u->info['money']; ?></B> кр.<BR>
Бесплатных перераспределений: Сегодня - неограничено!<BR> Бесплатных перераспределений: Сегодня - неограничено!<BR>
</TD> </TD>
<TD width=1 valign=top> <TD width=1 valign=top>
<?php <?php
if ($c['znahar'] == 1) { if (\Core\Config::get('znahar') == 1) {
$raspst = 99999; $raspst = 99999;
} else { } else {
$raspst = 0; $raspst = 0;
} }
#------------------Запросы и прочее #------------------Запросы и прочее
$st = Helper\Conversion::dataStringToArray($u->info['stats']); $st = Helper\Conversion::dataStringToArray($u->info['stats']);
$vinos = [ $vinos = [
/* level,summvinos*/ /* level,summvinos*/
"0" => 3, "0" => 3,
"1" => 4, "1" => 4,
"2" => 5, "2" => 5,
"3" => 6, "3" => 6,
"4" => 7, "4" => 7,
"5" => 8, "5" => 8,
"6" => 9, "6" => 9,
"7" => 10, "7" => 10,
"8" => 11, "8" => 11,
"9" => 13, "9" => 13,
"10" => 16, "10" => 16,
"11" => 21, "11" => 21,
"12" => 41, "12" => 41,
"21" => 41, "21" => 41,
]; ];
#------------------Запросы и прочее #------------------Запросы и прочее
?> ?>
<table border="0" cellpadding="0" cellspacing="0"> <table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top"> <tr align="right" valign="top">
<td> <td>
<!-- --> <!-- -->
<?= $goLis; ?> <?= $goLis; ?>
<!-- --> <!-- -->
<table border="0" cellspacing="0" cellpadding="0"> <table border="0" cellspacing="0" cellpadding="0">
<tr> <tr>
<td nowrap="nowrap" id="moveto"> <td nowrap="nowrap" id="moveto">
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE"> <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
<tr> <tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td> <td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
<td bgcolor="#D3D3D3" nowrap><a href="?rnd=0.454008319854562&path=1.100.1.6.5" onclick="return check_access();" class="menutop" title="Время перехода: 20 сек. <td bgcolor="#D3D3D3" nowrap><a href="?rnd=0.454008319854562&path=1.100.1.6.5" onclick="return check_access();" class="menutop" title="Время перехода: 20 сек.
Сейчас в комнате 0 чел.">Этаж 2</a></td> Сейчас в комнате 0 чел.">Этаж 2</a></td>
</tr> </tr>
<tr> <tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td> <td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
<td bgcolor="#D3D3D3" nowrap><a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.221&rnd=<?= $code; ?>';" <td bgcolor="#D3D3D3" nowrap><a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.221&rnd=<?= $code; ?>';"
title="<?php thisInfRm('1.180.0.221', 1); ?>">Торговый Зал</a></td> title="<?php thisInfRm('1.180.0.221', 1); ?>">Торговый Зал</a></td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
<!-- <br /><span class="menutop"><nobr>Комната Знахаря</nobr></span>--> <!-- <br /><span class="menutop"><nobr>Комната Знахаря</nobr></span>-->
</td> </td>
</tr> </tr>
</table> </table>
<div id="mmoves" <div id="mmoves"
style="background-color:#FFFFCC; visibility:hidden; overflow:visible; position:absolute; border-color:#666666; border-style:solid; border-width: 1px; padding: 2px; white-space: nowrap;"></div> style="background-color:#FFFFCC; visibility:hidden; overflow:visible; position:absolute; border-color:#666666; border-style:solid; border-width: 1px; padding: 2px; white-space: nowrap;"></div>
</HTML> </HTML>
</TD> </TD>
</TR> </TR>
</TABLE> </TABLE>
<TABLE> <TABLE>
<TR bgcolor=#D8D8D8> <TR bgcolor=#D8D8D8>
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/strsmall.gif'> Характеристики</TD> <TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/strsmall.gif'> Характеристики</TD>
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/cureelixirsmall.gif'> Пристрастия</TD> <TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/cureelixirsmall.gif'> Пристрастия</TD>
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/weaponsmall.gif'> Прочее</TD> <TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/weaponsmall.gif'> Прочее</TD>
<TR> <TR>
<TD width=270 valign=top> <TD width=270 valign=top>
<SCRIPT> <SCRIPT>
//////////////Название,параметр,всего, +сколько, до скольки сбросить(макс возможное),сколько сбрасывать/прибавлять //////////////Название,параметр,всего, +сколько, до скольки сбросить(макс возможное),сколько сбрасывать/прибавлять
var pr = new Array( const pr = [
'Сила', 's1', <?=$st['s1'];?>, <?=$u->stats['s1'] - $st['s1'];?>, 3, 0, 'Сила', 's1', <?= $st['s1'];?>, <?= $u->stats['s1'] - $st['s1'];?>, 3, 0,
'Ловкость', 's2', <?=$st['s2'];?>, <?=$u->stats['s2'] - $st['s2'];?>, 3, 0, 'Ловкость', 's2', <?= $st['s2'];?>, <?= $u->stats['s2'] - $st['s2'];?>, 3, 0,
'Интуиция', 's3', <?=$st['s3'];?>, <?=$u->stats['s3'] - $st['s3'];?>, 3, 0, 'Интуиция', 's3', <?= $st['s3'];?>, <?= $u->stats['s3'] - $st['s3'];?>, 3, 0,
'Выносливость', 's4', <?=$st['s4'];?>, 0, <?=$vinos[$u->info['level']]?>, 0 'Выносливость', 's4', <?= $st['s4'];?>, 0, <?= $vinos[$u->info['level']]?>, 0
<?if ($u->info['level'] > 3) {?> <?php if($u->info['level'] > 3){?>
, 'Интеллект', 's5', <?=$st['s5'];?>, <?=$u->stats['s5'] - $st['s5'];?>, 0, 0 , 'Интеллект', 's5', <?=$st['s5'];?>, <?=$u->stats['s5'] - $st['s5'];?>, 0, 0
<?}if ($u->info['level'] > 6) {?> <?php } if ($u->info['level'] > 6) {?>
, 'Мудрость', 's6', <?=$st['s6'];?>, 0, 0, 0 , 'Мудрость', 's6', <?=$st['s6'];?>, 0, 0, 0
<?}if ($u->info['level'] > 9) {?> <?php } if ($u->info['level'] > 9) {?>
, 'Духовность', 's7', <?=$st['s7'];?>, 0, 0, 0 , 'Духовность', 's7', <?=$st['s7'];?>, 0, 0, 0
<?}if ($u->info['level'] > 12) {?> <?php } ?>
, 'Воля', 's8', <?=$st['s8'];?>, 0, 0, 0 ];
<?}if ($u->info['level'] > 15) {?>
, 'Свобода Духа', 's9', <?=$st['s9'];?>, 0, 0, 0
<?}if ($u->info['level'] > 18) {?>
, 'Божественность', 's10', <?=$st['s10'];?>, 0, 0, 0
<?}?>
);
function getprstr(i) { function getprstr(i) {
var ss = pr[i] + ": " + (pr[i + 2] + pr[i + 3] + pr[i + 5]); let ss = pr[i] + ": " + (pr[i + 2] + pr[i + 3] + pr[i + 5]);
if (pr[i + 3] || pr[i + 5]) { if (pr[i + 3] || pr[i + 5]) {
ss += " (" + pr[i + 2]; ss += " (" + pr[i + 2];
if (pr[i + 3]) { if (pr[i + 3]) {
ss += (pr[i + 3] < 0 ? "" : "+") + pr[i + 3] ss += (pr[i + 3] < 0 ? "" : "+") + pr[i + 3]
}
if (pr[i + 5]) {
if (pr[i + 5] > 0) {
ss += " <font color=green>+" + pr[i + 5];
} else {
ss += " <font color=#8f0000>" + pr[i + 5];
}
ss += "</font>";
}
ss += ")";
} }
return ss; if (pr[i + 5]) {
if (pr[i + 5] > 0) {
ss += " <font color=green>+" + pr[i + 5];
} else {
ss += " <font color=#8f0000>" + pr[i + 5];
}
ss += "</font>";
}
ss += ")";
} }
return ss;
}
var freepr = 0; let freepr = 0;
var freemoves = <?=$raspst;?>; const freemoves = <?=$raspst;?>;
var movecost = 5; const movecost = 5;
function modpr(i, to) { function modpr(i, to) {
if (to == 1 && freepr == 0) { if (to == 1 && freepr == 0) {
return; return;
}
if (to == -1 && pr[i + 2] + pr[i + 5] <= pr[i + 4]) {
return;
}
pr[i + 5] += to;
freepr -= to;
document.all["pr" + i].innerHTML = getprstr(i);
document.all["prfree"].innerHTML = freepr;
var moves = 0;
for (j = 0; j < pr.length; j += 6) {
if (pr[j + 5] > 0) {
moves += pr[j + 5]
}
;
}
movedonebutton.disabled = (freepr || moves == 0 ? true : false);
document.all["prmoves"].innerHTML = moves + ((freemoves < moves) ? " за " + (movecost * (moves - freemoves)) + " кр." : (moves ? " / бесплатно" : ""));
} }
if (to == -1 && pr[i + 2] + pr[i + 5] <= pr[i + 4]) {
function movedone() { return;
if (freepr) {
return;
}
var s = "";
for (j = 0; j < pr.length; j += 6) {
if (pr[j + 5]) {
s += "&" + pr[j + 1] + "=" + pr[j + 5];
}
;
}
if (!s) {
return
}
;
location = "?movestat=0.<?=$code;?>&sd4=<?=$u->info['id']?>" + s;
} }
pr[i + 5] += to;
var s = "<TABLE>"; freepr -= to;
for (i = 0; i < pr.length; i += 6) { document.all["pr" + i].innerHTML = getprstr(i);
if (pr[i + 2] != -1) { document.all["prfree"].innerHTML = freepr;
s += "<TR><TD width=200 id=pr" + i + ">" + getprstr(i) + "</TD>"; let moves = 0;
s += '<TD><img src=https://img.combats.com/i/minus.gif border=0 onclick="modpr(' + i + ',-1)" style="cursor: hand"> ' for (let j = 0; j < pr.length; j += 6) {
s += '<img src=https://img.combats.com/i/plus.gif border=0 onclick="modpr(' + i + ',1)" style="cursor: hand"></TR>'; if (pr[j + 5] > 0) {
moves += pr[j + 5]
} }
} }
s += "</TABLE>"; movedonebutton.disabled = (!!(freepr || moves == 0));
s += "<small>(осталось: <span id='prfree'>0</span>, распределений: <span id='prmoves'>0</span>)<BR>"; document.all["prmoves"].innerHTML = moves + ((freemoves < moves) ? " за " + (movecost * (moves - freemoves)) + " кр." : (moves ? " / бесплатно" : ""));
document.write(s); }
</SCRIPT>
<input type=button onclick="movedone();" id='movedonebutton' value="Применить" disabled>
</TD>
<TD width=270 valign=top>
<BR><BR><BR>
<small>
<center>У вас нет пристрастий</center>
</small>
</TD>
<TD valign=top><BR>
Навыки владения оружием и магией<BR>
<form method=post><input type=hidden value='<?= $u->info['id']; ?>' name='dropmastery'><INPUT type=submit value='Сбросить <? echo $c['znahar'] == 1 ? "бесплатно" : "(32кр.)" ?>' function movedone() {
onclick="return confirm('Вы действительно хотите сбросить умения?')"> if (freepr) {
<HR color=black> return;
</form> }
Особенности персонажа<BR> let s = "";
<form method=post><input type=hidden value='<?= $u->info['id']; ?>' name='dropperks'> <INPUT type=submit value='Сбросить <? echo $c['znahar'] == 1 ? "бесплатно" : "(300кр.)" ?>' for (let j = 0; j < pr.length; j += 6) {
onclick="return confirm('Вы действительно хотите сбросить особенности?')"> if (pr[j + 5]) {
<HR color=black> s += "&" + pr[j + 1] + "=" + pr[j + 5];
</form> }
Характеристики<BR> }
<form method=post><input type=hidden value='<?= $u->info['id']; ?>' name='dropstats'><INPUT type=submit value='Сбросить <? echo $c['znahar'] == 1 ? "бесплатно" : "(500кр.)" ?>' if (!s) {
onclick="return confirm('Вы действительно хотите сбросить все характеристики до минимального уровня?')"> return
</form> }
</TABLE> location = "?movestat=0.<?=$code;?>&sd4=<?=$u->info['id']?>" + s;
<small>Каждые 7 дней после последнего использования комнаты знахаря вы получаете 1 бесплатное перераспределение, но не более 15<BR> }
Исцеление пристрастия, cброс умений или особенностей стоят 5 перераспределений<BR>
Изменение Характеристик досрочно завершает некоторые эффекты, например эффект свитка <B>Жажда Жизни</B> let s = "<TABLE>";
</small> for (let i = 0; i < pr.length; i += 6) {
<BR> if (pr[i + 2] != -1) {
</TABLE> s += "<TR><TD width=200 id=pr" + i + ">" + getprstr(i) + "</TD>";
<div> s += '<TD><img src=https://img.combats.com/i/minus.gif border=0 onclick="modpr(' + i + ',-1)" style="cursor: hand"> '
<? //рейтинг s += '<img src=https://img.combats.com/i/plus.gif border=0 onclick="modpr(' + i + ',1)" style="cursor: hand"></TR>';
?> }
</div> }
</BODY> s += "</TABLE>";
</HTML> s += "<small>(осталось: <span id='prfree'>0</span>, распределений: <span id='prmoves'>0</span>)<BR>";
<? } ?> document.write(s);
</SCRIPT>
<input type=button onclick="movedone();" id='movedonebutton' value="Применить" disabled>
</TD>
<TD width=270 valign=top>
<BR><BR><BR>
<small>
<center>У вас нет пристрастий</center>
</small>
</TD>
<TD valign=top><BR>
Навыки владения оружием и магией<BR>
<form method=post>
<input type=hidden value='<?= $u->info['id']; ?>' name='dropmastery'>
<INPUT type=submit value='Сбросить <?php echo $c['znahar'] == 1 ? "бесплатно" : "(32кр.)" ?>'
onclick="return confirm('Вы действительно хотите сбросить умения?')">
<HR color=black>
</form>
Особенности персонажа<BR>
<form method=post>
<input type=hidden value='<?= $u->info['id']; ?>' name='dropperks'>
<INPUT type=submit value='Сбросить <?php echo $c['znahar'] == 1 ? "бесплатно" : "(300кр.)" ?>'
onclick="return confirm('Вы действительно хотите сбросить особенности?')">
<HR color=black>
</form>
Характеристики<BR>
<form method=post>
<input type=hidden value='<?= $u->info['id']; ?>' name='dropstats'>
<INPUT type=submit value='Сбросить <?php echo $c['znahar'] == 1 ? "бесплатно" : "(500кр.)" ?>'
onclick="return confirm('Вы действительно хотите сбросить все характеристики до минимального уровня?')">
</form>
</TABLE>
<small>Каждые 7 дней после последнего использования комнаты знахаря вы получаете 1 бесплатное перераспределение, но не более 15<BR>
Исцеление пристрастия, cброс умений или особенностей стоят 5 перераспределений<BR>
Изменение Характеристик досрочно завершает некоторые эффекты, например эффект свитка <B>Жажда Жизни</B>
</small>
<BR>
</TABLE>
<div></div>
</BODY>
</HTML>

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,7 @@
<?php <?php
use Core\Db; use Core\Db;
use Model\ActionModel;
use User\ItemsModel; use User\ItemsModel;
use User\StatsModel; use User\StatsModel;
@ -10,58 +11,34 @@ if (!defined('GAME')) {
die(); die();
} }
$am = new ActionModel($u->info['id']);
$txt ??= ''; $txt ??= '';
if (isset($_GET['getq'])) { if (isset($_GET['getq'])) {
$test = mysql_fetch_array( $zadID = !$am->getDailyQuest() ? mt_rand(1, 7) : 0;
mysql_query('SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'day_quest\'')
);
if (!isset($test['id'])) {
$zadID = rand(1, 7);
if ($u->info['level'] == 8 && $zadID == 6) {
$zadID = 2;
}
if ($u->info['level'] > 11 && $zadID == 4) {
$zadID = 2;
}
if ($u->info['level'] > 11 && $zadID == 1) {
$zadID = 2;
}
} else {
$zadID = 0;
}
if ($zadID == 1) {
$txt .= '<b>Говорят в Capital City завелись всякие Трупожоры. Пойди да убей их дважды, порадуй бабушку</b>';
} elseif ($zadID == 2) {
$txt .= '<b>Покажи на что способен! Поучаствуй в 10 хаотических поединках!</b>';
} elseif ($zadID == 3) {
$txt .= '<b>Необходимо исследовать для бабушки два любых подземелия, ей очень интересно что там внутри! Только гляди милок, пропуски не используй!</b>';
} elseif ($zadID == 4) {
$txt .= '<b>Сразись в хаотических поединках и получи 100 000 опыта!</b>';
} elseif ($zadID == 5) {
$txt .= '<b>Открой сундук Трупожора, порадуй бабушку!</b>';
} elseif ($zadID == 6) {
$txt .= '<b>Посети Излом Хаоса!</b>';
} elseif ($zadID == 7) {
$txt .= '<b>Выполни 3 любых задания в подземелиях!Бабушка будет очень довольна!</b>';
} elseif ($zadID == 8) {
$txt .= '<b>Сходи ка милок в Башню Смерти! Да попробуй как там свои силенки.</b>';
} else {
$txt .= '<b>Эх шустрый малец, получал задание уже сегодня! Завтра приходи, накормлю чем нибудь вкусным ну и задание дам!</b>';
}
$txt .= match ($zadID) {
1 => 'Говорят в городе завелись всякие Трупожоры. Пойди да убей двоих, порадуй бабушку.',
2 => 'Покажи на что способен! Поучаствуй в 10 хаотических поединках!',
3 => 'Необходимо исследовать для бабушки два любых подземелия, ей очень интересно что там внутри! Только гляди милок, пропуски не используй!',
4 => 'Сразись в хаотических поединках и получи 100 000 опыта!',
5 => 'Открой сундук Трупожора, порадуй бабушку!',
6 => 'Посети Излом Хаоса!',
7 => 'Выполни 3 любых задания в подземелиях! Бабушка будет очень довольна!',
8 => 'Сходи-ка милок в Башню Смерти! Да попробуй там свои силенки.',
default => 'Эх шустрый малец, получал задание уже сегодня! Завтра приходи, накормлю чем нибудь вкусным ну и задание дам!'
};
$txt = "<b>$txt</b>";
if ($zadID > 0) { if ($zadID > 0) {
mysql_query( ActionModel::new($u->info, $zadID, 'day_quest');
'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES (' . $u->info['id'] . ',unix_timestamp(),\'capitalcity\',421,\'day_quest\',\'\',' . $zadID . ',' . $u->info['exp'] . ')'
);
sendSysChat($txt); sendSysChat($txt);
} }
} }
function sendSysChat($message) function sendSysChat($message): void
{ {
global $u; global $u;
$cmsg = new ChatMessage(); $cmsg = new ChatMessage();
$cmsg->setCity($u->info['city']);
$cmsg->setRoom($u->info['room']); $cmsg->setRoom($u->info['room']);
$cmsg->setTo($u->info['login']); $cmsg->setTo($u->info['login']);
$cmsg->setType(6); $cmsg->setType(6);
@ -69,132 +46,76 @@ function sendSysChat($message)
(new Chat())->sendMsg($cmsg); (new Chat())->sendMsg($cmsg);
} }
function giveDailyQuestPrize() function giveDailyQuestPrize(): void
{ {
global $u; global $u;
Db::sql('update actions set vals = 0 where vars = ? and uid = ?', ['day_quest', $u->info['id']]); Db::sql('update actions set vals = 0 where vars = ? and uid = ?', ['day_quest', $u->info['id']]);
Db::sql('update users_achiv set zb = zb + 1 where id = ?', [$u->info['id']]); Db::sql('update users_achiv set zb = zb + 1 where id = ?', [$u->info['id']]);
if ($u->info['level'] < 12) { ItemsModel::addItem(10020, $u->info['id'], '|sudba=' . $u->info['login']);
ItemsModel::addItem(10020, $u->info['id'], '|sudba=' . $u->info['login']);
} else {
ItemsModel::addItem(6470, $u->info['id'], '|sudba=' . $u->info['login']);
}
StatsModel::addRepexpById($u->info['id'], 50); //Репутация +20 StatsModel::addRepexpById($u->info['id'], 50); //Репутация +20
} }
if (isset($_GET['putq'])) { if (isset($_GET['putq'])) {
$test = mysql_fetch_array( $test = $am->getDailyQuest();
mysql_query('SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'day_quest\'') if (!$test) {
); $txt .= 'У тебя нет задания милок, не юли! Хоть бабушка плохо видит но бабушка хорошо помнит.';
if (!isset($test['id'])) {
$txt .= '<b style="color: red">У тебя нет задания милок, не юли! Хоть бабушка плохо видит но бабушка хорошо помнит.</b>';
} else { } else {
$zadID = $test['vals']; $zadID = $test['vals'];
$finishedTasks = $am->getFinishedDailyQuestTasks($test['time']);
if ($zadID == 1) { if ($zadID == 1) {
$check = mysql_query( if ($finishedTasks['end_trup'] > 1) {
'SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'end_trup\' AND `time` > ' . $test['time'] $txt .= 'Порадовал бабушку! Убил ипостата! Может на печи полежим? - Нет, ну держи жетончик!';
);
$i = 0;
while ($pl = mysql_fetch_array($check)) {
$i++;
}
if ($i > 1) {
$txt .= '<b>Порадовал бабушку! Убил ипостата! Может на печи полежим? - Нет, ну держи жетончик!</b>';
giveDailyQuestPrize(); giveDailyQuestPrize();
} else { } else {
$txt .= '<b>Победи в боях с Трупожором ' . $i . '/2</b>'; $txt .= 'Победи в боях с Трупожором ' . $finishedTasks['end_trup'] . '/2.';
} }
} elseif ($zadID == 2) { } elseif ($zadID == 2) {
$check = mysql_query( if ($finishedTasks['end_xaot'] > 9) {
'SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'end_xaot\' AND `time` > ' . $test['time'] $txt .= 'Порадовал бабушку! Поучаствовал в боях! А точно покушать не хочешь? - Нет, ну держи жетончик!';
);
$i = 0;
while ($pl = mysql_fetch_array($check)) {
$i++;
}
if ($i > 9) {
$txt .= '<b>Порадовал бабушку! Поучаствовал в боях! А точно покушать не хочешь? - Нет, ну держи жетончик!</b>';
giveDailyQuestPrize(); giveDailyQuestPrize();
} else { } else {
$txt .= '<b>Участия в хаотах ' . $i . '/10</b>'; $txt .= 'Участия в хаотах ' . $finishedTasks['end_xaot'] . '/10.';
} }
} elseif ($zadID == 3) { } elseif ($zadID == 3) {
$check = mysql_query( if ($finishedTasks['psh0'] > 1) {
'SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'psh0\' AND `time` > ' . $test['time'] $txt .= 'Порадовал бабушку! Хороший запах! А точно покушать не хочешь? - Нет, ну держи жетончик!';
);
$i = 0;
while ($pl = mysql_fetch_array($check)) {
$i++;
}
if ($i > 1) {
$txt .= '<b>Порадовал бабушку! Хороший запах! А точно покушать не хочешь? - Нет, ну держи жетончик!</b>';
giveDailyQuestPrize(); giveDailyQuestPrize();
} else { } else {
$txt .= '<b>Посещение Подземелий ' . $i . '/2</b>'; $txt .= 'Посещение Подземелий ' . $finishedTasks['psh0'] . '/2.';
} }
} elseif ($zadID == 4) { } elseif ($zadID == 4) {
if (($u->info['exp'] - $test['val']) > 100000) { if (($u->info['exp'] - $test['val']) > 100000) {
$txt .= '<b>Порадовал бабушку! Подрос,Подрос! держи жетончик!</b>'; $txt .= 'Порадовал бабушку! Подрос, подрос! держи жетончик!';
giveDailyQuestPrize(); giveDailyQuestPrize();
} else { } else {
$txt .= '<b>Получение ' . ($u->info['exp'] - $test['val']) . '/100 000 опыта</b>'; $txt .= 'Получение ' . ($u->info['exp'] - $test['val']) . '/100 000 опыта.';
} }
} elseif ($zadID == 5) { } elseif ($zadID == 5) {
$check = mysql_query( if ($finishedTasks['trup_sun'] > 0) {
'SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'trup_sun\' AND `time` > ' . $test['time'] $txt .= 'Порадовал бабушку! Сундучек удачу принес? Нет? Ну держи жетончик!';
);
$i = 0;
while ($pl = mysql_fetch_array($check)) {
$i++;
}
if ($i > 0) {
$txt .= '<b>Порадовал бабушку! Сундучек удачу принес? Нет? Ну держи жетончик!</b>';
giveDailyQuestPrize(); giveDailyQuestPrize();
} else { } else {
$txt .= '<b>Открытие сундуков Трупожора 0/1</b>'; $txt .= 'Открытие сундуков Трупожора 0/1';
} }
} elseif ($zadID == 6) { } elseif ($zadID == 6) {
$check = mysql_query( if ($finishedTasks['izlom'] > 0) {
'SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'izlom\' AND `time` > ' . $test['time'] $txt .= 'Порадовал бабушку! Так пахнет гарью и смертью Ммммм ... За это тебе жетончик!';
);
$i = 0;
while ($pl = mysql_fetch_array($check)) {
$i++;
}
if ($i > 0) {
$txt .= '<b>Порадовал бабушку! Так пахнет гарью и смертью Ммммм ... За это тебе жетончик!</b>';
giveDailyQuestPrize(); giveDailyQuestPrize();
} else { } else {
$txt .= '<b>Посещение Излома Хаоса 0/1</b>'; $txt .= 'Посещение Излома Хаоса 0/1';
} }
} elseif ($zadID == 7) { } elseif ($zadID == 7) {
$check = mysql_query( if ($finishedTasks['win'] > 2) {
'SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vals`= \'win\' AND `time` > ' . $test['time'] $txt .= 'Порадовал бабушку! Стало в мире светлее, но бабка как была слепая так и осталась... <br> Чуть не забыла жетончик!';
);
$i = 0;
while ($pl = mysql_fetch_array($check)) {
$i++;
}
if ($i > 2) {
$txt .= '<b>Порадовал бабушку! Стало в мире светлее, но бабка как была слепая так и осталась... <br> Чуть не забыла жетончик!</b>';
giveDailyQuestPrize(); giveDailyQuestPrize();
} else { } else {
$txt .= '<b>Выполни 3 задания в подземелиях. ' . $i . '/3 </b>'; $txt .= 'Выполни 3 задания в подземелиях. ' . $finishedTasks['win'] . '/3.';
} }
} elseif ($zadID == 8) {
$txt .= '<b>Участие в башне смерти 0.1</b>';
} else {
$txt .= '<b style="color: red">Эх шустрый малец, получал задание уже сегодня! Завтра приходи накормлю чем нибудь вкусным ну и задание дам!</b>';
} }
sendSysChat($txt);
sendSysChat("<b>$txt</b>");
} }
} }
@ -213,7 +134,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
Духовность:&nbsp;<b><?= $u->stats['s7']; ?></b><br> Духовность:&nbsp;<b><?= $u->stats['s7']; ?></b><br>
<?php endif; ?> <?php endif; ?>
<?php if ($u->info['ability'] > 0 || $u->info['skills'] > 0): ?> <?php if ($u->info['ability'] > 0 || $u->info['skills'] > 0): ?>
<a href="main.php?skills=1&side=1">+ Способности</a><br> <a href="/main.php?skills=1&side=1">+ Способности</a><br>
<?php endif; ?> <?php endif; ?>
&nbsp;<br> &nbsp;<br>
@ -225,7 +146,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
Деньги:&nbsp;<b><?= $u->info['money'] ?> кр.</b>&nbsp;</br> Деньги:&nbsp;<b><?= $u->info['money'] ?> кр.</b>&nbsp;</br>
Деньги:&nbsp;<b style="color:green"><?= $u->info['money2'] ?> екр.</b><br> Деньги:&nbsp;<b style="color:green"><?= $u->info['money2'] ?> екр.</b><br>
<?php if ($u->stats['pbe'] > 0): ?> <?php if (isset($u->stats['pbe']) && $u->stats['pbe'] > 0): ?>
<a href="/news/268/" target="_blank">Бонус покупателя:&nbsp;<?= $u->stats['pbe'] ?>&nbsp;уровень</a> <a href="/news/268/" target="_blank">Бонус покупателя:&nbsp;<?= $u->stats['pbe'] ?>&nbsp;уровень</a>
<?php if (date('d.m.Y') != date('d.m.Y', $nowby)): ?> <?php if (date('d.m.Y') != date('d.m.Y', $nowby)): ?>
<span style="color: red"><br>(Совершите покупку ЕКР чтобы сохранить и увеличить бонус покупателя)</span> <span style="color: red"><br>(Совершите покупку ЕКР чтобы сохранить и увеличить бонус покупателя)</span>

View File

@ -110,7 +110,7 @@ $vi = [
<td width="75" align="center" valign="middle" bgcolor="#DADADA" style="border-bottom:1px solid #CCCCCC;"><b>Вечно</b></td> <td width="75" align="center" valign="middle" bgcolor="#DADADA" style="border-bottom:1px solid #CCCCCC;"><b>Вечно</b></td>
<td style="border-bottom:1px solid #CCCCCC;"><font color=darkgreen><b>1 Выносливость = 1 ХП</b></font></td> <td style="border-bottom:1px solid #CCCCCC;"><font color=darkgreen><b>1 Выносливость = 1 ХП</b></font></td>
</tr> </tr>
<? } ?> <?php } ?>
<?php if ($account == 'silvers'){ ?> <?php if ($account == 'silvers'){ ?>
<table width="100%" border="0" cellpadding="5" cellspacing="0" bgcolor="#E1E1E1"> <table width="100%" border="0" cellpadding="5" cellspacing="0" bgcolor="#E1E1E1">
<td style="border-bottom:1px solid #CCCCCC;">&bull; Восстановление жизни и манны +10%</td> <td style="border-bottom:1px solid #CCCCCC;">&bull; Восстановление жизни и манны +10%</td>
@ -141,7 +141,7 @@ $vi = [
<td width="75" align="center" valign="middle" bgcolor="#DADADA" style="border-bottom:1px solid #CCCCCC;"><b>Вечно</b></td> <td width="75" align="center" valign="middle" bgcolor="#DADADA" style="border-bottom:1px solid #CCCCCC;"><b>Вечно</b></td>
<td style="border-bottom:1px solid #CCCCCC;"><font color=darkgreen><b>1 Выносливость = 2 ХП</b></font></td> <td style="border-bottom:1px solid #CCCCCC;"><font color=darkgreen><b>1 Выносливость = 2 ХП</b></font></td>
</tr> </tr>
<? } ?> <?php } ?>
<?php if ($account == 'gold'){ ?> <?php if ($account == 'gold'){ ?>
<table width="100%" border="0" cellpadding="5" cellspacing="0" bgcolor="#E1E1E1"> <table width="100%" border="0" cellpadding="5" cellspacing="0" bgcolor="#E1E1E1">
<td style="border-bottom:1px solid #CCCCCC;">&bull; Восстановление жизни и манны +50%</td> <td style="border-bottom:1px solid #CCCCCC;">&bull; Восстановление жизни и манны +50%</td>
@ -173,7 +173,7 @@ $vi = [
<td width="75" align="center" valign="middle" bgcolor="#DADADA" style="border-bottom:1px solid #CCCCCC;"><b>На время действия Благодати</b></td> <td width="75" align="center" valign="middle" bgcolor="#DADADA" style="border-bottom:1px solid #CCCCCC;"><b>На время действия Благодати</b></td>
<td style="border-bottom:1px solid #CCCCCC;"><font color=darkgreen><b>Увеличивает защиту от урона и магии на 50 едениц.</b></font></td> <td style="border-bottom:1px solid #CCCCCC;"><font color=darkgreen><b>Увеличивает защиту от урона и магии на 50 едениц.</b></font></td>
</tr> </tr>
<? } ?> <?php } ?>
</table> </table>
<fieldset><p><b>Доступные предметы:</b><br/><small>(Чтобы забрать предмет просто кликните на его изображение)</small></p> <fieldset><p><b>Доступные предметы:</b><br/><small>(Чтобы забрать предмет просто кликните на его изображение)</small></p>
<p> <p>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ - пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ</title> <title>пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ - пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ</title>

View File

@ -1,12 +0,0 @@
User-agent: DuplexWeb-Google
User-agent: AdsBot-Google-Mobile-Apps
User-agent: AdsBot-Google
User-agent: AdsBot-Google-Mobile
User-agent: *
Disallow: /
User-agent: *
Allow: /*.html$
Sitemap: /sitemap.xml
Host: https://new-combats.com