From 9c4e8fb03567b8784f72f794a20a9b43a4ec30e0 Mon Sep 17 00:00:00 2001 From: Ivor Barhansky Date: Mon, 29 Apr 2024 13:00:32 +0300 Subject: [PATCH 01/18] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BD=D0=B0=20=D0=B2=D0=BE=D0=B7=D0=B2=D1=80?= =?UTF-8?q?=D0=B0=D1=82=20=D0=BF=D1=83=D1=81=D1=82=D0=BE=D0=B9=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=BA=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _incl_data/class/User/Stats.php | 109 ++++++++++++++++---------------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/_incl_data/class/User/Stats.php b/_incl_data/class/User/Stats.php index 6570d85a..e710fa75 100644 --- a/_incl_data/class/User/Stats.php +++ b/_incl_data/class/User/Stats.php @@ -124,6 +124,54 @@ class Stats ]; } + 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, + ] + ); + + } + public function getStats(int|array|null $uid = null, $i1 = 0, $reimg = false, $btl_cache = false): array { $u = match (true) { @@ -293,9 +341,6 @@ class Stats $st['m19'] += (int)($st['s3'] * 0.03); - - - //Бонусы комплектов if (isset($coms['new']) && is_iterable($coms['new'])) { foreach ($coms['new'] as $complect) { @@ -477,8 +522,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 @@ -493,7 +538,7 @@ class Stats /** * Добавляет бонусы к статам игрока. * Генерирует переменную User:class->stats['items'], где лежат одетые предметы. - * @param int $uid + * @param int $uid * @param array $st * @param array $s_v * @param array $baseStats @@ -1081,6 +1126,10 @@ class Stats 0 as finished from rep where id = ?', [$id] ); + if (empty($finishedDungeons)) { + return; + } + //Бонус за количество полностью вырытых пещер. if (isset($st['m10'])) { $st['m10'] += 10 * $finishedDungeons; @@ -1133,52 +1182,4 @@ class Stats } 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, - ] - ); - - } } From 70f2f900eb9ee9d37cae48b90e14049b0d392e9d Mon Sep 17 00:00:00 2001 From: Ivor Barhansky Date: Mon, 29 Apr 2024 13:22:02 +0300 Subject: [PATCH 02/18] =?UTF-8?q?=D0=9D=D0=B5=D0=B2=D0=B5=D1=80=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=20=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules_data/_inv.php | 2 +- modules_data/_umenie.php | 2 +- stats_bonus.php | 314 --------------- statsbonuses.html | 843 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 845 insertions(+), 316 deletions(-) delete mode 100644 stats_bonus.php create mode 100644 statsbonuses.html diff --git a/modules_data/_inv.php b/modules_data/_inv.php index 08fe47c0..b3ea2a15 100644 --- a/modules_data/_inv.php +++ b/modules_data/_inv.php @@ -450,7 +450,7 @@ if (isset($_GET['mAjax'])) { onclick="top.frames['main'].location='main.php?newanimal&rnd='" value="Звери"/> -

Зависимость максимального профильного урона оружием у основных воинских diff --git a/stats_bonus.php b/stats_bonus.php deleted file mode 100644 index 615eba07..00000000 --- a/stats_bonus.php +++ /dev/null @@ -1,314 +0,0 @@ - - - - -Таблица Бонусов - Браузерная игра Новый Бойцовский Клуб - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
 
- боковая панель - - - - - - - - - -
боковая панель
боковая панель
- - - - - - - -
- - - -
- - - - - - -
- -
- - - -

Бонусы Статов


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
СтатыБонус
Выносливость
(доступен всем)
Выносливость:
- Уровень жизни: +30
СтатыБонус
Сила = 25Сила Великана:
- Мф. против критического удара (%): +15
Сила = 50Сила Великана:
- Мф. мощности рубящего урона (%): +2
- Мф. против критического удара (%): +35
Сила = 75Сила Великана:
- Мф. мощности рубящего урона (%): +5
- Мф. против критического удара (%): +50
Сила = 100Сила Великана:
- Мф. мощности рубящего урона (%): +8
- Мф. против критического удара (%): +80
Сила = 125Сила Великана:
- Мф. мощности рубящего урона (%): +12
- Мф. против критического удара (%): +105
Сила = 150Сила Гиганта:
- Мф. мощности рубящего урона (%): +17
- Мф. парирования (%): +2
Сила = 175Сила Гиганта:
- Мф. мощности рубящего урона (%): +23
- Мф. парирования (%): +5
Сила = 200Сила Гиганта:
- Мф. мощности рубящего урона (%): +30
- Мф. парирования (%): +7
СтатыБонус
Ловкость = 25Скорость Змеи:
- Мф. мощности колющего урона (%): +2
- Мф. увертывания (%): +35
Ловкость = 50Скорость Змеи:
- Мф. мощности колющего урона (%): +5
- Мф. против критического удара (%): +40
- Мф. увертывания (%): +75
Ловкость = 75Скорость Змеи:
- Мф. мощности колющего урона (%): +8
- Мф. против критического удара (%): +65
- Мф. увертывания (%): +90
Ловкость = 100Скорость Молнии:
- Мф. мощности колющего урона (%): +12
- Мф. против критического удара (%): +65
- Мф. увертывания (%): +105
Ловкость = 125Скорость Молнии:
- Мф. мощности колющего урона (%): +17
- Мф. против критического удара (%): +85
- Мф. увертывания (%): +105
- Абс. мф. увертывания (%): +1
Ловкость = 150Скорость Молнии:
- Мф. мощности колющего урона (%): +20
- Мф. против критического удара (%): +110
- Мф. увертывания (%): +115
- Абс. мф. увертывания (%): +2
Ловкость = 175Скорость Молнии:
- Мф. мощности колющего урона (%): +23
- Мф. против критического удара (%): +145
- Мф. увертывания (%): +145
- Абс. мф. увертывания (%): +3
Ловкость = 200Скорость Молнии:
- Мф. мощности колющего урона (%): +30
- Мф. против критического удара (%): +165
- Мф. увертывания (%): +145
- Абс. мф. увертывания (%): +5
СтатыБонус
Интуиция = 25Предчувствие:
- Мф. мощности режущего урона (%): +2
- Мф. мощности крит. удара (%): +2
- Мф. критического удара (%): +25
Интуиция = 50Предчувствие:
- Мф. мощности режущего урона (%): +5
- Мф. мощности крит. удара (%): +5
- Мф. критического удара (%): +55
Интуиция = 75Предчувствие:
- Мф. мощности режущего урона (%): +8
- Мф. мощности крит. удара (%): +10
- Мф. критического удара (%): +75
- Мф. против увертывания (%): +25
Интуиция = 100Озарение:
- Мф. мощности режущего урона (%): +12
- Мф. мощности крит. удара (%): +15
- Мф. критического удара (%): +105
- Мф. против увертывания (%): +35
Интуиция = 125Озарение:
- Мф. мощности режущего урона (%): +17
- Мф. мощности крит. удара (%): +20
- Мф. критического удара (%): +125
- Мф. против увертывания (%): +45
- Абс. Мф. крит. удара: +1
Интуиция = 150Озарение:
- Мф. мощности режущего урона (%): +20
- Мф. мощности крит. удара (%): +30
- Мф. критического удара (%): +145
- Мф. против увертывания (%): +45
- Абс. Мф. крит. удара: +2
Интуиция = 175Озарение:
- Мф. мощности режущего урона (%): +23
- Мф. мощности крит. удара (%): +35
- Мф. критического удара (%): +165
- Мф. против увертывания (%): +55
- Абс. Мф. крит. удара: +3
Интуиция = 200Озарение:
- Мф. мощности режущего урона (%): +30
- Мф. мощности крит. удара (%): +40
- Мф. критического удара (%): +185
- Мф. против увертывания (%): +65
- Абс. Мф. крит. удара: +5
СтатыБонус
Выносливость = 25Каменное Тело:
- Уровень жизни: +50
Выносливость = 50Каменное Тело:
- Уровень жизни: +100
Выносливость = 75Каменное Тело:
- Уровень жизни: +175
Выносливость = 100Стальное Тело:
- Уровень жизни: +250
Выносливость = 125Стальное Тело:
- Уровень жизни: +400
Выносливость = 150Стальное Тело:
- Уровень жизни: +450
- Защита от урона: +25
Выносливость = 175Стальное Тело:
- Уровень жизни: +600
- Защита от урона: +50
- Защита от магии стихии: +50
Выносливость = 200Стальное Тело:
- Уровень жизни: +850
- Защита от урона: +125
- Защита от магии стихии: +125
СтатыБонус
Интеллект = 25Разум:
- Мощность магии стихий (%): +10
Интеллект = 50Разум:
- Мощность магии стихий (%): +15
Интеллект = 75Разум:
- Мощность магии стихий (%): +20
Интеллект = 100Ледяной Разум:
- Мощность магии стихий (%): +25
Интеллект = 125Ледяной Разум:
- Мощность магии стихий (%): +35
Интеллект = 150Ледяной Разум:
- Мощность магии стихий (%): +50
Интеллект = 175Ледяной Разум:
- Мощность магии стихий (%): +65
- Подавление защиты от магии (%): +2
Интеллект = 200Ледяной Разум:
- Мощность магии стихий (%): +65
- Подавление защиты от магии (%): +4
СтатыБонус
Мудрость = 25Касание Мудрости:
- Уровень маны: +150
- Восстановление маны (%): +100
Мудрость = 50Касание Мудрости:
- Уровень маны: +200
- Восстановление маны (%): +200
Мудрость = 75Касание Мудрости:
- Уровень маны: +250
- Восстановление маны (%): +350
Мудрость = 100Сила Мудрости:
- Уровень маны: +350
- Восстановление маны (%): +500
Мудрость = 125Сила Мудрости:
- Уровень маны: +500
- Восстановление маны (%): +500
- Подавление защиты от магии (%): +2
Мудрость = 150Сила Мудрости:
- Уровень маны: +700
- Восстановление маны (%): +600
- Подавление защиты от магии (%): +3
Мудрость = 175Сила Мудрости:
- Уровень маны: +900
- Восстановление маны (%): +700
- Подавление защиты от магии (%): +5
Мудрость = 200Сила Мудрости:
- Уровень маны: +900
- Восстановление маны (%): +700
- Подавление защиты от магии (%): +7
СтатыБонус
Духовность = 50Духовное Исцеление:
- Жизнь после смерти дает вам прием "Призрачная Защита"
- Каждый бой вы начинаете под действием магии "Спасение"
Духовность = 75Путь Духа:
- Жизнь после смерти дает вам прием "Призрачная Защита"
- Каждый бой вы начинаете под действием магии "Спасение"
- Воскрешение и Спасение тратят вдвое меньше силы духа
Духовность = 100Очищение:
- Жизнь после смерти дает вам прием "Призрачная Защита"
- Каждый бой вы начинаете под действием магии "Спасение"
- Воскрешение и Спасение тратят вдвое меньше силы духа
- Смерть очищает вас от негативных эффектов заклинаний, проклятий, болезней и ядов в текущем бою
- - - - - - - -
- -

-
- - - -
 
  
  - - - - - -
  - -
Бойцовский Клуб v2.1 © 2018 -

-   -
-
 
-
- - - -
- - \ No newline at end of file diff --git a/statsbonuses.html b/statsbonuses.html new file mode 100644 index 00000000..184bd940 --- /dev/null +++ b/statsbonuses.html @@ -0,0 +1,843 @@ + + + + Таблица Бонусов - Браузерная игра Новый Бойцовский Клуб + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
 
+
+ + + боковая панель + + + + + + + + + + +
боковая панель
боковая панель +
+ + + + + + + + +
+ + + + + + +
+ + + + + + + + +
+ +
+ +

Бонусы Статов


+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СтатыБонус
Выносливость
(доступен + всем) +
Выносливость:
- Уровень + жизни: +30 +
СтатыБонус
Сила = 25Сила Великана:
- Мф. + против критического удара (%): +15 +
Сила = 50Сила Великана:
- Мф. + мощности рубящего урона (%): +2
- Мф. против + критического удара (%): +35 +
Сила = 75Сила Великана:
- Мф. + мощности рубящего урона (%): +5
- Мф. против + критического удара (%): +50 +
Сила = 100Сила Великана:
- Мф. + мощности рубящего урона (%): +8
- Мф. против + критического удара (%): +80 +
Сила = 125Сила Великана:
- Мф. + мощности рубящего урона (%): +12
- Мф. + против критического удара (%): +105 +
Сила = 150Сила Гиганта:
- Мф. + мощности рубящего урона (%): +17
- Мф. + парирования (%): +2 +
Сила = 175Сила Гиганта:
- Мф. + мощности рубящего урона (%): +23
- Мф. + парирования (%): +5 +
Сила = 200Сила Гиганта:
- Мф. + мощности рубящего урона (%): +30
- Мф. + парирования (%): +7 +
СтатыБонус
Ловкость = 25Скорость Змеи:
- Мф. + мощности колющего урона (%): +2
- Мф. + увертывания (%): +35 +
Ловкость = 50Скорость Змеи:
- Мф. + мощности колющего урона (%): +5
- Мф. против + критического удара (%): +40
- + Мф. увертывания (%): +75 +
Ловкость = 75Скорость Змеи:
- Мф. + мощности колющего урона (%): +8
- Мф. против + критического удара (%): +65
- + Мф. увертывания (%): +90 +
Ловкость = 100Скорость Молнии:
- Мф. + мощности колющего урона (%): +12
- Мф. + против критического удара (%): + +65
- Мф. увертывания (%): +105 +
Ловкость = 125Скорость Молнии:
- Мф. + мощности колющего урона (%): +17
- Мф. + против критического удара (%): + +85
- Мф. увертывания (%): +105
- Абс. + мф. увертывания (%): +1 +
Ловкость = 150Скорость Молнии:
- Мф. + мощности колющего урона (%): +20
- Мф. + против критического удара (%): + +110
- Мф. увертывания (%): +115
- Абс. + мф. увертывания (%): +2 +
Ловкость = 175Скорость Молнии:
- Мф. + мощности колющего урона (%): +23
- Мф. + против критического удара (%): + +145
- Мф. увертывания (%): +145
- Абс. + мф. увертывания (%): +3 +
Ловкость = 200Скорость Молнии:
- Мф. + мощности колющего урона (%): +30
- Мф. + против критического удара (%): + +165
- Мф. увертывания (%): +145
- Абс. + мф. увертывания (%): +5 +
СтатыБонус
Интуиция = 25Предчувствие:
- Мф. + мощности режущего урона (%): +2
- Мф. + мощности крит. удара (%): +2
- Мф. + критического удара (%): +25 +
Интуиция = 50Предчувствие:
- Мф. + мощности режущего урона (%): +5
- Мф. + мощности крит. удара (%): +5
- Мф. + критического удара (%): +55 +
Интуиция = 75Предчувствие:
- Мф. + мощности режущего урона (%): +8
- Мф. + мощности крит. удара (%): +10
- Мф. + критического удара (%): +75
- Мф. против + увертывания (%): +25 +
Интуиция = 100Озарение:
- Мф. мощности + режущего урона (%): +12
- Мф. мощности крит. + удара (%): +15
- Мф. + критического удара (%): +105
- Мф. против + увертывания (%): +35 +
Интуиция = 125Озарение:
- Мф. мощности + режущего урона (%): +17
- Мф. мощности крит. + удара (%): +20
- Мф. + критического удара (%): +125
- Мф. против + увертывания (%): +45
- Абс. Мф. крит. удара: + +1 +
Интуиция = 150Озарение:
- Мф. мощности + режущего урона (%): +20
- Мф. мощности крит. + удара (%): +30
- Мф. + критического удара (%): +145
- Мф. против + увертывания (%): +45
- Абс. Мф. крит. удара: + +2 +
Интуиция = 175Озарение:
- Мф. мощности + режущего урона (%): +23
- Мф. мощности крит. + удара (%): +35
- Мф. + критического удара (%): +165
- Мф. против + увертывания (%): +55
- Абс. Мф. крит. удара: + +3 +
Интуиция = 200Озарение:
- Мф. мощности + режущего урона (%): +30
- Мф. мощности крит. + удара (%): +40
- Мф. + критического удара (%): +185
- Мф. против + увертывания (%): +65
- Абс. Мф. крит. удара: + +5 +
СтатыБонус
Выносливость = 25Каменное Тело:
- Уровень + жизни: +50 +
Выносливость = 50Каменное Тело:
- Уровень + жизни: +100 +
Выносливость = 75Каменное Тело:
- Уровень + жизни: +175 +
Выносливость = 100Стальное Тело:
- Уровень + жизни: +250 +
Выносливость = 125Стальное Тело:
- Уровень + жизни: +400 +
Выносливость = 150Стальное Тело:
- Уровень + жизни: +450
- Защита от урона: +25 +
Выносливость = 175Стальное Тело:
- Уровень + жизни: +600
- Защита от урона: +50
- + Защита от магии стихии: +50 +
Выносливость = 200Стальное Тело:
- Уровень + жизни: +850
- Защита от урона: +125
- + Защита от магии стихии: +125 +
СтатыБонус
Интеллект = 25Разум:
- Мощность магии + стихий (%): +10 +
Интеллект = 50Разум:
- Мощность магии + стихий (%): +15 +
Интеллект = 75Разум:
- Мощность магии + стихий (%): +20 +
Интеллект = 100Ледяной Разум:
- + Мощность магии стихий (%): +25 +
Интеллект = 125Ледяной Разум:
- + Мощность магии стихий (%): +35 +
Интеллект = 150Ледяной Разум:
- + Мощность магии стихий (%): +50 +
Интеллект = 175Ледяной Разум:
- + Мощность магии стихий (%): +65
- Подавление + защиты от магии (%): +2 +
Интеллект = 200Ледяной Разум:
- + Мощность магии стихий (%): +65
- Подавление + защиты от магии (%): +4 +
СтатыБонус
Мудрость = 25Касание Мудрости:
- + Уровень маны: +150
- Восстановление маны + (%): +100 +
Мудрость = 50Касание Мудрости:
- + Уровень маны: +200
- Восстановление маны + (%): +200 +
Мудрость = 75Касание Мудрости:
- + Уровень маны: +250
- Восстановление маны + (%): +350 +
Мудрость = 100Сила Мудрости:
- Уровень + маны: +350
- Восстановление маны (%): +500 +
Мудрость = 125Сила Мудрости:
- Уровень + маны: +500
- Восстановление маны (%): + +500
- Подавление защиты от магии + (%): +2 +
Мудрость = 150Сила Мудрости:
- Уровень + маны: +700
- Восстановление маны (%): + +600
- Подавление защиты от магии + (%): +3 +
Мудрость = 175Сила Мудрости:
- Уровень + маны: +900
- Восстановление маны (%): + +700
- Подавление защиты от магии + (%): +5 +
Мудрость = 200Сила Мудрости:
- Уровень + маны: +900
- Восстановление маны (%): + +700
- Подавление защиты от магии + (%): +7 +
СтатыБонус
Духовность = 50Духовное Исцеление:
- + Жизнь после смерти дает вам прием "Призрачная + Защита" +
- + Каждый бой вы начинаете под действием магии + "Спасение" + +
Духовность = 75Путь Духа:
- Жизнь после + смерти дает вам прием "Призрачная Защита" +
- + Каждый бой вы начинаете под действием магии + "Спасение" +
- + Воскрешение и Спасение тратят вдвое меньше силы + духа + +
Духовность = 100Очищение:
- Жизнь после + смерти дает вам прием "Призрачная Защита" +
- + Каждый бой вы начинаете под действием магии + "Спасение" +
- + Воскрешение и Спасение тратят вдвое меньше силы + духа +
- + Смерть очищает вас от негативных эффектов + заклинаний, проклятий, + болезней и ядов в текущем бою +
+
+
+
+
+
+
+ +
+ + + + +
 
+
  
  + + + + + + +
  +
Бойцовский Клуб v2.1 © 2018 +

  +
+
 
+
+
+ + From b91a305ac078b69ae4120f3f72412bd8ecef3e03 Mon Sep 17 00:00:00 2001 From: Ivor Barhansky Date: Mon, 29 Apr 2024 13:22:18 +0300 Subject: [PATCH 03/18] =?UTF-8?q?=D0=92=20=D0=B0=D0=B4=D0=BC=D0=B8=D0=BD?= =?UTF-8?q?=D0=BA=D1=83.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adminion/sms.php | 18 ++++++++++++++++++ spam.php => adminion/spam.php | 0 sms.php | 21 --------------------- 3 files changed, 18 insertions(+), 21 deletions(-) create mode 100644 adminion/sms.php rename spam.php => adminion/spam.php (100%) delete mode 100644 sms.php diff --git a/adminion/sms.php b/adminion/sms.php new file mode 100644 index 00000000..2c35a29e --- /dev/null +++ b/adminion/sms.php @@ -0,0 +1,18 @@ + 0 and banned = 0 and bot = 0 order by id desc'); +$tbl = [['Логин', 'Стоимость вещей кр', 'Стоимость вещей екр', 'Всего кр с учётом вещей', 'Всего екр с учётом вещей']]; +foreach ($users as $user) { + $itemsprices = Db::getRow('select sum(`1price`) as sumkr, sum(`2price`) as sumekr from items_users where uid = ?', [$user['id']]); + $allkr = $user['money'] + $itemsprices['sumkr']; + $allekr = $user['money2'] + $itemsprices['sumekr']; + $tbl[] = [User::getLogin($user['id']), $itemsprices['sumkr'] ?? 0, $itemsprices['sumekr'] ?? 0, $allkr, $allekr]; +} +echo Table::get($tbl); diff --git a/spam.php b/adminion/spam.php similarity index 100% rename from spam.php rename to adminion/spam.php diff --git a/sms.php b/sms.php deleted file mode 100644 index d2a83b70..00000000 --- a/sms.php +++ /dev/null @@ -1,21 +0,0 @@ - 0 AND `banned` = 0 ORDER BY `id` DESC'); - while ($pl = mysql_fetch_array($sp)) { - $prc = mysql_fetch_array( - mysql_query( - 'SELECT SUM(`2price`) AS `a` , SUM(`1price`) AS `b` FROM `items_users` WHERE `uid` = "' . $pl['id'] . '" AND `delete` < `time_create` LIMIT 1' - ) - ); - if ($prc['a'] > 0) { - echo User::getLogin($pl['id']) . - '   - - - - - - - - ' . ($prc['a']) . ' (вещи) + ' . $pl['money2'] . ' ЕКР \ ' . ($prc['b'] + $pl['money1']) . ' КР
'; - echo '
'; - } - } -} From bd7af6b31cbc0338ec7c5afd6c770966f89ef906 Mon Sep 17 00:00:00 2001 From: Ivor Barhansky Date: Mon, 29 Apr 2024 14:48:48 +0300 Subject: [PATCH 04/18] =?UTF-8?q?=D0=9D=D0=B5=D0=B8=D1=81=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D0=BC=D0=BE=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .htaccess | 3 - ruin_characteristics.php | 264 --------------------------------------- ruins.php | 48 ------- 3 files changed, 315 deletions(-) delete mode 100644 ruin_characteristics.php delete mode 100644 ruins.php diff --git a/.htaccess b/.htaccess index 91a71035..be89ef87 100644 --- a/.htaccess +++ b/.htaccess @@ -41,9 +41,6 @@ DefaultLanguage ru RewriteRule ^clan/(.*)/?$ /clans_inf.php?$1 [L] RewriteRule ^clan/?$ /clans_inf.php [L] - RewriteRule ^ruins/(.*)/?$ /ruins.php?$1 [L] - RewriteRule ^ruins/?$ /ruins.php [L] - RewriteRule ^news/(.*)/?$ /n/$1 [R=301,L] RewriteRule ^news/?$ /n [R=301,L] diff --git a/ruin_characteristics.php b/ruin_characteristics.php deleted file mode 100644 index 04f83852..00000000 --- a/ruin_characteristics.php +++ /dev/null @@ -1,264 +0,0 @@ -info['banned'] > 0) { - header('location: /index.php'); - die(); -} - -$tjs = ''; - -if ($u->info['bithday'] == '01.01.1800' && $u->info['inTurnirnew'] == 0) { - unset($_GET, $_POST); -} - -if (isset($_POST['set_name'])) { - $_POST['set_name'] = htmlspecialchars($_POST['set_name']); - $set_x = mysql_fetch_array( - mysql_query( - 'SELECT COUNT(*) FROM `ruine_sets` WHERE `uid` = "' . $u->info['id'] . '" AND `name` != "' . mysql_real_escape_string( - $_POST['set_name'] - ) . '" LIMIT 1' - ) - ); - if ($set_x[0] > 20) { - $u->error = 'Нельзя создавать более 20 профилей'; - } else { - $set_x = mysql_fetch_array( - mysql_query( - 'SELECT `id` FROM `ruine_sets` WHERE `uid` = "' . $u->info['id'] . '" AND `name` = "' . mysql_real_escape_string( - $_POST['set_name'] - ) . '" LIMIT 1' - ) - ); - // - - $f = $free_stats; // свободных статов - $i = 1; - while ($i <= 6) { - $_POST['s' . $i] = round((int)$_POST['s' . $i]); - if ($_POST['s' . $i] < 0) { - $_POST['s' . $i] = 0; - } - $f -= $_POST['s' . $i]; - $i++; - } - - // - if ($f < 0 || $f > $free_stats) { - $u->error = 'Ошибка в распределении статов.'; - } elseif (isset($set_x['id'])) { - mysql_query( - 'UPDATE `ruine_sets` SET - `s1` = "' . mysql_real_escape_string($_POST['s1']) . '", - `s2` = "' . mysql_real_escape_string($_POST['s2']) . '", - `s3` = "' . mysql_real_escape_string($_POST['s3']) . '", - `s4` = "' . mysql_real_escape_string($_POST['s4']) . '", - `s5` = "' . mysql_real_escape_string($_POST['s5']) . '", - `s6` = "' . mysql_real_escape_string($_POST['s6']) . '", - `free` = "' . mysql_real_escape_string($f) . '", - `time` = "' . time() . '" - WHERE `id` = "' . $set_x['id'] . '" LIMIT 1' - ); - $u->error = 'Профиль "' . $_POST['set_name'] . '" был успешно перезаписан!'; - } else { - mysql_query( - 'INSERT INTO `ruine_sets` ( - `uid`,`name`,`free`,`s1`,`s2`,`s3`,`s4`,`s5`,`s6`,`time` - ) VALUES ( - "' . $u->info['id'] . '","' . mysql_real_escape_string( - $_POST['set_name'] - ) . '","' . mysql_real_escape_string($f) . '", - "' . mysql_real_escape_string($_POST['s1']) . '", - "' . mysql_real_escape_string($_POST['s2']) . '", - "' . mysql_real_escape_string($_POST['s3']) . '", - "' . mysql_real_escape_string($_POST['s4']) . '", - "' . mysql_real_escape_string($_POST['s5']) . '", - "' . mysql_real_escape_string($_POST['s6']) . '", - "' . time() . '" - )' - ); - $u->error = 'Профиль "' . $_POST['set_name'] . '" был создан.'; - } - } -} elseif (isset($_GET['use'])) { - $set_x = mysql_fetch_array( - mysql_query( - 'SELECT * FROM `ruine_sets` WHERE `uid` = "' . $u->info['id'] . '" AND `id` = "' . mysql_real_escape_string( - $_GET['use'] - ) . '" LIMIT 1' - ) - ); - if (isset($set_x['id'])) { - mysql_query('UPDATE `ruine_sets` SET `use` = 0 WHERE `uid` = "' . $u->info['id'] . '"'); - mysql_query('UPDATE `ruine_sets` SET `use` = 1 WHERE `id` = "' . $set_x['id'] . '" LIMIT 1'); - $u->error = 'Профиль "' . $set_x['name'] . '" был установлен по умолчанию.'; - } -} elseif (isset($_GET['delete'])) { - $set_x = mysql_fetch_array( - mysql_query( - 'SELECT * FROM `ruine_sets` WHERE `uid` = "' . $u->info['id'] . '" AND `id` = "' . mysql_real_escape_string( - $_GET['delete'] - ) . '" LIMIT 1' - ) - ); - if (isset($set_x['id'])) { - mysql_query('DELETE FROM `ruine_sets` WHERE `id` = "' . $set_x['id'] . '" LIMIT 1'); - $u->error = 'Профиль "' . $set_x['name'] . '" был стерт.'; - } -} - -?> - - - - - Старый Бойцовский Клуб - Профили характеристик - - - - - - -

Профили характеристик


-error != '') { - echo '
' . $u->error . '

'; -} -?> -Статы не позволяют сходить в руины? Раскиньте ваши статы так, как вы хотите, и участвуйте в турнире! Выбранный по -умолчанию профиль, загрузится сам. Вы можете создавать до двадцати профилей и менять их за секунды до турнира! -

- - - - - - - info['id'] . '" ORDER BY `time` DESC'); - while ($pl = mysql_fetch_array($sp)) { - ?> - - - - - - -
НазваниеПо умолчаниюУдалить
- - Установить - - По умолчанию - удалить
-Нет сохраненных профилей'; -} -?> -
- -

-
-
-
- Название:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ХарактеристикаЗначение
Сила
Ловкость
Интуиция
Выносливость
Интеллект
Мудрость
Свободных статов
-
- -
- - - diff --git a/ruins.php b/ruins.php deleted file mode 100644 index 251d1220..00000000 --- a/ruins.php +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - -Лог Руин Старого Замка - - - - -
Обновить
- -

                      # Руинный турнир в Старом Замке

-'.date('d.m.Y H:i',$pl['time']).' '.$pl['text']; - $html .= '
'; -} -if( $html == '' ) { - $html = '
Лог был потерян, либо турнир не найден
'; -} -echo $html; $html = ''; -?> - -

-

Старый Бойцовский Клуб © , «www.new-combats.com»™    
-

- - - From 5f9d3b85bf226f488f9e4cba8263655bfc76c48c Mon Sep 17 00:00:00 2001 From: Ivor Barhansky Date: Mon, 29 Apr 2024 17:22:11 +0300 Subject: [PATCH 05/18] =?UTF-8?q?=D0=A3=D0=B1=D0=BE=D1=80=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B5=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83?= =?UTF-8?q?=D0=B5=D0=BC=D1=8B=D1=85=20=D0=BE=D1=82=D1=81=D1=8B=D0=BB=D0=BE?= =?UTF-8?q?=D0=BA=20=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3?= =?UTF-8?q?=D1=83=D1=80=D0=B0=D1=86=D0=B8=D1=8E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _incl_data/class/Battle/Finish.php | 406 ++++++++++++++--------------- _incl_data/class/Core/Config.php | 63 ++--- _incl_data/class/User.php | 11 - clans_inf.php | 2 - forum_script/index.php | 8 +- main.php | 2 +- modules_data/_friends.php | 1 - modules_data/_transfers.php | 1 - modules_data/_zv.php | 5 +- obraz.php | 8 +- register.php | 2 +- repass.php | 2 +- settings.php | 2 +- 13 files changed, 232 insertions(+), 281 deletions(-) diff --git a/_incl_data/class/Battle/Finish.php b/_incl_data/class/Battle/Finish.php index 0a55c7f4..ea7b96e7 100644 --- a/_incl_data/class/Battle/Finish.php +++ b/_incl_data/class/Battle/Finish.php @@ -54,7 +54,7 @@ class Finish } } } - + //данные о игроках в бою $t = Db::getRows( @@ -125,7 +125,7 @@ class Finish } $this->battle->i->setPlayerC(); - + Db::sql('update battle set players_c = ? where id = ?', [$this->battle->i->getPlayersC(), $this->battle->i->id]); if (!empty($vtvl)) { @@ -255,8 +255,7 @@ class Finish mysql_query( 'INSERT INTO `dungeon_items` (`dn`,`item_id`,`time`,`x`,`y`) VALUES ( - "' . $this->battle->users[$i]['dnow'] . '","' . $plik['item_id'] . '","' . (time( - ) - 600) . '","' . $this->battle->users[$i]['x'] . '","' . $this->battle->users[$i]['y'] . '" + "' . $this->battle->users[$i]['dnow'] . '","' . $plik['item_id'] . '","' . (time() - 600) . '","' . $this->battle->users[$i]['x'] . '","' . $this->battle->users[$i]['y'] . '" )' ); } @@ -488,8 +487,7 @@ class Finish 'UPDATE `users` SET `battle` = "0" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' ); mysql_query( - 'UPDATE `stats` SET `zv` = "0",`team` = "0",`exp` = `exp` + `battle_exp`,`battle_exp` = "0",`battle_yron` = "0",`enemy` = "0", `timeGo` = "' . time( - ) . '" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' + 'UPDATE `stats` SET `zv` = "0",`team` = "0",`exp` = `exp` + `battle_exp`,`battle_exp` = "0",`battle_yron` = "0",`enemy` = "0", `timeGo` = "' . time() . '" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' ); mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" LIMIT 100'); } @@ -687,8 +685,7 @@ class Finish } } mysql_query( - 'UPDATE `dungeon_bots` SET `delete` = "' . time( - ) . '" AND `inBattle` = "' . $this->battle->i->id . '" WHERE `dn` = "' . $this->battle->i->dnId . '" AND `for_dn` = "0" AND `delete` = "0" ' + 'UPDATE `dungeon_bots` SET `delete` = "' . time() . '" AND `inBattle` = "' . $this->battle->i->id . '" WHERE `dn` = "' . $this->battle->i->dnId . '" AND `for_dn` = "0" AND `delete` = "0" ' ); } else { //выкидываем всех игроков в клетку RESTART @@ -722,7 +719,7 @@ class Finish $this->expCoef += $this->battle->stats[$i]['pbe']; } - if ($this->battle->i->razdel == 5 && (Config::get('m') >= 6 && Config::get('m') <= 8 || Config::get('w') == 0 || Config::get('w') == 6)) { + if ($this->battle->i->razdel == 5 && (date('m') >= 6 && date('m') <= 8 || date('w') == 0 || date('w') == 6)) { $this->expCoef += 5; } @@ -1032,13 +1029,13 @@ class Finish ]; $admn = $admn[$this->battle->users[$i]['level']]; - if (Config::get('m') >= 6 && Config::get('m') <= 8) { + if (date('m') >= 6 && date('m') <= 8) { //Летний период - if (Config::get('w') == 0 || Config::get('w') == 5 || Config::get('w') == 6) { + if (date('w') == 0 || date('w') == 5 || date('w') == 6) { //Выходные дни $admn = $admn * 2; } - } elseif (Config::get('w') == 0 || Config::get('w') == 5 || Config::get('w') == 6) { + } elseif (date('w') == 0 || date('w') == 5 || date('w') == 6) { //Выходные дни $admn = $admn * 2; } @@ -1290,17 +1287,14 @@ class Finish } if ($this->battle->users[$i]['battle_yron'] > 0) { mysql_query( - 'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","478","111","' . $this->battle->users[$i]['id'] . '","Право на подвиг","pravonapodvig=1","' . time( - ) . '")' + 'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","478","111","' . $this->battle->users[$i]['id'] . '","Право на подвиг","pravonapodvig=1","' . time() . '")' ); } mysql_query( - 'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->battle->users[$i]['id'] . '","' . time( - ) . '","capitalcity","' . $this->battle->users[$i]['room'] . '","end_trup"," ","","")' + 'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->battle->users[$i]['id'] . '","' . time() . '","capitalcity","' . $this->battle->users[$i]['room'] . '","end_trup"," ","","")' ); mysql_query( - 'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","479","112","' . $u->info['id'] . '","Защита от нападения","zashitatk=1","' . time( - ) . '")' + 'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","479","112","' . $u->info['id'] . '","Защита от нападения","zashitatk=1","' . time() . '")' ); $ritem = rand(1, 1000); if ($ritem == 555) { @@ -1361,8 +1355,7 @@ class Finish 'UPDATE `rep` SET `rep3` = `rep3` + "' . $rzbvo . '" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' ); mysql_query( - 'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->battle->users[$i]['id'] . '","' . time( - ) . '","capitalcity","' . $this->battle->users[$i]['room'] . '","end_xaot"," ","","")' + 'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->battle->users[$i]['id'] . '","' . time() . '","capitalcity","' . $this->battle->users[$i]['room'] . '","end_xaot"," ","","")' ); } @@ -1467,7 +1460,7 @@ class Finish $this->battle->users[$i]['id'], ] ); - + if ($this->battle->i->turnir == 0) { //пишем в чат $cmsg->setTo($this->battle->users[$i]['login']); @@ -1514,17 +1507,19 @@ class Finish } - private function addItemToItemsLocal(int $itemId, int $uid, string $data = ''): void + /** + * Сохраняем лог в архив + * @return void + */ + private function saveLogs(): void { Db::sql( - "insert into items_local (room, time, item_id, data, tr_login, colvo) values (?,unix_timestamp(),?,?,?,1)", - [ - $this->battle->users[$this->battle->uids[$uid]]['room'], - $itemId, - $data, - $this->battle->users[$this->battle->uids[$uid]]['login'], - ] + 'insert into battle_logs_save select id, time, battle, id_hod, text, vars, zona1, zonb1, zona2, zonb2, type from battle_logs where battle = ? and id_hod <= ?', + [$this->battle->i->id, $this->battle->hodID] ); + Db::sql('delete from battle_logs where battle = ?', [$this->battle->i->id]); + Db::sql('delete from battle_stat where battle < ?', [$this->battle->i->id - 100]); + Db::sql('delete from battle_actions where btl = ?', [$this->battle->i->id]); } private function addGlobalItems($bid, $uid, $itm, $ico, $exp, $cr, $ecr): void @@ -1583,159 +1578,53 @@ class Finish $this->addGlobalItemItm($itm, $uid, $cmsg, $chat); } - /** - * Сохраняем лог в архив - * @return void - */ - private function saveLogs(): void + private function addGlobalItemsDropsOnMainStreet(int $bid, int $uid): void { - Db::sql( - 'insert into battle_logs_save select id, time, battle, id_hod, text, vars, zona1, zonb1, zona2, zonb2, type from battle_logs where battle = ? and id_hod <= ?', - [$this->battle->i->id, $this->battle->hodID] - ); - Db::sql('delete from battle_logs where battle = ?', [$this->battle->i->id]); - Db::sql('delete from battle_stat where battle < ?', [$this->battle->i->id - 100]); - Db::sql('delete from battle_actions where btl = ?', [$this->battle->i->id]); + //Выпадение дропа на ЦП + $mf = Db::getValue('select floor(count(id) / 20) as c from users where online > unix_timestamp() - 120'); + $mf = mt_rand(1, max($mf, 1)); + if ($bid == 1008) { + //Старый Новый Год + for ($i = 0; $i < $mf; $i++) { + if (mt_rand(0, 1) === 1) { + continue; + } + if (mt_rand(0, 86) <= 71) { + for ($j = 1; $j <= 7; $j++) { + $this->addItemToItemsLocal(1000, $uid, '|nosale=1|srok=259200'); + } + } else { + $customs = [911, 1172, 1173, 1461, 1462, 1463, 2141, 2142, 2143, 2144, 2870, 4037, 4038, 4039, 4040]; + $this->addItemToItemsLocal($customs[array_rand($customs)], $uid, '|nosale=1|srok=259200'); + } + } + } elseif ($bid == 1007) { + //Хэллоуин, Тыквоголовый CAPITAL CITY + for ($i = 0; $i < $mf; $i++) { + if (mt_rand(0, 1) === 1) { + continue; + } + $this->addItemToItemsLocal(4504, $uid); + } + } elseif ($bid == 1006 && mt_rand(1, 10) === 1 || in_array($bid, range(1000, 1004))) { + //Трупожор CAPITAL CITY + $this->addItemToItemsLocal(4451, $uid, 'srok=2592000'); + } + + } - private function dieInDungeon(int $dnr, int $i, User $u, ChatMessage $cmsg, Chat $chat): void + private function addItemToItemsLocal(int $itemId, int $uid, string $data = ''): void { - if ($dnr != 1) { - return; - } - - $vars = $this->battle->users[$i]['room'] == 370 ? 'dielaba' : 'die'; - $dies = Actions::countDungeon( - $this->battle->users[$i]['dnow'], - $this->battle->users[$i]['id'], - $vars + Db::sql( + "insert into items_local (room, time, item_id, data, tr_login, colvo) values (?,unix_timestamp(),?,?,?,1)", + [ + $this->battle->users[$this->battle->uids[$uid]]['room'], + $itemId, + $data, + $this->battle->users[$this->battle->uids[$uid]]['login'], + ] ); - Actions::addDungeon( - $this->battle->users[$i]['dnow'], - $this->battle->users[$i]['id'], - $this->battle->users[$i]['x'], - $this->battle->users[$i]['y'], - $vars - ); - - $la = $this->battle->users[$i]['sex'] == 1 ? 'ла' : ''; - - if ($dies < 2 || $this->battle->i->dungeon == 15) { - - $shaibaItemId = Db::getValue('select id from items_users where uid = ? and item_id = 4910 limit 1', [$this->battle->users[$i]['id']]); - - if ($shaibaItemId) { - //выбрасываем шайбу - ItemsModel::delete($shaibaItemId); - Db::sql( - "insert into dungeon_obj (name, dn, x, y, img, action, w, h, os1, os2, os3, date) - values ('Шайба',?,?,?,'shaiba.png','fileact:15/shaiba',120,220,5,8,12,?)", - [ - $this->battle->i->dnId, - $this->battle->users[$i]['x'], - $this->battle->users[$i]['y'], - "{use:'takeit',rt1:69,rl1:-47,rt2:74,rl2:126,rt3:76,rl3:140,rt4:80,rl4:150}", - ] - ); - } - - //телепортируем в рестарт (координата 0х0) - $this->battle->users[$i]['x'] = $this->battle->users[$i]['res_x']; - $this->battle->users[$i]['y'] = $this->battle->users[$i]['res_y']; - $this->battle->users[$i]['s'] = $this->battle->users[$i]['res_s']; - - $roomName = Db::getValue('select name from room where id = ?', [(int)$this->battle->users[$i]['room']]); - - $reviveRoomName = $this->battle->users[$i]['room'] == 370 ? 'начале лабиринта' : "комнате «{$roomName}»"; - $rtxt = "{$this->battle->users[$i]['login']} трагически погиб$la и находится в $reviveRoomName"; - - } elseif ($this->battle->i->dungeon == 102) { - $nld = ''; - $lab = Db::getRow('select id, users from laba_now where id = ?', [$this->battle->users[$i]['id']]); - - if ($lab['users'] < 2) { - //Удаляем подземелье - Db::sql('delete from laba_now where id = ?', [$lab['id']]); - Db::sql('delete from laba_map where id = ?', [$lab['id']]); - Db::sql('delete from laba_obj where lib = ?', [$lab['id']]); - Db::sql('delete from laba_act where lib = ?', [$lab['id']]); - Db::sql('delete from laba_itm where lib = ?', [$lab['id']]); - } else { - $lab['users']--; - mysql_query( - 'UPDATE `laba_now` SET `users` = "' . $lab['users'] . '" WHERE `id` = "' . $lab['id'] . '" LIMIT 1' - ); - } - mysql_query( - 'UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' - ); - mysql_query( - 'UPDATE `users` SET `room` = "369" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' - ); - //удаляем все предметы которые пропадают после выхода из пещеры - mysql_query( - 'UPDATE `items_users` SET `delete` = "' . time( - ) . '" WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" AND `delete` < 1234567890 AND `inShop` = "0" AND (`dn_delete` = "1" OR `data` LIKE "%fromlaba=1%")' - ); - if ($this->battle->users[$i]['login'] != '') { - if ($this->battle->users[$i]['sex'] == 0) { - $rtxt = '' . $this->battle->users[$i]['login'] . ' трагически погиб без права на воскрешение и покидает подземелье' . $nld; - } else { - $rtxt = '' . $this->battle->users[$i]['login'] . ' трагически погибла без права на воскрешение и покидает подземелье' . $nld; - } - } - } else { - $tinf = mysql_fetch_array( - mysql_query( - 'SELECT `uid` FROM `dungeon_now` WHERE `id` = "' . $this->battle->i->dnId . '" LIMIT 1' - ) - ); - $nld = ''; - if ($tinf['uid'] == $this->battle->users[$i]['id']) { - $tinf = mysql_fetch_array( - mysql_query( - 'SELECT `id` FROM `stats` WHERE `dnow` = "' . $this->battle->i->dnId . '" AND `hpNow` >= 1 LIMIT 1' - ) - ); - if (isset($tinf['id'])) { - $tinf = mysql_fetch_array( - mysql_query( - 'SELECT `id`,`login` FROM `users` WHERE `id` = "' . $tinf['id'] . '" LIMIT 1' - ) - ); - $nld .= ', новым лидером становится "' . $tinf['login'] . '"'; - mysql_query( - 'UPDATE `dungeon_now` SET `uid` = "' . $tinf['id'] . '" WHERE `id` = "' . $this->battle->i->dnId . '" LIMIT 1' - ); - } - } - - mysql_query( - 'UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' - ); - mysql_query( - 'UPDATE `users` SET `room` = "321" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' - ); - //удаляем все предметы которые пропадают после выхода из пещеры - mysql_query( - 'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" AND `dn_delete` = "1" LIMIT 1000' - ); - mysql_query( - 'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u->info['id'] . '" AND `item_id` = "1189" OR `item_id` = "4447" OR `item_id` = "1174") LIMIT 1000' - ); - - if ($this->battle->users[$i]['sex'] == 0) { - $rtxt = '' . $this->battle->users[$i]['login'] . ' трагически погиб без права на воскрешение и покидает подземелье' . $nld; - } else { - $rtxt = '' . $this->battle->users[$i]['login'] . ' трагически погибла без права на воскрешение и покидает подземелье' . $nld; - } - } - if (!empty($rtxt)) { - $cmsg->setDn($this->battle->i->dnId); - $cmsg->setText($rtxt); - $cmsg->setTypeTime(1); - $chat->sendMsg($cmsg); - } } private function addGlobalItemsIco(string $ico, int $uid, ChatMessage $cmsg, Chat $chat): void @@ -1862,40 +1751,143 @@ class Finish } } - private function addGlobalItemsDropsOnMainStreet(int $bid, int $uid): void + private function dieInDungeon(int $dnr, int $i, User $u, ChatMessage $cmsg, Chat $chat): void { - //Выпадение дропа на ЦП - $mf = Db::getValue('select floor(count(id) / 20) as c from users where online > unix_timestamp() - 120'); - $mf = mt_rand(1, max($mf, 1)); - if ($bid == 1008) { - //Старый Новый Год - for ($i = 0; $i < $mf; $i++) { - if (mt_rand(0, 1) === 1) { - continue; - } - if (mt_rand(0, 86) <= 71) { - for ($j = 1; $j <= 7; $j++) { - $this->addItemToItemsLocal(1000, $uid, '|nosale=1|srok=259200'); - } - } else { - $customs = [911, 1172, 1173, 1461, 1462, 1463, 2141, 2142, 2143, 2144, 2870, 4037, 4038, 4039, 4040]; - $this->addItemToItemsLocal($customs[array_rand($customs)], $uid, '|nosale=1|srok=259200'); - } - } - } elseif ($bid == 1007) { - //Хэллоуин, Тыквоголовый CAPITAL CITY - for ($i = 0; $i < $mf; $i++) { - if (mt_rand(0, 1) === 1) { - continue; - } - $this->addItemToItemsLocal(4504, $uid); - } - } elseif ($bid == 1006 && mt_rand(1, 10) === 1 || in_array($bid, range(1000, 1004))) { - //Трупожор CAPITAL CITY - $this->addItemToItemsLocal(4451, $uid, 'srok=2592000'); + if ($dnr != 1) { + return; } + $vars = $this->battle->users[$i]['room'] == 370 ? 'dielaba' : 'die'; + $dies = Actions::countDungeon( + $this->battle->users[$i]['dnow'], + $this->battle->users[$i]['id'], + $vars + ); + Actions::addDungeon( + $this->battle->users[$i]['dnow'], + $this->battle->users[$i]['id'], + $this->battle->users[$i]['x'], + $this->battle->users[$i]['y'], + $vars + ); + $la = $this->battle->users[$i]['sex'] == 1 ? 'ла' : ''; + + if ($dies < 2 || $this->battle->i->dungeon == 15) { + + $shaibaItemId = Db::getValue('select id from items_users where uid = ? and item_id = 4910 limit 1', [$this->battle->users[$i]['id']]); + + if ($shaibaItemId) { + //выбрасываем шайбу + ItemsModel::delete($shaibaItemId); + Db::sql( + "insert into dungeon_obj (name, dn, x, y, img, action, w, h, os1, os2, os3, date) + values ('Шайба',?,?,?,'shaiba.png','fileact:15/shaiba',120,220,5,8,12,?)", + [ + $this->battle->i->dnId, + $this->battle->users[$i]['x'], + $this->battle->users[$i]['y'], + "{use:'takeit',rt1:69,rl1:-47,rt2:74,rl2:126,rt3:76,rl3:140,rt4:80,rl4:150}", + ] + ); + } + + //телепортируем в рестарт (координата 0х0) + $this->battle->users[$i]['x'] = $this->battle->users[$i]['res_x']; + $this->battle->users[$i]['y'] = $this->battle->users[$i]['res_y']; + $this->battle->users[$i]['s'] = $this->battle->users[$i]['res_s']; + + $roomName = Db::getValue('select name from room where id = ?', [(int)$this->battle->users[$i]['room']]); + + $reviveRoomName = $this->battle->users[$i]['room'] == 370 ? 'начале лабиринта' : "комнате «{$roomName}»"; + $rtxt = "{$this->battle->users[$i]['login']} трагически погиб$la и находится в $reviveRoomName"; + + } elseif ($this->battle->i->dungeon == 102) { + $nld = ''; + $lab = Db::getRow('select id, users from laba_now where id = ?', [$this->battle->users[$i]['id']]); + + if ($lab['users'] < 2) { + //Удаляем подземелье + Db::sql('delete from laba_now where id = ?', [$lab['id']]); + Db::sql('delete from laba_map where id = ?', [$lab['id']]); + Db::sql('delete from laba_obj where lib = ?', [$lab['id']]); + Db::sql('delete from laba_act where lib = ?', [$lab['id']]); + Db::sql('delete from laba_itm where lib = ?', [$lab['id']]); + } else { + $lab['users']--; + mysql_query( + 'UPDATE `laba_now` SET `users` = "' . $lab['users'] . '" WHERE `id` = "' . $lab['id'] . '" LIMIT 1' + ); + } + mysql_query( + 'UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' + ); + mysql_query( + 'UPDATE `users` SET `room` = "369" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' + ); + //удаляем все предметы которые пропадают после выхода из пещеры + mysql_query( + 'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" AND `delete` < 1234567890 AND `inShop` = "0" AND (`dn_delete` = "1" OR `data` LIKE "%fromlaba=1%")' + ); + if ($this->battle->users[$i]['login'] != '') { + if ($this->battle->users[$i]['sex'] == 0) { + $rtxt = '' . $this->battle->users[$i]['login'] . ' трагически погиб без права на воскрешение и покидает подземелье' . $nld; + } else { + $rtxt = '' . $this->battle->users[$i]['login'] . ' трагически погибла без права на воскрешение и покидает подземелье' . $nld; + } + } + } else { + $tinf = mysql_fetch_array( + mysql_query( + 'SELECT `uid` FROM `dungeon_now` WHERE `id` = "' . $this->battle->i->dnId . '" LIMIT 1' + ) + ); + $nld = ''; + if ($tinf['uid'] == $this->battle->users[$i]['id']) { + $tinf = mysql_fetch_array( + mysql_query( + 'SELECT `id` FROM `stats` WHERE `dnow` = "' . $this->battle->i->dnId . '" AND `hpNow` >= 1 LIMIT 1' + ) + ); + if (isset($tinf['id'])) { + $tinf = mysql_fetch_array( + mysql_query( + 'SELECT `id`,`login` FROM `users` WHERE `id` = "' . $tinf['id'] . '" LIMIT 1' + ) + ); + $nld .= ', новым лидером становится "' . $tinf['login'] . '"'; + mysql_query( + 'UPDATE `dungeon_now` SET `uid` = "' . $tinf['id'] . '" WHERE `id` = "' . $this->battle->i->dnId . '" LIMIT 1' + ); + } + } + + mysql_query( + 'UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' + ); + mysql_query( + 'UPDATE `users` SET `room` = "321" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' + ); + //удаляем все предметы которые пропадают после выхода из пещеры + mysql_query( + 'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" AND `dn_delete` = "1" LIMIT 1000' + ); + mysql_query( + 'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u->info['id'] . '" AND `item_id` = "1189" OR `item_id` = "4447" OR `item_id` = "1174") LIMIT 1000' + ); + + if ($this->battle->users[$i]['sex'] == 0) { + $rtxt = '' . $this->battle->users[$i]['login'] . ' трагически погиб без права на воскрешение и покидает подземелье' . $nld; + } else { + $rtxt = '' . $this->battle->users[$i]['login'] . ' трагически погибла без права на воскрешение и покидает подземелье' . $nld; + } + } + if (!empty($rtxt)) { + $cmsg->setDn($this->battle->i->dnId); + $cmsg->setText($rtxt); + $cmsg->setTypeTime(1); + $chat->sendMsg($cmsg); + } } public function getBtlstatus(): array diff --git a/_incl_data/class/Core/Config.php b/_incl_data/class/Core/Config.php index 056ab7b9..ad337cec 100644 --- a/_incl_data/class/Core/Config.php +++ b/_incl_data/class/Core/Config.php @@ -2,14 +2,16 @@ namespace Core; +use DateTime; + class Config { const EKR_RUB_PRICE = 30; const KR_TO_EKR_EXCHANGE = 500; const EKR_TO_KR_EXCHANGE = 200; + private const HOSTNAME = 'new-combats.tech'; + public const GAMENAME = 'Новый Бойцовский Клуб'; private static self $instance; - private static string $hostname = 'new-combats.tech'; - private static string $gamename = 'Бойцовский Клуб'; private function __construct() { @@ -27,75 +29,51 @@ class Config private static function subdomain(string $name): string { - return DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . $name . '.' . self::$hostname; + return DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . $name . '.' . self::HOSTNAME; } public static function get(?string $key = null) { - $c['ver'] = '1.8.3.7'; + $c['ver'] = '0.8.2 alpha'; /* Конфигурации игры */ - $c['name'] = 'Новый «' . self::$gamename . '»'; - $c['title'] = $c['name'] . ' - Бесплатная,браузерная онлайн игра'; //Название игры - $c['title2'] = ' - Бесплатная, онлайн игра посвященная сражениям и магии!'; - $c['title3'] = $c['name']; - $c['keys'] = self::$gamename . ', combats.com, ' . self::$gamename . ' игра, ' . self::$gamename . ' играть, игра ' . self::$gamename . ', старый ' . self::$gamename . ', ' . self::$gamename . ' онлайн игра, ' . self::$gamename . ' браузерная игра, играть в ' . $c['name'] . ', игра бк, бк игра, старый бк, играть в бк, бк онлайн игра, новый бк, Легендарный ' . $c['name'] . ', легендарный бк, combats, комбатс, combats ru, combats com, OldBK, oldbk ru, oldbk com, олдбк, old bk, олд бк, mycombats, rebk, recombats, oldcombats, obk2'; //Ключевые слова META - $c['desc'] = self::$gamename . ' – это бесплатная увлекательная браузерная онлайн игра 2004-2009г, в которой сконцентрировано все самое лучшее от современных онлайн игр. В этой браузерной игре заложены самые интересные традиции всем известной онлайн игры под названием «' . self::$gamename . ' 2004-2009», которая, кстати, стала первооткрывателем всех браузерных игр.'; //Описание META - $c['footer'] = $c['name'] . ' © 2013-' . date('Y'); + $c['title'] = self::GAMENAME . ' - Бесплатная, браузерная онлайн игра'; //Название игры + $c['keys'] = self::GAMENAME . ', combats.com, ' . self::GAMENAME . ' игра, ' . self::GAMENAME . ' играть, игра ' . self::GAMENAME . ', старый ' . self::GAMENAME . ', ' . self::GAMENAME . ' онлайн игра, ' . self::GAMENAME . ' браузерная игра, играть в ' . self::GAMENAME . ', игра бк, бк игра, старый бк, играть в бк, бк онлайн игра, новый бк, Легендарный ' . self::GAMENAME . ', легендарный бк, combats, комбатс, combats ru, combats com, OldBK, oldbk ru, oldbk com, олдбк, old bk, олд бк, mycombats, rebk, recombats, oldcombats, obk2'; //Ключевые слова META + $c['desc'] = self::GAMENAME . ' – это бесплатная увлекательная браузерная онлайн игра 2004-2009г, в которой сконцентрировано все самое лучшее от современных онлайн игр. В этой браузерной игре заложены самые интересные традиции всем известной онлайн игры под названием «' . self::GAMENAME . ' 2004-2009», которая, кстати, стала первооткрывателем всех браузерных игр.'; //Описание META + $c['footer'] = self::GAMENAME . ' © 2013-' . date('Y'); //Сервера - $c['host'] = self::$hostname; + $c['host'] = self::HOSTNAME; $c['forum'] = self::subdomain('forum'); - $c['img'] = 'img.' . self::$hostname; - $c['thiscity'] = 'capitalcity'; - $c['capitalcity'] = self::$hostname; - $c['abandonedplain'] = self::$hostname; - $c['https'] = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . self::$hostname; + $c['img'] = 'img.' . self::HOSTNAME; + $c['https'] = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . self::HOSTNAME; $c['img2'] = self::subdomain('img'); - $c['lib'] = self::subdomain('lib'); $c['exit'] = ""; - $c['support'] = 'support@' . $c['host']; - - - //Валюта - $c['curency_name'] = 'RUB'; - $c['curency_value'] = 30; + $c['support'] = 'support@' . self::HOSTNAME; //Бот клон $c['bot_level'] = 0; // до какого лвл бот (включительно) $c['propsk_die'] = 0; //Смерть при пропуске ходов, 0 - выкл. , >= 1 - количество пропусков до смерти при нападении - //Скупка $c['exp'] = 0; //бонус опыта - $c['shop_type1'] = 100; //в гос НЕ ТРОГАТЬ + + //Скупка $c['shop_type2'] = 90; //в березку НЕ ТРОГАТЬ $c['shop_all'] = 0; //Скупка на все! , 0 - сделать для отключения скупки. $c['shop_all_type1'] = 100; //Скупка только с госе! , 0 - сделать для отключения скупки. $c['shop_all_type2'] = 100; //Скупка только с березки! , 0 - сделать для отключения скупки. // - $c['nosanich'] = true; //Странички Саныча не выпадают - true , выпадают - false - $c['zuby'] = false; //зубы + $c['limitedexp'] = false; //лимит опыта $c['expstop'] = 2999999; //9; //Опыт на котором останавливаемся 11 149999999 $c['expstopu'] = 2999999; //Опыт на котором останавливаемся $c['noobgade'] = false; //нуб квест (пещера) - $c['level_ransfer'] = 8; //С какого уровня разрешены передачи - + $c['level_transfer'] = 8; //С какого уровня разрешены передачи $c['noitembuy'] = false; //Не требует ресурсы для покупки $c['effz'] = 0; //Скольким секундам равен заряд $c['money_haot'] = true; //кр за хаоты - $c['crtoecr'] = 500; //Курс обмена кр на екр (если 0, то выключено) - $c['ecrtocr'] = 200; //Курс обмена екр на кр $c['bonuslevel'] = true; //Бонус уровня $c['bonussocial'] = false; //Бонус социальный - $c['w'] = date('w'); - $c['m'] = date('m'); - - $c['counters'] = ''; - $c['counters_noFrm'] = ''; - $c['securetime'] = 0; //Время последнего возможного взлома персов (подбор пароля по базам данных других игр) - - $c['copyright'] = 'Copyright © ' . date('Y') . ' « Новый Бойцовский Клуб »'; $c['db_host'] = 'db'; $c['db_user'] = 'prod1'; $c['db_name'] = 'game_production'; @@ -110,4 +88,9 @@ class Config } return self::$instance; } + + public static function getCopyright(): string + { + return '©' . (new DateTime())->format('Y') . ' Copyright «' . self::GAMENAME . '». All Rights Reserved.'; + } } diff --git a/_incl_data/class/User.php b/_incl_data/class/User.php index 3a541255..26d74cfe 100644 --- a/_incl_data/class/User.php +++ b/_incl_data/class/User.php @@ -243,17 +243,6 @@ class User $this->statnames->getBonus(); $this->statnames->getRequirement(); - if (Core\Config::get('securetime') > 0) { - if (!defined('IP')) { - define('IP', $_SERVER['REMOTE_ADDR']); - } - - if (isset($this->info['id']) && ($this->info['ip'] != IP || $this->info['banned'] > 0) && $_SERVER['REQUEST_URI'] != '/') { - unset($this->info, $_COOKIE['login']); - die(Config::get('exit')); - } - } - if (!isset ($_COOKIE['btl'], $this->info['battle']) || $this->info['battle'] != $_COOKIE['btl']) { setcookie('btl', $this->info['battle'] ?? '', time() + 86400); } diff --git a/clans_inf.php b/clans_inf.php index 8af14e26..905176c1 100644 --- a/clans_inf.php +++ b/clans_inf.php @@ -21,7 +21,6 @@ if ($uplogin != 'delete' && $utf8Login != 'delete' && $utf8Login2 != 'delete') { if (!isset($clan['id'])) { die( ' - Произошла ошибка

