23:02
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: AXE, Weddew  
Проблема с SetTimerEx на /gov
anonimniyДата: Понедельник, 19.03.2012, 20:31 | Сообщение # 1
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 190
Награды: 1
Город: St.Petersburg
Репутация: 42
Замечания: 0%
Статус:
Доброго времени суток. Сразу к делу.

Попытался поставить таймер на /gov, вот что сделал:

Code
forward GovTimer(playerid);


Code
new GovTime[MAX_PLAYERS]; // таймер /gov


Code
new GovTimer = 120000;


В OnPlayerConnect:

Code
GovTime[playerid] = 0;


Сама команда:

Code
    if(strcmp(cmd, "/government", true) == 0|| strcmp(cmd, "/gov", true) == 0)
  {
      if(IsPlayerConnected(playerid))
      {
    if(PlayerInfo[playerid][pMute] > 0)
    {
     SendClientMessage(playerid, COLOR_Cvet_8, "[Ошибка]{FFFFFF} Чат временно не доступен.");
     return 1;
    }
    if(GovTime[playerid] > 0)
             {
     format(string, sizeof(string), "Вы уже подавали объявление. Следующие сможете подать через %d секунд.", GovTimer/1000);
     SendClientMessage(playerid, COLOR_Cvet_8, string);
                 return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
     idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
     result[idx - offset] = cmdtext[idx];
     idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
     SendClientMessage(playerid, COLOR_GRAD2, "GTAMania: (/gov)ernment [text]");
     return 1;
    }
    if(PlayerInfo[playerid][pLeader]==1)
    {
     SendClientMessageToAll(COLOR_WHITE, "|___________ Государственные новости (Полиция) ___________|");
     format(string, sizeof(string), "%s[%d]: %s", sendername,playerid, result);
     SendClientMessageToAll(COLOR_DBLUE, string);
                 format(string,sizeof(string),"[GOV]%s: %s",sendername,result);
                 GovTime[playerid] += 1;
                 SetTimerEx("GovTimer", 120000, false, "i", playerid);
                 log("Chat",string);
    }
    else if(PlayerInfo[playerid][pLeader]==2)
    {
        SendClientMessageToAll(COLOR_WHITE, "|___________ Государственные новости (ФБР) ___________|");
     format(string, sizeof(string), "%s[%d]: %s", sendername, playerid,result);
     SendClientMessageToAll(COLOR_DBLUE, string);
                 format(string,sizeof(string),"[GOV]%s: %s",sendername,result);
                 GovTime[playerid] += 1;
                 SetTimerEx("GovTimer", 120000, false, "i", playerid);
                 log("Chat",string);
    }
    else if(PlayerInfo[playerid][pLeader]==3)
    {
        SendClientMessageToAll(COLOR_WHITE, "|___________ Государственные новости (Армия) ___________|");
     format(string, sizeof(string), "%s[%d]: %s", sendername,playerid,  result);
     SendClientMessageToAll(COLOR_DBLUE, string);
                 format(string,sizeof(string),"[GOV]%s: %s",sendername,result);
                 GovTime[playerid] += 1;
                 SetTimerEx("GovTimer", 120000, false, "i", playerid);
                 log("Chat",string);
    }
    else if(PlayerInfo[playerid][pLeader]==4)
    {
        SendClientMessageToAll(COLOR_WHITE, "|___________ Государственные новости (МЧС) ___________|");
     format(string, sizeof(string), "%s[%d]: %s", sendername,playerid, result);
     SendClientMessageToAll(COLOR_DBLUE, string);
                 format(string,sizeof(string),"[GOV]%s: %s",sendername,result);
     GovTime[playerid] += 1;
     SetTimerEx("GovTimer", 120000, false, "i", playerid);
                 log("Chat",string);
    }
      }
   return 1;
  }


Code
public GovTimer(playerid)
{
  if(IsPlayerConnected(playerid))
  {
      if(GovTime[playerid] > 0)
      {
    GovTime[playerid] = 0;
      }
  }
}

anonimniyДата: Понедельник, 19.03.2012, 20:32 | Сообщение # 2
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 190
Награды: 1
Город: St.Petersburg
Репутация: 42
Замечания: 0%
Статус:
Ошибки:

Code
C:\Users\Никита\Desktop\GTAMania\gamemodes\GTAMania.pwn(10833) : error 076: syntax error in the expression, or invalid function call
C:\Users\Никита\Desktop\GTAMania\gamemodes\GTAMania.pwn(32582) : error 021: symbol already defined: "GovTimer"
Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

2 Errors.

LatronДата: Понедельник, 19.03.2012, 21:23 | Сообщение # 3
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
anonimniy, Переменная GovTimer уже объявлена...


Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Сообщение отредактировал Latron - Понедельник, 19.03.2012, 21:26
anonimniyДата: Понедельник, 19.03.2012, 21:24 | Сообщение # 4
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 190
Награды: 1
Город: St.Petersburg
Репутация: 42
Замечания: 0%
Статус:
Latron, Там ведь разные переменные, new GovTime и new GovTimer...
LatronДата: Понедельник, 19.03.2012, 21:28 | Сообщение # 5
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Quote (anonimniy)
forward GovTimer(playerid);

