• Страница 1 из 1
  • 1
Модератор форума: admin, TweIk  
Форум » Pawno » Wiki-samp » pawno урок админ level/уровень
pawno урок админ level/уровень
adminДата: Среда, 28.08.2013, 03:03:04 | Сообщение # 1

Группа: Администраторы
Сообщений: 3869
В этом статье я расскажу как сделать админ систему по уровеню/level . И так приступим
Создадим массив для хранения админки (впрочем можно использовать много для чего):
Код
new Player[MAX_PLAYERS][pInfo];

MAX_PLAYERS - ид игрока, к которому все это относится
pInfo - ну так скажем сама информация
Теперь создадим enum, если проще сказать, он показывает что у нас будет вместо pInfo:
Код
enum pInfo {
pAdmin, // ВНИМАНИЕ! ЗАПЯТАЯ - НЕ ОПЕЧАТКА
}

Сюда же мы может всунуть, например pJob (имя произвольное), которое может означать профессию или что то другое.
По сути сама система готова, теперь приведем ее в действие. Сделаем команду для ркон админов, чтобы они могли давать админки:
В
Код
public OnPlayerCommandText (срабатывает, когда игрок вводит команду)
добавляем:
Код
new cmd[128],idx,tmp[128];
// это нам нужно, чтобы мочь писать команды, в которых присутствует пробелы, после которых идут ID, тексты и т.д.
Код
cmd = strtok(cmdtext, idx);

команда на уровень/level администратора
Код
if (strcmp("/makeadmin", cmd, true) == ) // создаем команду
{
      if (!IsPlayerAdmin(playerid)) // узнаем, если игрок не ркон админ, playerid - id игрока, который ввел команду
      {
          SendClientMessage(playerid, 0xFF0000FF, "Вы не rcon администратор"); // отправляем игроку сообщение о том, что он не ркон админ, 0xFF0000FF - цвет
      }
      tmp = strtok(cmdtext, idx); // делаем пробел после самой команды
      if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF , "Используйте /makeadmin [ID игрока] [lvl]"); // если человек вводит /makeadmin без id и лвл, то отправляем сообщение
      new player = strval(tmp); // честно говоря, я не знаю, зачем это делать, но в виде tmp в сообщениях, например, использовать не дает <img rel="usm" src="http://forum-pawno.ru/smiles/Juokas.gif" border="0" align="absmiddle" alt=":D" />
      tmp = strtok(cmdtext, idx); // делаем 2 пробел   
      if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF , "Используйте /makeadmin [ID игрока] [lvl]");
      new adminl = strval(tmp);
      if(!IsPlayerConnected(player)) return SendClientMessage(playerid,Red,"Игрок не онлайн!"); // если игрок, которого мы ввели после команды не онлайн ...
      if(adminl > 5 || adminl < 0) return SendClientMessage(playerid,Red,"Нельзя больше 5 и меньше 0!"); // устанавливаем рамки уровней админки, в данном случае 5 уровней + 0лвл - игрок
      Player[player] [pAdmin]= adminl; // присваиваем информации об админ статусе игрока значение, которое ркон админ ввел ([lvl]), это наш массив, вместо pInfo мы вставляем одно из того, что прописано в enum
      new string[256]; // создадим массив для хранения сообщения игроку
      format(string, sizeof(string), "Вы были назначены администратором %d уровня! Поздравляем!",adminl); // для красоты уже, отправим игроку сообщение о том, что его назначили администратором, т.к. у нас присутствует  %d, сначала пропишем format
      SendClientMessage(player,0x00FF00FF,string);
      return 1; // завершаем команду
      }

Ну все, теперь просто везде, где нам нужно сделать что-то доступное только администратору n лвл, мы прописывает проверку if (Player[playerid] [pAdmin]>= n) (вместо n вставляем лвл админа. Ну для наглядности сделаю простую команду восстановить себе здоровье, доступную админам 3-5 лвл.
Код
if (strcmp("/heal", cmd, true) == 0)
{
      if (Player[playerid] [pAdmin]>= 3)
      {
          SetPlayerHealth(playerid, 100);
      }
      else
      {
          SendClientMessage(playerid, 0xFF0000FF, "У вас нет прав");
      }
      return 1;
}

И чтобы это работало, нам еще нужно добавить в конец мода:
Код
strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string [index]<= ' '))
    {
    index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string [index]> ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
}

by - 26_RUSSS


zm-jail.ru

Разработка сайта samp-pawno.ru


 
СообщениеВ этом статье я расскажу как сделать админ систему по уровеню/level . И так приступим
Создадим массив для хранения админки (впрочем можно использовать много для чего):
Код
new Player[MAX_PLAYERS][pInfo];

MAX_PLAYERS - ид игрока, к которому все это относится
pInfo - ну так скажем сама информация
Теперь создадим enum, если проще сказать, он показывает что у нас будет вместо pInfo:
Код
enum pInfo {
pAdmin, // ВНИМАНИЕ! ЗАПЯТАЯ - НЕ ОПЕЧАТКА
}

Сюда же мы может всунуть, например pJob (имя произвольное), которое может означать профессию или что то другое.
По сути сама система готова, теперь приведем ее в действие. Сделаем команду для ркон админов, чтобы они могли давать админки:
В
Код
public OnPlayerCommandText (срабатывает, когда игрок вводит команду)
добавляем:
Код
new cmd[128],idx,tmp[128];
// это нам нужно, чтобы мочь писать команды, в которых присутствует пробелы, после которых идут ID, тексты и т.д.
Код
cmd = strtok(cmdtext, idx);

команда на уровень/level администратора
Код
if (strcmp("/makeadmin", cmd, true) == ) // создаем команду
{
      if (!IsPlayerAdmin(playerid)) // узнаем, если игрок не ркон админ, playerid - id игрока, который ввел команду
      {
          SendClientMessage(playerid, 0xFF0000FF, "Вы не rcon администратор"); // отправляем игроку сообщение о том, что он не ркон админ, 0xFF0000FF - цвет
      }
      tmp = strtok(cmdtext, idx); // делаем пробел после самой команды
      if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF , "Используйте /makeadmin [ID игрока] [lvl]"); // если человек вводит /makeadmin без id и лвл, то отправляем сообщение
      new player = strval(tmp); // честно говоря, я не знаю, зачем это делать, но в виде tmp в сообщениях, например, использовать не дает <img rel="usm" src="http://forum-pawno.ru/smiles/Juokas.gif" border="0" align="absmiddle" alt=":D" />
      tmp = strtok(cmdtext, idx); // делаем 2 пробел   
      if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF , "Используйте /makeadmin [ID игрока] [lvl]");
      new adminl = strval(tmp);
      if(!IsPlayerConnected(player)) return SendClientMessage(playerid,Red,"Игрок не онлайн!"); // если игрок, которого мы ввели после команды не онлайн ...
      if(adminl > 5 || adminl < 0) return SendClientMessage(playerid,Red,"Нельзя больше 5 и меньше 0!"); // устанавливаем рамки уровней админки, в данном случае 5 уровней + 0лвл - игрок
      Player[player] [pAdmin]= adminl; // присваиваем информации об админ статусе игрока значение, которое ркон админ ввел ([lvl]), это наш массив, вместо pInfo мы вставляем одно из того, что прописано в enum
      new string[256]; // создадим массив для хранения сообщения игроку
      format(string, sizeof(string), "Вы были назначены администратором %d уровня! Поздравляем!",adminl); // для красоты уже, отправим игроку сообщение о том, что его назначили администратором, т.к. у нас присутствует  %d, сначала пропишем format
      SendClientMessage(player,0x00FF00FF,string);
      return 1; // завершаем команду
      }

Ну все, теперь просто везде, где нам нужно сделать что-то доступное только администратору n лвл, мы прописывает проверку if (Player[playerid] [pAdmin]>= n) (вместо n вставляем лвл админа. Ну для наглядности сделаю простую команду восстановить себе здоровье, доступную админам 3-5 лвл.
Код
if (strcmp("/heal", cmd, true) == 0)
{
      if (Player[playerid] [pAdmin]>= 3)
      {
          SetPlayerHealth(playerid, 100);
      }
      else
      {
          SendClientMessage(playerid, 0xFF0000FF, "У вас нет прав");
      }
      return 1;
}

И чтобы это работало, нам еще нужно добавить в конец мода:
Код
strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string [index]<= ' '))
    {
    index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string [index]> ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
}

by - 26_RUSSS

Автор - admin
Дата добавления - 28.08.2013 в 03:03:04
Natasha12letДата: Четверг, 09.10.2014, 09:55:54 | Сообщение # 2

Группа: Пользователи
Сообщений: 1
admin, вы не знайте  как сделать ремень безопасности чтобы он сам отстебувался в самп кода выходиш с машины кинь команду пж пж нужно очент
 
Сообщениеadmin, вы не знайте  как сделать ремень безопасности чтобы он сам отстебувался в самп кода выходиш с машины кинь команду пж пж нужно очент

Автор - Natasha12let
Дата добавления - 09.10.2014 в 09:55:54
Kirill_ValyavkinДата: Воскресенье, 28.06.2015, 01:49:11 | Сообщение # 3

Группа: Пользователи
Сообщений: 1
Ребят помогите
C:\Users\Àëåêñàíäð\Documents\GTA San Andreas User Files\Íîâàÿ ïàïêà\gamemodes\new.pwn(64) : error 029: invalid expression, assumed zero
C:\Users\Àëåêñàíäð\Documents\GTA San Andreas User Files\Íîâàÿ ïàïêà\gamemodes\new.pwn(64) : error 017: undefined symbol "cmd"
C:\Users\Àëåêñàíäð\Documents\GTA San Andreas User Files\Íîâàÿ ïàïêà\gamemodes\new.pwn(64) : error 029: invalid expression, assumed zero
C:\Users\Àëåêñàíäð\Documents\GTA San Andreas User Files\Íîâàÿ ïàïêà\gamemodes\new.pwn(64) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664              Copyright © 1997-2006, ITB CompuPhase

4 Errors.
 

ВОТ СТРОКА:

{if (strcmp("/heal",new cmd, true) == 0)
 
СообщениеРебят помогите
C:\Users\Àëåêñàíäð\Documents\GTA San Andreas User Files\Íîâàÿ ïàïêà\gamemodes\new.pwn(64) : error 029: invalid expression, assumed zero
C:\Users\Àëåêñàíäð\Documents\GTA San Andreas User Files\Íîâàÿ ïàïêà\gamemodes\new.pwn(64) : error 017: undefined symbol "cmd"
C:\Users\Àëåêñàíäð\Documents\GTA San Andreas User Files\Íîâàÿ ïàïêà\gamemodes\new.pwn(64) : error 029: invalid expression, assumed zero
C:\Users\Àëåêñàíäð\Documents\GTA San Andreas User Files\Íîâàÿ ïàïêà\gamemodes\new.pwn(64) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664              Copyright © 1997-2006, ITB CompuPhase

4 Errors.
 

ВОТ СТРОКА:

{if (strcmp("/heal",new cmd, true) == 0)

Автор - Kirill_Valyavkin
Дата добавления - 28.06.2015 в 01:49:11
adminДата: Воскресенье, 30.08.2015, 10:51:45 | Сообщение # 4

Группа: Администраторы
Сообщений: 3869
омг добавь
Код
new cmd[256];


zm-jail.ru

Разработка сайта samp-pawno.ru


 
Сообщениеомг добавь
Код
new cmd[256];

Автор - admin
Дата добавления - 30.08.2015 в 10:51:45
Форум » Pawno » Wiki-samp » pawno урок админ level/уровень
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
13:28:59
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2024

vkontakte :samp-pawno.ru: