• Страница 1 из 1
  • 1
Модератор форума: [east_side]_trane, drifter-dron, valych, admin  
pawno урок fox бан
adminДата: Воскресенье, 14.08.2011, 00:07:11 | Сообщение # 1

Группа: Администраторы
Сообщений: 3869

Админ может забанить игрока на время!
Для начала скачаем include
Открываем ваш мод и делаем!
верху мода где у вас include вставляем:
Code
#include <foXban>

так же верху мода добавляем функцию:
Code
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

И так же верху мода где у вас все new вставляем:
Code
new pBanner[MAX_PLAYERS][MAX_PLAYER_NAME];

После этого находим public OnPlayerCommandText
и туда вставляем:
Code
    dcmd(tban,4,cmdtext);
     dcmd(tunban,6,cmdtext);

Примерно так должен выглядеть public:
Code
public OnPlayerCommandText(playerid,cmdtext[])
{
     dcmd(tban,4,cmdtext);
     dcmd(tunban,6,cmdtext);
     return 0;
}

И так же после
Code
public OnPlayerCommandText
добавляем:
Code
    dcmd_tban(playerid,params[])
     {
      new pID,pIdName[MAX_PLAYER_NAME],pName[MAX_PLAYER_NAME],banTime,reason[64],string[128];
      if(!IsPlayerAdmin(playerid)) { return 1; }
      if(sscanf(params,"uds",pID,banTime,reason)) { return SendClientMessage(playerid,0xADC7E7FF,"Использование: /tban [Ид игрока] [минуты] [причина]"); }
      if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,0xADC7E7FF,"неверный id игрока!"); }
      if(banTime < 1) { return SendClientMessage(playerid,0xADC7E7FF,"Минимум: 1 минута"); }
      GetPlayerName(pID,pIdName,sizeof(pIdName));
      GetPlayerName(playerid,pName,sizeof(pName));
      format(string,sizeof(string),"[TIMEBAN] Админ %s забанил %s на %d минут. Причина: %s",pName,pIdName,banTime,reason);
      SendClientMessageToAll(0xADC7E7FF,string);
      printf("Админ: %s(%i) - Бан игрока: %s(%i) - Забанил Причина: %s",pName,playerid,pIdName,pID,reason);
      pBanner[pID] = pName;
      TBan(pID,banTime);
      return 1;
     }
     dcmd_tunban(playerid,params[])
     {
      new pName[MAX_PLAYER_NAME],pIdName[MAX_PLAYER_NAME];
      if(!IsPlayerAdmin(playerid)) { return 1; }
      if(sscanf(params,"s",pIdName)) { return SendClientMessage(playerid,0xADC7E7FF,"Использование: /tunban [Имя игрока]"); }
      GetPlayerName(playerid,pName,sizeof(pName));
      if(BanFileExist(pIdName))
      {
       TUnban(pIdName);
       printf("АДмин: %s(%i) - Разбанил: %s",pName,playerid,pIdName);
       return 1;
      } else { return SendClientMessage(playerid,0xADC7E7FF,"Ошибка: Неверное имя(id игрока)"); }
     }

И добавим функцию:
Code
    stock sscanf(string[], format[], {Float,_}:...) {
      #if defined isnull
       if (isnull(string))
      #else
       if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
      #endif
       { return format[0]; }
      #pragma tabsize 4
      new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (string[stringPos] && string[stringPos] <= ' ') { stringPos++; }
      while (paramPos < paramCount && string[stringPos]) {
       switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': {
         new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; }
         do { stringPos++; if ('0' <= ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } }
         while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': {
         new num = 0, ch = string[stringPos]; do { stringPos++; switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } }
         while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { setarg(paramPos, 0, _:floatstr(string[stringPos])); } case 'p': { delim = format[formatPos++]; continue; } case '\'': {
         new end = formatPos - 1, ch; while ((ch = format[++end]) && ch != '\'') {} if (!ch) { return -1; }
         format[end] = '\0'; if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1) {
          if (format[end + 1]) { return -1; }
          return 0; }
         format[end] = '\''; stringPos = ch + (end - formatPos); formatPos = end + 1; } case 'u': {
         new end = stringPos - 1, id = 0, bool:num = true, ch; while ((ch = string[++end]) && ch != delim) { if (num) { if ('0' <= ch <= '9') { id = (id * 10) + (ch - '0'); } else { num = false; } } }
         if (num && IsPlayerConnected(id)) { setarg(paramPos, 0, id); } else {
          #if !defined foreach
           #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
           #define __SSCANF_FOREACH__
          #endif
          string[end] = '\0'; num = false; new name[MAX_PLAYER_NAME]; id = end - stringPos; foreach(Player, playerid) { GetPlayerName(playerid, name, sizeof (name)); if (!strcmp(name, string[stringPos], true, id)) { setarg(paramPos, 0, playerid); num = true; break; } }
          if (!num) { setarg(paramPos, 0, INVALID_PLAYER_ID); }
          string[end] = ch;
          #if defined __SSCANF_FOREACH__
           #undef foreach
           #undef __SSCANF_FOREACH__
          #endif
         } stringPos = end; } case 's', 'z': {
         new i = 0, ch; if (format[formatPos]) {
          while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); }
          if (!i) { return -1; } }
         else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } }
         stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } }
       while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
       { stringPos++; }
       while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; }
       paramPos++; }
      do { if ((delim = format[formatPos++]) > ' ') { if (delim == '\'') { while ((delim = format[formatPos++]) && delim != '\'') {} } else if (delim != 'z') { return delim; } } }
      while (delim > ' '); return 0; }

Если есть это функция можете не добавлять :)
урок by - 26_RUSSS


zm-jail.ru

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




Сообщение отредактировал [east_side]_trane - Понедельник, 17.10.2011, 15:57:53
 
Сообщение
Админ может забанить игрока на время!
Для начала скачаем include
Открываем ваш мод и делаем!
верху мода где у вас include вставляем:
Code
#include <foXban>

так же верху мода добавляем функцию:
Code
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

И так же верху мода где у вас все new вставляем:
Code
new pBanner[MAX_PLAYERS][MAX_PLAYER_NAME];

После этого находим public OnPlayerCommandText
и туда вставляем:
Code
    dcmd(tban,4,cmdtext);
     dcmd(tunban,6,cmdtext);

Примерно так должен выглядеть public:
Code
public OnPlayerCommandText(playerid,cmdtext[])
{
     dcmd(tban,4,cmdtext);
     dcmd(tunban,6,cmdtext);
     return 0;
}

И так же после
Code
public OnPlayerCommandText
добавляем:
Code
    dcmd_tban(playerid,params[])
     {
      new pID,pIdName[MAX_PLAYER_NAME],pName[MAX_PLAYER_NAME],banTime,reason[64],string[128];
      if(!IsPlayerAdmin(playerid)) { return 1; }
      if(sscanf(params,"uds",pID,banTime,reason)) { return SendClientMessage(playerid,0xADC7E7FF,"Использование: /tban [Ид игрока] [минуты] [причина]"); }
      if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,0xADC7E7FF,"неверный id игрока!"); }
      if(banTime < 1) { return SendClientMessage(playerid,0xADC7E7FF,"Минимум: 1 минута"); }
      GetPlayerName(pID,pIdName,sizeof(pIdName));
      GetPlayerName(playerid,pName,sizeof(pName));
      format(string,sizeof(string),"[TIMEBAN] Админ %s забанил %s на %d минут. Причина: %s",pName,pIdName,banTime,reason);
      SendClientMessageToAll(0xADC7E7FF,string);
      printf("Админ: %s(%i) - Бан игрока: %s(%i) - Забанил Причина: %s",pName,playerid,pIdName,pID,reason);
      pBanner[pID] = pName;
      TBan(pID,banTime);
      return 1;
     }
     dcmd_tunban(playerid,params[])
     {
      new pName[MAX_PLAYER_NAME],pIdName[MAX_PLAYER_NAME];
      if(!IsPlayerAdmin(playerid)) { return 1; }
      if(sscanf(params,"s",pIdName)) { return SendClientMessage(playerid,0xADC7E7FF,"Использование: /tunban [Имя игрока]"); }
      GetPlayerName(playerid,pName,sizeof(pName));
      if(BanFileExist(pIdName))
      {
       TUnban(pIdName);
       printf("АДмин: %s(%i) - Разбанил: %s",pName,playerid,pIdName);
       return 1;
      } else { return SendClientMessage(playerid,0xADC7E7FF,"Ошибка: Неверное имя(id игрока)"); }
     }

И добавим функцию:
Code
    stock sscanf(string[], format[], {Float,_}:...) {
      #if defined isnull
       if (isnull(string))
      #else
       if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
      #endif
       { return format[0]; }
      #pragma tabsize 4
      new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (string[stringPos] && string[stringPos] <= ' ') { stringPos++; }
      while (paramPos < paramCount && string[stringPos]) {
       switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': {
         new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; }
         do { stringPos++; if ('0' <= ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } }
         while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': {
         new num = 0, ch = string[stringPos]; do { stringPos++; switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } }
         while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { setarg(paramPos, 0, _:floatstr(string[stringPos])); } case 'p': { delim = format[formatPos++]; continue; } case '\'': {
         new end = formatPos - 1, ch; while ((ch = format[++end]) && ch != '\'') {} if (!ch) { return -1; }
         format[end] = '\0'; if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1) {
          if (format[end + 1]) { return -1; }
          return 0; }
         format[end] = '\''; stringPos = ch + (end - formatPos); formatPos = end + 1; } case 'u': {
         new end = stringPos - 1, id = 0, bool:num = true, ch; while ((ch = string[++end]) && ch != delim) { if (num) { if ('0' <= ch <= '9') { id = (id * 10) + (ch - '0'); } else { num = false; } } }
         if (num && IsPlayerConnected(id)) { setarg(paramPos, 0, id); } else {
          #if !defined foreach
           #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
           #define __SSCANF_FOREACH__
          #endif
          string[end] = '\0'; num = false; new name[MAX_PLAYER_NAME]; id = end - stringPos; foreach(Player, playerid) { GetPlayerName(playerid, name, sizeof (name)); if (!strcmp(name, string[stringPos], true, id)) { setarg(paramPos, 0, playerid); num = true; break; } }
          if (!num) { setarg(paramPos, 0, INVALID_PLAYER_ID); }
          string[end] = ch;
          #if defined __SSCANF_FOREACH__
           #undef foreach
           #undef __SSCANF_FOREACH__
          #endif
         } stringPos = end; } case 's', 'z': {
         new i = 0, ch; if (format[formatPos]) {
          while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); }
          if (!i) { return -1; } }
         else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } }
         stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } }
       while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
       { stringPos++; }
       while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; }
       paramPos++; }
      do { if ((delim = format[formatPos++]) > ' ') { if (delim == '\'') { while ((delim = format[formatPos++]) && delim != '\'') {} } else if (delim != 'z') { return delim; } } }
      while (delim > ' '); return 0; }

Если есть это функция можете не добавлять :)
урок by - 26_RUSSS

Автор - admin
Дата добавления - 14.08.2011 в 00:07:11
Tema_ForceДата: Четверг, 26.09.2013, 11:34:17 | Сообщение # 2

Группа: Пользователи
Сообщений: 2
Куда пихать функцию то?

А так все понятно
 
СообщениеКуда пихать функцию то?

А так все понятно

Автор - Tema_Force
Дата добавления - 26.09.2013 в 11:34:17
  • Страница 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)

Вверх
07:12:14
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2025

vkontakte :samp-pawno.ru: