Вторник, 26 Ноября 2024, 08:22

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Command's
VipCatДата: Пятница, 27 Июля 2012, 18:38 | Сообщение # 1
PHP-MasteR
Сейчас нет на сайте
Уважаемые пользователи как реализовать команды.
Например я хочу чтоб была команда: /ban ид кол-во ( пишешь это в чат и пользователя банило ) Система бана есть.
Команды в чат чтоб писать.


Проблемы индейцев - вождя не волнуют....
TimKruzДата: Пятница, 27 Июля 2012, 19:13 | Сообщение # 2
старожил
Сейчас нет на сайте
Вот пользователь вводит что-то в чат, и строка отправляется на сервер. На сервере, перед тем, как отправлять остальным игрокам, проверятся первый символ строки - если "/", то это команда. Если команда, то строка не отправляется другим игрокам в чат и все остальные символы (после "/") обрабатываются как команда. Как-то так: если 2-4 символы = "ban", и 5 - пробел, то проверяем с 6 символа и до следующего пробела (1 слово) - это имя игрока, которого нужно забанить. Если команда правильная, находим и баним игрока. По той же схеме добавляешь остальные команды.
Если пишешь на PHP, то в нём есть специальная функция explode - она разбивает строку на массив строк-частей исходной строки, используя заданный разделитель. Если, например, задать разделитель - пробел, то строка разделится на "слова". Тогда первое слово будет собственно командой ("ban"), а второе и остальные слова - параметры (имя игрока, время бана, причина бана).




Сообщение отредактировал TimKruz - Пятница, 27 Июля 2012, 19:16
VipCatДата: Пятница, 27 Июля 2012, 19:16 | Сообщение # 3
PHP-MasteR
Сейчас нет на сайте
Tim Я тебя уважаю за твои старания но можешь пожалуйста для дерева написать в ЛС скрипт в php ибо я сам не составлю.

Проблемы индейцев - вождя не волнуют....
NosorogДата: Пятница, 27 Июля 2012, 19:26 | Сообщение # 4
участник
Сейчас нет на сайте
Вот, для примера... Там такая возможность реализована

Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
VipCatДата: Пятница, 27 Июля 2012, 19:31 | Сообщение # 5
PHP-MasteR
Сейчас нет на сайте
Я не нашел где там именно такая система...=(

Проблемы индейцев - вождя не волнуют....
NosorogДата: Пятница, 27 Июля 2012, 19:50 | Сообщение # 6
участник
Сейчас нет на сайте
Исходник чата скинь...

Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
TimKruzДата: Пятница, 27 Июля 2012, 20:54 | Сообщение # 7
старожил
Сейчас нет на сайте
Там простейшая логика. Вот, для примера написал, смотри функцию cmd():


VipCatДата: Пятница, 27 Июля 2012, 21:21 | Сообщение # 8
PHP-MasteR
Сейчас нет на сайте
Вот исходник чата : Сделайте пожалуйста http://files.mail.ru/W2X402

Добавлено (27.07.2012, 21:21)
---------------------------------------------
tim спасибо я скинул исходник сделайте там)