Quote (anonimniy)
new GovTimer = 120000;

Добавлено (19.03.2012, 21:28)
---------------------------------------------
Измени название функции...


Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )


anonimniyДата: Понедельник, 19.03.2012, 21:33 | Сообщение # 6
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 190
Награды: 1
Город: St.Petersburg
Репутация: 42
Замечания: 0%
Статус:
Latron, Отлично. Спасибо, но вот следующий вопрос...Как сделать так что бы отображались конкретные секунды после которого можно выполнить действие?

К примеру, написал ты /gov, и пишешь ещё раз, пишет "Ошибка траляля до следующего объявления ждите 59 секунд" "58 секунд" и так далее.

LatronДата: Понедельник, 19.03.2012, 21:36 | Сообщение # 7
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Quote (anonimniy)
Latron, Отлично. Спасибо, но вот следующий вопрос...Как сделать так что бы отображались конкретные секунды после которого можно выполнить действие?

К примеру, написал ты /gov, и пишешь ещё раз, пишет "Ошибка траляля до следующего объявления ждите 59 секунд" "58 секунд" и так далее.

нууу сделать анти флуд...



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Сообщение отредактировал Latron - Понедельник, 19.03.2012, 21:36
anonimniyДата: Понедельник, 19.03.2012, 21:48 | Сообщение # 8
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 190
Награды: 1
Город: St.Petersburg
Репутация: 42
Замечания: 0%
Статус:
Latron, Не мог бы сказать каким образом это сделать?
LatronДата: Понедельник, 19.03.2012, 21:49 | Сообщение # 9
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
anonimniy, http://www.samp-rus.com/forum/17-12549-1


Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )


anonimniyДата: Понедельник, 19.03.2012, 23:37 | Сообщение # 10
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 190
Награды: 1
Город: St.Petersburg
Репутация: 42
Замечания: 0%
Статус:
Latron, А можно что нибудь по проще?
LatronДата: Понедельник, 19.03.2012, 23:42 | Сообщение # 11
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
anonimniy, ну введи ты в поиске"анти флуд"чё сложного wall


Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )


anonimniyДата: Вторник, 20.03.2012, 00:04 | Сообщение # 12
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 190
Награды: 1
Город: St.Petersburg
Репутация: 42
Замечания: 0%
Статус:
Latron, мне кажется ты не понимаешь меня...Мне нужно, когда к примеру, Таймер уже заработал, и если чувак пишет в это время команду, ему писалось сколько осталось до того как можно будет написать команду.
LatronДата: Вторник, 20.03.2012, 00:06 | Сообщение # 13
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Quote (anonimniy)
Latron, мне кажется ты не понимаешь меня...Мне нужно, когда к примеру, Таймер уже заработал, и если чувак пишет в это время команду, ему писалось сколько осталось до того как можно будет написать команду.

Это и есть анти флуд wall .



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )


anonimniyДата: Вторник, 20.03.2012, 00:08 | Сообщение # 14
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 190
Награды: 1
Город: St.Petersburg
Репутация: 42
Замечания: 0%
Статус:
Code
#include <a_samp>  

new IsMessageSent[MAX_PLAYERS];  
new interval = 2;  
forward UnMutedX(playerid);  

public OnFilterScriptInit()  
{  
   print("\n||||||||||||||||||||||");  
   print("|Anti-Flood protection||");  
   print("|Modded by XAOC|||||||||");  
   print("||||||||||||||||||||||\n");  
   return 1;  
}  

public OnPlayerConnect(playerid)  
{  
new conn[256];  
IsMessageSent[playerid] = 0;  
format(conn,sizeof(conn)," На сервере установлена анти-флуд защита, сообщения разрешено отправлять только раз в %d секунд",interval);  
SendClientMessage(playerid,0x33AA33AA,conn);  
return true;  
}  

public OnPlayerText(playerid, text[])  
{  
if(IsMessageSent[playerid] == 1)  
      {  
          SendClientMessage(playerid, 0x00ffffff, "Не флудь!");  
          return false;  
      }  
      else  
      {  
          IsMessageSent[playerid] = 1;  
          SetTimerEx("UnMutedX",interval*1000,0,"d",playerid);  
          return true;  
      }  
}  

public UnMutedX(playerid)  
{  
      IsMessageSent[playerid] = 0;  
      return true;  
}


Что в данном ФС именно отвечают за то что мне надо?

LatronДата: Вторник, 20.03.2012, 00:10 | Сообщение # 15
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
anonimniy, делай так где надо:
if(IsMessageSent[playerid] == 1)
{
SendClientMessage(playerid, 0x00ffffff, "Не флудь!");
return false;
}
else
{
IsMessageSent[playerid] = 1;
SetTimerEx("UnMutedX",interval*1000,0,"d",playerid);
return true;
}



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )


  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua