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

 



 
        
GTA IV Mod Installer (5)
jasper2 23.09.2017 02:50
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы 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
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
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 11
Модератор форума: Alcoholik 
Форум SAMP о мультиплеерах для GTA. » Популярные моды » The Godfather » AFK system. (Система АФК.)
AFK system.
Michael_StarДата: Среда, 29.02.2012, 22:28 | Сообщение # 1
Освоившийся
Группа: I'm V.I.P.
Сообщений: 116
Награды: 1
Город: Киев
Репутация: -22
Замечания: 0%
Статус:
Добрый день/вечер. Вот нашел систему АФК, но она была в скрипте и новичкам было бы сложно ее от туда вырезать.

Описание
- Скрипт предназначенный для обнаружения кто из игроков в афк.
- Во время афк твой ник переименовывается в AFK_NickName.
- Так же после 250 секунд в афк тебя кикает с сервера.
- Над ником появляется надпись с временем афк.

Вот что у меня получилось.
В самое начало мода:
Code
#define AFKSeconds 500
#define COLOR_YELLOW 0xFFFF00AA

enum afker
{
pNameEx[MAX_PLAYER_NAME],
TickEx,
ChekEx,
VarEx,
bool:pSpawnEx,
bool:AFKEx,
}

new PlayerEx[MAX_PLAYERS][afker];
new GG,TT;


В public OnGameModeInit():
Code
GG = SetTimer("AFKProcessor", 1000,1);
TT = SetTimer("CountEx", 5000,1);


В public OnGameModeExit():
Code
{
KillTimer(GG);
KillTimer(TT);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && PlayerEx[i][AFKEx] == true)
{
new str[MAX_PLAYER_NAME];
format(str, sizeof (str), "%s", PlayerEx[i][pNameEx]);
SetPlayerName(i,str);
}
}
return 1;
}


В public OnPlayerConnect(playerid):
Code
{
          new str[MAX_PLAYER_NAME];
          format(str, sizeof (str), "%s", GetPlayerNameEx(playerid));
          new str2[30];
          format(str2, sizeof (str2), "AFK_%s", GetPlayerNameEx(playerid));
          new str3[5];
          format(str3, sizeof (str3), "%s", GetPlayerNameEx(playerid));
          PlayerEx[playerid][pNameEx] = str;
          PlayerEx[playerid][pSpawnEx] = false;
          PlayerEx[playerid][AFKEx] = false;
          if(strfind(str3, "AFK_", true) != -1)
          {
          Kick(playerid);
          }
          for(new i = 0; i < MAX_PLAYERS; i++)
          {
          if(IsPlayerConnected(i) && i != playerid)
          {
          new find[30];
          format(find, sizeof (find), "AFK_%s", GetPlayerNameEx(i));
          if(strfind(find, str2, true) != -1)
          {
          Kick(playerid);
          }
          }
          }
          return 1;
}


В public OnPlayerDeath(playerid,killerid, reason): (Если нет такого паблика - то создаем)
Code
{
          PlayerEx[playerid][pSpawnEx] = false;
       return 1;
}


Создаем еще 2 паблика:
Code
forward CountEx();
public CountEx()
{
for(new x = 0; x < MAX_PLAYERS; x++)
{
       if(IsPlayerConnected(x))
        {
        if(PlayerEx[x][ChekEx] == PlayerEx[x][TickEx])
        {
        if(PlayerEx[x][pSpawnEx] == true)
        {
        PlayerEx[x][AFKEx] = true;
        }
        }
        PlayerEx[x][ChekEx] = PlayerEx[x][TickEx];
        }
}
return 1;
}

forward AFKProcessor();
public AFKProcessor()
{
for(new x = 0; x < MAX_PLAYERS; x++)
{
       if(IsPlayerConnected(x))
        {
          if(PlayerEx[x][ChekEx] < PlayerEx[x][TickEx])
          {
          if(PlayerEx[x][AFKEx] == true)
          {
          new str[MAX_PLAYER_NAME];
          format(str, sizeof (str), "%s", PlayerEx[x][pNameEx]);
          SetPlayerName(x,str);
          PlayerEx[x][VarEx] = 0;
          PlayerEx[x][AFKEx] = false;
          }
          }
          if(PlayerEx[x][AFKEx] == true)
          {
       PlayerEx[x][VarEx]++;
          new str[MAX_PLAYER_NAME];
          format(str, sizeof (str), "AFK_%s", PlayerEx[x][pNameEx]);
          SetPlayerName(x,str);
          }
          if(PlayerEx[x][VarEx] > AFKSeconds)
          {
          new string[255];
          format(string,sizeof(string),"[AFK]: Èãðîê %s êèêíóò ñ ñåðâåðà çà äîëãîå ïðåáûâàíèå â AFK.", GetPlayerNameEx(x));
          SendClientMessageToAll(COLOR_YELLOW,string);
          Kick(x);
          PlayerEx[x][VarEx] = 0;
          }
          if(PlayerEx[x][VarEx] > 10)
          {
          new stringF[20];
          format(stringF,sizeof(stringF),"ESC [%s]",Convert(PlayerEx[x][VarEx]));
          SetPlayerChatBubble(x, stringF, 0xFFFFFF00, 70.0, 1200);
          }
        }
}
return 1;
}


В public OnPlayerSpawn(playerid):
Code
{
          PlayerEx[playerid][pSpawnEx] = true;
          return 1;
}


В public OnPlayerUpdate(playerid):
Code
{
       if(IsPlayerConnected(playerid))PlayerEx[playerid][TickEx]++;
       return 1;
}


В public OnPlayerDisconnect(playerid, reason):
Code
{
if(PlayerEx[playerid][AFKEx] == true)
{
new str[MAX_PLAYER_NAME];
format(str, sizeof (str), "%s", PlayerEx[playerid][pNameEx]);
SetPlayerName(playerid,str);
}
return 1;
}


И в самый конец мода:
Code
GetPlayerNameEx(playerid)
{
       new pname[MAX_PLAYER_NAME];
       GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
       return pname;
}

Convert(number)
{
       new hours = 0, mins = 0, secs = 0, string[100];
       hours = floatround(number / 3600);
       mins = floatround((number / 60) - (hours * 60));
       secs = floatround(number - ((hours * 3600) + (mins * 60)));
       if(hours > 0)
       {
       format(string, 100, "%d:%02dm:%02ds", hours, mins, secs);
       }
       else
       {
       format(string, 100, "%d:%02d", mins, secs);
       }
       return string;
}


Автора не знаю.
Если будут вопросы - обращайтесь.



RoACh: Удалено, в след. раз будет бан, уважай других участников

Сообщение отредактировал Michael_Star - Среда, 29.02.2012, 22:36
LatronДата: Среда, 29.02.2012, 23:34 | Сообщение # 2
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Очередное кривокодное,унылое дерьмо sick .


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

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




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин
DrevenДата: Четверг, 01.03.2012, 01:25 | Сообщение # 3
Гуру
Группа: Продвинутые
Сообщений: 1094
Награды: 205
Город: od.ua
Репутация: 1099
Замечания: 0%
Статус:
Это даже может работать 0_0, два таймера зачем?


www.samp-rpg.com
MarkeloFFДата: Четверг, 01.03.2012, 13:48 | Сообщение # 4
Советчик
Группа: I'm V.I.P.
Сообщений: 1032
Награды: 14
Город: Калининград
Репутация: 191
Замечания: 80%
Статус:
Quote (Dreven)
Это даже может работать 0_0, два таймера зачем?

Michael_StarДата: Четверг, 01.03.2012, 20:07 | Сообщение # 5
Освоившийся
Группа: I'm V.I.P.
Сообщений: 116
Награды: 1
Город: Киев
Репутация: -22
Замечания: 0%
Статус:
Не я делал!!!
Просто замечал что были вопросы "как его вырезать" вот и все..



RoACh: Удалено, в след. раз будет бан, уважай других участников
LatronДата: Четверг, 01.03.2012, 21:25 | Сообщение # 6
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Quote (Michael_Star)
Не я делал!!!

Это Вас не оправдывает,зачем вообще выкладывать,ничего сам не понимая и не зная...



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

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




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин
KillForFunДата: Суббота, 03.03.2012, 12:43 | Сообщение # 7
Освоившийся
Группа: Продвинутые
Сообщений: 143
Награды: 3
Город: Cызрань
Репутация: 26
Замечания: 0%
Статус:
Latron, поддержу каждый может вырезать то что ему нужно а для этого есть тебя модерницазии gf а это кривость поставил чуть мод не убил стандартного гф wall


|______Мои работы______|
Хотдоги на диалогах
|______________________|
Modern State[RP] IP Addres 88.198.67.14:7557
Cайт http:\\rp-ms.ru


Сообщение отредактировал KillForFun - Суббота, 03.03.2012, 12:43
Форум SAMP о мультиплеерах для GTA. » Популярные моды » The Godfather » AFK system. (Система АФК.)
Страница 1 из 11
Поиск:





 


 


 
Хостинг от uCoz SAMP-RUS.COM