Проблемы индейцев - вождя не волнуют....
NosorogДата: Пятница, 27 Июля 2012, 22:04 | Сообщение # 9
участник
Сейчас нет на сайте
VipCat, ты конечно извини, но мне в таком коде разбираться, просто, впадлу sad
TimKruz, по-моему, привел достаточно наглядный и простой для понимания пример


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
VipCatДата: Пятница, 27 Июля 2012, 23:33 | Сообщение # 10
PHP-MasteR
Сейчас нет на сайте
Вот написал
Code
if( $Group == 1 ) {
if( $text[0] == '/') {
$params = explode(' ',$text);
switch($params[0]){
case '/ban':
print 'Игрок '.$params[1].' забанен';
break;

пишу /ban cheater 0 Не банит пишет только что пользователь забанен .


Проблемы индейцев - вождя не волнуют....
llibertyДата: Суббота, 28 Июля 2012, 00:37 | Сообщение # 11
был не раз
Сейчас нет на сайте
Ну правильно, этот код и не должен банить, Тебе просто показали как это можно сделать.
Code

if( $Group == 1 ) {
  if( $text[0] == '/') {
   $params = explode(' ',$text);
   switch($params[0]){
    case '/ban':
      //ВОТ ТУТ САМ ПИШЕШЬ КОД ДЛЯ БАНА ИГРОКА $params[1],
      print 'Игрок '.$params[1].' забанен';
      break;
VipCatДата: Суббота, 28 Июля 2012, 00:53 | Сообщение # 12
PHP-MasteR
Сейчас нет на сайте
Я не смогу сам написать напиши мне пожалуйста

Проблемы индейцев - вождя не волнуют....
TimKruzДата: Суббота, 28 Июля 2012, 01:33 | Сообщение # 13
старожил
Сейчас нет на сайте
VipCat, чего конкретно ты не можешь написать? Ты же сказал, что
Quote (VipCat)
Система бана есть.

Способ распознавания команд тебе показали, вот и приделай одно к другому...
Напиши функцию ban(), которая будет добавлять пользователя "в чёрный список". Потом просто вызывай эту функцию с нужными параметрами после <case '/ban'>. Какая там у тебя система бана, как ею управлять - ты знаешь, а нам придётся перерыть кучу кода...


VipCatДата: Суббота, 28 Июля 2012, 02:22 | Сообщение # 14
PHP-MasteR
Сейчас нет на сайте
Я могу скинуть систему бана.
Code
<?php
session_start(); //запускаем сессию. Обязательно в начале страницы
include ("bd.php"); // соединяемся с базой, укажите свой путь, если у вас уже есть соединение

if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существует логин и пароль в сессиях, то проверяем, действительны ли они
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password' AND groups='1'",$db);
$myrow2 = mysql_fetch_array($result2);
if (isset($_POST['u_id']))
{$u_id = $_POST['u_id'];

}

if (empty($myrow2['id']))
{
//если логин или пароль не действителен
echo "<script>location.href='..';</script>"; exit;

}
}
else {
//Проверяем, зарегистрирован ли вошедший
echo "<script>location.href='..';</script>"; exit;}
if (isset($_POST['names']))
{$names = $_POST['names'];}

if (isset($_POST['ban']))//Если существует avatar
{
$ban = $_POST['ban'];
if ($ban=='1'){$ban = '0';} else
if ($ban=='2'){$ban = '1';} else
if ($ban=='3'){$ban = '1';} else
if ($ban=='4'){$ban = '1';} else
if ($ban=='5'){$ban = '1';} else
if ($ban=='6'){$ban = '1';}
$Rang = $_POST['ban'];
if ($Rang=='1'){$Rang = 'Забанен'; $ran = 'Забанен и'; $color = 'red';} else
if ($Rang=='2'){$Rang = 'Новичек'; $color = 'Purple4';} else
if ($Rang=='3'){$Rang = 'Новичек'; $ran = 'назначен Модератором и'; $color = 'Purple4';}else
if ($Rang=='4'){$Rang = 'Новичек'; $ran = 'назначен Супермодератором и'; $color = 'Purple4';}else
if ($Rang=='5'){$Rang = 'Новичек'; $ran = 'назначен Наставником и'; $color = 'Purple4';}else
if ($Rang=='6'){$Rang = 'Новичек'; $ran = 'назначен Полицейским и'; $color = 'Purple4';}else
{$Rang = 'Новичек'; $ran = 'Разбанен'; $color = 'Purple4';}
$Group = $_POST['ban'];
if ($Group=='1'){$Group = '9'; $Moder = '0'; $police = '0'; $Group2 = 'Заблокированые';} else
if ($Group=='2'){$Group = '11'; $Moder = '0'; $police = '0'; $Group2 = 'Пользователи';} else
if ($Group=='3'){$Group = '3'; $Moder = '3'; $police = '0'; $Group2 = '"Модераторы"';} else
if ($Group=='4'){$Group = '2'; $Moder = '3'; $police = '0'; $Group2 = '"Супермодераторы"';} else
if ($Group=='5'){$Group = '5'; $Moder = '0'; $police = '0'; $Group2 = '"Наставники"';} else
if ($Group=='6'){$Group = '6'; $Moder = '3'; $police = '1'; $Group2 = '"Полиция"';} else
{$Group = '2'; $Moder = '0'; $Group2 = 'Пользователи';}

$ban = stripslashes($ban);$ban = htmlspecialchars($ban);$ban = trim($ban);
$Rang = stripslashes($Rang);$Rang = htmlspecialchars($Rang);$Rang = trim($Rang);

if ($ban == '') {echo "<script>alert('Неправильно введены значения'); location.href='http://games.ru/page.php?id=$u_id';</script>"; exit;}
if ($Rang == '') {echo "<script>alert('Неправильно введены значения'); location.href='http://games.ru/page.php?id=$u_id';</script>"; exit;}
if ($Group == '') {echo "<script>alert('Неправильно введены значения'); location.href='http://games.ru/page.php?id=$u_id';</script>"; exit;}
$result4 = mysql_query("UPDATE users SET activation='$ban' WHERE id='$u_id'",$db);//обновляем пароль
$result5 = mysql_query("UPDATE users SET groups='$Group' WHERE id='$u_id'",$db);
$result5 = mysql_query("UPDATE users SET Moder='$Moder', police='$police' WHERE id='$u_id'",$db);

$author = "Games";
$u_id2 = $_SESSION['id'];

$text = "<table width=100% border=0 cellspacing=3 valign=left><tr><td align=left valign=middle bgcolor=#FEEE83><blockquote class=admintext><b><font size=5><font color=$color>Пользователь $names, $ran переведен в группу $Group2!</font></b></blockquote></td></tr></table></font>";

echo "<script>alert('Информация изменена'); location.href='/page.php?id=$u_id';</script>";
}
?>

Добавлено (28.07.2012, 02:22)
---------------------------------------------
Извините за мой тупизм.....=(Ибо щас ночь я плохо понимаю (4часа ночи по Караганде ) Но просто уж очень хочется реализовать данную команду. Хотя бы что ли для удобства biggrin


Проблемы индейцев - вождя не волнуют....


Сообщение отредактировал VipCat - Суббота, 28 Июля 2012, 02:03
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг