WIP: перед введенимем класса Fighter.php
This commit is contained in:
parent
07f905ef64
commit
a2c658166d
10
.htaccess
10
.htaccess
@ -25,10 +25,6 @@ RewriteRule casino/SWFP.pl casino/SWFP.php [L]
|
||||
RewriteCond %{ENV:REDIRECT} !^yes$
|
||||
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 ^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 [L]
|
||||
|
||||
RewriteRule ^exp/(.*)/?$ /exp.php?$1 [L]
|
||||
RewriteRule ^exp/?$ /exp.php [L]
|
||||
|
||||
RewriteRule ^news/(.*)/?$ /n/$1 [R=301,L]
|
||||
RewriteRule ^news/?$ /n [R=301,L]
|
||||
|
||||
@ -91,6 +84,3 @@ RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule . /index.php [L]
|
||||
</IfModule>
|
||||
|
||||
Order Allow,Deny
|
||||
Allow from all
|
||||
|
32
AI.php
32
AI.php
@ -484,3 +484,35 @@ foreach ($p as $prow) {
|
||||
}
|
||||
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
6
Array
@ -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
8
_incl_data/class/Battle/Fighter.php
Normal file
8
_incl_data/class/Battle/Fighter.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace Battle;
|
||||
|
||||
class Fighter
|
||||
{
|
||||
|
||||
}
|
@ -24,6 +24,8 @@ class Finish
|
||||
private int $aBexp = 0; //Добавочный опыт в боях
|
||||
private Battle $battle;
|
||||
|
||||
private array $btlstatus = [];
|
||||
|
||||
public function __construct(Battle $battle)
|
||||
{
|
||||
$this->battle = $battle;
|
||||
@ -35,7 +37,6 @@ class Finish
|
||||
$injuryName = [1 => 'легкую', 2 => 'среднюю', 3 => 'тяжелую', 4 => 'неизлечимую',];
|
||||
$dnr = 0; //???
|
||||
$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']]);
|
||||
if ($test['testfinish'] == -1) {
|
||||
@ -259,7 +260,7 @@ class Finish
|
||||
);
|
||||
}
|
||||
unset($spik, $plik);
|
||||
//
|
||||
|
||||
$usrreal = '';
|
||||
$usr_real = mysql_fetch_array(
|
||||
mysql_query(
|
||||
@ -270,13 +271,9 @@ class Finish
|
||||
$usr_real = $this->battle->users[$i];
|
||||
}
|
||||
if (isset($usr_real['id'])) {
|
||||
if ($usr_real['align'] > 0) {
|
||||
$usrreal .= '<img src=//img.new-combats.tech/i/align/align' . $usr_real['align'] . '.gif width=12 height=15 >';
|
||||
}
|
||||
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>';
|
||||
$login = new User\Login($usr_real['align'], $usr_real['clan'], $usr_real['level'], $usr_real['login']);
|
||||
$usrreal .= $login->fullLogin;
|
||||
unset($login);
|
||||
}
|
||||
|
||||
$text = str_replace('{u1}', $usrreal, $text);
|
||||
@ -357,14 +354,14 @@ class Finish
|
||||
$usrwin = '';
|
||||
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) {
|
||||
$usrwin .= ', ';
|
||||
if ($this->battle->users[$j]['align'] > 0) {
|
||||
$usrwin .= '<img width=12 height=15 src=//img.new-combats.tech/i/align/align' . $this->battle->users[$j]['align'] . '.gif >';
|
||||
}
|
||||
if ($this->battle->users[$j]['clan'] > 0) {
|
||||
$usrwin .= '<img width=24 height=15 src=//img.new-combats.tech/i/clan/' . $this->battle->users[$j]['clan'] . '.gif >';
|
||||
}
|
||||
$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>';
|
||||
$login = new User\Login(
|
||||
$this->battle->users[$j]['align'],
|
||||
$this->battle->users[$j]['clan'],
|
||||
$this->battle->users[$j]['level'],
|
||||
$this->battle->users[$j]['login']
|
||||
);
|
||||
$usrwin .= ', ' . $login->fullLogin;
|
||||
unset($login);
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
@ -950,9 +947,11 @@ class Finish
|
||||
)
|
||||
);
|
||||
|
||||
$btlstatus = $this->typeBattle($prsusers[0]);
|
||||
|
||||
$this->btlstatus = Battle::getType($prsusers[0]);
|
||||
|
||||
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)) {
|
||||
@ -961,11 +960,11 @@ class Finish
|
||||
|
||||
unset($r1);
|
||||
//Статусная битва
|
||||
if ($btlstatus[0] > 0) {
|
||||
if ($this->btlstatus[0] > 0) {
|
||||
if ($this->battle->info['type'] == 99) {
|
||||
$this->battle->info['addExp'] += $btlstatus[1];
|
||||
$this->battle->info['addExp'] += $this->btlstatus[1];
|
||||
} else {
|
||||
$this->battle->info['addExp'] += $btlstatus[0];
|
||||
$this->battle->info['addExp'] += $this->btlstatus[0];
|
||||
}
|
||||
}
|
||||
|
||||
@ -1126,11 +1125,11 @@ class Finish
|
||||
|
||||
unset($lime);
|
||||
|
||||
if ($btlstatus[0] > 0) {
|
||||
if ($this->btlstatus[0] > 0) {
|
||||
if ($this->battle->info['type'] == 99) {
|
||||
$prc .= ' (' . $btlstatus[3] . ')';
|
||||
$prc .= ' (' . $this->btlstatus[3] . ')';
|
||||
} 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'] . '"');
|
||||
$this->saveLogs();
|
||||
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('UNLOCK TABLES');
|
||||
|
||||
}
|
||||
|
||||
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']]);
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
if ($dnr != 1) {
|
||||
@ -1913,4 +1899,9 @@ class Finish
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function getBtlstatus(): array
|
||||
{
|
||||
return $this->btlstatus;
|
||||
}
|
||||
}
|
@ -169,7 +169,6 @@ class Log
|
||||
'<вырезано цензурой> каратисты фиговы',
|
||||
];
|
||||
$randomcomment = $comments[array_rand($comments)];
|
||||
$text = "{tm1} <i>Комментатор: $randomcomment</i>";
|
||||
|
||||
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 грамм',
|
||||
'сказав "БУ!"',
|
||||
'показав противнику кукиш',
|
||||
'в отчаянном рывке',
|
||||
'показав сразу два пальца',
|
||||
],
|
||||
[
|
||||
'о<вырезано цензурой>ный',
|
||||
'точнейший',
|
||||
],
|
||||
[
|
||||
'погиб!',
|
||||
'повержен!',
|
||||
'мертв!',
|
||||
'убит!',
|
||||
'проиграл бой!',
|
||||
],
|
||||
[
|
||||
'пропустил свой ход',
|
||||
'потратил свой ход на магию',
|
||||
'потратил свой ход на прием',
|
||||
],
|
||||
[
|
||||
'использовал',
|
||||
],
|
||||
[
|
||||
'{u1}, вспомнив слова своего сэнсея, из последних сил применил прием "{pr}".',
|
||||
'Кроличья лапка, подкова в перчатке и прием "{pr}" помогли {u1} продержаться ещё немного.',
|
||||
'{u1}, пораскинув мозгами по земле, сообразил, что его выручат или прием "{pr}" или вмешательство Мусорщика.',
|
||||
'{u1} выкрикнув: "А ещё я вот так могу!", применил прием "{pr}".',
|
||||
'{u1} понял, пропустив очередной удар в голову, что поможет ему только прием "{pr}".',
|
||||
'{u1} сам не поняв зачем, применил прием "{pr}".',
|
||||
'{u1} нетрезво оценив положение, решил, что его спасение это прием "{pr}".',
|
||||
],
|
||||
[
|
||||
'{u1}, вспомнив слова своего сэнсея, из последних сил применил прием "{pr}" на {u2}.',
|
||||
],
|
||||
[
|
||||
'{u1}, победив страх, решил поразить {u2} заклятьем "{pr}"',
|
||||
'{u1} наконец сфокусировал свое внимание на поединке и наколдовал "{pr}" на {u2}',
|
||||
'{u1} нарисовав вокруг себя несколько рун, призвал заклятье "{pr}" на {u2}',
|
||||
'{u1} догадавшись, что пришло время показать себя, произнес заклятье "{pr}" на {u2}',
|
||||
'{u1} с испугу произнес, первое пришедшее на ум, заклятье "{pr}" на {u2}',
|
||||
'{u1} впал в транс и начал бормотать заклятие "{pr}" на {u2}',
|
||||
'{u1} очнулся от медитации, и призвал заклятье "{pr}" на {u2}',
|
||||
],
|
||||
[
|
||||
'{u1} пытался наколдовать ужасающее заклятие "{pr}" на {u2}, но ничего не вышло',
|
||||
'{u1} не смог сфокусировать и наколдовать "{pr}" на {u2}, но ничего не вышло',
|
||||
'{u1} с испугу произнес ошибочное заклятие "{pr}" на {u2} и ничего не вышло',
|
||||
'{u1}, потеряв концентрацию, не смог наколдовать "{pr}" на {u2} и ничего не вышло',
|
||||
'{u1} <вырезано цензурой> от перенапряжения, вследствие чего не смог наколдовать "{pr}" на {u2}',
|
||||
'{u1} пытался превратить {u2} в табуретку при помощи заклинания "{pr}"... но ничего не вышло',
|
||||
],
|
||||
[
|
||||
'{u1}, победив страх, решил поразить всех и наколдовал "{pr}"',
|
||||
'{u1} наконец сфокусировал свое внимание на поединке и наколдовал "{pr}"',
|
||||
'{u1} нарисовав вокруг себя несколько рун, призвал заклятье "{pr}"',
|
||||
'{u1} догадавшись, что пришло время показать себя, произнес заклятье "{pr}"',
|
||||
'{u1} с испугу произнес, первое пришедшее на ум, заклятье "{pr}"',
|
||||
'{u1} впал в транс и начал бормотать заклятие "{pr}"',
|
||||
'{u1} очнулся от медитации, и призвал заклятье "{pr}"',
|
||||
],
|
||||
|
||||
],
|
||||
[ // жен.
|
||||
[],
|
||||
[
|
||||
'вспомнила что-то важное',
|
||||
'высморкалась',
|
||||
'задумалась',
|
||||
'замешкалась',
|
||||
'засмотрелась на <вырезано цензурой>',
|
||||
'кашлянула',
|
||||
'ковырялась в зубах',
|
||||
'обернулась',
|
||||
'осмотрелась',
|
||||
'почесалась',
|
||||
'пошатнулась',
|
||||
'пришла в себя',
|
||||
'пыталась сконцентрироваться',
|
||||
'пыталась увернуться',
|
||||
'пыталась что-то сказать',
|
||||
'расплылалась в улыбке',
|
||||
'расстроилась',
|
||||
'растерялась',
|
||||
'удивилась',
|
||||
'чесала <вырезано цензурой>',
|
||||
'пыталась отойти покурить',
|
||||
'поправляла прическу',
|
||||
],
|
||||
[
|
||||
', и за это ',
|
||||
', а ',
|
||||
', но в это время ',
|
||||
', и тут ',
|
||||
', но вдруг неожиданно ',
|
||||
', и вдруг ',
|
||||
', но ',
|
||||
', и внезапно ',
|
||||
', но неожиданно ',
|
||||
', и в этот момент ',
|
||||
', и в ту же секунду ',
|
||||
', и в этот миг ',
|
||||
],
|
||||
[
|
||||
'обезумевшая',
|
||||
'расстроенная',
|
||||
'неустрашимая',
|
||||
'продвинутая',
|
||||
'расстроенная',
|
||||
'страшная',
|
||||
'задумчивая',
|
||||
'взъерошенная',
|
||||
'бесстрастная',
|
||||
'разъяренная',
|
||||
'смелая',
|
||||
'безумная',
|
||||
'восхитительная',
|
||||
'жестокая',
|
||||
'злобная',
|
||||
'мужественная',
|
||||
'непобедимая',
|
||||
'наглая',
|
||||
'хитрая',
|
||||
'храбрая',
|
||||
'отважная',
|
||||
'железная',
|
||||
'могучая',
|
||||
'сильнейшая',
|
||||
'крепкая',
|
||||
'великая',
|
||||
'бесстрашная',
|
||||
],
|
||||
[
|
||||
'случайно ',
|
||||
'отчаянно ',
|
||||
'проснувшись ',
|
||||
'мимоходом ',
|
||||
'разбежавшись ',
|
||||
'сдуру ',
|
||||
'со скуки ',
|
||||
'не помня себя от испуга ',
|
||||
'улыбаясь ',
|
||||
'прослезившись ',
|
||||
'пошатнувшись ',
|
||||
'проснувшись ',
|
||||
'беспричинно ',
|
||||
'опрометчиво ',
|
||||
'разбежавшись ',
|
||||
'зевнув ',
|
||||
'сделав двойное сальто ',
|
||||
'не подумав ',
|
||||
'хихикая ',
|
||||
'ласково ',
|
||||
'с испугу ',
|
||||
],
|
||||
[
|
||||
'влепила ',
|
||||
'вломила ',
|
||||
'саданула ',
|
||||
],
|
||||
[
|
||||
'грубый',
|
||||
'наглый',
|
||||
'красивый',
|
||||
],
|
||||
[
|
||||
'тычок',
|
||||
'тычок',
|
||||
'рубящий удар',
|
||||
'разбивающий удар',
|
||||
'рассекающий удар',
|
||||
'обжигающий удар',
|
||||
'удар электричеством',
|
||||
'обмораживающий удар',
|
||||
'удар магией земли',
|
||||
'удар светлой магией',
|
||||
'удар тёмной магией',
|
||||
'удар серой магией',
|
||||
'неизсветный удар',
|
||||
'удар',
|
||||
],
|
||||
[
|
||||
'не контролировала ситуацию',
|
||||
'обманулась',
|
||||
'старалась провести удар',
|
||||
'думала о <вырезано цензурой>',
|
||||
'испугалась',
|
||||
'потеряла самоконтроль',
|
||||
'потеряла момент',
|
||||
'была слишком самоуверенна',
|
||||
'пыталась провести удар',
|
||||
'поскользнулась',
|
||||
'не думала о бое',
|
||||
'не рассчитала свои силы',
|
||||
'промахнулась',
|
||||
'оступилась',
|
||||
'думала не о том',
|
||||
],
|
||||
[
|
||||
', и потому ',
|
||||
' и ',
|
||||
', но ',
|
||||
', вследствие чего ',
|
||||
', потому ',
|
||||
],
|
||||
[
|
||||
'остановила',
|
||||
'поставила блок на',
|
||||
'блокировала',
|
||||
'отбила',
|
||||
],
|
||||
[
|
||||
'ушла вправо от удара',
|
||||
'ушла влево от удара',
|
||||
'увела удар',
|
||||
'уклонилась от удара',
|
||||
'увернулась от удара',
|
||||
],
|
||||
[
|
||||
'приняв боевые 100 грамм',
|
||||
'сказав "БУ!"',
|
||||
'показав противнику кукиш',
|
||||
'в отчаянном рывке',
|
||||
'показав сразу два пальца',
|
||||
],
|
||||
[
|
||||
'о<вырезано цензурой>ный',
|
||||
'точнейший',
|
||||
],
|
||||
[
|
||||
'погибла!',
|
||||
'повержена!',
|
||||
'мертва!',
|
||||
'убита!',
|
||||
'проиграла бой!',
|
||||
],
|
||||
[
|
||||
'пропустила свой ход',
|
||||
'потратила свой ход на магию',
|
||||
'потратила свой ход на прием',
|
||||
],
|
||||
[
|
||||
'использовала',
|
||||
],
|
||||
[
|
||||
'{u1}, вспомнив слова своего сэнсея, из последних сил применила прием "{pr}".',
|
||||
'Кроличья лапка, подкова в перчатке и прием "{pr}" помогли {u1} продержаться ещё немного.',
|
||||
'{u1}, пораскинув мозгами по земле, сообразила, что её выручат или прием "{pr}" или вмешательство Мусорщика.',
|
||||
'{u1} выкрикнув: "А ещё я вот так могу!", применила прием "{pr}".',
|
||||
'{u1} поняла, пропустив очередной удар в голову, что поможет ей только прием "{pr}".',
|
||||
'{u1} сама не поняв зачем, применила прием "{pr}".',
|
||||
'{u1} нетрезво оценив положение, решила, что её спасение это прием "{pr}".',
|
||||
],
|
||||
[
|
||||
'{u1}, вспомнив слова своего сэнсея, из последних сил применила прием "{pr}" на {u2}.',
|
||||
],
|
||||
[
|
||||
'{u1}, победив страх, решила поразить {u2} заклятьем "{pr}"',
|
||||
'{u1} наконец сфокусировала свое внимание на поединке и наколдовала "{pr}" на {u2}',
|
||||
'{u1} нарисовав вокруг себя несколько рун, призвала заклятье "{pr}" на {u2}',
|
||||
'{u1} догадавшись, что пришло время показать себя, произнесла заклятье "{pr}" на {u2}',
|
||||
'{u1} с испугу произнесла, первое пришедшее на ум, заклятье "{pr}" на {u2}',
|
||||
'{u1} впала в транс и начала бормотать заклятие "{pr}" на {u2}',
|
||||
'{u1} очнулась от медитации, и призвала заклятье "{pr}" на {u2}',
|
||||
],
|
||||
[
|
||||
'{u1} пыталась наколдовать ужасающее заклятие "{pr}" на {u2}, но ничего не вышло',
|
||||
'{u1} не смогла сфокусировать и наколдовать "{pr}" на {u2}, но ничего не вышло',
|
||||
'{u1} с испугу произнесла ошибочное заклятие "{pr}" на {u2} и ничего не вышло',
|
||||
'{u1}, потеряв концентрацию, не смогла наколдовать "{pr}" на {u2} и ничего не вышло',
|
||||
'{u1} <вырезано цензурой> от перенапряжения, вследствие чего не смогла наколдовать "{pr}" на {u2}',
|
||||
'{u1} пыталась превратить {u2} в табуретку при помощи заклинания "{pr}"... но ничего не вышло',
|
||||
],
|
||||
[
|
||||
'{u1}, победив страх, решила поразить всех и наколдовала "{pr}"',
|
||||
'{u1} наконец сфокусировала свое внимание на поединке и наколдовала "{pr}"',
|
||||
'{u1} нарисовав вокруг себя несколько рун, призвала заклятье "{pr}"',
|
||||
'{u1} догадавшись, что пришло время показать себя, произнесла заклятье "{pr}"',
|
||||
'{u1} с испугу произнесла, первое пришедшее на ум, заклятье "{pr}"',
|
||||
'{u1} впала в транс и начала бормотать заклятие "{pr}"',
|
||||
'{u1} очнулась от медитации, и призвала заклятье "{pr}"',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
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])];
|
||||
}
|
||||
}
|
114
_incl_data/class/Battle/Priem/AbstractPriem.php
Normal file
114
_incl_data/class/Battle/Priem/AbstractPriem.php
Normal 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;
|
||||
}
|
78
_incl_data/class/Battle/Priem/Priem.php
Normal file
78
_incl_data/class/Battle/Priem/Priem.php
Normal 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->
|
36
_incl_data/class/Battle/Priem/PriemInterface.php
Normal file
36
_incl_data/class/Battle/Priem/PriemInterface.php
Normal 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;
|
||||
}
|
13
_incl_data/class/Battle/Priem/UsePriem.php
Normal file
13
_incl_data/class/Battle/Priem/UsePriem.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace Battle\Priem;
|
||||
|
||||
class UsePriem
|
||||
{
|
||||
|
||||
public function __construct(Priem $priem) {
|
||||
$damage = $priem->getPower();
|
||||
$targets = $priem->getTarget();
|
||||
|
||||
}
|
||||
}
|
580
_incl_data/class/Battle/Razmen.php
Normal file
580
_incl_data/class/Battle/Razmen.php
Normal 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;
|
||||
}
|
||||
}
|
@ -512,9 +512,6 @@ ORDER BY `1price`ASC , inGroupCount DESC'
|
||||
if ($pl['dn_delete'] > 0) {
|
||||
$is2 .= '<div style="color:brown;">Предмет будет удален при выходе из подземелья</div>';
|
||||
}
|
||||
if ($this->pokol > $pl['geni']) {
|
||||
$is2 .= '<div style="color:brown">Предмет устарел</div>';
|
||||
}
|
||||
if (isset($po['zazuby']) && $po['zazuby'] > 0) {
|
||||
$is2 .= '<div style="color:brown;">Предмет куплен за зубы</div>';
|
||||
}
|
||||
|
@ -75,13 +75,11 @@ class Config
|
||||
$c['nosanich'] = true; //Странички Саныча не выпадают - true , выпадают - false
|
||||
$c['zuby'] = false; //зубы
|
||||
$c['limitedexp'] = false; //лимит опыта
|
||||
$c['infinity5level'] = false; //вечные 5 уровни
|
||||
$c['expstop'] = 2999999; //9; //Опыт на котором останавливаемся 11 149999999
|
||||
$c['expstopu'] = 2999999; //Опыт на котором останавливаемся
|
||||
$c['noobgade'] = false; //нуб квест (пещера)
|
||||
$c['level_ransfer'] = 8; //С какого уровня разрешены передачи
|
||||
|
||||
$c['nolevel'] = false; //лимитирование уровней
|
||||
$c['noitembuy'] = false; //Не требует ресурсы для покупки
|
||||
$c['effz'] = 0; //Скольким секундам равен заряд
|
||||
$c['money_haot'] = true; //кр за хаоты
|
||||
|
13
_incl_data/class/Core/Debug.php
Normal file
13
_incl_data/class/Core/Debug.php
Normal 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);
|
||||
}
|
||||
}
|
@ -383,10 +383,12 @@ class FightRequest
|
||||
|
||||
/**
|
||||
* Звуковой пинг в чат?
|
||||
* @param string $to
|
||||
* @param int $room
|
||||
* @return void
|
||||
* @todo убрать колхоз с условиями когда станет ясно как оно работает.
|
||||
*/
|
||||
private function sendSysChatSound(string $to = '', int $room = 0)
|
||||
private function sendSysChatSound(string $to = '', int $room = 0): void
|
||||
{
|
||||
$cmsg = new ChatMessage();
|
||||
if (empty($to)) {
|
||||
@ -399,9 +401,9 @@ class FightRequest
|
||||
} else {
|
||||
$cmsg->setRoom($room);
|
||||
}
|
||||
$cmsg->setCity($this->u->info['city']);
|
||||
$cmsg->setType(11);
|
||||
$cmsg->setSound(117);
|
||||
$cmsg->setText('Ваш бой начался!');
|
||||
(new Chat())->sendMsg($cmsg);
|
||||
}
|
||||
|
||||
@ -621,6 +623,7 @@ class FightRequest
|
||||
$nz['time_start'] = 600;
|
||||
}
|
||||
|
||||
|
||||
if (isset($_POST['mut_hidden'])) {
|
||||
$nz['invise'] = 1;
|
||||
}
|
||||
@ -817,19 +820,17 @@ class FightRequest
|
||||
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();
|
||||
$btl = '';
|
||||
$see = '';
|
||||
$usr = Db::getRow('select id, login, level, city from users where login = ? limit 1', [$slogin]);
|
||||
|
||||
if (isset($usr['id'])) {
|
||||
$tms = $dt;
|
||||
$tmf = $dt + 86400;
|
||||
$uid = Db::getValue('select id from users where login = ? limit 1', [$slogin]);
|
||||
|
||||
if ($uid) {
|
||||
$sp = Db::getRows(
|
||||
'select * from battle_last where time >= ? and time < ? and uid = ? order by id desc ',
|
||||
[$tms, $tmf, $usr['id']]
|
||||
[$dt, $dt + 86400, $uid]
|
||||
);
|
||||
$jk = 0;
|
||||
$btl_lst = [];
|
||||
@ -840,11 +841,13 @@ class FightRequest
|
||||
$tms = [];
|
||||
$ts = [];
|
||||
$spi = Db::getRows('select * from battle_last where battle_id = ?', [$pl['battle_id']]);
|
||||
|
||||
foreach ($spi as $pli) {
|
||||
if (!isset($tms[$pli['team']])) {
|
||||
$ts[] = $pli['team'];
|
||||
}
|
||||
$tms[$pli['team']][count($tms[$pli['team']])] = $pli;
|
||||
|
||||
$tms[$pli['team']][] = $pli;
|
||||
}
|
||||
$k = 0;
|
||||
while ($k < count($ts)) {
|
||||
@ -859,7 +862,7 @@ class FightRequest
|
||||
}
|
||||
$tm2 .= '<b>' . $tms[$g][$h]['login'] . '</b> [' . $tms[$g][$h]['lvl'] . ']
|
||||
<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++;
|
||||
}
|
||||
@ -875,20 +878,24 @@ class FightRequest
|
||||
$k++;
|
||||
}
|
||||
}
|
||||
if (!isset($btl_lst[$b['id']])) {
|
||||
|
||||
if (isset($btl_lst[$b['id']])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$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>';
|
||||
$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
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace Magic\Elemental;
|
||||
|
||||
use Battle;
|
||||
use DTO\BattleSpell;
|
||||
use Helper\Math;
|
||||
|
||||
|
@ -14,7 +14,7 @@ class ActionModel
|
||||
$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) {
|
||||
$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]);
|
||||
}
|
||||
@ -83,4 +83,25 @@ class ActionModel
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
48
_incl_data/class/Model/BattleModel.php
Normal file
48
_incl_data/class/Model/BattleModel.php
Normal 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,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ class Priems
|
||||
$mpNow = $this->zeromax($btl->stats[$btl->uids[$uid]]['mpNow'], $btl->stats[$btl->uids[$uid]]['mpAll']);
|
||||
if ($mpNow > 0) {
|
||||
Db::sql(
|
||||
'update stats set mpNow = ? where id = ?',
|
||||
'update stats set mpnow = ? where id = ?',
|
||||
[$btl->stats[$btl->uids[$uid]]['mpNow'], $uid]
|
||||
);
|
||||
}
|
||||
@ -113,7 +113,7 @@ class Priems
|
||||
$u = $this->u; // Для присоедиянемых файлов.
|
||||
$return_main = true;
|
||||
$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']]
|
||||
);
|
||||
|
||||
@ -781,8 +781,7 @@ class Priems
|
||||
$krituet = true,
|
||||
$heal = 0,
|
||||
$namenew = null
|
||||
)
|
||||
{
|
||||
) {
|
||||
$trawm_off = false;
|
||||
global $btl;
|
||||
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 = [
|
||||
'time' => time(),
|
||||
'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 ($btl->stats[$btl->uids[$this->u->info['id']]]['noshock_voda'] > 0 && substr(
|
||||
$pl['img'], 0,
|
||||
10
|
||||
) == 'wis_water_') {
|
||||
//вода
|
||||
} else {
|
||||
if (
|
||||
isset($btl->stats[$btl->uids[$this->u->info['id']]]['nousepriem']) &&
|
||||
$btl->stats[$btl->uids[$this->u->info['id']]]['nousepriem'] > 0 &&
|
||||
$pl['nosh'] == 0 &&
|
||||
($btl->stats[$btl->uids[$this->u->info['id']]]['noshock_voda'] <= 0 || !str_starts_with($pl['img'], 'wis_water_'))
|
||||
) {
|
||||
$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++;
|
||||
}
|
||||
|
||||
@ -1423,7 +1423,7 @@ class Priems
|
||||
|
||||
if ($pl['xuse'] > 0) {
|
||||
$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
|
||||
);
|
||||
if ($xu[0] >= $pl['xuse']) {
|
||||
@ -1609,8 +1609,7 @@ class Priems
|
||||
$noupdatebtl = 0,
|
||||
$noplus = 0,
|
||||
$pname = null
|
||||
)
|
||||
{
|
||||
) {
|
||||
global $btl;
|
||||
//$pl = mysql_fetch_assoc(mysql_query('SELECT * FROM `priems` WHERE `id` = ' . (int)$pr));
|
||||
$pl = Db::getRow('select * from priems where id = ?', [$pr]);
|
||||
@ -1664,7 +1663,7 @@ class Priems
|
||||
unset($num);
|
||||
}
|
||||
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'];
|
||||
$name = !empty($pname) ? $pname : $pl['name'];
|
||||
$image .= '.gif';
|
||||
@ -1977,7 +1976,8 @@ class Priems
|
||||
} else {
|
||||
//бьем противника с пропуском хода
|
||||
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) {
|
||||
TrainingManager::getInstance()
|
||||
->addPoint('my_user_fourth_quest', function (TrainingManager $manager) {
|
||||
->addPoint(
|
||||
'my_user_fourth_quest', function (TrainingManager $manager) {
|
||||
$manager->store();
|
||||
});
|
||||
}
|
||||
);
|
||||
$this->u->info['priems'] = $p;
|
||||
}
|
||||
} else {
|
||||
@ -2097,12 +2099,16 @@ class Priems
|
||||
public function getTechniquesInfo(?int $id = null): array
|
||||
{
|
||||
if (isset($id)) {
|
||||
return Db::getRow('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::getRow(
|
||||
'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
|
||||
WHERE priems.level <= ? AND priems.activ > 0 ORDER BY priems.img,priems.level', [User::start()->info['level']]);
|
||||
return Db::getRows(
|
||||
'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)
|
||||
@ -2294,7 +2300,9 @@ class Priems
|
||||
echo
|
||||
<<< HTML
|
||||
<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>
|
||||
HTML;
|
||||
}
|
||||
@ -2358,7 +2366,7 @@ class Priems
|
||||
|
||||
$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];
|
||||
$prv['text'] = '{u2} утратил здоровье от "{pr}" ';
|
||||
@ -2444,7 +2452,7 @@ class Priems
|
||||
|
||||
$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) {
|
||||
$color = $this->logColor['miss'];
|
||||
@ -2623,7 +2631,7 @@ class Priems
|
||||
|
||||
$uu = $pl['id'] === 260 ? '' : $this->u->info['id'];
|
||||
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]
|
||||
);
|
||||
|
||||
@ -2765,7 +2773,7 @@ class Priems
|
||||
$q = 'select stats as data from stats 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 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']));
|
||||
$stats = array_fill_keys(['s1', 's2', 's3', 's5', 's6'], 0);
|
||||
foreach ($datas as $data) {
|
||||
|
@ -433,7 +433,7 @@ class Quests
|
||||
}
|
||||
|
||||
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'])) {
|
||||
@ -582,7 +582,7 @@ class Quests
|
||||
return $r;
|
||||
}
|
||||
|
||||
public function testquest()
|
||||
public function testquest(): void
|
||||
{
|
||||
global $u;
|
||||
if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') {
|
||||
@ -749,12 +749,9 @@ class Quests
|
||||
}
|
||||
unset($x, $i, $ii, $ex, $x2, $bot2, $ex2);
|
||||
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'));
|
||||
// Рыцарки
|
||||
/*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) {
|
||||
$rep['rep' . $pl['city']] = 24999;
|
||||
} else {
|
||||
@ -976,7 +973,7 @@ class Quests
|
||||
if ($this->stats['more_awards'] >= 0) {
|
||||
$d['add_rep'] += $d['add_rep'] / 100 * 50;
|
||||
}
|
||||
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $u->city_name[$quest['city']] . ', ';
|
||||
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $quest['city'] . ', ';
|
||||
if (
|
||||
$rep['rep' . $quest['city']] < 24999 &&
|
||||
$rep['rep' . $quest['city']] + $d['add_rep'] >= 24999 &&
|
||||
|
@ -9,6 +9,7 @@ use Model\ActionModel;
|
||||
use User\Effects;
|
||||
use User\InfoBox;
|
||||
use User\ItemsModel;
|
||||
use User\Login;
|
||||
use User\Reputation;
|
||||
use User\Stats;
|
||||
use User\UserCalculatedStats;
|
||||
@ -17,7 +18,6 @@ use User\UserStats;
|
||||
class User
|
||||
{
|
||||
private static ?self $flag_one = null;
|
||||
public int $pokol = 2; //Акктуальное поколение предметов
|
||||
public array $aves = ['now' => 0, 'max' => 0];
|
||||
public array $room = [];
|
||||
public array $align_nm = [
|
||||
@ -26,34 +26,6 @@ class User
|
||||
3 => 'Тьма',
|
||||
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 $city_name = [
|
||||
'emeraldscity' => 'Emeralds city',
|
||||
@ -584,25 +556,35 @@ class User
|
||||
public string $error = '';
|
||||
public array $info = [];
|
||||
public array $rep;
|
||||
public $tfer;
|
||||
public $stats;
|
||||
/** Для переводов персонажа */
|
||||
public array|false $tfer;
|
||||
public array $stats;
|
||||
private InfoBox $infoBox;
|
||||
private Reputation $reputation;
|
||||
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;
|
||||
}
|
||||
|
||||
$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);
|
||||
|
||||
unset($user);
|
||||
|
||||
Database::init(); // для всяких mysql_*
|
||||
|
||||
$this->userStats = new Stats($this);
|
||||
//$this->getStats($this->info); // Бля, а вдруг?
|
||||
$this->stats = $this->userStats->getStats($this->info);
|
||||
|
||||
$this->infoTasks();
|
||||
|
||||
if (Core\Config::get('securetime') > 0) {
|
||||
@ -813,11 +795,18 @@ class User
|
||||
}
|
||||
|
||||
//Выделяем передачи
|
||||
$this->tfer = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'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'
|
||||
)
|
||||
|
||||
$this->tfer = Db::getRow(
|
||||
'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['uid1'] == $this->tfer['uid2']) {
|
||||
$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']]);
|
||||
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);
|
||||
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++;
|
||||
}
|
||||
if ($tritm != '' && !$tr) {
|
||||
$this->error = 'Необходимы предметы: ' . $tritm . '';
|
||||
$this->error = 'Необходимы предметы: ' . $tritm;
|
||||
}
|
||||
}
|
||||
while ($x < count($t)) {
|
||||
@ -1029,7 +1018,7 @@ class User
|
||||
mysql_query(
|
||||
'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'];
|
||||
}
|
||||
} else {
|
||||
@ -1044,7 +1033,7 @@ class User
|
||||
} else {
|
||||
$this->error = 'Выбирать образ можно не чаще одного раза в сутки, следующая смена ' . date(
|
||||
'd.m.Y H:i', $sm['time'] + 86400
|
||||
) . '';
|
||||
);
|
||||
unset($_GET['obr_sel']);
|
||||
$_GET['inv'] = 1;
|
||||
}
|
||||
@ -1115,9 +1104,6 @@ class User
|
||||
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']]);
|
||||
if (!isset($this->info['achiv']['id'])) {
|
||||
@ -1365,12 +1351,13 @@ class User
|
||||
//Расчет защиты (магия)
|
||||
|
||||
/** Singletone.
|
||||
* @param int $uid
|
||||
* @return User
|
||||
*/
|
||||
public static function start(): User
|
||||
public static function start(int $uid = 0): User
|
||||
{
|
||||
if (!isset(self::$flag_one)) {
|
||||
self::$flag_one = new self();
|
||||
self::$flag_one = new self($uid);
|
||||
}
|
||||
return self::$flag_one;
|
||||
}
|
||||
@ -1401,13 +1388,10 @@ class User
|
||||
where users.id = ?',
|
||||
[$uid]
|
||||
);
|
||||
$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='img/inf.gif' title='Инф. о $login' alt='Инф. о $login'></a>";
|
||||
return "$alignStr$clanStr<strong>$login</strong> [$level]$loginLink";
|
||||
if (!isset($login)) {
|
||||
return "uid:$uid";
|
||||
}
|
||||
return (new Login($align, $clanName, $level, $login))->fullLogin;
|
||||
}
|
||||
|
||||
public function dayquest(int $id): string
|
||||
@ -1465,11 +1449,11 @@ class User
|
||||
}
|
||||
$this->error = 'Вы успешно восстановили ' . round($this->stats['hpAll'] - $this->stats['hpNow']) . ' HP.';
|
||||
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->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'])) {
|
||||
$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.';
|
||||
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->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) {
|
||||
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(
|
||||
"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['login'],
|
||||
@ -2027,17 +2011,17 @@ class User
|
||||
$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(
|
||||
"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']]
|
||||
);
|
||||
|
||||
//копируем эффекты
|
||||
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']]
|
||||
);
|
||||
|
||||
@ -2047,7 +2031,7 @@ class User
|
||||
|
||||
} 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'])) {
|
||||
return [];
|
||||
@ -2088,7 +2072,7 @@ class User
|
||||
$bot['stats'] = Conversion::arrayToDataString($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['logins_bot'] = $logins_bot;
|
||||
@ -2109,7 +2093,7 @@ class User
|
||||
$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;
|
||||
}
|
||||
@ -2188,7 +2172,7 @@ class User
|
||||
|
||||
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)) {
|
||||
return;
|
||||
@ -2236,7 +2220,7 @@ class User
|
||||
|
||||
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) {
|
||||
return;
|
||||
}
|
||||
@ -2253,7 +2237,7 @@ class User
|
||||
|
||||
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) {
|
||||
return;
|
||||
}
|
||||
@ -2323,7 +2307,7 @@ class User
|
||||
|
||||
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) {
|
||||
$this->error = 'На сегодня лимит передач исчерпан.';
|
||||
return;
|
||||
@ -2332,25 +2316,25 @@ class User
|
||||
return;
|
||||
}
|
||||
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 {
|
||||
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
|
||||
{
|
||||
//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(
|
||||
'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']]
|
||||
);
|
||||
}
|
||||
|
||||
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) {
|
||||
$this->error = 'На сегодня лимит передач исчерпан.';
|
||||
return;
|
||||
@ -2359,15 +2343,15 @@ class User
|
||||
return;
|
||||
}
|
||||
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 {
|
||||
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
|
||||
{
|
||||
$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) {
|
||||
return;
|
||||
}
|
||||
@ -2619,7 +2603,7 @@ class User
|
||||
//-----------------------------------------------
|
||||
$idt = mysql_fetch_array(
|
||||
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;
|
||||
while ($nrune = mysql_fetch_array($srune)) {
|
||||
$irun++;
|
||||
@ -2711,7 +2695,7 @@ class User
|
||||
} elseif ($rune['type'] == 62) {
|
||||
$idt = mysql_fetch_array(
|
||||
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) {
|
||||
@ -3011,7 +2995,7 @@ class User
|
||||
} elseif ($rune['type'] == 46) {
|
||||
$idt = mysql_fetch_array(
|
||||
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) {
|
||||
@ -3190,7 +3174,7 @@ class User
|
||||
} elseif ($rune['type'] == 68) {
|
||||
$idt = mysql_fetch_array(
|
||||
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) {
|
||||
@ -3310,7 +3294,6 @@ class User
|
||||
`im`.`overTypei`,
|
||||
`im`.`group`,
|
||||
`im`.`group_max`,
|
||||
`im`.`geni`,
|
||||
`im`.`ts`,
|
||||
`im`.`srok`,
|
||||
`im`.`class`,
|
||||
@ -3371,7 +3354,7 @@ class User
|
||||
`im`.`magic_inci`, `im`.`overTypei`,
|
||||
`im`.`group`,
|
||||
`im`.`group_max`,
|
||||
`im`.`geni`, `im`.`ts`,
|
||||
`im`.`ts`,
|
||||
`im`.`srok`,
|
||||
`im`.`class`, `im`.`class_point`,
|
||||
`im`.`anti_class`, `im`.`anti_class_point`,
|
||||
@ -4241,10 +4224,6 @@ class User
|
||||
$is2 .= '<div style="color:brown;">Предмет будет удален при выходе из подземелья</div>';
|
||||
}
|
||||
|
||||
if ($this->pokol > $pl['geni']) {
|
||||
$is2 .= '<div style="color:brown">Предмет устарел</div>';
|
||||
}
|
||||
|
||||
if (isset($po['zazuby']) && $po['zazuby'] > 0) {
|
||||
$is2 .= '<div style="color:brown;">Предмет куплен за зубы</div>';
|
||||
}
|
||||
@ -4867,7 +4846,6 @@ class User
|
||||
`im`.`overTypei`,
|
||||
`im`.`group`,
|
||||
`im`.`group_max`,
|
||||
`im`.`geni`,
|
||||
`im`.`ts`,
|
||||
`im`.`srok`,
|
||||
`im`.`class`,
|
||||
@ -4983,7 +4961,6 @@ class User
|
||||
`im`.`overTypei`,
|
||||
`im`.`group`,
|
||||
`im`.`group_max`,
|
||||
`im`.`geni`,
|
||||
`im`.`ts`,
|
||||
`im`.`srok`,
|
||||
`im`.`class`,
|
||||
@ -5064,7 +5041,7 @@ class User
|
||||
$i = 0;
|
||||
do { //fixme ужасный цикл, ужасный запрос.
|
||||
$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)) {
|
||||
$g = 1;
|
||||
@ -5107,24 +5084,24 @@ class User
|
||||
item_id,
|
||||
time_create,
|
||||
time_sleep,
|
||||
timeOver,
|
||||
timeover,
|
||||
name,
|
||||
overType,
|
||||
inOdet,
|
||||
iznosNOW,
|
||||
iznosMAX,
|
||||
iznosMAXi
|
||||
overtype,
|
||||
inodet,
|
||||
iznosnow,
|
||||
iznosmax,
|
||||
iznosmaxi
|
||||
from items_users
|
||||
left join items_main on items_main.id = item_id
|
||||
where
|
||||
(
|
||||
inOdet != 0 or
|
||||
inodet != 0 or
|
||||
data like '%srok%' or
|
||||
data like '%vip_sale%' or
|
||||
data like '%sudba=1%' or
|
||||
iznosNOW > 0 or
|
||||
iznosnow > 0 or
|
||||
srok > 0 or
|
||||
(timeOver !=0 and timeOver < unix_timestamp())
|
||||
(timeover !=0 and timeover < unix_timestamp())
|
||||
) and uid = ?",
|
||||
[$u['id']]
|
||||
);
|
||||
@ -5141,7 +5118,9 @@ class User
|
||||
$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++;
|
||||
}
|
||||
if ($notr > 0 && $itm['inOdet'] != 0) {
|
||||
@ -5240,7 +5219,7 @@ class User
|
||||
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];
|
||||
if ($uid > 0) {
|
||||
$sql .= ' and uid = ?';
|
||||
@ -5250,7 +5229,7 @@ class User
|
||||
if (empty(Db::getValue($sql, $args))) {
|
||||
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'])) {
|
||||
$this->info['autospell'] = 1;
|
||||
Db::sql('update users set autospell = 1 where id = ?', [$this->info['id']]);
|
||||
@ -5282,7 +5261,7 @@ class User
|
||||
|
||||
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) {
|
||||
if (!in_array($stat['inslot'], [40, 51])) {
|
||||
@ -5335,7 +5314,7 @@ class User
|
||||
|
||||
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'])) {
|
||||
return 0;
|
||||
@ -5391,11 +5370,15 @@ class User
|
||||
{
|
||||
$r = '';
|
||||
$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']]
|
||||
);
|
||||
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;
|
||||
}
|
||||
$r .= '<strong>' . $pl['name'] . '</strong> [<span style="color: brown">' . floor($pl['iznosNOW']) . '/' .
|
||||
@ -5409,16 +5392,16 @@ class User
|
||||
if ($uid < 1) {
|
||||
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;
|
||||
}
|
||||
|
||||
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
|
||||
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];
|
||||
|
||||
if ($uid) {
|
||||
@ -5439,7 +5422,7 @@ class User
|
||||
if (
|
||||
isset($tr['maks_itm_one']) &&
|
||||
$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 = 'Возможное использование максимум одного предмета!';
|
||||
$notr++;
|
||||
@ -5491,7 +5474,7 @@ class User
|
||||
} elseif (isset($tr['open']) && isset($_GET['open']) && isset($tr['items_in_file'])) {
|
||||
$io = '';
|
||||
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')) {
|
||||
require_once '_incl_data/class/Magic/' . $tr['items_in_file'] . '.php';
|
||||
@ -5530,7 +5513,7 @@ class User
|
||||
$this->error = 'Не удалось открыть подарок. Содержимое испорчено.';
|
||||
} 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($itmin['id'], $this->info['id']);
|
||||
$this->error = 'Вы потеряли все HP...';
|
||||
@ -5660,7 +5643,7 @@ class User
|
||||
$itms[$i] = $itms[$i][0];
|
||||
$s = mysql_fetch_array(
|
||||
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'])) {
|
||||
@ -5809,10 +5792,8 @@ LIMIT 1'
|
||||
if ($x == 0 or $x == null) {
|
||||
$x = $this->itemsX($itm['id']); //кол-во распада
|
||||
$inGroup = 0;
|
||||
} elseif ($x != 0) {
|
||||
$inGroup = $this->stackGroupCheck($this->info['id'], $itm['inGroup'], $itm['item_id']);
|
||||
} else {
|
||||
$inGroup = 0;
|
||||
$inGroup = $this->stackGroupCheck($this->info['id'], $itm['inGroup'], $itm['item_id']);
|
||||
}
|
||||
$sp = mysql_query(
|
||||
'SELECT `im`.`id`,
|
||||
@ -5835,7 +5816,6 @@ LIMIT 1'
|
||||
`im`.`overTypei`,
|
||||
`im`.`group`,
|
||||
`im`.`group_max`,
|
||||
`im`.`geni`,
|
||||
`im`.`ts`,
|
||||
`im`.`srok`,
|
||||
`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;
|
||||
while ($x < count($t)) {
|
||||
$n = $t[$x];
|
||||
if (isset($po['tr_' . $n])) {
|
||||
if ($n == 'sex') {
|
||||
if ($this->info['sex'] != $po['tr_' . $n]) {
|
||||
$notr++;
|
||||
foreach ($this->items['tr'] as $trn) {
|
||||
if (!isset($po["tr_$trn"])) {
|
||||
continue;
|
||||
}
|
||||
} elseif ($po['tr_' . $n] > $this->stats[$n] && $n != 'align') {
|
||||
if (
|
||||
$trn === 'sex' && $this->info['sex'] != $po["tr_$trn"] ||
|
||||
$trn !== 'align' && $po["tr_$trn"] > $this->stats[$trn]
|
||||
) {
|
||||
$notr++;
|
||||
}
|
||||
}
|
||||
$x++;
|
||||
}
|
||||
|
||||
return $notr;
|
||||
}
|
||||
|
||||
@ -6046,67 +6022,23 @@ LIMIT 1'
|
||||
|
||||
if (isset($this->stats['levels']['upLevel'])) {
|
||||
$telvl = [];
|
||||
$sp = mysql_query('SELECT `upLevel`,`exp` FROM `levels`');
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
$telvl[$pl['upLevel']] = $pl['exp'];
|
||||
|
||||
foreach (Db::getRows('select uplevel, exp from levels') as $row) {
|
||||
$telvl[$row['uplevel']] = $row['exp'];
|
||||
}
|
||||
|
||||
if ($this->info['exp'] >= $telvl[$this->info['upLevel']]) {
|
||||
$lvl = 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`="' . $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-ой уровень требуется "<strong>Кристалл Вечности [6]</strong>".","Black","1","1","0"]);</script>';
|
||||
} else {
|
||||
mysql_query(
|
||||
'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
|
||||
);
|
||||
$text = 'Предмет "<strong>Кристалл Вечности [6]</strong>" был успешно использован.';
|
||||
echo '<script>chat.sendMsg(["new","' . time() . '","6","","' . $this->info['login'] . '","' . $text . '","Black","1","1","0"]);</script>';
|
||||
}
|
||||
}
|
||||
[$lvl, $lvln] = Db::getRows('select * from levels where uplevel >= ? order by uplevel limit 2', [$this->info['upLevel']]);
|
||||
|
||||
$i = 0;
|
||||
$ult = 0;
|
||||
|
||||
$sex1 = '';
|
||||
|
||||
if ($this->info['sex'] == 1) {
|
||||
$sex1 = 'ла';
|
||||
}
|
||||
|
||||
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'])) {
|
||||
$i = 1;
|
||||
} else {
|
||||
@ -6282,6 +6214,7 @@ LIMIT 1'
|
||||
$rt++;
|
||||
}
|
||||
}
|
||||
|
||||
if ($ult == 1) {
|
||||
$chat = new Chat();
|
||||
$cmsg = new ChatMessage();
|
||||
@ -6476,10 +6409,10 @@ LIMIT 1'
|
||||
if ($u['hpNow'] < $st['hpAll'] || $u['mpNow'] < $st['mpAll']) {
|
||||
Db::sql(
|
||||
'update stats set
|
||||
regHP = unix_timestamp(),
|
||||
regMP = unix_timestamp(),
|
||||
hpNow = ?,
|
||||
mpNow = ?
|
||||
reghp = unix_timestamp(),
|
||||
regmp = unix_timestamp(),
|
||||
hpnow = ?,
|
||||
mpnow = ?
|
||||
where id = ?', [$st['hpNow'], $st['mpNow'], $u['id']]
|
||||
);
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ class ItemsModel
|
||||
return [
|
||||
'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]),
|
||||
'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]),
|
||||
];
|
||||
}
|
||||
|
23
_incl_data/class/User/Login.php
Normal file
23
_incl_data/class/User/Login.php
Normal 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";
|
||||
}
|
||||
}
|
@ -126,17 +126,18 @@ class Stats
|
||||
public function getStats(int|array|null $uid = null, $i1 = 0, $reimg = false, $btl_cache = false): array
|
||||
{
|
||||
$u = match (true) {
|
||||
empty($uid) => User::getInfo($this->u->info['id']),
|
||||
empty($uid) => $this->u->info,
|
||||
is_array($uid) => $uid,
|
||||
default => User::getInfo($uid),
|
||||
};
|
||||
|
||||
|
||||
if (!isset($u['id'])) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// Как? Нахуя 4 переменные разные для одного и того же?
|
||||
$st = array_fill_keys($this->sysNames, 0);
|
||||
$st = array_fill_keys(array_keys($this->sysNames), 0);
|
||||
$sti = $st;
|
||||
$s_v = $st;
|
||||
$s_vi = $st;
|
||||
@ -168,9 +169,12 @@ class Stats
|
||||
$st['items'] = [];
|
||||
$st['effects'] = [];
|
||||
|
||||
|
||||
|
||||
$st['vip'] = $u['vip'];
|
||||
|
||||
foreach (Conversion::dataStringToArray($u['stats']) as $stat => $value) {
|
||||
//fixme несуществующие статы mg5 mg6 a6 s8-s15
|
||||
$this->addKeyIfNotExist($stat, (int)$value, $st);
|
||||
}
|
||||
|
||||
@ -282,13 +286,13 @@ class Stats
|
||||
|
||||
// мф.анти-уворот = 2.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'])) {
|
||||
@ -321,33 +325,19 @@ class Stats
|
||||
//Бонусы статов
|
||||
$this->addStatBonuses($st);
|
||||
|
||||
//если второе оружие одето
|
||||
if ($hnd2 == 1 && $hnd1 == 1) {
|
||||
$st['zona']++;
|
||||
}
|
||||
if ($sht1 == 1) {
|
||||
$st['zonb']++;
|
||||
}/* Владения */
|
||||
/* Владения */
|
||||
|
||||
//mib1-mib4, mab1-mab4 armor??
|
||||
|
||||
if (isset($st['s5'])) {
|
||||
$st['pm1'] += $st['s5'] * 0.5;
|
||||
$st['pm2'] += $st['s5'] * 0.5;
|
||||
$st['pm3'] += $st['s5'] * 0.5;
|
||||
$st['pm4'] += $st['s5'] * 0.5;
|
||||
$st['pm7'] += $st['s5'] * 0.5;
|
||||
if (!empty($st['s5'])) {
|
||||
$st['pm1'] += (int)($st['s5'] * 0.5);
|
||||
$st['pm2'] += (int)($st['s5'] * 0.5);
|
||||
$st['pm3'] += (int)($st['s5'] * 0.5);
|
||||
$st['pm4'] += (int)($st['s5'] * 0.5);
|
||||
$st['pm7'] += (int)($st['s5'] * 0.5);
|
||||
}
|
||||
|
||||
if (isset($st['m11a'])) {
|
||||
$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'])) {
|
||||
if (!empty($st['aall'])) {
|
||||
$st['a1'] += $st['aall'];
|
||||
$st['a2'] += $st['aall'];
|
||||
$st['a3'] += $st['aall'];
|
||||
@ -355,56 +345,35 @@ class Stats
|
||||
$st['a5'] += $st['aall'];
|
||||
}
|
||||
|
||||
if (isset($st['m2all'])) {
|
||||
$st['mg1'] += $st['m2all'];
|
||||
$st['mg2'] += $st['m2all'];
|
||||
$st['mg3'] += $st['m2all'];
|
||||
$st['mg4'] += $st['m2all'];
|
||||
$st['mg7'] += $st['m2all'];
|
||||
}
|
||||
|
||||
if (isset($st['zm'])) {
|
||||
if (!empty($st['zm'])) {
|
||||
$st['zm1'] += $st['zm'];
|
||||
$st['zm2'] += $st['zm'];
|
||||
$st['zm3'] += $st['zm'];
|
||||
$st['zm4'] += $st['zm'];
|
||||
$st['zm5'] += $st['zm'];
|
||||
$st['zm6'] += $st['zm'];
|
||||
$st['zm7'] += $st['zm'];
|
||||
}
|
||||
|
||||
if (isset($st['zma'])) {
|
||||
$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'])) {
|
||||
if (!empty($st['mall'])) {
|
||||
$st['mg1'] += $st['mall'];
|
||||
$st['mg2'] += $st['mall'];
|
||||
$st['mg3'] += $st['mall'];
|
||||
$st['mg4'] += $st['mall'];
|
||||
}
|
||||
|
||||
if (isset($st['m11'])) {
|
||||
if (!empty($st['m11'])) {
|
||||
$st['pm1'] += $st['m11'];
|
||||
$st['pm2'] += $st['m11'];
|
||||
$st['pm3'] += $st['m11'];
|
||||
$st['pm4'] += $st['m11'];
|
||||
}
|
||||
|
||||
if (isset($st['m10'])) {
|
||||
if (!empty($st['m10'])) {
|
||||
$st['pa1'] += $st['m10'];
|
||||
$st['pa2'] += $st['m10'];
|
||||
$st['pa3'] += $st['m10'];
|
||||
$st['pa4'] += $st['m10'];
|
||||
}
|
||||
|
||||
if (isset($st['za'])) {
|
||||
if (!empty($st['za'])) {
|
||||
$st['za1'] += $st['za'];
|
||||
$st['za2'] += $st['za'];
|
||||
$st['za3'] += $st['za'];
|
||||
@ -412,16 +381,16 @@ class Stats
|
||||
}
|
||||
|
||||
if (!empty($st['hpVinos'])) {
|
||||
$st['hpall'] += round($st['hpVinos'] * $st['s4']);
|
||||
$st['hpall'] += (int)($st['hpVinos'] * $st['s4']);
|
||||
}
|
||||
if (!empty($st['mpVinos'])) {
|
||||
$st['mpall'] += round($st['mpVinos'] * $st['s6']);
|
||||
$st['mpall'] += (int)($st['mpVinos'] * $st['s6']);
|
||||
}
|
||||
if (!empty($st['hpProc'])) {
|
||||
$st['hpall'] += round($st['hpall'] / 100 * $st['hpProc']);
|
||||
$st['hpall'] += (int)($st['hpall'] / 100 * $st['hpProc']);
|
||||
}
|
||||
if (!empty($st['mpProc'])) {
|
||||
$st['mpall'] += round($st['mpall'] / 100 * $st['mpProc']);
|
||||
$st['mpall'] += (int)($st['mpall'] / 100 * $st['mpProc']);
|
||||
}
|
||||
|
||||
//Реген. - 250 ед.
|
||||
@ -430,6 +399,15 @@ class Stats
|
||||
$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) {
|
||||
$st['zona'] = 1;
|
||||
}
|
||||
@ -473,12 +451,9 @@ class Stats
|
||||
$st['btl_cof'] = $st['prckr'];
|
||||
Db::sql('update stats set btl_cof = ? where id = ?', [$st['prckr'], $st['id']]);
|
||||
}
|
||||
if ($st['hpall'] < 1) {
|
||||
$st['hpall'] = 1;
|
||||
}
|
||||
if ($st['mpall'] < 0) {
|
||||
$st['mpall'] = 0;
|
||||
}
|
||||
|
||||
$st['hpall'] = max($st['hpall'], 1);
|
||||
$st['mpall'] = max($st['mpall'], 0);
|
||||
|
||||
if (stristr($u['login'], '(зверь ') || (stristr($u['login'], 'Каменный страж') && $u['ip'] == '0')) {
|
||||
$st['this_animal'] = 1;
|
||||
@ -495,8 +470,8 @@ class Stats
|
||||
} else {
|
||||
$rt = $st;
|
||||
}
|
||||
if ($u['hpAll'] != $st['hpall'] || $u['mpAll'] != $st['mpall']) {
|
||||
Db::sql('update stats set hpAll = ?, mpAll = ? where id = ?', [$st['hpall'], $st['mpall'], $u['id']]);
|
||||
if ($u['hpAll'] != $st['hpAll'] || $u['mpAll'] != $st['mpAll']) {
|
||||
Db::sql('update stats set hpAll = ?, mpAll = ? where id = ?', [$st['hpAll'], $st['mpAll'], $u['id']]);
|
||||
}
|
||||
if ($btl_cache) {
|
||||
$dataca = [
|
||||
@ -564,6 +539,7 @@ class Stats
|
||||
5 => [70, 89,],//Великолепная
|
||||
];
|
||||
|
||||
|
||||
foreach ($wearedItems as $wearedItem) {
|
||||
$this->addKeyIfNotExist('wp' . $wearedItem['inOdet'] . 'id', $h, $st);
|
||||
|
||||
@ -591,48 +567,37 @@ class Stats
|
||||
$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'])) {
|
||||
$ozm = array_fill_keys($ozm, $ozaozmtypes[$data['add_ozm']]);
|
||||
if (isset($data['add_oza']) && in_array($data['add_oza'], range(1, 5))) {
|
||||
$oza[$i][0] += $ozaozmtypes[$data['add_oza']][0];
|
||||
$oza[$i][1] += $ozaozmtypes[$data['add_oza']][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 = array_fill_keys($ozm, $ozaozmtypes[1]);
|
||||
$ozm[$i][0] += $ozaozmtypes[1][0];
|
||||
$ozm[$i][1] += $ozaozmtypes[1][1];
|
||||
}
|
||||
|
||||
if (in_array($data['add_oza1'], range(1, 5))) {
|
||||
$oza[1] = $ozaozmtypes[$data['add_oza1']];
|
||||
if (in_array($data["add_oza$i"], range(1, 5))) {
|
||||
$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 (in_array($data['add_oza3'], range(1, 5))) {
|
||||
$oza[3] = $ozaozmtypes[$data['add_oza3']];
|
||||
}
|
||||
if (in_array($data['add_oza4'], range(1, 5))) {
|
||||
$oza[4] = $ozaozmtypes[$data['add_oza4']];
|
||||
}
|
||||
|
||||
if (in_array($data['add_ozm1'], range(1, 5))) {
|
||||
$ozm[1] = $ozaozmtypes[$data['add_ozm1']];
|
||||
if (isset($data["add_ozm$i"]) && in_array($data["add_ozm$i"], range(1, 5))) {
|
||||
$ozm[$i][0] += $ozaozmtypes[$data["add_ozm$i"]][0];
|
||||
$ozm[$i][1] += $ozaozmtypes[$data["add_ozm$i"]][1];
|
||||
} else {
|
||||
$ozm[1] = $ozaozmtypes[1];
|
||||
$ozm[$i][0] += $ozaozmtypes[1][0];
|
||||
$ozm[$i][1] += $ozaozmtypes[1][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'])) {
|
||||
@ -1167,7 +1132,11 @@ class Stats
|
||||
);
|
||||
|
||||
//Бонус за количество полностью вырытых пещер.
|
||||
if (isset($st['m10'])) {
|
||||
$st['m10'] += 10 * $finishedDungeons;
|
||||
} else {
|
||||
$st['m10'] = 10 * $finishedDungeons;
|
||||
}
|
||||
}
|
||||
|
||||
private function addAdminBonuses(array $u, array &$st): void
|
||||
@ -1197,11 +1166,22 @@ class Stats
|
||||
*/
|
||||
private function renameArrayKeys(array &$st): void
|
||||
{
|
||||
if (isset($st['level'])) {
|
||||
$st['lvl'] = $st['level'];
|
||||
}
|
||||
if (isset($st['hpall'])) {
|
||||
$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']);
|
||||
}
|
||||
unset($st['level'], $st['hpnow'], $st['mpnow'], $st['hpall'], $st['mpall']);
|
||||
}
|
||||
|
||||
public static function saveBattleStats(array $stats, int $id): void
|
||||
|
@ -8,7 +8,7 @@ if(!defined('GAME')) {
|
||||
Цена: 2 маны - 1 ед.
|
||||
Процент поглощения: 50%
|
||||
*/
|
||||
$pvr = array();
|
||||
$pvr = [];
|
||||
|
||||
//Действие при клике
|
||||
if (isset($pr_momental_this)) {
|
||||
@ -51,10 +51,7 @@ if( isset($pr_momental_this)) {
|
||||
$u1 = $uid2;
|
||||
$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;
|
||||
@ -82,12 +79,17 @@ if( isset($pr_momental_this)) {
|
||||
$u2 = $uid1;
|
||||
}
|
||||
if ($a > 0) {
|
||||
$j = 0; $k = 0; $wp = 3;
|
||||
$checktuman=mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid` = "'.$uid.'"
|
||||
$j = 0;
|
||||
$k = 0;
|
||||
$wp = 3;
|
||||
$checktuman = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT * FROM `eff_users` WHERE `uid` = "' . $uid . '"
|
||||
AND (`v2` = 273 OR `v2` = 286 OR `v2` = 287 OR `v2` = 288)
|
||||
AND `delete` =0 LIMIT 1')); //проверка на туманный образ
|
||||
if(!isset($checktuman['id']))
|
||||
{
|
||||
AND `delete` =0 LIMIT 1'
|
||||
)
|
||||
); //проверка на туманный образ
|
||||
if (!isset($checktuman['id'])) {
|
||||
while ($j < count($at['p'][$a]['atack'])) {
|
||||
if (isset($at['p'][$a]['atack'][$j]['yron']) && (
|
||||
$at['p'][$a]['atack'][$j][1] == 1 ||
|
||||
@ -99,23 +101,35 @@ if( isset($pr_momental_this)) {
|
||||
$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; }
|
||||
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']['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']['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);
|
||||
|
||||
|
||||
if( $at['p'][$a]['atack'][$j]['yron']['y'] < 1 ) { $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; }
|
||||
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']['m_y'] < 1 ) { $at['p'][$a]['atack'][$j]['yron']['m_y'] = 1; }
|
||||
if ($at['p'][$a]['atack'][$j]['yron']['y'] < 1) {
|
||||
$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;
|
||||
}
|
||||
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']['m_y'] < 1) {
|
||||
$at['p'][$a]['atack'][$j]['yron']['m_y'] = 1;
|
||||
}
|
||||
//
|
||||
$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]['atack'][$j]['yron']['used'][] = [$j_id, $uid, $pvr['used']];
|
||||
$at['p'][$a]['atack'][$j]['yron']['kill'][] = [$j_id, $uid, $pvr['kill']];
|
||||
//
|
||||
$at['p'][$a]['priems']['kill'][$uid][$j_id] = true;
|
||||
//}
|
||||
@ -130,9 +144,10 @@ if( isset($pr_momental_this)) {
|
||||
unset($pr_used_this);
|
||||
} else {
|
||||
//Действие при клике
|
||||
$btl->priemAddLog( $id, 1, 2, $u->info['id'], $u->info['enemy'],
|
||||
$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).'',
|
||||
'{tm1} ' . $btl->addlt(1, 21, $btl->users[$btl->uids[$u->info['id']]]['sex'], null) . '',
|
||||
($btl->hodID + 1)
|
||||
);
|
||||
echo '<font color=red><b>Вы успешно использовали прием "Магический Барьер [4]"</b></font>';
|
||||
@ -140,4 +155,3 @@ if( isset($pr_momental_this)) {
|
||||
}
|
||||
|
||||
unset($pvr);
|
||||
?>
|
@ -6,7 +6,7 @@ if(!defined('GAME')) {
|
||||
Прием: Скрытая ловкость
|
||||
Уворот от 1-го удара и наносите контрудар
|
||||
*/
|
||||
$pvr = array();
|
||||
$pvr = [];
|
||||
if (isset($pr_tested_this)) {
|
||||
$fx_priem = function ($id, $at, $uid, $j_id) {
|
||||
// -- начало приема
|
||||
@ -59,7 +59,9 @@ if( isset($pr_tested_this) ) {
|
||||
$u2 = $uid1;
|
||||
}
|
||||
if ($a > 0) {
|
||||
$j = 0; $k = 0; $wp = 3;
|
||||
$j = 0;
|
||||
$k = 0;
|
||||
$wp = 3;
|
||||
while ($j < count($at['p'][$a]['atack'])) {
|
||||
if (
|
||||
!isset($at['p'][$a]['atack'][$j]['priem_used']) &&
|
||||
@ -71,34 +73,22 @@ if( isset($pr_tested_this) ) {
|
||||
unset($at['p'][$a]['atack'][$j]['yron']);
|
||||
$at['p'][$a]['atack'][$j][1] = 8;
|
||||
$pvr['rnd_a'] = rand(1, 5);
|
||||
if( $btl->testRazmenblock1($id,$u2,$u1,$pvr['rnd_a']) == false ) {
|
||||
if (!$btl->testRazmenblock1($id, $u2, $u1)) {
|
||||
//Попал
|
||||
$at['p'][$b]['atack'][] = array( $pvr['rnd_a'] , 1 , 0 , 1 ); // 1 1 1
|
||||
$at['p'][$b]['atack'][] = [$pvr['rnd_a'], 1, 0, 1]; // 1 1 1
|
||||
} else {
|
||||
//В блок
|
||||
$at['p'][$b]['atack'][] = array( $pvr['rnd_a'] , 3 , 0 , 1 ); // 2 1 1
|
||||
$at['p'][$b]['atack'][] = [$pvr['rnd_a'], 3, 0, 1]; // 2 1 1
|
||||
}
|
||||
//$at = $btl->contrRestart($id,$at,true);
|
||||
//$at = $btl->priemsTestRazmen($id,$at);
|
||||
//
|
||||
/*$at['p'][$a]['atack'][$j]['yron']['plog'][] = '$this->deleffm(215,'.(0+$uid).','.$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3].');
|
||||
$this->priemAddLog( '.$id.', '.$b.', '.$a.', '.$u2.', '.$u1.',
|
||||
"Скрытая ловкость",
|
||||
"{tm1} '.$btl->addlt($b , 17 , $btl->users[$btl->uids[$u2]]['sex'] , NULL).'",
|
||||
'.($btl->hodID + 1).' );';*/
|
||||
//
|
||||
$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]['atack'][$j]['yron']['used'][] = [$j_id, $uid, $pvr['used']];
|
||||
$at['p'][$a]['atack'][$j]['yron']['kill'][] = [$j_id, $uid, $pvr['kill']];
|
||||
$at['p'][$a]['priems']['kill'][$uid][$j_id] = true;
|
||||
$at['p'][$a]['atack'][$j]['priem_used'] = $id;
|
||||
//
|
||||
if( $btl->testRazmenblock1($id,$u2,$u1,$pvr['rnd_a']) == false ) {
|
||||
if (!$btl->testRazmenblock1($id, $u2, $u1)) {
|
||||
$at = $this->yronRazmen($id, $at, true);
|
||||
}
|
||||
//
|
||||
}
|
||||
//
|
||||
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
@ -112,4 +102,3 @@ if( isset($pr_tested_this) ) {
|
||||
$this->addEffPr($pl, $id);
|
||||
}
|
||||
unset($pvr);
|
||||
?>
|
@ -119,7 +119,7 @@ if( isset($pr_used_this) && isset($pr_moment) ) {
|
||||
($btl->hodID)
|
||||
);
|
||||
// спасение
|
||||
$btl->spaCheck($u1]);
|
||||
$btl->spaCheck($u1);
|
||||
// спасение
|
||||
}
|
||||
// -- конец приема
|
||||
|
@ -158,7 +158,7 @@ if( isset($pr_used_this) && isset($pr_moment) ) {
|
||||
($btl->hodID)
|
||||
);
|
||||
// спасение
|
||||
$btl->spaCheck($u1]);
|
||||
$btl->spaCheck($u1);
|
||||
// спасение
|
||||
$pvr['ijk']++;
|
||||
}
|
||||
|
@ -161,7 +161,7 @@ if( isset($pr_used_this) && isset($pr_moment) ) {
|
||||
($btl->hodID)
|
||||
);
|
||||
// спасение
|
||||
$btl->spaCheck($u1]);
|
||||
$btl->spaCheck($u1);
|
||||
// спасение
|
||||
//
|
||||
|
||||
|
@ -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'];
|
||||
|
||||
//действия
|
||||
$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['promah_type'] = $pvr['hp'][3];
|
||||
$pvr['promah'] = $pvr['hp'][2];
|
||||
@ -57,7 +57,7 @@ if( isset($pr_used_this) && isset($pr_moment) ) {
|
||||
}
|
||||
//
|
||||
$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['color'] = '006699';
|
||||
|
@ -6,7 +6,7 @@ if(!defined('GAME')) {
|
||||
Прием: Танец лезвий
|
||||
Уворот от 1-го удара и наносите контрудар
|
||||
*/
|
||||
$pvr = array();
|
||||
$pvr = [];
|
||||
if (isset($pr_tested_this)) {
|
||||
$fx_priem = function ($id, $at, $uid, $j_id) {
|
||||
// -- начало приема
|
||||
@ -59,41 +59,39 @@ if( isset($pr_tested_this) ) {
|
||||
$u2 = $uid1;
|
||||
}
|
||||
if ($a > 0) {
|
||||
$j = 0; $k = 0; $wp = 3;
|
||||
$j = 0;
|
||||
$k = 0;
|
||||
$wp = 3;
|
||||
while ($j < count($at['p'][$a]['atack'])) {
|
||||
if (
|
||||
!isset($at['p'][$a]['atack'][$j]['priem_used']) &&
|
||||
($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]) ) {
|
||||
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);
|
||||
if( $btl->testRazmenblock1($id,$u2,$u1,$pvr['rnd_a']) == false ) {
|
||||
if (!$btl->testRazmenblock1($id, $u2, $u1)) {
|
||||
//Попал
|
||||
$at['p'][$b]['atack'][] = array( $pvr['rnd_a'] , 1 , 0 , 1 );
|
||||
$at['p'][$b]['atack'][] = [$pvr['rnd_a'], 1, 0, 1];
|
||||
} else {
|
||||
//В блок
|
||||
$at['p'][$b]['atack'][] = array( $pvr['rnd_a'] , 3 , 0 , 1 );
|
||||
$at['p'][$b]['atack'][] = [$pvr['rnd_a'], 3, 0, 1];
|
||||
}
|
||||
//$at = $btl->contrRestart($id,$at,true);
|
||||
//$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] . ');
|
||||
$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) . ' );';
|
||||
//
|
||||
$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]['atack'][$j]['yron']['used'][] = [$j_id, $uid, $pvr['used']];
|
||||
$at['p'][$a]['atack'][$j]['yron']['kill'][] = [$j_id, $uid, $pvr['kill']];
|
||||
//
|
||||
$at['p'][$a]['priems']['kill'][$uid][$j_id] = true;
|
||||
$at['p'][$a]['atack'][$j]['priem_used'] = $id;
|
||||
//
|
||||
if( $btl->testRazmenblock1($id,$u2,$u1,$pvr['rnd_a']) == false ) {
|
||||
if (!$btl->testRazmenblock1($id, $u2, $u1)) {
|
||||
$at = $this->yronRazmen($id, $at, true);
|
||||
}
|
||||
//
|
||||
@ -112,4 +110,3 @@ if( isset($pr_tested_this) ) {
|
||||
$this->addEffPr($pl, $id);
|
||||
}
|
||||
unset($pvr);
|
||||
?>
|
@ -307,7 +307,7 @@ if ($pl['id'] == 189) {
|
||||
$hpmin = $u->info['level'] * 5;
|
||||
} elseif ($pl['id'] == 271) {
|
||||
//прием Прорыв 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);
|
||||
|
||||
|
@ -458,7 +458,7 @@ if(isset($hod))
|
||||
|
||||
if($dell){
|
||||
$dell['priem']['id']=$dell['id'];
|
||||
$btl->delPriem($dell,$u->info,99,false,$pl['name']);
|
||||
$btl->delPriem($dell, $u->info, 99, 0, $pl['name']);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,3 +0,0 @@
|
||||
Sign successfully
|
||||
IK sing :RpNOBfN+zusMfjQHDqp6UQ==
|
||||
locally formed :RpNOBfN+zusMfjQHDqp6UQ==
|
@ -67,6 +67,7 @@ if (!isset($_COOKIE['d1c'])) {
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru-RU">
|
||||
<head>
|
||||
|
@ -116,24 +116,11 @@ if (isset($r2['pos'])) {
|
||||
}
|
||||
}
|
||||
|
||||
$timday = strtotime('now 00:00:00');
|
||||
$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];
|
||||
[$clanw, $clanl] = \Model\BattleModel::countClanWars($clan['id']);
|
||||
|
||||
$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(
|
||||
'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 = "";
|
||||
while ($clanwa = mysql_fetch_array($clanwar)) {
|
||||
@ -304,8 +291,7 @@ while ($clanwa = mysql_fetch_array($clanwar)) {
|
||||
$html .= '<br>';
|
||||
|
||||
$sp = mysql_query(
|
||||
'SELECT * FROM `users` WHERE `clan` = "' . $clan['id'] . '" AND `clan_prava` != "glava" AND `online` > "' . (time(
|
||||
) - 520) . '" ORDER BY `login` ASC'
|
||||
'SELECT * FROM `users` WHERE `clan` = "' . $clan['id'] . '" AND `clan_prava` != "glava" AND `online` > "' . (time() - 520) . '" ORDER BY `login` ASC'
|
||||
);
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
$html .= '<div>';
|
||||
@ -320,8 +306,7 @@ while ($clanwa = mysql_fetch_array($clanwar)) {
|
||||
$html .= '</div>';
|
||||
}
|
||||
$sp = mysql_query(
|
||||
'SELECT * FROM `users` WHERE `clan` = "' . $clan['id'] . '" AND `clan_prava` != "glava" AND `online` <= "' . (time(
|
||||
) - 520) . '" ORDER BY `login` ASC'
|
||||
'SELECT * FROM `users` WHERE `clan` = "' . $clan['id'] . '" AND `clan_prava` != "glava" AND `online` <= "' . (time() - 520) . '" ORDER BY `login` ASC'
|
||||
);
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
$html .= '<div style="color:grey">';
|
||||
|
@ -7,21 +7,20 @@ require_once('_incl_data/__config.php');
|
||||
require_once('_incl_data/class/__db_connect.php');
|
||||
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('SELECT
|
||||
$stats = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT
|
||||
|
||||
`id`,`team`,`enemy`,
|
||||
`tactic1`,`tactic2`,`tactic3`,`tactic4`,`tactic5`,`tactic6`,`tactic7`,
|
||||
`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']) {
|
||||
$stats['hpNow'] = $stats['hpAll'];
|
||||
@ -36,7 +35,9 @@ if(isset($user['id']) && $user['battle'] > 0) {
|
||||
//Проверяем размен с текущим противником
|
||||
$bot_go = false;
|
||||
$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(
|
||||
'SELECT `id`,`uid1`,`uid2`,`time` FROM `battle_act` WHERE ( `uid1` = "' . $user['id'] . '" OR `uid2` = "' . $user['id'] . '" ) AND `battle` = "' . $user['battle'] . '" ORDER BY `time` ASC'
|
||||
);
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
$rd .= ',[' . $pl['id'] . ',' . $pl['uid1'] . ',' . $pl['uid2'] . ',' . ($pl['time'] - time() + $bt['timeout']) . ']';
|
||||
//
|
||||
@ -58,8 +59,9 @@ if(isset($user['id']) && $user['battle'] > 0) {
|
||||
}
|
||||
|
||||
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'])) {
|
||||
|
||||
//Получение инф. о пользователях в бою
|
||||
@ -117,17 +119,25 @@ if(isset($user['id']) && $user['battle'] > 0) {
|
||||
while ($i < count($ex)) {
|
||||
if ($ex[$i] > 0) {
|
||||
//
|
||||
$us = mysql_fetch_array(mysql_query('SELECT
|
||||
$us = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT
|
||||
|
||||
`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
|
||||
$ss = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT
|
||||
|
||||
`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']) {
|
||||
$ss['hpNow'] = $ss['hpAll'];
|
||||
@ -145,11 +155,11 @@ if(isset($user['id']) && $user['battle'] > 0) {
|
||||
$rd .= ',"align":"' . $us['align'] . '"';
|
||||
$rd .= ',"clan":"' . $us['clan'] . '"';
|
||||
$rd .= ',"team":"' . $ss['team'] . '"';
|
||||
$rd .= ',"hp":'.( 0 + $ss['hpNow'] ).'';
|
||||
$rd .= ',"mp":'.( 0 + $ss['mpNow'] ).'';
|
||||
$rd .= ',"hpAll":'.( 0 + $ss['hpAll'] ).'';
|
||||
$rd .= ',"mpAll":'.( 0 + $ss['mpAll'] ).'';
|
||||
$rd .= ',"sex":'.( 0 + $us['sex'] ).'';
|
||||
$rd .= ',"hp":' . (0 + $ss['hpNow']);
|
||||
$rd .= ',"mp":' . (0 + $ss['mpNow']);
|
||||
$rd .= ',"hpAll":' . (0 + $ss['hpAll']);
|
||||
$rd .= ',"mpAll":' . (0 + $ss['mpAll']);
|
||||
$rd .= ',"sex":' . (0 + $us['sex']);
|
||||
$rd .= ',"obraz":"' . $us['obraz'] . '"';
|
||||
//
|
||||
//Предметы
|
||||
@ -201,11 +211,15 @@ if(isset($user['id']) && $user['battle'] > 0) {
|
||||
while ($i < count($ex)) {
|
||||
if ($ex[$i] > 0) {
|
||||
//
|
||||
$pl = mysql_fetch_array(mysql_query('SELECT
|
||||
$pl = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT
|
||||
|
||||
`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 .= ',{';
|
||||
@ -235,5 +249,9 @@ if(isset($user['id']) && $user['battle'] > 0) {
|
||||
$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'] . '" }';
|
||||
|
||||
|
@ -53,7 +53,6 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
}
|
||||
//
|
||||
$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"> ';
|
||||
if ($pl['noinc'] > 0) {
|
||||
$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 .= ' <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"> ';
|
||||
if ($pl['noinc'] > 0) {
|
||||
$html .= '<img src="//img.new-combats.tech/closefight.gif" title="В поединок нельзя вмешаться">';
|
||||
@ -145,9 +143,6 @@ $sp = mysql_query('SELECT * FROM `bs_turnirs`');
|
||||
$i = 0;
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
$i++;
|
||||
//
|
||||
$html .= $i . '. <img title="' . $u->city_name[$pl['city']] . '" src="//img.new-combats.tech/i/city_ico/' . $pl['city'] . '.gif">';
|
||||
//
|
||||
$html .= ' [' . $pl['level'] . ']';
|
||||
if ($pl['status'] == 0) {
|
||||
//Ожидаем начала нового турнира
|
||||
|
6
inf.php
6
inf.php
@ -266,7 +266,11 @@ if (isset($uer)) {
|
||||
<!-- pos1 -->
|
||||
<?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['online'] > time() - 520 && $inf['banned'] == 0 && $inf['invis'] != 1 && $inf['invis'] < time()) {
|
||||
|
@ -596,7 +596,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
|
||||
?>
|
||||
<BR>
|
||||
</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'] ?>">
|
||||
<SPAN style='background-color: #E0E0E0'>
|
||||
<img src="//img.new-combats.tech/i/items/<?= $itm['img'] ?>"
|
||||
@ -612,7 +612,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
|
||||
<p>
|
||||
</td>
|
||||
<!-- End of text -->
|
||||
<td style='padding-left: 3' align=right>
|
||||
<td style='padding-left: 3px' align=right>
|
||||
<img id="imright" height=144
|
||||
src="//img.new-combats.tech/i/encicl/pict_<?= $rz[$rt[$itm['type']]][0] ?>.jpg" width=139
|
||||
border=0>
|
||||
@ -621,7 +621,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<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"
|
||||
width=128 border=0>
|
||||
</td>
|
||||
@ -643,7 +643,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
|
||||
$sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 26');
|
||||
} 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) {
|
||||
//Эликсиры
|
||||
$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');
|
||||
} 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) {
|
||||
//Дубины
|
||||
$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');
|
||||
} 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) {
|
||||
//Подарки
|
||||
$sp = mysql_query('SELECT * FROM `items_main` WHERE `type` = 38 OR `type` = 63');
|
||||
@ -1074,7 +1074,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
|
||||
?>
|
||||
<BR>
|
||||
</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'] ?>">
|
||||
<SPAN style='background-color: #E0E0E0'>
|
||||
<img src="//img.new-combats.tech/i/items/<?= $itm['img'] ?>"
|
||||
@ -1096,7 +1096,9 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
|
||||
<BR>
|
||||
<p>
|
||||
<!-- 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>
|
||||
</td>
|
||||
<td valign=top background="/forum_script/img/rightground.jpg"> </td>
|
||||
@ -1158,7 +1160,7 @@ $rz[$rt[$itm['type']]][1] ??= 'Прочие предметы';
|
||||
<!-- -->
|
||||
|
||||
</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>
|
||||
</td>
|
||||
<td width="23" valign=top background="/forum_script/img/rightground.jpg"> </td>
|
||||
|
@ -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;
|
||||
var d = document.getElementById(`player${id_info}`);
|
||||
if(d!=undefined)
|
||||
if(d)
|
||||
{
|
||||
var mbmp = '';
|
||||
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%';
|
||||
}
|
||||
var zaggg = '',zggg1 = '',zggg2 = '',zggg3,zggg4 = '';
|
||||
if( zag != undefined && zag != 0 && zag != '' ) {
|
||||
if(zag) {
|
||||
zggg1 = 'class="inf2s"';
|
||||
zggg2 = 'position:relative;height:280px;';
|
||||
zggg3 = 'position:absolute;top:3px;left:3px;z-index:102;';
|
||||
|
@ -42,6 +42,7 @@ const chat = {
|
||||
efftxt: function (id, txt) {
|
||||
return txt;
|
||||
},
|
||||
|
||||
ignore: function (login) {
|
||||
if (this.ignoreList[login] !== 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>`);
|
||||
}
|
||||
},
|
||||
|
||||
getRandom: function (a, b) {
|
||||
return a + ((b - a) * Math.random());
|
||||
},
|
||||
|
||||
feerverk_id: 0,
|
||||
|
||||
feerverk: function (name) {
|
||||
const frc = {
|
||||
'name': 'fw04',
|
||||
@ -82,7 +86,7 @@ const chat = {
|
||||
frc.left -= 35;
|
||||
}
|
||||
|
||||
if (frc.name !== undefined) {
|
||||
if (frc.name) {
|
||||
this.sendSound(frc.sound);
|
||||
const obj = top.frames.main.document.getElementById('frvrks');
|
||||
if (obj !== undefined) {
|
||||
@ -103,6 +107,7 @@ const chat = {
|
||||
if (zad > 0) {
|
||||
setTimeout(`chat.feerverk_go(${id}, ${time_back}, "${img}", ${x}, 0);`, 500 * zad);
|
||||
} else {
|
||||
|
||||
time_back--;
|
||||
top.frames.main.document.getElementById(`frvanim_${id}`);
|
||||
if (time_back > 0) {
|
||||
@ -258,10 +263,12 @@ const chat = {
|
||||
clearText: function () {
|
||||
$('#textmsg').val('');
|
||||
},
|
||||
|
||||
reflesh: function () {
|
||||
this.time = 0;
|
||||
this.testTimer(true);
|
||||
},
|
||||
|
||||
reMoney: function () {
|
||||
$('#moneyGM').html(`${c.money} кр.`);
|
||||
},
|
||||
|
@ -1,4 +1,9 @@
|
||||
<?php
|
||||
// я ебу, архивы поединков используют динамически-генерируемые логи из шаблона на лету
|
||||
// вместо того чтобы хранить тупо статический текст
|
||||
// сколько ещё открытий чудных?
|
||||
|
||||
// мораль: перед удалением проверить кто и где вызывает файл.
|
||||
|
||||
$log_text = [];
|
||||
$log_text[0] = []; //для муж.
|
||||
|
@ -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>';
|
||||
|
||||
require_once 'log_text.php';
|
||||
$btl = new Battle();
|
||||
require_once('log_text.php');
|
||||
$btl->is = $u->is;
|
||||
$btl->items = $u->items;
|
||||
$btl->info = $btl->battleInfo($u->info['battle']);
|
||||
$isBattle = $btl->initRefresh($u);
|
||||
|
||||
if (!isset($btl->info['id'])) {
|
||||
if (!$isBattle) {
|
||||
if ($u->info['battle'] == -1) {
|
||||
//завершаем поединок
|
||||
Db::sql('update users set battle = 0, online = unix_timestamp() where id = ?', [$u->info['id']]);
|
||||
|
@ -86,12 +86,11 @@ if (isset($CRON_CORE) && (isset($_POST['atack'], $_POST['block']) || (isset($_PO
|
||||
) . "' WHERE `id`='" . $u->info['id'] . "' LIMIT 1"
|
||||
);
|
||||
}
|
||||
$btl = new Battle();
|
||||
require_once('log_text.php');
|
||||
$btl->is = $u->is;
|
||||
$btl->items = $u->items;
|
||||
$btl->info = $btl->battleInfo($u->info['battle']);
|
||||
if (!isset($btl->info['id'])) {
|
||||
$btl = new Battle();
|
||||
$isBattle = $btl->initRefresh($u);
|
||||
|
||||
if (!$isBattle) {
|
||||
if ($u->info['battle'] == -1) {
|
||||
//завершаем поединок
|
||||
$upd = mysql_query(
|
||||
|
414
main.php
414
main.php
@ -7,49 +7,7 @@ use Core\{Config, Database, Db};
|
||||
use User\ItemsModel;
|
||||
use User\UserIp;
|
||||
|
||||
?>
|
||||
|
||||
<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)
|
||||
function var_info($vars, $d = false): void
|
||||
{
|
||||
echo "<pre>\n";
|
||||
var_dump($vars);
|
||||
@ -72,7 +30,7 @@ $code = PassGen::intCode(); //для ссылок вида ?rnd=XXXXXX, врод
|
||||
|
||||
/** Восстанавливаем всем ботам, которые не в бою здоровье до максимума. */
|
||||
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) {
|
||||
@ -99,12 +57,12 @@ if ($u->room['file'] == "room_hostel" || $u->room['file'] == "post") {
|
||||
if (($u->info['online'] < time() - 60 || $u->info['afk'] != '')) {
|
||||
$filter->setOnline(0, $u->info['id']);
|
||||
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']]
|
||||
);
|
||||
} elseif ($u->info['timeMain'] < time() - 60 || $u->info['afk'] != '') {
|
||||
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']]
|
||||
);
|
||||
}
|
||||
@ -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;
|
||||
$act2 = 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(
|
||||
'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']]
|
||||
);
|
||||
$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']]
|
||||
);
|
||||
$check3 = Db::getValue(
|
||||
@ -234,7 +188,8 @@ if (isset($_GET['atak_user']) && $u->info['battle'] == 0 && $_GET['atak_user'] !
|
||||
}
|
||||
|
||||
Db::sql(
|
||||
'update stats set hpNow = ?, mpNow = ? where id = ?', [
|
||||
'update stats set hpnow = ?, mpnow = ? where id = ?',
|
||||
[
|
||||
$usta['hpNow'],
|
||||
$usta['mpNow'],
|
||||
$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']]
|
||||
);
|
||||
}
|
||||
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) {
|
||||
$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(
|
||||
$u->room['file'],
|
||||
@ -547,12 +354,209 @@ foreach ($sp as $pl) {
|
||||
</a>
|
||||
HTML;
|
||||
}
|
||||
} else {
|
||||
echo '[!]';
|
||||
}
|
||||
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 ($iloce != '') {
|
||||
$iloc = '<div style="padding:10px; color: red;">' . $iloce . '</div>' . $iloc;
|
||||
@ -617,10 +621,8 @@ if ($iloc != '') {
|
||||
}
|
||||
|
||||
unset($iloc, $iloce);
|
||||
|
||||
/*-----------------------*/
|
||||
$spl = Db::getValue('select exp from levels where nextLevel = ? order by exp limit 1', [$u->info['level'] + 1]);
|
||||
|
||||
|
||||
//Сломаное обучение. Как оно достало! Ins. 🤬
|
||||
//$training_manager->render();
|
||||
?>
|
||||
|
@ -52,7 +52,7 @@ if ($r === FightRequest::BATTLE_RAZDEL_ENDED) {
|
||||
IntlDateFormatter::LONG,
|
||||
IntlDateFormatter::NONE
|
||||
);
|
||||
$dt = $_GET['logs2'] ??= time();
|
||||
$dt = $_GET['logs2'] ??= (new DateTime('now midnight'))->gettimestamp();
|
||||
$slogin = $_GET['filter'] ?? $_POST['filter'] ?? $u->info['login'];
|
||||
$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>
|
||||
</td>
|
||||
<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 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 class="<?= $r == FightRequest::BATTLE_RAZDEL_CURRENT ? 's' : 'm' ?>">
|
||||
<a href="/main.php?zayvka=1&r=<?= FightRequest::BATTLE_RAZDEL_CURRENT ?>&rnd=<?= $code ?>">Текущие</a>
|
||||
|
@ -19,21 +19,9 @@ if ($u->info['battle'] == 0 || isset($_GET['bend'])) {
|
||||
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']]);
|
||||
|
||||
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
|
||||
{
|
||||
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>
|
||||
|
@ -263,7 +263,7 @@ if ($u->room['file'] == 'bsenter') {
|
||||
<BR>
|
||||
</fieldset>
|
||||
</form>
|
||||
<h4>Топ 10 игроков (новая статистиика) турнир 5<? //=$t['level']?> уровней</h4>
|
||||
<h4>Топ 10 игроков (новая статистиика) турнир 5 уровней</h4>
|
||||
<?php
|
||||
$sp = mysql_query('SELECT * FROM `users` WHERE `win_bs`>0 ORDER BY `win_bs` DESC LIMIT 10');
|
||||
$i = 1;
|
||||
@ -279,7 +279,7 @@ if ($u->room['file'] == 'bsenter') {
|
||||
$i++;
|
||||
}
|
||||
?>
|
||||
<h4>Победители 10-ти предыдущих турниров для 5<? //=$t['level']?> уровней</h4>
|
||||
<h4>Победители 10-ти предыдущих турниров для 5 уровней</h4>
|
||||
<?php
|
||||
$sp = mysql_query('SELECT * FROM `bs_statistic` WHERE `wuid` > 0 ORDER BY `id` DESC LIMIT 10');
|
||||
$i = 1;
|
||||
@ -317,7 +317,7 @@ if ($u->room['file'] == 'bsenter') {
|
||||
$i++;
|
||||
}
|
||||
?>
|
||||
<h4>Самый продолжительный турнир для 5<? //=$t['level']?> уровней</h4>
|
||||
<h4>Самый продолжительный турнир для 5 уровней</h4>
|
||||
<?php
|
||||
$sp = mysql_query('SELECT * FROM `bs_statistic` WHERE `wuid` > 0 ORDER BY `time_sf` DESC LIMIT 1');
|
||||
$i = 1;
|
||||
|
@ -1,82 +1,74 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
//id Новогоднего подарка
|
||||
$pidid = 4008;
|
||||
|
||||
$dy = 1;
|
||||
if((date('n',time())==2 && date('j',time())<=14))
|
||||
{
|
||||
if ((date('n', time()) == 2 && date('j', time()) <= 14)) {
|
||||
$dy = 0;
|
||||
}
|
||||
$dt = date('Y', time()) + $dy;
|
||||
$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 '));
|
||||
$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))
|
||||
{
|
||||
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']))
|
||||
{
|
||||
if (isset($effe['id'])) {
|
||||
$tdata = str_replace("add_hpAll=", "", $effe['data']);
|
||||
$tdata = $tdata + 5;
|
||||
if ($tdata>500){$tdata=500;}
|
||||
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))
|
||||
{
|
||||
if (isset($effeadd)) {
|
||||
echo "Вы получили <b><font color=red>Благословение Ёлки x" . round($tdata / 5) . "</font></b> ";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$effeadd=mysql_query('INSERT INTO `eff_users`
|
||||
} 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")');
|
||||
(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))
|
||||
{
|
||||
if (isset($effeadd)) {
|
||||
echo "Вы получили <b><font color=red>Благословение Ёлки x1</font></b> ";
|
||||
}
|
||||
}
|
||||
|
||||
echo "Использовал: <b><font color=red>" . $_GET['shar_name'] . "</font><b>";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
echo "<b><font color=red>Ошибка</font></b>";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d') <= 8)))
|
||||
{
|
||||
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']))
|
||||
{
|
||||
if (!isset($smt['id'])) {
|
||||
$pid = \User\ItemsModel::addItem($pidid, $u->info['id']);
|
||||
if($pid>0)
|
||||
{
|
||||
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>';
|
||||
@ -86,44 +78,39 @@ if($u->room['file']=='elka')
|
||||
} 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)
|
||||
{
|
||||
} 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']))
|
||||
{
|
||||
} 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']))
|
||||
{
|
||||
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']!='')
|
||||
{
|
||||
} elseif (isset($_POST['message'])) {
|
||||
$_POST['message'] = htmlspecialchars($_POST['message'], null);
|
||||
if ($_POST['message'] != '') {
|
||||
$dy = 1;
|
||||
if((date('n',time())==1 && date('j',time())<=15))
|
||||
{
|
||||
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']))
|
||||
{
|
||||
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']."'); ");
|
||||
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', '');
|
||||
}
|
||||
}
|
||||
@ -132,23 +119,32 @@ if($u->room['file']=='elka')
|
||||
?>
|
||||
<style type="text/css">
|
||||
|
||||
.pH3 { COLOR: #8f0000; FONT-FAMILY: Arial; FONT-SIZE: 12pt; FONT-WEIGHT: bold; }
|
||||
.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;
|
||||
@ -156,11 +152,13 @@ if($u->room['file']=='elka')
|
||||
background-color: #659BA3;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.class_old {
|
||||
font-weight: bold;
|
||||
color: #919191;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.class__old {
|
||||
font-weight: bold;
|
||||
color: #FFFFFF;
|
||||
@ -170,18 +168,22 @@ if($u->room['file']=='elka')
|
||||
}
|
||||
|
||||
</style>
|
||||
<div align="right"><?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?></div>
|
||||
<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>
|
||||
<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)
|
||||
{
|
||||
if ((date('n', time()) == 12 || date('n', time()) <= 2) && $sg == 1) {
|
||||
?>
|
||||
<div style="padding-left:10px;">
|
||||
<span class="pH3"><small>Подарки:</small></span>
|
||||
@ -189,12 +191,20 @@ if($u->room['file']=='elka')
|
||||
<?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>
|
||||
<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>
|
||||
<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>
|
||||
@ -210,24 +220,27 @@ if($u->room['file']=='elka')
|
||||
<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']))
|
||||
{
|
||||
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 "У Вас нет шаров для украшения Ёлки!";}
|
||||
<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']))
|
||||
{
|
||||
if (isset($_GET['page'])) {
|
||||
$fpage = round($_GET['page']);
|
||||
if($fpage<=0)
|
||||
{
|
||||
if ($fpage <= 0) {
|
||||
$fpage = 1;
|
||||
}
|
||||
} else {
|
||||
@ -239,28 +252,21 @@ if(isset($_GET['page']))
|
||||
$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)
|
||||
{
|
||||
if ($i > 0) {
|
||||
if ($d < 13) {
|
||||
$j = 0;
|
||||
$pagesN = '';
|
||||
while($i>=0)
|
||||
{
|
||||
while ($i >= 0) {
|
||||
$i -= 21;
|
||||
if($i!=0)
|
||||
{
|
||||
if ($i != 0) {
|
||||
$j++;
|
||||
$r2 = '';
|
||||
if($j<=$d)
|
||||
{
|
||||
if(isset($r))
|
||||
{
|
||||
if ($j <= $d) {
|
||||
if (isset($r)) {
|
||||
$r2 = '&r=' . $r;
|
||||
}
|
||||
$jt = $j;
|
||||
if($fpage==$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> ';
|
||||
@ -272,15 +278,11 @@ if(isset($_GET['page']))
|
||||
$j = $fpage - 6;
|
||||
$i = 0;
|
||||
$pagesN = '';
|
||||
while($k<13)
|
||||
{
|
||||
if($j>0)
|
||||
{
|
||||
if($j<=$d)
|
||||
{
|
||||
while ($k < 13) {
|
||||
if ($j > 0) {
|
||||
if ($j <= $d) {
|
||||
$jt = $j;
|
||||
if($fpage==$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> ';
|
||||
@ -291,22 +293,18 @@ if(isset($_GET['page']))
|
||||
}
|
||||
$prpage = $fpage - 12;
|
||||
$nxpage = $fpage + 12;
|
||||
if($prpage<=0)
|
||||
{
|
||||
if ($prpage <= 0) {
|
||||
$prpage = 1;
|
||||
}
|
||||
if($nxpage>$d)
|
||||
{
|
||||
if ($nxpage > $d) {
|
||||
$nxpage = $d;
|
||||
}
|
||||
$_GET['d'] = (int)$_GET['d'];
|
||||
if($fpage-7>0)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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>';
|
||||
}
|
||||
}
|
||||
@ -317,55 +315,53 @@ if(isset($_GET['page']))
|
||||
<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.'');
|
||||
$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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
$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)
|
||||
{
|
||||
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))
|
||||
{
|
||||
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')
|
||||
{
|
||||
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 = '';
|
||||
@ -378,39 +374,56 @@ if(isset($_GET['page']))
|
||||
<FORM method="post" action="main.php">
|
||||
Оставить сообщение: <INPUT type=text name=message maxlength=150 size=50> <INPUT type=submit name=addmessage value='Добавить'>
|
||||
</FORM>
|
||||
<td width="280" valign="top"><table cellspacing="0" cellpadding="0">
|
||||
<td width="280" valign="top">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="100%"> </td>
|
||||
<td><table border="0" cellpadding="0" cellspacing="0">
|
||||
<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">
|
||||
<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&rnd=<?= $code; ?>';" title="<?php thisInfRm('1.180.0.9',1); ?>">Центральная Площадь</a></td>
|
||||
<td bgcolor="#D3D3D3" nowrap="nowrap">
|
||||
<a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.9&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">
|
||||
</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&rnd=<?= $code; ?>';" title="<?php thisInfRm('1.180.0.209',1); ?>">Ледяная пещера</a></div></td>
|
||||
<td bgcolor="#D3D3D3" nowrap="nowrap">
|
||||
<div align="left">
|
||||
<a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.209&rnd=<?= $code; ?>';" title="<?php thisInfRm(
|
||||
'1.180.0.209', 1
|
||||
); ?>">Ледяная пещера</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br/>
|
||||
<center></center></td>
|
||||
<center></center>
|
||||
</td>
|
||||
</table>
|
||||
<div id="textgo" style="visibility:hidden;"></div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
|
@ -22,7 +22,7 @@ if($u->room['file']=='novich')
|
||||
$ids = '';
|
||||
|
||||
$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 ) ) {
|
||||
$map_locs[] = array($plm2['x'],$plm2['y']);
|
||||
}
|
||||
@ -41,7 +41,7 @@ if($u->room['file']=='novich')
|
||||
//Добавляем ботов и обьекты в пещеру $zid с for_dn = $dungeon['id']
|
||||
//Добавляем ботов
|
||||
$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 ) ) {
|
||||
if( $pl['id_bot'] == 0 && $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.'');
|
||||
//Добавляем обьекты
|
||||
$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))
|
||||
{
|
||||
$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'].'"),';
|
||||
|
@ -417,7 +417,7 @@ if ($u->info['admin'] > 0) {
|
||||
</tr>
|
||||
</table>
|
||||
<?= $err ?>
|
||||
<? switch ($level){
|
||||
<?php switch ($level){
|
||||
case 1:#-----Вход
|
||||
?>
|
||||
<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>
|
||||
|
||||
<HR>
|
||||
<?
|
||||
<?php
|
||||
break;
|
||||
case 2:#-----Арендованная койка
|
||||
?>
|
||||
@ -479,7 +479,7 @@ if ($u->info['admin'] > 0) {
|
||||
|
||||
• Размер сундука: <?= $maxbox; ?> вещей<BR>
|
||||
• Сувениры: <?= $max_p_box; ?> шт.<BR>
|
||||
<? if ($objaga['type'] == "advanced2") {
|
||||
<?php if ($objaga['type'] == "advanced2") {
|
||||
echo ' • Мест для животных: 2 <BR>';
|
||||
} ?>
|
||||
 • Койка<BR>
|
||||
@ -498,7 +498,7 @@ if ($u->info['admin'] > 0) {
|
||||
Смена аренды, оплаченной зубами на кредитную аренду запрещена.<BR>
|
||||
Количество вещей, сувениров и животных на вашем складе не должно превышать допустимое значение для выбранного арендуемого помещения.<BR>
|
||||
</SMALL>
|
||||
<?
|
||||
<?php
|
||||
break;
|
||||
case 3:#-----Комната
|
||||
switch ($room){
|
||||
@ -509,7 +509,7 @@ if ($u->info['admin'] > 0) {
|
||||
<TEXTAREA rows=15 style='width: 90%;' name='notes'><?= $objaga['notes']; ?></TEXTAREA><BR>
|
||||
<INPUT type='hidden' name='room' value='1'>
|
||||
<INPUT type='submit' name='savenotes' value='Сохранить текст'>
|
||||
<?
|
||||
<?php
|
||||
break;
|
||||
case 2:#-----Сундук
|
||||
|
||||
@ -693,7 +693,7 @@ if ($u->info['admin'] > 0) {
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<? break;
|
||||
<?php break;
|
||||
case 7:#-----Персонажи
|
||||
?>
|
||||
|
||||
@ -832,7 +832,7 @@ if ($u->info['admin'] > 0) {
|
||||
echo $r;
|
||||
?>
|
||||
|
||||
<?
|
||||
<?php
|
||||
break;
|
||||
case 3:#-----Животные
|
||||
?>
|
||||
@ -851,7 +851,7 @@ if ($u->info['admin'] > 0) {
|
||||
}
|
||||
?></A>
|
||||
</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>
|
||||
<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 {
|
||||
@ -875,7 +875,7 @@ if ($u->info['admin'] > 0) {
|
||||
</A>
|
||||
</TD>
|
||||
</TR></TABLE>
|
||||
<?
|
||||
<?php
|
||||
break;
|
||||
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>
|
||||
<?= $div1 ?>
|
||||
</SMALL>
|
||||
<?
|
||||
<?php
|
||||
}#--Конец свича $room
|
||||
break;
|
||||
case 4:#-----------------------------------------------смена аренды----------------------------------------
|
||||
@ -915,7 +915,7 @@ if ($u->info['admin'] > 0) {
|
||||
• Койка<BR>
|
||||
|
||||
<A href="?changearenda=base&sd4=<?= $u->info['id']; ?>" onClick="return confirm('Вы уверены, что хотите заплатить 1 кр. за смену помещения?')">Сменить помещение</A>
|
||||
<?
|
||||
<?php
|
||||
}
|
||||
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>
|
||||
<?
|
||||
<?php
|
||||
}
|
||||
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>
|
||||
<?
|
||||
<?php
|
||||
}
|
||||
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; ?>';"
|
||||
title="<?php thisInfRm('1.180.0.218', 1); ?>">Общ. Этаж 2</a></td>
|
||||
</tr>
|
||||
<? } ?>
|
||||
<? if ($u->info['room'] == '218' and $ar_lvl >= 2 and $sleep_mod == 0) { ?>
|
||||
<?php } ?>
|
||||
<?php if ($u->info['room'] == '218' and $ar_lvl >= 2 and $sleep_mod == 0) { ?>
|
||||
<tr>
|
||||
<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; ?>';"
|
||||
|
@ -2,7 +2,9 @@
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
if ($u->room['file'] == 'znahar') {
|
||||
if ($u->room['file'] != 'znahar') {
|
||||
return;
|
||||
}
|
||||
?>
|
||||
<STYLE>
|
||||
.H3 {
|
||||
@ -40,7 +42,7 @@ if ($u->room['file'] == 'znahar') {
|
||||
</TD>
|
||||
<TD width=1 valign=top>
|
||||
<?php
|
||||
if ($c['znahar'] == 1) {
|
||||
if (\Core\Config::get('znahar') == 1) {
|
||||
$raspst = 99999;
|
||||
} else {
|
||||
$raspst = 0;
|
||||
@ -111,28 +113,22 @@ if ($u->room['file'] == 'znahar') {
|
||||
<TD width=270 valign=top>
|
||||
<SCRIPT>
|
||||
//////////////Название,параметр,всего, +сколько, до скольки сбросить(макс возможное),сколько сбрасывать/прибавлять
|
||||
var pr = new Array(
|
||||
const pr = [
|
||||
'Сила', 's1', <?= $st['s1'];?>, <?= $u->stats['s1'] - $st['s1'];?>, 3, 0,
|
||||
'Ловкость', 's2', <?= $st['s2'];?>, <?= $u->stats['s2'] - $st['s2'];?>, 3, 0,
|
||||
'Интуиция', 's3', <?= $st['s3'];?>, <?= $u->stats['s3'] - $st['s3'];?>, 3, 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
|
||||
<?}if ($u->info['level'] > 6) {?>
|
||||
<?php } if ($u->info['level'] > 6) {?>
|
||||
, 'Мудрость', 's6', <?=$st['s6'];?>, 0, 0, 0
|
||||
<?}if ($u->info['level'] > 9) {?>
|
||||
<?php } if ($u->info['level'] > 9) {?>
|
||||
, 'Духовность', 's7', <?=$st['s7'];?>, 0, 0, 0
|
||||
<?}if ($u->info['level'] > 12) {?>
|
||||
, 'Воля', '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
|
||||
<?}?>
|
||||
);
|
||||
<?php } ?>
|
||||
];
|
||||
|
||||
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]) {
|
||||
ss += " (" + pr[i + 2];
|
||||
if (pr[i + 3]) {
|
||||
@ -151,9 +147,9 @@ if ($u->room['file'] == 'znahar') {
|
||||
return ss;
|
||||
}
|
||||
|
||||
var freepr = 0;
|
||||
var freemoves = <?=$raspst;?>;
|
||||
var movecost = 5;
|
||||
let freepr = 0;
|
||||
const freemoves = <?=$raspst;?>;
|
||||
const movecost = 5;
|
||||
|
||||
function modpr(i, to) {
|
||||
if (to == 1 && freepr == 0) {
|
||||
@ -166,14 +162,13 @@ if ($u->room['file'] == 'znahar') {
|
||||
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) {
|
||||
let moves = 0;
|
||||
for (let j = 0; j < pr.length; j += 6) {
|
||||
if (pr[j + 5] > 0) {
|
||||
moves += pr[j + 5]
|
||||
}
|
||||
;
|
||||
}
|
||||
movedonebutton.disabled = (freepr || moves == 0 ? true : false);
|
||||
movedonebutton.disabled = (!!(freepr || moves == 0));
|
||||
document.all["prmoves"].innerHTML = moves + ((freemoves < moves) ? " за " + (movecost * (moves - freemoves)) + " кр." : (moves ? " / бесплатно" : ""));
|
||||
}
|
||||
|
||||
@ -181,22 +176,20 @@ if ($u->room['file'] == 'znahar') {
|
||||
if (freepr) {
|
||||
return;
|
||||
}
|
||||
var s = "";
|
||||
for (j = 0; j < pr.length; j += 6) {
|
||||
let s = "";
|
||||
for (let 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;
|
||||
}
|
||||
|
||||
var s = "<TABLE>";
|
||||
for (i = 0; i < pr.length; i += 6) {
|
||||
let s = "<TABLE>";
|
||||
for (let i = 0; i < pr.length; i += 6) {
|
||||
if (pr[i + 2] != -1) {
|
||||
s += "<TR><TD width=200 id=pr" + i + ">" + getprstr(i) + "</TD>";
|
||||
s += '<TD><img src=https://img.combats.com/i/minus.gif border=0 onclick="modpr(' + i + ',-1)" style="cursor: hand"> '
|
||||
@ -217,18 +210,23 @@ if ($u->room['file'] == 'znahar') {
|
||||
</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кр.)" ?>'
|
||||
<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='Сбросить <? echo $c['znahar'] == 1 ? "бесплатно" : "(300кр.)" ?>'
|
||||
<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='Сбросить <? echo $c['znahar'] == 1 ? "бесплатно" : "(500кр.)" ?>'
|
||||
<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>
|
||||
@ -238,10 +236,6 @@ if ($u->room['file'] == 'znahar') {
|
||||
</small>
|
||||
<BR>
|
||||
</TABLE>
|
||||
<div>
|
||||
<? //рейтинг
|
||||
?>
|
||||
</div>
|
||||
<div></div>
|
||||
</BODY>
|
||||
</HTML>
|
||||
<? } ?>
|
@ -19,8 +19,20 @@ if (isset($_GET['showmenu'])) {
|
||||
mysql_query('UPDATE `stats` SET `showmenu`="' . $u->info['showmenu'] . '" WHERE `id`="' . $u->info['id'] . '"');
|
||||
}
|
||||
}
|
||||
|
||||
$rz0 = '';
|
||||
$rz1 = '';
|
||||
$rz2 = '';
|
||||
$rz3 = '';
|
||||
$rz4 = '';
|
||||
$rz5 = '';
|
||||
$expbase = number_format($u->stats['levels']['exp'], 0, ",", " ");
|
||||
$expbase = '(<a href="/exp" target="_blank">' . $expbase . '</a>)';
|
||||
|
||||
$repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
|
||||
|
||||
?>
|
||||
<style type="text/css">
|
||||
<style>
|
||||
.linestl1 {
|
||||
background-color: #ececec;
|
||||
font-size: 11px;
|
||||
@ -31,66 +43,7 @@ if (isset($_GET['showmenu'])) {
|
||||
padding-right: 4px;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function getLine(id, name, a, b, o, id2) {
|
||||
var tss = '<td width="20"><img src="//img.new-combats.tech/i/minus.gif" style="display:block;cursor:pointer;margin-bottom:3px;" title="Скрыть" class="btn-slide" onClick="location=\'main.php?inv=1&otdel=<?= $_GET['otdel']; ?>&showmenu=' + id2 + '&rnd=<?= $code; ?>\';"></td>';
|
||||
if (o == 0) {
|
||||
tss = '<td width="20"><img src="//img.new-combats.tech/i/plus.gif" style="display:block;cursor:pointer;margin-bottom:3px;" title="Показать" class="btn-slide" onClick="location=\'main.php?inv=1&otdel=<?= $_GET['otdel']; ?>&showmenu=' + id2 + '&rnd=<?= $code; ?>\';"></td>';
|
||||
}
|
||||
var sts01 = '<a href="main.php?inv=1&otdel=<?= $_GET['otdel']; ?>&up=' + id + '&rnd=<?= $code; ?>"><img style="display:block;float:right; margin-bottom:3px;" src="//img.new-combats.tech/i/3.gif"></a>';
|
||||
if (id == 0) {
|
||||
sts01 = '<img style="display:block;float:right;margin-bottom:3px;" src="//img.new-combats.tech/i/4.gif">';
|
||||
}
|
||||
var sts02 = '<a href="main.php?inv=1&otdel=<?= $_GET['otdel']; ?>&down=' + id + '&rnd=<?= $code; ?>"><img style="display:block; margin-bottom:3px; float:right;" src="//img.new-combats.tech/i/1.gif"></a>';
|
||||
if (id == 6) {
|
||||
sts02 = '<img style="display:block;float:right;margin-bottom:3px;" src="//img.new-combats.tech/i/2.gif">';
|
||||
}
|
||||
var sts2 = '<td width="40"><div style="float:right;">' + sts01 + '' + sts02 + '</div></td>';
|
||||
document.write('<table class="mroinv" width="100%" border="0" cellspacing="2" cellpadding="0">' +
|
||||
'<tr>' + tss +
|
||||
'<td style="font-size:9px;"><span class="linestl1"> ' + name + '</span></td>' + sts2 + '</tr>' +
|
||||
'</table>');
|
||||
}
|
||||
|
||||
function showDiv(id) {
|
||||
var block = document.getElementById('block_' + id);
|
||||
block.style.display = 'block';
|
||||
}
|
||||
|
||||
function hiddenDiv(id) {
|
||||
var block = document.getElementById('block_' + id);
|
||||
block.style.display = 'none';
|
||||
}
|
||||
|
||||
function save_com_can() {
|
||||
var ddtpsBankDiv = document.getElementById('chpassbank');
|
||||
if (ddtpsBankDiv != undefined) {
|
||||
ddtpsBankDiv.style.display = 'none';
|
||||
ddtpsBankDiv.innerHTML = '';
|
||||
}
|
||||
}
|
||||
|
||||
function save_compl() {
|
||||
var ddtpswBank = '<div><form action="main.php?inv=1&otdel=<?= $_GET['otdel']; ?>&rnd=<?= $code; ?>" method="post">' +
|
||||
'<table style="border:1px solid #B1A996;" width="250" border="0" cellspacing="0" cellpadding="0"><tr><td bgcolor="#B1A996"><div align="center"><strong>Сохранить комплект</strong></div></td></tr><tr><td bgcolor="#DDD5C2" style="padding:5px;"><div align="center"><small>Введите название боевого комплекта:<br />' +
|
||||
'<input style="width:90%;" type="text" name="compname" value="" id="compname" /><label></label></small><br><input style="margin-left:3px;cursor:pointer;" type="submit" name="button" id="button" value=" Сохранить " /><input style="margin-left:3px;cursor:pointer;" onClick="save_com_can();" type="button" value=" Отмена " /></div></td></tr></table></form></div>';
|
||||
var ddtpsBankDiv = document.getElementById('chpassbank');
|
||||
if (ddtpsBankDiv != undefined) {
|
||||
ddtpsBankDiv.style.display = '';
|
||||
ddtpsBankDiv.innerHTML = ddtpswBank;
|
||||
}
|
||||
}
|
||||
|
||||
function za_block(id) {
|
||||
if ($('#za_block_' + id).css('display') == 'none') {
|
||||
$('#za_block_' + id).css('display', '');
|
||||
} else {
|
||||
$('#za_block_' + id).css('display', 'none');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.mroinv {
|
||||
/*background-color:#e2e2e2;border-top:1px solid #eeeeee;border-left:1px solid #eeeeee;border-right:1px solid #a0a0a0;border-bottom:1px solid #a0a0a0;*/
|
||||
background: url(//img.new-combats.tech/i/back.gif) 0 2px;
|
||||
@ -116,57 +69,90 @@ if (isset($_GET['showmenu'])) {
|
||||
background-color: #BEBEBE;
|
||||
}
|
||||
</style>
|
||||
<div id="chpassbank" style="display:none; position:absolute; top:50px; left:250px;"></div>
|
||||
<?php
|
||||
<script>
|
||||
function getLine(id, name, a, b, o, id2) {
|
||||
var tss = '<td width="20">' +
|
||||
'<img src="//img.new-combats.tech/i/minus.gif" style="display:block;cursor:pointer;margin-bottom:3px;" title="Скрыть" class="btn-slide" onClick="location=\'main.php?inv=1&otdel=<?= $_GET['otdel']; ?>&showmenu=' + id2 + '&rnd=<?= $code; ?>\';"></td>';
|
||||
if (o === 0 || o === '0') {
|
||||
tss = '<td width="20"><img src="//img.new-combats.tech/i/plus.gif" style="display:block;cursor:pointer;margin-bottom:3px;" title="Показать" class="btn-slide" onClick="location=\'main.php?inv=1&otdel=<?= $_GET['otdel']; ?>&showmenu=' + id2 + '&rnd=<?= $code; ?>\';"></td>';
|
||||
}
|
||||
var sts01 = '<a href="main.php?inv=1&otdel=<?= $_GET['otdel']; ?>&up=' + id + '&rnd=<?= $code; ?>"><img style="display:block;float:right; margin-bottom:3px;" src="//img.new-combats.tech/i/3.gif"></a>';
|
||||
if (id === 0 || id === '0') {
|
||||
sts01 = '<img style="display:block;float:right;margin-bottom:3px;" src="//img.new-combats.tech/i/4.gif">';
|
||||
}
|
||||
var sts02 = '<a href="main.php?inv=1&otdel=<?= $_GET['otdel']; ?>&down=' + id + '&rnd=<?= $code; ?>"><img style="display:block; margin-bottom:3px; float:right;" src="//img.new-combats.tech/i/1.gif"></a>';
|
||||
if (id === 6 || id === '6') {
|
||||
sts02 = '<img style="display:block;float:right;margin-bottom:3px;" src="//img.new-combats.tech/i/2.gif">';
|
||||
}
|
||||
var sts2 = '<td width="40"><div style="float:right;">' + sts01 + '' + sts02 + '</div></td>';
|
||||
document.write('<table class="mroinv" width="100%" border="0" cellspacing="2" cellpadding="0">' +
|
||||
'<tr>' + tss +
|
||||
'<td style="font-size:9px;"><span class="linestl1"> ' + name + '</span></td>' + sts2 + '</tr>' +
|
||||
'</table>');
|
||||
}
|
||||
|
||||
$rz0 = '';
|
||||
$rz1 = '';
|
||||
$rz2 = '';
|
||||
$rz3 = '';
|
||||
$rz4 = '';
|
||||
$rz5 = '';
|
||||
$expbase = number_format($u->stats['levels']['exp'], 0, ",", " ");
|
||||
if ($expbase - 1 == $u->info['exp'] && $c['nolevel']) {
|
||||
//Проверяем блок опыта
|
||||
$tlus = mysql_fetch_array(
|
||||
mysql_query('SELECT COUNT(*) FROM `users` WHERE `real` = 1 AND `level` = "' . $u->info['level'] . '" LIMIT 1')
|
||||
);
|
||||
if ($tlus[0] < $u->info['level'] * 10) {
|
||||
$expbase = '<strike>' . $expbase . '</strike>';
|
||||
function showDiv(id) {
|
||||
const block = document.getElementById('block_' + id);
|
||||
block.style.display = 'block';
|
||||
}
|
||||
$expbase = '(<a href="/exp" target="_blank">' . $expbase . '</a>)';
|
||||
if (((1 + $u->info['level'] * 10) - $tlus[0]) > 0) {
|
||||
$expbase .= ' <u><a onMouseOver="top.hi(this,\'<b>Персонажи ' . $u->info['level'] . ' уровня не получают опыт.</b><br>Для разблокировки не хватает <u>' . ((1 + $u->info['level'] * 10) - $tlus[0]) . ' персонажей</u> данного уровня.\',event,0,1,1,1,\'\');" onMouseOut="top.hic();" onMouseDown="top.hic();" style="cursor:help">[?]</a></u>';
|
||||
|
||||
function hiddenDiv(id) {
|
||||
const block = document.getElementById('block_' + id);
|
||||
block.style.display = 'none';
|
||||
}
|
||||
|
||||
function save_com_can() {
|
||||
const ddtpsBankDiv = document.getElementById('chpassbank');
|
||||
if (ddtpsBankDiv) {
|
||||
ddtpsBankDiv.style.display = 'none';
|
||||
ddtpsBankDiv.innerHTML = '';
|
||||
}
|
||||
}
|
||||
|
||||
function save_compl() {
|
||||
const ddtpswBank = '<div><form action="main.php?inv=1&otdel=<?= $_GET['otdel']; ?>&rnd=<?= $code; ?>" method="post">' +
|
||||
'<table style="border:1px solid #B1A996;" width="250" border="0" cellspacing="0" cellpadding="0"><tr><td bgcolor="#B1A996"><div align="center"><strong>Сохранить комплект</strong></div></td></tr><tr><td bgcolor="#DDD5C2" style="padding:5px;"><div align="center"><small>Введите название боевого комплекта:<br />' +
|
||||
'<input style="width:90%;" type="text" name="compname" value="" id="compname" /><label></label></small><br><input style="margin-left:3px;cursor:pointer;" type="submit" name="button" id="button" value=" Сохранить " /><input style="margin-left:3px;cursor:pointer;" onClick="save_com_can();" type="button" value=" Отмена " /></div></td></tr></table></form></div>';
|
||||
const ddtpsBankDiv = document.getElementById('chpassbank');
|
||||
if (ddtpsBankDiv) {
|
||||
ddtpsBankDiv.style.display = '';
|
||||
ddtpsBankDiv.innerHTML = ddtpswBank;
|
||||
}
|
||||
}
|
||||
|
||||
function za_block(id) {
|
||||
if ($('#za_block_' + id).css('display') === 'none') {
|
||||
$('#za_block_' + id).css('display', '');
|
||||
} else {
|
||||
$expbase = '(<a href="/exp" target="_blank">' . $expbase . '</a>)';
|
||||
$('#za_block_' + id).css('display', 'none');
|
||||
}
|
||||
if ($u->info['exp'] == 12499 && $c['infinity5level']) {
|
||||
$trks5 = '<div align="center"><hr><font color=red>Для получения следующего уровня вам необходим <a target="_blank" href="/item/1204">Кристалл Вечности</a></font><hr></div>';
|
||||
}
|
||||
$repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
|
||||
</script>
|
||||
|
||||
echo '
|
||||
<div id="chpassbank" style="display:none; position:absolute; top:50px; left:250px;"></div>
|
||||
<table width="100%" border="0" cellspacing="3" cellpadding="0">
|
||||
<tr><td> </td></tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="15">
|
||||
<small style="font-size:12px;">
|
||||
<div style="padding:5px 5px 0px 5px;">
|
||||
Опыт: <span style="float0:right"><a href="/exp" target="_blank">' . number_format(
|
||||
$u->info['exp'], 0, ",", " "
|
||||
) . '</a></span><br>' . $trks5 . '
|
||||
';
|
||||
<div style="padding:5px 5px 0 5px;">
|
||||
Опыт:
|
||||
<span style="float:right">
|
||||
<a href="/exp" target="_blank">
|
||||
<?= number_format($u->info['exp'], 0, ",", " ") ?>
|
||||
</a>
|
||||
</span><br> <?= $trks5 ?>
|
||||
|
||||
|
||||
<?php
|
||||
if ($u->info['expstopu'] < 3 && $u->info['exp'] == $c['expstop']) {
|
||||
echo '
|
||||
Квест <b>12</b>й: <span style="float0:right">
|
||||
<a href="/quest" target="_blank"><b>' . ($u->info['expstopu'] + 1) . '/3 </b></a> статия';
|
||||
echo '<button style="width:224px;margin-top:5px;" class="btnnew" onclick="location.href=\'/main.php?inv&propusk=1\';">
|
||||
Стоимость пропуска 600 Екр</button> <br>';
|
||||
|
||||
/*
|
||||
takelevelplease
|
||||
*/
|
||||
}
|
||||
echo '
|
||||
Бои: <span style="float0:right"><span title="Побед: ' . number_format(
|
||||
@ -238,7 +224,7 @@ if ($u->info['level'] >= 0 && $u->info['inTurnir'] == 0 && $c['bonuslevel'] && !
|
||||
*/
|
||||
$mxlvl = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT `id`,`level` FROM `users` WHERE `real` = 1 AND `admin` = 0 AND `banned` = 0 ORDER BY `level` DESC LIMIT 1'
|
||||
'select id,level from users where `real` = 1 and admin = 0 and banned = 0 order by level desc limit 1'
|
||||
)
|
||||
);
|
||||
if (isset($mxlvl['id']) && $mxlvl['level'] > $u->info['level'] + 1) {
|
||||
@ -291,22 +277,16 @@ if ($u->info['level'] >= 0 && $u->info['inTurnir'] == 0 && $c['bonuslevel'] && !
|
||||
} elseif ($ml == 6) {
|
||||
mysql_query('UPDATE `stats` SET `exp` = 12500 WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
|
||||
}
|
||||
if ($ml == 6 && !isset($itmsv['id']) && $c['infinity5level'] == true) {
|
||||
$er8 = 'Требуется Кристалл Вечности!';
|
||||
} else {
|
||||
|
||||
if ($ml == 6) {
|
||||
mysql_query(
|
||||
'INSERT INTO `mini_actions` (
|
||||
`uid`,`time`,`val`,`var`
|
||||
) VALUES (
|
||||
"' . $u->info['id'] . '","' . time() . '","mbtnlvl6","0"
|
||||
)'
|
||||
'INSERT INTO `mini_actions` (`uid`,`time`,`val`,`var`) VALUES ("' . $u->info['id'] . '","' . time() . '","mbtnlvl6","0")'
|
||||
);
|
||||
}
|
||||
$er8 = 'Вы успешно получили ' . $ml . ' уровень!';
|
||||
$u->info['level']++;
|
||||
$ml++;
|
||||
}
|
||||
|
||||
}
|
||||
} elseif ($ml <= 7) {
|
||||
$tstlvl = mysql_fetch_array(
|
||||
@ -735,7 +715,8 @@ if ($uShow[5] == 1) {
|
||||
$rz5 .= '<div style="display:none" id="lnk5">';
|
||||
$sp = mysql_query('SELECT * FROM `save_com` WHERE `uid` = "' . $u->info['id'] . '" AND `delete` = "0" LIMIT 10');
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
$rz5 .= '<a href="?inv=1&delc1=' . $pl['id'] . '&otdel=' . ((int)$_GET['otdel']) . '&rnd=' . $code . '"><img src="'.\Core\Config::img().'/i/close2.gif" title="Удалить комплект" width="9" height="9"></a> <small><a href="?inv=1&usec1=' . $pl['id'] . '&otdel=' . ((int)$_GET['otdel']) . '&rnd=' . $code . '">Надеть "' . $pl['name'] . '"</a></small><br>';
|
||||
$rz5 .= '<a href="?inv=1&delc1=' . $pl['id'] . '&otdel=' . ((int)$_GET['otdel']) . '&rnd=' . $code . '"><img src="' . \Core\Config::img(
|
||||
) . '/i/close2.gif" title="Удалить комплект" width="9" height="9"></a> <small><a href="?inv=1&usec1=' . $pl['id'] . '&otdel=' . ((int)$_GET['otdel']) . '&rnd=' . $code . '">Надеть "' . $pl['name'] . '"</a></small><br>';
|
||||
}
|
||||
$rz5 .= '</div>';
|
||||
}
|
||||
@ -748,7 +729,8 @@ if ($uShow[6] == 1) {
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
$rz6 .= '<a onclick="if(confirm(\'Удалить набор ?\')){location=\'main.php?inv=1&otdel=' . round(
|
||||
(int)$_GET['otdel']
|
||||
) . '&delcop=' . $pl['id'] . '\'}" href="javascript:void(0)"><img src="' . \Core\Config::img() . '/i/close2.gif" width="9" height="9"></a> <a href="main.php?inv=1&otdel=' . round(
|
||||
) . '&delcop=' . $pl['id'] . '\'}" href="javascript:void(0)"><img src="' . \Core\Config::img(
|
||||
) . '/i/close2.gif" width="9" height="9"></a> <a href="main.php?inv=1&otdel=' . round(
|
||||
(int)$_GET['otdel']
|
||||
) . '&usecopr=' . $pl['id'] . '">Использовать "' . $pl['name'] . '"</a><br>';
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
use Core\Db;
|
||||
use Model\ActionModel;
|
||||
use User\ItemsModel;
|
||||
use User\StatsModel;
|
||||
|
||||
@ -10,58 +11,34 @@ if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
$am = new ActionModel($u->info['id']);
|
||||
|
||||
$txt ??= '';
|
||||
if (isset($_GET['getq'])) {
|
||||
$test = mysql_fetch_array(
|
||||
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>';
|
||||
}
|
||||
$zadID = !$am->getDailyQuest() ? mt_rand(1, 7) : 0;
|
||||
|
||||
$txt .= match ($zadID) {
|
||||
1 => 'Говорят в городе завелись всякие Трупожоры. Пойди да убей двоих, порадуй бабушку.',
|
||||
2 => 'Покажи на что способен! Поучаствуй в 10 хаотических поединках!',
|
||||
3 => 'Необходимо исследовать для бабушки два любых подземелия, ей очень интересно что там внутри! Только гляди милок, пропуски не используй!',
|
||||
4 => 'Сразись в хаотических поединках и получи 100 000 опыта!',
|
||||
5 => 'Открой сундук Трупожора, порадуй бабушку!',
|
||||
6 => 'Посети Излом Хаоса!',
|
||||
7 => 'Выполни 3 любых задания в подземелиях! Бабушка будет очень довольна!',
|
||||
8 => 'Сходи-ка милок в Башню Смерти! Да попробуй там свои силенки.',
|
||||
default => 'Эх шустрый малец, получал задание уже сегодня! Завтра приходи, накормлю чем нибудь вкусным ну и задание дам!'
|
||||
};
|
||||
$txt = "<b>$txt</b>";
|
||||
if ($zadID > 0) {
|
||||
mysql_query(
|
||||
'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'] . ')'
|
||||
);
|
||||
ActionModel::new($u->info, $zadID, 'day_quest');
|
||||
sendSysChat($txt);
|
||||
}
|
||||
}
|
||||
|
||||
function sendSysChat($message)
|
||||
function sendSysChat($message): void
|
||||
{
|
||||
global $u;
|
||||
$cmsg = new ChatMessage();
|
||||
$cmsg->setCity($u->info['city']);
|
||||
$cmsg->setRoom($u->info['room']);
|
||||
$cmsg->setTo($u->info['login']);
|
||||
$cmsg->setType(6);
|
||||
@ -69,132 +46,76 @@ function sendSysChat($message)
|
||||
(new Chat())->sendMsg($cmsg);
|
||||
}
|
||||
|
||||
function giveDailyQuestPrize()
|
||||
function giveDailyQuestPrize(): void
|
||||
{
|
||||
global $u;
|
||||
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']]);
|
||||
if ($u->info['level'] < 12) {
|
||||
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
|
||||
}
|
||||
|
||||
if (isset($_GET['putq'])) {
|
||||
$test = mysql_fetch_array(
|
||||
mysql_query('SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'day_quest\'')
|
||||
);
|
||||
if (!isset($test['id'])) {
|
||||
$txt .= '<b style="color: red">У тебя нет задания милок, не юли! Хоть бабушка плохо видит но бабушка хорошо помнит.</b>';
|
||||
$test = $am->getDailyQuest();
|
||||
if (!$test) {
|
||||
$txt .= 'У тебя нет задания милок, не юли! Хоть бабушка плохо видит но бабушка хорошо помнит.';
|
||||
} else {
|
||||
$zadID = $test['vals'];
|
||||
|
||||
$finishedTasks = $am->getFinishedDailyQuestTasks($test['time']);
|
||||
|
||||
if ($zadID == 1) {
|
||||
$check = mysql_query(
|
||||
'SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'end_trup\' AND `time` > ' . $test['time']
|
||||
);
|
||||
$i = 0;
|
||||
while ($pl = mysql_fetch_array($check)) {
|
||||
$i++;
|
||||
}
|
||||
if ($i > 1) {
|
||||
$txt .= '<b>Порадовал бабушку! Убил ипостата! Может на печи полежим? - Нет, ну держи жетончик!</b>';
|
||||
if ($finishedTasks['end_trup'] > 1) {
|
||||
$txt .= 'Порадовал бабушку! Убил ипостата! Может на печи полежим? - Нет, ну держи жетончик!';
|
||||
giveDailyQuestPrize();
|
||||
} else {
|
||||
$txt .= '<b>Победи в боях с Трупожором ' . $i . '/2</b>';
|
||||
$txt .= 'Победи в боях с Трупожором ' . $finishedTasks['end_trup'] . '/2.';
|
||||
}
|
||||
|
||||
} elseif ($zadID == 2) {
|
||||
$check = mysql_query(
|
||||
'SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'end_xaot\' AND `time` > ' . $test['time']
|
||||
);
|
||||
$i = 0;
|
||||
while ($pl = mysql_fetch_array($check)) {
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($i > 9) {
|
||||
$txt .= '<b>Порадовал бабушку! Поучаствовал в боях! А точно покушать не хочешь? - Нет, ну держи жетончик!</b>';
|
||||
if ($finishedTasks['end_xaot'] > 9) {
|
||||
$txt .= 'Порадовал бабушку! Поучаствовал в боях! А точно покушать не хочешь? - Нет, ну держи жетончик!';
|
||||
giveDailyQuestPrize();
|
||||
} else {
|
||||
$txt .= '<b>Участия в хаотах ' . $i . '/10</b>';
|
||||
$txt .= 'Участия в хаотах ' . $finishedTasks['end_xaot'] . '/10.';
|
||||
}
|
||||
} elseif ($zadID == 3) {
|
||||
$check = mysql_query(
|
||||
'SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'psh0\' AND `time` > ' . $test['time']
|
||||
);
|
||||
$i = 0;
|
||||
while ($pl = mysql_fetch_array($check)) {
|
||||
$i++;
|
||||
}
|
||||
if ($i > 1) {
|
||||
$txt .= '<b>Порадовал бабушку! Хороший запах! А точно покушать не хочешь? - Нет, ну держи жетончик!</b>';
|
||||
if ($finishedTasks['psh0'] > 1) {
|
||||
$txt .= 'Порадовал бабушку! Хороший запах! А точно покушать не хочешь? - Нет, ну держи жетончик!';
|
||||
giveDailyQuestPrize();
|
||||
} else {
|
||||
$txt .= '<b>Посещение Подземелий ' . $i . '/2</b>';
|
||||
$txt .= 'Посещение Подземелий ' . $finishedTasks['psh0'] . '/2.';
|
||||
}
|
||||
|
||||
} elseif ($zadID == 4) {
|
||||
|
||||
if (($u->info['exp'] - $test['val']) > 100000) {
|
||||
$txt .= '<b>Порадовал бабушку! Подрос,Подрос! держи жетончик!</b>';
|
||||
$txt .= 'Порадовал бабушку! Подрос, подрос! держи жетончик!';
|
||||
giveDailyQuestPrize();
|
||||
} else {
|
||||
$txt .= '<b>Получение ' . ($u->info['exp'] - $test['val']) . '/100 000 опыта</b>';
|
||||
$txt .= 'Получение ' . ($u->info['exp'] - $test['val']) . '/100 000 опыта.';
|
||||
}
|
||||
|
||||
} elseif ($zadID == 5) {
|
||||
$check = mysql_query(
|
||||
'SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'trup_sun\' AND `time` > ' . $test['time']
|
||||
);
|
||||
$i = 0;
|
||||
while ($pl = mysql_fetch_array($check)) {
|
||||
$i++;
|
||||
}
|
||||
if ($i > 0) {
|
||||
$txt .= '<b>Порадовал бабушку! Сундучек удачу принес? Нет? Ну держи жетончик!</b>';
|
||||
if ($finishedTasks['trup_sun'] > 0) {
|
||||
$txt .= 'Порадовал бабушку! Сундучек удачу принес? Нет? Ну держи жетончик!';
|
||||
giveDailyQuestPrize();
|
||||
} else {
|
||||
$txt .= '<b>Открытие сундуков Трупожора 0/1</b>';
|
||||
$txt .= 'Открытие сундуков Трупожора 0/1';
|
||||
}
|
||||
|
||||
} elseif ($zadID == 6) {
|
||||
$check = mysql_query(
|
||||
'SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vars`= \'izlom\' AND `time` > ' . $test['time']
|
||||
);
|
||||
$i = 0;
|
||||
while ($pl = mysql_fetch_array($check)) {
|
||||
$i++;
|
||||
}
|
||||
if ($i > 0) {
|
||||
$txt .= '<b>Порадовал бабушку! Так пахнет гарью и смертью Ммммм ... За это тебе жетончик!</b>';
|
||||
if ($finishedTasks['izlom'] > 0) {
|
||||
$txt .= 'Порадовал бабушку! Так пахнет гарью и смертью Ммммм ... За это тебе жетончик!';
|
||||
giveDailyQuestPrize();
|
||||
} else {
|
||||
$txt .= '<b>Посещение Излома Хаоса 0/1</b>';
|
||||
$txt .= 'Посещение Излома Хаоса 0/1';
|
||||
}
|
||||
} elseif ($zadID == 7) {
|
||||
if ($finishedTasks['win'] > 2) {
|
||||
$txt .= 'Порадовал бабушку! Стало в мире светлее, но бабка как была слепая так и осталась... <br> Чуть не забыла жетончик!';
|
||||
giveDailyQuestPrize();
|
||||
} else {
|
||||
$txt .= 'Выполни 3 задания в подземелиях. ' . $finishedTasks['win'] . '/3.';
|
||||
}
|
||||
}
|
||||
|
||||
} elseif ($zadID == 7) {
|
||||
$check = mysql_query(
|
||||
'SELECT * FROM `actions` WHERE `uid` = ' . $u->info['id'] . ' AND `vals`= \'win\' AND `time` > ' . $test['time']
|
||||
);
|
||||
$i = 0;
|
||||
while ($pl = mysql_fetch_array($check)) {
|
||||
$i++;
|
||||
}
|
||||
if ($i > 2) {
|
||||
$txt .= '<b>Порадовал бабушку! Стало в мире светлее, но бабка как была слепая так и осталась... <br> Чуть не забыла жетончик!</b>';
|
||||
giveDailyQuestPrize();
|
||||
} else {
|
||||
$txt .= '<b>Выполни 3 задания в подземелиях. ' . $i . '/3 </b>';
|
||||
}
|
||||
} 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'];
|
||||
Духовность: <b><?= $u->stats['s7']; ?></b><br>
|
||||
<?php endif; ?>
|
||||
<?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; ?>
|
||||
|
||||
<br>
|
||||
@ -225,7 +146,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
|
||||
Деньги: <b><?= $u->info['money'] ?> кр.</b> </br>
|
||||
Деньги: <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">Бонус покупателя: <?= $u->stats['pbe'] ?> уровень</a>
|
||||
<?php if (date('d.m.Y') != date('d.m.Y', $nowby)): ?>
|
||||
<span style="color: red"><br>(Совершите покупку ЕКР чтобы сохранить и увеличить бонус покупателя)</span>
|
||||
|
@ -110,7 +110,7 @@ $vi = [
|
||||
<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>
|
||||
</tr>
|
||||
<? } ?>
|
||||
<?php } ?>
|
||||
<?php if ($account == 'silvers'){ ?>
|
||||
<table width="100%" border="0" cellpadding="5" cellspacing="0" bgcolor="#E1E1E1">
|
||||
<td style="border-bottom:1px solid #CCCCCC;">• Восстановление жизни и манны +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 style="border-bottom:1px solid #CCCCCC;"><font color=darkgreen><b>1 Выносливость = 2 ХП</b></font></td>
|
||||
</tr>
|
||||
<? } ?>
|
||||
<?php } ?>
|
||||
<?php if ($account == 'gold'){ ?>
|
||||
<table width="100%" border="0" cellpadding="5" cellspacing="0" bgcolor="#E1E1E1">
|
||||
<td style="border-bottom:1px solid #CCCCCC;">• Восстановление жизни и манны +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 style="border-bottom:1px solid #CCCCCC;"><font color=darkgreen><b>Увеличивает защиту от урона и магии на 50 едениц.</b></font></td>
|
||||
</tr>
|
||||
<? } ?>
|
||||
<?php } ?>
|
||||
</table>
|
||||
<fieldset><p><b>Доступные предметы:</b><br/><small>(Чтобы забрать предмет просто кликните на его изображение)</small></p>
|
||||
<p>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!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>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ - пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ</title>
|
||||
|
12
robots.txt
12
robots.txt
@ -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
|
Loading…
Reference in New Issue
Block a user