diff --git a/admin/NewItem.php b/admin/NewItem.php
index 98cd34e..a953114 100644
--- a/admin/NewItem.php
+++ b/admin/NewItem.php
@@ -1,143 +1,100 @@
-
+require_once '../config.php';
+
+use Battles\Admin\Item;
-
+
\ No newline at end of file
diff --git a/admin/admin.php b/admin/admin.php
index 23fcc34..fd1d6dd 100644
--- a/admin/admin.php
+++ b/admin/admin.php
@@ -4,13 +4,12 @@
* Author: Igor Barkov
* Project name: Battles-Game
*/
-require_once '../functions.php';
+require_once '../config.php';
-use Battles\Bank;
-use Battles\Database\Db;
-use Battles\GameConfigs;
+use Battles\Admin\Clan;
+use Battles\Admin\User as AUser;
+use Battles\Chat;
use Battles\Moderation;
-use Battles\Nick;
use Battles\Template;
use Battles\User;
@@ -31,72 +30,24 @@ if (isset($_POST['syschatmsg'])) {
}
//clans to reg
-$unregisteredClans = new class {
-
- public function getList()
- {
- $row = Db::getInstance()->ofetchAll('SELECT * FROM clans WHERE status = 0');
- $i = 0;
- while ($i < count($row)) {
- $id = $row[$i]->owner_id;
- $login = User::getInstance($row[$i]->owner_id)->getLogin();
- $fullName = $row[$i]->full_name;
- $shortName = $row[$i]->short_name;
- $info = nl2br($row[$i]->info);
- $i++;
- echo <<
-
-
-UNREGCLANLIST;
- }
- unset($i);
- }
-
- public function allowRegister($id)
- {
- Db::getInstance()->execute('UPDATE clans SET status = 1 WHERE status = 0 AND owner_id = ?', $id);
- }
-
- public function disallowRegister($id)
- {
- $bank = new Bank($id);
- Db::getInstance()->execute('DELETE FROM clans WHERE status = 0 AND owner_id = ?', $id);
- $bank::setBankMoney($bank->getMoney() + GameConfigs::CLAN['clan_register_cost'], $id);
- }
-};
-$unregisteredClans->getList();
+Clan::getUnapprovedList();
if (isset($_GET['regclan'])) {
- $unregisteredClans->allowRegister($_GET['regclan']);
+ Clan::allowRegister($_GET['regclan']);
header('Location:/admin/admin.php');
exit;
}
if (isset($_GET['remclan'])) {
- $unregisteredClans->disallowRegister($_GET['remclan']);
+ Clan::disallowRegister($_GET['remclan']);
header('Location:/admin/admin.php');
exit;
}
# Телеграф.
if (!empty($_POST['receiver']) && !empty($_POST['tgmsg'])) {
- $receiver = Db::getInstance()->ofetch('SELECT id FROM users WHERE login= ?', $_POST['receiver']);
- telegraph($receiver->id, $_POST['tgmsg']);
+ Chat::sendTelegraf($_POST['tgmsg'], User::getInstance($_POST['receiver'])->getId());
echo "Успешно.";
}
-# Показывает невидимок.
-$row = Db::getInstance()->ofetchAll('SELECT id,login FROM users LEFT JOIN users_effects ue on users.id = ue.owner_id WHERE type = 1022 ORDER BY `id` DESC');
-foreach ($row as $r) {
- $invisList .= '[id] = ' .$r->id. ', ' .$r->login. '
';
-}
-
Template::header('ᐰdminка');
?>
@@ -126,27 +77,50 @@ Template::header('ᐰdminка');
Невидимки
-= $invisList ?>
\ No newline at end of file
+= AUser::getInvisiblesList() ?>
\ No newline at end of file
diff --git a/c_haos.php b/c_haos.php
index 89c56ba..584f035 100644
--- a/c_haos.php
+++ b/c_haos.php
@@ -67,7 +67,7 @@ if ($_POST['pay']) {
if ($_POST['adm_start_raid'] && $user['id'] == 1256) {
mysql_query("DELETE FROM `cit_haos_status`;");
mysql_query("DELETE FROM `cit_haos_var`;");
- Chat::addSYSMessage('Начинается прием заявок в рейд на Цитадель Хаоса! Начало рейда через 15 минут.');
+ Chat::sendSys('Начинается прием заявок в рейд на Цитадель Хаоса! Начало рейда через 15 минут.');
$ch_time = time();
mysql_query("UPDATE variables SET value='{$ch_time}' where var='cit_haos_time';");
}
diff --git a/chat.php b/chat.php
index 13de7f7..977f70d 100644
--- a/chat.php
+++ b/chat.php
@@ -12,7 +12,7 @@ use Battles\Template;
require_once "config.php";
$chat = new Chat(Db::getInstance());
if (!empty($_POST['msg'])) {
- $chat->addMessage($_POST['msg']);
+ $chat->sendMessage($_POST['msg']);
}
Template::header('chat');
diff --git a/classes/Battles/Admin/Clan.php b/classes/Battles/Admin/Clan.php
new file mode 100644
index 0000000..f8e30e4
--- /dev/null
+++ b/classes/Battles/Admin/Clan.php
@@ -0,0 +1,49 @@
+ofetchAll('select * from clans where status = 0');
+ foreach ($rows as $row) {
+ $id = $row->owner_id;
+ $login = User::getInstance($id)->getLogin();
+ $full = $row->full_name;
+ $short = $row->short_name;
+ $info = nl2br($row->info);
+ $list .= <<
+
+
+UNREGCLANLIST;
+ }
+ return $list;
+ }
+
+ public static function allowRegister($id)
+ {
+ Db::getInstance()->execute('UPDATE clans SET status = 1 WHERE status = 0 AND owner_id = ?', $id);
+ }
+
+ public static function disallowRegister($id)
+ {
+ $bank = new Bank($id);
+ Db::getInstance()->execute('DELETE FROM clans WHERE status = 0 AND owner_id = ?', $id);
+ $bank::setBankMoney($bank->getMoney() + GameConfigs::CLAN['clan_register_cost'], $id);
+ }
+}
\ No newline at end of file
diff --git a/classes/Battles/Admin/Item.php b/classes/Battles/Admin/Item.php
new file mode 100644
index 0000000..2efb5ee
--- /dev/null
+++ b/classes/Battles/Admin/Item.php
@@ -0,0 +1,49 @@
+ $params['name'] ?? uniqid(),
+ 'item_type' => $params['item_type'],
+ 'durability' => $params['durability'] ?? 1,
+ 'need_strength' => $params['need_strength'] ?? 0,
+ 'need_dexterity' => $params['need_dexterity'] ?? 0,
+ 'need_intuition' => $params['need_intuition'] ?? 0,
+ 'need_endurance' => $params['need_endurance'] ?? 0,
+ 'need_intelligence' => $params['need_intelligence'] ?? 0,
+ 'need_wisdom' => $params['need_wisdom'] ?? 0,
+ 'add_strength' => $params['add_strength'] ?? 0,
+ 'add_dexterity' => $params['add_dexterity'] ?? 0,
+ 'add_intuition' => $params['add_intuition'] ?? 0,
+ 'add_endurance' => $params['add_endurance'] ?? 0,
+ 'add_intelligence' => $params['add_intelligence'] ?? 0,
+ 'add_wisdom' => $params['add_wisdom'] ?? 0,
+ 'add_accuracy' => $params['add_accuracy'] ?? 0,
+ 'add_evasion' => $params['add_evasion'] ?? 0,
+ 'add_criticals' => $params['add_criticals'] ?? 0,
+ 'add_min_physical_damage' => $params['add_min_physical_damage'] ?? 0,
+ 'add_max_physical_damage' => $params['add_max_physical_damage'] ?? 0,
+ 'image' => $params['image'] ?? 'noitem.png',
+ 'weight' => $params['weight'] ?? 1,
+ ];
+ Db::getInstance()->execute($query, $values);
+ }
+}
\ No newline at end of file
diff --git a/classes/Battles/Admin/User.php b/classes/Battles/Admin/User.php
new file mode 100644
index 0000000..71138ab
--- /dev/null
+++ b/classes/Battles/Admin/User.php
@@ -0,0 +1,20 @@
+ofetchAll('select id, login from users left join users_effects ue on users.id = ue.owner_id where type = ' . self::INVISIBILITY_EFFECT);
+ foreach ($row as $item) {
+ $list .= '[id] = ' . $item->id . ', ' . $item->login . '
';
+ }
+ return $list;
+ }
+}
\ No newline at end of file
diff --git a/classes/Battles/Chat.php b/classes/Battles/Chat.php
index aabd8a6..975b69e 100644
--- a/classes/Battles/Chat.php
+++ b/classes/Battles/Chat.php
@@ -62,14 +62,18 @@ class Chat
return $wrappedMessage;
}
- public function addMessage(string $msg)
+ public function sendMessage(string $msg)
{
$this->db->execute('insert into chat (user_id, msg) values (?,?)', [User::getInstance()->getId(), $msg]);
}
- public static function addSYSMessage( string $msg, ?int $receiver_id = null)
+ public static function sendSys(string $msg, ?int $receiver_id = null)
{
- Db::getInstance()->execute('insert into chat (user_id, msg, receiver_id, type) values (?,?,?,?)', [User::getInstance()->getId(), $msg, $receiver_id, 'sys']);
+ Db::getInstance()->execute('insert into chat (user_id, msg, receiver_id, type) values (-1,?,?,?)', [$msg, $receiver_id, 'sys']);
+ }
+ public static function sendTelegraf(string $msg, int $receiver_id)
+ {
+ Db::getInstance()->execute('insert into chat (user_id, msg, receiver_id, type) values (-1,?,?,?)', [$msg, $receiver_id, 'sms']);
}
}
\ No newline at end of file
diff --git a/classes/Battles/DressedItems.php b/classes/Battles/DressedItems.php
index c1ce5b8..5d7ad32 100644
--- a/classes/Battles/DressedItems.php
+++ b/classes/Battles/DressedItems.php
@@ -12,18 +12,20 @@ use stdClass;
class DressedItems
{
- private $USERID;
- private $dressedItem;
- private static $db;
+ private int $USERID;
+ private stdClass $dressedItem;
+ private static Db $db;
+ private object $dressed;
/**
* DressedItems constructor.
- * @param int $user_id ID игрока.
+ * @param int $user_id ID игрока.
*/
public function __construct(int $user_id)
{
self::$db = Db::getInstance();
$this->USERID = $user_id;
+ $this->dressed = self::$db->ofetchAll('select * from inventory where dressed_slot > 0 and owner_id = ?', $this->USERID);
}
public static function getDressedItemBySlot($itemSlot, $ownerId)
@@ -33,9 +35,8 @@ class DressedItems
public function getItemsInSlots(): stdClass
{
- $items = self::$db->ofetchALL('SELECT * FROM inventory WHERE owner_id = ? AND dressed_slot > 0', $this->USERID);
$this->dressedItem = new stdClass();
- foreach ($items as $item) {
+ foreach ($this->dressed as $item) {
$i = $item->dressed_slot;
$this->dressedItem->$i = $item;
}
@@ -54,8 +55,35 @@ class DressedItems
self::$db->execute('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = ? AND owner_id = ?', [$slot_id, $this->USERID]);
}
}
+
public static function undressAllItems($user_id)
{
return self::$db->execute('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot BETWEEN 1 AND 12 AND owner_id = ?', $user_id);
}
+
+ public function checkRequirements()
+ {
+ $stats = (new UserStats($this->USERID))->getFullStats();
+ $q = 'select count(*) from inventory where
+ dressed_slot > 0 and
+ need_strength > ? and
+ need_dexterity > ? and
+ need_intuition > ? and
+ need_endurance > ? and
+ need_intelligence > ? and
+ need_wisdom > ? and
+ owner_id = ?';
+ $args = [
+ $stats->strength,
+ $stats->dexterity,
+ $stats->intuition,
+ $stats->endurance,
+ $stats->intelligence,
+ $stats->wisdom,
+ $this->USERID
+ ];
+ if (self::$db->fetchColumn($q, $args) > 0) {
+ self::undressAllItems($this->USERID);
+ }
+ }
}
\ No newline at end of file
diff --git a/classes/Battles/Magic/CureInjury.php b/classes/Battles/Magic/CureInjury.php
index 9ef433f..878843a 100644
--- a/classes/Battles/Magic/CureInjury.php
+++ b/classes/Battles/Magic/CureInjury.php
@@ -48,7 +48,12 @@ class CureInjury extends Magic
{
$this->target = $this->target == $_SESSION['uid'] ? User::getInstance() : User::getInstance($this->target);
$this->login = $this->target->getLogin();
- return ($this->isVisible(User::getInstance(), $this->target) && $this->isNotDead(User::getInstance()) && $this->enoughMana(User::getInstance()) && $this->isNotInBattle(User::getInstance()));
+ return (
+ $this->isVisible(User::getInstance(), $this->target) &&
+ $this->isNotDead(User::getInstance()) &&
+ $this->enoughMana(User::getInstance()) &&
+ $this->isNotInBattle(User::getInstance())
+ );
}
public static function cast($target, $type): self
diff --git a/classes/Battles/Magic/Magic.php b/classes/Battles/Magic/Magic.php
index f9135b0..9f357c6 100644
--- a/classes/Battles/Magic/Magic.php
+++ b/classes/Battles/Magic/Magic.php
@@ -1,11 +1,26 @@
magic = $db->ofetch('select * from magic where id = ?', $id);
+ }
+
+ public function getMagic(): object
+ {
+ return $this->magic;
+ }
+
+ protected function isVisible($caster, $target): bool
{
if ($caster->battle != $target->battle || $caster->room != $target->room) {
$this->status = 'Вы не видите цель!';
@@ -15,7 +30,7 @@ class Magic
}
}
- protected function isNotDead($caster):bool
+ protected function isNotDead($caster): bool
{
if ($caster->health < 1) {
$this->status = 'Вы мертвы!';
@@ -25,7 +40,7 @@ class Magic
}
}
- protected function enoughMana($caster):bool
+ protected function enoughMana($caster): bool
{
if ($caster->mana < 1) {
$this->status = 'Недостаточно пыли!';
@@ -35,7 +50,7 @@ class Magic
}
}
- protected function isNotInBattle($caster):bool
+ protected function isNotInBattle($caster): bool
{
if ($caster->battle) {
$this->status = 'Невозможно применить в поединке!';
@@ -52,12 +67,12 @@ class Magic
*
* @return bool
*/
- protected function isSuccess($caster, int $difficulty = 40):bool
+ protected function isSuccess($caster, int $difficulty = 40): bool
{
# 40 - потолок стата.
if ($difficulty > 40) {
$difficulty = 40;
}
- return mt_rand(1,$difficulty) < $caster->intelligence;
+ return mt_rand(1, $difficulty) < $caster->intelligence;
}
}
\ No newline at end of file
diff --git a/classes/Battles/User.php b/classes/Battles/User.php
index d3236a5..09adf85 100644
--- a/classes/Battles/User.php
+++ b/classes/Battles/User.php
@@ -216,6 +216,11 @@ class User
return $this->experience;
}
+ public function addExperience(int $amount): void
+ {
+ $this->experience += max($amount, 0);
+ }
+
public function getBattle(): int
{
return Arena::fight()->hasNoActiveFights();
diff --git a/classes/Battles/UserStats.php b/classes/Battles/UserStats.php
index 676bfb0..8e01125 100644
--- a/classes/Battles/UserStats.php
+++ b/classes/Battles/UserStats.php
@@ -213,7 +213,7 @@ class UserStats extends User
$this->level += 1;
$this->free_stat_points += 2;
$this->saveStats();
- Chat::addSYSMessage('Внимание, вы получили ' . $this->level . 'уровень. Доступны очки распределения параметров.');
+ Chat::sendSys('Внимание, вы получили ' . $this->level . 'уровень. Доступны очки распределения параметров.');
return 'Персонаж перешёл на ' . $this->level . 'уровень.';
}
diff --git a/config.php b/config.php
index b8acd9b..eff79b9 100644
--- a/config.php
+++ b/config.php
@@ -6,9 +6,6 @@
* Project name: Battles-Game
*/
-use Battles\Database\Db;
-use Battles\User;
-
include_once 'classes/Database/db.php';
include_once 'classes/Database/Mysql.php';
include_once 'classes/Database/Statement.php';
diff --git a/cronjobs/cron_bots_battle.php b/cronjobs/cron_bots_battle.php
index 074dc4e..029ab18 100644
--- a/cronjobs/cron_bots_battle.php
+++ b/cronjobs/cron_bots_battle.php
@@ -552,10 +552,10 @@ class fbattle
}
if ($arr_battle['win'] == 1) {
- Chat::addSYSMessage('Внимание! Тьма одержала победу благодаря великим воинам: ' . $uss . '');
+ Chat::sendSys('Внимание! Тьма одержала победу благодаря великим воинам: ' . $uss . '');
$this->AddToLog('' . date("H:i") . ' ' . 'Бой закончен, победа за Силами Тьмы
');
} else {
- Chat::addSYSMessage('Внимание! Свет одержал победу благодаря великим воинам: ' . $uss . '');
+ Chat::sendSys('Внимание! Свет одержал победу благодаря великим воинам: ' . $uss . '');
$this->AddToLog('' . date("H:i") . ' ' . 'Бой закончен, победа за Силами Света
');
}
mysql_query('UPDATE `variables` SET `value` = "' . $arr_battle['win'] . '" WHERE `var` = "arena_win" LIMIT 1');
@@ -586,7 +586,7 @@ class fbattle
}
} else {
if ($this->battle_data['aren_of'] == 1) {
- Chat::addSYSMessage('Внимание! Бой на Арене Ангелов завершился ничьей, на этой недели силы тьмы и света равны.');
+ Chat::sendSys('Внимание! Бой на Арене Ангелов завершился ничьей, на этой недели силы тьмы и света равны.');
mysql_query('UPDATE `variables` SET `value` = 3 WHERE `var` = "arena_win" LIMIT 1');
mysql_query('UPDATE `battle` SET `aren_of` = 0 WHERE `id` = "' . $arr_battle['id'] . '" AND `aren_of` = 1 LIMIT 1');
}
diff --git a/fbattle.php b/fbattle.php
index 0a821f1..c65c37d 100644
--- a/fbattle.php
+++ b/fbattle.php
@@ -1,4 +1,9 @@
@@ -133,7 +138,7 @@ $fbattle = new fbattle($user['battle']);
showUserDoll(1);
?>
|
@@ -290,7 +295,7 @@ $fbattle = new fbattle($user['battle']);
if (($user['hp'] > 0) && $fbattle->battle) {
echo 'Ожидаем хода противника...
0) ? "battle" : "end") . '>
';
} elseif ($user['hp'] <= 0 && $fbattle->battle) {
- ref_drop();
+ (new DressedItems(User::getInstance()->getId()))->checkRequirements();
echo 'Ожидаем, пока бой закончат другие игроки...
0) ? "battle" : "end") . '>
';
}
break;
@@ -468,7 +473,7 @@ $fbattle = new fbattle($user['battle']);
return == 1) {
- $enemyInfo = new \Battles\User($fbattle->enemy);
+ $enemyInfo = new User($fbattle->enemy);
$enemyInfo->showUserDoll(1);
} else {
if ($fbattle->battle_data['type'] == 4 || $fbattle->battle_data['type'] == 5) {
diff --git a/functions.php b/functions.php
index f329793..ae965e2 100644
--- a/functions.php
+++ b/functions.php
@@ -5,6 +5,7 @@
* Project name: Battles-Game
*/
+use Battles\Chat;
use Battles\Database\Db;
use Battles\DressedItems;
use Battles\InventoryItem;
@@ -78,26 +79,26 @@ Travel::roomRedirects(User::getInstance()->getRoom(), User::getInstance()->getBa
// exit;
//}
-if (!empty($_GET['goto']) && !empty($_GET['tStamp']) && !empty($_GET['vcode']) && $_GET['vcode'] == md5(sha1($_GET['goto'] . $_GET['tStamp']))) {
+if (
+ !empty($_GET['goto']) &&
+ !empty($_GET['tStamp']) &&
+ !empty($_GET['vcode']) &&
+ $_GET['vcode'] == md5(sha1($_GET['goto'] . $_GET['tStamp']))
+) {
$query = 'update users u, online o set u.room = ?, o.room = ? where user_id = id and user_id = ?';
Db::getInstance()->execute($query, [$_GET['goto'], $_GET['goto'], User::getInstance()->getId()]);
User::getInstance()->setRoom(intval($_GET['goto']));
}
-function createbot($bot, $login = "")
+function createbot($bot, $login = null)
{
- $rec = db::c()->query('SELECT `id`, `login`, `maxhp` FROM `users` WHERE `id` = "?s" LIMIT 1', $bot)->fetch_assoc();
- if (isset($rec['id'])) {
- if ($login) {
- $rec['login'] = $login;
- }
- $botname = $rec['login'];
- db::c()->query('INSERT INTO `bots` (`name`, `prototype`, `hp`) VALUES ("?s", "?s", "?s")', $botname, $bot, $rec['maxhp']);
- $nid = db::c()->getLastInsertId();
- return ["id" => $nid, "login" => $botname];
- } else {
+ if (!User::getInstance($bot)->getId()) {
return false;
}
+ $botname = $login ?: User::getInstance($bot)->getLogin();
+ Db::getInstance()->execute('insert into bots (name, prototype, hp) values (?, ?, ?)',
+ [$botname, $bot, (new UserStats($bot))->getMaxHealth()]);
+ return ["id" => Db::getInstance()->lastInsertId(), "login" => $botname];
}
$var_map = [
@@ -123,15 +124,15 @@ function savecavedata($cavedata, $caveleader, $floor)
function GiveExp($id, $exp)
{
- db::c()->query('UPDATE users SET exp = exp + ?i WHERE id = ?i', $exp, $id);
+ User::getInstance($id)->addExperience($exp);
}
/**
* Генератор прогрессбара.
- * @param $current - Текущее значение.
- * @param $maximum - Максимальное значение.
+ * @param $current - Текущее значение.
+ * @param $maximum - Максимальное значение.
* @param string $line_color - Цвет полоски прогрессбара.
- * @param string $bg_color - Фон прогрессбара.
+ * @param string $bg_color - Фон прогрессбара.
* @return string
*/
function showProgressBar($current, $maximum, string $line_color = 'limegreen', string $bg_color = 'silver'): string
@@ -199,22 +200,18 @@ EMPTY_SLOT;
}
// ссылка на магию
-function showhrefmagic($dress)
+function showhrefmagic(array $dress): string
{
- $user = db::c()->query('SELECT `battle` FROM `users` WHERE `id` = ?i', $_SESSION['uid'])->fetch_assoc();
- $magic = db::c()->query('SELECT * FROM `magic` WHERE `id` = ?i', $dress['includemagic'])->fetch_assoc();
+ $magic = new Battles\Magic\Magic(Db::getInstance(), $dress['includemagic']);
$r = '';
- $script = 'main';
- if ($user['battle']) {
- $script = 'fbattle';
- }
+ $script = User::getInstance()->getBattle() ? 'fbattle' : 'main';
$r .= "getMagic()->targeted == 1) {
$r .= "okno('Введите название предмета', '{$script}.php?use={$dress['id']}', 'target')";
- } elseif ($magic['targeted'] == 2) {
- $r .= "findlogin('" . $magic['name'] . "', '{$script}.php?use={$dress['id']}', 'target')";
+ } elseif ($magic->getMagic()->targeted == 2) {
+ $r .= "findlogin('" . $magic->getMagic()->name . "', '{$script}.php?use={$dress['id']}', 'target')";
} else {
$r .= "if (confirm('Использовать сейчас?')) window.location='" . $script . ".php?use=" . $dress['id'] . "';";
}
@@ -284,59 +281,6 @@ function addActions($time, $vars, $vls, $uid)
return $ins;
}
-#15
-function ref_drop()
-{
- //сможет держать
- function derj($id)
- {
- $user = db::c()->query('SELECT `id`, `align` FROM `users` WHERE `id` = ?i', $_SESSION['uid'])->fetch_assoc();
- $ts = db::c()->query('SELECT `id`, `nalign` FROM `inventory` WHERE `id` = ?i', $id)->fetch_assoc();
- $al = '(1 = 1)';
- if ($ts['nalign'] == 1.1) {
- $al = '(1 = 2)';
- }
- $dd = db::c()->query('SELECT `i`.`id` FROM `users` AS `u`, `inventory` AS `i`
- WHERE
- `i`.`needident` = 0 AND
- `i`.`id` = ?i AND
- `i`.`duration` < `i`.`maxdur` AND
- `i`.`owner` = ?i AND
- `u`.`sila` >= `i`.`nsila` AND
- `u`.`lovk` >= `i`.`nlovk` AND
- `u`.`inta` >= `i`.`ninta` AND
- `u`.`vinos` >= `i`.`nvinos` AND
- `u`.`intel` >= `i`.`nintel` AND
- `u`.`mudra` >= `i`.`nmudra` AND
- `u`.`level` >= `i`.`nlevel` AND
- ("?s" OR (?i = `i`.`nalign`) or (`i`.`nalign` = 0)) AND
- `u`.`noj` >= `i`.`nnoj` AND
- `u`.`topor` >= `i`.`ntopor` AND
- `u`.`dubina` >= `i`.`ndubina` AND
- `u`.`mec` >= `i`.`nmech` AND
- `u`.`mfire` >= `i`.`nfire` AND
- `u`.`mwater` >= `i`.`nwater` AND
- `u`.`mair` >= `i`.`nair` AND
- `u`.`mearth` >= `i`.`nearth` AND
- `u`.`mlight` >= `i`.`nlight` AND
- `u`.`mgray` >= `i`.`ngray` AND
- `u`.`mdark` >= `i`.`ndark` AND
- `i`.`setsale` = 0 AND
- `u`.`id` = ?i', $id, $user['id'], $al, $user['align'], $user['id']);
- return $dd->getNumRows() > 0;
- }
-
- $slot = ['sergi', 'kulon', 'weap', 'bron', 'r1', 'r2', 'r3', 'helm', 'perchi', 'shit', 'boots', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'm9', 'm10'];
- $user = db::c()->query('SELECT `sergi`,`kulon`,`weap`,`bron`,`r1`,`r2`,`r3`,`helm`,`perchi`,`shit`,`boots`,`m1`,`m2`,`m3`,`m4`,`m5`,`m6`,`m7`,`m8`,`m9`,`m10` FROM `users` WHERE id = ?i', $_SESSION['uid'])->fetch_assoc();
- for ($i = 0; $i <= 20; $i++) {
- if ($user[$slot[$i]] && !derj($user[$slot[$i]])) {
- $item = new DressedItems($_SESSION['uid']);
- $item->undressItem($i + 1);
- $user[$slot[$i]] = null;
- }
- }
-}
-
// использовать магию
function usemagic($id, $target)
{
@@ -426,7 +370,7 @@ function usemagic($id, $target)
}
/* ВАЖНО! (#44)
- * addch() и addchp() заменяются на Chat::class->addSYSMessage($message, [optional]$receiver);
+ * addch() и addchp() заменяются на Chat::class->sendSys($message, [optional]$receiver);
* Для addchp() используется второй опциональный ключ.
* Это 150+ вхождений в куче файлов, где надо менять структуру вызова функции из-за их несовместимости.
* Возможно, приоритетом стоит сделать унификацию свитков нападения, которых самих около 20 и которые
@@ -435,30 +379,13 @@ function usemagic($id, $target)
function addch($text, $room = 0)
{
- if ($room == 0) {
- $room = User::getInstance()->getRoom();
- }
- if ($fp = @fopen("tmp/chat.txt", "a")) { //открытие
- flock($fp, LOCK_EX); //БЛОКИРОВКА ФАЙЛА
- fwrite($fp, ":[" . time() . "]:[!sys!!]:[" . ($text) . "]:[" . $room . "]\r\n"); //работа с файлом
- fflush($fp); //ОЧИЩЕНИЕ ФАЙЛОВОГО БУФЕРА И ЗАПИСЬ В ФАЙЛ
- flock($fp, LOCK_UN); //СНЯТИЕ БЛОКИРОВКИ
- fclose($fp); //закрытие
- }
+ Chat::sendSys($text);
}
function addchp($text, $who, $room = 0)
{
- if ($room == 0) {
- $room = User::getInstance()->getRoom();
- }
- $fp = fopen("tmp/chat.txt", "a"); //открытие
- flock($fp, LOCK_EX); //БЛОКИРОВКА ФАЙЛА
- fwrite($fp, ":[" . time() . "]:[{$who}]:[" . ($text) . "]:[" . $room . "]\r\n"); //работа с файлом
- fflush($fp); //ОЧИЩЕНИЕ ФАЙЛОВОГО БУФЕРА И ЗАПИСЬ В ФАЙЛ
- flock($fp, LOCK_UN); //СНЯТИЕ БЛОКИРОВКИ
- fclose($fp); //закрытие
+ Chat::sendSys($text, $who);
}
function err($t)
@@ -466,19 +393,6 @@ function err($t)
echo '' . $t . '';
}
-
-/**
- * @param int $userId
- * @param string $text
- *
- */
-function telegraph(int $userId, string $text)
-{
- if (Db::getInstance()->ofetch('SELECT 1 FROM users WHERE id = ?', $userId)) {
- Db::getInstance()->execute('INSERT INTO chat (user_id,receiver_id,msg,type) VALUES (-1,?,?,?)', [$userId, $text, 'sms']);
- }
-}
-
function SolveExp($at_id, $def_id, $damage): float
{
$mods = [
@@ -486,7 +400,7 @@ function SolveExp($at_id, $def_id, $damage): float
'btl_1' => 1,
'btl_2' => 0.5,
'btl_3' => 0.05,
- ];
+ ];
$baseexp = [
"0" => "2",
"1" => "5",
diff --git a/towerin.php b/towerin.php
index 98e9ebc..33195c1 100644
--- a/towerin.php
+++ b/towerin.php
@@ -281,7 +281,7 @@ if (($kol_pl + $ls) < 2 && ($tur_data['start_time'] + 60) <= time()) {
mysql_query('UPDATE `deztow_turnir` SET `winner` = \'' . $user['id'] . '\', `winnerlog` = \'' . Nick::id($user['id'])->full(1) . '\', `endtime` = \'' . time() . '\', `active` = FALSE, `log` = CONCAT(`log`,\'' . "" . date("d.m.y H:i") . " Турнир завершен. Победитель : " . Nick::id($user['id'])->full(1) . " Приз : " . $tur['coin'] . " кр.
" . '\') WHERE `active` = TRUE LIMIT 1');
addchp('Внимание! Поздравляем! Вы победитель турнира Башни смерти! Получаете ' . $tur['coin'] . ' кр.', '{[]}' . $user['login'] . '{[]}');
- Chat::addSYSMessage('Внимание! Битва в Башне Смерти завершена. Победитель:' . $user['login'] . ' [' . $user['level'] . ']');
+ Chat::sendSys('Внимание! Битва в Башне Смерти завершена. Победитель:' . $user['login'] . ' [' . $user['level'] . ']');
if ($tur['art'] == 1) {
$bs_art = 0;
} else {
diff --git a/zayavka.php b/zayavka.php
index ccf0b52..3a748f6 100644
--- a/zayavka.php
+++ b/zayavka.php
@@ -207,7 +207,7 @@ class Zayavka
return $this->errorMessage;
} else {
if ($type == 3) {
- Chat::addSYSMessage("Внимание! Подана заявка на хаотический поединок ({$t1min} - {$t1max}), который начнется через {$start} минут.");
+ Chat::sendSys("Внимание! Подана заявка на хаотический поединок ({$t1min} - {$t1max}), который начнется через {$start} минут.");
}
$start = time() + $start * 60;
@@ -662,19 +662,19 @@ Template::header('zayavka');
}
if (!empty($_POST['back2'])) {
$z = $zay->getlist(2, null, $user->getZayavka());
- Chat::addSYSMessage('Внимание!' . Nick::id($user->getId())->short() . ' отозвал заявку.');
+ Chat::sendSys('Внимание!' . Nick::id($user->getId())->short() . ' отозвал заявку.');
echo $zay->delteam($user->getId(), $user->getZayavka(), 2);
}
if (!empty($_POST['cansel'])) {
$z = $zay->getlist(2, null, $user->getZayavka());
echo $zay->delteam($z[$user->getZayavka()]['team2'][0], $user->getZayavka(), 2);
- Chat::addSYSMessage('Внимание!' . Nick::id($user->getId())->short() . ' отказался от поединка.');
+ Chat::sendSys('Внимание!' . Nick::id($user->getId())->short() . ' отказался от поединка.');
}
if (!empty($_POST['confirm2']) && empty($user->getZayavka())) {
$z = $zay->getlist(2, null, $_REQUEST['gocombat']);
$toper = db::c()->query('SELECT `klan` FROM `users` WHERE `id` = ?i', $z[$_REQUEST['gocombat']]['team1'][0])->fetch_assoc();
if ($user->getClan() != $toper['klan'] || !$user->getClan()) {
- Chat::addSYSMessage('Внимание!' . Nick::id($user->getId())->short() . ' принял заявку, нужно принять вызов или отказать.');
+ Chat::sendSys('Внимание!' . Nick::id($user->getId())->short() . ' принял заявку, нужно принять вызов или отказать.');
}
echo $zay->addteam(2, 2);
echo "
Ожидаем подтверждения боя. ";