Compare commits
4 Commits
dev
...
dev-battle
Author | SHA1 | Date | |
---|---|---|---|
a2c658166d | |||
07f905ef64 | |||
253eafca3b | |||
e5b3c47228 |
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
|
39
_incl_data/class/Actions.php
Normal file
39
_incl_data/class/Actions.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
use Core\Db;
|
||||
|
||||
class Actions
|
||||
{
|
||||
public static function addDungeon(
|
||||
int $dungeonid,
|
||||
int $userid,
|
||||
int $x,
|
||||
int $y,
|
||||
string $vars = '',
|
||||
string $vals = '',
|
||||
): void {
|
||||
Db::sql(
|
||||
'insert into dungeon_actions (dn, x, y, time, uid, vars, vals) values (?,?,?,unix_timestamp(),?,?,?)',
|
||||
[
|
||||
$dungeonid,
|
||||
$x,
|
||||
$y,
|
||||
$userid,
|
||||
$vars,
|
||||
$vals,
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
public static function countDungeon(int $dungeonid, int $userid, string $vars = ''): int
|
||||
{
|
||||
return Db::getValue(
|
||||
'select count(id) from dungeon_actions where dn = ? and uid = ? and vars = ?',
|
||||
[
|
||||
$dungeonid,
|
||||
$userid,
|
||||
$vars,
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
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
|
||||
{
|
||||
|
||||
}
|
1907
_incl_data/class/Battle/Finish.php
Normal file
1907
_incl_data/class/Battle/Finish.php
Normal file
File diff suppressed because it is too large
Load Diff
11
_incl_data/class/Battle/Helper.php
Normal file
11
_incl_data/class/Battle/Helper.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace Battle;
|
||||
|
||||
class Helper
|
||||
{
|
||||
public static function getChanse(int $percent): bool
|
||||
{
|
||||
return mt_rand(0, 100) <= $percent;
|
||||
}
|
||||
}
|
676
_incl_data/class/Battle/Log.php
Normal file
676
_incl_data/class/Battle/Log.php
Normal file
@ -0,0 +1,676 @@
|
||||
<?php
|
||||
|
||||
namespace Battle;
|
||||
|
||||
use Battle;
|
||||
use Core\Db;
|
||||
|
||||
class Log
|
||||
{
|
||||
/**
|
||||
* @param array $data [text,battle,id_hod,vars,type]
|
||||
* @return void
|
||||
*/
|
||||
public static function add(array $data): void
|
||||
{
|
||||
if (
|
||||
empty($data['text']) ||
|
||||
empty($data['battle']) ||
|
||||
empty($data['id_hod']) ||
|
||||
!isset($data['vars']) ||
|
||||
!isset($data['type'])
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (empty($data['type'])) {
|
||||
$data['type'] = 0;
|
||||
}
|
||||
|
||||
Db::sql(
|
||||
"insert into battle_logs (time, battle, id_hod, text, vars, type, zona1, zona2, zonb1, zonb2)
|
||||
values (unix_timestamp(),?,?,?,?,?,'','','','')",
|
||||
[
|
||||
$data['battle'],
|
||||
$data['id_hod'],
|
||||
$data['text'],
|
||||
$data['vars'],
|
||||
$data['type'],
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public static function addComment(Battle $battle): void
|
||||
{
|
||||
$comments = [
|
||||
'А танцуешь ты лучше.',
|
||||
'А мы что, в прятки тут играем?',
|
||||
'А вы разве пингвинов никогда не видели?',
|
||||
'А, ведь когда-то, вы были красивыми… А теперь? Ну и рожи! Жуть!',
|
||||
'А потом еще труп пинать будут.',
|
||||
'А я вчера ночью за соседями подглядывал. Они точно так же кувыркались',
|
||||
'А ведь вы живых людей дубасите...',
|
||||
'А вот я вчера в зоопарке был...',
|
||||
'А вы в стройбате не служили?',
|
||||
'А вы видели, чтобы так на улице делали!?',
|
||||
'А вы знали что ёжики размножаются в интернете?',
|
||||
'А жить-то, как хочется:',
|
||||
'А из-за чего вы собственно дерётесь?',
|
||||
'А чего ржёте, вы ещё остальных не видели',
|
||||
'А что произойдёт если ты испугаешся до полусмерти дважды?!',
|
||||
'Больше так не делай. Ты же не садист?',
|
||||
'Без комментариев...',
|
||||
'Больно ведь!',
|
||||
'Быстро ты за монитор спрятался!',
|
||||
'Все хотят попасть в рай, но никто не хочет умирать!',
|
||||
'Вчера с такой девчонкой познакомился.',
|
||||
'Всего 5 минут знакомы, а дерутся, словно супруги с 20-ти летним стажем...',
|
||||
'Все. Я так больше не могу.',
|
||||
'В конце концов, кто-то победит?',
|
||||
'Вы чего, с дерева упали?',
|
||||
'Возятся как сонные мухи... давайте я вам лучше анекдот расскажу: ...',
|
||||
'Вот видишь, как полезно чистить зубы на ночь?',
|
||||
'Вот вы все руками махаете, а за вами уже очередь',
|
||||
'Вот попадёте вы в плен и вас там будут долго бить. Но вы ничего не расскажете... и не потому, что вы такой стойкий, просто вы ничего не знаете',
|
||||
'Вы бы лучше пошли потренировались!',
|
||||
'Вы все еще разминаетесь? Позовите, когда кости в муку друг другу разминать будете.',
|
||||
'Вы же бойцы! Имейте совесть!',
|
||||
'Гаси недоумка!',
|
||||
'Да, если бы я смог это остановить, то получил бы нобелевскую премию `За мир` ',
|
||||
'Да куда они бьют?!',
|
||||
'Давайте быстрее! За вами уже очередь образовалась.',
|
||||
'Давайте обойдемся сегодня таймаутом. А? А то мне уже кошмары скоро будут сниться.',
|
||||
'Дерутся как девчонки!',
|
||||
'Дети, посмотрите налево... Ой!.. Нет, туда лучше не смотреть.',
|
||||
'Если так будет продолжаться, то скоро мы заснем!',
|
||||
'Если бы у меня было кресло-качалка, я бы в нём качался...',
|
||||
'Если вы что-то сказать хотите, то лучше молчите :)',
|
||||
'Жестокость не порок.',
|
||||
'Жизнь вне нашего клуба - это пустая трата кислорода!!!',
|
||||
'Жми! Дави! Кусай! Царапай!',
|
||||
'За такие бои надо в хаос отправлять!',
|
||||
'Знаете откуда в комиссионном магазине столько вещей? Это я после ваших гулянок собираю и сдаю туда. Иногда вместе с частями тела, застрявшими в них.',
|
||||
'Здесь люди так близки друг к другу. Просто иначе ударить нельзя.',
|
||||
'И пролитая кровь еще пульсирует...',
|
||||
'Инвалидов развелось...',
|
||||
'Какой бой!!!',
|
||||
'Кто!? Кто здесь?!',
|
||||
'Кто вас этому научил?',
|
||||
'Кузнечик, блин...',
|
||||
'Куплю импортный проигрыватель грампластинок.',
|
||||
'Лошадью ходи!',
|
||||
'Лучше враг, чем друг - враг.',
|
||||
'Ладно, вы тут пока друг друга за волосы таскайте, а я пойду, пообедаю.',
|
||||
'Мне ваш балет уже надоел!',
|
||||
'Может, начнется-таки настоящий бой???',
|
||||
'Мысли лезут в голову изнутри, а удары снаружи.',
|
||||
'Ну и где ваши коронные удары? Где живописные падения я спрашиваю!',
|
||||
'Ну, нельзя же так наотмашь лупить!',
|
||||
'Надо раньше было думать, теперь смертельно поздно...',
|
||||
'На такое зрелище билеты продавать можно. Народ ухохочется!',
|
||||
'Нет! Не надо драки! А... ладно деритесь, все равно не умеете.',
|
||||
'Нет, ну должен быть повод, должен же быть повод?',
|
||||
'Нет, я отказываюсь это комментировать!',
|
||||
'Не таких обламывали!',
|
||||
'Ну выпили вы рюмку, ну две... ну литр, ну два... так зачем же после этого драку затевать?!',
|
||||
'Ну и кто за этот погром платить будет?',
|
||||
'Ну и оскал у вас. Из вашей улыбки кастеты делать можно.',
|
||||
'Ну, что же ты..? Не печалься. Выше голову, так по ней удобней попасть.',
|
||||
'Ничего... Блок тоже удар.',
|
||||
'Обернись!!!.... Поздно...',
|
||||
'Ого! Научите меня так не делать.',
|
||||
'Осторожно! Сделаешь дырочку, уже не запломбируешь!',
|
||||
'Оно вам надо???',
|
||||
'Обычное дело...там что-то отклеилось.',
|
||||
'Ой, и заболтался я с вами...',
|
||||
'Он же не промахнётся если ты не отойдёшь!',
|
||||
'По-моему, кому-то светит инвалидность.',
|
||||
'Подкинь ему грабли, на которые он еще не наступал.',
|
||||
'Прав был кот Леопольд, давайте жить дружно?',
|
||||
'При ударе в живот нарушается кислотно-щелочной баланс.',
|
||||
'Проверь, не торчит ли у тебя нож из живота.',
|
||||
'Перестаньте мне орать!',
|
||||
'Подкинь ему грабли, на которые он еще не наступал.',
|
||||
'Прыгают тут как блохи... Все, я пошел за дихлофосом!',
|
||||
'Разбудите меня когда эта порнография закончится...',
|
||||
'Ребенок сильнее ударил бы!',
|
||||
'Славно вмазал!',
|
||||
'Славно они веселятся',
|
||||
'Смотрю вот на вас, и слезы наворачиваются.',
|
||||
'Сначала учатся ходить, а потом только в драку лезут.',
|
||||
'Так они друг другу что-нибудь сломают.',
|
||||
'Так ты ему все кости переломаешь!',
|
||||
'У меня в подъезде точно так же соседа отмудохали',
|
||||
'Убогих развелось...',
|
||||
'Ух ты, какой прыткий!',
|
||||
'Фашист!! Надо ж, так по больному месту врезать...',
|
||||
'Хватит бить его об угол моей кабинки! Мне же потом ее чинить.',
|
||||
'Хулиганы, прекратите немедленно!',
|
||||
'Хочешь, подскажу, куда он ударит?',
|
||||
'Хорошо, что у меня ловкости больше чем у вас всех, а то б вы и меня в инвалидную коляску посадили бы.',
|
||||
'Хороший бой!',
|
||||
'Хороший удар!',
|
||||
'Хиляк-разрядник!',
|
||||
'Что ты его за волосы схватил?! Отпусти немедленно!',
|
||||
'Щас я вас настигну, вот тогда мы и похохочем',
|
||||
'Это была какая-то неизвестная мне техника...',
|
||||
'Это же противник, а не глина! Хватит мяться!',
|
||||
'Это не бой, это издевательское избиение.',
|
||||
'Это поубавит спеси',
|
||||
'Это и был твой план `Б` ?',
|
||||
'Это была какая-то неизвестная мне техника...',
|
||||
'Я же предупреждал, - будет больно.',
|
||||
'Я не страдаю безумием. Я наслаждаюсь им каждую минуту :)',
|
||||
'Я красивый, я сильный, я умный, я добрый. А вот вы? Вы себя-то видели?!',
|
||||
'Я тоже умею драться, но не буду...',
|
||||
'(тревожно озираясь) я вам по секрету скажу... за вами наблюдают!',
|
||||
'<вырезано цензурой> после боя я этих <вырезано цензурой> обоих в <вырезано цензурой> и <вырезано цензурой>',
|
||||
'<вырезано цензурой> каратисты фиговы',
|
||||
];
|
||||
$randomcomment = $comments[array_rand($comments)];
|
||||
|
||||
self::add(
|
||||
[
|
||||
'battle' => $battle->info['id'],
|
||||
'id_hod' => $battle->hodID,
|
||||
'text' => "{tm1} <i>Комментатор: $randomcomment</i>",
|
||||
'vars' => 'time1=' . time(),
|
||||
'type' => 1,
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
@ -12,7 +12,6 @@ enum ShopId: int
|
||||
case ANIMALS = 8; // магазин новичка
|
||||
case TAVERN = 9; // наковальня
|
||||
case IZLOM = 10;
|
||||
case BLOOD_ALTAR = 11; //алтарь крови
|
||||
case TEMPLE = 14;
|
||||
case MUSHROOMS = 17; // общий рыцарский
|
||||
case REFERALS = 27;
|
||||
|
@ -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']])) {
|
||||
$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>';
|
||||
|
||||
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>';
|
||||
}
|
||||
}
|
||||
$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
|
||||
|
@ -4,9 +4,9 @@ namespace FightRequest;
|
||||
|
||||
class FRHelper
|
||||
{
|
||||
/** Считает разрешенные уровни игроков в групповых заявках.
|
||||
* @param int $type тип фильтра.
|
||||
* @param int $userLevel уровень игрока подающего заявку.
|
||||
/** Считает разрешенные уровни игроков в групповых заявках.
|
||||
* @param int $type тип фильтра.
|
||||
* @param int $userLevel уровень игрока подающего заявку.
|
||||
* @return object
|
||||
*/
|
||||
public static function getTeammatesLevel(int $type, int $userLevel): object
|
||||
@ -16,25 +16,25 @@ class FRHelper
|
||||
switch ($type) {
|
||||
default:
|
||||
break;
|
||||
case 1: // только моего и ниже
|
||||
case 1: // только моего и ниже
|
||||
$max = $userLevel;
|
||||
break;
|
||||
case 2: // только ниже моего
|
||||
case 2: // только ниже моего
|
||||
$max = $userLevel - 1;
|
||||
break;
|
||||
case 3: // только моего
|
||||
case 3: // только моего
|
||||
$min = $userLevel;
|
||||
$max = $userLevel;
|
||||
break;
|
||||
case 4: // не выше меня на 1 уровень
|
||||
case 4: // не выше меня на 1 уровень
|
||||
$min = $userLevel;
|
||||
$max = $userLevel + 1;
|
||||
break;
|
||||
case 5: // не ниже меня на 1 уровень
|
||||
case 5: // не ниже меня на 1 уровень
|
||||
$min = $userLevel - 1;
|
||||
$max = $userLevel;
|
||||
break;
|
||||
case 6: // мой уровень +- 1
|
||||
case 6: // мой уровень +- 1
|
||||
$min = $userLevel - 1;
|
||||
$max = $userLevel + 1;
|
||||
break;
|
||||
@ -45,9 +45,9 @@ class FRHelper
|
||||
];
|
||||
}
|
||||
|
||||
/** Считает разрешенные уровни игроков в хаотических заявках.
|
||||
* @param int $type тип фильтра.
|
||||
* @param int $userLevel уровень игрока подающего заявку.
|
||||
/** Считает разрешенные уровни игроков в хаотических заявках.
|
||||
* @param int $type тип фильтра.
|
||||
* @param int $userLevel уровень игрока подающего заявку.
|
||||
* @return object
|
||||
*/
|
||||
public static function getChaoticTeammatesLevel(int $type, int $userLevel): object
|
||||
|
@ -4,7 +4,7 @@ namespace Helper;
|
||||
|
||||
class Comparsion
|
||||
{
|
||||
/** Не даёт значению выйти за пределы.
|
||||
/** Не даёт значению выйти за пределы.
|
||||
* @param $value
|
||||
* @param $minimum
|
||||
* @param $maximum
|
||||
|
@ -25,4 +25,10 @@ class ItemModel
|
||||
{
|
||||
return $this->item['img'];
|
||||
}
|
||||
|
||||
public static function getNameById(int $id): string
|
||||
{
|
||||
$name = Db::getValue('select name from items_main where id = ?', [$id]);
|
||||
return $name ?: '';
|
||||
}
|
||||
}
|
@ -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,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ class AdmFactory
|
||||
10,
|
||||
'moderation.addmoderator',
|
||||
$this->targetUser['id'],
|
||||
'Назначен на пост модератора.'
|
||||
'Назначен на пост модератора.'
|
||||
);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ class AdmFactory
|
||||
10,
|
||||
'moderation.removemoderator',
|
||||
$this->targetUser['id'],
|
||||
'Уволен с поста модератора.'
|
||||
'Уволен с поста модератора.'
|
||||
);
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ class AdmFactory
|
||||
10,
|
||||
'moderation.changegender',
|
||||
$this->targetUser['id'],
|
||||
'Изменен пол персонажа.'
|
||||
'Изменен пол персонажа.'
|
||||
);
|
||||
}
|
||||
|
||||
@ -63,7 +63,7 @@ class AdmFactory
|
||||
10,
|
||||
'moderation.changelogin',
|
||||
$this->targetUser['id'],
|
||||
"Изменен логин персонажа. $this->targetLogin => " . strip_tags($login)
|
||||
"Изменен логин персонажа. $this->targetLogin => " . strip_tags($login)
|
||||
);
|
||||
}
|
||||
|
||||
@ -84,7 +84,7 @@ class AdmFactory
|
||||
public function kickfrombattle(): void
|
||||
{
|
||||
if (empty($this->targetUser['battle'])) {
|
||||
$this->status = 'Персонаж не в поединке.';
|
||||
$this->status = 'Персонаж не в поединке.';
|
||||
return;
|
||||
}
|
||||
Db::sql('update users left join stats on users.id = stats.id
|
||||
@ -94,6 +94,6 @@ class AdmFactory
|
||||
battle_yron = default,
|
||||
battle_exp = default
|
||||
where id = ?', [$this->targetUser['id']]);
|
||||
// В оригинале тут ещё писалась запись в лог боя, но нужна ли она?
|
||||
// В оригинале тут ещё писалась запись в лог боя, но нужна ли она?
|
||||
}
|
||||
}
|
@ -17,13 +17,13 @@ class Announcement
|
||||
{
|
||||
echo <<<HTML
|
||||
<div style="padding:0 10px 5px 10px; margin:5px; border-bottom:1px solid #cac9c7;">
|
||||
<h4>Ìåãàôîí</h4>
|
||||
<h4>Мегафон</h4>
|
||||
<form method="post"></form>
|
||||
<label for="announcementText">Ñîîáùåíèå</label>
|
||||
<label for="announcementText">Сообщение</label>
|
||||
<input name="announcementText" type="text" id="announcementText" size="70" maxlength="1000">
|
||||
<input type="submit" name="announcementModeration" id="announcementModeration" class="btn" value="Íàïèñàòü"><br>
|
||||
<input type="submit" name="announcementModeration" id="announcementModeration" class="btn" value="Написать"><br>
|
||||
<input name="announcementIsSigned" type="checkbox" id="announcementIsSigned" value="1">
|
||||
<label for="announcementIsSigned">îò ñâîåãî èìåíè</label>
|
||||
<label for="announcementIsSigned">от своего имени</label>
|
||||
</form>
|
||||
</div>
|
||||
HTML;
|
||||
@ -41,9 +41,9 @@ HTML;
|
||||
return;
|
||||
}
|
||||
|
||||
$sender = empty($_POST['announcementIsSigned']) ? '<b>Àäìèíèñòðàöèÿ</b>' : User::getLogin(User::start()->info['id']);
|
||||
$sender = empty($_POST['announcementIsSigned']) ? '<b>Администрация</b>' : User::getLogin(User::start()->info['id']);
|
||||
|
||||
(new Chat())->sendsys("$sender: $strippedMessage");
|
||||
echo '<span style="color: red; "><b>Ñîîáùåíèå óñïåøíî îòïðàâëåíî</b></span>';
|
||||
echo '<span style="color: red; "><b>Сообщение успешно отправлено</b></span>';
|
||||
}
|
||||
}
|
@ -10,7 +10,7 @@ use User;
|
||||
|
||||
class ModFactory
|
||||
{
|
||||
private const ERROR_WRONG_DURATION = 'Íåâåðíî óêàçàí ñðîê íàêàçàíèÿ';
|
||||
private const ERROR_WRONG_DURATION = 'Неверно указан срок наказания';
|
||||
public readonly string $status;
|
||||
private DateTime $time;
|
||||
private ChatMessage $msg;
|
||||
@ -21,12 +21,12 @@ class ModFactory
|
||||
public function __construct(
|
||||
private readonly string $targetLogin,
|
||||
private readonly string $reason,
|
||||
int $moderatorsRoom // Êîìíàòà ãäå ñèäèò ìîäåðàòîð.
|
||||
int $moderatorsRoom // Комната где сидит модератор.
|
||||
)
|
||||
{
|
||||
$this->targetUser = User::getInfo($this->targetLogin);
|
||||
if (empty($this->targetUser)) {
|
||||
$this->status = 'Ïåðñîíàæ íå íàéäåí!';
|
||||
$this->status = 'Персонаж не найден!';
|
||||
return;
|
||||
}
|
||||
$this->chat = new Chat();
|
||||
@ -46,7 +46,7 @@ class ModFactory
|
||||
}
|
||||
$this->time->modify("+ $minutes minute");
|
||||
$this->moderation->silence($this->time, $this->reason);
|
||||
$this->status = "Ïåðñîíàæó $this->targetLogin çàïðåùåíî îáùàòüñÿ â ÷àòå äî {$this->time->format(Moderation::EXPIRATION_DATETIME_FORMAT)}.";
|
||||
$this->status = "Персонажу $this->targetLogin запрещено общаться в чате до {$this->time->format(Moderation::EXPIRATION_DATETIME_FORMAT)}.";
|
||||
$this->msg->setText("[img[items/silence.gif]] $this->status");
|
||||
$this->chat->sendMsg($this->msg);
|
||||
}
|
||||
@ -54,11 +54,11 @@ class ModFactory
|
||||
public function unsilence(): void
|
||||
{
|
||||
if ($this->targetUser['molch1'] < $this->time->getTimestamp()) {
|
||||
$this->status = 'Ïåðñîíàæ íå ìîë÷èò!';
|
||||
$this->status = 'Персонаж не молчит!';
|
||||
return;
|
||||
}
|
||||
$this->moderation->unsilence();
|
||||
$this->status = "Ñ ïåðñîíàæà $this->targetLogin ñíÿò çàïðåò íà îáùåíèå â ÷àòå.";
|
||||
$this->status = "С персонажа $this->targetLogin снят запрет на общение в чате.";
|
||||
$this->msg->setText("[img[items/pal_button3.gif]] $this->status");
|
||||
$this->chat->sendMsg($this->msg);
|
||||
}
|
||||
@ -71,8 +71,8 @@ class ModFactory
|
||||
}
|
||||
$this->time->modify("+ $days day");
|
||||
$this->moderation->prison($this->time, $this->reason);
|
||||
Db::sql('delete from dungeon_zv where uid = ?', [$this->targetUser['id']]); // Óäàëÿåì çàÿâêè â ïåùåðû.
|
||||
$this->status = "Ïåðñîíàæ $this->targetLogin áûë îòïðàâëåí â òþðüìó äî {$this->time->format(Moderation::EXPIRATION_DATETIME_FORMAT)}.";
|
||||
Db::sql('delete from dungeon_zv where uid = ?', [$this->targetUser['id']]); // Удаляем заявки в пещеры.
|
||||
$this->status = "Персонаж $this->targetLogin был отправлен в тюрьму до {$this->time->format(Moderation::EXPIRATION_DATETIME_FORMAT)}.";
|
||||
$this->msg->setText("[img[items/jail.gif]] $this->status");
|
||||
$this->chat->sendMsg($this->msg);
|
||||
}
|
||||
@ -80,7 +80,7 @@ class ModFactory
|
||||
public function unprison(): void
|
||||
{
|
||||
$this->moderation->unprison();
|
||||
$this->status = "Ïåðñîíàæ $this->targetLogin áûë âûïóùåí èç òþðüìû.";
|
||||
$this->status = "Персонаж $this->targetLogin был выпущен из тюрьмы.";
|
||||
$this->msg->setText("[img[items/jail_off.gif]] $this->status");
|
||||
$this->chat->sendMsg($this->msg);
|
||||
}
|
||||
@ -92,12 +92,12 @@ class ModFactory
|
||||
return;
|
||||
}
|
||||
if ($this->targetUser['info_delete'] === 1 || $this->targetUser['info_delete'] >= $this->time->getTimestamp()) {
|
||||
$this->status = 'Ïåðñîíàæ óæå ïîä ïîäîçðåíèåì.';
|
||||
$this->status = 'Персонаж уже под подозрением.';
|
||||
return;
|
||||
}
|
||||
$this->time->modify("+ $days day");
|
||||
$this->moderation->depersonalize($this->time, $this->reason);
|
||||
$this->status = "Ïåðñîíàæ $this->targetLogin ïîä ïîäîçðåíèåì äî {$this->time->format(Moderation::EXPIRATION_DATETIME_FORMAT)}";
|
||||
$this->status = "Персонаж $this->targetLogin под подозрением до {$this->time->format(Moderation::EXPIRATION_DATETIME_FORMAT)}";
|
||||
$this->msg->setText("[img[items/cui.gif]] $this->status");
|
||||
$this->chat->sendMsg($this->msg);
|
||||
}
|
||||
@ -105,11 +105,11 @@ class ModFactory
|
||||
public function undepersonalize(): void
|
||||
{
|
||||
if ($this->targetUser['info_delete'] <= $this->time->getTimestamp()) {
|
||||
$this->status = 'Ïåðñîíàæ íå ïîä ïîäîçðåíèåì.';
|
||||
$this->status = 'Персонаж не под подозрением.';
|
||||
return;
|
||||
}
|
||||
$this->moderation->undepersonalize();
|
||||
$this->status = "Ïåðñîíàæ $this->targetLogin áîëüøå íå ïîä ïîäîçðåíèåì";
|
||||
$this->status = "Персонаж $this->targetLogin больше не под подозрением";
|
||||
$this->msg->setText("[img[items/uncui.gif]] $this->status");
|
||||
$this->chat->sendMsg($this->msg);
|
||||
}
|
||||
@ -119,15 +119,15 @@ class ModFactory
|
||||
$this->moderation->ban($this->reason);
|
||||
Db::sql('delete from chat where login = ?', [$this->targetLogin]);
|
||||
Db::sql('insert into ban_email (email, uid, nick_name) values (?,?,?)', [$this->targetUser['mail'], $this->targetUser['id'], $this->targetLogin]);
|
||||
Db::sql('delete from zayvki where creator = ?', [$this->targetUser['id']]); // Óäàëÿåì çàÿâêè íà áîé.
|
||||
Db::sql('delete from dungeon_zv where uid = ?', [$this->targetUser['id']]); // Óäàëÿåì çàÿâêè â ïåùåðû.
|
||||
Db::sql('delete from zayvki where creator = ?', [$this->targetUser['id']]); // Удаляем заявки на бой.
|
||||
Db::sql('delete from dungeon_zv where uid = ?', [$this->targetUser['id']]); // Удаляем заявки в пещеры.
|
||||
if (!empty($this->targetUser['battle'])) {
|
||||
Db::sql(
|
||||
'update users left join stats on users.id = stats.id set battle = default, regHP = unix_timestamp(), team = 0, battle_yron = 0, battle_exp = 0 where users.id = ?',
|
||||
[$this->targetUser['id']]
|
||||
);
|
||||
}
|
||||
$this->status = "Ïåðñîíàæ $this->targetLogin çàáëîêèðîâàí";
|
||||
$this->status = "Персонаж $this->targetLogin заблокирован";
|
||||
$this->msg->setText("[img[items/pal_button6.gif]] $this->status");
|
||||
$this->chat->sendMsg($this->msg);
|
||||
}
|
||||
@ -135,12 +135,12 @@ class ModFactory
|
||||
public function unban(): void
|
||||
{
|
||||
if (empty($this->targetUser['banned'])) {
|
||||
$this->status = 'Ïåðñîíàæ íå â áëîêå.';
|
||||
$this->status = 'Персонаж не в блоке.';
|
||||
return;
|
||||
}
|
||||
$this->moderation->unban();
|
||||
Db::sql('delete from ban_email where email = ?', [$this->targetUser['mail']]);
|
||||
$this->status = "Ïåðñîíàæ $this->targetLogin ðàçáëîêèðîâàí";
|
||||
$this->status = "Персонаж $this->targetLogin разблокирован";
|
||||
$this->msg->setText("[img[items/pal_button7.gif]] $this->status");
|
||||
$this->chat->sendMsg($this->msg);
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ use User;
|
||||
|
||||
class UserRegistrationList
|
||||
{
|
||||
/** Ðåãèñòðàöèè ïåðñîíàæåé: òîëüêî äëÿ àäìèíèñòðàòîðîâ.
|
||||
/** Регистрации персонажей: только для администраторов.
|
||||
* @return void
|
||||
*/
|
||||
public static function get(): void
|
||||
@ -35,14 +35,14 @@ class UserRegistrationList
|
||||
</script>
|
||||
|
||||
<div style="padding:0 10px 5px 10px; margin:5px; border-bottom:1px solid #cac9c7;">
|
||||
<h4>Ðåãèñòðàöèè ïåðñîíàæåé</h4>
|
||||
<label for="loginLD520">Äàòà ðåãèñòðàöèè</label>
|
||||
<h4>Регистрации персонажей</h4>
|
||||
<label for="loginLD520">Дата регистрации</label>
|
||||
<input name="pometka520" class="btn btn-success" onclick="regprev()" type="submit" value="«"/>
|
||||
<input value="<?= $pld520 ?>" name="loginLD520" type="text" id="loginLD520" size="20" maxlength="10"/>
|
||||
<input name="pometka520" class="btn btn-success" onclick="regnext()" type="submit" value="»"/>
|
||||
<input type="submit" name="pometka520" id="pometka520" class="btn" value="Ïîêàçàòü"/>
|
||||
<input type="submit" name="pometka520" id="pometka520" class="btn" value="Показать"/>
|
||||
<?php if (isset($_POST['pometka520'])): ?>
|
||||
<br><b style="color: red;">Ïåðñîíàæè çàðåãèñòðèðîâàííûå <?= $pld520 ?></b>
|
||||
<br><b style="color: red;">Персонажи зарегистрированные <?= $pld520 ?></b>
|
||||
<ol>
|
||||
<?php foreach (Db::getRows($query, [$pld520TS, $pld520TS + 86400]) as $pl):
|
||||
$logincolor = match (true) {
|
||||
@ -55,13 +55,13 @@ class UserRegistrationList
|
||||
<li>
|
||||
<span style="color: <?= $logincolor ?>"> <?= User::getLogin($pl['id']) ?> </span>
|
||||
<?php if ($pl['molch1'] > time()): ?>
|
||||
<i>(ìîë÷èò)</i>
|
||||
<i>(молчит)</i>
|
||||
<?php endif; ?>
|
||||
<?php if ($pl['battle'] > 0): ?>
|
||||
<a href="/logs.php?log=<?= $pl['battle'] ?>" target="_blank">(â áîþ)</a>
|
||||
<a href="/logs.php?log=<?= $pl['battle'] ?>" target="_blank">(в бою)</a>
|
||||
<?php endif; ?>
|
||||
<?php if ($pl['host_reg'] > 0): ?>
|
||||
<small>(ðåôåðàë ïåðñîíàæà <?= User::getLogin($pl['host_reg']) ?>)</small>
|
||||
<small>(реферал персонажа <?= User::getLogin($pl['host_reg']) ?>)</small>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
|
@ -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']]
|
||||
);
|
||||
|
||||
@ -461,11 +461,11 @@ class Priems
|
||||
/**
|
||||
* Новая функция магического заклинания с приёма.
|
||||
* Работает с числовыми приёмами в папке [priem].
|
||||
* @param int $attackerId кто использует приём
|
||||
* @param int $defenderId на кого использует приём
|
||||
* @param float $damage базовый урон приёма
|
||||
* @param string $damageType тип урона (стихия?) приходит строкой, и конвертируется функцией.
|
||||
* @param bool $hasCritical флаг, что приём МОЖЕТ критовать
|
||||
* @param int $attackerId кто использует приём
|
||||
* @param int $defenderId на кого использует приём
|
||||
* @param float $damage базовый урон приёма
|
||||
* @param string $damageType тип урона (стихия?) приходит строкой, и конвертируется функцией.
|
||||
* @param bool $hasCritical флаг, что приём МОЖЕТ критовать
|
||||
* @return array [0|damage] int урон, [1|crit] bool был ли крит, [2|miss] bool был ли промах, [3|miss_type] int тип промаха (всегда = 2).
|
||||
* @author Insallah
|
||||
*/
|
||||
@ -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 {
|
||||
$notr++;
|
||||
}
|
||||
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']) {
|
||||
@ -1574,13 +1574,13 @@ class Priems
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $uid на кого кастуем
|
||||
* @param int $pr id приема
|
||||
* @param int $uid на кого кастуем
|
||||
* @param int $pr id приема
|
||||
* @param int|string $data дата, если -1, то добавляем дату3
|
||||
* @param int $d2
|
||||
* @param int $d2
|
||||
* @param $tm
|
||||
* @param int $h ход
|
||||
* @param int $uu id юзера который использовал
|
||||
* @param int $h ход
|
||||
* @param int $uu id юзера который использовал
|
||||
* @param $max
|
||||
* @param $bj
|
||||
* @param $tp
|
||||
@ -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';
|
||||
@ -1728,8 +1727,8 @@ class Priems
|
||||
|
||||
/** Получает строку data c шаблонной записью типа add_m11=2*{lvl1} и конвертирует в реальную строку.
|
||||
* <br>Шаблон: <br>lvl1 = $uid[level] <br>ts5 = $uid[s5] <br>mpAll = $uid[mpAll]
|
||||
* @param string $pl строка в формате data
|
||||
* @param int $uid пользователь, параметры которого используются для подставки в шаблон.
|
||||
* @param string $pl строка в формате data
|
||||
* @param int $uid пользователь, параметры которого используются для подставки в шаблон.
|
||||
* @return string строка в формате data с развёрнутыми шаблонами.
|
||||
*/
|
||||
public function redate($pl, $uid)
|
||||
@ -1740,13 +1739,13 @@ class Priems
|
||||
$e = explode('|', $pl);
|
||||
while ($i < count($e)) {
|
||||
$f = explode('=', $e[$i]);
|
||||
// $f[1] = $this->getdr(
|
||||
// $f[1], [0 => 'lvl1', 1 => 'ts5', 2 => 'mpAll'], [
|
||||
// 0 => $btl->users[$btl->uids[$uid]]['level'],
|
||||
// 1 => $btl->stats[$btl->uids[$uid]]['s5'],
|
||||
// 2 => $btl->stats[$btl->uids[$uid]]['mpAll'],
|
||||
// ]
|
||||
// );
|
||||
// $f[1] = $this->getdr(
|
||||
// $f[1], [0 => 'lvl1', 1 => 'ts5', 2 => 'mpAll'], [
|
||||
// 0 => $btl->users[$btl->uids[$uid]]['level'],
|
||||
// 1 => $btl->stats[$btl->uids[$uid]]['s5'],
|
||||
// 2 => $btl->stats[$btl->uids[$uid]]['mpAll'],
|
||||
// ]
|
||||
// );
|
||||
$f[1] = $this->getDynamicInfo($f[1]);
|
||||
if ($f[0] != '' && $f[1] != '') {
|
||||
$e[$i] = implode('=', $f);
|
||||
@ -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) {
|
||||
$manager->store();
|
||||
});
|
||||
->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]
|
||||
);
|
||||
|
||||
@ -2724,7 +2732,7 @@ class Priems
|
||||
* Конечный damage после множителей делится на 5 и пишется в БД (atgm=).
|
||||
* Файлы: 33, 56, 57, 58, 59, 60.
|
||||
* @param $id
|
||||
* @param array $pl массив значений из БД priems.
|
||||
* @param array $pl массив значений из БД priems.
|
||||
* @param Battle $btl
|
||||
* @return void
|
||||
*/
|
||||
@ -2756,7 +2764,7 @@ class Priems
|
||||
* Если есть одинаковые статы из них выбирается случайный.
|
||||
* Файл:267, приём 268. Понимай как хочешь.
|
||||
* @param $id
|
||||
* @param array $pl
|
||||
* @param array $pl
|
||||
* @param Battle $btl
|
||||
* @return void
|
||||
*/
|
||||
@ -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 &&
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -31,7 +31,7 @@ class Clan
|
||||
}
|
||||
}
|
||||
|
||||
private function join(string $clanname)
|
||||
private function join(string $clanname): void
|
||||
{
|
||||
Db::sql('update users set clan = (select id from clan where clan.name = ?) where id = ?', [$clanname, $this->userid]);
|
||||
}
|
||||
@ -46,7 +46,7 @@ class Clan
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
public function printClan()
|
||||
public function printClan(): void
|
||||
{
|
||||
echo '<img style="vertical-align:text-bottom;" src="' . Config::img() . '/i/align/align' . $this->getAlign() . '.gif" alt="Склонность">' . $this->printLogoImage() . $this->getName();
|
||||
}
|
||||
@ -88,4 +88,9 @@ class Clan
|
||||
{
|
||||
return !empty($this->id) && $this->status === 0;
|
||||
}
|
||||
|
||||
public static function addExp(int $value, int $clanid): void
|
||||
{
|
||||
Db::sql('update clan set exp = exp + ? where id = ?',[max($value,0), $clanid]);
|
||||
}
|
||||
}
|
||||
|
@ -148,6 +148,11 @@ insert into eff_users
|
||||
Db::sql('delete from eff_users where id in (?) and uid = ?', [implode(',', $ids), $userId]);
|
||||
}
|
||||
|
||||
public static function removePriems(int $userid): void
|
||||
{
|
||||
Db::sql("delete from eff_users where v1 = 'priem' and uid = ?", [$userid]);
|
||||
}
|
||||
|
||||
public static function hasAttackTimeLimit(int $attackerId): bool
|
||||
{
|
||||
return Db::getValue('select count(*) from eff_users where id_eff = 478 and `delete` = 0 and uid = ?', [$attackerId]) > 0;
|
||||
@ -166,14 +171,14 @@ insert into eff_users
|
||||
/**
|
||||
* Духовность. Спасение.
|
||||
* Из свитка нападения.
|
||||
* @param $id
|
||||
* @param $uid
|
||||
* @return void
|
||||
*/
|
||||
public static function addSpasenie($id): void
|
||||
public static function addSpasenie($uid): void
|
||||
{
|
||||
Db::sql('delete from eff_users where uid = ? and overType = 101');
|
||||
self::removeByOverType($uid, 101);
|
||||
Db::sql("insert into eff_users (id_eff, uid, name, data, overType, timeUse, user_use, v1, v2, img2, bj, mark)
|
||||
values (22,?,'Спасение','add_spasenie=1',101,77,?,'priem',324,'preservation.gif','спасение',1)", [$id, $id]);
|
||||
values (22,?,'Спасение','add_spasenie=1',101,77,?,'priem',324,'preservation.gif','спасение',1)", [$uid, $uid]);
|
||||
|
||||
}
|
||||
|
||||
|
@ -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";
|
||||
}
|
||||
}
|
@ -12,21 +12,11 @@ class Reputation
|
||||
public function __construct(int $userid)
|
||||
{
|
||||
$this->uid = $userid;
|
||||
$this->r = Db::getRow(
|
||||
'select *,
|
||||
(repcapitalcity+repdemonscity+repangelscity+repsuncity+repdreamscity+repabandonedplain+repsandcity+repemeraldscity+repdevilscity) as allrep,
|
||||
(nu_capitalcity+nu_demonscity+nu_angelscity+nu_suncity+nu_dreamscity+nu_abandonedplain+nu_sandcity+nu_emeraldscity+nu_devilscity) as allnurep
|
||||
from rep where id = ?', [$this->uid]
|
||||
);
|
||||
$this->r = $this->getr();
|
||||
|
||||
if (empty($this->r)) {
|
||||
Db::sql('insert into rep (id) value (?)', [$this->uid]);
|
||||
$this->r = Db::getRow(
|
||||
'select *,
|
||||
(repcapitalcity+repdemonscity+repangelscity+repsuncity+repdreamscity+repabandonedplain+repsandcity+repemeraldscity+repdevilscity) as allrep,
|
||||
(nu_capitalcity+nu_demonscity+nu_angelscity+nu_suncity+nu_dreamscity+nu_abandonedplain+nu_sandcity+nu_emeraldscity+nu_devilscity) as allnurep
|
||||
from rep where id = ?', [$this->uid]
|
||||
);
|
||||
$this->r = $this->getr();
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,7 +25,7 @@ class Reputation
|
||||
return $this->r;
|
||||
}
|
||||
|
||||
public function addRep(string $dungeonName, int $value): int
|
||||
public function addRep(string $dungeonName, int $value): mixed
|
||||
{
|
||||
if (!isset($this->r[$dungeonName]) || $value <= 0) {
|
||||
return 0;
|
||||
@ -44,4 +34,14 @@ class Reputation
|
||||
Db::sql("update rep set $dungeonName = ? where id = ?", [$value, $this->uid]);
|
||||
return $this->r[$dungeonName];
|
||||
}
|
||||
|
||||
private function getr()
|
||||
{
|
||||
return Db::getRow(
|
||||
'select *,
|
||||
(repcapitalcity+repdemonscity+repangelscity+repsuncity+repdreamscity+repabandonedplain+repsandcity+repemeraldscity+repdevilscity) as allrep,
|
||||
(nu_capitalcity+nu_demonscity+nu_angelscity+nu_suncity+nu_dreamscity+nu_abandonedplain+nu_sandcity+nu_emeraldscity+nu_devilscity) as allnurep
|
||||
from rep where id = ?', [$this->uid]
|
||||
);
|
||||
}
|
||||
}
|
@ -123,23 +123,21 @@ class Stats
|
||||
];
|
||||
}
|
||||
|
||||
public function getStats(int|array|null $uid = null, $i1 = 0, $res = 0, $reimg = false, $btl_cache = false): array
|
||||
public function getStats(int|array|null $uid = null, $i1 = 0, $reimg = false, $btl_cache = false): array
|
||||
{
|
||||
if (empty($uid) || $uid == $this->u->info['id'] && $res != 1) {
|
||||
//$u = $this->u->info;
|
||||
$u = User::getInfo($uid);
|
||||
} elseif (is_array($uid)) {
|
||||
$u = $uid;
|
||||
} else {
|
||||
$u = User::getInfo($uid);
|
||||
}
|
||||
$u = match (true) {
|
||||
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;
|
||||
@ -171,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);
|
||||
}
|
||||
|
||||
@ -285,22 +286,24 @@ 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'])) {
|
||||
foreach ($coms['new'] as $complect) {
|
||||
$com = Db::getValue('select data from complects where com = ? and x <= ? order by x desc limit 1',
|
||||
$com = Db::getValue(
|
||||
'select data from complects where com = ? and x <= ? order by x desc limit 1',
|
||||
[
|
||||
(int)$complect,
|
||||
(int)$coms['com'][$complect], // кол-во предметов данного комплекта
|
||||
]);
|
||||
]
|
||||
);
|
||||
|
||||
if (!$com) {
|
||||
continue;
|
||||
@ -322,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'];
|
||||
@ -356,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'];
|
||||
@ -413,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 ед.
|
||||
@ -431,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;
|
||||
}
|
||||
@ -474,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;
|
||||
@ -496,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 = [
|
||||
@ -513,8 +487,8 @@ class Stats
|
||||
|
||||
/** Собираем динамически создаваемые параметры. Если ключа нет - создаём.
|
||||
* @param string $key
|
||||
* @param int $value
|
||||
* @param array $st
|
||||
* @param int $value
|
||||
* @param array $st
|
||||
* @return void
|
||||
*/
|
||||
private function addKeyIfNotExist(string $key, int $value, array &$st): void
|
||||
@ -530,9 +504,11 @@ class Stats
|
||||
{
|
||||
//Характеристики от предметов //ТУТ tr_lvl
|
||||
// Вся вторая строчка - спасибо Users.
|
||||
$wearedItems = Db::getRows('select type, data, inOdet,
|
||||
$wearedItems = Db::getRows(
|
||||
'select type, data, inOdet,
|
||||
item_id, inslot, useInBattle, btl_zd, iznosNOW, iznosMAX, magic_inci, name, items_users.id, img, `2h`
|
||||
from items_users left join items_main on items_main.id = item_id where inOdet != 0 and uid = ?', [$uid]);
|
||||
from items_users left join items_main on items_main.id = item_id where inOdet != 0 and uid = ?', [$uid]
|
||||
);
|
||||
|
||||
$h = 0;
|
||||
$hnd1 = 0;
|
||||
@ -563,6 +539,7 @@ class Stats
|
||||
5 => [70, 89,],//Великолепная
|
||||
];
|
||||
|
||||
|
||||
foreach ($wearedItems as $wearedItem) {
|
||||
$this->addKeyIfNotExist('wp' . $wearedItem['inOdet'] . 'id', $h, $st);
|
||||
|
||||
@ -590,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']]);
|
||||
} else {
|
||||
$ozm = array_fill_keys($ozm, $ozaozmtypes[1]);
|
||||
}
|
||||
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[$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_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']];
|
||||
} else {
|
||||
$ozm[1] = $ozaozmtypes[1];
|
||||
}
|
||||
if (in_array($data['add_ozm2'], range(1, 5))) {
|
||||
$ozm[2] = $ozaozmtypes[$data['add_ozm2']];
|
||||
} else {
|
||||
$ozm[2] = $ozaozmtypes[1];
|
||||
}
|
||||
if (in_array($data['add_ozm3'], range(1, 5))) {
|
||||
$ozm[3] = $ozaozmtypes[$data['add_ozm3']];
|
||||
} else {
|
||||
$ozm[3] = $ozaozmtypes[1];
|
||||
}
|
||||
if (in_array($data['add_ozm4'], range(1, 5))) {
|
||||
$ozm[4] = $ozaozmtypes[$data['add_ozm4']];
|
||||
} else {
|
||||
$ozm[4] = $ozaozmtypes[1];
|
||||
if (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 (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[$i][0] += $ozaozmtypes[1][0];
|
||||
$ozm[$i][1] += $ozaozmtypes[1][1];
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($data['art'])) {
|
||||
@ -1080,7 +1046,7 @@ class Stats
|
||||
|
||||
private function addIntelligenceBonuses(array &$st): void
|
||||
{
|
||||
//интелект
|
||||
//интелект
|
||||
if ($st['s5'] > 24 && $st['s5'] < 50) {
|
||||
$st['m11'] += 10;
|
||||
}
|
||||
@ -1110,7 +1076,7 @@ class Stats
|
||||
|
||||
private function addWisdomBonuses(array &$st): void
|
||||
{
|
||||
//мудрость
|
||||
//мудрость
|
||||
if ($st['s6'] > 24 && $st['s6'] < 50) {
|
||||
$st['mpall'] += 150;
|
||||
$st['speedmp'] += 100;
|
||||
@ -1151,7 +1117,8 @@ class Stats
|
||||
|
||||
private function addDungeonsBonuses(int $id, array &$st): void
|
||||
{
|
||||
$finishedDungeons = Db::getValue('select
|
||||
$finishedDungeons = Db::getValue(
|
||||
'select
|
||||
if(repcapitalcity > 24999, 1, 0) +
|
||||
if(repdemonscity > 24999, 1, 0) +
|
||||
if(repangelscity > 24999, 1, 0) +
|
||||
@ -1161,10 +1128,15 @@ class Stats
|
||||
if(repsandcity > 24999, 1, 0) +
|
||||
if(repemeraldscity > 24999, 1, 0) +
|
||||
if(repizlom > 24999, 1, 0) +
|
||||
0 as finished from rep where id = ?', [$id]);
|
||||
0 as finished from rep where id = ?', [$id]
|
||||
);
|
||||
|
||||
//Бонус за количество полностью вырытых пещер.
|
||||
$st['m10'] += 10 * $finishedDungeons;
|
||||
if (isset($st['m10'])) {
|
||||
$st['m10'] += 10 * $finishedDungeons;
|
||||
} else {
|
||||
$st['m10'] = 10 * $finishedDungeons;
|
||||
}
|
||||
}
|
||||
|
||||
private function addAdminBonuses(array $u, array &$st): void
|
||||
@ -1180,10 +1152,12 @@ class Stats
|
||||
return;
|
||||
}
|
||||
|
||||
Db::sql("update stats set
|
||||
Db::sql(
|
||||
"update stats set
|
||||
tactic1 = tactic2 = tactic3 = tactic4 = tactic5 = tactic6 = tactic7 = 25,
|
||||
priems_z = '0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|'
|
||||
where id = ?", [$u['id']]);
|
||||
where id = ?", [$u['id']]
|
||||
);
|
||||
}
|
||||
|
||||
/** Переименовывает элементы массива с несовпадающими с остальным скриптом именами полей.
|
||||
@ -1192,11 +1166,69 @@ class Stats
|
||||
*/
|
||||
private function renameArrayKeys(array &$st): void
|
||||
{
|
||||
$st['lvl'] = $st['level'];
|
||||
$st['hpNow'] = $st['hpnow'];
|
||||
$st['mpNow'] = $st['mpnow'];
|
||||
|
||||
unset($st['level'], $st['hpnow'], $st['mpnow']);
|
||||
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'], $st['hpall'], $st['mpall']);
|
||||
}
|
||||
|
||||
public static function saveBattleStats(array $stats, int $id): void
|
||||
{
|
||||
if (!isset(
|
||||
$stats['hpnow'],
|
||||
$stats['mpNow'],
|
||||
$stats['tactic1'],
|
||||
$stats['tactic2'],
|
||||
$stats['tactic3'],
|
||||
$stats['tactic4'],
|
||||
$stats['tactic5'],
|
||||
$stats['tactic6'],
|
||||
$stats['tactic7'],
|
||||
$stats['enemy'],
|
||||
$stats['battle_yron'],
|
||||
$stats['battle_exp'],
|
||||
$stats['last_hp'],
|
||||
$stats['priems_z'],
|
||||
)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
Db::sql(
|
||||
'update stats set hpNow = ?,mpNow = ?,
|
||||
tactic1 = ?,tactic2 = ?,tactic3 = ?,tactic4 = ?,tactic5 = ?,tactic6 = ?,tactic7 = ?,
|
||||
enemy = ?,battle_yron = ?,last_hp = ?,battle_exp = ?,priems_z = ?
|
||||
where id = ?',
|
||||
[
|
||||
$stats['hpnow'],
|
||||
$stats['mpNow'],
|
||||
$stats['tactic1'],
|
||||
$stats['tactic2'],
|
||||
$stats['tactic3'],
|
||||
$stats['tactic4'],
|
||||
$stats['tactic5'],
|
||||
$stats['tactic6'],
|
||||
$stats['tactic7'],
|
||||
$stats['enemy'],
|
||||
$stats['battle_yron'],
|
||||
$stats['battle_exp'],
|
||||
$stats['last_hp'],
|
||||
$stats['priems_z'],
|
||||
$id,
|
||||
]
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -107,7 +107,7 @@ $pvr = array();
|
||||
}
|
||||
//
|
||||
$pvr['x5']['priem']['id'] = $pvr['x5']['v2'];
|
||||
$btl->delPriem($pvr['x5'],$btl->users[$btl->uids[$this->ue['id']]],2);
|
||||
$btl->delPriem($pvr['x5'], $btl->users[$btl->uids[$this->ue['id']]], 2);
|
||||
//
|
||||
|
||||
//Добавляем прием
|
||||
|
@ -107,7 +107,7 @@ $pvr = array();
|
||||
}
|
||||
//
|
||||
$pvr['x5']['priem']['id'] = $pvr['x5']['v2'];
|
||||
$btl->delPriem($pvr['x5'],$btl->users[$btl->uids[$this->ue['id']]],2);
|
||||
$btl->delPriem($pvr['x5'], $btl->users[$btl->uids[$this->ue['id']]], 2);
|
||||
//
|
||||
|
||||
//Добавляем прием
|
||||
|
@ -107,7 +107,7 @@ $pvr = array();
|
||||
}
|
||||
//
|
||||
$pvr['x5']['priem']['id'] = $pvr['x5']['v2'];
|
||||
$btl->delPriem($pvr['x5'],$btl->users[$btl->uids[$this->ue['id']]],2);
|
||||
$btl->delPriem($pvr['x5'], $btl->users[$btl->uids[$this->ue['id']]], 2);
|
||||
//
|
||||
|
||||
//Добавляем прием
|
||||
|
@ -1,118 +1,114 @@
|
||||
<?php
|
||||
if(!defined('GAME')) {
|
||||
die();
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
/*
|
||||
Прием: Вломить
|
||||
Следующий удар по противнику наносит на 4 ед. больше
|
||||
Прием: Вломить
|
||||
Следующий удар по противнику наносит на 4 ед. больше
|
||||
*/
|
||||
$pvr = array();
|
||||
if( isset($pr_tested_this) ) {
|
||||
$fx_priem = function( $id , $at , $uid, $j_id ) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if( $uid == $uid1 ) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
}elseif( $uid == $uid2 ) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$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;
|
||||
};
|
||||
unset( $pr_used_this );
|
||||
}elseif( isset($pr_used_this) ) {
|
||||
$fx_priem = function( $id , $at , $uid, $j_id ) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if( $uid == $uid1 ) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
}elseif( $uid == $uid2 ) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$u1 = $uid2;
|
||||
$u2 = $uid1;
|
||||
}
|
||||
if( $a > 0 ) {
|
||||
$j = 0; $k = 0; $wp = 3;
|
||||
while($j < count($at['p'][$a]['atack'])) {
|
||||
if( isset($at['p'][$a]['atack'][$j]['yron']) && (
|
||||
$at['p'][$a]['atack'][$j][1] == 1 ||
|
||||
$at['p'][$a]['atack'][$j][1] == 4 ||
|
||||
$at['p'][$a]['atack'][$j][1] == 5 )) {
|
||||
if( $pvr['used'] == 0 && !isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) {
|
||||
//
|
||||
$pvr['hp'] = 4;
|
||||
$pvr['hp'] = $btl->testYronPriem( $u1, $u2, 12, $pvr['hp'], -1, true, false, 0 );
|
||||
$pvr['mg'] = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid` = "'.$u2.'" AND `v2` = "249" AND `delete` = 0 LIMIT 1'));
|
||||
if( $pvr['hp'] <= 1 && isset($pvr['mg'])) {
|
||||
$pvr['hp'] = 0;
|
||||
$at['p'][$a]['atack'][$j]['yron']['y'] = 1;
|
||||
$at['p'][$a]['atack'][$j]['yron']['r'] = -1;
|
||||
$at['p'][$a]['atack'][$j]['yron']['k'] = 1;
|
||||
$at['p'][$a]['atack'][$j]['yron']['m_k'] = 1;
|
||||
$at['p'][$a]['atack'][$j]['yron']['m_y'] = 1;
|
||||
}
|
||||
else
|
||||
//
|
||||
{
|
||||
$at['p'][$a]['atack'][$j]['yron']['y'] += $pvr['hp'];
|
||||
$at['p'][$a]['atack'][$j]['yron']['r'] -= $pvr['hp'];
|
||||
$at['p'][$a]['atack'][$j]['yron']['k'] += $pvr['hp'];
|
||||
$at['p'][$a]['atack'][$j]['yron']['m_y'] += $pvr['hp'];
|
||||
$at['p'][$a]['atack'][$j]['yron']['m_k'] += $pvr['hp'];
|
||||
}
|
||||
//$at['p'][$a]['atack'][$j]['yron'] = $btl->testYronPriemAttack( 2 , $u1 , $u2 , $at['p'][$a]['atack'][$j]['yron'] );
|
||||
$pvr = [];
|
||||
if (isset($pr_tested_this)) {
|
||||
$fx_priem = function ($id, $at, $uid, $j_id) {
|
||||
// -- начало приема
|
||||
global $btl;
|
||||
|
||||
//
|
||||
$at['p'][$a]['atack'][$j]['yron']['plog'][] = '$this->deleffm(2,'.(0+$uid).','.$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3].');
|
||||
$this->priemAddLog( '.$id.', '.$a.', '.$b.', '.$u1.', '.$u2.',
|
||||
"'.$btl->stats[$btl->uids[$u1]]['effects'][$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][0]]['name'].'",
|
||||
"{tm1} '.$btl->addlt($a , 17 , $btl->users[$btl->uids[$u1]]['sex'] , NULL).'",
|
||||
'.($btl->hodID + 1).' );';
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
|
||||
$at['p'][$a]['atack'][$j]['yron']['used'][] = array($j_id,$uid,$pvr['used']);
|
||||
$at['p'][$a]['atack'][$j]['yron']['kill'][] = array($j_id,$uid,$pvr['kill']);
|
||||
//
|
||||
$at['p'][$a]['priems']['kill'][$uid][$j_id] = true;
|
||||
}
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
// -- конец приема
|
||||
return $at;
|
||||
};
|
||||
unset( $pr_used_this );
|
||||
}else{
|
||||
//Действие при клике
|
||||
$this->addEffPr($pl,$id);
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if ($uid == $uid1) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
} elseif ($uid == $uid2) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$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;
|
||||
};
|
||||
unset($pr_used_this);
|
||||
} elseif (isset($pr_used_this)) {
|
||||
$fx_priem = function ($id, $at, $uid, $j_id) {
|
||||
// -- начало приема
|
||||
global $btl;
|
||||
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if ($uid == $uid1) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
} elseif ($uid == $uid2) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$u1 = $uid2;
|
||||
$u2 = $uid1;
|
||||
}
|
||||
if ($a > 0) {
|
||||
$j = 0;
|
||||
$k = 0;
|
||||
$wp = 3;
|
||||
while ($j < count($at['p'][$a]['atack'])) {
|
||||
if (isset($at['p'][$a]['atack'][$j]['yron']) && (
|
||||
$at['p'][$a]['atack'][$j][1] == 1 ||
|
||||
$at['p'][$a]['atack'][$j][1] == 4 ||
|
||||
$at['p'][$a]['atack'][$j][1] == 5)) {
|
||||
if ($pvr['used'] == 0 && !isset($at['p'][$a]['priems']['kill'][$uid][$j_id])) {
|
||||
//
|
||||
$pvr['hp'] = 4;
|
||||
$pvr['hp'] = $btl->testYronPriem($u1, $u2, 12, $pvr['hp'], -1, true, false, 0);
|
||||
$pvr['mg'] = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid` = "' . $u2 . '" AND `v2` = "249" AND `delete` = 0 LIMIT 1'));
|
||||
if ($pvr['hp'] <= 1 && isset($pvr['mg'])) {
|
||||
$pvr['hp'] = 0;
|
||||
$at['p'][$a]['atack'][$j]['yron']['y'] = 1;
|
||||
$at['p'][$a]['atack'][$j]['yron']['r'] = -1;
|
||||
$at['p'][$a]['atack'][$j]['yron']['k'] = 1;
|
||||
$at['p'][$a]['atack'][$j]['yron']['m_k'] = 1;
|
||||
$at['p'][$a]['atack'][$j]['yron']['m_y'] = 1;
|
||||
} else {
|
||||
$at['p'][$a]['atack'][$j]['yron']['y'] += $pvr['hp'];
|
||||
$at['p'][$a]['atack'][$j]['yron']['r'] -= $pvr['hp'];
|
||||
$at['p'][$a]['atack'][$j]['yron']['k'] += $pvr['hp'];
|
||||
$at['p'][$a]['atack'][$j]['yron']['m_y'] += $pvr['hp'];
|
||||
$at['p'][$a]['atack'][$j]['yron']['m_k'] += $pvr['hp'];
|
||||
}
|
||||
|
||||
$at['p'][$a]['atack'][$j]['yron']['plog'][] = '$this->deleffm(2,' . (0 + $uid) . ',' . $btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3] . ');
|
||||
$this->priemAddLog( ' . $id . ', ' . $a . ', ' . $b . ', ' . $u1 . ', ' . $u2 . ',
|
||||
"' . $btl->stats[$btl->uids[$u1]]['effects'][$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][0]]['name'] . '",
|
||||
"{tm1} ' . $btl->addlt($a, 17, $btl->users[$btl->uids[$u1]]['sex'], null) . '",
|
||||
' . ($btl->hodID + 1) . ' );';
|
||||
|
||||
|
||||
$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;
|
||||
}
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
// -- конец приема
|
||||
return $at;
|
||||
};
|
||||
unset($pr_used_this);
|
||||
} else {
|
||||
//Действие при клике
|
||||
$this->addEffPr($pl, $id);
|
||||
}
|
||||
unset($pvr);
|
||||
?>
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
if(!defined('GAME')) {
|
||||
die();
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
/*
|
||||
Прием: Магический барьер [4]
|
||||
@ -8,136 +8,150 @@ if(!defined('GAME')) {
|
||||
Цена: 2 маны - 1 ед.
|
||||
Процент поглощения: 50%
|
||||
*/
|
||||
$pvr = array();
|
||||
$pvr = [];
|
||||
|
||||
//Действие при клике
|
||||
if( isset($pr_momental_this)) {
|
||||
$fx_moment = function( $uid, $enemy, $j_id, $yron, $profil ) {
|
||||
if(!isset($btl->stats[$btl->uids[$uid]]['um_priem'][$j_id])) {
|
||||
global $u, $btl;
|
||||
$prv['j_priem'] = $btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][0];
|
||||
$prv['priem_th'] = $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id'];
|
||||
$yron = $btl->testPogB($uid,$yron,$btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id']);
|
||||
$btl->testPogB($uid,1,$btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id'],1);
|
||||
//$btl->stats[$btl->uids[$uid]]['um_priem'][$j_id]
|
||||
/*$btl->priemAddLogFast( $uid, 0, "Призрачная защита",
|
||||
'{tm1} '.$btl->addlt(1 , 17 , $btl->users[$btl->uids[$uid]]['sex'] , NULL).'',
|
||||
0, time() );*/
|
||||
if( $yron < 0 ) {
|
||||
$yron = 0;
|
||||
}
|
||||
$btl->stats[$btl->uids[$uid]]['um_priem'][$j_id] = true;
|
||||
}
|
||||
return round($yron);
|
||||
};
|
||||
}elseif( isset($pr_tested_this) ) {
|
||||
$fx_priem = function( $id , $at , $uid, $j_id ) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if( $uid == $uid2 ) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
}elseif( $uid == $uid1 ) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$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;
|
||||
};
|
||||
unset( $pr_used_this );
|
||||
}elseif( isset($pr_used_this) ) {
|
||||
$fx_priem = function( $id , $at , $uid, $j_id ) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if( $uid == $uid2 ) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
}elseif( $uid == $uid1 ) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$u1 = $uid2;
|
||||
$u2 = $uid1;
|
||||
}
|
||||
if( $a > 0 ) {
|
||||
$j = 0; $k = 0; $wp = 3;
|
||||
$checktuman=mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid` = "'.$uid.'"
|
||||
if (isset($pr_momental_this)) {
|
||||
$fx_moment = function ($uid, $enemy, $j_id, $yron, $profil) {
|
||||
if (!isset($btl->stats[$btl->uids[$uid]]['um_priem'][$j_id])) {
|
||||
global $u, $btl;
|
||||
$prv['j_priem'] = $btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][0];
|
||||
$prv['priem_th'] = $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id'];
|
||||
$yron = $btl->testPogB($uid, $yron, $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id']);
|
||||
$btl->testPogB($uid, 1, $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id'], 1);
|
||||
//$btl->stats[$btl->uids[$uid]]['um_priem'][$j_id]
|
||||
/*$btl->priemAddLogFast( $uid, 0, "Призрачная защита",
|
||||
'{tm1} '.$btl->addlt(1 , 17 , $btl->users[$btl->uids[$uid]]['sex'] , NULL).'',
|
||||
0, time() );*/
|
||||
if ($yron < 0) {
|
||||
$yron = 0;
|
||||
}
|
||||
$btl->stats[$btl->uids[$uid]]['um_priem'][$j_id] = true;
|
||||
}
|
||||
return round($yron);
|
||||
};
|
||||
} elseif (isset($pr_tested_this)) {
|
||||
$fx_priem = function ($id, $at, $uid, $j_id) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if ($uid == $uid2) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
} elseif ($uid == $uid1) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$u1 = $uid2;
|
||||
$u2 = $uid1;
|
||||
}
|
||||
|
||||
//
|
||||
// -- конец приема
|
||||
return $at;
|
||||
};
|
||||
unset($pr_used_this);
|
||||
} elseif (isset($pr_used_this)) {
|
||||
$fx_priem = function ($id, $at, $uid, $j_id) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if ($uid == $uid2) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
} elseif ($uid == $uid1) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$u1 = $uid2;
|
||||
$u2 = $uid1;
|
||||
}
|
||||
if ($a > 0) {
|
||||
$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']))
|
||||
{
|
||||
while($j < count($at['p'][$a]['atack'])) {
|
||||
if( isset($at['p'][$a]['atack'][$j]['yron']) && (
|
||||
$at['p'][$a]['atack'][$j][1] == 1 ||
|
||||
$at['p'][$a]['atack'][$j][1] == 4 ||
|
||||
$at['p'][$a]['atack'][$j][1] == 5 )) {
|
||||
//if( !isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) {
|
||||
//
|
||||
$prv['j_priem'] = $btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][0];
|
||||
$prv['priem_th'] = $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id'];
|
||||
//
|
||||
$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; }
|
||||
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 ||
|
||||
$at['p'][$a]['atack'][$j][1] == 4 ||
|
||||
$at['p'][$a]['atack'][$j][1] == 5)) {
|
||||
//if( !isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) {
|
||||
//
|
||||
$prv['j_priem'] = $btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][0];
|
||||
$prv['priem_th'] = $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id'];
|
||||
//
|
||||
$attest = round($btl->testPogB($uid, $at['p'][$a]['atack'][$j]['yron']['y'], $btl->stats[$btl->uids[$uid]]['effects'][$prv['j_priem']]['id']));
|
||||
if ($at['p'][$a]['atack'][$j]['yron']['y'] < 1) {
|
||||
$at['p'][$a]['atack'][$j]['yron']['y'] = 0;
|
||||
}
|
||||
|
||||
$at['p'][$a]['atack'][$j]['yron']['y'] = round($at['p'][$a]['atack'][$j]['yron']['y']/2);
|
||||
$at['p'][$a]['atack'][$j]['yron']['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_y'] = round($at['p'][$a]['atack'][$j]['yron']['m_y']/2);
|
||||
$at['p'][$a]['atack'][$j]['yron']['y'] = round($at['p'][$a]['atack'][$j]['yron']['y'] / 2);
|
||||
$at['p'][$a]['atack'][$j]['yron']['r'] = round($at['p'][$a]['atack'][$j]['yron']['r'] / 2);
|
||||
$at['p'][$a]['atack'][$j]['yron']['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_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; }
|
||||
//
|
||||
$at['p'][$a]['atack'][$j]['yron']['used'][] = array($j_id,$uid,$pvr['used']);
|
||||
$at['p'][$a]['atack'][$j]['yron']['kill'][] = array($j_id,$uid,$pvr['kill']);
|
||||
//
|
||||
$at['p'][$a]['priems']['kill'][$uid][$j_id] = true;
|
||||
//}
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
// -- конец приема
|
||||
return $at;
|
||||
};
|
||||
unset( $pr_used_this );
|
||||
}else{
|
||||
//Действие при клике
|
||||
$btl->priemAddLog( $id, 1, 2, $u->info['id'], $u->info['enemy'],
|
||||
'Магический Барьер [4]',
|
||||
'{tm1} '.$btl->addlt(1 , 21 , $btl->users[$btl->uids[$u->info['id']]]['sex'] , NULL).'',
|
||||
($btl->hodID+1)
|
||||
);
|
||||
echo '<font color=red><b>Вы успешно использовали прием "Магический Барьер [4]"</b></font>';
|
||||
$this->addEffPr($pl,$id);
|
||||
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'][] = [$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;
|
||||
//}
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
// -- конец приема
|
||||
return $at;
|
||||
};
|
||||
unset($pr_used_this);
|
||||
} else {
|
||||
//Действие при клике
|
||||
$btl->priemAddLog(
|
||||
$id, 1, 2, $u->info['id'], $u->info['enemy'],
|
||||
'Магический Барьер [4]',
|
||||
'{tm1} ' . $btl->addlt(1, 21, $btl->users[$btl->uids[$u->info['id']]]['sex'], null) . '',
|
||||
($btl->hodID + 1)
|
||||
);
|
||||
echo '<font color=red><b>Вы успешно использовали прием "Магический Барьер [4]"</b></font>';
|
||||
$this->addEffPr($pl, $id);
|
||||
}
|
||||
|
||||
unset($pvr);
|
||||
?>
|
@ -1,115 +1,104 @@
|
||||
<?php
|
||||
if(!defined('GAME')) {
|
||||
die();
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
/*
|
||||
Прием: Скрытая ловкость
|
||||
Уворот от 1-го удара и наносите контрудар
|
||||
*/
|
||||
$pvr = array();
|
||||
if( isset($pr_tested_this) ) {
|
||||
$fx_priem = function( $id , $at , $uid, $j_id ) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if( $uid == $uid2 ) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
}elseif( $uid == $uid1 ) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$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;
|
||||
};
|
||||
unset( $pr_used_this );
|
||||
}elseif( isset($pr_used_this) ) {
|
||||
$fx_priem = function( $id , $at , $uid, $j_id ) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if( $uid == $uid2 ) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
}elseif( $uid == $uid1 ) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$u1 = $uid2;
|
||||
$u2 = $uid1;
|
||||
}
|
||||
if( $a > 0 ) {
|
||||
$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]) ) {
|
||||
//
|
||||
//Уворот от удара выставляем
|
||||
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 ) {
|
||||
//Попал
|
||||
$at['p'][$b]['atack'][] = array( $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 = $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]['priems']['kill'][$uid][$j_id] = true;
|
||||
$at['p'][$a]['atack'][$j]['priem_used'] = $id;
|
||||
//
|
||||
if( $btl->testRazmenblock1($id,$u2,$u1,$pvr['rnd_a']) == false ) {
|
||||
$at = $this->yronRazmen($id,$at,true);
|
||||
}
|
||||
//
|
||||
}
|
||||
//
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
// -- конец приема
|
||||
return $at;
|
||||
};
|
||||
unset( $pr_used_this );
|
||||
}else{
|
||||
//Действие при клике
|
||||
$this->addEffPr($pl,$id);
|
||||
$pvr = [];
|
||||
if (isset($pr_tested_this)) {
|
||||
$fx_priem = function ($id, $at, $uid, $j_id) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if ($uid == $uid2) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
} elseif ($uid == $uid1) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$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;
|
||||
};
|
||||
unset($pr_used_this);
|
||||
} elseif (isset($pr_used_this)) {
|
||||
$fx_priem = function ($id, $at, $uid, $j_id) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if ($uid == $uid2) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
} elseif ($uid == $uid1) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$u1 = $uid2;
|
||||
$u2 = $uid1;
|
||||
}
|
||||
if ($a > 0) {
|
||||
$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])) {
|
||||
//
|
||||
//Уворот от удара выставляем
|
||||
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)) {
|
||||
//Попал
|
||||
$at['p'][$b]['atack'][] = [$pvr['rnd_a'], 1, 0, 1]; // 1 1 1
|
||||
} else {
|
||||
//В блок
|
||||
$at['p'][$b]['atack'][] = [$pvr['rnd_a'], 3, 0, 1]; // 2 1 1
|
||||
}
|
||||
$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)) {
|
||||
$at = $this->yronRazmen($id, $at, true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
// -- конец приема
|
||||
return $at;
|
||||
};
|
||||
unset($pr_used_this);
|
||||
} else {
|
||||
//Действие при клике
|
||||
$this->addEffPr($pl, $id);
|
||||
}
|
||||
unset($pvr);
|
||||
?>
|
@ -114,7 +114,7 @@ if( isset($pr_tested_this) ) {
|
||||
}else{mysql_query('UPDATE `eff_users` SET `uid` = "'.$u1.'" WHERE `id` = "'.$pvr['pl']['id'].'" LIMIT 1');}*/
|
||||
|
||||
|
||||
$btl->delPriem($pvr['pl'],$btl->users[$btl->uids[$u2]],100,0,$pvr['pl']['name']);
|
||||
$btl->delPriem($pvr['pl'], $btl->users[$btl->uids[$u2]], 100, 0, $pvr['pl']['name']);
|
||||
|
||||
|
||||
//$this->addPriem($u1,$pvr['pl']['priem']['id'],''.$pvr['pl']['priem']['data2'].'',''.$pvr['pl']['priem']['data3'].'',77,5,$u1,1,''.$pvr['pl']['priem']['name'].'',0,0,1);
|
||||
|
@ -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';
|
||||
|
@ -1,115 +1,112 @@
|
||||
<?php
|
||||
if(!defined('GAME')) {
|
||||
die();
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
/*
|
||||
Прием: Танец лезвий
|
||||
Уворот от 1-го удара и наносите контрудар
|
||||
*/
|
||||
$pvr = array();
|
||||
if( isset($pr_tested_this) ) {
|
||||
$fx_priem = function( $id , $at , $uid, $j_id ) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if( $uid == $uid2 ) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
}elseif( $uid == $uid1 ) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$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;
|
||||
};
|
||||
unset( $pr_used_this );
|
||||
}elseif( isset($pr_used_this) ) {
|
||||
$fx_priem = function( $id , $at , $uid, $j_id ) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if( $uid == $uid2 ) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
}elseif( $uid == $uid1 ) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$u1 = $uid2;
|
||||
$u2 = $uid1;
|
||||
}
|
||||
if( $a > 0 ) {
|
||||
$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]) ) {
|
||||
//
|
||||
//Уворот от удара выставляем
|
||||
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 ) {
|
||||
//Попал
|
||||
$at['p'][$b]['atack'][] = array( $pvr['rnd_a'] , 1 , 0 , 1 );
|
||||
}else{
|
||||
//В блок
|
||||
$at['p'][$b]['atack'][] = array( $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.',
|
||||
$pvr = [];
|
||||
if (isset($pr_tested_this)) {
|
||||
$fx_priem = function ($id, $at, $uid, $j_id) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if ($uid == $uid2) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
} elseif ($uid == $uid1) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$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;
|
||||
};
|
||||
unset($pr_used_this);
|
||||
} elseif (isset($pr_used_this)) {
|
||||
$fx_priem = function ($id, $at, $uid, $j_id) {
|
||||
// -- начало приема
|
||||
global $u, $btl;
|
||||
//
|
||||
//Параметры приема
|
||||
$pvr['used'] = 0;
|
||||
//
|
||||
$uid1 = $btl->atacks[$id]['uid1'];
|
||||
$uid2 = $btl->atacks[$id]['uid2'];
|
||||
if ($uid == $uid2) {
|
||||
$a = 1;
|
||||
$b = 2;
|
||||
$u1 = $uid1;
|
||||
$u2 = $uid2;
|
||||
} elseif ($uid == $uid1) {
|
||||
$a = 2;
|
||||
$b = 1;
|
||||
$u1 = $uid2;
|
||||
$u2 = $uid1;
|
||||
}
|
||||
if ($a > 0) {
|
||||
$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])) {
|
||||
//
|
||||
//Уворот от удара выставляем
|
||||
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)) {
|
||||
//Попал
|
||||
$at['p'][$b]['atack'][] = [$pvr['rnd_a'], 1, 0, 1];
|
||||
} else {
|
||||
//В блок
|
||||
$at['p'][$b]['atack'][] = [$pvr['rnd_a'], 3, 0, 1];
|
||||
}
|
||||
$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).'",
|
||||
'.($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]['priems']['kill'][$uid][$j_id] = true;
|
||||
$at['p'][$a]['atack'][$j]['priem_used'] = $id;
|
||||
//
|
||||
if( $btl->testRazmenblock1($id,$u2,$u1,$pvr['rnd_a']) == false ) {
|
||||
$at = $this->yronRazmen($id,$at,true);
|
||||
}
|
||||
//
|
||||
}
|
||||
//
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
// -- конец приема
|
||||
return $at;
|
||||
};
|
||||
unset( $pr_used_this );
|
||||
}else{
|
||||
//Действие при клике
|
||||
$this->addEffPr($pl,$id);
|
||||
"{tm1} ' . $btl->addlt($b, 17, $btl->users[$btl->uids[$u2]]['sex'], null) . '",
|
||||
' . ($btl->hodID + 1) . ' );';
|
||||
$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)) {
|
||||
$at = $this->yronRazmen($id, $at, true);
|
||||
}
|
||||
//
|
||||
}
|
||||
//
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
// -- конец приема
|
||||
return $at;
|
||||
};
|
||||
unset($pr_used_this);
|
||||
} else {
|
||||
//Действие при клике
|
||||
$this->addEffPr($pl, $id);
|
||||
}
|
||||
unset($pvr);
|
||||
?>
|
@ -1,44 +0,0 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
die();
|
||||
}
|
||||
|
||||
if($st['usefromfile']=='bloodring' && $u->info['battle'] > 0 && $u->info['hpNow'] >= 1)
|
||||
{
|
||||
if($btl->info['team_win'] != -1 ) {
|
||||
$u->error = 'Использовать кольцо возможно только во время боя';
|
||||
}elseif($btl->info['razdel'] != 5) {
|
||||
$u->error = 'Использование кольца возможно только в хаотичных поединках!';
|
||||
}elseif(ceil($u->info['tactic6']) < 15) {
|
||||
$u->error = 'Не хватает '.(15-ceil($u->info['tactic6'])).' <img width=8 height=8 src=//img.new-combats.tech/i/micro/hp.gif> для "Кровавый сбор"';
|
||||
}else{
|
||||
$bu = mysql_fetch_array(mysql_query('SELECT `id` FROM `eff_users` WHERE `v1` = "priem" AND `v2` = "228" AND `delete` = "0" LIMIT 1'));
|
||||
if(isset($bu['id'])) {
|
||||
$u->error = 'Использование кольца возможно 1 раз за бой!';
|
||||
}else{
|
||||
mysql_query('UPDATE `stats` SET `tactic6` = `tactic6` - 15 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
|
||||
$u->info['tactic6'] -= 15;
|
||||
\User\ItemsModel::addItem(3134,$u->info['id'],'|sudba='.$u->info['login']);
|
||||
$ins = mysql_query('INSERT INTO `eff_users` (`hod`,`v2`,`img2`,`id_eff`,`uid`,`name`,`data`,`overType`,`timeUse`,`v1`) VALUES
|
||||
("-1",228,"invoke_create_lesserbloodstone.gif",22,"'.$u->info['id'].'","Кровавый Сбор","","30","77","priem")');
|
||||
$u->error = 'Вы успешно использовали заклинание "Кровавый сбор"';
|
||||
|
||||
//Лог боя
|
||||
$lastHOD = mysql_fetch_array(mysql_query('SELECT * FROM `battle_logs` WHERE `battle` = "'.$u->info['battle'].'" ORDER BY `id_hod` DESC LIMIT 1'));
|
||||
$id_hod = $lastHOD['id_hod'];
|
||||
if($lastHOD['type']!=6) {
|
||||
$id_hod++;
|
||||
}
|
||||
$txt = '<font color=#006699>'.$txt.'</font>';
|
||||
if($u->info['sex']==1) {
|
||||
$txt = '{u1} применила заклинание "<b>Кровавый сбор</b>".';
|
||||
}else{
|
||||
$txt = '{u1} применил заклинание "<b>Кровавый сбор</b>".';
|
||||
}
|
||||
mysql_query('INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("'.time().'","'.$u->info['battle'].'","'.($id_hod).'","{tm1} '.$txt.'","login1='.$u->info['login'].'||t1='.$u->info['team'].'||time1='.time().'","","","","","6")');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@ -1,63 +0,0 @@
|
||||
<?php
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if ($st['usefromfile'] == 'bloodring2' && $u->info['battle'] > 0 && $u->info['hpNow'] >= 1) {
|
||||
if ($btl->info['team_win'] != -1) {
|
||||
$u->error = 'Использовать кольцо возможно только во время боя';
|
||||
} elseif ($btl->info['razdel'] != 5) {
|
||||
$u->error = 'Использование кольца возможно только в хаотичных поединках!';
|
||||
} elseif (ceil($u->info['tactic6']) < 5) {
|
||||
$u->error = 'Не хватает ' . (5 - ceil($u->info['tactic6'])) . ' <img width=8 height=8 src=//img.new-combats.tech/i/micro/hp.gif> для "Поглотить Кровь"';
|
||||
} else {
|
||||
if ($st['td_cast_data'] != date('d.m.Y')) {
|
||||
$st['td_cast_data'] = date('d.m.Y');
|
||||
$st['td_cast'] = 0;
|
||||
}
|
||||
|
||||
if ($st['td_cast'] > 5) {
|
||||
$u->error = 'Использование кольца возможно не более 6 раз в сутки!';
|
||||
} else {
|
||||
$bu = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `v1` = "priem" AND `v2` = "229" AND `delete` = "0" LIMIT 1'));
|
||||
|
||||
$st['td_cast']++;
|
||||
|
||||
$stimp = Helper\Conversion::arrayToDataString($st);
|
||||
mysql_query('UPDATE `items_users` SET `data` = "' . mysql_real_escape_string($stimp) . '" WHERE `id` = "' . $itm['id'] . '" LIMIT 1');
|
||||
|
||||
mysql_query('UPDATE `stats` SET `tactic6` = `tactic6` - 5 WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
|
||||
$u->info['tactic6'] -= 5;
|
||||
|
||||
//\User\ItemsModel::addItem(3136,$u->info['id'],'|sudba='.$u->info['login']);
|
||||
|
||||
//Если эффект есть, тогда добавляем к нему +1 каст (Максимум 6)
|
||||
if (isset($bu['id'])) {
|
||||
if ($bu['x'] < 6) {
|
||||
mysql_query('UPDATE `eff_users` SET `x` = `x` + 1 WHERE `id` = "' . $bu['id'] . '" LIMIT 1');
|
||||
}
|
||||
} else {
|
||||
$ins = mysql_query('INSERT INTO `eff_users` (`file_finish`,`hod`,`v2`,`img2`,`id_eff`,`uid`,`name`,`data`,`overType`,`timeUse`,`v1`) VALUES
|
||||
("bloodring2_end","-1",229,"invoke_create_bloodstone.gif",22,"' . $u->info['id'] . '","Поглотить Кровь","","30","77","priem")');
|
||||
}
|
||||
|
||||
$u->error = 'Вы успешно использовали заклинание "Поглотить Кровь"<br>В случаи победы Вы получите "Кровавый Рубин"';
|
||||
|
||||
//Лог боя
|
||||
$lastHOD = mysql_fetch_array(mysql_query('SELECT * FROM `battle_logs` WHERE `battle` = "' . $u->info['battle'] . '" ORDER BY `id_hod` DESC LIMIT 1'));
|
||||
$id_hod = $lastHOD['id_hod'];
|
||||
if ($lastHOD['type'] != 6) {
|
||||
$id_hod++;
|
||||
}
|
||||
$txt = '<font color=#006699>' . $txt . '</font>';
|
||||
if ($u->info['sex'] == 1) {
|
||||
$txt = '{u1} применила заклинание "<b>Поглотить Кровь</b>".';
|
||||
} else {
|
||||
$txt = '{u1} применил заклинание "<b>Поглотить Кровь</b>".';
|
||||
}
|
||||
mysql_query('INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . time() . '","' . $u->info['battle'] . '","' . ($id_hod) . '","{tm1} ' . $txt . '","login1=' . $u->info['login'] . '||t1=' . $u->info['team'] . '||time1=' . time() . '","","","","","6")');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@ -1,28 +0,0 @@
|
||||
<?php
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
if ($ple['file_finish'] == 'bloodring2_end' && $this->users[$i]['team'] == $this->info['team_win']) {
|
||||
if ($this->info['razdel'] == 5) {
|
||||
$i1k = 0;
|
||||
if ($ple['x'] > 6) {
|
||||
$ple['x'] = 6;
|
||||
}
|
||||
while ($i1k < $ple['x']) {
|
||||
\User\ItemsModel::addItem(3136, $this->users[$i]['id'], '|sudba=' . $this->users[$i]['login']);
|
||||
$i1k++;
|
||||
}
|
||||
if ($ple['x'] > 1) {
|
||||
$ple['xz'] = ' (x' . $ple['x'] . ')';
|
||||
} else {
|
||||
$ple['xz'] = '';
|
||||
}
|
||||
|
||||
$cmsg = new ChatMessage();
|
||||
$cmsg->setCity($this->users[$i]['city']);
|
||||
$cmsg->setTo($this->users[$i]['login']);
|
||||
$cmsg->setText("Вы получили предмет "<b>Кровавый Рубин</b>{$ple['xz']}".");
|
||||
$cmsg->setType(6);
|
||||
(new Chat())->sendMsg($cmsg);
|
||||
}
|
||||
}
|
@ -95,7 +95,7 @@ if(isset($hod))
|
||||
if($this->minMana($eff['user_use'],$minmp,4)==false)
|
||||
{
|
||||
//снимаем эффект, мана закончилась
|
||||
$btl->delPriem($eff,$btl->users[$btl->uids[$eff['uid']]],2);
|
||||
$btl->delPriem($eff, $btl->users[$btl->uids[$eff['uid']]], 2);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
@ -236,7 +236,7 @@ if(isset($hod))
|
||||
if($dell) {
|
||||
$dell['priem']['id']=$dell['id'];
|
||||
//if($dell['x']==1){
|
||||
$btl->delPriem($dell,$u->info,99);
|
||||
$btl->delPriem($dell, $u->info, 99);
|
||||
/*}else{
|
||||
$i=0;
|
||||
$e = explode('|',$dell['data']);
|
||||
|
@ -53,7 +53,7 @@ if(isset($hod))
|
||||
if($this->minMana($eff['user_use'],$minmp,1)==false)
|
||||
{
|
||||
//снимаем эффект, мана закончилась
|
||||
$btl->delPriem($eff,$btl->users[$btl->uids[$eff['uid']]],2);
|
||||
$btl->delPriem($eff, $btl->users[$btl->uids[$eff['uid']]], 2);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
@ -479,7 +479,7 @@ if(isset($hod))
|
||||
$pwi['priem'] = mysql_fetch_array(mysql_query('SELECT * FROM `priems` WHERE `id` = "26" LIMIT 1'));
|
||||
if(isset($pwi['id']))
|
||||
{
|
||||
$btl->delPriem($pwi,$btl->users[$btl->uids[$ue['id']]],2);
|
||||
$btl->delPriem($pwi, $btl->users[$btl->uids[$ue['id']]], 2);
|
||||
}
|
||||
$this->magicAtack($ue,$hpmin,1,$pl,$eff,2,$hpmxx[$pl['id']]);
|
||||
unset($pwx,$pwi,$hpmin,$hpmxx);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -217,7 +217,7 @@ if(isset($hod))
|
||||
if($this->minMana($eff['user_use'],$minmp,3)==false)
|
||||
{
|
||||
//снимаем эффект, мана закончилась
|
||||
$btl->delPriem($eff,$btl->users[$btl->uids[$eff['uid']]],2);
|
||||
$btl->delPriem($eff, $btl->users[$btl->uids[$eff['uid']]], 2);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
@ -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">';
|
||||
|
410
getbattle.php
410
getbattle.php
@ -7,233 +7,251 @@ 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
|
||||
$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
|
||||
|
||||
`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'];
|
||||
}
|
||||
if( $stats['mpNow'] > $stats['mpAll'] ) {
|
||||
$stats['mpNow'] = $stats['mpAll'];
|
||||
}
|
||||
if ($stats['hpNow'] > $stats['hpAll']) {
|
||||
$stats['hpNow'] = $stats['hpAll'];
|
||||
}
|
||||
if ($stats['mpNow'] > $stats['mpAll']) {
|
||||
$stats['mpNow'] = $stats['mpAll'];
|
||||
}
|
||||
|
||||
//Получаем данные о поединке
|
||||
$r = '';
|
||||
//Получаем данные о поединке
|
||||
$r = '';
|
||||
|
||||
//Проверяем размен с текущим противником
|
||||
$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');
|
||||
while( $pl = mysql_fetch_array($sp) ) {
|
||||
$rd .= ',['.$pl['id'].','.$pl['uid1'].','.$pl['uid2'].','.($pl['time']-time()+$bt['timeout']).']';
|
||||
//
|
||||
if( $pl['uid1'] == $user['id'] && $bot_go == false ) {
|
||||
$bot_test = mysql_fetch_array(mysql_query('SELECT `id` FROM `stats` WHERE `id` = "'.$pl['uid2'].'" LIMIT 1'));
|
||||
if(isset($bot_test['id'])) {
|
||||
$bot_go = true;
|
||||
}
|
||||
}
|
||||
//
|
||||
}
|
||||
$rd = ltrim($rd,',');
|
||||
$r .= ',"act":['.$rd.']';
|
||||
unset($sp,$pl,$rd);
|
||||
//Проверяем размен с текущим противником
|
||||
$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'
|
||||
);
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
$rd .= ',[' . $pl['id'] . ',' . $pl['uid1'] . ',' . $pl['uid2'] . ',' . ($pl['time'] - time() + $bt['timeout']) . ']';
|
||||
//
|
||||
if ($pl['uid1'] == $user['id'] && $bot_go == false) {
|
||||
$bot_test = mysql_fetch_array(mysql_query('SELECT `id` FROM `stats` WHERE `id` = "' . $pl['uid2'] . '" LIMIT 1'));
|
||||
if (isset($bot_test['id'])) {
|
||||
$bot_go = true;
|
||||
}
|
||||
}
|
||||
//
|
||||
}
|
||||
$rd = ltrim($rd, ',');
|
||||
$r .= ',"act":[' . $rd . ']';
|
||||
unset($sp, $pl, $rd);
|
||||
|
||||
//Удары ботов
|
||||
if( $bot_go == true ) {
|
||||
$error = 'Обычное обновление!';
|
||||
}
|
||||
//Удары ботов
|
||||
if ($bot_go == true) {
|
||||
$error = 'Обычное обновление!';
|
||||
}
|
||||
|
||||
if(isset($_GET['global'])) {
|
||||
if (isset($_GET['global'])) {
|
||||
$btl = new \Model\BattleModel($user['battle']);
|
||||
$bt = $btl->battleArray;
|
||||
|
||||
$bt = mysql_fetch_array(mysql_query('SELECT `id`,`timeout`,`hod` FROM `battle` WHERE `id` = "'.$user['battle'].'" LIMIT 1'));
|
||||
if(isset($bt['id'])) {
|
||||
if (isset($bt['id'])) {
|
||||
|
||||
//Получение инф. о пользователях в бою
|
||||
$rd = '';
|
||||
$sp = mysql_query('SELECT `id`,`login`,`level`,`align`,`clan` FROM `users` WHERE `battle` = "'.$bt['id'].'"');
|
||||
while( $pl = mysql_fetch_array($sp) ) {
|
||||
$st = mysql_fetch_array(mysql_query('SELECT `hpNow`,`mpNow`,`hpAll`,`mpAll`,`team` FROM `stats` WHERE `id` = "'.$pl['id'].'" LIMIT 1'));
|
||||
$rd .= '['.(0+$pl['id']).','.(0+$st['hpNow']).','.(0+$st['mpNow']).','.(0+$st['hpAll']).','.(0+$st['mpAll']).'],';
|
||||
}
|
||||
$rd = rtrim($rd,',');
|
||||
$r .= ',"u":['.$rd.']';
|
||||
//Получение инф. о пользователях в бою
|
||||
$rd = '';
|
||||
$sp = mysql_query('SELECT `id`,`login`,`level`,`align`,`clan` FROM `users` WHERE `battle` = "' . $bt['id'] . '"');
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
$st = mysql_fetch_array(mysql_query('SELECT `hpNow`,`mpNow`,`hpAll`,`mpAll`,`team` FROM `stats` WHERE `id` = "' . $pl['id'] . '" LIMIT 1'));
|
||||
$rd .= '[' . (0 + $pl['id']) . ',' . (0 + $st['hpNow']) . ',' . (0 + $st['mpNow']) . ',' . (0 + $st['hpAll']) . ',' . (0 + $st['mpAll']) . '],';
|
||||
}
|
||||
$rd = rtrim($rd, ',');
|
||||
$r .= ',"u":[' . $rd . ']';
|
||||
|
||||
}else{
|
||||
$error = 'Поединок не найден...';
|
||||
}
|
||||
} else {
|
||||
$error = 'Поединок не найден...';
|
||||
}
|
||||
|
||||
//Эффекты текущего персонажа и противника
|
||||
$r .= ',"eff_me":[';
|
||||
$i = 0;
|
||||
$sp = mysql_query('SELECT * FROM `eff_users` WHERE ( `uid` = "'.$user['id'].'" OR `uid` = "'.$stats['enemy'].'" ) AND `delete` = "0" ORDER BY `id` DESC');
|
||||
while( $pl = mysql_fetch_array($sp) ) {
|
||||
if( $pl['v1'] == 'priem' ) {
|
||||
$prm = mysql_fetch_array(mysql_query('SELECT * FROM `priems` WHERE `id` = "'.$pl['v2'].'" LIMIT 1'));
|
||||
if( $user['id'] == $pl['uid'] || $prm['neg'] > 0 ) {
|
||||
if( $i == 0 ) {
|
||||
$i++;
|
||||
}else{
|
||||
$r .= ',';
|
||||
}
|
||||
$r .= '['.$pl['uid'].','.$pl['id'].','.$pl['id_eff'].',"'.$pl['name'].'","'.$prm['img'].'.gif","14"]';
|
||||
}
|
||||
}else{
|
||||
if( $user['id'] == $pl['uid'] ) {
|
||||
if( $i == 0 ) {
|
||||
$i++;
|
||||
}else{
|
||||
$r .= ',';
|
||||
}
|
||||
$eff = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "'.$pl['id_eff'].'" LIMIT 1'));
|
||||
//Эффекты текущего персонажа и противника
|
||||
$r .= ',"eff_me":[';
|
||||
$i = 0;
|
||||
$sp = mysql_query('SELECT * FROM `eff_users` WHERE ( `uid` = "' . $user['id'] . '" OR `uid` = "' . $stats['enemy'] . '" ) AND `delete` = "0" ORDER BY `id` DESC');
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
if ($pl['v1'] == 'priem') {
|
||||
$prm = mysql_fetch_array(mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $pl['v2'] . '" LIMIT 1'));
|
||||
if ($user['id'] == $pl['uid'] || $prm['neg'] > 0) {
|
||||
if ($i == 0) {
|
||||
$i++;
|
||||
} else {
|
||||
$r .= ',';
|
||||
}
|
||||
$r .= '[' . $pl['uid'] . ',' . $pl['id'] . ',' . $pl['id_eff'] . ',"' . $pl['name'] . '","' . $prm['img'] . '.gif","14"]';
|
||||
}
|
||||
} else {
|
||||
if ($user['id'] == $pl['uid']) {
|
||||
if ($i == 0) {
|
||||
$i++;
|
||||
} else {
|
||||
$r .= ',';
|
||||
}
|
||||
$eff = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "' . $pl['id_eff'] . '" LIMIT 1'));
|
||||
|
||||
$r .= '['.$pl['uid'].','.$pl['id'].','.$pl['id_eff'].',"'.$pl['name'].'","'.$eff['img'].'","'.$eff['type1'].'"]';
|
||||
}
|
||||
}
|
||||
}
|
||||
$r .= ']';
|
||||
//
|
||||
$r .= '[' . $pl['uid'] . ',' . $pl['id'] . ',' . $pl['id_eff'] . ',"' . $pl['name'] . '","' . $eff['img'] . '","' . $eff['type1'] . '"]';
|
||||
}
|
||||
}
|
||||
}
|
||||
$r .= ']';
|
||||
//
|
||||
|
||||
}elseif(isset($_GET['loading'])) {
|
||||
//Загрузда дополнительных данных
|
||||
if(isset($_GET['uload']) && $_GET['uload'] != '0') {
|
||||
//Загрузка пользователей
|
||||
$ex = explode(',',$_GET['uload']);
|
||||
$i = 1;
|
||||
$rd = '';
|
||||
while( $i < count($ex) ) {
|
||||
if( $ex[$i] > 0 ) {
|
||||
//
|
||||
$us = mysql_fetch_array(mysql_query('SELECT
|
||||
} elseif (isset($_GET['loading'])) {
|
||||
//Загрузда дополнительных данных
|
||||
if (isset($_GET['uload']) && $_GET['uload'] != '0') {
|
||||
//Загрузка пользователей
|
||||
$ex = explode(',', $_GET['uload']);
|
||||
$i = 1;
|
||||
$rd = '';
|
||||
while ($i < count($ex)) {
|
||||
if ($ex[$i] > 0) {
|
||||
//
|
||||
$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'));
|
||||
if(isset($us['id'])) {
|
||||
$ss = mysql_fetch_array(mysql_query('SELECT
|
||||
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
|
||||
|
||||
`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'];
|
||||
}
|
||||
if ($ss['hpNow'] > $ss['hpAll']) {
|
||||
$ss['hpNow'] = $ss['hpAll'];
|
||||
}
|
||||
|
||||
if( $ss['mpNow'] > $ss['mpAll'] ) {
|
||||
$ss['mpNow'] = $ss['mpAll'];
|
||||
}
|
||||
if ($ss['mpNow'] > $ss['mpAll']) {
|
||||
$ss['mpNow'] = $ss['mpAll'];
|
||||
}
|
||||
|
||||
$rd .= ',{';
|
||||
//
|
||||
$rd .= ' "id":'.( 0 + (int)$ex[$i] );
|
||||
$rd .= ',"login":"'.$us['login'].'"';
|
||||
$rd .= ',"level":"'.$us['level'].'"';
|
||||
$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 .= ',"obraz":"'.$us['obraz'].'"';
|
||||
//
|
||||
//Предметы
|
||||
$ri = '';
|
||||
$sp = mysql_query('SELECT `id`,`item_id`,`inOdet`,`magic_inc` FROM `items_users` WHERE `uid` = "'.$us['id'].'" AND `delete` = 0 AND `inOdet` > 0');
|
||||
while( $pl = mysql_fetch_array($sp) ) {
|
||||
//
|
||||
$im = mysql_fetch_array(mysql_query('SELECT `id`,`name`,`img`,`magic_inci` FROM `items_main` WHERE `id` = "'.$pl['item_id'].'" LIMIT 1'));
|
||||
//
|
||||
$ccv = '';
|
||||
if( $pl['magic_inc'] == '' ) {
|
||||
$pl['magic_inc'] = $im['magic_inci'];
|
||||
}
|
||||
if( $pl['magic_inc'] != '' ) {
|
||||
$mgi = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "'.$pl['magic_inc'].'" AND `type1` = "12345" LIMIT 1'));
|
||||
if(isset($mgi['id2'])) {
|
||||
$ccv .= 'top.useMagicBattle(\''.$mgi['mname'].'\','.$pl['id'].',\''.$mgi['img'].'\',1,2);';
|
||||
}
|
||||
}
|
||||
//
|
||||
$ri .= ',['.$pl['id'].','.$pl['item_id'].','.$pl['inOdet'].',"'.$im['name'].'","'.$im['img'].'","'.$ccv.'"]';
|
||||
}
|
||||
$ri = ltrim($ri,',');
|
||||
$rd .= ',"itm":['.$ri.']';
|
||||
//
|
||||
//Эффекты (не требуется кэширование)
|
||||
$ri = '';
|
||||
$rd .= ',{';
|
||||
//
|
||||
$rd .= ' "id":' . (0 + (int)$ex[$i]);
|
||||
$rd .= ',"login":"' . $us['login'] . '"';
|
||||
$rd .= ',"level":"' . $us['level'] . '"';
|
||||
$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 .= ',"obraz":"' . $us['obraz'] . '"';
|
||||
//
|
||||
//Предметы
|
||||
$ri = '';
|
||||
$sp = mysql_query('SELECT `id`,`item_id`,`inOdet`,`magic_inc` FROM `items_users` WHERE `uid` = "' . $us['id'] . '" AND `delete` = 0 AND `inOdet` > 0');
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
//
|
||||
$im = mysql_fetch_array(mysql_query('SELECT `id`,`name`,`img`,`magic_inci` FROM `items_main` WHERE `id` = "' . $pl['item_id'] . '" LIMIT 1'));
|
||||
//
|
||||
$ccv = '';
|
||||
if ($pl['magic_inc'] == '') {
|
||||
$pl['magic_inc'] = $im['magic_inci'];
|
||||
}
|
||||
if ($pl['magic_inc'] != '') {
|
||||
$mgi = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "' . $pl['magic_inc'] . '" AND `type1` = "12345" LIMIT 1'));
|
||||
if (isset($mgi['id2'])) {
|
||||
$ccv .= 'top.useMagicBattle(\'' . $mgi['mname'] . '\',' . $pl['id'] . ',\'' . $mgi['img'] . '\',1,2);';
|
||||
}
|
||||
}
|
||||
//
|
||||
$ri .= ',[' . $pl['id'] . ',' . $pl['item_id'] . ',' . $pl['inOdet'] . ',"' . $im['name'] . '","' . $im['img'] . '","' . $ccv . '"]';
|
||||
}
|
||||
$ri = ltrim($ri, ',');
|
||||
$rd .= ',"itm":[' . $ri . ']';
|
||||
//
|
||||
//Эффекты (не требуется кэширование)
|
||||
$ri = '';
|
||||
|
||||
$ri = ltrim($ri,',');
|
||||
$rd .= ',"eff":['.$ri.']';
|
||||
//
|
||||
//
|
||||
$rd .= ' }';
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$rd = ltrim($rd,',');
|
||||
$r .= ',"ul":['.$rd.']';
|
||||
unset($rd,$ri);
|
||||
//
|
||||
}
|
||||
//
|
||||
if(isset($_GET['pload']) && $_GET['pload'] != '0') {
|
||||
//Загрузка приемов
|
||||
$ex = explode(',',$_GET['pload']);
|
||||
$i = 1;
|
||||
$rd = '';
|
||||
while( $i < count($ex) ) {
|
||||
if( $ex[$i] > 0 ) {
|
||||
//
|
||||
$pl = mysql_fetch_array(mysql_query('SELECT
|
||||
$ri = ltrim($ri, ',');
|
||||
$rd .= ',"eff":[' . $ri . ']';
|
||||
//
|
||||
//
|
||||
$rd .= ' }';
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$rd = ltrim($rd, ',');
|
||||
$r .= ',"ul":[' . $rd . ']';
|
||||
unset($rd, $ri);
|
||||
//
|
||||
}
|
||||
//
|
||||
if (isset($_GET['pload']) && $_GET['pload'] != '0') {
|
||||
//Загрузка приемов
|
||||
$ex = explode(',', $_GET['pload']);
|
||||
$i = 1;
|
||||
$rd = '';
|
||||
while ($i < count($ex)) {
|
||||
if ($ex[$i] > 0) {
|
||||
//
|
||||
$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'));
|
||||
if(isset($pl['id'])) {
|
||||
//
|
||||
$rd .= ',{';
|
||||
//
|
||||
$rd .= ' "id":'.( 0 + (int)$ex[$i] );
|
||||
$rd .= ',"name":"'.$pl['name'].'"';
|
||||
$rd .= ',"img":"'.$pl['img'].'"';
|
||||
$rd .= ',"type":"'.$pl['type'].'"';
|
||||
$rd .= ',"onUser":"'.$pl['onUser'].'"';
|
||||
$rd .= ',"team":"'.$pl['team'].'"';
|
||||
//
|
||||
$rd .= ' }';
|
||||
//
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$rd = ltrim($rd,',');
|
||||
$r .= ',"pl":['.$rd.']';
|
||||
unset($sp,$pl,$rd);
|
||||
//
|
||||
}
|
||||
//
|
||||
}
|
||||
FROM `priems` WHERE `id` = "' . mysql_real_escape_string($ex[$i]) . '" LIMIT 1'
|
||||
)
|
||||
);
|
||||
if (isset($pl['id'])) {
|
||||
//
|
||||
$rd .= ',{';
|
||||
//
|
||||
$rd .= ' "id":' . (0 + (int)$ex[$i]);
|
||||
$rd .= ',"name":"' . $pl['name'] . '"';
|
||||
$rd .= ',"img":"' . $pl['img'] . '"';
|
||||
$rd .= ',"type":"' . $pl['type'] . '"';
|
||||
$rd .= ',"onUser":"' . $pl['onUser'] . '"';
|
||||
$rd .= ',"team":"' . $pl['team'] . '"';
|
||||
//
|
||||
$rd .= ' }';
|
||||
//
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$rd = ltrim($rd, ',');
|
||||
$r .= ',"pl":[' . $rd . ']';
|
||||
unset($sp, $pl, $rd);
|
||||
//
|
||||
}
|
||||
//
|
||||
}
|
||||
|
||||
}else{
|
||||
$error = 'Пользователь в бою не найден...';
|
||||
} else {
|
||||
$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']]);
|
||||
@ -97,7 +95,7 @@ if (!isset($btl->info['id'])) {
|
||||
}
|
||||
} else {
|
||||
//получаем массив с игроками в бою
|
||||
$btl->teamsTake();
|
||||
$btl->teamsTake($u);
|
||||
|
||||
if (isset($_POST['useitem']) && $btl->testUsersLive()) {
|
||||
$magic->useItems((int)$_POST['useitem']);
|
||||
|
@ -82,7 +82,7 @@ if (!isset($btl->info['id'])) {
|
||||
}
|
||||
} else {
|
||||
//получаем массив с игроками в бою
|
||||
$btl->teamsTake();
|
||||
$btl->teamsTake($u);
|
||||
|
||||
if (isset($_POST['useitem']) && $btl->testUsersLive() == true) {
|
||||
$magic->useItems((int)$_POST['useitem']);
|
||||
|
@ -79,7 +79,7 @@ if (isset($_POST['atack'], $_POST['block']) || (isset($_POST['id']) && $_POST['i
|
||||
}
|
||||
} else {
|
||||
//получаем массив с игроками в бою
|
||||
$btl->teamsTake();
|
||||
$btl->teamsTake($u);
|
||||
|
||||
if (isset($_POST['useitem']) && $btl->testUsersLive() == true) {
|
||||
$magic->useItems((int)$_POST['useitem']);
|
||||
|
@ -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(
|
||||
@ -115,7 +114,7 @@ if (isset($CRON_CORE) && (isset($_POST['atack'], $_POST['block']) || (isset($_PO
|
||||
}
|
||||
} else {
|
||||
//получаем массив с игроками в бою
|
||||
$btl->teamsTake();
|
||||
$btl->teamsTake($u);
|
||||
|
||||
if (isset($_POST['useitem'])) {
|
||||
$magic->useItems((int)$_POST['useitem']);
|
||||
|
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,416 +1,429 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
die();
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
//id Новогоднего подарка
|
||||
$pidid = 4008;
|
||||
|
||||
$dy = 1;
|
||||
if((date('n',time())==2 && date('j',time())<=14))
|
||||
{
|
||||
$dy = 0;
|
||||
if ((date('n', time()) == 2 && date('j', time()) <= 14)) {
|
||||
$dy = 0;
|
||||
}
|
||||
$dt = date('Y',time())+$dy;
|
||||
$dt = date('Y', time()) + $dy;
|
||||
$dt = 2023;
|
||||
|
||||
if($u->room['file']=='elka')
|
||||
{
|
||||
|
||||
if(isset($_GET['elka_shar'])&& isset($_GET['shar_name'])) //Украшение Ёлки
|
||||
{
|
||||
$itd = mysql_fetch_array(mysql_query(' SELECT * FROM `items_users` WHERE `item_id` > 2723 AND `item_id` < 2741 AND `uid`= "'.$u->info['id'].'" AND `delete` = 0 AND `id`= "'.$_GET['elka_shar'].'" LIMIT 1 '));
|
||||
if (isset($itd['id'])){
|
||||
$itdu=mysql_query('UPDATE `items_users` SET `delete` ="'.time().'" WHERE `id` ="'.$_GET['elka_shar'].'" LIMIT 1 ');
|
||||
if (isset($itdu))
|
||||
{
|
||||
//eff Благословение Ёлки X
|
||||
$effe = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid`= "'.$u->info['id'].'" AND `delete` = 0 AND `id_eff`= 477 LIMIT 1'));
|
||||
if (isset($effe['id']))
|
||||
{
|
||||
$tdata=str_replace("add_hpAll=", "", $effe['data']);
|
||||
$tdata=$tdata+5;
|
||||
if ($tdata>500){$tdata=500;}
|
||||
$newdata='add_hpAll='.$tdata;
|
||||
$newname='Благословение Ёлки x'.($tdata/5);
|
||||
|
||||
|
||||
|
||||
$effeadd=mysql_query('UPDATE `eff_users` SET `name` = "'.$newname.'",`data`="'.$newdata.'", `timeUse` = "'.time().'"WHERE `id` ="'.$effe['id'].'" ');
|
||||
|
||||
if (isset($effeadd))
|
||||
{
|
||||
echo "Вы получили <b><font color=red>Благословение Ёлки x".round($tdata/5)."</font></b> " ;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$effeadd=mysql_query('INSERT INTO `eff_users`
|
||||
(`id`,`id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`)
|
||||
VALUES
|
||||
(NULL, "477", "'.$u->info['id'].'", "Благословение Ёлки x1", "add_hpAll=5", "110", "'.time().'", "0", "", "0", "0", "0", "", "1", "-1", "0", "0", "0", "", "0", "0", "0", "0", "0")');
|
||||
|
||||
if (isset($effeadd))
|
||||
{
|
||||
echo "Вы получили <b><font color=red>Благословение Ёлки x1</font></b> " ;
|
||||
}
|
||||
}
|
||||
|
||||
echo "Использовал: <b><font color=red>".$_GET['shar_name']."</font><b>" ;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<b><font color=red>Ошибка</font></b>" ;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d') <= 8)))
|
||||
{
|
||||
//получаем свой новогодний подарок за текущий год addItem($id,$uid)
|
||||
$smt = $u->testAction('`uid` = "'.$u->info['id'].'" AND `vars` = "take_gift_'.$dt.'" LIMIT 1',1);
|
||||
if(!isset($smt['id']))
|
||||
{
|
||||
$pid = \User\ItemsModel::addItem($pidid,$u->info['id']);
|
||||
if($pid>0)
|
||||
{
|
||||
mysql_query('UPDATE `items_users` SET `gift` = "Администрация",`gtxt1` = "Поздравляем Вас с Новым Годом!" WHERE `id` = "'.$pid.'" AND `uid` = "'.$u->info['id'].'" LIMIT 1');
|
||||
$u->addAction(time(),'take_gift_'.$dt.'',$u->info['city']);
|
||||
echo '<font color=red>Предмет находится у Вас в инвентаре, в разделе "прочее"</font>';
|
||||
}else{
|
||||
echo '<font color=red>Не удалось получить подарок...</font>';
|
||||
}
|
||||
}else{
|
||||
echo '<font color=red>Вы уже получили свой подарок ;)</font>';
|
||||
}
|
||||
}elseif(isset($_GET['del']))
|
||||
{
|
||||
if($u->info['admin']>0 || ($u->info['align']>1 && $u->info['align']<2) || ($u->info['align']>3 && $u->info['align']<4))
|
||||
{
|
||||
if($u->info['admin']==0)
|
||||
{
|
||||
$pInfo = ''.$u->info['align'].'|'.$u->info['clan'].'|'.$u->info['login'].'|'.$u->info['level'].'|'.$u->info['cityreg'].'';
|
||||
}else{
|
||||
$pInfo = '1';
|
||||
}
|
||||
mysql_query("UPDATE `elka` SET `delete`='".$pInfo."' WHERE `id`='".mysql_real_escape_string($_GET['del'])."'");
|
||||
}
|
||||
}elseif(isset($_GET['use_cup']))
|
||||
{
|
||||
$smt = $u->testAction('`uid` = "'.$u->info['id'].'" AND `time` > '.(time()-600).' AND `vars` = "use_cupNewYear" LIMIT 1',1);
|
||||
if(!isset($smt['id']))
|
||||
{
|
||||
$u->addAction(time(),'use_cupNewYear','');
|
||||
mysql_query('UPDATE `stats` SET `hpNow` = "'.$u->stats['hpAll'].'",`mpNow` = "'.$u->stats['mpAll'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
|
||||
echo '<font color=red>Успешно использован эликсир "Полное восстановление"</font>';
|
||||
}
|
||||
}elseif(isset($_POST['message']))
|
||||
{
|
||||
$_POST['message'] = htmlspecialchars($_POST['message'],NULL);
|
||||
if($_POST['message']!='')
|
||||
{
|
||||
$dy = 1;
|
||||
if((date('n',time())==1 && date('j',time())<=15))
|
||||
{
|
||||
$dy = 0;
|
||||
}
|
||||
$u->info['ET'] = $u->testAction('`uid` = "'.$u->info['id'].'" AND `time` > '.(time()-600).' AND `vars` = "send_elka" LIMIT 1',1);
|
||||
if(isset($u->info['ET']['id']))
|
||||
{
|
||||
echo '<font color=red>Оставлять надписи на стволе ёлки можно не чаще одного раза в 10 минут</font>';
|
||||
}else{
|
||||
$pInfo = ''.$u->info['align'].'|'.$u->info['clan'].'|'.$u->info['login'].'|'.$u->info['level'].'|'.$u->info['cityreg'].'|'.$u->info['id'].'';
|
||||
mysql_query("INSERT INTO `elka` (`year`,`time`,`pers`,`text`,`city`) VALUES (".(date('Y',time())+$dy).",".time().",'".$pInfo."','".mysql_real_escape_string($_POST['message'])."','".$u->info['city']."'); ");
|
||||
$u->addAction(time(),'send_elka','');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<style type="text/css">
|
||||
|
||||
.pH3 { COLOR: #8f0000; FONT-FAMILY: Arial; FONT-SIZE: 12pt; FONT-WEIGHT: bold; }
|
||||
.class_ {
|
||||
font-weight: bold;
|
||||
color: #C5C5C5;
|
||||
cursor:pointer;
|
||||
}
|
||||
.class_st {
|
||||
font-weight: bold;
|
||||
color: #659BA3;
|
||||
cursor:pointer;
|
||||
}
|
||||
.class__ {
|
||||
font-weight: bold;
|
||||
color: #FFFFFF;
|
||||
cursor:pointer;
|
||||
background-color: #659BA3;
|
||||
}
|
||||
.class__st {
|
||||
font-weight: bold;
|
||||
color: #FFFFFF;
|
||||
cursor:pointer;
|
||||
background-color: #659BA3;
|
||||
font-size: 10px;
|
||||
}
|
||||
.class_old {
|
||||
font-weight: bold;
|
||||
color: #919191;
|
||||
cursor:pointer;
|
||||
}
|
||||
.class__old {
|
||||
font-weight: bold;
|
||||
color: #FFFFFF;
|
||||
cursor:pointer;
|
||||
background-color: #838383;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
</style>
|
||||
<div align="right"><?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?></div>
|
||||
<div id="hint3" style="visibility:hidden"></div>
|
||||
<TABLE width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr><td valign="top"><div align="center" class="pH3">Новогодняя елка <?php
|
||||
echo $dt; ?>!</div>
|
||||
<br />
|
||||
<!-- Подарки -->
|
||||
<?php
|
||||
$sg = 1;
|
||||
//Если есть подарки
|
||||
if((date('n',time())==12 || date('n',time())<=2) && $sg==1)
|
||||
{
|
||||
?>
|
||||
<div style="padding-left:10px;">
|
||||
<span class="pH3"><small>Подарки:</small></span>
|
||||
<div>
|
||||
<?php
|
||||
$smt = $u->testAction('`uid` = "'.$u->info['id'].'" AND `time` > '.(time()-600).' AND `vars` = "use_cupNewYear" LIMIT 1',1);
|
||||
?>
|
||||
<a href="?use_cup=<?= $code; ?>" <?php if(isset($smt['id'])){ echo 'onClick="alert(\'Использовать "Чаша жизненных сил" можно не чаще одного раза в 10 минут\');return false;"'; } ?> /><img src="//img.new-combats.tech/cup2012.gif" style="padding:10px;<?php if(isset($smt['id'])){ echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;'; } ?>" title="Выпить из`Чаши жизненных сил`"></a>
|
||||
<?php
|
||||
if( date('m') == 12 || (date('m') == 1 && date('d') <= 8)) {
|
||||
$pd = $u->testAction('`uid` = "'.$u->info['id'].'" AND `time` > '.(time()-600).' AND `vars` = "take_gift'.$dt.'" LIMIT 1',1);
|
||||
?>
|
||||
<a href="?take_gift=<?= $code; ?>" <?php if(isset($pd['id'])){ echo 'onClick="return false;"'; } ?> /><img src="//img.new-combats.tech/i/items/<?= 'podarok'.($dt-1); ?>.gif" style="padding:10px;<?php if(isset($pd['id'])){ echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;'; } ?>" title="Взять `Новогодний подарок 2023`"></a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<?php
|
||||
}
|
||||
//ТУТ Елка
|
||||
// if($u->info['admin']>0)
|
||||
// {
|
||||
?>
|
||||
<div style="padding-left:10px;">
|
||||
<span class="pH3"><small>Наряжаем Ёлку:</small></span>
|
||||
<div>
|
||||
<?php
|
||||
$it = mysql_fetch_array(mysql_query(' SELECT * FROM `items_users` WHERE `item_id` > 2723 AND `item_id` < 2741 AND `uid`= "'.$u->info['id'].'" AND `delete` = 0 LIMIT 1 '));
|
||||
if (isset($it['item_id']))
|
||||
{
|
||||
$itt = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$it['item_id'].'" LIMIT 1'));
|
||||
?>
|
||||
<a href="?elka_shar=<?echo $it['id'];?>&shar_name=<?echo $itt['name'];?>" <?php if(!isset($itt['id'])){ echo 'onClick="return false;"'; } ?> /><img src="//img.new-combats.tech/i/items/<?= $itt['img']; ?>" style="padding:10px;<?php if(!isset($it['id'])){ echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;'; } ?>" title="Повесить `Шар`"></a>
|
||||
<?}
|
||||
else { echo "У Вас нет шаров для украшения Ёлки!";}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<?php
|
||||
// }
|
||||
if(isset($_GET['page']))
|
||||
{
|
||||
$fpage = round($_GET['page']);
|
||||
if($fpage<=0)
|
||||
{
|
||||
$fpage = 1;
|
||||
}
|
||||
}else{
|
||||
$fpage = 1;
|
||||
}
|
||||
$limit1 = ($fpage-1)*20+$fpage-1;
|
||||
$limit2 = 21;
|
||||
|
||||
$i = mysql_fetch_array(mysql_query('SELECT COUNT(`year`) FROM `elka` WHERE `year` = "'.$dt.'" AND (`delete` = "0" OR '.$u->info['admin'].' > 0) ORDER BY `id` DESC'));
|
||||
$i = $i[0];
|
||||
$d = ceil($i/21);
|
||||
if($i>0)
|
||||
{
|
||||
if($d<13)
|
||||
{
|
||||
$j=0;
|
||||
$pagesN = '';
|
||||
while($i>=0)
|
||||
{
|
||||
$i -= 21;
|
||||
if($i!=0)
|
||||
{
|
||||
$j++;
|
||||
$r2 = '';
|
||||
if($j<=$d)
|
||||
{
|
||||
if(isset($r))
|
||||
{
|
||||
$r2 = '&r='.$r;
|
||||
}
|
||||
$jt = $j;
|
||||
if($fpage==$j)
|
||||
{
|
||||
$jt = '<span class="number">'.$j.'</span>';
|
||||
}
|
||||
$pagesN .= ' <a href="?id='.$post['id'].'&d='.$_GET['d'].'&page='.$j.'" title="Перейти на страницу №'.$j.'">'.$jt.'</a> ';
|
||||
}
|
||||
}
|
||||
}
|
||||
$pages .= ' '.$pagesN.' ';
|
||||
}else{
|
||||
$j = $fpage-6;
|
||||
$i = 0;
|
||||
$pagesN = '';
|
||||
while($k<13)
|
||||
{
|
||||
if($j>0)
|
||||
{
|
||||
if($j<=$d)
|
||||
{
|
||||
$jt = $j;
|
||||
if($fpage==$j)
|
||||
{
|
||||
$jt = '<span class="number">'.$j.'</span>';
|
||||
}
|
||||
$pagesN .= ' <a href="?id='.$post['id'].'&d='.$_GET['d'].'&page='.$j.'" title="Перейти на страницу №'.$j.'">'.$jt.'</a> ';
|
||||
}
|
||||
$k++;
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
$prpage = $fpage-12;
|
||||
$nxpage = $fpage+12;
|
||||
if($prpage<=0)
|
||||
{
|
||||
$prpage = 1;
|
||||
}
|
||||
if($nxpage>$d)
|
||||
{
|
||||
$nxpage = $d;
|
||||
}
|
||||
$_GET['d'] = (int)$_GET['d'];
|
||||
if($fpage-7>0)
|
||||
{
|
||||
$pages .= '<a href="?id='.$post['id'].'&d='.$_GET['d'].'&page=1" title="Первая страница">«</a> <a href="?id='.$post['id'].'&d='.$_GET['d'].'&page='.$prpage.'" title="Показать предыдущие страницы">...</a> ';
|
||||
}
|
||||
$pages .= ' '.$pagesN.' ';
|
||||
if($fpage<$d-5)
|
||||
{
|
||||
$pages .= '<a href="?id='.$post['id'].'&d='.$_GET['d'].'&page='.$nxpage.'" title="Показать следующие страницы">...</a> <a href="?id='.$post['id'].'&d='.$_GET['d'].'&page='.$d.'" title="Последняя страница">»</a>';
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$pages = '';
|
||||
}
|
||||
?>
|
||||
<U>Посетители оставили надписи на стволе елки:</U> <?= $pages; ?><br>
|
||||
<div style="padding:5px;">
|
||||
<?php
|
||||
$sp = mysql_query('SELECT * FROM `elka` WHERE `year`="'.$dt.'" AND `city`="'.$u->info['city'].'" AND (`delete` = "0" OR '.$u->info['admin'].' > 0) ORDER BY `time` DESC LIMIT '.$limit1.','.$limit2.'');
|
||||
$page = floor((int)$_POST['page']);
|
||||
if($page<1){ $page = 1; }elseif($page>300){ $page==300; }
|
||||
while($pl = mysql_fetch_array($sp))
|
||||
{
|
||||
$prs = explode('|',$pl['pers']); $pers = '';
|
||||
if($prs[0]!=0)
|
||||
{
|
||||
$pers .= '<img src="//img.new-combats.tech/i/align/align'.$prs[0].'.gif">';
|
||||
}
|
||||
if($prs[1]!=0)
|
||||
{
|
||||
$clanPrs = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id`="'.$prs[1].'" LIMIT 1'));
|
||||
$pers .= '<img src="//img.new-combats.tech/i/clan/'.$clanPrs['name_mini'].'.gif">';
|
||||
}
|
||||
$pers .= '<b>'.$prs[2].'</b>['.$prs[3].']<a href="/info/'.$prs[5].'" title="Инф. о '.$prs[2].'" target="blank"><img src="//img.new-combats.tech/i/inf_'.$prs[4].'.gif"></a>';
|
||||
if($pl['delete']!='0')
|
||||
{
|
||||
if($pl['delete']=='1')
|
||||
{
|
||||
if($u->info['admin']>0)
|
||||
{
|
||||
$pl['text'] = '<font color=red><i>Сообщение стерто</i></font> <font color=grey><small>('.$pl['text'].')</small></font>';
|
||||
}else{
|
||||
$pl['text'] = '<font color=red><i>Сообщение стерто</i></font>';
|
||||
}
|
||||
}else{
|
||||
$prs = explode('|',$pl['delete']); $pers2 = '';
|
||||
if($prs[0]!=0)
|
||||
{
|
||||
$pers2 .= '<img src="//img.new-combats.tech/i/align/align'.$prs[0].'.gif">';
|
||||
}
|
||||
if($prs[1]!=0)
|
||||
{
|
||||
$clanPrs = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id`="'.$prs[1].'" LIMIT 1'));
|
||||
$pers2 .= '<img src="//img.new-combats.tech/i/clan/'.$clanPrs['img'].'.gif">';
|
||||
}
|
||||
$pers2 .= '<a href="javascript:top.toUser(\''.$prs[2].'\',\'private\');"><b>'.$prs[2].'</b></a>['.$prs[3].']<a href="/info/'.$prs[2].'" title="Инф. о '.$prs[2].'" target="blank"><img src="//img.new-combats.tech/i/inf_'.$prs[4].'.gif"></a>';
|
||||
|
||||
if($u->info['admin']>0 || ($u->info['align']>1 && $u->info['align']<2) || ($u->info['align']>3 && $u->info['align']<4))
|
||||
{
|
||||
$pl['text'] = '<i><font color=red>Сообщение стерто персонажем</font> '.$pers2.'</i> <font color=grey><small>('.$pl['text'].')</small></font>';
|
||||
}else{
|
||||
$pl['text'] = '<i><font color=red>Сообщение стерто персонажем</font> '.$pers2.'</i>';
|
||||
}
|
||||
}
|
||||
}
|
||||
if(($u->info['admin']>0 || ($u->info['align']>1 && $u->info['align']<2) || ($u->info['align']>3 && $u->info['align']<4)) && $pl['delete']=='0')
|
||||
{
|
||||
$dl = ' <a href="main.php?page='.$_POST['page'].'&del='.$pl['id'].'"><small>Стереть</small></a>';
|
||||
}else{
|
||||
$dl = '';
|
||||
}
|
||||
echo '<font class=date>'.date('d.m.Y H:i',$pl['time']).'</font> '.$pers.' - '.$pl['text'].''.$dl.'<BR>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
Страницы: <?= $pages; ?><br>
|
||||
<FORM method="post" action="main.php">
|
||||
Оставить сообщение: <INPUT type=text name=message maxlength=150 size=50> <INPUT type=submit name=addmessage value='Добавить'>
|
||||
</FORM>
|
||||
<td width="280" valign="top"><table cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="100%"> </td>
|
||||
<td><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr align="right" valign="top">
|
||||
<td><!-- -->
|
||||
<?= $goLis; ?>
|
||||
<!-- -->
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td nowrap="nowrap"><table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
|
||||
<tr>
|
||||
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7" /></td>
|
||||
<td bgcolor="#D3D3D3" nowrap="nowrap"><a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.9&rnd=<?= $code; ?>';" title="<?php thisInfRm('1.180.0.9',1); ?>">Центральная Площадь</a></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr> <tr>
|
||||
<td nowrap="nowrap"><table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
|
||||
<tr>
|
||||
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7" /></td>
|
||||
<td bgcolor="#D3D3D3" nowrap="nowrap"><div align="left"><a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.209&rnd=<?= $code; ?>';" title="<?php thisInfRm('1.180.0.209',1); ?>">Ледяная пещера</a></div></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
<center></center></td>
|
||||
</table>
|
||||
<div id="textgo" style="visibility:hidden;"></div>
|
||||
<?php
|
||||
if ($u->room['file'] != 'elka') {
|
||||
return;
|
||||
}
|
||||
if (isset($_GET['elka_shar']) && isset($_GET['shar_name'])) //Украшение Ёлки
|
||||
{
|
||||
$itd = mysql_fetch_array(
|
||||
mysql_query(' SELECT * FROM `items_users` WHERE `item_id` > 2723 AND `item_id` < 2741 AND `uid`= "' . $u->info['id'] . '" AND `delete` = 0 AND `id`= "' . $_GET['elka_shar'] . '" LIMIT 1 ')
|
||||
);
|
||||
if (isset($itd['id'])) {
|
||||
$itdu = mysql_query('UPDATE `items_users` SET `delete` ="' . time() . '" WHERE `id` ="' . $_GET['elka_shar'] . '" LIMIT 1 ');
|
||||
if (isset($itdu)) {
|
||||
//eff Благословение Ёлки X
|
||||
$effe = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid`= "' . $u->info['id'] . '" AND `delete` = 0 AND `id_eff`= 477 LIMIT 1'));
|
||||
if (isset($effe['id'])) {
|
||||
$tdata = str_replace("add_hpAll=", "", $effe['data']);
|
||||
$tdata = $tdata + 5;
|
||||
if ($tdata > 500) {
|
||||
$tdata = 500;
|
||||
}
|
||||
$newdata = 'add_hpAll=' . $tdata;
|
||||
$newname = 'Благословение Ёлки x' . ($tdata / 5);
|
||||
|
||||
$effeadd = mysql_query('UPDATE `eff_users` SET `name` = "' . $newname . '",`data`="' . $newdata . '", `timeUse` = "' . time() . '"WHERE `id` ="' . $effe['id'] . '" ');
|
||||
|
||||
if (isset($effeadd)) {
|
||||
echo "Вы получили <b><font color=red>Благословение Ёлки x" . round($tdata / 5) . "</font></b> ";
|
||||
}
|
||||
|
||||
} else {
|
||||
$effeadd = mysql_query(
|
||||
'INSERT INTO `eff_users`
|
||||
(`id`,`id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`)
|
||||
VALUES
|
||||
(NULL, "477", "' . $u->info['id'] . '", "Благословение Ёлки x1", "add_hpAll=5", "110", "' . time(
|
||||
) . '", "0", "", "0", "0", "0", "", "1", "-1", "0", "0", "0", "", "0", "0", "0", "0", "0")'
|
||||
);
|
||||
|
||||
if (isset($effeadd)) {
|
||||
echo "Вы получили <b><font color=red>Благословение Ёлки x1</font></b> ";
|
||||
}
|
||||
}
|
||||
|
||||
echo "Использовал: <b><font color=red>" . $_GET['shar_name'] . "</font><b>";
|
||||
|
||||
} else {
|
||||
echo "<b><font color=red>Ошибка</font></b>";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d') <= 8))) {
|
||||
//получаем свой новогодний подарок за текущий год addItem($id,$uid)
|
||||
$smt = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "take_gift_' . $dt . '" LIMIT 1', 1);
|
||||
if (!isset($smt['id'])) {
|
||||
$pid = \User\ItemsModel::addItem($pidid, $u->info['id']);
|
||||
if ($pid > 0) {
|
||||
mysql_query('UPDATE `items_users` SET `gift` = "Администрация",`gtxt1` = "Поздравляем Вас с Новым Годом!" WHERE `id` = "' . $pid . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1');
|
||||
$u->addAction(time(), 'take_gift_' . $dt . '', $u->info['city']);
|
||||
echo '<font color=red>Предмет находится у Вас в инвентаре, в разделе "прочее"</font>';
|
||||
} else {
|
||||
echo '<font color=red>Не удалось получить подарок...</font>';
|
||||
}
|
||||
} else {
|
||||
echo '<font color=red>Вы уже получили свой подарок ;)</font>';
|
||||
}
|
||||
} elseif (isset($_GET['del'])) {
|
||||
if ($u->info['admin'] > 0 || ($u->info['align'] > 1 && $u->info['align'] < 2) || ($u->info['align'] > 3 && $u->info['align'] < 4)) {
|
||||
if ($u->info['admin'] == 0) {
|
||||
$pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg'] . '';
|
||||
} else {
|
||||
$pInfo = '1';
|
||||
}
|
||||
mysql_query("UPDATE `elka` SET `delete`='" . $pInfo . "' WHERE `id`='" . mysql_real_escape_string($_GET['del']) . "'");
|
||||
}
|
||||
} elseif (isset($_GET['use_cup'])) {
|
||||
$smt = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "use_cupNewYear" LIMIT 1', 1);
|
||||
if (!isset($smt['id'])) {
|
||||
$u->addAction(time(), 'use_cupNewYear', '');
|
||||
mysql_query('UPDATE `stats` SET `hpNow` = "' . $u->stats['hpAll'] . '",`mpNow` = "' . $u->stats['mpAll'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
|
||||
echo '<font color=red>Успешно использован эликсир "Полное восстановление"</font>';
|
||||
}
|
||||
} elseif (isset($_POST['message'])) {
|
||||
$_POST['message'] = htmlspecialchars($_POST['message'], null);
|
||||
if ($_POST['message'] != '') {
|
||||
$dy = 1;
|
||||
if ((date('n', time()) == 1 && date('j', time()) <= 15)) {
|
||||
$dy = 0;
|
||||
}
|
||||
$u->info['ET'] = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "send_elka" LIMIT 1', 1);
|
||||
if (isset($u->info['ET']['id'])) {
|
||||
echo '<font color=red>Оставлять надписи на стволе ёлки можно не чаще одного раза в 10 минут</font>';
|
||||
} else {
|
||||
$pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg'] . '|' . $u->info['id'] . '';
|
||||
mysql_query(
|
||||
"INSERT INTO `elka` (`year`,`time`,`pers`,`text`,`city`) VALUES (" . (date('Y', time()) + $dy) . "," . time() . ",'" . $pInfo . "','" . mysql_real_escape_string(
|
||||
$_POST['message']
|
||||
) . "','" . $u->info['city'] . "'); "
|
||||
);
|
||||
$u->addAction(time(), 'send_elka', '');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<style type="text/css">
|
||||
|
||||
.pH3 {
|
||||
COLOR: #8f0000;
|
||||
FONT-FAMILY: Arial;
|
||||
FONT-SIZE: 12pt;
|
||||
FONT-WEIGHT: bold;
|
||||
}
|
||||
|
||||
.class_ {
|
||||
font-weight: bold;
|
||||
color: #C5C5C5;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.class_st {
|
||||
font-weight: bold;
|
||||
color: #659BA3;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.class__ {
|
||||
font-weight: bold;
|
||||
color: #FFFFFF;
|
||||
cursor: pointer;
|
||||
background-color: #659BA3;
|
||||
}
|
||||
|
||||
.class__st {
|
||||
font-weight: bold;
|
||||
color: #FFFFFF;
|
||||
cursor: pointer;
|
||||
background-color: #659BA3;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.class_old {
|
||||
font-weight: bold;
|
||||
color: #919191;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.class__old {
|
||||
font-weight: bold;
|
||||
color: #FFFFFF;
|
||||
cursor: pointer;
|
||||
background-color: #838383;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
</style>
|
||||
<div align="right"><?php if ($re != '') {
|
||||
echo '<font color="red"><b>' . $re . '</b></font>';
|
||||
} ?></div>
|
||||
<div id="hint3" style="visibility:hidden"></div>
|
||||
<TABLE width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<div align="center" class="pH3">Новогодняя елка <?php
|
||||
echo $dt; ?>!
|
||||
</div>
|
||||
<br/>
|
||||
<!-- Подарки -->
|
||||
<?php
|
||||
$sg = 1;
|
||||
//Если есть подарки
|
||||
if ((date('n', time()) == 12 || date('n', time()) <= 2) && $sg == 1) {
|
||||
?>
|
||||
<div style="padding-left:10px;">
|
||||
<span class="pH3"><small>Подарки:</small></span>
|
||||
<div>
|
||||
<?php
|
||||
$smt = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "use_cupNewYear" LIMIT 1', 1);
|
||||
?>
|
||||
<a href="?use_cup=<?= $code; ?>" <?php if (isset($smt['id'])) {
|
||||
echo 'onClick="alert(\'Использовать "Чаша жизненных сил" можно не чаще одного раза в 10 минут\');return false;"';
|
||||
} ?> /><img src="//img.new-combats.tech/cup2012.gif" style="padding:10px;<?php if (isset($smt['id'])) {
|
||||
echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;';
|
||||
} ?>" title="Выпить из`Чаши жизненных сил`"></a>
|
||||
<?php
|
||||
if (date('m') == 12 || (date('m') == 1 && date('d') <= 8)) {
|
||||
$pd = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "take_gift' . $dt . '" LIMIT 1', 1);
|
||||
?>
|
||||
<a href="?take_gift=<?= $code; ?>" <?php if (isset($pd['id'])) {
|
||||
echo 'onClick="return false;"';
|
||||
} ?> /><img src="//img.new-combats.tech/i/items/<?= 'podarok' . ($dt - 1); ?>.gif" style="padding:10px;<?php if (isset($pd['id'])) {
|
||||
echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;';
|
||||
} ?>" title="Взять `Новогодний подарок 2023`"></a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<?php
|
||||
}
|
||||
//ТУТ Елка
|
||||
// if($u->info['admin']>0)
|
||||
// {
|
||||
?>
|
||||
<div style="padding-left:10px;">
|
||||
<span class="pH3"><small>Наряжаем Ёлку:</small></span>
|
||||
<div>
|
||||
<?php
|
||||
$it = mysql_fetch_array(mysql_query(' SELECT * FROM `items_users` WHERE `item_id` > 2723 AND `item_id` < 2741 AND `uid`= "' . $u->info['id'] . '" AND `delete` = 0 LIMIT 1 '));
|
||||
if (isset($it['item_id'])) {
|
||||
$itt = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "' . $it['item_id'] . '" LIMIT 1'));
|
||||
?>
|
||||
<a href="?elka_shar=<?php echo $it['id']; ?>&shar_name=<?php echo $itt['name']; ?>" <?php if (!isset($itt['id'])) {
|
||||
echo 'onClick="return false;"';
|
||||
} ?> /><img src="//img.new-combats.tech/i/items/<?= $itt['img']; ?>" style="padding:10px;<?php if (!isset($it['id'])) {
|
||||
echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;';
|
||||
} ?>" title="Повесить `Шар`"></a>
|
||||
<?php
|
||||
} else {
|
||||
echo "У Вас нет шаров для украшения Ёлки!";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<?php
|
||||
// }
|
||||
if (isset($_GET['page'])) {
|
||||
$fpage = round($_GET['page']);
|
||||
if ($fpage <= 0) {
|
||||
$fpage = 1;
|
||||
}
|
||||
} else {
|
||||
$fpage = 1;
|
||||
}
|
||||
$limit1 = ($fpage - 1) * 20 + $fpage - 1;
|
||||
$limit2 = 21;
|
||||
|
||||
$i = mysql_fetch_array(mysql_query('SELECT COUNT(`year`) FROM `elka` WHERE `year` = "' . $dt . '" AND (`delete` = "0" OR ' . $u->info['admin'] . ' > 0) ORDER BY `id` DESC'));
|
||||
$i = $i[0];
|
||||
$d = ceil($i / 21);
|
||||
if ($i > 0) {
|
||||
if ($d < 13) {
|
||||
$j = 0;
|
||||
$pagesN = '';
|
||||
while ($i >= 0) {
|
||||
$i -= 21;
|
||||
if ($i != 0) {
|
||||
$j++;
|
||||
$r2 = '';
|
||||
if ($j <= $d) {
|
||||
if (isset($r)) {
|
||||
$r2 = '&r=' . $r;
|
||||
}
|
||||
$jt = $j;
|
||||
if ($fpage == $j) {
|
||||
$jt = '<span class="number">' . $j . '</span>';
|
||||
}
|
||||
$pagesN .= ' <a href="?id=' . $post['id'] . '&d=' . $_GET['d'] . '&page=' . $j . '" title="Перейти на страницу №' . $j . '">' . $jt . '</a> ';
|
||||
}
|
||||
}
|
||||
}
|
||||
$pages .= ' ' . $pagesN . ' ';
|
||||
} else {
|
||||
$j = $fpage - 6;
|
||||
$i = 0;
|
||||
$pagesN = '';
|
||||
while ($k < 13) {
|
||||
if ($j > 0) {
|
||||
if ($j <= $d) {
|
||||
$jt = $j;
|
||||
if ($fpage == $j) {
|
||||
$jt = '<span class="number">' . $j . '</span>';
|
||||
}
|
||||
$pagesN .= ' <a href="?id=' . $post['id'] . '&d=' . $_GET['d'] . '&page=' . $j . '" title="Перейти на страницу №' . $j . '">' . $jt . '</a> ';
|
||||
}
|
||||
$k++;
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
$prpage = $fpage - 12;
|
||||
$nxpage = $fpage + 12;
|
||||
if ($prpage <= 0) {
|
||||
$prpage = 1;
|
||||
}
|
||||
if ($nxpage > $d) {
|
||||
$nxpage = $d;
|
||||
}
|
||||
$_GET['d'] = (int)$_GET['d'];
|
||||
if ($fpage - 7 > 0) {
|
||||
$pages .= '<a href="?id=' . $post['id'] . '&d=' . $_GET['d'] . '&page=1" title="Первая страница">«</a> <a href="?id=' . $post['id'] . '&d=' . $_GET['d'] . '&page=' . $prpage . '" title="Показать предыдущие страницы">...</a> ';
|
||||
}
|
||||
$pages .= ' ' . $pagesN . ' ';
|
||||
if ($fpage < $d - 5) {
|
||||
$pages .= '<a href="?id=' . $post['id'] . '&d=' . $_GET['d'] . '&page=' . $nxpage . '" title="Показать следующие страницы">...</a> <a href="?id=' . $post['id'] . '&d=' . $_GET['d'] . '&page=' . $d . '" title="Последняя страница">»</a>';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$pages = '';
|
||||
}
|
||||
?>
|
||||
<U>Посетители оставили надписи на стволе елки:</U> <?= $pages; ?><br>
|
||||
<div style="padding:5px;">
|
||||
<?php
|
||||
$sp = mysql_query(
|
||||
'SELECT * FROM `elka` WHERE `year`="' . $dt . '" AND `city`="' . $u->info['city'] . '" AND (`delete` = "0" OR ' . $u->info['admin'] . ' > 0) ORDER BY `time` DESC LIMIT ' . $limit1 . ',' . $limit2 . ''
|
||||
);
|
||||
$page = floor((int)$_POST['page']);
|
||||
if ($page < 1) {
|
||||
$page = 1;
|
||||
} elseif ($page > 300) {
|
||||
$page == 300;
|
||||
}
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
$prs = explode('|', $pl['pers']);
|
||||
$pers = '';
|
||||
if ($prs[0] != 0) {
|
||||
$pers .= '<img src="//img.new-combats.tech/i/align/align' . $prs[0] . '.gif">';
|
||||
}
|
||||
if ($prs[1] != 0) {
|
||||
$clanPrs = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id`="' . $prs[1] . '" LIMIT 1'));
|
||||
$pers .= '<img src="//img.new-combats.tech/i/clan/' . $clanPrs['name_mini'] . '.gif">';
|
||||
}
|
||||
$pers .= '<b>' . $prs[2] . '</b>[' . $prs[3] . ']<a href="/info/' . $prs[5] . '" title="Инф. о ' . $prs[2] . '" target="blank"><img src="//img.new-combats.tech/i/inf_' . $prs[4] . '.gif"></a>';
|
||||
if ($pl['delete'] != '0') {
|
||||
if ($pl['delete'] == '1') {
|
||||
if ($u->info['admin'] > 0) {
|
||||
$pl['text'] = '<font color=red><i>Сообщение стерто</i></font> <font color=grey><small>(' . $pl['text'] . ')</small></font>';
|
||||
} else {
|
||||
$pl['text'] = '<font color=red><i>Сообщение стерто</i></font>';
|
||||
}
|
||||
} else {
|
||||
$prs = explode('|', $pl['delete']);
|
||||
$pers2 = '';
|
||||
if ($prs[0] != 0) {
|
||||
$pers2 .= '<img src="//img.new-combats.tech/i/align/align' . $prs[0] . '.gif">';
|
||||
}
|
||||
if ($prs[1] != 0) {
|
||||
$clanPrs = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id`="' . $prs[1] . '" LIMIT 1'));
|
||||
$pers2 .= '<img src="//img.new-combats.tech/i/clan/' . $clanPrs['img'] . '.gif">';
|
||||
}
|
||||
$pers2 .= '<a href="javascript:top.toUser(\'' . $prs[2] . '\',\'private\');"><b>' . $prs[2] . '</b></a>[' . $prs[3] . ']<a href="/info/' . $prs[2] . '" title="Инф. о ' . $prs[2] . '" target="blank"><img src="//img.new-combats.tech/i/inf_' . $prs[4] . '.gif"></a>';
|
||||
|
||||
if ($u->info['admin'] > 0 || ($u->info['align'] > 1 && $u->info['align'] < 2) || ($u->info['align'] > 3 && $u->info['align'] < 4)) {
|
||||
$pl['text'] = '<i><font color=red>Сообщение стерто персонажем</font> ' . $pers2 . '</i> <font color=grey><small>(' . $pl['text'] . ')</small></font>';
|
||||
} else {
|
||||
$pl['text'] = '<i><font color=red>Сообщение стерто персонажем</font> ' . $pers2 . '</i>';
|
||||
}
|
||||
}
|
||||
}
|
||||
if (($u->info['admin'] > 0 || ($u->info['align'] > 1 && $u->info['align'] < 2) || ($u->info['align'] > 3 && $u->info['align'] < 4)) && $pl['delete'] == '0') {
|
||||
$dl = ' <a href="main.php?page=' . $_POST['page'] . '&del=' . $pl['id'] . '"><small>Стереть</small></a>';
|
||||
} else {
|
||||
$dl = '';
|
||||
}
|
||||
echo '<font class=date>' . date('d.m.Y H:i', $pl['time']) . '</font> ' . $pers . ' - ' . $pl['text'] . '' . $dl . '<BR>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
Страницы: <?= $pages; ?><br>
|
||||
<FORM method="post" action="main.php">
|
||||
Оставить сообщение: <INPUT type=text name=message maxlength=150 size=50> <INPUT type=submit name=addmessage value='Добавить'>
|
||||
</FORM>
|
||||
<td width="280" valign="top">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="100%"> </td>
|
||||
<td>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr align="right" valign="top">
|
||||
<td><!-- -->
|
||||
<?= $goLis; ?>
|
||||
<!-- -->
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
|
||||
<tr>
|
||||
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
|
||||
<td bgcolor="#D3D3D3" nowrap="nowrap">
|
||||
<a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.9&rnd=<?= $code; ?>';" title="<?php thisInfRm(
|
||||
'1.180.0.9', 1
|
||||
); ?>">Центральная Площадь</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap">
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
|
||||
<tr>
|
||||
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
|
||||
<td bgcolor="#D3D3D3" nowrap="nowrap">
|
||||
<div align="left">
|
||||
<a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.209&rnd=<?= $code; ?>';" title="<?php thisInfRm(
|
||||
'1.180.0.209', 1
|
||||
); ?>">Ледяная пещера</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br/>
|
||||
<center></center>
|
||||
</td>
|
||||
</table>
|
||||
<div id="textgo" style="visibility:hidden;"></div>
|
||||
|
||||
|
||||
|
@ -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,246 +2,240 @@
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
if ($u->room['file'] == 'znahar') {
|
||||
?>
|
||||
<STYLE>
|
||||
.H3 {
|
||||
COLOR: #8f0000;
|
||||
FONT-FAMILY: Arial;
|
||||
FONT-SIZE: 12pt;
|
||||
FONT-WEIGHT: bold;
|
||||
}
|
||||
</STYLE>
|
||||
<SCRIPT>
|
||||
function gfastshow(dsc, dx, dy) {
|
||||
top.fullfastshow(document, mmoves3, window.event, dsc, dx, dy);
|
||||
}
|
||||
if ($u->room['file'] != 'znahar') {
|
||||
return;
|
||||
}
|
||||
?>
|
||||
<STYLE>
|
||||
.H3 {
|
||||
COLOR: #8f0000;
|
||||
FONT-FAMILY: Arial;
|
||||
FONT-SIZE: 12pt;
|
||||
FONT-WEIGHT: bold;
|
||||
}
|
||||
</STYLE>
|
||||
<SCRIPT>
|
||||
function gfastshow(dsc, dx, dy) {
|
||||
top.fullfastshow(document, mmoves3, window.event, dsc, dx, dy);
|
||||
}
|
||||
|
||||
function ghideshow() {
|
||||
top.fullhideshow(mmoves3);
|
||||
}
|
||||
</SCRIPT>
|
||||
</HEAD>
|
||||
<body leftmargin=5 topmargin=5 marginwidth=5 marginheight=5 bgcolor=e2e0e0>
|
||||
<div id="mmoves3"
|
||||
style="background-color:#FFFFCC; visibility:hidden; z-index: 101; overflow:visible; position:absolute; border-color:#666666; border-style:solid; border-width: 1px; padding: 2px;"></div>
|
||||
<SCRIPT src='//img.new-combats.tech/i/commoninf.js'></SCRIPT>
|
||||
<TABLE width=100%>
|
||||
<TR>
|
||||
<TD>
|
||||
<DIV class='H3' align=center>Комната Знахаря</DIV>
|
||||
<BR>
|
||||
<BR>
|
||||
<b><i>Запахи трав наполняют помещение, непонятные и пугающие предметы скрываются в пляшущих тенях...<BR>
|
||||
Говорят, здесь можно изменить свою судьбу.
|
||||
Стать кем-то иным... кем раньше был лишь в мечтах...</i></b><BR><BR>
|
||||
Деньги: <B><?= $u->info['money']; ?></B> кр.<BR>
|
||||
Бесплатных перераспределений: Сегодня - неограничено!<BR>
|
||||
</TD>
|
||||
<TD width=1 valign=top>
|
||||
<?php
|
||||
if ($c['znahar'] == 1) {
|
||||
$raspst = 99999;
|
||||
} else {
|
||||
$raspst = 0;
|
||||
}
|
||||
#------------------Запросы и прочее
|
||||
$st = Helper\Conversion::dataStringToArray($u->info['stats']);
|
||||
$vinos = [
|
||||
/* level,summvinos*/
|
||||
"0" => 3,
|
||||
"1" => 4,
|
||||
"2" => 5,
|
||||
"3" => 6,
|
||||
"4" => 7,
|
||||
"5" => 8,
|
||||
"6" => 9,
|
||||
"7" => 10,
|
||||
"8" => 11,
|
||||
"9" => 13,
|
||||
"10" => 16,
|
||||
"11" => 21,
|
||||
"12" => 41,
|
||||
"21" => 41,
|
||||
];
|
||||
#------------------Запросы и прочее
|
||||
?>
|
||||
<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" id="moveto">
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
|
||||
function ghideshow() {
|
||||
top.fullhideshow(mmoves3);
|
||||
}
|
||||
</SCRIPT>
|
||||
</HEAD>
|
||||
<body leftmargin=5 topmargin=5 marginwidth=5 marginheight=5 bgcolor=e2e0e0>
|
||||
<div id="mmoves3"
|
||||
style="background-color:#FFFFCC; visibility:hidden; z-index: 101; overflow:visible; position:absolute; border-color:#666666; border-style:solid; border-width: 1px; padding: 2px;"></div>
|
||||
<SCRIPT src='//img.new-combats.tech/i/commoninf.js'></SCRIPT>
|
||||
<TABLE width=100%>
|
||||
<TR>
|
||||
<TD>
|
||||
<DIV class='H3' align=center>Комната Знахаря</DIV>
|
||||
<BR>
|
||||
<BR>
|
||||
<b><i>Запахи трав наполняют помещение, непонятные и пугающие предметы скрываются в пляшущих тенях...<BR>
|
||||
Говорят, здесь можно изменить свою судьбу.
|
||||
Стать кем-то иным... кем раньше был лишь в мечтах...</i></b><BR><BR>
|
||||
Деньги: <B><?= $u->info['money']; ?></B> кр.<BR>
|
||||
Бесплатных перераспределений: Сегодня - неограничено!<BR>
|
||||
</TD>
|
||||
<TD width=1 valign=top>
|
||||
<?php
|
||||
if (\Core\Config::get('znahar') == 1) {
|
||||
$raspst = 99999;
|
||||
} else {
|
||||
$raspst = 0;
|
||||
}
|
||||
#------------------Запросы и прочее
|
||||
$st = Helper\Conversion::dataStringToArray($u->info['stats']);
|
||||
$vinos = [
|
||||
/* level,summvinos*/
|
||||
"0" => 3,
|
||||
"1" => 4,
|
||||
"2" => 5,
|
||||
"3" => 6,
|
||||
"4" => 7,
|
||||
"5" => 8,
|
||||
"6" => 9,
|
||||
"7" => 10,
|
||||
"8" => 11,
|
||||
"9" => 13,
|
||||
"10" => 16,
|
||||
"11" => 21,
|
||||
"12" => 41,
|
||||
"21" => 41,
|
||||
];
|
||||
#------------------Запросы и прочее
|
||||
?>
|
||||
<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" id="moveto">
|
||||
<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><a href="?rnd=0.454008319854562&path=1.100.1.6.5" onclick="return check_access();" class="menutop" title="Время перехода: 20 сек.
|
||||
<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="?rnd=0.454008319854562&path=1.100.1.6.5" onclick="return check_access();" class="menutop" title="Время перехода: 20 сек.
|
||||
Сейчас в комнате 0 чел.">Этаж 2</a></td>
|
||||
</tr>
|
||||
</tr>
|
||||
|
||||
<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.221&rnd=<?= $code; ?>';"
|
||||
title="<?php thisInfRm('1.180.0.221', 1); ?>">Торговый Зал</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- <br /><span class="menutop"><nobr>Комната Знахаря</nobr></span>-->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="mmoves"
|
||||
style="background-color:#FFFFCC; visibility:hidden; overflow:visible; position:absolute; border-color:#666666; border-style:solid; border-width: 1px; padding: 2px; white-space: nowrap;"></div>
|
||||
</HTML>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<TABLE>
|
||||
<TR bgcolor=#D8D8D8>
|
||||
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/strsmall.gif'> Характеристики</TD>
|
||||
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/cureelixirsmall.gif'> Пристрастия</TD>
|
||||
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/weaponsmall.gif'> Прочее</TD>
|
||||
<TR>
|
||||
<TD width=270 valign=top>
|
||||
<SCRIPT>
|
||||
//////////////Название,параметр,всего, +сколько, до скольки сбросить(макс возможное),сколько сбрасывать/прибавлять
|
||||
var pr = new Array(
|
||||
'Сила', '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) {?>
|
||||
, 'Интеллект', 's5', <?=$st['s5'];?>, <?=$u->stats['s5'] - $st['s5'];?>, 0, 0
|
||||
<?}if ($u->info['level'] > 6) {?>
|
||||
, 'Мудрость', 's6', <?=$st['s6'];?>, 0, 0, 0
|
||||
<?}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
|
||||
<?}?>
|
||||
);
|
||||
<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.221&rnd=<?= $code; ?>';"
|
||||
title="<?php thisInfRm('1.180.0.221', 1); ?>">Торговый Зал</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- <br /><span class="menutop"><nobr>Комната Знахаря</nobr></span>-->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="mmoves"
|
||||
style="background-color:#FFFFCC; visibility:hidden; overflow:visible; position:absolute; border-color:#666666; border-style:solid; border-width: 1px; padding: 2px; white-space: nowrap;"></div>
|
||||
</HTML>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<TABLE>
|
||||
<TR bgcolor=#D8D8D8>
|
||||
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/strsmall.gif'> Характеристики</TD>
|
||||
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/cureelixirsmall.gif'> Пристрастия</TD>
|
||||
<TD><IMG width=20 height=20 src='//img.new-combats.tech/i/misc/weaponsmall.gif'> Прочее</TD>
|
||||
<TR>
|
||||
<TD width=270 valign=top>
|
||||
<SCRIPT>
|
||||
//////////////Название,параметр,всего, +сколько, до скольки сбросить(макс возможное),сколько сбрасывать/прибавлять
|
||||
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
|
||||
<?php if($u->info['level'] > 3){?>
|
||||
, 'Интеллект', 's5', <?=$st['s5'];?>, <?=$u->stats['s5'] - $st['s5'];?>, 0, 0
|
||||
<?php } if ($u->info['level'] > 6) {?>
|
||||
, 'Мудрость', 's6', <?=$st['s6'];?>, 0, 0, 0
|
||||
<?php } if ($u->info['level'] > 9) {?>
|
||||
, 'Духовность', 's7', <?=$st['s7'];?>, 0, 0, 0
|
||||
<?php } ?>
|
||||
];
|
||||
|
||||
function getprstr(i) {
|
||||
var 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]) {
|
||||
ss += (pr[i + 3] < 0 ? "" : "+") + pr[i + 3]
|
||||
}
|
||||
if (pr[i + 5]) {
|
||||
if (pr[i + 5] > 0) {
|
||||
ss += " <font color=green>+" + pr[i + 5];
|
||||
} else {
|
||||
ss += " <font color=#8f0000>" + pr[i + 5];
|
||||
}
|
||||
ss += "</font>";
|
||||
}
|
||||
ss += ")";
|
||||
function getprstr(i) {
|
||||
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]) {
|
||||
ss += (pr[i + 3] < 0 ? "" : "+") + pr[i + 3]
|
||||
}
|
||||
return ss;
|
||||
if (pr[i + 5]) {
|
||||
if (pr[i + 5] > 0) {
|
||||
ss += " <font color=green>+" + pr[i + 5];
|
||||
} else {
|
||||
ss += " <font color=#8f0000>" + pr[i + 5];
|
||||
}
|
||||
ss += "</font>";
|
||||
}
|
||||
ss += ")";
|
||||
}
|
||||
return ss;
|
||||
}
|
||||
|
||||
var freepr = 0;
|
||||
var freemoves = <?=$raspst;?>;
|
||||
var movecost = 5;
|
||||
let freepr = 0;
|
||||
const freemoves = <?=$raspst;?>;
|
||||
const movecost = 5;
|
||||
|
||||
function modpr(i, to) {
|
||||
if (to == 1 && freepr == 0) {
|
||||
return;
|
||||
}
|
||||
if (to == -1 && pr[i + 2] + pr[i + 5] <= pr[i + 4]) {
|
||||
return;
|
||||
}
|
||||
pr[i + 5] += to;
|
||||
freepr -= to;
|
||||
document.all["pr" + i].innerHTML = getprstr(i);
|
||||
document.all["prfree"].innerHTML = freepr;
|
||||
var moves = 0;
|
||||
for (j = 0; j < pr.length; j += 6) {
|
||||
if (pr[j + 5] > 0) {
|
||||
moves += pr[j + 5]
|
||||
}
|
||||
;
|
||||
}
|
||||
movedonebutton.disabled = (freepr || moves == 0 ? true : false);
|
||||
document.all["prmoves"].innerHTML = moves + ((freemoves < moves) ? " за " + (movecost * (moves - freemoves)) + " кр." : (moves ? " / бесплатно" : ""));
|
||||
function modpr(i, to) {
|
||||
if (to == 1 && freepr == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
function movedone() {
|
||||
if (freepr) {
|
||||
return;
|
||||
}
|
||||
var s = "";
|
||||
for (j = 0; j < pr.length; j += 6) {
|
||||
if (pr[j + 5]) {
|
||||
s += "&" + pr[j + 1] + "=" + pr[j + 5];
|
||||
}
|
||||
;
|
||||
}
|
||||
if (!s) {
|
||||
return
|
||||
}
|
||||
;
|
||||
location = "?movestat=0.<?=$code;?>&sd4=<?=$u->info['id']?>" + s;
|
||||
if (to == -1 && pr[i + 2] + pr[i + 5] <= pr[i + 4]) {
|
||||
return;
|
||||
}
|
||||
|
||||
var s = "<TABLE>";
|
||||
for (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"> '
|
||||
s += '<img src=https://img.combats.com/i/plus.gif border=0 onclick="modpr(' + i + ',1)" style="cursor: hand"></TR>';
|
||||
pr[i + 5] += to;
|
||||
freepr -= to;
|
||||
document.all["pr" + i].innerHTML = getprstr(i);
|
||||
document.all["prfree"].innerHTML = freepr;
|
||||
let moves = 0;
|
||||
for (let j = 0; j < pr.length; j += 6) {
|
||||
if (pr[j + 5] > 0) {
|
||||
moves += pr[j + 5]
|
||||
}
|
||||
}
|
||||
s += "</TABLE>";
|
||||
s += "<small>(осталось: <span id='prfree'>0</span>, распределений: <span id='prmoves'>0</span>)<BR>";
|
||||
document.write(s);
|
||||
</SCRIPT>
|
||||
<input type=button onclick="movedone();" id='movedonebutton' value="Применить" disabled>
|
||||
</TD>
|
||||
<TD width=270 valign=top>
|
||||
<BR><BR><BR>
|
||||
<small>
|
||||
<center>У вас нет пристрастий</center>
|
||||
</small>
|
||||
</TD>
|
||||
<TD valign=top><BR>
|
||||
Навыки владения оружием и магией<BR>
|
||||
movedonebutton.disabled = (!!(freepr || moves == 0));
|
||||
document.all["prmoves"].innerHTML = moves + ((freemoves < moves) ? " за " + (movecost * (moves - freemoves)) + " кр." : (moves ? " / бесплатно" : ""));
|
||||
}
|
||||
|
||||
<form method=post><input type=hidden value='<?= $u->info['id']; ?>' name='dropmastery'><INPUT type=submit value='Сбросить <? 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кр.)" ?>'
|
||||
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кр.)" ?>'
|
||||
onclick="return confirm('Вы действительно хотите сбросить все характеристики до минимального уровня?')">
|
||||
</form>
|
||||
</TABLE>
|
||||
<small>Каждые 7 дней после последнего использования комнаты знахаря вы получаете 1 бесплатное перераспределение, но не более 15<BR>
|
||||
Исцеление пристрастия, cброс умений или особенностей стоят 5 перераспределений<BR>
|
||||
Изменение Характеристик досрочно завершает некоторые эффекты, например эффект свитка <B>Жажда Жизни</B>
|
||||
</small>
|
||||
<BR>
|
||||
</TABLE>
|
||||
<div>
|
||||
<? //рейтинг
|
||||
?>
|
||||
</div>
|
||||
</BODY>
|
||||
</HTML>
|
||||
<? } ?>
|
||||
function movedone() {
|
||||
if (freepr) {
|
||||
return;
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
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"> '
|
||||
s += '<img src=https://img.combats.com/i/plus.gif border=0 onclick="modpr(' + i + ',1)" style="cursor: hand"></TR>';
|
||||
}
|
||||
}
|
||||
s += "</TABLE>";
|
||||
s += "<small>(осталось: <span id='prfree'>0</span>, распределений: <span id='prmoves'>0</span>)<BR>";
|
||||
document.write(s);
|
||||
</SCRIPT>
|
||||
<input type=button onclick="movedone();" id='movedonebutton' value="Применить" disabled>
|
||||
</TD>
|
||||
<TD width=270 valign=top>
|
||||
<BR><BR><BR>
|
||||
<small>
|
||||
<center>У вас нет пристрастий</center>
|
||||
</small>
|
||||
</TD>
|
||||
<TD valign=top><BR>
|
||||
Навыки владения оружием и магией<BR>
|
||||
<form method=post>
|
||||
<input type=hidden value='<?= $u->info['id']; ?>' name='dropmastery'>
|
||||
<INPUT type=submit value='Сбросить <?php echo $c['znahar'] == 1 ? "бесплатно" : "(32кр.)" ?>'
|
||||
onclick="return confirm('Вы действительно хотите сбросить умения?')">
|
||||
<HR color=black>
|
||||
</form>
|
||||
Особенности персонажа<BR>
|
||||
<form method=post>
|
||||
<input type=hidden value='<?= $u->info['id']; ?>' name='dropperks'>
|
||||
<INPUT type=submit value='Сбросить <?php echo $c['znahar'] == 1 ? "бесплатно" : "(300кр.)" ?>'
|
||||
onclick="return confirm('Вы действительно хотите сбросить особенности?')">
|
||||
<HR color=black>
|
||||
</form>
|
||||
Характеристики<BR>
|
||||
<form method=post>
|
||||
<input type=hidden value='<?= $u->info['id']; ?>' name='dropstats'>
|
||||
<INPUT type=submit value='Сбросить <?php echo $c['znahar'] == 1 ? "бесплатно" : "(500кр.)" ?>'
|
||||
onclick="return confirm('Вы действительно хотите сбросить все характеристики до минимального уровня?')">
|
||||
</form>
|
||||
</TABLE>
|
||||
<small>Каждые 7 дней после последнего использования комнаты знахаря вы получаете 1 бесплатное перераспределение, но не более 15<BR>
|
||||
Исцеление пристрастия, cброс умений или особенностей стоят 5 перераспределений<BR>
|
||||
Изменение Характеристик досрочно завершает некоторые эффекты, например эффект свитка <B>Жажда Жизни</B>
|
||||
</small>
|
||||
<BR>
|
||||
</TABLE>
|
||||
<div></div>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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']);
|
||||
}
|
||||
ItemsModel::addItem(10020, $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) {
|
||||
$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>';
|
||||
if ($finishedTasks['win'] > 2) {
|
||||
$txt .= 'Порадовал бабушку! Стало в мире светлее, но бабка как была слепая так и осталась... <br> Чуть не забыла жетончик!';
|
||||
giveDailyQuestPrize();
|
||||
} else {
|
||||
$txt .= '<b>Выполни 3 задания в подземелиях. ' . $i . '/3 </b>';
|
||||
$txt .= 'Выполни 3 задания в подземелиях. ' . $finishedTasks['win'] . '/3.';
|
||||
}
|
||||
} elseif ($zadID == 8) {
|
||||
$txt .= '<b>Участие в башне смерти 0.1</b>';
|
||||
} else {
|
||||
$txt .= '<b style="color: red">Эх шустрый малец, получал задание уже сегодня! Завтра приходи накормлю чем нибудь вкусным ну и задание дам!</b>';
|
||||
}
|
||||
sendSysChat($txt);
|
||||
|
||||
sendSysChat("<b>$txt</b>");
|
||||
}
|
||||
}
|
||||
|
||||
@ -213,7 +134,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
|
||||
Духовность: <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