From 9c8b6bd89cf00aeffa468cf03feb505a6b997919 Mon Sep 17 00:00:00 2001 From: Ivor Barhansky Date: Sat, 2 Dec 2023 01:13:29 +0200 Subject: [PATCH] =?UTF-8?q?=D0=A2=D1=8E=D1=80=D1=8C=D0=BC=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _incl_data/class/Moderation/Moderation.php | 1 + modules_data/moder/use_carcer.php | 86 ++++++---------------- 2 files changed, 24 insertions(+), 63 deletions(-) diff --git a/_incl_data/class/Moderation/Moderation.php b/_incl_data/class/Moderation/Moderation.php index 350e107d..368d8bc3 100644 --- a/_incl_data/class/Moderation/Moderation.php +++ b/_incl_data/class/Moderation/Moderation.php @@ -93,6 +93,7 @@ class Moderation * Тюрьма * @param DateTime $expiration срок истечения. * @param string $reason причина применения. + * @todo Корректно выбрасывать игрока из подземелья. */ public function prison(DateTime $expiration, string $reason = self::NOT_SET): void { diff --git a/modules_data/moder/use_carcer.php b/modules_data/moder/use_carcer.php index 88809b0e..cdf96578 100644 --- a/modules_data/moder/use_carcer.php +++ b/modules_data/moder/use_carcer.php @@ -1,71 +1,31 @@ 0 && $u->info['admin']==0) - { - $uer = 'Вы не можете посадить Ангела.'; - } - if($uu['city']!=$u->info['city'] && $p['citym1']==0){ - $uer = 'Персонаж находится в другом городе'; - }elseif($uuss['dnow'] > 0){ - $uer = 'Персонаж находится в подземелье'; - }elseif(floor($uu['align'])==$a && $uu['align']>$u->info['align'] && $u->info['admin']==0) - { - $uer = 'Вы не можете посадить старших по званию'; - }elseif($uu['id']==$u->info['id'] && $u->info['admin']==0){ - $uer = 'Вы не можете посадить самого себя'; - }else{ - $upd = mysql_query('UPDATE `users` SET `jail` = "'.mysql_real_escape_string($time).'", `room`="274", `city`="capitalcity" WHERE `id` = "'.$uu['id'].'" LIMIT 1'); - if($upd) - { - $sx = ''; - if($u->info['sex']==1) - { - $sx = 'а'; - } - mysql_query('UPDATE `items_users` SET `delete` = "1357908642" WHERE `uid` = '.$uu['id'].' AND `delete` = 0'); - $rtxt = '[img[items/jail.gif]] '.$rang.' "'.$u->info['cast_login'].'" отправил'.$sx.' в заточение "'.$uu['login'].'", сроком '.$srokt[$tm].''; +if ($p['zatoch'] != 1 && $p['citym1'] != 1) { + $uer = 'У Вас нет прав на использование данного заклятия'; + return; +} + +$uu = \Core\Db::getRow('select id, login from users where login = ? order by id limit 1', [$_POST['logingo']]); + +if (!isset($uu['id'])) { + $uer = 'Персонаж не найден.'; + return; +} + +$time = new DateTime(); +$time->modify("+ {$_POST['time']} day"); +(new \Moderation\Moderation($uu['id']))->prison($time); +\Core\Db::sql('delete from dungeon_zv where uid = ?', [$uu['id']]); // Удаляем заявки в пещеры. + +$rtxt = "Персонаж {$uu['login']} был отправлен в тюрьму до {$time->format('d M Y H:i')}."; $cmsg = new ChatMessage(); -$cmsg->setCity($u->info['city']); $cmsg->setRoom($u->info['room']); -$cmsg->setText($rtxt); +$cmsg->setText("[img[items/jail.gif]] $rtxt"); $cmsg->setType(6); $cmsg->setTypeTime(1); (new Chat())->sendMsg($cmsg); - $rtxt = $rang.' "'.$u->info['login'].'" отправил'.$sx.' в "заточение" сроком '.$srokt[$tm].'.'; - mysql_query("INSERT INTO `users_delo` (`uid`,`ip`,`city`,`time`,`text`,`login`,`type`) VALUES ('".$uu['id']."','".$_SERVER['REMOTE_ADDR']."','".$u->info['city']."','".time()."','".$rtxt."','".$u->info['login']."',6)"); - $uer = 'Вы успешно посадили в тюрьму персонажа "'.$uu['login'].'", сроком '.$srok[$tm].'.'; - }else{ - $uer = 'Не удалось использовать данное заклятие'; - } - } - }else{ - $uer = 'Персонаж не найден в этом городе'; - } - } -}else{ - $uer = 'У Вас нет прав на использование данного заклятия'; -} -?> \ No newline at end of file + +$uer = $rtxt;