@@ -29,7 +28,6 @@ if (!isset($clan['id'])) {

Назад


(c) ' . $c['title'] . '

- ' . $c['counters'] . ' ' ); } diff --git a/forum_script/index.php b/forum_script/index.php index 065b8c65..cf88fa86 100644 --- a/forum_script/index.php +++ b/forum_script/index.php @@ -1179,13 +1179,9 @@ function MM_jumpMenu(targ, selObj, restore) { //v3.0 From 023d9856eae3f87617608433fd591a2aa1439d76 Mon Sep 17 00:00:00 2001 From: Ivor Barhansky Date: Fri, 10 May 2024 14:32:06 +0300 Subject: [PATCH 11/18] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B8=D0=BD=D0=B3=20=D1=8F=D0=B2=D0=B0=D1=81=D0=BA?= =?UTF-8?q?=D1=80=D0=B8=D0=BF=D1=82=D0=BE=D0=B2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _incl_data/class/Battle.php | 110 ++++++++-------- _incl_data/class/Priems.php | 60 ++++----- js/btl_mini.js | 241 ++++++++++++++++-------------------- js/gameEngine.js | 4 +- jx/battle/refresh.php | 2 +- jx/battle/refresh1.php | 2 +- jx/battle/refresh2.php | 2 +- jx/battle/refresh_bot.php | 2 +- modules_data/btl_.php | 20 ++- 9 files changed, 205 insertions(+), 238 deletions(-) diff --git a/_incl_data/class/Battle.php b/_incl_data/class/Battle.php index 038581dc..fc683ae5 100644 --- a/_incl_data/class/Battle.php +++ b/_incl_data/class/Battle.php @@ -247,7 +247,7 @@ class Battle /** * @param int|null $experience - * @param bool $hardcore поединок с гарантированной травмой + * @param bool $hardcore поединок с гарантированной травмой * @return array|int[] */ public static function getType(?int $experience, bool $hardcore = false): array @@ -365,10 +365,10 @@ class Battle Db::sql( 'update stats set last_hp = ?, tactic7 = ? where id = ?', [ - $this->users[$this->uids[$uid]]['last_hp'], - $this->users[$this->uids[$uid]]['tactic7'], - $uid, - ] + $this->users[$this->uids[$uid]]['last_hp'], + $this->users[$this->uids[$uid]]['tactic7'], + $uid, + ] ); return (int)$hp; @@ -1139,9 +1139,9 @@ JS; /** * @param array $botLogins - * @param int $counter - * @param int $obr - * @param int $unique для совместимости с непонятным вызовом User->addAction + * @param int $counter + * @param int $obr + * @param int $unique для совместимости с непонятным вызовом User->addAction * при вызове уникального монстра. * @return void */ @@ -1231,14 +1231,14 @@ JS; /** Осторожно! Подключаются файлы!!! * Трогать очень осторожно. Этот шайтан как-то проверяет приёмы на враге * и рассчитывает урон учитывая и эти приёмы тоже. - * @param int $uid1 - * @param int $uid2 - * @param int $priem + * @param int $uid1 + * @param int $uid2 + * @param int $priem * @param $yron - * @param int $profil + * @param int $profil * @param bool $stabil * @param bool $test - * @param int $inlog + * @param int $inlog * @return float|int|mixed */ public function testYronPriem( @@ -1250,7 +1250,8 @@ JS; bool $stabil, bool $test = false, int $inlog = 0 - ): mixed { + ): mixed + { /** * profil = { @@ -1524,7 +1525,7 @@ JS; $jstext = json_encode($log['text']); $jsvars = json_encode($log['vars']); - $js = "add_log({$log['id']},0,$jstext,{$log['id_hod']},0,0,$jsvars)" . $js; + $js = "add_log({$log['id']},$jstext,{$log['id_hod']},$jsvars)" . $js; } Db::sql('update stats set alog = ? where id = ?', [$u->info['alog'], $u->info['id']]); @@ -1588,7 +1589,7 @@ JS; $jstext = json_encode($log['text']); $jsvars = json_encode($log['vars']); - $js = "add_mlog({$log['id']},0,$jstext,{$log['id_hod']},0,0,$jsvars)" . $js; + $js = "add_mlog({$log['id']},$jstext,{$log['id_hod']},$jsvars)" . $js; } Db::sql('update stats set mlog = ? where id = ?', [$u->info['mlog'], $u->info['id']]); @@ -1917,17 +1918,6 @@ JS; } } - /** - * Массово встречается в подключаемых файлах приёмов. - * @param array $arr - * @return void - * @deprecated - */ - public function add_log(array $arr): void - { - Log::add($arr); - } - private function botAtack($uid, $pl, $tp): void { $testAttack = Db::getValue('select count(id) from battle_act where battle = ? and uid1 in (?,?) and uid2 in(?,?) and uid1 != uid2', [$this->i->id, $pl, $uid, $pl, $uid]) === 0; @@ -1960,8 +1950,6 @@ JS; } } - //Используем приемы - public function startAtack($id): void { global $u, $priem; @@ -2410,12 +2398,14 @@ JS; Db::sql('delete from battle_act where id = ?', [$id]); } + //Используем приемы + /** Осторожно! Подключаются файлы!!! - * @param array $pl + * @param array $pl * @param $u1 - * @param int $t + * @param int $t * @param int|array $u2 - * @param string $rznm + * @param string $rznm * @return void */ public function delPriem( @@ -2424,7 +2414,8 @@ JS; int $t = 1, int|array $u2 = 0, string $rznm = 'Очиститься Кровью' - ): void { + ): void + { global $u, $priem; if (!isset($pl['priem']['id']) || isset($this->del_val['eff'][$pl['priem']['id']])) { return; @@ -2481,8 +2472,6 @@ JS; $this->stats[$this->uids[$pl['uid']]] = $u->getStats($pl['uid'], 0, 0, false, false, true); } - //Повторная проверка приемов - /** * Расчет количества блоков и противников? * @param $uid @@ -2561,7 +2550,7 @@ JS; } } - //Проверка действия приема + //Повторная проверка приемов /** * Магия предметов? @@ -2594,7 +2583,7 @@ JS; } } - //Проверка урона приемов + //Проверка действия приема private function newRazmen($id): array { @@ -2615,6 +2604,8 @@ JS; return $at; } + //Проверка урона приемов + private function usersTestAtack($id, $uid1, $uid2): array { $r = []; @@ -2678,8 +2669,6 @@ JS; return $r; } - //Наносим удар между игроками - public function priemsRazmen(array|int $id, array|string $at): void { if ($at == 'fast') { @@ -2731,6 +2720,8 @@ JS; } } + //Наносим удар между игроками + /** Осторожно! Подключаются файлы!!! * @param $id * @param $at @@ -2952,10 +2943,6 @@ JS; return $at; } - - //Расчет типа удара от оружия - //Расчет урона от оружия - public function testPogB($uid, $yr, $pliid, $test = 0) { $checktuman = Db::getValue('select count(id) from eff_users where uid = ? and v2 in (273,286,287,288)', [$uid]) == 0; //проверка на туманный образ @@ -3056,6 +3043,8 @@ JS; return $yr2; } + + //Расчет типа удара от оружия //Расчет урона от оружия /** @@ -3223,8 +3212,7 @@ JS; return $at; } - - //Расчет защиты + //Расчет урона от оружия public function yhod_user($uid1, $uid2, $type) { @@ -3285,7 +3273,8 @@ JS; return $r; } - //Расчет защиты (магия) + + //Расчет защиты /** * Добавляем опыт \ нанесенный урон. @@ -3444,6 +3433,8 @@ JS; } } + //Расчет защиты (магия) + private function clearCache($uid): void { if ($uid <= 0 || isset($this->uclearc[$uid])) { @@ -3868,7 +3859,6 @@ JS; return '{' . $a . 'x' . $id . 'x' . $rnd . '}'; } - /** * Свиток спасения. * @@ -3995,7 +3985,8 @@ JS; $hodID, $tm1 = 0, $tm2 = 0 - ): void { + ): void + { $time = time(); if ($tm1 == 0) { $tm1 = isset($this->atacks[$id]) ? $this->atacks[$id]['time'] : $time; @@ -4029,8 +4020,6 @@ JS; Log::add($mas); } - //Расчет МФ - /** * Возращаем зоны блока? * @param $uid1 @@ -4047,6 +4036,8 @@ JS; } } + //Расчет МФ + private function saveStats($uid): void { Stats::saveBattleStats($this->stats[$this->uids[$uid]], $uid); @@ -4117,8 +4108,6 @@ JS; return $result ?: []; } - //Действия бота (атака) - /** * Смерть от пропуска ходов. Включается в конфиге. * @param int $id @@ -4151,7 +4140,7 @@ JS; } } - //Проверяем удары, приемы, свитки, зверей + //Действия бота (атака) private function addNewAtack(User $u): void { @@ -4237,7 +4226,7 @@ JS; } - //Действия бота + //Проверяем удары, приемы, свитки, зверей private function botAct($uid): bool { @@ -4254,6 +4243,19 @@ JS; return $r; } + //Действия бота + + /** + * Массово встречается в подключаемых файлах приёмов. + * @param array $arr + * @return void + * @deprecated + */ + public function add_log(array $arr): void + { + Log::add($arr); + } + /** * Запись выбранных ударов и блоков в массив $this->uAtc. * Технически это сеттер. diff --git a/_incl_data/class/Priems.php b/_incl_data/class/Priems.php index 700d7230..417fb473 100644 --- a/_incl_data/class/Priems.php +++ b/_incl_data/class/Priems.php @@ -108,7 +108,7 @@ class Priems /** используем прием каждый ход * @param Battle $btl - * @param array $eff + * @param array $eff * @return bool */ public function hodUsePriem(Battle $btl, array $eff): bool @@ -466,11 +466,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 */ @@ -786,7 +786,8 @@ class Priems $krituet = true, $heal = 0, $namenew = null - ) { + ) + { $trawm_off = false; global $btl; if ($namenew != null) { @@ -965,8 +966,7 @@ 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->i->id, @@ -1579,13 +1579,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 @@ -1614,7 +1614,8 @@ 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]); @@ -1732,8 +1733,8 @@ class Priems /** Получает строку data c шаблонной записью типа add_m11=2*{lvl1} и конвертирует в реальную строку. *
Шаблон:
lvl1 = $uid[level]
ts5 = $uid[s5]
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) @@ -1981,8 +1982,7 @@ class Priems } else { //бьем противника с пропуском хода mysql_query( - 'INSERT INTO `battle_act` (`battle`,`uid1`,`uid2`,`time`,`out1`,`type`,`tpo1`) VALUES ("' . $btl->i->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->i->id . '","' . $this->u->info['id'] . '","' . $this->u->info['enemy'] . '","' . time() . '","1","1","2")' ); } } @@ -2086,11 +2086,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 { @@ -2172,7 +2172,7 @@ class Priems /** * Летит в js, двойные кавычки не использовать. * @param array $pl - * @param int $id + * @param int $id * @return array */ private function priemInfo(array $pl, int $id = -1): array @@ -2281,11 +2281,11 @@ class Priems $cl = 'href="javascript:void(0);" onClick="top.priemOnUser(' . $i . ',1,\'' . $pl['name'] . '\',\'' . $oninuser . '\',\'' . $pl['img'] . '\');"'; unset($oninuser); } else { - $cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ',1,\'' . $pl['img'] . '\');"'; + $cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ');"'; } } elseif ($pl['type'] == 2) { //длительное - $cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ',1,\'' . $pl['img'] . '\');"'; + $cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ');"'; } elseif ($pl['type'] == 3) { $cl = 'href="javascript:void(0);" onClick="alert(\'Возможно используем?\');"'; } @@ -2328,7 +2328,7 @@ class Priems 1 ); if (!isset($use_lst['id'])) { - $pr .= ''; + $pr .= ''; } else { $pr .= ''; } @@ -2787,7 +2787,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 */ @@ -2819,7 +2819,7 @@ class Priems * Если есть одинаковые статы из них выбирается случайный. * Файл:267, приём 268. Понимай как хочешь. * @param $id - * @param array $pl + * @param array $pl * @param Battle $btl * @return void */ diff --git a/js/btl_mini.js b/js/btl_mini.js index 37d3f1b8..5f1b5179 100644 --- a/js/btl_mini.js +++ b/js/btl_mini.js @@ -27,94 +27,90 @@ function magic_div(id, name, img, title) { } function testClearZone() { - if (top.slcbrc[4] == 0) { + if (top.slcbrc[4] === 0) { all_radio_off(); } } -async function usepriem(id, t, img) { - if (t == 1) { - irn++; +async function usepriem(id) { + irn++; + await $.post(`jx/battle/refresh.php?rnd=${ggcode}&irn=${irn}`, { + idlog: top.id_log, + usepriem: id, + useon: use_on_pers + }, function (data) { + $("#ref").html(data); + }); + use_on_pers = 'none'; + top.goSit(1); +} + +async function useitem(id, use_item_on) { + irn++; + if (top.c.noEr === 0) { + top.c.noEr = 1; + clearTimeout(top.c.noErTmr); + top.c.noErTmr = setTimeout('top.c.noEr = 0;', 1000); await $.post(`jx/battle/refresh.php?rnd=${ggcode}&irn=${irn}`, { idlog: top.id_log, - usepriem: id, - useon: use_on_pers + useitem: id, + useitemon: use_item_on }, function (data) { $("#ref").html(data); }); - use_on_pers = 'none'; - top.goSit(1); - return } - return alert('Not found'); -} - -async function useitem(id, t, use_item_on) { - if (t == 1) { - irn++; - if (top.c.noEr == 0) { - top.c.noEr = 1; - clearTimeout(top.c.noErTmr); - top.c.noErTmr = setTimeout('top.c.noEr = 0;', 1000); - await $.post(`jx/battle/refresh.php?rnd=${ggcode}&irn=${irn}`, { - idlog: top.id_log, - useitem: id, - useitemon: use_item_on - }, function (data) { - $("#ref").html(data); - }); - } - return top.goSit(1); - } - return alert('Not found'); + return top.goSit(1); } function volna(id) { document.getElementById('volna').innerHTML = `Волна: ${id}`; } -function change_radioKeys(id, cper) { - var z = 0, t = 0, k = 0; - var i = 1, j = 1; +function change_radioKeys(id = 0) { + let jo; + let radio; + let z = 0, t = ''; + let i = 1, j = 1; while (i <= za) { j = 1; jo = 0; while (j <= 5) { - var radio = document.getElementById(`atack_${i}_${j}`); - if (radio != undefined) { - if (radio.className != null && radio.className == "radio_on") jo++; + radio = document.getElementById(`atack_${i}_${j}`); + if (radio) { + if (radio.className != null && radio.className === "radio_on") jo++; } j++; } - if (jo == 0 && z == 0) { + if (jo === 0 && z === 0) { z = i; t = 'atack'; } i++; } - if (z == 0) { - var i = 1, jo = 0; + if (z === 0) { + i = 1; + jo = 0; while (i <= 5) { - var radio = document.getElementById(`block_1_${i}`); - if (radio != undefined) { - if (radio.className != null && radio.className == "radio_on") jo++; + radio = document.getElementById(`block_1_${i}`); + if (radio) { + if (radio.className != null && radio.className === "radio_on") jo++; } i++; } - if (jo == 0 && z == 0) { + if (jo === 0 && z === 0) { z = 1; t = 'block'; } } - if ((z == 0 || id == 0) && cper == false) { + if (z === 0 || id === 0) { all_radio_off(); refleshPoints(); } if (z > 0) { - if (id == 0) { + if (id === 0) { //автовыставление } else change_radio(z, id, t, 1) } @@ -122,15 +118,15 @@ function change_radioKeys(id, cper) { function change_radio(id, zone, type, r) { radio_off(id, zone, type); - var radio = document.getElementById(`${type}_${id}_${zone}`); + const radio = document.getElementById(`${type}_${id}_${zone}`); - if (radio.className == "radio_on" && r == 0) { + if (radio.className === "radio_on" && r === 0) { radio.className = "radio_off"; - if (type == 'atack') zas[id] = 0; + if (type === 'atack') zas[id] = 0; else zbs[id] = 0; } else { radio.className = "radio_on"; - if (type == 'atack') zas[id] = zone; + if (type === 'atack') zas[id] = zone; else zbs[id] = zone; } refleshPoints(); @@ -142,17 +138,17 @@ function tactic(id, value) { function refleshPoints() { clearZone(); - var i = 5; + let i = 5; while (i >= 1) { - if (zas[i] == 0) lineAtack(i); + if (zas[i] === 0) lineAtack(i); i--; } - if (zbs[1] == 0) lineBlock(); + if (zbs[1] === 0) lineBlock(); } function lineAtack(id) { nos++; - var j = 1; + let j = 1; while (j <= 5) { document.getElementById(`zatack${id}_${j}`).className = 'zoneCh_yes'; j++; @@ -161,7 +157,7 @@ function lineAtack(id) { function lineBlock() { nos++; - var j = 1; + let j = 1; while (j <= 5) { document.getElementById(`zblock1_${j}`).className = 'zoneCh_yes'; j++; @@ -170,16 +166,16 @@ function lineBlock() { function clearZone() { nos = 0; - var i = 1; + let i = 1; while (i <= 5) { - var j = 1; + let j = 1; while (j <= 5) { document.getElementById(`zatack${i}_${j}`).className = 'zoneCh_no'; j++; } i++; } - var i = 1; + i = 1; while (i <= 5) { document.getElementById(`zblock1_${i}`).className = 'zoneCh_no'; i++; @@ -187,9 +183,9 @@ function clearZone() { } function select_atack(id, r) { - var i = 5; + let i = 5; while (i >= 1) { - if (zas[i] == 0) { + if (zas[i] === 0) { if (i <= za) sel_atack = i } i--; @@ -201,11 +197,11 @@ function select_atack(id, r) { } function radio_off(id, zone, type) { - var i = 1; + let i = 1; while (i <= 5) { - if (document.getElementById(`${type}_${id}_${i}`) != undefined && i != zone) { + if (document.getElementById(`${type}_${id}_${i}`) && i !== zone) { document.getElementById(`${type}_${id}_${i}`).className = "radio_off"; - if (type == 'atack') zas[id] = 0; + if (type === 'atack') zas[id] = 0; else zbs[id] = 0; } i++; @@ -213,9 +209,9 @@ function radio_off(id, zone, type) { } function all_radio_off() { - var i = 1; + let i = 1; while (i <= 5) { - var j = 1; + let j = 1; while (j <= 5) { document.getElementById(`atack_${j}_${i}`).className = "radio_off"; j++; @@ -228,11 +224,11 @@ function all_radio_off() { } function genZoneBlock() { - var i = 1; + let i = 1; while (i <= 5) { - var j = 1; + let j = 1; while (j <= 3) { - if (j == zb) { + if (j === zb) { document.getElementById(`txtb${i}_${j}`).style.display = ''; } else { document.getElementById(`txtb${i}_${j}`).style.display = 'none'; @@ -244,9 +240,9 @@ function genZoneBlock() { } function genZoneAtack() { - var i = 1; + let i = 1; while (i <= 5) { - var j = 1; + let j = 1; while (j <= 5) { if (i <= za) { document.getElementById(`zatack${i}_${j}`).style.display = ''; @@ -263,16 +259,13 @@ function genteam(team) { document.getElementById('teams').innerHTML = team; } -var t057 = null; -var battle_end = 0; - -async function reflesh(bl) { +async function reflesh() { irn++; if (battleFinishData != -1) mainstatus(0); - if ((battle_end == 0 || bl != null) && battleFinishData == -1) { - if (top.c.noEr == 0) { + if (battleFinishData == -1) { + if (top.c.noEr === 0) { top.c.noEr = 1; clearTimeout(top.c.noErTmr); top.c.noErTmr = setTimeout('top.c.noEr = 0;', 1000); @@ -289,21 +282,21 @@ async function reflesh(bl) { $("#ref").html(data); }); } - if (g_iCount != 45) g_iCount = 45; + if (g_iCount !== 45) g_iCount = 45; } } function autobattle() { - var i = 1; + let i = 1; while (i <= za) { - if (zas[i] == 0 || top.slcbrc[4] === 1) { - zas[i] = Math.floor(Math.random(5) * 5 + 1); + if (zas[i] === 0 || top.slcbrc[4] === 1) { + zas[i] = Math.floor(Math.random() * 5 + 1); change_radio(i, zas[i], 'atack', 1); } i++; } - if (zbs[1] == 0 || top.slcbrc[4] === 1) { - zbs[1] = Math.floor(Math.random(5) * 5 + 1); + if (zbs[1] === 0 || top.slcbrc[4] === 1) { + zbs[1] = Math.floor(Math.random() * 5 + 1); change_radio(1, zbs[1], 'block', 1); } } @@ -343,25 +336,27 @@ async function atack() { } -var g_iCount = Number(); var g_iCount = 45; -var tmr0057 = null; +let tmr0057 = null; // 1.1 function startCountdown() { - if (tmr0057 != null) clearTimeout(tmr0057); + if (tmr0057 !== null) clearTimeout(tmr0057); if ((g_iCount - 1) >= 0) { g_iCount -= 1; - return tmr0057 = setTimeout('startCountdown()', 1000); + return tmr0057 = setTimeout(startCountdown, 1000); } reflesh(); - return tmr0057 = setTimeout('startCountdown()', 1000); + return tmr0057 = setTimeout(startCountdown, 1000); } -var img_battle = ``; +let img_battle = ``; function mainstatus(id) { + id = +id; + if (isNaN(id)) id = 0; + if (smnpty <= 0) { $('#btn_down_img2').css({'display': 'none'}); } else { @@ -383,7 +378,7 @@ function mainstatus(id) { rand_img(); document.getElementById("player2").innerHTML = `
${img_battle}
`; document.getElementById('player2_login').style.display = 'none'; - } else if (id == 1) //Можно ударить противника ( доступный удар ) + } else if (id === 1) //Можно ударить противника ( доступный удар ) { document.getElementById('mainpanel').style.display = ''; // 4 document.getElementById('player2_login').style.display = ''; @@ -394,10 +389,10 @@ function mainstatus(id) { document.getElementById('go_btn').setAttribute("class", "buttons btnnew btnnew2"); document.getElementById('go_btn').setAttribute("onclick", "atackt();"); - if (document.getElementById('reflesh_btn') != undefined) { + if (document.getElementById('reflesh_btn')) { document.getElementById('reflesh_btn').style.display = 'none'; } - } else if (id == 2) //Ожидаем хода противника ( обновить ) + } else if (id === 2) //Ожидаем хода противника ( обновить ) { document.getElementById('mainpanel').style.display = 'none'; // 4 document.getElementById('mainpanel222').style.display = 'none'; // 4 @@ -410,7 +405,7 @@ function mainstatus(id) { document.getElementById('btn_down_img1').setAttribute("onclick", "reflesht();"); document.getElementById('reflesh_btn').setAttribute("class", "buttons btnnew btnnew2"); document.getElementById('reflesh_btn').setAttribute("onclick", "reflesht();"); - } else if (id == 3) // Проиграли. Ожидаем завершения поединка ( кнопка вернутся с поединка ) + } else if (id === 3) // Проиграли. Ожидаем завершения поединка ( кнопка вернутся с поединка ) { document.getElementById('mainpanel2').style.display = ''; // 4 document.getElementById('go_btn').style.display = 'none'; // 4 @@ -430,18 +425,14 @@ function mainstatus(id) { document.getElementById("player2").innerHTML = `
${img_battle}
`; document.getElementById('player2_login').style.display = 'none'; } - if (document.getElementById('mainpanel').style.display == '') { + if (!document.getElementById('mainpanel').style.display) { document.getElementById('mainpanel2').style.display = 'none'; } top.goSit(1); } function rand_img() { - if (level < 4) { - img_battle = ``; - return - } - img_battle = ``; + img_battle = ``; } var fstlh = 0; @@ -451,13 +442,13 @@ var id_log_ar = []; var id_log; var type_log = top.type_log; -function add_log(id, foryou, text, hod_id, my, last_hod, vars) { - if (top.des == 1) type_log = 0 +function add_log(id, text, hod_id, vars) { + if (top.des === 1) type_log = 0 else type_log = 1; - if (type_log == 1) { + if (type_log === 1) { chsee = 'chsee2'; - if (my == 1) chsee = 'chsee3' + //if(id_log_ar[id]!=id) //{ text = looklogrep(text, vars); @@ -465,7 +456,7 @@ function add_log(id, foryou, text, hod_id, my, last_hod, vars) { id_log = id; // if (top.frames['main'].document.getElementById("battle_log_" + hod_id + "") == undefined && hod_id != 1) { if (!top.frames['main'].document.getElementById(`battle_log_${hod_id}`) && hod_id != 1) { - if (fstlh == 0) fstlh = hod_id + if (fstlh === 0) fstlh = hod_id lsthd[lsti] = hod_id; lsti++; $(top.frames['main'].document.getElementById('battle_logg')).prepend(`
`); @@ -474,40 +465,40 @@ function add_log(id, foryou, text, hod_id, my, last_hod, vars) { } if (!top.frames['main'].document.getElementById(`log_id_${id}`)) { - $(top.frames['main'].document.getElementById(`battle_log_${hod_id}`)).prepend(`${text}
`); + $(top.frames['main'].document.getElementById(`battle_log_${hod_id}`)).prepend(`${text}
`); } //} - if (top.frames['main'].document.getElementById(`battle_log_${hod_id - 25}`) != undefined) { + if (top.frames['main'].document.getElementById(`battle_log_${hod_id - 25}`)) { top.rmve(`#battle_log_${hod_id - 25}`); } return } chsee = 'chsee2'; - if (my == 1) chsee = 'chsee3' + text = looklogrep(text, vars); id_log_ar[id] = id; id_log = id; if (!top.document.getElementById(`battle_log_${hod_id}`) && hod_id != 1) { - if (fstlh == 0) { + if (fstlh === 0) { fstlh = hod_id; } lsthd[lsti] = hod_id; lsti++; $(top.document.getElementById('battle_logg')).prepend(`
`); - } else if (top.document.getElementById("battle_log_" + hod_id + "") == undefined) { + } else if (!top.document.getElementById("battle_log_" + hod_id + "")) { top.document.getElementById('battle_logg').innerHTML = top.document.getElementById('battle_logg').innerHTML + `
`; } if (!top.document.getElementById(`log_id_${id}`)) { - $(top.document.getElementById(`battle_log_${hod_id}`)).prepend(`${text}
`); + $(top.document.getElementById(`battle_log_${hod_id}`)).prepend(`${text}
`); } - if (top.document.getElementById(`battle_log_${hod_id - 7}`) != undefined) { + if (top.document.getElementById(`battle_log_${hod_id - 7}`)) { top.rmve(`#battle_log_${hod_id - 7}`); } } //-- Мой лог-------------------------------- //------------------------------------------- -function add_mlog(id, foryou, text, hod_id, my, last_hod, vars) { +function add_mlog(id, text, hod_id, vars) { chsee = 'chsee7'; text = looklogrep(text, vars); id_log_ar[id] = id; @@ -520,10 +511,10 @@ function add_mlog(id, foryou, text, hod_id, my, last_hod, vars) { } if (!top.document.getElementById(`mlog_id_${id}`)) { - $(top.document.getElementById(`battle_mlog_${hod_id}`)).prepend(`${text}
`); + $(top.document.getElementById(`battle_mlog_${hod_id}`)).prepend(`${text}
`); } - if (top.document.getElementById(`battle_mlog_${hod_id - 14}`) != undefined) { + if (top.document.getElementById(`battle_mlog_${hod_id - 14}`)) { top.rmve(`#battle_mlog_${hod_id - 14}`); } } @@ -551,36 +542,12 @@ function defPosition(event) { return {x: x, y: y}; } -function initMove(div, event) { - var event = event || window.event; - x0 = defPosition(event).x; - y0 = defPosition(event).y; - divX0 = parseInt(div.style.left); - divY0 = parseInt(div.style.top); - moveState = true; -} - document.onmouseup = function () { moveState = false; } -// И последнее -// Функция обработки движения: -function moveHandler(div, event) { - var event = event || window.event; - if (moveState) { - div.style.left = divX0 + defPosition(event).x - x0; - div.style.top = divY0 + defPosition(event).y - y0; - } -} function usePriem(id) { priem_use = id; - if (id != 0) reflesh() + if (id) reflesh(); } - -//document.onkeydown=key; -function key() { - //window.status=event.keyCode; - //if(event.keyCode==13){ atack(); } -} \ No newline at end of file diff --git a/js/gameEngine.js b/js/gameEngine.js index 1b81e5f4..bfa874f7 100644 --- a/js/gameEngine.js +++ b/js/gameEngine.js @@ -950,7 +950,7 @@ function useMagicBattle(name, id, img, type, type_use, text, team) { // 4.26 function useMagicGoGoBattle(id) { - top.frames['main'].useitem(id, 1, $(`#useMagicLoginBtl${id}`).val()); + top.frames['main'].useitem(id, $(`#useMagicLoginBtl${id}`).val()); } /* Использовать предмет на */ @@ -1028,7 +1028,7 @@ function priemOnUser(pr, id, nm, onInUser, img) { // 4.32 function usePriemNow(id) { top.frames['main'].use_on_pers = $(`#usePriemLogin${id}`).val(); - top.frames['main'].usepriem(id, 1, ''); + top.frames['main'].usepriem(id); } var datas = ''; diff --git a/jx/battle/refresh.php b/jx/battle/refresh.php index 1beac82f..761006e6 100644 --- a/jx/battle/refresh.php +++ b/jx/battle/refresh.php @@ -272,6 +272,6 @@ HTML; unset($atk1); } - echo ''; + echo ''; } diff --git a/jx/battle/refresh1.php b/jx/battle/refresh1.php index 368e1c2c..ec4e84b5 100644 --- a/jx/battle/refresh1.php +++ b/jx/battle/refresh1.php @@ -252,5 +252,5 @@ if (!$isBattle) { unset($atk1); } - echo ''; + echo ''; } diff --git a/jx/battle/refresh2.php b/jx/battle/refresh2.php index 4152a5e6..b0de8f01 100644 --- a/jx/battle/refresh2.php +++ b/jx/battle/refresh2.php @@ -255,6 +255,6 @@ if (isset($_POST['atack'], $_POST['block']) || (isset($_POST['id']) && $_POST['i unset($atk1); } - echo ''; + echo ''; } } diff --git a/jx/battle/refresh_bot.php b/jx/battle/refresh_bot.php index 319541e3..8c957368 100644 --- a/jx/battle/refresh_bot.php +++ b/jx/battle/refresh_bot.php @@ -62,7 +62,7 @@ if (isset($CRON_CORE) && (isset($_POST['atack'], $_POST['block']) || (isset($_PO if (!isset($CRON_CORE)) { require_once('../../_incl_data/__config.php'); if ($_SESSION['tbr'] > $tm) { - die(''); + die(''); } else { $_SESSION['tbr'] = $tm + 0.350; } diff --git a/modules_data/btl_.php b/modules_data/btl_.php index 975e8cec..b29bc3e9 100644 --- a/modules_data/btl_.php +++ b/modules_data/btl_.php @@ -119,22 +119,22 @@ $allprice = Battle::getType($allprice, $thisBattle['smert'] == 1); } if (event.keyCode == 49) { - change_radioKeys(1, false); + change_radioKeys(1); } if (event.keyCode == 50) { - change_radioKeys(2, false); + change_radioKeys(2); } if (event.keyCode == 51) { - change_radioKeys(3, false); + change_radioKeys(3); } if (event.keyCode == 52) { - change_radioKeys(4, false); + change_radioKeys(4); } if (event.keyCode == 53) { - change_radioKeys(5, false); + change_radioKeys(5); } if (event.keyCode == 48) { - change_radioKeys(0, false); + change_radioKeys(); } @@ -207,9 +207,7 @@ $allprice = Battle::getType($allprice, $thisBattle['smert'] == 1); return null; } - if (delimiter == '' - || delimiter == false - || delimiter == null) { + if (!delimiter) { return false; } @@ -220,7 +218,7 @@ $allprice = Battle::getType($allprice, $thisBattle['smert'] == 1); return emptyArray; } - if (delimiter == true) { + if (delimiter) { delimiter = '1'; } @@ -1085,7 +1083,7 @@ $allprice = Battle::getType($allprice, $thisBattle['smert'] == 1); document.getElementById('reflesh_btn').setAttribute("disabled", "disabled"); document.getElementById('btn_down_img1').setAttribute("onclick", ""); document.getElementById('btn_down_img1').setAttribute("disabled", "disabled"); - reflesh(true); + reflesh(); timedCount(); } From f3d475a0b8d2816ece6b964314e4ab543ac97e3c Mon Sep 17 00:00:00 2001 From: Ivor Barhansky Date: Fri, 10 May 2024 15:59:04 +0300 Subject: [PATCH 12/18] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B8=D0=BD=D0=B3=20=D1=8F=D0=B2=D0=B0=D1=81=D0=BA?= =?UTF-8?q?=D1=80=D0=B8=D0=BF=D1=82=D0=BE=D0=B2.=20=D0=A3=D0=B1=D0=BE?= =?UTF-8?q?=D1=80=D0=BA=D0=B0=20jQuery.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _incl_data/class/Battle.php | 5 ++- js/btl_mini.js | 80 ++++++++++++++++++++++++------------- 2 files changed, 55 insertions(+), 30 deletions(-) diff --git a/_incl_data/class/Battle.php b/_incl_data/class/Battle.php index fc683ae5..c721b487 100644 --- a/_incl_data/class/Battle.php +++ b/_incl_data/class/Battle.php @@ -1525,13 +1525,14 @@ JS; $jstext = json_encode($log['text']); $jsvars = json_encode($log['vars']); - $js = "add_log({$log['id']},$jstext,{$log['id_hod']},$jsvars)" . $js; + $js = "add_log({$log['id']},$jstext,{$log['id_hod']},$jsvars);" . $js; } Db::sql('update stats set alog = ? where id = ?', [$u->info['alog'], $u->info['id']]); $js .= "id_log=$pll;"; - return htmlspecialchars($js, ENT_QUOTES); + //return htmlspecialchars($js, ENT_QUOTES); + return $js; } diff --git a/js/btl_mini.js b/js/btl_mini.js index 5f1b5179..d5ad3e8e 100644 --- a/js/btl_mini.js +++ b/js/btl_mini.js @@ -442,56 +442,76 @@ var id_log_ar = []; var id_log; var type_log = top.type_log; +// Эта функция получает элемент по идентификатору из фрейма 'main'. +const getElementByIdInMainFrame = (id) => { + const frame = top.frames['main']; + if (!frame) { + console.error("Фрейм 'main' не найден!"); + return null; + } + + return frame.document.getElementById(id); +}; + function add_log(id, text, hod_id, vars) { + const logsdiv = getElementByIdInMainFrame('battle_logg'); + let hodlogdiv = getElementByIdInMainFrame(`battle_log_${hod_id}`); + const hodlogdiv7 = getElementByIdInMainFrame(`battle_log_${hod_id - 7}`); + const hodlogdiv25 = getElementByIdInMainFrame(`battle_log_${hod_id - 25}`); + const logid = getElementByIdInMainFrame(`log_id_${id}`); + if (top.des === 1) type_log = 0 else type_log = 1; if (type_log === 1) { chsee = 'chsee2'; - //if(id_log_ar[id]!=id) - //{ text = looklogrep(text, vars); id_log_ar[id] = id; id_log = id; - // if (top.frames['main'].document.getElementById("battle_log_" + hod_id + "") == undefined && hod_id != 1) { - if (!top.frames['main'].document.getElementById(`battle_log_${hod_id}`) && hod_id != 1) { + + if (!hodlogdiv && hod_id !== 1) { if (fstlh === 0) fstlh = hod_id lsthd[lsti] = hod_id; lsti++; - $(top.frames['main'].document.getElementById('battle_logg')).prepend(`
`); - } else if (!top.frames['main'].document.getElementById(`battle_log_${hod_id}`)) { - top.frames['main'].document.getElementById('battle_logg').innerHTML = top.frames['main'].document.getElementById('battle_logg').innerHTML + `
`; + logsdiv.insertAdjacentHTML('afterbegin', `
`); + hodlogdiv = getElementByIdInMainFrame(`battle_log_${hod_id}`); + } else if (!hodlogdiv) { + logsdiv.insertAdjacentHTML('beforeend', `
`); + hodlogdiv = getElementByIdInMainFrame(`battle_log_${hod_id}`); } - if (!top.frames['main'].document.getElementById(`log_id_${id}`)) { - $(top.frames['main'].document.getElementById(`battle_log_${hod_id}`)).prepend(`${text}
`); + if (!logid) { + hodlogdiv.insertAdjacentHTML('afterbegin', `${text}
`); } - //} - if (top.frames['main'].document.getElementById(`battle_log_${hod_id - 25}`)) { + + if (hodlogdiv25) { top.rmve(`#battle_log_${hod_id - 25}`); } return } + chsee = 'chsee2'; text = looklogrep(text, vars); id_log_ar[id] = id; id_log = id; - if (!top.document.getElementById(`battle_log_${hod_id}`) && hod_id != 1) { + if (!hodlogdiv && hod_id !== 1) { if (fstlh === 0) { fstlh = hod_id; } lsthd[lsti] = hod_id; lsti++; - $(top.document.getElementById('battle_logg')).prepend(`
`); - } else if (!top.document.getElementById("battle_log_" + hod_id + "")) { - top.document.getElementById('battle_logg').innerHTML = top.document.getElementById('battle_logg').innerHTML + `
`; + logsdiv.insertAdjacentHTML('afterbegin', `
`); + hodlogdiv = getElementByIdInMainFrame(`battle_log_${hod_id}`); + } else if (!hodlogdiv) { + logsdiv.insertAdjacentHTML('beforeend', `
`); + hodlogdiv = getElementByIdInMainFrame(`battle_log_${hod_id}`); } - if (!top.document.getElementById(`log_id_${id}`)) { - $(top.document.getElementById(`battle_log_${hod_id}`)).prepend(`${text}
`); + if (!logid) { + hodlogdiv.insertAdjacentHTML('afterbegin', `${text}
`); } - if (top.document.getElementById(`battle_log_${hod_id - 7}`)) { + if (hodlogdiv7) { top.rmve(`#battle_log_${hod_id - 7}`); } } @@ -499,22 +519,26 @@ function add_log(id, text, hod_id, vars) { //-- Мой лог-------------------------------- //------------------------------------------- function add_mlog(id, text, hod_id, vars) { + const logsdiv = getElementByIdInMainFrame('battle_mlogg'); + let hodlogdiv = getElementByIdInMainFrame(`battle_mlog_${hod_id}`); + const hodlogdiv14 = getElementByIdInMainFrame(`battle_mlog_${hod_id - 14}`); + const logid = getElementByIdInMainFrame(`mlog_id_${id}`); + chsee = 'chsee7'; text = looklogrep(text, vars); id_log_ar[id] = id; id_log = id; - if (!top.document.getElementById(`battle_mlog_${hod_id}`) && hod_id != 1) { - $(top.document.getElementById('battle_mlogg')).prepend(`
`); - - } else if (!top.document.getElementById(`battle_mlog_${hod_id}`)) { - top.document.getElementById('battle_mlogg').innerHTML = top.document.getElementById('battle_mlogg').innerHTML + `
`; + if (!hodlogdiv && hod_id !== 1) { + logsdiv.insertAdjacentHTML('afterbegin', `
`); + hodlogdiv = getElementByIdInMainFrame(`battle_mlog_${hod_id}`); + } else if (!hodlogdiv) { + logsdiv.insertAdjacentHTML('beforeend', `
`); + hodlogdiv = getElementByIdInMainFrame(`battle_mlog_${hod_id}`); } - - if (!top.document.getElementById(`mlog_id_${id}`)) { - $(top.document.getElementById(`battle_mlog_${hod_id}`)).prepend(`${text}
`); - + if (!logid) { + hodlogdiv.insertAdjacentHTML('afterbegin', `${text}
`); } - if (top.document.getElementById(`battle_mlog_${hod_id - 14}`)) { + if (hodlogdiv14) { top.rmve(`#battle_mlog_${hod_id - 14}`); } } From a1408072d63671c74a21884a3fa1918af6344afd Mon Sep 17 00:00:00 2001 From: Ivor Barhansky Date: Fri, 10 May 2024 16:54:18 +0300 Subject: [PATCH 13/18] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B8=D0=BD=D0=B3=20=D1=8F=D0=B2=D0=B0=D1=81=D0=BA?= =?UTF-8?q?=D1=80=D0=B8=D0=BF=D1=82=D0=BE=D0=B2.=20=D0=A3=D0=B1=D0=BE?= =?UTF-8?q?=D1=80=D0=BA=D0=B0=20jQuery.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jx/battle/refresh.php | 21 +++++++++------------ modules_data/btl_.php | 8 ++++---- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/jx/battle/refresh.php b/jx/battle/refresh.php index 761006e6..5cccad2b 100644 --- a/jx/battle/refresh.php +++ b/jx/battle/refresh.php @@ -235,18 +235,18 @@ if (!$isBattle) { echo << eatk = $atk1; - $('#nabito').html('$nabito'); - $('#expmaybe').html('$expmaybe'); - $('#timer_out').html('$tmr'); - $('#pers_magic').html('$persMagic'); - $('#priems').html(`$mypriems`); + getElementByIdInMainFrame('nabito').innerHTML = `$nabito`; + getElementByIdInMainFrame('expmaybe').innerHTML = `$expmaybe`; + getElementByIdInMainFrame('timer_out').innerHTML = `$tmr`; + getElementByIdInMainFrame('pers_magic').innerHTML = `$persMagic`; + getElementByIdInMainFrame('priems').innerHTML = `$mypriems`; g_iCount = 30; noconnect = 15; connect = 1; - $('#go_btn').show(); - $('#reflesh_btn').show(); - za = '$za'; genZoneAtack(); - zb = '$zb'; genZoneBlock(); + getElementByIdInMainFrame('go_btn').style.display = ''; + getElementByIdInMainFrame('reflesh_btn').style.display = ''; + za = $za; genZoneAtack(); + zb = $zb; genZoneBlock(); refleshPoints(); tactic(1,'$tactic1'); tactic(2,'$tactic2'); @@ -260,9 +260,7 @@ if (!$isBattle) { smena_alls = '0'; ggcode='$ggcode'; - $js - HTML; @@ -273,5 +271,4 @@ HTML; unset($atk1); } echo ''; - } diff --git a/modules_data/btl_.php b/modules_data/btl_.php index b29bc3e9..f7d8680b 100644 --- a/modules_data/btl_.php +++ b/modules_data/btl_.php @@ -188,10 +188,10 @@ $allprice = Battle::getType($allprice, $thisBattle['smert'] == 1); '; - die(); - } - - // Забираем ресурсы - if (isset($d['tk_itm'])) { - $ex = explode(',', $d['tk_itm']); - $i = 0; - while ($i < count($ex)) { - $ex2 = explode('=', $ex[$i]); - $ex2 = explode('=', $ex[$i]); - $x2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . $pl2['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" LIMIT ' . $ex2[1], 2); - ItemsModel::deleteItemsById($ex2[0], $ex2[1]); - $i++; - } - } - // Забираем трофеи - if (isset($d['tkill_itm'])) { - $ex = explode(',', $d['tkill_itm']); - $i = 0; - while ($i < count($ex)) { - $ex2 = explode('=', $ex[$i]); - $ex2 = explode('=', $ex[$i]); - $x2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . $pl2['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" LIMIT ' . $ex2[1], 2); - ItemsModel::deleteItemsById($ex2[0], $ex2[1]); - $i++; - } - } - - $t = ''; - if (isset($d['add_rep'])) { // Получаем репутацию за квест, если это убийства ботов. - if (isset($d['kill_bot']) && isset($d['all_kill']) && $d['add_rep'] > 0) { - $ex = explode(',', $d['kill_bot']); - $ii = 0; - $d['add_rep'] = 0; - while ($ii < count($ex)) { - $i = 0; - $ex2 = explode('=', $ex[$i]); - while ($i < $d['all_kill']) { - $x2 = 0; - $d['add_rep'] = $d['add_rep'] + $ex2[1]; - $x2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . $pl2['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" LIMIT ' . $d['all_kill'], 2); - $i++; - } - $ii++; - } - } - unset($x, $i, $ii, $ex, $x2, $bot2, $ex2); - if ($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']] < 24999 && $rep['rep' . $pl['city']] + $d['add_rep'] >= 24999 && $pl['kin'] != 2) { - $rep['rep' . $pl['city']] = 24999; - } else { - $rep['rep' . $pl['city']] += $d['add_rep']; - } - mysql_query('UPDATE `rep` SET `rep' . $pl['city'] . '` = "' . $rep['rep' . $pl['city']] . '" WHERE `id` = "' . $rep['id'] . '" LIMIT 1'); - } - } - - if (isset($d['add_repizlom'])) { - $t .= '' . $d['add_repizlom'] . ' ед. репутации Излома Хаоса, '; - $rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1')); - $rep['repizlom'] += $d['add_repizlom']; - if ($rep['repizlom'] > 24999) { - $rep['repizlom'] = 24999; - } - mysql_query('UPDATE `rep` SET `repizlom` = "' . $rep['repizlom'] . '" WHERE `id` = "' . $rep['id'] . '" LIMIT 1'); - } - - if (isset($d['add_eff'])) { - $i = 0; - $j = explode('=', $d['add_eff']); - while ($i < count($j)) { - if ($j[$i] > 0) { - $magic->addEffect($u->info['id'], $j[$i], 1); - } - $i++; - } - } - - if (isset($d['add_cr'])) { - $t .= '' . $d['add_cr'] . ' кр., '; - mysql_query('UPDATE `users` SET `money` = `money`+' . $d['add_cr'] . ' WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'); - } - - if ($t != '') { - $t = rtrim($t, ', '); - $r = 'Задание ' . $pl['name'] . ' было успешно выполнено! Вы получили награду: ' . $t . '.'; - unset($t); - } else { - $r = 'Задание ' . $pl['name'] . ' было успешно выполнено!'; - } - $r = '' . $r . ''; - //Отправляем сообщение в чат - $chatDto = new ChatMessage(); - $chatDto->setCity($u->info['city']); - $chatDto->setRoom($u->info['room']); - $chatDto->setTo($u->info['login']); - $chatDto->setText($r); - $chatDto->setType(5); - (new Chat())->sendMsg($chatDto); + if (!isset($pl['id'])) { + return ''; } + + $d = $this->expl($pl['act_date']); + + $d = array_merge($d, $this->expl($pl['win_date'])); + + if ($_COOKIE['login'] == 'R' || $_COOKIE['login'] == 'r') { + echo ''; + die(); + } + + // Забираем ресурсы + if (isset($d['tk_itm'])) { + $ex = explode(',', $d['tk_itm']); + $i = 0; + while ($i < count($ex)) { + $ex2 = explode('=', $ex[$i]); + $x2 = ActionModel::testCount(["uid = $uid", "vars = win_bot_$ex[2]", "time > $time"], $ex2[1]); + ItemsModel::deleteItemsById($ex2[0], $ex2[1]); + $i++; + } + } + // Забираем трофеи + if (isset($d['tkill_itm'])) { + $ex = explode(',', $d['tkill_itm']); + $i = 0; + while ($i < count($ex)) { + $ex2 = explode('=', $ex[$i]); + $x2 = ActionModel::testCount(["uid = $uid", "vars = win_bot_$ex[2]", "time > $time"], $ex2[1]); + ItemsModel::deleteItemsById($ex2[0], $ex2[1]); + $i++; + } + } + + $t = ''; + if (isset($d['add_rep'])) { // Получаем репутацию за квест, если это убийства ботов. + if (isset($d['kill_bot']) && isset($d['all_kill']) && $d['add_rep'] > 0) { + $ex = explode(',', $d['kill_bot']); + $ii = 0; + $d['add_rep'] = 0; + while ($ii < count($ex)) { + $i = 0; + $ex2 = explode('=', $ex[$i]); + while ($i < $d['all_kill']) { + $d['add_rep'] = $d['add_rep'] + (int)$ex2[1]; + $x2 = ActionModel::testCount(["uid = $uid", "vars = win_bot_$ex[2]", "time > $time"], $d['all_kill']); + $i++; + } + $ii++; + } + } + unset($x, $i, $ii, $ex, $x2, $bot2, $ex2); + if ($pl['city'] != '') { + $t .= '' . $d['add_rep'] . ' ед. репутации ' . $pl['city'] . ', '; + $rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $uid . '" LIMIT 1')); + + if ($rep['rep' . $pl['city']] < 24999 && $rep['rep' . $pl['city']] + $d['add_rep'] >= 24999 && $pl['kin'] != 2) { + $rep['rep' . $pl['city']] = 24999; + } else { + $rep['rep' . $pl['city']] += $d['add_rep']; + } + mysql_query('UPDATE `rep` SET `rep' . $pl['city'] . '` = "' . $rep['rep' . $pl['city']] . '" WHERE `id` = "' . $rep['id'] . '" LIMIT 1'); + } + } + + if (isset($d['add_repizlom'])) { + $t .= '' . $d['add_repizlom'] . ' ед. репутации Излома Хаоса, '; + $rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $uid . '" LIMIT 1')); + $rep['repizlom'] += $d['add_repizlom']; + if ($rep['repizlom'] > 24999) { + $rep['repizlom'] = 24999; + } + mysql_query('UPDATE `rep` SET `repizlom` = "' . $rep['repizlom'] . '" WHERE `id` = "' . $rep['id'] . '" LIMIT 1'); + } + + if (isset($d['add_eff'])) { + $i = 0; + $j = explode('=', $d['add_eff']); + while ($i < count($j)) { + if ($j[$i] > 0) { + $magic->addEffect($uid, $j[$i], 1); + } + $i++; + } + } + + if (isset($d['add_cr'])) { + $t .= '' . $d['add_cr'] . ' кр., '; + mysql_query('UPDATE `users` SET `money` = `money`+' . $d['add_cr'] . ' WHERE `id` = "' . $uid . '" LIMIT 1'); + } + + if ($t != '') { + $t = rtrim($t, ', '); + $r = 'Задание ' . $pl['name'] . ' было успешно выполнено! Вы получили награду: ' . $t . '.'; + unset($t); + } else { + $r = 'Задание ' . $pl['name'] . ' было успешно выполнено!'; + } + + return "$r"; } - public function questCheckEnd($pl) + public function questCheckEnd($pl): int { global $u; $quest = mysql_fetch_array(mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" ORDER BY `time` DESC LIMIT 1')); @@ -836,29 +849,31 @@ class Quests if (isset($d['kill_bot'])) { $ex = explode(',', $d['kill_bot']); $i = 0; # Количество циклов для каждого типа бота. - $q = ''; + $smth1 = 0; // неизвестно что. + $sqlFilter = []; + $sqlParams = []; while ($i < count($ex)) { $ex2 = explode('=', $ex[$i]); - if ($q != '') { - $q .= ' OR '; - } - $q .= ' (`uid` = "' . $u->info['id'] . '" AND `time` > ' . $quest['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" )'; + $smth1 = $ex2[1]; + $sqlFilter[] = "(uid = :uid$i and time > :time$i and vars = :vars$i)"; + $sqlParams[":uid$i"] = $u->info['id']; + $sqlParams[":time$i"] = $quest['time']; + $sqlParams[":vars$i"] = "win_bot_$ex2[0]"; $i++; } + $sqlFilter = implode(' or ', $sqlFilter); if (isset($d['all_kill']) && (int)$d['all_kill'] > 0) { - $x2 = $u->testAction($q, 2); - if ((int)$d['all_kill'] <= $x2[0]) { + $x2 = ActionModel::testCountCustom($sqlFilter, $sqlParams); + if ((int)$d['all_kill'] <= $x2) { $x2 = (int)$d['all_kill']; - } else { - $x2 = $x2[0]; } if ($x2 < (int)$d['all_kill']) { $g = 0; } } else { - $x2 = $u->testAction($q . ' LIMIT ' . $ex2[1], 2); - $x2 = min($ex2[1], $x2[0]); - if ($x2 < $ex2[1]) { + $x2 = ActionModel::testCountCustom($sqlFilter, $sqlParams, $smth1); + $x2 = min($smth1, $x2); + if ($x2 < $smth1) { $g = 0; } } @@ -886,10 +901,10 @@ class Quests $x2 = Db::getValue('select count(*) from items_users where maidin = ? and item_id = ? and uid = ? and `delete` in (0,1000) and inTransfer = 0 and inShop = 0', [$pl['city'], (int)$ex2[0], $u->info['id']]); if ($x2 >= $ex2[1]) { - if ($x2 <= ($ex2[1] + round($ex2[1] * 0.15))) { + if ($x2 <= ((int)$ex2[1] + round($ex2[1] * 0.15))) { $ex2[1] = $x2; } else { - $ex2[1] = ($ex2[1] + round($ex2[1] * 0.15)); + $ex2[1] = ((int)$ex2[1] + round($ex2[1] * 0.15)); } } if ($x2 < $ex2[1]) { @@ -928,10 +943,10 @@ class Quests $x2 = Db::getValue('select count(*) from items_users where maidin = ? and item_id = ? and uid = ? and `delete` in (0,1000) and inTransfer = 0 and inShop = 0', [$quest['city'], (int)$ex2[0], $u->info['id']]); if ($x2 >= $ex2[1]) { - if ($x2 <= ($ex2[1] + round($ex2[1] * 0.15))) { + if ($x2 <= ((int)$ex2[1] + round($ex2[1] * 0.15))) { $ex2[1] = $x2; } else { - $ex2[1] = ($ex2[1] + round($ex2[1] * 0.15)); + $ex2[1] = ((int)$ex2[1] + round($ex2[1] * 0.15)); } } $d['add_rep'] = (int)$d['add_rep'] * (int)$ex2[1]; @@ -953,9 +968,8 @@ class Quests $i = 0; $ex2 = explode('=', $ex[$i]); while ($i < $d['all_kill']) { - $x2 = 0; - $d['add_rep'] = $d['add_rep'] + $ex2[1]; - $x2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . $action['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" LIMIT ' . $d['all_kill'], 2); + $d['add_rep'] = $d['add_rep'] + (int)$ex2[1]; + $x2 = ActionModel::testCount(["uid = {$u->info['id']}", "vars = win_bot_$ex2[0]", "time > {$action['time']}"], $d['all_kill']); $i++; } $ii++; diff --git a/_incl_data/class/User.php b/_incl_data/class/User.php index 26d74cfe..d69569db 100644 --- a/_incl_data/class/User.php +++ b/_incl_data/class/User.php @@ -811,15 +811,10 @@ class User return Db::getRow('select * from users left join stats on users.id = stats.id where users.id = ?', [$id]); } - public function testAction($filter, $tp): array + public function testAction($filter, $tp = 1): array { - if ($tp == 1) { - $query = 'select * from actions where ' . $filter; - } elseif ($tp == 2) { - $query = 'select count(*) from actions where ' . $filter; - } else { - return []; - } + $query = 'select * from actions where ' . $filter; + $arr = mysql_fetch_array(mysql_query($query)); return !empty($arr) ? $arr : []; @@ -965,13 +960,8 @@ class User if (isset($smt['id'])) { $this->error2 = 'Нельзя лепить несколько снежков одновременно ;)'; } else { - $smt = $this->testAction( - '`uid` = "' . $this->info['id'] . '" AND `time`>=' . strtotime( - 'now 00:00:00' - ) . ' AND `vars` = "create_snowball_cp" LIMIT 25', - 2 - ); - $smt = $smt[0]; + $smt = ActionModel::testCount(["uid = {$this->info['id']}", 'vars = create_snowball_cp', 'time >= ' . strtotime('now 00:00:00')], 25); + if ($smt < 10) { $this->addAction(time(), 'create_snowball_cp', $this->info['city']); diff --git a/_incl_data/class/User/InfoBox.php b/_incl_data/class/User/InfoBox.php index b4b2b9cc..b5363910 100644 --- a/_incl_data/class/User/InfoBox.php +++ b/_incl_data/class/User/InfoBox.php @@ -113,7 +113,7 @@ class InfoBox $lvar = $this->getInfoItemInfo($pl, $td); - if (isset($sn['items_img'][$tp_img[$pl['inOdet']]])) { + if (isset($tp_img[$pl['inOdet']], $sn['items_img'][$tp_img[$pl['inOdet']]])) { $uimg = 'rimg/r' . $sn['items_img'][$tp_img[$pl['inOdet']]]; } else { $uimg = 'i/items/' . $pl['img']; @@ -469,7 +469,7 @@ class InfoBox if ($u['banned'] > 0) { $pb .= '
Персонаж заблокирован
'; } - if ($u['allLock'] > time()) { + if (isset($u['allLock']) && $u['allLock'] > time()) { $pb .= '
Временный запрет передач!
'; } diff --git a/_incl_data/class/User/Stats.php b/_incl_data/class/User/Stats.php index e710fa75..7fa7fef1 100644 --- a/_incl_data/class/User/Stats.php +++ b/_incl_data/class/User/Stats.php @@ -253,6 +253,7 @@ class Stats $noeffectbattle = false; if ($u['battle'] > 0) { $noeffectbattle = (bool)Db::getValue("select 1 from battle_actions where uid = ? and vars = 'noeffectbattle1' and btl = ? limit 1", [$u['id'], $u['battle']]); + $st['team'] = $u['team']; } //Характеристики от эффектов diff --git a/modules_data/vip.php b/modules_data/vip.php index 66d3a4a4..ad03ecf4 100644 --- a/modules_data/vip.php +++ b/modules_data/vip.php @@ -1,4 +1,9 @@ var elem = document.getElementById('se-pre-con'); @@ -191,29 +196,28 @@ $vi = [ $vix = 0; if ($ability[$account][$i][4] == 0) { //за сегодня - $vix = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time`>=' . strtotime('now 00:00:00') . ' AND `vars` = "vitm_' . $itm['id'] . '"', 2); - $vix = $vix[0]; - + $time = strtotime('now 00:00:00'); } else { //всего за действие премиума - $vix = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time`>=' . $vt['timeUse'] . ' AND `vars` = "vitm_' . $itm['id'] . '" ', 2); - $vix = $vix[0]; + $time = $vt['timeUse']; } + $vix = ActionModel::testCount(["uid = {$u->info['id']}", "vars = vitm_{$itm['id']}", "time >= $time"]); + unset($time); if ($ability[$account][$i][1] - $vix > 0 && isset($_GET['take_item_vip']) && $_GET['take_item_vip'] == $itm['id']) { - $nitm = \User\ItemsModel::addItem($itm['id'], $u->info['id'], $ability[$account][$i][5]); + $nitm = ItemsModel::addItem($itm['id'], $u->info['id'], $ability[$account][$i][5]); $u->addAction(time(), 'vitm_' . $itm['id'], ''); - echo 'Предмет "' . $itm['name'] . '" перемещен к Вам в инвентарь!

'; + echo 'Предмет "' . $itm['name'] . '" перемещен к Вам в инвентарь!

'; } $seet0 = ''; //Вывод предметов вип $seet0 .= ' '; +(Осталось ' . $vnr[$ability[$account][$i][4]] . ': ' . ($ability[$account][$i][1] - $vix) . ' шт.)" src="' . Config::img() . '/i/items/' . $itm['img'] . '"> '; if ($ability[$account][$i][1] - $vix > 0) { $seet0 = '' . $seet0 . ''; } else { - $seet0 = '' . $seet0 . ''; + $seet0 = '' . $seet0 . ''; } $seet .= $seet0; } diff --git a/modules_data/vip1.php b/modules_data/vip1.php index ee78fd01..15bfef0c 100644 --- a/modules_data/vip1.php +++ b/modules_data/vip1.php @@ -1,108 +1,114 @@ stats['silver']<1) -{ - die(); + +use Model\ActionModel; +use User\ItemsModel; + +if (!defined('GAME') || $u->stats['silver'] < 1) { + die(); } -if($u->error!='') -{ - echo ''.$u->error.'
'; +if ($u->error != '') { + echo '' . $u->error . '
'; } -$vt = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `data` LIKE "%add_silver=%" LIMIT 1')); -$vu = array(0,0,0,0,0,0,0); -$vi = array( - //лечение травм - array(4412,array( 0 , 5 , 5 , 5 , 10 , 10 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=600',1), - array(4413,array( 0 , 5 , 5 , 5 , 10 , 10 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=600',1), - array(4414,array( 0 , 5 , 5 , 5 , 10 , 10 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=600',1), - - //нападалки - array(865, array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=43200',1), - array(2391,array( 0 , 0 , 0 , 0 , 10 , 20 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=43200',2), - - //хилки - array(2543,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=21600|magic_hpNow=45',2), - array(2544,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=21600|magic_hpNow=60',2), - array(2545,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=21600|magic_hpNow=600',2), - - //обкасты - array(994, array( 0 , 0 , 0 , 0 , 5 , 10 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=6|sudba='.$u->info['login'].'|srok=600',1), - array(1001,array( 0 , 0 , 0 , 0 , 5 , 10 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=7|sudba='.$u->info['login'].'|srok=600',1), - array(1460,array( 0 , 0 , 0 , 0 , 5 , 10 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=25|sudba='.$u->info['login'].'|srok=600',1), - array(3102,array( 0 , 0 , 0 , 0 , 5 , 10 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=33|sudba='.$u->info['login'].'|srok=600',1), - array(4371,array( 5 , 5 , 5 , 5 , 5 , 5 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=36|sudba='.$u->info['login'].'|srok=600',1), - - //Сундуки - array(2144,array( 0 , 0 , 0 , 0 , 0 , 3 ),0,0,1,'nohaos=1|onlyOne=1|oneType=12|musor=2|noremont=1|srok=600',1), - array(2143,array( 0 , 0 , 0 , 0 , 0 , 3 ),0,0,1,'nohaos=1|onlyOne=1|oneType=7|musor=2|noremont=1|srok=600',1), - //array(3101,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'onlyOne=1|oneType=33|noremont=1|musor=1|srok=600',1), - - //Екр. - array(1461,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=24|sudba='.$u->info['login'].'|srok=600',1), - array(1462,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=24|sudba='.$u->info['login'].'|srok=600',1), - array(1463,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=24|sudba='.$u->info['login'].'|srok=600',1) - - //array(2143,1,2,10,1,'musor=1|noremont=1|onlyOne=1|oneType=3|sudba='.$u->info['login'].'|srok=600',1), - //array(2144,1,2,10,1,'musor=1|noremont=1|onlyOne=1|oneType=3|sudba='.$u->info['login'].'|srok=600',1)*/ -); +$vt = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `delete` = "0" AND `data` LIKE "%add_silver=%" LIMIT 1')); +$vu = [0, 0, 0, 0, 0, 0, 0]; +$vi = [ + //лечение травм + [4412, [0, 5, 5, 5, 10, 10], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=600', 1], + [4413, [0, 5, 5, 5, 10, 10], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=600', 1], + [4414, [0, 5, 5, 5, 10, 10], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=600', 1], + + //нападалки + [865, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=43200', 1], + [2391, [0, 0, 0, 0, 10, 20], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=43200', 2], + + //хилки + [2543, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=21600|magic_hpNow=45', 2], + [2544, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=21600|magic_hpNow=60', 2], + [2545, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=21600|magic_hpNow=600', 2], + + //обкасты + [994, [0, 0, 0, 0, 5, 10], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=6|sudba=' . $u->info['login'] . '|srok=600', 1], + [1001, [0, 0, 0, 0, 5, 10], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=7|sudba=' . $u->info['login'] . '|srok=600', 1], + [1460, [0, 0, 0, 0, 5, 10], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=25|sudba=' . $u->info['login'] . '|srok=600', 1], + [3102, [0, 0, 0, 0, 5, 10], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=33|sudba=' . $u->info['login'] . '|srok=600', 1], + [4371, [5, 5, 5, 5, 5, 5], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=36|sudba=' . $u->info['login'] . '|srok=600', 1], + + //Сундуки + [2144, [0, 0, 0, 0, 0, 3], 0, 0, 1, 'nohaos=1|onlyOne=1|oneType=12|musor=2|noremont=1|srok=600', 1], + [2143, [0, 0, 0, 0, 0, 3], 0, 0, 1, 'nohaos=1|onlyOne=1|oneType=7|musor=2|noremont=1|srok=600', 1], + //array(3101,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'onlyOne=1|oneType=33|noremont=1|musor=1|srok=600',1), + + //Екр. + [1461, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=24|sudba=' . $u->info['login'] . '|srok=600', 1], + [1462, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=24|sudba=' . $u->info['login'] . '|srok=600', 1], + [1463, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=24|sudba=' . $u->info['login'] . '|srok=600', 1], + + //array(2143,1,2,10,1,'musor=1|noremont=1|onlyOne=1|oneType=3|sudba='.$u->info['login'].'|srok=600',1), + //array(2144,1,2,10,1,'musor=1|noremont=1|onlyOne=1|oneType=3|sudba='.$u->info['login'].'|srok=600',1)*/ +]; ?> - - - - - - + + + + + - + if ($vi[$i][1][$u->stats['silver']] - $vix > 0) { + if (isset($_GET['take_item_vip']) && $_GET['take_item_vip'] == $itm['id']) { + $vix++; + $nitm = ItemsModel::addItem($itm['id'], $u->info['id'], $vi[$i][5]); + if ($vi[$i][6] > 0) { + mysql_query('UPDATE `items_users` SET `data`="' . $vi[$i][5] . '",`iznosMAX` = "' . $vi[$i][6] . '",`1price` = "0.01" WHERE `id` = "' . $nitm . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'); + } + $u->addAction(time(), 'vitm_' . $itm['id'], ''); + echo 'Предмет "' . $itm['name'] . '" перемещен к Вам в инвентарь (Осталось ' . $vnr[$vi[$i][4]] . ': ' . ($vi[$i][1][$u->stats['silver']] - $vix) . ' шт.).

'; + } + } + + $seet0 = ''; + $seet0 .= ' '; + if ($vi[$i][1][$u->stats['silver']] - $vix > 0) { + $seet0 = '' . $seet0 . ''; + } else { + $seet0 = '' . $seet0 . ''; + } + $seet .= $seet0; + } + } + $i++; + } + echo $seet; + ?> +

+ Внимание! Срок годности выдаваемых предметов 10 мин.
+

Добро пожаловать, info['login']?>!

У вас действует Благословления Ангелов stats['silver']?> уровня.

Доступные возможности: Посмотреть возможности

-

Доступные предметы:
- (Чтобы забрать предмет просто нажмите на его изображение)

-

- 'на сегодня',1 => ' всего'); - while($i < count($vi)) { - if($vi[$i][1][$u->stats['silver']]>0) { - $itm = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vi[$i][0].'" LIMIT 1')); - if(isset($itm['id'])) { - $vix = 0; - if($vi[$i][4] == 0) { - //за сегодня - $vix = $u->testAction('`uid` = "'.$u->info['id'].'" AND `time`>='.strtotime('now 00:00:00').' AND `vars` = "vitm_'.$itm['id'].'" LIMIT '.$vi[$i][1][$u->stats['silver']],2); - $vix = $vix[0]; - }else{ - //всего за действие премиума - $vix = $u->testAction('`uid` = "'.$u->info['id'].'" AND `time`>='.$vt['timeUse'].' AND `vars` = "vitm_'.$itm['id'].'" LIMIT '.$vi[$i][1][$u->stats['silver']],2); - $vix = $vix[0]; - } +

Добро пожаловать, info['login'] ?>!

+
У вас действует Благословления + Ангелов stats['silver'] ?> уровня. +
+

Доступные возможности: Посмотреть возможности

+

Доступные предметы:
+ (Чтобы забрать предмет просто нажмите на его изображение)

+

+ 'на сегодня', 1 => ' всего']; + while ($i < count($vi)) { + if ($vi[$i][1][$u->stats['silver']] > 0) { + $itm = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "' . $vi[$i][0] . '" LIMIT 1')); + if (isset($itm['id'])) { + $vix = 0; + if ($vi[$i][4] == 0) { + //за сегодня + $time = strtotime('now 00:00:00'); + } else { + //всего за действие премиума + $time = $vt['timeUse']; + } + $vix = ActionModel::testCount(["uid = {$u->info['id']}", "vars = vitm_{$itm['id']}", "time >= $time"], $vi[$i][1][$u->stats['silver']]); - if($vi[$i][1][$u->stats['silver']]-$vix > 0) { - if(isset($_GET['take_item_vip']) && $_GET['take_item_vip'] == $itm['id']) { - $vix++; - $nitm = \User\ItemsModel::addItem($itm['id'],$u->info['id'],$vi[$i][5]); - if($vi[$i][6]>0) { - mysql_query('UPDATE `items_users` SET `data`="'.$vi[$i][5].'",`iznosMAX` = "'.$vi[$i][6].'",`1price` = "0.01" WHERE `id` = "'.$nitm.'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'); - } - $u->addAction(time(),'vitm_'.$itm['id'],''); - echo 'Предмет "'.$itm['name'].'" перемещен к Вам в инвентарь (Осталось '.$vnr[$vi[$i][4]].': '.($vi[$i][1][$u->stats['silver']]-$vix).' шт.).

'; - } - } - - $seet0 = ''; - $seet0 .= ' '; - if($vi[$i][1][$u->stats['silver']]-$vix > 0) { - $seet0 = ''.$seet0.''; - }else{ - $seet0 = ''.$seet0.''; - } - $seet .= $seet0; - } - } - $i++; - } - echo $seet; - ?> -

- Внимание! Срок годности выдаваемых предметов 10 мин.
From 5e0dda8ed0054b23cc9c57285af471ef1a60347e Mon Sep 17 00:00:00 2001 From: Ivor Barhansky Date: Wed, 15 May 2024 16:42:28 +0300 Subject: [PATCH 16/18] =?UTF-8?q?=D0=9F=D0=BE=D0=BB=D0=BD=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B0=D0=B7=20=D0=BE=D1=82=20$u->testAction(?= =?UTF-8?q?)=20=D1=86=D0=B5=D0=BB=D0=B8=D0=BA=D0=BE=D0=BC.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _incl_data/class/Battle/Finish.php | 8 +- _incl_data/class/Helper/QueryBuilder.php | 4 +- _incl_data/class/Magic.php | 169 +---------- _incl_data/class/Magic/podvig.php | 53 ++-- _incl_data/class/Magic/tznanie.php | 15 +- _incl_data/class/Model/ActionModel.php | 43 +-- _incl_data/class/Priems.php | 24 +- _incl_data/class/User.php | 129 ++++---- _incl_data/class/User/ItemsModel.php | 5 + buttons.php | 2 - main.php | 9 +- main_bot.php | 77 +---- modules_data/_locations.php | 14 +- modules_data/_umenie.php | 40 ++- modules_data/location/bk.php | 6 +- modules_data/location/bk2.php | 161 ++++++---- modules_data/location/dungeon_enter.php | 45 +-- modules_data/location/dungeon_enter_all.php | 146 +++------ modules_data/location/elka.php | 93 +++--- modules_data/location/enterbezdna.php | 47 ++- modules_data/location/entercat.php | 31 +- modules_data/location/enterdrago.php | 26 +- modules_data/location/entergrib.php | 31 +- modules_data/location/enternekro.php | 12 +- modules_data/location/enternizin.php | 29 +- modules_data/location/enterptp.php | 28 +- modules_data/location/entersnow.php | 12 +- modules_data/location/fight-club.php | 7 +- modules_data/location/house_belaun.php | 32 +- modules_data/location/kinght.php | 172 ++++++----- modules_data/location/novich.php | 319 ++++++++++---------- modules_data/location/objaga.php | 8 +- modules_data/location/penter.php | 13 +- modules_data/location/perehod.php | 117 +++---- modules_data/location/ric_zv.php | 166 +++++----- modules_data/location/room_hostel.php | 6 +- modules_data/location/torg.php | 172 ++++++----- modules_data/location/trade_zv.php | 166 +++++----- modules_data/location/zalu.php | 153 ++++++---- modules_data/location/zalu_pal.php | 8 +- modules_data/location/zalu_pal2.php | 129 ++++---- modules_data/location/zalu_pal3.php | 148 +++++---- modules_data/location/zalu_pal4.php | 148 +++++---- modules_data/location/zv2.php | 168 +++++++---- modules_data/location/zv3.php | 174 +++++++---- modules_data/location/zv4.php | 165 ++++++---- modules_data/location/zv_svet.php | 165 +++++----- modules_data/stats_inv.php | 27 +- online.php | 8 +- ruletka2.php | 10 +- 50 files changed, 1909 insertions(+), 1831 deletions(-) diff --git a/_incl_data/class/Battle/Finish.php b/_incl_data/class/Battle/Finish.php index ea7b96e7..5feb10da 100644 --- a/_incl_data/class/Battle/Finish.php +++ b/_incl_data/class/Battle/Finish.php @@ -10,6 +10,7 @@ use Core\Config; use Core\Db; use Delo; use ItemModel; +use Model\ActionModel; use User; use User\Clan; use User\Effects; @@ -908,11 +909,8 @@ class Finish $this->battle->users[$i]['battle_exp'] = floor($this->battle->users[$i]['battle_exp'] / 2); } if ($this->battle->users[$i]['animal'] > 0) { - $ulan = $u->testAction( - '`uid` = "' . $this->battle->users[$i]['id'] . '" AND `vars` = "animal_use' . $this->battle->i->id . '" LIMIT 1', - 1 - ); - if (isset($ulan['id']) && $this->battle->users[$i]['team'] == $this->battle->i->getTeamwin() && $this->battle->users[$i]['level'] > $ulan['vals']) { + $ulan = ActionModel::getOne(["uid = {$this->battle->users[$i]['id']}", "vars = animal_use{$this->battle->i->id}"], 'vals'); + if ($ulan['id'] && $this->battle->users[$i]['team'] == $this->battle->i->getTeamwin() && $this->battle->users[$i]['level'] > $ulan) { $a004 = mysql_fetch_array( mysql_query( 'SELECT `max_exp`,`name` FROM `users_animal` WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" AND `id` = "' . $this->battle->users[$i]['animal'] . '" AND `pet_in_cage` = "0" AND `delete` = "0" LIMIT 1' diff --git a/_incl_data/class/Helper/QueryBuilder.php b/_incl_data/class/Helper/QueryBuilder.php index 16c27581..a27facd2 100644 --- a/_incl_data/class/Helper/QueryBuilder.php +++ b/_incl_data/class/Helper/QueryBuilder.php @@ -19,14 +19,14 @@ class QueryBuilder public function select(array $filters = [], int $limit = 0): array { if (empty($filters)) { - return ['sql' => "select {$this->columns} from {$this->tableName}"]; + return ['sql' => "select $this->columns from $this->tableName"]; } $where = []; $params = []; foreach ($filters as $filter) { [$name, $operation, $value] = explode(' ', $filter, 3); $placeholder = ":$name"; - $value = explode(' ', $value, 3); + $value = explode(' ', $value, 3); //todo: а ведь может прилететь значение из нескольких слов с пробелом... if (count($value) === 1) { $value = $value[0]; if (is_numeric($value)) { diff --git a/_incl_data/class/Magic.php b/_incl_data/class/Magic.php index ec88e856..dce02ff9 100644 --- a/_incl_data/class/Magic.php +++ b/_incl_data/class/Magic.php @@ -1491,9 +1491,6 @@ class Magic } else { $u->error = 'Персонаж "' . $jl . '" не найден в этом городе (' . $u->info['city'] . ')'; } - } elseif (isset($st['useOnItem']) && $st['useOnItem'] == 1) { - //используем на предмет - } else { //на себя $goodUse = 1; @@ -1502,170 +1499,7 @@ class Magic $u->error = 'Хаосники не могут использовать данное заклятие'; } - if ($itm['magic_inci'] == 'sanich2') { - if ($u->info['battle'] == 0) { - $sz = $u->testAction( - '`uid` = "' . $u->info['id'] . '" AND `vars` = "sanich2" AND `time` > ' . (time() - 4 * 60 * 60) . ' LIMIT 1', 1 - ); - if (!isset($sz['id'])) { - $slech = rand(0, 4); - $goodUse = 0; - if ($slech == 1) { - //3083 Настойка на жучьей требухе - //$this->add_eff($u->info['id'],3083); - mysql_query( - 'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 290 AND `delete` =0' - ); - $this->addEffect($u->info['id'], 290); - $echotext = 'Настойка на жучьей требухе!'; - $u->error = 'Вы получили эфект от ' . $echotext . ''; - } elseif ($slech == 2) { - //5239 Амброзия подмастерья Владык - //$this->add_eff($u->info['id'],5239); - mysql_query( - 'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 472 AND `delete` =0' - ); - mysql_query( - 'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 470 AND `delete` =0' - ); - $this->addEffect($u->info['id'], 472); - $echotext = 'Амброзия подмастерья Владык!'; - $u->error = 'Вы получили эфект от ' . $echotext . ''; - } elseif ($slech == 3) { - //5069 Амброзия Скучающих Владык - //$this->add_eff($u->info['id'],470); - mysql_query( - 'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 472 AND `delete` =0' - ); - mysql_query( - 'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 470 AND `delete` =0' - ); - $this->addEffect($u->info['id'], 470); - $echotext = 'Амброзия Скучающих Владык!'; - $u->error = 'Вы получили эфект от ' . $echotext . ''; - } elseif ($slech == 4) { - //1463 Звездное Сияние - //$this->add_eff($u->info['id'],1463); - mysql_query( - 'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 35 AND `delete` =0' - ); - $this->addEffect($u->info['id'], 35); - $echotext = 'Звездное Сияние!'; - $u->error = 'Вы получили эфект от ' . $echotext . ''; - } else { - $slech = 1; - - $echotext = 'Не удалось прочитать страницу!'; - $u->error = ' ' . $echotext . ' '; - } - - $itm['iznosNOW'] += $slech; - mysql_query( - 'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1' - ); - $u->addAction(time(), 'sanich2', $slech); - - if ($u->info['sex'] == 1) { - $rtxt = '[img[items/' . $itm['img'] . ']] "' . $u->info['login'] . '" использовала "' . $itm['name'] . ' Саныча" и получила эффект ' . $echotext . ' травмы.'; - } else { - $rtxt = '[img[items/' . $itm['img'] . ']] "' . $u->info['login'] . '" использовал "' . $itm['name'] . ' Саныча" и получил эффект ' . $echotext . ' травмы.'; - } - - } else { - $u->error = 'Задержка использования ' . Conversion::secondsToTimeout( - ($sz['time'] + 4 * 60 * 60) - time() - ) . '.'; - } - } else { - $u->error = 'Невозможно использовать в бою'; - } - - } elseif ($itm['magic_inci'] == 'sanich1' && $u->info['battle'] > 0) { - - $sz = $u->testAction( - '`uid` = "' . $u->info['id'] . '" AND `vars` = "sanich1" AND `time` > ' . (time() - 6 * 60) . ' LIMIT 1', 1 - ); - if (!isset($sz['id'])) { - $goodUse = 0; - $u->error = 'Вы успешно использовали "' . $itm['name'] . '"'; - $z = 1; - while ($z <= 5) { - $u->info['tactic' . $z]++; - if ($u->info['tactic' . $z] > 25) { - $u->info['tactic' . $z] = 25; - } elseif ($u->info['tactic' . $z] < 0) { - $u->info['tactic' . $z] = 0; - } - $z++; - } - if ($u->info['sex'] == 1) { - $this->inBattleLog('{u1} использовала "' . $itm['name'] . ' Саныча".'); - } else { - $this->inBattleLog('{u1} использовал "' . $itm['name'] . ' Саныча".'); - } - mysql_query( - 'UPDATE `stats` SET `tactic1` = "' . $u->info['tactic1'] . '",`tactic2` = "' . $u->info['tactic2'] . '",`tactic3` = "' . $u->info['tactic3'] . '",`tactic4` = "' . $u->info['tactic4'] . '",`tactic5` = "' . $u->info['tactic5'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1' - ); - $itm['iznosNOW']++; - mysql_query( - 'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1' - ); - $u->addAction(time(), 'sanich1', $u->info['battle']); - } else { - $u->error = 'Задержка использования ' . Conversion::secondsToTimeout(($sz['time'] + 6 * 60) - time()) . '.'; - } - - } elseif ($itm['magic_inci'] == 'sanich3' && $u->info['battle'] > 0) { - - $sz = $u->testAction( - '`uid` = "' . $u->info['id'] . '" AND `vars` = "sanich3" AND `time` > ' . (time() - 3 * 60 * 60) . ' LIMIT 1', 1 - ); - if (!isset($sz['id'])) { - - $usr = mysql_fetch_array( - mysql_query( - 'SELECT `u`.`id`,`u`.`level`,`s`.`hpNow`,`s`.`team`,`u`.`login`,`u`.`sex` FROM `users` AS `u` LEFT JOIN `stats` AS `s` ON `s`.`id` = `u`.`id` WHERE `u`.`id` = "' . $u->info['enemy'] . '" AND `u`.`battle` = "' . $u->info['battle'] . '" LIMIT 1' - ) - ); - if (isset($usr['id']) && $usr['hpNow'] >= 1) { - $iznslvl = $usr['level']; - - $goodUse = 0; - $u->error = 'Вы успешно использовали "' . $itm['name'] . '" на ' . $usr['login'] . ''; - - if ($u->info['sex'] == 1) { - $this->inBattleLog( - '{u1} использовала "' . $itm['name'] . ' Саныча" на {u2}.', - $usr - ); - } else { - $this->inBattleLog( - '{u1} использовал "' . $itm['name'] . ' Саныча" на {u2}.', $usr - ); - } - - mysql_query( - 'UPDATE `stats` SET `hpNow` = "' . $usr['hpNow'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1' - ); - mysql_query( - 'UPDATE `stats` SET `hpNow` = "' . $u->stats['hpNow'] . '" WHERE `id` = "' . $usr['id'] . '" LIMIT 1' - ); - $itm['iznosNOW'] += $iznslvl; - mysql_query( - 'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1' - ); - $u->addAction(time(), 'sanich3', $u->info['battle']); - } else { - $u->error = 'Нет подходящего противника'; - } - - } else { - $u->error = 'Задержка использования ' . Conversion::secondsToTimeout( - ($sz['time'] + 3 * 60 * 60) - time() - ) . '.'; - } - - } elseif ($itm['magic_inci'] == 'lech') { + if ($itm['magic_inci'] == 'lech') { $goodUse = 0; if ($u->info['level'] >= 2 and $u->info['level'] <= 13) { $travm = mysql_fetch_array( @@ -1698,7 +1532,6 @@ class Magic if ($goodUse == 1) { - $upd1 = 1; $upd2 = 1; //добавляем эффект персонажу diff --git a/_incl_data/class/Magic/podvig.php b/_incl_data/class/Magic/podvig.php index 00e1eb30..9b69f509 100644 --- a/_incl_data/class/Magic/podvig.php +++ b/_incl_data/class/Magic/podvig.php @@ -1,38 +1,39 @@ info['id'] . '" AND `vars` = "podvig" AND `time` > "' . (time()) . '" LIMIT 1')); - if ($u->info['align'] != 2) { - if (isset($test['id'])) { - $u->error = 'Задержка не прошла, еще ' . Conversion::secondsToTimeout($test['time'] - time()); - } else { - // - $dngcity = [ - 5035 => ['angelscity', 'Бездна'], - 5036 => ['capitalcity', 'Пещера Тысячи Проклятий'], - 5037 => ['demonscity', 'Катакомбы'], - 5038 => ['abandonedplain', 'Гора Легиона'], //mooncity - 5039 => ['suncity', 'Грибница'], - 5040 => ['sandcity', 'Пещера Мглы'], - ]; - $dngcity = $dngcity[$itm['item_id']]; - $hgo1 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > "' . (time() - 86400) . '" AND `vars` = "psh_qt_' . $dngcity[0] . '" LIMIT 1', 1); - if (!isset($hgo1['id'])) { - $u->error = 'Нет задержки для подземелья ' . $dngcity[1] . '.'; - } else { - $u->addAction(time(), 'podvig', ''); - $u->error = 'Успешно использован свиток Право на Подвиг (' . $dngcity[1] . ')'; - mysql_query('UPDATE `actions` SET `time` = "' . (time() - 86401) . '" WHERE `id` = "' . ($hgo1['id']) . '" LIMIT 1'); - mysql_query('UPDATE `items_users` SET `iznosNOW` = `iznosNOW` + 1 WHERE `id` = "' . $itm['id'] . '" LIMIT 1'); - } - } + $test = Db::getRow("select id, time from actions where uid = ? and vars = 'podvig' and time > unix_timestamp() limit 1", [$u->info['id']]); + if (isset($test['id'])) { + $u->error = 'Задержка не прошла, еще ' . Conversion::secondsToTimeout($test['time'] - time()); } else { - $u->error = 'Хаосники не могут пользоваться этим свитком!'; + // + $dngcity = [ + 5035 => ['angelscity', 'Бездна'], + 5036 => ['capitalcity', 'Пещера Тысячи Проклятий'], + 5037 => ['demonscity', 'Катакомбы'], + 5038 => ['abandonedplain', 'Гора Легиона'], //mooncity + 5039 => ['suncity', 'Грибница'], + 5040 => ['sandcity', 'Пещера Мглы'], + ]; + $dngcity = $dngcity[$itm['item_id']]; + $hgo1 = ActionModel::getOne(["uid = {$u->info['id']}", "time > unix_timestamp() - 86400", "vars = psh_qt_$dngcity[0]"], 'id'); + + if (!isset($hgo1)) { + $u->error = 'Нет задержки для подземелья ' . $dngcity[1] . '.'; + } else { + $u->addAction(time(), 'podvig', ''); + $u->error = "Успешно использован свиток Право на Подвиг ($dngcity[1])"; + Db::sql('update actions set time = unix_timestamp() - 86401 where id = ?', [$hgo1]); + ItemsModel::addIznos($itm['id']); + } } + } diff --git a/_incl_data/class/Magic/tznanie.php b/_incl_data/class/Magic/tznanie.php index b4f7a607..e08beb0c 100644 --- a/_incl_data/class/Magic/tznanie.php +++ b/_incl_data/class/Magic/tznanie.php @@ -1,4 +1,8 @@ error = 'Так не пойдет, вы уже что-то изучаете'; } else { - $tst = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "read" AND `vals` = "' . $itm['item_id'] . '" LIMIT 1', 1); - if (isset($tst['id'])) { + $tst = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = read', "vals = {$itm['item_id']}"]); + + if ($tst) { $u->error = 'Вы уже изучили данное знание'; } else { $fn = ''; $tom_iz = 0; if (($itm['item_id'] >= 1045 && $itm['item_id'] <= 1047) || ($itm['item_id'] >= 4812 && $itm['item_id'] <= 4813)) { - $tst2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "read" AND `vals` = "' . ($itm['item_id'] - 1) . '" LIMIT 1', 1); - if (!isset($tst2['id'])) { + $tst2 = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = read', "vals = {$itm['item_id']} - 1"]); + if (!$tst2) { $tom_iz = 1; } unset($tst2); @@ -41,7 +46,7 @@ if (isset($po['finish_file']) && $po['finish_file'] == 'tznanie') { $u->error = 'Вы изучили "' . $itm['name'] . '".'; $u->addAction(time() + $st['timeRead'], 'read', $itm['item_id']); - mysql_query('UPDATE `items_users` SET `iznosNOW` = `iznosNOW` + 1 WHERE `id` = ' . $itm['id'] . ' LIMIT 1'); + ItemsModel::addIznos($itm['id']); } else { $u->error = 'Требует изучения предыдущего тома'; diff --git a/_incl_data/class/Model/ActionModel.php b/_incl_data/class/Model/ActionModel.php index d60abdc4..704b53a6 100644 --- a/_incl_data/class/Model/ActionModel.php +++ b/_incl_data/class/Model/ActionModel.php @@ -37,9 +37,25 @@ class ActionModel ); } - public static function getAll(string $filter = ''): array + public static function get(array $filters, string $columns = '*'): array { - return Db::getRows('select * from actions'); + $query = new QueryBuilder(self::TABLE_NAME, $columns); + try { + $stmt = $query->select($filters, 1); + return Db::getRow($stmt['sql'], $stmt['binds']); + } catch (Exception $e) { + echo $e->getMessage(); + trigger_error(__METHOD__ . ': ' . $e->getMessage(), E_USER_ERROR); + } + } + + public static function getOne(array $filters, string $column): mixed + { + $result = self::get($filters, $column); + if (!empty($result)) { + return array_shift($result); + } + return ''; } public static function deleteById(int $id): void @@ -83,6 +99,11 @@ class ActionModel public function getLastByValsAndTime(string $vals, int $time) { + $filter = [ + "uid = $this->uid", + "vals = '$vals'", + "time > unix_timestamp() - $time", + ]; return Db::getRow( 'select * from actions where uid = ? and vals = ? and time > unix_timestamp() - ? order by time desc limit 1', [$this->uid, $vals, $time] @@ -101,23 +122,7 @@ class ActionModel "vars = 'day_quest'", ]; - return self::getAction($filter); - } - - public static function getAction(array $filters, int $limit = 1): array - { - $query = new QueryBuilder(self::TABLE_NAME); - try { - $stmt = $query->select($filters, $limit); - $result = Db::getRows($stmt['sql'], $stmt['binds']); - if (count($result) === 1 || $limit === 1) { - return $result[0]; - } - return $result; - } catch (Exception $e) { - echo $e->getMessage(); - trigger_error(__METHOD__ . ': ' . $e->getMessage(), E_USER_ERROR); - } + return self::get($filter); } public function getFinishedDailyQuestTasks(int $timeout): array diff --git a/_incl_data/class/Priems.php b/_incl_data/class/Priems.php index ea36212d..6d4b1a2d 100644 --- a/_incl_data/class/Priems.php +++ b/_incl_data/class/Priems.php @@ -1106,12 +1106,9 @@ class Priems return; } - $alreadyReleased = $this->u->testAction( - '`uid` = "' . $this->u->info['id'] . '" AND `vars` = "animal_use' . $btl->i->id . '" LIMIT 1', - 1 - ); + $alreadyReleased = ActionModel::testCount(["uid = {$this->u->info['id']}", "vars = animal_use{$btl->i->id}"]); - if (!empty($alreadyReleased['id'])) { + if (!empty($alreadyReleased)) { echo 'Вы уже выпускали зверя в этом бою ...'; return; } @@ -2070,21 +2067,11 @@ class Priems public function getTechniquesInfo(?int $id = null): array { - # SELECT * FROM `priems` WHERE `level`<="' . $this->u->info['level'] . '" AND `activ` > "0" AND `id` = "' . $id . '" LIMIT 1 - if (isset($id)) { return Db::getRow('select * from priems where level <= ? and activ > 0 and id = ? order by img,level', [$this->u->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 priems where level <= ? and activ > 0 order by img,level', [$this->u->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 seeMyPriems(): void @@ -2291,11 +2278,8 @@ class Priems $i++; } if ($this->u->info['animal'] > 0) { - $use_lst = $this->u->testAction( - '`uid` = "' . $this->u->info['id'] . '" AND `vars` = "animal_use' . $btl->i->id . '" LIMIT 1', - 1 - ); - if (!isset($use_lst['id'])) { + $use_lst = (bool)ActionModel::testCount(["uid = {$this->u->info['id']}", "vars = animal_use{$btl->i->id}"]); + if (!$use_lst) { $pr .= ''; } else { $pr .= ''; diff --git a/_incl_data/class/User.php b/_incl_data/class/User.php index d69569db..64ace6be 100644 --- a/_incl_data/class/User.php +++ b/_incl_data/class/User.php @@ -260,9 +260,9 @@ class User if ($sb - 1 > $this->info['catch'] - $this->info['frg']) { if ($this->info['frg'] == -1) { - $sm = $this->testAction('`uid` = "' . $this->info['id'] . '" AND `vars` = "frg" LIMIT 1', 1); + $sm = (bool)ActionModel::testCount(["uid = {$this->info['id']}", 'vars = frg']); } - if (!isset($sm['id']) && $this->info['frg'] == -1) { + if (!$sm && $this->info['frg'] == -1) { mysql_query( 'UPDATE `users` SET `catch` = "' . round( $sb @@ -287,6 +287,7 @@ class User ); } } + unset($sm); } if ($this->info['login2'] != '' && $this->info['battle'] == 0 && $this->info['zv'] == 0) { @@ -304,8 +305,7 @@ class User } if (isset($_GET['homeworld']) && $this->info['zv'] == 0 && $this->info['battle'] == 0 && $this->info['dnow'] == 0) { - $hgo = $this->testHome(); - if (!isset($hgo['id']) && $this->info['room'] != 274 && $this->info['align'] != 2 && $this->info['inTurnir'] == 0) { + if ($this->testHome() && $this->info['room'] != 274 && $this->info['align'] != 2 && $this->info['inTurnir'] == 0) { $this->addAction(time(), 'go_homeworld', ''); $rmt = mysql_fetch_array( mysql_query( @@ -340,7 +340,6 @@ class User } else { $this->error = 'Вам запрещено пользоваться кнопкой возрата'; } - unset($hgo); } //Заносим текст @@ -506,17 +505,14 @@ class User */ //Статистика персонажа на сегодня - $stat = $this->testAction( - '`uid` = "' . $this->info['id'] . '" AND `time` >= ' . strtotime( - 'now 00:00:00' - ) . ' AND `vars` = "statistic_today" LIMIT 1', 1 - ); - if (!isset($stat['id'])) { + $stat = (bool)ActionModel::testCount(["uid = {$this->info['id']}", "time >= " . strtotime('now 00:00:00'), 'vars = statistic_today']); + if (!$stat) { $this->addAction( time(), 'statistic_today', 'e=' . $this->info['exp'] . '|w=' . $this->info['win'] . '|l=' . $this->info['lose'] . '|n=' . $this->info['nich'] ); } + unset($stat); //Одеваем боевой комплект if (isset($_GET['usec1']) && $this->info['battle'] == 0) { @@ -600,11 +596,8 @@ class User } if (isset($_GET['obr_sel']) || isset($_GET['obraz'])) { - $sm = $this->testAction( - '`uid` = "' . $this->info['id'] . '" AND `time` > ' . (time() - 86400) . ' AND `vars` = "sel_obraz" LIMIT 1', - 1 - ); - if (!isset($sm['id'])) { + $obrazTimeout = ActionModel::getOne(["uid = {$this->info['id']}", 'time > unix_timestamp() - 86400', 'vars = sel_obraz'], 'time'); + if (!$obrazTimeout) { if (isset($_GET['obr_sel'])) { $tr = true; $o = mysql_fetch_array( @@ -675,7 +668,7 @@ class User } } else { $this->error = 'Выбирать образ можно не чаще одного раза в сутки, следующая смена ' . date( - 'd.m.Y H:i', $sm['time'] + 86400 + 'd.m.Y H:i', $obrazTimeout + 86400 ); unset($_GET['obr_sel']); $_GET['inv'] = 1; @@ -811,17 +804,6 @@ class User return Db::getRow('select * from users left join stats on users.id = stats.id where users.id = ?', [$id]); } - public function testAction($filter, $tp = 1): array - { - $query = 'select * from actions where ' . $filter; - - $arr = mysql_fetch_array(mysql_query($query)); - - return !empty($arr) ? $arr : []; - } - - //Удаление определенного типа предметов - public function addAction($time, $vars, $vls, $uid = null): bool { $info = $this->info; @@ -832,7 +814,14 @@ class User return true; } - public function testHome(): array + //Удаление определенного типа предметов + + /** + * Кнопка "Возврат". + * + * @return bool + */ + public function testHome(): bool { /*----Быстрый(Особенность)----*/ $timeforwait = 3600; @@ -840,25 +829,27 @@ class User $timeforwait = 3600 - (($st['os6'] * 5) * 60); } /*----Быстрый(Особенность)----*/ - $hgo = $this->testAction( - '`uid` = "' . $this->info['id'] . '" AND `time` >= ' . (time() - $timeforwait) . ' AND `vars` = "go_homeworld" LIMIT 1', - 1 - ); - if ($this->info['level'] == 0 || $this->info['active'] != '' || $this->info['inTurnir'] > 0 || $this->info['inTurnirnew'] > 0 || $this->info['zv'] > 0 || $this->info['dnow'] > 0) { - $hgo['id'] = true; + $buttonUsed = (bool)ActionModel::testCount(["uid = {$this->info['id']}", "time >= unix_timestamp - $timeforwait", 'vars = go_homeworld']); + + if ( + $this->info['level'] == 0 || + $this->info['active'] != '' || + $this->info['inTurnir'] > 0 || + $this->info['inTurnirnew'] > 0 || + $this->info['zv'] > 0 || + $this->info['dnow'] > 0 || + !empty($this->info['noreal']) + ) { + $buttonUsed = true; } - if (isset($this->info['noreal']) || $this->info['dnow'] > 0) { - $hgo['id'] = true; - } - if (!isset($hgo['id'])) { - $ku = mysql_fetch_array( - mysql_query('SELECT `id` FROM `katok_zv` WHERE `uid` = ' . $this->info['id']) - ); - if (isset($ku['id'])) { - $hgo['id'] = true; + + if (!$buttonUsed) { + $onKatok = (bool)Db::getValue('select id from katok_zv where uid = ?', [$this->info['id']]); + if ($onKatok) { + $buttonUsed = true; } } - return $hgo ?? []; + return !$buttonUsed; } public function wipe() @@ -939,39 +930,42 @@ class User //Расчет урона от оружия - public function allActionsStart() + public function allActionsStart(): void { global $magic; + define('VAREZHKI_ITEM_ID', 998); + if (!isset($_GET['use_snowball'])) { return; } $this->stats = $this->getStats($this->info, 0); //Начинаем лепить снежок на ЦП - if (!isset($this->stats['items'][$this->stats['wp13id']]['id']) || $this->stats['items'][$this->stats['wp13id']]['item_id'] != 998) { + if (!isset($this->stats['items'][$this->stats['wp13id']]['id']) || $this->stats['items'][$this->stats['wp13id']]['item_id'] != VAREZHKI_ITEM_ID) { return; }//варежки одеты, все ок if ($this->room['name'] != 'Центральная площадь') { $this->error2 = 'Собирать снег можно только на Центральной площади'; - } else { - $smt = $this->testAction( - '`uid` = "' . $this->info['id'] . '" AND `time`>=' . (time() - 120) . ' AND `vars` = "create_snowball_cp" LIMIT 1', - 1 - ); - if (isset($smt['id'])) { - $this->error2 = 'Нельзя лепить несколько снежков одновременно ;)'; - } else { - $smt = ActionModel::testCount(["uid = {$this->info['id']}", 'vars = create_snowball_cp', 'time >= ' . strtotime('now 00:00:00')], 25); - - if ($smt < 10) { - $this->addAction(time(), 'create_snowball_cp', $this->info['city']); - - $magic->addEffect($this->info['id'], 24); - $this->error2 = 'Начинаем лепить снежок, осталось ' . (10 - $smt) . ' раз на сегодня ...'; - } else { - $this->error2 = 'Вы уже слепили 10 снежка за сегодня ...'; - } - } + `` + return; } + + $isMakingSnowball = (bool)ActionModel::testCount(["uid = {$this->info['id']}", "time >= unix_timestamp() - 120", 'vars = create_snowball_cp']); + + if ($isMakingSnowball) { + $this->error2 = 'Нельзя лепить несколько снежков одновременно ;)'; + return; + } + + $createdToday = ActionModel::testCount(["uid = {$this->info['id']}", 'vars = create_snowball_cp', 'time >= ' . strtotime('now 00:00:00')], 25); + + if ($createdToday >= 10) { + $this->error2 = 'Вы уже слепили 10 снежка за сегодня ...'; + return; + } + + $this->addAction(time(), 'create_snowball_cp', $this->info['city']); + $magic->addEffect($this->info['id'], 24); + $this->error2 = 'Начинаем лепить снежок, осталось ' . (10 - $createdToday) . ' раз на сегодня ...'; } //Расчет защиты @@ -4884,7 +4878,7 @@ class User return 0; } - $sleep = $this->testAction('`vars` = "sleep" AND `uid` = "' . $e['uid'] . '" LIMIT 1', 1); + $sleep = ActionModel::getOne(["uid = {$e['uid']}", 'vars = sleep'], 'vars'); if ($e['id_eff'] == 2) { //Проверка @@ -4908,6 +4902,7 @@ class User if (isset($po['finish_file']) && file_exists('_incl_data/class/Magic/' . $po['finish_file'] . '.php')) { require_once '_incl_data/class/Magic/' . $po['finish_file'] . '.php'; } + if (isset($u['id']) && ($e['type1'] < 11 || $e['type1'] > 16 && $e['type1'] < 23) && $e['noch'] == 0) { $text = "Закончилось действие эффекта «{$e['name']}»"; $cmsg = new ChatMessage(); diff --git a/_incl_data/class/User/ItemsModel.php b/_incl_data/class/User/ItemsModel.php index b3969e96..1f2763a5 100644 --- a/_incl_data/class/User/ItemsModel.php +++ b/_incl_data/class/User/ItemsModel.php @@ -211,4 +211,9 @@ class ItemsModel } return $rt; } + + public static function addIznos(int $itemId): void + { + Db::sql('update items_users set iznosNOW = iznosNOW + 1 where id = ?', [$itemId]); + } } \ No newline at end of file diff --git a/buttons.php b/buttons.php index 4cd0b7a1..d4d514ac 100644 --- a/buttons.php +++ b/buttons.php @@ -1162,8 +1162,6 @@ if (!isset($_COOKIE['d1c'])) { info['active'] != '' && $u->info['mail'] != 'No E-mail') { - $yes = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "user_active_good" LIMIT 1', 1); - $yes2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "user_active_send" LIMIT 1', 1); Db::sql('update stats set active = default where id = ?', [$u->info['id']]); } ?> diff --git a/main.php b/main.php index d061e136..2b4f03ab 100644 --- a/main.php +++ b/main.php @@ -4,6 +4,7 @@ if (!defined('GAME_VERSION')) { } use Core\{Config, Database, Db}; +use Model\ActionModel; use User\ItemsModel; use User\UserIp; @@ -43,9 +44,9 @@ if ($u->info['bithday'] == '01.01.1800' && $u->info['inTurnirnew'] == 0) { } #--------для общаги, и позже для почты -$sleep = $u->testAction('`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', 1); +$sleep = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = sleep'], 'id'); if ($u->room['file'] != "room_hostel" && $u->room['file'] != "an/room_hostel" && !empty($sleep)) { - Db::sql('update actions set vars = ? where id = ?', ['unsleep', $sleep['id']]); + Db::sql('update actions set vars = ? where id = ?', ['unsleep', $sleep]); } if ($u->room['file'] == "room_hostel" || $u->room['file'] == "post") { $trololo = 0; @@ -255,7 +256,7 @@ if ($magic->youuse > 0) { if ($act != -2) { $u->stats = $u->getStats($u->info['id'], 0, 1); $u->aves = ItemsModel::inventoryWeightAndItemQuantity(); - if (!isset($sleep['id'])) { + if (empty($sleep)) { $act2 = $u->testItems($u->info['id'], $u->stats, 0); } if ($act2 != -2 && $act == -2) { @@ -413,7 +414,7 @@ if (isset($btl_last['id']) && $u->info['battle'] == 0) { $u->info['battle_lsto'] = true; } elseif ($u->info['battle'] == 0) { //Проверка/Снятие предметов - if (!isset($sleep['id'])) { + if (empty($sleep)) { $act2 = $u->testItems($u->info['id'], $u->stats, 0); } if ($act2 != -2 && $act == -2) { diff --git a/main_bot.php b/main_bot.php index 26c32a84..93a5c4dd 100644 --- a/main_bot.php +++ b/main_bot.php @@ -1,7 +1,9 @@ testAction('`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', 1); -if ($u->room['file'] != "objaga" && $sleep['id'] > 0) { - mysql_query('UPDATE `actions` SET `vars` = "unsleep" WHERE `id` = ' . $sleep['id']); +$sleep = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = sleep'], 'id'); +if ($u->room['file'] != "objaga" && $sleep > 0) { + mysql_query('UPDATE `actions` SET `vars` = "unsleep" WHERE `id` = ' . $sleep); } $trololo = $u->room['file'] == "objaga" || $u->room['file'] == "post" ? 0 : 1; @@ -79,7 +81,7 @@ if ($u->info['online'] < time() - 60) { } if (!isset($u->info['id']) || ($u->info['joinIP'] == 1 && $u->info['ip'] != $_SERVER['HTTP_X_REAL_IP']) || $u->info['banned'] > 0) { - die($c['exit']); + die(Config::get('exit')); } if (isset($_GET['atak_user']) && $u->info['battle'] == 0 && $_GET['atak_user'] != $u->info['id']) { @@ -110,7 +112,6 @@ if (isset($_GET['atak_user']) && $u->info['battle'] == 0 && $_GET['atak_user'] ! $rtxt = '[img[items/pal_button8.gif]] "' . $u->info['login'] . '" совершил' . $sx . ' нападение по метке на персонажа "' . $ua['login'] . '".'; $cmsg = new ChatMessage(); - $cmsg->setCity($u->info['city']); $cmsg->setRoom($u->info['room']); $cmsg->setText($rtxt); $cmsg->setType(6); @@ -168,75 +169,9 @@ if ($ul == 1) { $act = 1; } -//// Непонятно что это, потому что переменной 'repass' не существует и этот код никогда не выполняется. 15.08.2023, Инс. -//if ($u->info['repass'] > 0 && $u->info['id'] != 5433446) { -// -// /*-----------------------*/ -// if ($u->info['battle'] == 0) { -// if ($act2 != -2 && $act == -2) { -// $act = $act2; -// } -// -// if (!isset($u->tfer['id']) && $u->room['block_all'] == 0) { -// //Одеть/снять предмет -// if (isset($_GET['rstv']) && isset($_GET['inv'])) { -// $act = $u->freeStatsMod($_GET['rstv'], $_GET['mf'], $u->info['id']); -// } elseif (isset($_GET['ufs2']) && isset($_GET['inv'])) { -// $act = $u->freeStats2Item($_GET['itmid'], $_GET['ufs2'], $u->info['id'], 1); -// } elseif (isset($_GET['ufs2mf']) && isset($_GET['inv'])) { -// $act = $u->freeStats2Item($_GET['itmid'], $_GET['ufs2mf'], $u->info['id'], 2); -// } elseif (isset($_GET['ufsmst']) && isset($_GET['inv'])) { -// $act = $u->itemsSmSave($_GET['itmid'], $_GET['ufsmst'], $u->info['id']); -// } elseif (isset($_GET['ufsms']) && isset($_GET['inv'])) { -// $act = $u->itemsSmSave($_GET['itmid'], $_GET['ufsms'] + 100, $u->info['id']); -// } elseif (isset($_GET['ufs']) && isset($_GET['inv'])) { -// $act = $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'])) { -// $act = $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'])) { -// $u->deleteItem(intval($_GET['delete']), $u->info['id']); -// } elseif (isset($_GET['stack']) && isset($_GET['inv'])) { -// $u->stack($_GET['stack']); -// } elseif (isset($_GET['unstack']) && isset($_GET['inv'])) { -// $u->unstack($_GET['unstack']); -// } 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']); -// } -// } -// -// } elseif ($u->info['battle_text'] != '') { -// Db::sql('update stats set battle_text = ?, last_b = 0 where id = ?', ['', $u->info['id']]); -// } -// -// if ($magic->youuse > 0) { -// $act = 1; -// } -// //Получение статов -// if ($act != -2) { -// $u->stats = $u->getStats($u->info['id'], 0, 1); -// $u->aves = \User\ItemsModel::inventoryWeightAndItemQuantity(); -// $act2 = $u->testItems($u->info['id'], $u->stats, 0); -// if ($act2 != -2 && $act == -2) { -// $act = $act2; -// } -// } -//} - if ( (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'])) { include('modules_data/_zv.php'); } - -mysql_query('UNLOCK TABLES'); diff --git a/modules_data/_locations.php b/modules_data/_locations.php index 7cc2121c..23a6dddc 100644 --- a/modules_data/_locations.php +++ b/modules_data/_locations.php @@ -1,6 +1,5 @@ testAction( - '`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', - 1 - ); - if (isset($sleep['id']) && $sleep['vars'] == 'sleep' && $go['name'] != 'Общ. Этаж 1' && $go['name'] != 'Общ. Этаж 2' && $go['name'] != 'Общ. Этаж 3') { + $sleep = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = sleep']); + if ($sleep && $go['name'] != 'Общ. Этаж 1' && $go['name'] != 'Общ. Этаж 2' && $go['name'] != 'Общ. Этаж 3') { $re = 'Вы можете перемещаться только когда бодрствуете.'; echo ' ' . $re; } elseif ($u->info['timeGo'] >= time()) { @@ -254,10 +250,8 @@ if (isset($_GET['loc'])) { Db::sql('update bs_zv set finish = unix_timestamp() where uid = ? and inBot = 0 and finish = 0', [$u->info['id']]); } - $smt = $u->testAction( - '`uid` = "' . $u->info['id'] . '" AND `time`>=' . (time() - 600) . ' AND `vars` = "create_snowball_cp" LIMIT 1', - 1 - ); + $smt = ActionModel::getOne(["uid = {$u->info['id']}", "time >= unix_timestamp() - 600", 'vars = create_snowball_cp'], 'id'); + if (isset($smt['id'])) { ActionModel::deleteById($smt['id']); } diff --git a/modules_data/_umenie.php b/modules_data/_umenie.php index c593a32d..5a9066b3 100644 --- a/modules_data/_umenie.php +++ b/modules_data/_umenie.php @@ -9,6 +9,7 @@ use Core\Config; use DarksLight2\Battle\Techniques\TechniqueCategoryEntity; use DarksLight2\Training\TrainingManager; use Helper\Conversion; +use Model\ActionModel; use Model\Constant\Stat; if (!defined('GAME')) { @@ -2318,12 +2319,10 @@ $tma = ''; echo '
  Задержка на получение задания в ' . $u->city_name[$ic1] . ' ' . Conversion::secondsToTimeout((86400 + $pl['time']) - time()) . '

'; } //Пещеры - $dungeon_timeout = $u->testAction( - '`uid` = "' . $u->info['id'] . '" AND `vars` = "psh0" AND `time` > ' . (time() - 60 * 60 * 3) . ' LIMIT 1', - 1 - ); - if ($dungeon_timeout['vars'] == "psh0") { - echo '
Задержка на посещение подземелья: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeon_timeout['time']) . '

'; + $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh0', "time > unix_timestamp() - 10800"], 'time'); + if ($dungeonTimeout) { + echo '
+ Задержка на посещение подземелья: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout) . '

'; } ?>
@@ -2375,26 +2374,21 @@ $tma = ''; } ?>
testAction( - '`uid` = "' . $u->info['id'] . '" AND `time` >= ' . strtotime('now 00:00:00') . ' AND `vars` = "statistic_today" LIMIT 1', - 1 - ); - if (isset($sf['id'])) { - $sfe = Conversion::dataStringToArray($sf['vals']); - $sf[0] = $u->info['exp'] - (int)$sfe['e']; - $sf[1] = $u->info['win'] - (int)$sfe['w']; - $sf[2] = $u->info['lose'] - (int)$sfe['l']; - $sf[3] = $u->info['nich'] - (int)$sfe['n']; - unset($sfe); - } else { - $sf = [0 => 0, 1 => 0, 2 => 0, 3 => 0]; + $sf = ActionModel::getOne(["uid = {$u->info['id']}", "time >= " . strtotime('now 00:00:00'), 'vars = statistic_today'], 'vals'); + $statisticToday = [0, 0, 0, 0,]; + if ($sf) { + [$statisticToday[0], $statisticToday[1], $statisticToday[2], $statisticToday[3]] = Conversion::dataStringToArray($sf); + $statisticToday[0] = $u->info['exp'] - $statisticToday[0]; + $statisticToday[1] = $u->info['win'] - $statisticToday[1]; + $statisticToday[2] = $u->info['lose'] - $statisticToday[2]; + $statisticToday[3] = $u->info['nich'] - $statisticToday[3]; } ?>       За сегодня
- • Получено опыта:
- • Одержано побед:
- • Проиграно битв:
- • Ничьих:
+ • Получено опыта:
+ • Одержано побед:
+ • Проиграно битв:
+ • Ничьих:
room['file'] != 'bk') {
- testHome(); - if (!isset($hgo['id'])) { ?> + testHome()) { ?>
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
Администрация.

diff --git a/modules_data/location/bk2.php b/modules_data/location/bk2.php index 667d223a..f5ed91ff 100644 --- a/modules_data/location/bk2.php +++ b/modules_data/location/bk2.php @@ -1,76 +1,107 @@ room['file']=='bk2') -{ -?> - - - - - + +
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- error!=''){ echo ''.$u->error.''; } ?> - - - - -
- '.$re.''; } ?> - - - - -
-
-
-
onclick="location='main.php?loc=1.180.0.221';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec5.gif" width="122" height="31" class="aFilter" />
-
- -
onclick="location='main.php?loc=1.180.0.XX';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec2.gif" width="63" height="40" class="aFilter" />
- -
onclick="location='main.php?loc=1.180.0.3';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec1.gif" width="91" height="43" class="aFilter" />
-
-
onclick="location='main.php?loc=1.180.0.224';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec6.gif" width="123" height="30" class="aFilter" />
-
-
- -
-
- - info['level']<6) - { - echo ' +if ($u->room['file'] == 'bk2') { + ?> + + + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ error != '') { + echo '' . $u->error . ''; + } ?> + + + - + } else { + echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; + } ?> + + + + -
+ ' . $re . ''; + } ?> + + + + +
+
+
+
+
+ onclick="location='main.php?loc=1.180.0.221';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" + src="//img.new-combats.tech/i/images/300x225/map_sec5.gif" width="122" height="31" class="aFilter"/>
+
+ +
+ onclick="location='main.php?loc=1.180.0.XX';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" + src="//img.new-combats.tech/i/images/300x225/map_sec2.gif" width="63" height="40" class="aFilter"/>
+ +
+ onclick="location='main.php?loc=1.180.0.3';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" + src="//img.new-combats.tech/i/images/300x225/map_sec1.gif" width="91" height="43" class="aFilter"/>
+
+
+ onclick="location='main.php?loc=1.180.0.224';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" + src="//img.new-combats.tech/i/images/300x225/map_sec6.gif" width="123" height="30" class="aFilter"/>
+
+
+ +
+
+ + info['level'] < 6) { + echo ' Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. '; - }else{ - echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; - } ?> -
- - + +
- +
+
- testHome(); if(!isset($hgo['id'])){ ?> - - - - -
+ testHome()) { ?> + + + + +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
-Администрация.
+
+ +
+ \ No newline at end of file diff --git a/modules_data/location/dungeon_enter.php b/modules_data/location/dungeon_enter.php index 89613846..c427fe55 100644 --- a/modules_data/location/dungeon_enter.php +++ b/modules_data/location/dungeon_enter.php @@ -1,6 +1,7 @@ room['file'] == 'dungeon_enter') { } // Собираем группу для похода //if( $u->info['admin'] > 0 ) var_info($dungeon); - $all_dungeon = mysql_query('SELECT `city` FROM `dungeon_room` WHERE `city` IS NOT NULL AND `active`=1 '); + $all_dungeon = mysql_query('select city from dungeon_room where city is not null and active=1 '); while ($t = mysql_fetch_array($all_dungeon)) { $dungeon['list'][] = $t['city']; } @@ -39,16 +40,17 @@ if ($u->room['file'] == 'dungeon_enter') { } } - $dungeon_timeout = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh0" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1); + /** @var int $dungeonTimeout Задержка на посещение пещеры. */ + $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh0', "time > unix_timestamp() - 7200"], 'time'); - if ($u->info['admin'] > 0) { - unset($dungeon_timeout); - } // $dungeon_timeout - задержка на посещение пещеры. - if (isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был. - { + if ($u->isAdmin()) { + $dungeonTimeout = 0; + } + + if ($dungeonTimeout) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был. $dungeonGo = 0; if (isset($_GET['start'])) { - $error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeon_timeout['time']); + $error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout); } } @@ -132,8 +134,7 @@ if ($u->room['file'] == 'dungeon_enter') { if ($cord[0] != 0 || $cord[1] != 0) { mysql_query( 'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES ( - "' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time( - ) . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '" + "' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time() . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '" )' ); } @@ -614,9 +615,10 @@ if ($u->room['file'] == 'dungeon_enter') { - Рыцарский магазин + Рыцарский магазин @@ -689,9 +691,8 @@ if ($u->room['file'] == 'dungeon_enter') {
testAction( - '`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . $dungeon['city'] . '" LIMIT 1', 1 - ); + $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "room = {$u->info['room']}", "time >= unix_timestamp() - 86400", "vars = psh_qt_{$dungeon['city']}"], 'time'); + $qc = 0; // Quest Count //Генерируем список текущих квестов $sp = mysql_query('SELECT * FROM `actions` WHERE `vars` LIKE "%start_quest%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 100'); @@ -717,8 +718,8 @@ if ($u->room['file'] == 'dungeon_enter') { } if (isset($_GET['add_quest']) && $qc == 0) { - if (isset($hgo['id'])) { - echo 'Нельзя получать задания чаще одного раза в сутки
'; + if ($questTimeout) { + echo 'Нельзя получать задания чаще одного раза в сутки
'; } else { $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . ''); $dq_add = []; @@ -775,13 +776,14 @@ if ($u->room['file'] == 'dungeon_enter') { 0) { echo 'Вы еще не справились с текущим заданием.'; - } elseif (!isset($hgo['id']) && $qc == 0) { + } elseif (!$questTimeout && $qc == 0) { ?>
' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . '
( Через ' . Conversion::secondsToTimeout($hgo['time'] + 60 * 60 * 24 - time()) . ' )'; + echo 'Получить новое задание можно ' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . + ' ( Через ' . Conversion::secondsToTimeout($questTimeout + 60 * 60 * 24 - time()) . ' )'; } ?> @@ -995,7 +997,6 @@ if ($u->room['file'] == 'dungeon_enter') { ); while ($chk_pl = mysql_fetch_array($chk_cl)) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { - ; } { $x++; @@ -1073,7 +1074,7 @@ if ($u->room['file'] == 'dungeon_enter') { } } else { echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( - 60 * 60 * 2 - time() + $dungeon_timeout['time'] + 60 * 60 * 2 - time() + $dungeonTimeout ) . '
Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)'; } } diff --git a/modules_data/location/dungeon_enter_all.php b/modules_data/location/dungeon_enter_all.php index a3de4357..f2cbf9b3 100644 --- a/modules_data/location/dungeon_enter_all.php +++ b/modules_data/location/dungeon_enter_all.php @@ -3,6 +3,7 @@ use Core\Config; use Core\Db; use Helper\Conversion; +use Model\ActionModel; use User\StatsModel; if (!defined('GAME')) { @@ -50,15 +51,17 @@ if ($u->info['dn'] > 0) { } } -$dungeon_timeout = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh0" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1); +/** @var int $dungeonTimeout Задержка на посещение пещеры. */ +$dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh0', "time > unix_timestamp() - 7200"], 'time'); if ($u->isAdmin()) { - unset($dungeon_timeout); -} // $dungeon_timeout - задержка на посещение пещеры. -if (isset($dungeon_timeout['id'])) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был. + $dungeonTimeout = 0; +} + +if ($dungeonTimeout) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был. $dungeonGo = 0; if (isset($_GET['start'])) { - $error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeon_timeout['time']); + $error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout); } } @@ -131,8 +134,7 @@ if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $dungeonGo == 1) { if ($cord[0] != 0 || $cord[1] != 0) { mysql_query( 'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES ( - "' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time( - ) . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '" + "' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time() . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '" )' ); } @@ -511,9 +513,6 @@ if ($roomSection == 1) { testAction( - '`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . $dungeon['city'] . '" LIMIT 1', 1 - ); $qc = 0; // Quest Count $qcc = []; //Генерируем список текущих квестов @@ -569,20 +568,17 @@ if ($roomSection == 1) { $dun5 = 12; //ПТП } // - $hgo = $u->testAction( - '`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . mysql_real_escape_string( - $qst_city - ) . '" LIMIT 1', 1 - ); - //$qcc + + $hgo = (bool)ActionModel::testCount(["uid = {$u->info['id']}", "room = {$u->info['room']}", "time >= unix_timestamp() - 86400", "vars = psh_qt_$qst_city"]); + if ($qcc[$dun5] > 0) { - echo 'У Вас уже есть задание, завершите его или отмените для получения нового.
'; + echo 'У Вас уже есть задание, завершите его или отмените для получения нового.
'; } elseif ($qst_city != 'capitalcity' && $qst_city != 'angelscity' && $qst_city != 'suncity' && $qst_city != 'demonscity' && $qst_city != 'dreamscity' && $qst_city != 'abandonedplain' && $qst_city != 'izlom16' && $qst_city != 'sandcity' && $qst_city != 'emeraldscity' && $qst_city != 'devilscity') { - echo 'Для этой пещеры еще нет заданий
'; - } elseif (isset($hgo['id'])) { - echo 'Нельзя получать задания чаще одного раза в сутки
'; + echo 'Для этой пещеры еще нет заданий
'; + } elseif ($hgo) { + echo 'Нельзя получать задания чаще одного раза в сутки
'; } else { - $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dun5 . ''); + $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dun5); $dq_add = []; while ($pl = mysql_fetch_array($sp)) { if ($u->rep['rep' . $qst_city] == 24999) { @@ -620,101 +616,27 @@ if ($roomSection == 1) { $qsee = 'К сожалению у вас нет ни одного задания

'; } ?> -
- +
Текущие задания: Получить задание:
testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_capitalcity" LIMIT 1', 1); - $hgo2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_angelscity" LIMIT 1', 1); - $hgo3 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_suncity" LIMIT 1', 1); - $hgo4 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_demonscity" LIMIT 1', 1); - $hgo5 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_dreamscity" LIMIT 1', 1); - $hgo6 = $u->testAction( - '`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_abandonedplain" LIMIT 1', 1 - ); - $hgo7 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_izlom16" LIMIT 1', 1); - $hgo8 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_sandcity" LIMIT 1', 1); - $hgo9 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_emeraldscity" LIMIT 1', 1); - $hgo10 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_devilscity" LIMIT 1', 1); - - - if (!isset($hgo1['id'])) { ?> - - - (Пещера Тысячи Проклятий)' - onclick='location="main.php?rz=1&add_quest=1&city_quest=capitalcity"'/> - - - - (Бездна)' - onclick='location="main.php?rz=1&add_quest=1&city_quest=angelscity"'/> - - - - (Грибница)' - onclick='location="main.php?rz=1&add_quest=1&city_quest=suncity"'/> - - - - (Катакомбы)' - onclick='location="main.php?rz=1&add_quest=1&city_quest=demonscity"'/> - - - - (Водосток)' - onclick='location="main.php?rz=1&add_quest=1&city_quest=dreamscity"'/> - - - - (Гора Легиона)' - onclick='location="main.php?rz=1&add_quest=1&city_quest=abandonedplain"'/> - - - - (Излом Хаоса)' - onclick='location="main.php?rz=1&add_quest=1&city_quest=izlom16"'/> - - - - (Пещера Мглы)' - onclick='location="main.php?rz=1&add_quest=1&city_quest=sandcity"'/> - - - - (Потерянный Вход)' - onclick='location="main.php?rz=1&add_quest=1&city_quest=emeraldscity"'/> - - - - (Туманные Низины)' - onclick='location="main.php?rz=1&add_quest=1&city_quest=devilscity"'/> - info['id']}", "room = {$u->info['room']}", 'time >= unix_timestamp() - 86400', "vars = psh_qt_$dungeonSysName"], 'time'); + if ($dungeonTimeout) { + $formattedTimeout = Conversion::secondsToTimeout(86400 + $dungeonTimeout - time()); + $html[] = <<Задание будет через $formattedTimeout ($dungeonName) + HTML; + } else { + $html[] = <<$dungeonName + HTML; + } + } + echo implode(' ', $html); ?>
@@ -1081,7 +1003,7 @@ if ($roomSection == 1) { } } else { echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( - 60 * 60 * 2 - time() + $dungeon_timeout['time'] + 60 * 60 * 2 - time() + $dungeonTimeout ) . '
Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)'; } diff --git a/modules_data/location/elka.php b/modules_data/location/elka.php index eaa868db..bc91763d 100644 --- a/modules_data/location/elka.php +++ b/modules_data/location/elka.php @@ -1,4 +1,9 @@ info['id'] . '", "Благословение Ёлки x1", "add_hpAll=5", "110", "' . time( - ) . '", "0", "", "0", "0", "0", "", "1", "-1", "0", "0", "0", "", "0", "0", "0", "0", "0")' + (NULL, "477", "' . $u->info['id'] . '", "Благословение Ёлки x1", "add_hpAll=5", "110", "' . time() . '", "0", "", "0", "0", "0", "", "1", "-1", "0", "0", "0", "", "0", "0", "0", "0", "0")' ); if (isset($effeadd)) { @@ -65,9 +69,11 @@ if (isset($_GET['elka_shar']) && isset($_GET['shar_name'])) //Украшение 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']); + $smt = (bool)ActionModel::testCount(["uid = $u->info['id']", "vars = take_gift_$dt"]); + if ($smt) { + echo 'Вы уже получили свой подарок ;)'; + } else { + $pid = 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']); @@ -75,21 +81,19 @@ if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d' } else { echo 'Не удалось получить подарок...'; } - } else { - echo 'Вы уже получили свой подарок ;)'; } } 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 { + if ($u->isModerator()) { + if ($u->isAdmin()) { $pInfo = '1'; + } else { + $pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg']; } 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'])) { + $smt = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = use_cupNewYear', 'time > unix_timestamp() - 600']); + if (!$smt) { $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 'Успешно использован эликсир "Полное восстановление"'; @@ -101,23 +105,20 @@ if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d' 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'])) { + + $u->info['ET'] = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = send_elka', 'time > unix_timestamp() - 600']); + if ($u->info['ET']) { echo 'Оставлять надписи на стволе ёлки можно не чаще одного раза в 10 минут'; } 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'] . "'); " - ); + $pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg'] . '|' . $u->info['id']; + Db::sql("insert into elka (year, time, pers, text, city) values (year(curdate()) + ?, unix_timestamp(),?,?,'')", [$dy, $pInfo, $_POST['message']]); $u->addAction(time(), 'send_elka', ''); } } } ?> - -
' . $re . ''; - } ?>
+
+ Рыцарский магазин
-
Новогодняя елка ! +
Новогодняя елка !

@@ -189,31 +202,27 @@ if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d' Подарки:
testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "use_cupNewYear" LIMIT 1', 1); + $alreadyUsed = (bool)ActionModel::testCount(["uid = $u->info['id']", 'time > unix_timestamp() - 600', 'vars = use_cupNewYear']); ?> - /> + > + + + testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "take_gift' . $dt . '" LIMIT 1', 1); + $alreadyUsed = (bool)ActionModel::testCount(["uid = $u->info['id']", 'time > unix_timestamp() - 600', "vars = take_gift$dt"]); + ?> - /> + > + +

info['admin']>0) - // { ?>
Наряжаем Ёлку: diff --git a/modules_data/location/enterbezdna.php b/modules_data/location/enterbezdna.php index 510da259..96927a3e 100644 --- a/modules_data/location/enterbezdna.php +++ b/modules_data/location/enterbezdna.php @@ -1,6 +1,7 @@ room['file'] == 'enterbezdna') { - if (isset($_GET['rz'])) { - $rz = 1; - } else { - $rz = 0; - } + $rz = isset($_GET['rz']) ? 1 : 0; $dun = 101; - $er = ''; - $dzs = ''; - $g111 = 1; - $g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh101" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1); - + $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh101', 'time > unix_timestamp() - 7200'], 'time'); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); @@ -35,10 +28,10 @@ if ($u->room['file'] == 'enterbezdna') { } } - if (isset($g11['id'])) { + if ($dungeonTimeout) { $g111 = 0; if (isset($_GET['start'])) { - $re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $g11['time']); + $re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout); } } if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) { @@ -364,9 +357,10 @@ if ($u->room['file'] == 'enterbezdna') {
- Рыцарский магазин
@@ -428,13 +422,13 @@ if ($u->room['file'] == 'enterbezdna') { testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_angelscity" LIMIT 1', 1); + $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh_qt_angelscity', 'time > unix_timestamp() - 86400'], 'time'); if (isset($_GET['add_quest'])) { - if (isset($hgo['id'])) { + if ($questTimeout) { echo 'Нельзя получать задания чаще одного раза в сутки
'; } else { - $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = 101'); + $sp = mysql_query('select * from quests where line = 101'); $dq_add = []; while ($pl = mysql_fetch_array($sp)) { if ($u->rep['repangelscity'] == 9999) { @@ -459,7 +453,7 @@ if ($u->room['file'] == 'enterbezdna') { if ($q->testGood($dq_add) == 1 && $dq_add > 0) { $q->startq_dn($dq_add['id']); echo 'Вы успешно получили новое задание "' . $dq_add['name'] . '".
'; - $hgo['id'] = 1; + $questTimeout = 1; $u->addAction(time(), 'psh_qt_angelscity', $dq_add['id']); } else { if ($u->rep['repangelscity'] == 9999) { @@ -496,15 +490,15 @@ if ($u->room['file'] == 'enterbezdna') { ' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout( + $questTimeout + 60 * 60 * 24 - time() + ) . ' )'; +} else { ?>
- + ' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout( - $hgo['time'] + 60 * 60 * 24 - time() - ) . ' )'; } ?>
@@ -703,7 +697,6 @@ if (!isset($hgo['id'])) { ); while ($chk_pl = mysql_fetch_array($chk_cl)) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { - ; } { $x++; @@ -788,7 +781,7 @@ if (!isset($hgo['id'])) { Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)'; } } diff --git a/modules_data/location/entercat.php b/modules_data/location/entercat.php index b0c135fd..00000df9 100644 --- a/modules_data/location/entercat.php +++ b/modules_data/location/entercat.php @@ -1,6 +1,7 @@ room['file'] == 'entercat') { } $dun = 3; //для новичков 2-7 лвл - $er = ''; - $dzs = ''; - $g111 = 1; - $g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh1" AND `time`>' . (time() - 7200) . ' LIMIT 1', 1); + $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh1', 'time > unix_timestamp() - 7200'], 'time'); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); @@ -33,10 +31,10 @@ if ($u->room['file'] == 'entercat') { } } - if (isset($g11['id'])) { + if ($dungeonTimeout) { $g111 = 0; if (isset($_GET['start'])) { - $re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $g11['time']); + $re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $dungeonTimeout); } } if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) { @@ -345,13 +343,13 @@ if ($u->room['file'] == 'entercat') { testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_demonscity" LIMIT 1', 1); + $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh_qt_demonscity', 'time > unix_timestamp() - 86400'], 'time'); if (isset($_GET['add_quest'])) { - if (isset($hgo['id'])) { + if ($questTimeout) { echo 'Нельзя получать задания чаще одного раза в сутки
'; } else { - $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = 3'); + $sp = mysql_query('select * from quests where line = 3'); $dq_add = []; while ($pl = mysql_fetch_array($sp)) { if ($u->rep['repdemonscity'] == 9999) { @@ -376,7 +374,7 @@ if ($u->room['file'] == 'entercat') { if ($q->testGood($dq_add) == 1) { $q->startq_dn($dq_add['id']); echo 'Вы успешно получили новое задание "' . $dq_add['name'] . '".
'; - $hgo['id'] = 1; + $questTimeout = 1; $u->addAction(time(), 'psh_qt_demonscity', $dq_add['id']); } else { echo 'Не удалось получить задание "' . $dq_add['name'] . '". Попробуйте еще...
'; @@ -405,15 +403,15 @@ if ($u->room['file'] == 'entercat') { ' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout( + $questTimeout + 60 * 60 * 24 - time() + ) . ' )'; +} else { ?>
' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout( - $hgo['time'] + 60 * 60 * 24 - time() - ) . ' )'; } ?>
@@ -612,7 +610,6 @@ if (!isset($hgo['id'])) { ); while ($chk_pl = mysql_fetch_array($chk_cl)) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { - ; } { $x++; @@ -696,7 +693,7 @@ if (!isset($hgo['id'])) { Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)'; } } diff --git a/modules_data/location/enterdrago.php b/modules_data/location/enterdrago.php index 452e8ae4..6650a7eb 100644 --- a/modules_data/location/enterdrago.php +++ b/modules_data/location/enterdrago.php @@ -1,6 +1,7 @@ room['file'] == 'enterdrago') { mysql_query('SELECT `id` as room, city, `dungeon_room` as d_room, city, `shop`, `dungeon_id` as id, `dungeon_name` as name FROM `dungeon_room` WHERE `id`="' . $u->room['id'] . '" LIMIT 1') ); //var_info($dungeon); - $all_dungeon = mysql_query('SELECT `city` FROM `dungeon_room` WHERE `city` IS NOT NULL AND `active`=1 '); + $all_dungeon = mysql_query('select city from dungeon_room where city is not null and active=1 '); while ($t = mysql_fetch_array($all_dungeon)) { $dungeon['list'][] = $t['city']; } @@ -35,13 +36,12 @@ if ($u->room['file'] == 'enterdrago') { } } - $dungeon_timeout = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh' . $dungeon['id'] . '" AND `time` > ' . (time() - 60 * 60 * 20) . ' LIMIT 1', 1); + $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "vars = psh{$dungeon['id']}", 'time > unix_timestamp() - 72000'], 'time'); - if (isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был. - { + if ($dungeonTimeout) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был. $dungeonGo = 0; if (isset($_GET['start'])) { - $error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 20 - time() + $dungeon_timeout['time']); + $error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 20 - time() + $dungeonTimeout); } } @@ -468,8 +468,7 @@ if ($u->room['file'] == 'enterdrago') { ]; $sp = mysql_query( - 'SELECT * FROM `dungeon_zv` WHERE `city` = "' . $u->info['city'] . '" AND `lvlmin` = "' . $u->info['level'] . '" AND `dun` = "' . $dungeon['id'] . '" AND `delete` = "0" AND `time` > "' . (time( - ) - 60 * 60 * 2) . '"' + 'SELECT * FROM `dungeon_zv` WHERE `city` = "' . $u->info['city'] . '" AND `lvlmin` = "' . $u->info['level'] . '" AND `dun` = "' . $dungeon['id'] . '" AND `delete` = "0" AND `time` > "' . (time() - 60 * 60 * 2) . '"' ); while ($pl = mysql_fetch_array($sp)) { @@ -640,7 +639,7 @@ if ($u->room['file'] == 'enterdrago') { testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . $dungeon['city'] . '" LIMIT 1', 1); + $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "vars = psh_qt_{$dungeon['city']}", 'time > unix_timestamp() - 86400'], 'time'); $qc = 0; // Quest Count //Генерируем список текущих квестов $sp = mysql_query('SELECT * FROM `actions` WHERE `vars` LIKE "%start_quest%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 100'); @@ -655,7 +654,7 @@ if ($u->room['file'] == 'enterdrago') { } if (isset($_GET['add_quest']) && $qc == 0) { - if (isset($hgo['id'])) { + if ($questTimeout) { echo 'Нельзя получать задания чаще одного раза в сутки
'; } else { $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . ''); @@ -713,14 +712,14 @@ if ($u->room['file'] == 'enterdrago') { 0) { echo 'Вы еще не справились с текущим заданием.'; - } elseif (!isset($hgo['id']) && $qc == 0) { + } elseif (!$questTimeout && $qc == 0) { ?>
' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout( - $hgo['time'] + 60 * 60 * 24 - time() + echo 'Получить новое задание можно ' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout( + $questTimeout + 60 * 60 * 24 - time() ) . ' )'; } ?> @@ -951,7 +950,6 @@ if ($u->room['file'] == 'enterdrago') { ); while ($chk_pl = mysql_fetch_array($chk_cl)) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { - ; } { $x++; @@ -1043,7 +1041,7 @@ if ($u->room['file'] == 'enterdrago') { } } else { echo 'Поход в пещеры разрешен один раз в двадцать часов. Осталось еще: ' . Conversion::secondsToTimeout( - 60 * 60 * 20 - time() + $dungeon_timeout['time'] + 60 * 60 * 20 - time() + $dungeonTimeout ) . '
Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)'; } } diff --git a/modules_data/location/entergrib.php b/modules_data/location/entergrib.php index ace2fda4..502cedda 100644 --- a/modules_data/location/entergrib.php +++ b/modules_data/location/entergrib.php @@ -1,6 +1,7 @@ room['file'] == 'entergrib') { } $dun = 10; //для новичков 2-7 лвл - $er = ''; - $dzs = ''; - $g111 = 1; //Задержка в Санд - $g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh2" AND `time`>' . (time() - 7200) . ' LIMIT 1', 1); + $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh2', 'time > unix_timestamp() - 7200'], 'time'); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); @@ -34,10 +32,10 @@ if ($u->room['file'] == 'entergrib') { } } - if (isset($g11['id'])) { + if ($dungeonTimeout) { $g111 = 0; if (isset($_GET['start'])) { - $re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $g11['time']); + $re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $dungeonTimeout); } } if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) { @@ -332,13 +330,13 @@ if ($u->room['file'] == 'entergrib') { testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_allcity" LIMIT 1', 1); + $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh_qt_allcity', 'time > unix_timestamp() - 86400'], 'time'); if (isset($_GET['add_quest'])) { - if (isset($hgo['id'])) { + if ($questTimeout) { echo 'Нельзя получать задания чаще одного раза в сутки
'; } else { - $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = 4'); + $sp = mysql_query('select * from quests where line = 4'); $dq_add = []; while ($pl = mysql_fetch_array($sp)) { $dq_add[count($dq_add)] = $pl; @@ -349,7 +347,7 @@ if ($u->room['file'] == 'entergrib') { if ($q->testGood($dq_add) == 1) { $q->startq_dn($dq_add['id']); echo 'Вы успешно получили новое задание "' . $dq_add['name'] . '".
'; - $hgo['id'] = 1; + $questTimeout = 1; $u->addAction(time(), 'psh_qt_allcity', $dq_add['id']); } else { echo 'Не удалось получить задание "' . $dq_add['name'] . '". Попробуйте еще...
'; @@ -378,15 +376,15 @@ if ($u->room['file'] == 'entergrib') { ' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout( + $questTimeout + 60 * 60 * 24 - time() + ) . ' )'; +} else { ?>
' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout( - $hgo['time'] + 60 * 60 * 24 - time() - ) . ' )'; } ?>
@@ -494,7 +492,6 @@ if (!isset($hgo['id'])) { ); while ($chk_pl = mysql_fetch_array($chk_cl)) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { - ; } { $x++; @@ -564,7 +561,7 @@ if (!isset($hgo['id'])) { Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)'; } } diff --git a/modules_data/location/enternekro.php b/modules_data/location/enternekro.php index ffbaeb0c..9e120d39 100644 --- a/modules_data/location/enternekro.php +++ b/modules_data/location/enternekro.php @@ -1,6 +1,7 @@ room['file'] == 'enternekro') { $dun = 11; //для новичков 2-7 лвл - $er = ''; - $dzs = ''; - $g111 = 1; - $g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh1" AND `time`>' . (time() - 7200) . ' LIMIT 1', 1); + $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh1', 'time > unix_timestamp() - 7200'], 'time'); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); @@ -27,10 +25,10 @@ if ($u->room['file'] == 'enternekro') { } } - if (isset($g11['id'])) { + if ($dungeonTimeout) { $g111 = 0; if (isset($_GET['start'])) { - $re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $g11['time']); + $re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $dungeonTimeout); } } if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) { @@ -346,7 +344,7 @@ if ($u->room['file'] == 'enternekro') { Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)'; } } diff --git a/modules_data/location/enternizin.php b/modules_data/location/enternizin.php index 154b1d4e..d780b24f 100644 --- a/modules_data/location/enternizin.php +++ b/modules_data/location/enternizin.php @@ -1,6 +1,7 @@ room['file'] == 'enternizin') { } $dun = 444; - $er = ''; - $dzs = ''; - $g111 = 1; - - $g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh444" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1); - + $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh444', 'time > unix_timestamp() - 7200'], 'time'); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); @@ -35,10 +31,10 @@ if ($u->room['file'] == 'enternizin') { } } - if (isset($g11['id'])) { + if ($dungeonTimeout) { $g111 = 0; if (isset($_GET['start'])) { - $re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $g11['time']); + $re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout); } } if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) { @@ -421,13 +417,13 @@ if ($u->room['file'] == 'enternizin') { testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_angelscity" LIMIT 1', 1); + $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh_qt_angelscity', 'time > unix_timestamp() - 86400'], 'time'); if (isset($_GET['add_quest'])) { - if (isset($hgo['id'])) { + if ($questTimeout) { echo 'Нельзя получать задания чаще одного раза в сутки
'; } else { - $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = 444'); + $sp = mysql_query('select * from quests where line = 444'); $dq_add = []; while ($pl = mysql_fetch_array($sp)) { if ($u->rep['repangelscity'] == 9999) { @@ -452,7 +448,7 @@ if ($u->room['file'] == 'enternizin') { if ($q->testGood($dq_add) == 1 && $dq_add > 0) { $q->startq_dn($dq_add['id']); echo 'Вы успешно получили новое задание "' . $dq_add['name'] . '".
'; - $hgo['id'] = 1; + $questTimeout = 1; $u->addAction(time(), 'psh_qt_angelscity', $dq_add['id']); } else { if ($u->rep['repangelscity'] == 9999) { @@ -489,13 +485,13 @@ if ($u->room['file'] == 'enternizin') { ' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout($questTimeout + 60 * 60 * 24 - time()) . ' )'; +} else { ?>
' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout($hgo['time'] + 60 * 60 * 24 - time()) . ' )'; } ?>
@@ -694,7 +690,6 @@ if (!isset($hgo['id'])) { ); while ($chk_pl = mysql_fetch_array($chk_cl)) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { - ; } { $x++; @@ -776,7 +771,7 @@ if (!isset($hgo['id'])) { } } else { echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( - 60 * 60 * 2 - time() + $g11['time'] + 60 * 60 * 2 - time() + $dungeonTimeout ) . '
Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)'; } } diff --git a/modules_data/location/enterptp.php b/modules_data/location/enterptp.php index dea7af98..3ec723b1 100644 --- a/modules_data/location/enterptp.php +++ b/modules_data/location/enterptp.php @@ -1,6 +1,7 @@ info['dn'] > 0) { // Если ты пошел гулять, так ид } } -$dungeon_timeout = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh' . $dungeon['id'] . '" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1); // Проверка - последний визит? +$dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "vars = psh{$dungeon['id']}", 'time > unix_timestamp() - 7200'], 'time'); // Проверка - последний визит? -if (isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был. -{ +if ($dungeonTimeout) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был. $dungeonGo = 0; if (isset($_GET['start'])) { - $re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeon_timeout['time']); + $re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout); } } @@ -430,19 +430,14 @@ if ($roomSection == 1) { $qsee = ''; $qx = 0; - //if($u->info['admin']==0){ - $hgo = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_capitalcity" LIMIT 1', 1); - //} + $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh_qt_capitalcity', 'time > unix_timestamp() - 86400'], 'time'); + if (isset($_GET['add_quest'])) { - if (isset($hgo['id'])) { + if ($questTimeout) { echo 'Нельзя получать задания чаще одного раза в сутки
'; } else { - //if($u->info['admin']>0){ - // $sp = mysql_query('SELECT * FROM `quests` WHERE `id` = "236" && `tr_date` LIKE "%tr_dn:=:'.$dun.'%"'); // Только дашку - //} else { $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . ''); - //} $dq_add = []; while ($pl = mysql_fetch_array($sp)) { @@ -505,13 +500,13 @@ if ($roomSection == 1) { ' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout($questTimeout + 60 * 60 * 24 - time()) . ' )'; +} else { ?>
' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout($hgo['time'] + 60 * 60 * 24 - time()) . ' )'; } ?>
@@ -716,7 +711,6 @@ if (!isset($hgo['id'])) { ); while ($chk_pl = mysql_fetch_array($chk_cl)) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { - ; } { $x++; @@ -796,7 +790,7 @@ if (!isset($hgo['id'])) { } } else { echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( - 60 * 60 * 2 - time() + $dungeon_timeout['time'] + 60 * 60 * 2 - time() + $dungeonTimeout ) . '
Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)'; } } diff --git a/modules_data/location/entersnow.php b/modules_data/location/entersnow.php index e931ad2e..e8060254 100644 --- a/modules_data/location/entersnow.php +++ b/modules_data/location/entersnow.php @@ -1,6 +1,7 @@ room['file'] == 'entersnow') { $dun = 20; //для новичков 2-7 лвл - $er = ''; - $dzs = ''; - $g111 = 1; - $g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh1" AND `time`>' . (time() - 7200) . ' LIMIT 1', 1); + $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh1', 'time > unix_timestamp() - 7200'], 'time'); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); @@ -28,10 +26,10 @@ if ($u->room['file'] == 'entersnow') { } } - if (isset($g11['id'])) { + if ($dungeonTimeout) { $g111 = 0; if (isset($_GET['start'])) { - $re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $g11['time']); + $re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $dungeonTimeout); } } if (isset($_GET['start']) && $zv_dn['uid'] == $u->info['id'] && $g111 == 1) { @@ -351,7 +349,7 @@ if ($u->room['file'] == 'entersnow') { Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)'; } } diff --git a/modules_data/location/fight-club.php b/modules_data/location/fight-club.php index bd8f602e..52f9fad4 100644 --- a/modules_data/location/fight-club.php +++ b/modules_data/location/fight-club.php @@ -51,14 +51,13 @@ if (!defined('GAME')) {
testHome(); - if (!isset($hgo['id'])) { + if ($u->testHome()) { echo ''; } - unset($hgo); ?> - +

diff --git a/modules_data/location/house_belaun.php b/modules_data/location/house_belaun.php index cf973819..2199814e 100644 --- a/modules_data/location/house_belaun.php +++ b/modules_data/location/house_belaun.php @@ -1,6 +1,7 @@ room['file'] == 'house_belaun' && false) { } // Собираем группу для похода //if( $u->info['admin'] > 0 ) var_info($dungeon); - $all_dungeon = mysql_query('SELECT `city` FROM `dungeon_room` WHERE `city` IS NOT NULL AND `active`=1 '); + $all_dungeon = mysql_query('select city from dungeon_room where city is not null and active=1 '); while ($t = mysql_fetch_array($all_dungeon)) { $dungeon['list'][] = $t['city']; } @@ -478,16 +479,17 @@ if ($u->room['file'] == 'house_belaun' && false) { } } - $dungeon_timeout = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh0" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1); + $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh0', 'time > unix_timestamp() - 7200'], 'time'); - if ($u->info['admin'] > 0) { - unset($dungeon_timeout); - } // $dungeon_timeout - задержка на посещение пещеры. - if (isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был. + if ($u->isAdmin()) { + $dungeonTimeout = 0; + } + + if ($dungeonTimeout) // Кто-то передумал и не пойдет в пещеру, так-как уже там был. { $dungeonGo = 0; if (isset($_GET['start'])) { - $error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeon_timeout['time']); + $error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout); } } @@ -571,8 +573,7 @@ if ($u->room['file'] == 'house_belaun' && false) { if ($cord[0] != 0 || $cord[1] != 0) { mysql_query( 'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES ( - "' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time( - ) . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '" + "' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time() . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '" )' ); } @@ -1148,9 +1149,7 @@ if ($u->room['file'] == 'house_belaun' && false) { testAction( - '`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . $dungeon['city'] . '" LIMIT 1', 1 - ); + $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "vars = psh_qt_{$dungeon['city']}", 'time > unix_timestamp() - 86400', "room = {$u->info['room']}"], 'time'); $qc = 0; // Quest Count //Генерируем список текущих квестов $sp = mysql_query('SELECT * FROM `actions` WHERE `vars` LIKE "%start_quest%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 100'); @@ -1176,7 +1175,7 @@ if ($u->room['file'] == 'house_belaun' && false) { } if (isset($_GET['add_quest']) && $qc == 0) { - if (isset($hgo['id'])) { + if ($questTimeout) { echo 'Нельзя получать задания чаще одного раза в сутки
'; } else { $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . ''); @@ -1234,13 +1233,13 @@ if ($u->room['file'] == 'house_belaun' && false) { 0) { echo 'Вы еще не справились с текущим заданием.'; - } elseif (!isset($hgo['id']) && $qc == 0) { + } elseif (!$questTimeout && $qc == 0) { ?>
' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout($hgo['time'] + 60 * 60 * 24 - time()) . ' )'; + echo 'Получить новое задание можно ' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . ' ( Через ' . Conversion::secondsToTimeout($questTimeout + 60 * 60 * 24 - time()) . ' )'; } ?> @@ -1454,7 +1453,6 @@ if ($u->room['file'] == 'house_belaun' && false) { ); while ($chk_pl = mysql_fetch_array($chk_cl)) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { - ; } { $x++; @@ -1566,7 +1564,7 @@ if ($u->room['file'] == 'house_belaun' && false) { } } else { echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( - 60 * 60 * 2 - time() + $dungeon_timeout['time'] + 60 * 60 * 2 - time() + $dungeonTimeout ) . '
Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)'; } } diff --git a/modules_data/location/kinght.php b/modules_data/location/kinght.php index 02ea9873..c853b1c1 100644 --- a/modules_data/location/kinght.php +++ b/modules_data/location/kinght.php @@ -1,81 +1,115 @@ room['file']=='kinght') -{ -?> - - - - - + +
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- error != '' ) { ?> - - error; ?> - - - - - -
- '.$re.''; } ?> - - -
-
+if ($u->room['file'] == 'kinght') { + ?> + + + + + - + } else { + echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; + } ?> + + + + -
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ error != '') { ?> + + error; ?> + + + + + +
+ ' . $re . ''; + } ?> + + + - -
+
-
- -
-
-
onclick="location='main.php?loc=1.180.0.220';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_2stair.gif" width="120" height="35" class="aFilter" />
- -
- -
-
onclick="location='main.php?loc=1.180.0.XX';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec7.gif" width="123" height="39" class="aFilter" />
-
-
onclick="location='main.php?loc=1.180.0.223';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec4.gif" width="89" height="32" class="aFilter" />
-
- -
-
- - info['level']<6) - { - echo ' +
+ +
+
+
+
+ onclick="location='main.php?loc=1.180.0.220';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" + src="//img.new-combats.tech/i/images/300x225/map_2stair.gif" width="120" height="35" class="aFilter"/>
+ +
+ +
+
+ onclick="location='main.php?loc=1.180.0.XX';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" + src="//img.new-combats.tech/i/images/300x225/map_sec7.gif" width="123" height="39" class="aFilter"/>
+
+
+ onclick="location='main.php?loc=1.180.0.223';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" + src="//img.new-combats.tech/i/images/300x225/map_sec4.gif" width="89" height="32" class="aFilter"/>
+
+ + +
+ + info['level'] < 6) { + echo ' Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. '; - }else{ - echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; - } ?> -
- - + +
- +
+
- - - testHome(); if(!isset($hgo['id'])){ ?> - -
+ + + testHome()) { ?> + +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
-Администрация.
+
+ +
+ \ No newline at end of file diff --git a/modules_data/location/novich.php b/modules_data/location/novich.php index 8e01dac2..2b81db87 100644 --- a/modules_data/location/novich.php +++ b/modules_data/location/novich.php @@ -1,169 +1,184 @@ room['file']=='novich') -{ - - $tst = mysql_fetch_array(mysql_query('SELECT * FROM `dialog_act` WHERE `uid` = "'.$u->info['id'].'" AND `var` = "noobqst1" LIMIT 1')); - if(!isset($tst['id'])) { - if(isset($_GET['noobgo']) || $c['noobgade'] == false) { - if($_GET['noobgo'] == 1 && $c['noobgade'] == true) { - //Согласился (создаем пещеру и телепортируем туда - - $ins = mysql_query('INSERT INTO `dungeon_now` (`city`,`uid`,`id2`,`name`,`time_start`) - VALUES ("'.$u->info['city'].'","'.$u->info['id'].'","106","Академия Новичков","'.time().'")'); - if($ins){ - $zid = mysql_insert_id(); - //обновляем пользователей - $su = mysql_query('SELECT `u`.`id`,`st`.`dn` FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`id`="'.$u->info['id'].'"'); - $ids = ''; - - $map_locs = array(); - $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']); - } - unset( $spm2 , $plm2 ); - - $pxd = 0; - while( $pu = mysql_fetch_array($su) ) { - $pxd++; - $ids .= ' `id` = "'.$pu['id'].'" OR'; - } - $ids = rtrim($ids,'OR'); - $snew = 0; - $upd1 = mysql_query('UPDATE `stats` SET `s`="4",`res_s`="1",`x`="0",`y`="0",`res_x`="0",`res_y`="0",`dn` = "0",`dnow` = "'.$zid.'" WHERE '.$ids.''); - if( $upd1 ){ - $upd2 = mysql_query('UPDATE `users` SET `room` = "391" WHERE '.$ids.''); - //Добавляем ботов и обьекты в пещеру $zid с for_dn = $dungeon['id'] - //Добавляем ботов - $vls = ''; - $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'] ); - $pl['id_bot'] = (int)$bots[rand(0, count($bots)-1 )]; - } - if( $pl['id_bot'] > 0 )$vls .= '("'.$zid.'","'.$pl['id_bot'].'","'.$pl['colvo'].'","'.$pl['items'].'","'.$pl['x'].'","'.$pl['y'].'","'.$pl['dialog'].'","'.$pl['items'].'","'.$pl['go_bot'].'","'.$pl['noatack'].'"),'; - unset($bots); - } - $vls = rtrim($vls,','); - $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'); - while($pl = mysql_fetch_array($sp)) - { - $vls .= '("'.$zid.'","'.$pl['name'].'","'.$pl['img'].'","'.$pl['x'].'","'.$pl['y'].'","'.$pl['action'].'","'.$pl['type'].'","'.$pl['w'].'","'.$pl['h'].'","'.$pl['s'].'","'.$pl['s2'].'","'.$pl['os1'].'","'.$pl['os2'].'","'.$pl['os3'].'","'.$pl['os4'].'","'.$pl['type2'].'","'.$pl['top'].'","'.$pl['left'].'","'.$pl['date'].'"),'; - } - // - $vls = rtrim($vls,','); - if( $vls != '' ) { - $ins2 = mysql_query('INSERT INTO `dungeon_obj` (`dn`,`name`,`img`,`x`,`y`,`action`,`type`,`w`,`h`,`s`,`s2`,`os1`,`os2`,`os3`,`os4`,`type2`,`top`,`left`,`date`) VALUES '.$vls.''); - } else { - $ins2 = true; - } - if( $upd2 && $ins1 && $ins2 ){ - die(''); - } else { - $error = 'Ошибка перехода в подземелье...'; - } - } else { - $error = 'Ошибка перехода в подземелье...'; - } - } else { - $error = 'Ошибка перехода в подземелье...'; - } - // - //header('location: main.php'); - die(); - }else{ - //Отказался (добавляем квест, системку и пошел нах) - mysql_query('INSERT INTO `dialog_act` ( +if ($u->room['file'] == 'novich') { + + $tst = mysql_fetch_array(mysql_query('SELECT * FROM `dialog_act` WHERE `uid` = "' . $u->info['id'] . '" AND `var` = "noobqst1" LIMIT 1')); + if (!isset($tst['id'])) { + if (isset($_GET['noobgo']) || $c['noobgade'] == false) { + if ($_GET['noobgo'] == 1 && $c['noobgade'] == true) { + //Согласился (создаем пещеру и телепортируем туда + + $ins = mysql_query('INSERT INTO `dungeon_now` (`city`,`uid`,`id2`,`name`,`time_start`) + VALUES ("' . $u->info['city'] . '","' . $u->info['id'] . '","106","Академия Новичков","' . time() . '")'); + if ($ins) { + $zid = mysql_insert_id(); + //обновляем пользователей + $su = mysql_query('SELECT `u`.`id`,`st`.`dn` FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`id`="' . $u->info['id'] . '"'); + $ids = ''; + + $map_locs = []; + $spm2 = mysql_query('select id,x,y from dungeon_map where id_dng = 106'); + while ($plm2 = mysql_fetch_array($spm2)) { + $map_locs[] = [$plm2['x'], $plm2['y']]; + } + unset($spm2, $plm2); + + $pxd = 0; + while ($pu = mysql_fetch_array($su)) { + $pxd++; + $ids .= ' `id` = "' . $pu['id'] . '" OR'; + } + $ids = rtrim($ids, 'OR'); + $snew = 0; + $upd1 = mysql_query('UPDATE `stats` SET `s`="4",`res_s`="1",`x`="0",`y`="0",`res_x`="0",`res_y`="0",`dn` = "0",`dnow` = "' . $zid . '" WHERE ' . $ids . ''); + if ($upd1) { + $upd2 = mysql_query('UPDATE `users` SET `room` = "391" WHERE ' . $ids . ''); + //Добавляем ботов и обьекты в пещеру $zid с for_dn = $dungeon['id'] + //Добавляем ботов + $vls = ''; + $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']); + $pl['id_bot'] = (int)$bots[rand(0, count($bots) - 1)]; + } + if ($pl['id_bot'] > 0) $vls .= '("' . $zid . '","' . $pl['id_bot'] . '","' . $pl['colvo'] . '","' . $pl['items'] . '","' . $pl['x'] . '","' . $pl['y'] . '","' . $pl['dialog'] . '","' . $pl['items'] . '","' . $pl['go_bot'] . '","' . $pl['noatack'] . '"),'; + unset($bots); + } + $vls = rtrim($vls, ','); + $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'); + while ($pl = mysql_fetch_array($sp)) { + $vls .= '("' . $zid . '","' . $pl['name'] . '","' . $pl['img'] . '","' . $pl['x'] . '","' . $pl['y'] . '","' . $pl['action'] . '","' . $pl['type'] . '","' . $pl['w'] . '","' . $pl['h'] . '","' . $pl['s'] . '","' . $pl['s2'] . '","' . $pl['os1'] . '","' . $pl['os2'] . '","' . $pl['os3'] . '","' . $pl['os4'] . '","' . $pl['type2'] . '","' . $pl['top'] . '","' . $pl['left'] . '","' . $pl['date'] . '"),'; + } + // + $vls = rtrim($vls, ','); + if ($vls != '') { + $ins2 = mysql_query('INSERT INTO `dungeon_obj` (`dn`,`name`,`img`,`x`,`y`,`action`,`type`,`w`,`h`,`s`,`s2`,`os1`,`os2`,`os3`,`os4`,`type2`,`top`,`left`,`date`) VALUES ' . $vls . ''); + } else { + $ins2 = true; + } + if ($upd2 && $ins1 && $ins2) { + die(''); + } else { + $error = 'Ошибка перехода в подземелье...'; + } + } else { + $error = 'Ошибка перехода в подземелье...'; + } + } else { + $error = 'Ошибка перехода в подземелье...'; + } + // + //header('location: main.php'); + die(); + } else { + //Отказался (добавляем квест, системку и пошел нах) + mysql_query('INSERT INTO `dialog_act` ( `uid`,`var`,`time` ) VALUES ( - "'.$u->info['id'].'","noobqst1","'.time().'" + "' . $u->info['id'] . '","noobqst1","' . time() . '" )'); - - //Начало обучения - $humor = array( - 0 => array( - '' - ), - 1 => array( - '' - ) - ); - $humor = $humor[$u->info['sex']]; - //$u->info['fnq'] = 1; - //mysql_query('UPDATE `users` SET `fnq` = "'.$u->info['fnq'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1'); - //Отправляем сообщение в чат о новичке - //mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `uid` = "'.$u->info['id'].'" AND `delete` = 0 AND `item_id` = 4703'); - //mysql_query('UPDATE `users` SET `room` = 4 WHERE `id` = "'.$u->info['id'].'" LIMIT 1'); - //mysql_query('UPDATE `stats` SET `hpNow` = 1000,`mpNow` = 1000,`dn` = 0 , `dnow` = 0 , `x` = 0 , `y` = 0 , `s` = 0 WHERE `id` = "'.$u->info['id'].'" LIMIT 1'); - //$u->send('','','','','','В нашем мире появился новый игрок "' . $u->info['login'] . '"! '.$humor[rand(0,count($humor)-1)].'',time(),6,0,0,0,1,0); - //echo '
Вы отказались от обучения, второй попытки больше не будет!
'; - } - }else{ - echo ''; - } - } -?> - - - - - - -
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- - - - + } + } + ?> +
- '.$re.''; } ?> - - - - -
-
-
-
src="//img.new-combats.tech/i/images/subimages/map_zal3.gif" width="135" height="29" class="aFilter" id="mo_1.180.0.1" />
-
-
-
- -
-
- - Чтобы начать играть,Вам нужно прочесть подсказку ( ниже ).
- После прочтения,ниже,воспользуйтесь кнопкой"Возврат"
- testHome(); if(!isset($hgo['id'])){ ?> - -
-
- -
+ + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ + + + -
+ ' . $re . ''; + } ?> + + + + +
+
+
+
+ src="//img.new-combats.tech/i/images/subimages/map_zal3.gif" width="135" height="29" class="aFilter" id="mo_1.180.0.1"/>
+
+
+
+ +
+
+ + Чтобы начать играть,Вам нужно прочесть подсказку ( ниже ).
+ После прочтения,ниже,воспользуйтесь кнопкой"Возврат"
+ testHome()) { ?> + +
+ + +
+ +
- +
+
-
+
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
-
-Администрация.

+
+ + + + \ No newline at end of file diff --git a/modules_data/location/objaga.php b/modules_data/location/objaga.php index 79ad30ba..335e72aa 100644 --- a/modules_data/location/objaga.php +++ b/modules_data/location/objaga.php @@ -1,4 +1,8 @@ info['admin'] > 0) { } #---пара проверок ;) if (isset($objaga['id'])) { - $sleep = $u->testAction('`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', 1); + $sleep = ActionModel::get(["uid = {$u->info['id']}", 'vars = sleep']); if ($sleep[0] > 0) { if ($u->info['room'] != 217 && $u->info['room'] != 218 && $u->info['room'] != 219) { mysql_query('UPDATE `users` SET `room` = 217 WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'); @@ -797,7 +801,7 @@ if ($u->info['admin'] > 0) { if ($p_count > 9) { echo 'Вы не можете создавать более десяти персонажей
'; } else { - \Core\Db::sql("insert into users_twink + Db::sql("insert into users_twink (uid, twink, login, level, exp, upLevel, stats, time, ability, skills, sskills, nskills, priems, obraz, stopexp) values (?,?,?,4,2500,22,'s1=3|s2=3|s3=3|s4=7|rinv=40|m9=5|m6=10',unix_timestamp(),34,5,4,5, '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.gif',0)", [$u->info['id'], $p_count, $u->info['login']]); diff --git a/modules_data/location/penter.php b/modules_data/location/penter.php index c95f888a..208382e8 100644 --- a/modules_data/location/penter.php +++ b/modules_data/location/penter.php @@ -1,6 +1,7 @@ room['file'] == 'penter') { $dun = 1; //для новичков 2-7 лвл - $er = ''; - $dzs = ''; - $g111 = 1; - $g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh1" AND `time`>' . (time() - 7200) . ' LIMIT 1', 1); + + $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh1', 'time > unix_timestamp() - 7200'], 'time'); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); @@ -28,10 +27,10 @@ if ($u->room['file'] == 'penter') { } } - if (isset($g11['id'])) { + if ($dungeonTimeout) { $g111 = 0; if (isset($_GET['start'])) { - $re = 'Поход в пещеры запрещен. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $g11['time']); + $re = 'Поход в пещеры запрещен. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $dungeonTimeout); } } if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) { @@ -379,7 +378,7 @@ if ($u->room['file'] == 'penter') { Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)'; } } diff --git a/modules_data/location/perehod.php b/modules_data/location/perehod.php index 4bc58834..456a1e6b 100644 --- a/modules_data/location/perehod.php +++ b/modules_data/location/perehod.php @@ -1,60 +1,75 @@ room['file']=='perehod') -{ -?> - - - - - - -
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- - - - +if ($u->room['file'] == 'perehod') { + ?> +
- '.$re.''; } ?> - - - - -
-
-
src="//img.new-combats.tech/i/images/subimages/map_zal2.gif" id="mo_1.180.0.0" width="175" height="37" />
-
-
src="//img.new-combats.tech/i/images/subimages/map_zal1.gif" width="88" height="15" class="aFilter" id="mo_1.180.0.2" />
-
-
- -
-
- - Чтобы начать играть,Вам нужно прочесть подсказку ( ниже ).
- После прочтения,ниже,воспользуйтесь кнопкой"Возврат"
- testHome(); if(!isset($hgo['id'])){ ?> - -
-
- -
+ + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ + + + -
+ ' . $re . ''; + } ?> + + + + +
+
+
+ src="//img.new-combats.tech/i/images/subimages/map_zal2.gif" id="mo_1.180.0.0" width="175" height="37"/>
+
+
+ src="//img.new-combats.tech/i/images/subimages/map_zal1.gif" width="88" height="15" class="aFilter" id="mo_1.180.0.2"/>
+
+
+ +
+
+ + Чтобы начать играть,Вам нужно прочесть подсказку ( ниже ).
+ После прочтения,ниже,воспользуйтесь кнопкой"Возврат"
+ testHome()) { ?> + +
+ + +
+ +
- +
+
-
+
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
-Администрация.
+
+ + + + + \ No newline at end of file diff --git a/modules_data/location/ric_zv.php b/modules_data/location/ric_zv.php index 0dc24d58..5306d214 100644 --- a/modules_data/location/ric_zv.php +++ b/modules_data/location/ric_zv.php @@ -1,82 +1,106 @@ room['file']=='ric_zv') -{ -?> - - - - - - + +
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- - - - -
- '.$re.''; } ?> - - - - -
- error != '' ) { ?> - - error; ?> - -
- - - - - - - - - - room['id']==224) { - ?>
- -
- -
-
- - info['level']<6) - { - echo ' +if ($u->room['file'] == 'ric_zv') { + ?> + + + + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ + + - + } else { + echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; + } ?> + + + + -
+ ' . $re . ''; + } ?> + + + + +
+ error != '') { ?> + + error; ?> + +
+ + + + + + + + + + room['id'] == 224) { + ?> +
+ +
+ +
+
+ + info['level'] < 6) { + echo ' Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. '; - }else{ - echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; - } ?> -
- - + +
- +
+
- - - testHome(); if(!isset($hgo['id'])){ ?> - -
+ + + testHome()) { ?> + +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
-Администрация.
+
+ +
+ \ No newline at end of file diff --git a/modules_data/location/room_hostel.php b/modules_data/location/room_hostel.php index 4d4734e9..0f1b39c9 100644 --- a/modules_data/location/room_hostel.php +++ b/modules_data/location/room_hostel.php @@ -1,6 +1,7 @@ [1 => 'Комната', 2 => 'Хранилище', 4 => 'Сон'], ], ]; -$sleep = $u->testAction('`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', 1); +$sleep = ActionModel::get(["uid = {$u->info['id']}", 'vars = sleep']); if (isset($sleep) and $sleep[0] == 0 and (isset($_GET['ajaxHostel']) and $_GET['ajaxHostel'] == 1 or isset($_GET['ajax']) and $_GET['ajax'] == 1)) { $hostel = mysql_fetch_array(mysql_query("SELECT * FROM `house` WHERE `owner` = '" . mysql_real_escape_string($u->info['id']) . "';")); @@ -170,7 +171,8 @@ function changeSleep($sleep_action) $sleep_mod = 0; ini_set('display_errors', 'Off'); } - $sleep = $u->testAction('`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', 1); + + $sleep = ActionModel::get(["uid = {$u->info['id']}", 'vars = sleep']); } function changePets() diff --git a/modules_data/location/torg.php b/modules_data/location/torg.php index 7b8844a4..4e2df49f 100644 --- a/modules_data/location/torg.php +++ b/modules_data/location/torg.php @@ -1,81 +1,115 @@ room['file']=='torg') -{ -?> - - - - - + +
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- error != '' ) { ?> - - error; ?> - - - - - -
- '.$re.''; } ?> - - -
-
+if ($u->room['file'] == 'torg') { + ?> + + + + + - + } else { + echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; + } ?> + + + + -
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ error != '') { ?> + + error; ?> + + + + + +
+ ' . $re . ''; + } ?> + + + - -
+
-
onclick="location='main.php?loc=1.180.0.222';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec3.gif" width="101" height="37" class="aFilter" />
- -
-
-
onclick="location='main.php?loc=1.180.0.220';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_2stair.gif" width="120" height="35" class="aFilter" />
- -
- -
-
-
-
onclick="location='main.php?loc=1.180.0.223';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec4.gif" width="89" height="32" class="aFilter" />
-
- -
-
- - info['level']<6) - { - echo ' +
+ onclick="location='main.php?loc=1.180.0.222';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" + src="//img.new-combats.tech/i/images/300x225/map_sec3.gif" width="101" height="37" class="aFilter"/>
+ +
+
+
+
+ onclick="location='main.php?loc=1.180.0.220';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" + src="//img.new-combats.tech/i/images/300x225/map_2stair.gif" width="120" height="35" class="aFilter"/>
+ +
+ +
+
+
+
+ onclick="location='main.php?loc=1.180.0.223';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" + src="//img.new-combats.tech/i/images/300x225/map_sec4.gif" width="89" height="32" class="aFilter"/>
+
+ + +
+ + info['level'] < 6) { + echo ' Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. '; - }else{ - echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; - } ?> -
- - + +
- +
+
- - - testHome(); if(!isset($hgo['id'])){ ?> - -
+ + + testHome()) { ?> + +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
-Администрация.
+
+ +
+ \ No newline at end of file diff --git a/modules_data/location/trade_zv.php b/modules_data/location/trade_zv.php index 90caa98e..90be4ed4 100644 --- a/modules_data/location/trade_zv.php +++ b/modules_data/location/trade_zv.php @@ -1,82 +1,106 @@ room['file']=='trade_zv') -{ -?> - - - - - - + +
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- - - - -
- '.$re.''; } ?> - - - - -
- error != '' ) { ?> - - error; ?> - -
- - - - - - - - - - room['id']==221) { - ?>
- -
- -
-
- - info['level']<6) - { - echo ' +if ($u->room['file'] == 'trade_zv') { + ?> + + + + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ + + - + } else { + echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; + } ?> + + + + -
+ ' . $re . ''; + } ?> + + + + +
+ error != '') { ?> + + error; ?> + +
+ + + + + + + + + + room['id'] == 221) { + ?> +
+ +
+ +
+
+ + info['level'] < 6) { + echo ' Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. '; - }else{ - echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; - } ?> -
- - + +
- +
+
- - - testHome(); if(!isset($hgo['id'])){ ?> - -
+ + + testHome()) { ?> + +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
-Администрация.
+
+ +
+ \ No newline at end of file diff --git a/modules_data/location/zalu.php b/modules_data/location/zalu.php index 1f7034a0..42ec94c6 100644 --- a/modules_data/location/zalu.php +++ b/modules_data/location/zalu.php @@ -1,76 +1,99 @@ room['file']=='zalu') -{ -?> - - - - - + +
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- - - - -
- '.$re.''; } ?> - - - - -
-
- -
-
-
onClick="location='main.php?loc=1.180.0.16';" src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif" width="123" height="30" class="aFilter" />
- -
onClick="location='main.php?loc=1.180.0.376';" src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif" width="122" height="31" class="aFilter" />
-
onClick="location='main.php?loc=1.180.0.375';" src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif" width="122" height="31" class="aFilter" />
- -
-
-
onClick="location='main.php?loc=1.180.0.3';" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35" class="aFilter" />
- -
-
-
- - info['level']<6) - { - echo ' +if ($u->room['file'] == 'zalu') { + ?> + + + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ + + - + } else { + echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; + } ?> + + + + -
+ ' . $re . ''; + } ?> + + + + +
+
+ +
+
+
+
+ onClick="location='main.php?loc=1.180.0.16';" src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif" width="123" height="30" + class="aFilter"/>
+ +
+ onClick="location='main.php?loc=1.180.0.376';" src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif" width="122" height="31" + class="aFilter"/>
+
+ onClick="location='main.php?loc=1.180.0.375';" src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif" width="122" height="31" + class="aFilter"/>
+ +
+
+
+ onClick="location='main.php?loc=1.180.0.3';" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35" + class="aFilter"/>
+ +
+
+
+ + info['level'] < 6) { + echo ' Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. '; - }else{ - echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; - } ?> -
- - + +
- +
+
- testHome(); if(!isset($hgo['id'])){ ?> - - - - -
+ testHome()) { ?> + + + + +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
-Администрация.
+
+ +
+ \ No newline at end of file diff --git a/modules_data/location/zalu_pal.php b/modules_data/location/zalu_pal.php index 8574beee..6cfacefb 100644 --- a/modules_data/location/zalu_pal.php +++ b/modules_data/location/zalu_pal.php @@ -82,10 +82,10 @@ if (!empty($re)) {
- testHome(); - if (!isset($hgo['id'])) { ?> + testHome()) { ?> diff --git a/modules_data/location/zalu_pal2.php b/modules_data/location/zalu_pal2.php index 1587e3ed..03ad7270 100644 --- a/modules_data/location/zalu_pal2.php +++ b/modules_data/location/zalu_pal2.php @@ -1,64 +1,83 @@ room['file']=='zalu_pal2') -{ -?> - - - - - - -
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- - - - +if ($u->room['file'] == 'zalu_pal2') { + ?> +
- '.$re.''; } ?> - - - - -
-
- -
-
onClick="location='main.php?loc=1.180.0.16';" src="//img.new-combats.tech/i/images/300x225/map_demon3.gif" width="123" height="32" class="aFilter" />
-
-
-
-
- -
-
-
- - Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше. -
- -
+ + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ + + + -
+ ' . $re . ''; + } ?> + + + + +
+
+ +
+
+ onClick="location='main.php?loc=1.180.0.16';" src="//img.new-combats.tech/i/images/300x225/map_demon3.gif" width="123" height="32" + class="aFilter"/>
+
+
+
+
+
+ +
+
+
+ + Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше. + + +
+ +
- +
+
- testHome(); if(!isset($hgo['id'])){ ?> - - - - -
+ testHome()) { ?> + + + + +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
-Администрация.

+
+ + + + + \ No newline at end of file diff --git a/modules_data/location/zalu_pal3.php b/modules_data/location/zalu_pal3.php index 1a7ff081..fc670a7b 100644 --- a/modules_data/location/zalu_pal3.php +++ b/modules_data/location/zalu_pal3.php @@ -1,73 +1,93 @@ room['file']=='zalu_pal3') -{ -?> - - - - - - - - - - - -
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- - - - +if ($u->room['file'] == 'zalu_pal3') { + ?> +
- '.$re.''; } ?> - - - - -
-
- -
-
onClick="location='main.php?loc=1.180.0.16';" class="aFilter" width="120" height="35" />
-
- -
-
- -
-
-
onClick="location='main.php?loc=1.180.0.3';" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35" class="aFilter" />
- -
-
-
- - Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше. -
- -
+ + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ + + + -
+ ' . $re . ''; + } ?> + + + + +
+
+ +
+
onClick="location='main.php?loc=1.180.0.16';" + class="aFilter" width="120" height="35"/>
+
+ +
+
+ +
+
+
+ onClick="location='main.php?loc=1.180.0.3';" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35" + class="aFilter"/>
+ +
+
+
+ + Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше. + + +
+ +
- +
+
- testHome(); if(!isset($hgo['id'])){ ?> - - - - -
+ testHome()) { ?> + + + + +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
   
-Администрация.
+
+ + + + +   +   +   + + + \ No newline at end of file diff --git a/modules_data/location/zalu_pal4.php b/modules_data/location/zalu_pal4.php index f75904a3..bc6cee21 100644 --- a/modules_data/location/zalu_pal4.php +++ b/modules_data/location/zalu_pal4.php @@ -1,73 +1,93 @@ room['file']=='zalu_pal4') -{ -?> - - - - - - - - - - - -
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- - - - +if ($u->room['file'] == 'zalu_pal4') { + ?> +
- '.$re.''; } ?> - - - - -
-
- -
-
onClick="location='main.php?loc=1.180.0.16';" class="aFilter" width="120" height="35" />
-
- -
-
- -
-
-
onClick="location='main.php?loc=1.180.0.3';" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35" class="aFilter" />
- -
-
-
- - Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше. -
- -
+ + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ + + + -
+ ' . $re . ''; + } ?> + + + + +
+
+ +
+
onClick="location='main.php?loc=1.180.0.16';" + class="aFilter" width="120" height="35"/>
+
+ +
+
+ +
+
+
+ onClick="location='main.php?loc=1.180.0.3';" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35" + class="aFilter"/>
+ +
+
+
+ + Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше. + + +
+ +
- +
+
- testHome(); if(!isset($hgo['id'])){ ?> - - - - -
+ testHome()) { ?> + + + + +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
   
-Администрация.
+
+ + + + +   +   +   + + + \ No newline at end of file diff --git a/modules_data/location/zv2.php b/modules_data/location/zv2.php index 18aff3c5..f0fcd6e8 100644 --- a/modules_data/location/zv2.php +++ b/modules_data/location/zv2.php @@ -1,70 +1,120 @@ room['file']=='zv2') -{ -?> - - - - - + +
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- - - - -
- '.$re.''; } ?> - - - - -
-
-
-
src="//img.new-combats.tech/i/images/300x225/map_bk.gif" width="120" height="35" title="" class="aFilter" />
-
-
-
-
-
-
-
-
- -
-
- - info['level']<6) - { - echo ' +if ($u->room['file'] == 'zv2') { + ?> + + + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ + + - + } ?> + + + + -
+ ' . $re . ''; + } ?> + + + + +
+
+
+
+
+ src="//img.new-combats.tech/i/images/300x225/map_bk.gif" width="120" height="35" title="" class="aFilter"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + info['level'] < 6) { + echo ' Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. '; - } ?> -
- - + +
- +
+
- - - testHome(); if(!isset($hgo['id'])){ ?> -
+ + + testHome()) { ?> +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
-Администрация.
+
+ +
+ \ No newline at end of file diff --git a/modules_data/location/zv3.php b/modules_data/location/zv3.php index da41c1c9..bac59faf 100644 --- a/modules_data/location/zv3.php +++ b/modules_data/location/zv3.php @@ -1,74 +1,122 @@ room['file']=='zv3') -{ -?> - - - - - + +
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- - - - -
- error != '' ) { - $re = $u->error; - } - if($re!=''){ echo ''.$re.''; } ?> - - - - -
-
-
-
src="//img.new-combats.tech/i/images/300x225/map_bk.gif" width="120" height="35" title="" class="aFilter" />
-
-
-
-
-
-
-
-
- -
-
- - info['level']<6) - { - echo ' +if ($u->room['file'] == 'zv3') { + ?> + + + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ + + - + } ?> + + + + -
+ error != '') { + $re = $u->error; + } + if ($re != '') { + echo '' . $re . ''; + } ?> + + + + +
+
+
+
+ src="//img.new-combats.tech/i/images/300x225/map_bk.gif" width="120" height="35" title="" class="aFilter"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + info['level'] < 6) { + echo ' Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. '; - } ?> -
- - + +
- +
+
- - - testHome(); if(!isset($hgo['id'])){ ?> -
+ + + testHome()) { ?> +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
-Администрация.
+
+ +
+ \ No newline at end of file diff --git a/modules_data/location/zv4.php b/modules_data/location/zv4.php index 678665be..0df156a1 100644 --- a/modules_data/location/zv4.php +++ b/modules_data/location/zv4.php @@ -1,69 +1,118 @@ room['file']=='zv4') -{ -?> - - - - - + +
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> -
- - - - -
- '.$re.''; } ?> - - - - -
-
-
-
src="//img.new-combats.tech/i/images/300x225/map_bk.gif" width="120" height="35" title="" class="aFilter" />
-
-
-
-
-
-
-
-
- -
-
- - info['level']<6) - { - echo ' +if ($u->room['file'] == 'zv4') { + ?> + + + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } ?> + +
+ + + - + } ?> + + + + -
+ ' . $re . ''; + } ?> + + + + +
+
+
+
+
+ src="//img.new-combats.tech/i/images/300x225/map_bk.gif" width="120" height="35" title="" class="aFilter"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + info['level'] < 6) { + echo ' Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. '; - } ?> -
- - + +
- +
+
- - testHome(); if(!isset($hgo['id'])){ ?> -
+ + testHome()) { ?> +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
-Администрация.
+
+ +
+ \ No newline at end of file diff --git a/modules_data/location/zv_svet.php b/modules_data/location/zv_svet.php index bed8b75a..d5b5fccc 100644 --- a/modules_data/location/zv_svet.php +++ b/modules_data/location/zv_svet.php @@ -1,82 +1,105 @@ room['file']=='zv_svet') -{ - $u->abilsRoom('test'); -?> - - - - - - + +
- getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } - echo '
'.$u->abilsRoom('look').'
'; - ?> -
- - - - -
- '.$re.''; } ?> - - - - -
- error != '' ) { ?> - - error; ?> - -
- - - - - - - - - - room['id']==220) { - ?>
- -
- -
-
- - info['level']<6) - { - echo ' +if ($u->room['file'] == 'zv_svet') { + $u->abilsRoom('test'); + ?> + + + + + +
+ getInfoPers($u->info['id'], 0); + if ($usee != false) { + echo $usee[0]; + } else { + echo 'information is lost.'; + } + echo '
' . $u->abilsRoom('look') . '
'; + ?> +
+
+ + + - + } ?> + + + + -
+ ' . $re . ''; + } ?> + + + + +
+ error != '') { ?> + + error; ?> + +
+ + + + + + + + + + room['id'] == 220) { + ?> +
+ +
+ +
+
+ + info['level'] < 6) { + echo ' Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. '; - } ?> -
- - + +
- +
+
- - - testHome(); if(!isset($hgo['id'])){ ?> -
+ + + testHome()) { ?> +
Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.
- Администрация.

-
- -
-Администрация.
+
+ +
+ \ No newline at end of file diff --git a/modules_data/stats_inv.php b/modules_data/stats_inv.php index cc717b40..128a48a8 100644 --- a/modules_data/stats_inv.php +++ b/modules_data/stats_inv.php @@ -1,5 +1,6 @@ rep['rep3'] - $u->rep['rep3_buy']; return $val; } - $rz0 = ''; + $rz0 = ''; $rz0 .= ''; if ($uShow[0] == 1) { $i = 1; @@ -580,7 +581,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy']; } } $rz0 .= ''; - $rz1 = ''; + $rz1 = ''; if ($uShow[1] == 1) { //if( $u->info['admin'] > 0 ) { $rz1 .= ''; } - $rz2 = ''; + $rz2 = ''; if ($uShow[2] == 1) { $rz2 .= ''; } - $rz3 = ''; + $rz3 = ''; if ($uShow[3] == 1) { $rz3 .= '