Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //==============================================================================
- //..................DutchBas' AFK and BRB system................................
- //==============================================================================
- #include <a_samp>
- #include <dutils>
- #include <dini>
- #include <dudb>
- #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
- #pragma unused strtok
- #pragma unused ret_memcpy
- new isafk[MAX_PLAYERS];
- new afktime[MAX_PLAYERS];
- new brbtime[MAX_PLAYERS];
- new aname[MAX_PLAYER_NAME];
- #define COLOR_SYSTEM 0xF5FF9FAA
- stock SystemMessage(playerid,msg[])
- {
- if ((IsPlayerConnected(playerid))&&(strlen(msg)>0)) {
- SendClientMessage(playerid,COLOR_SYSTEM,msg);
- }
- return 1;
- }
- forward playerafk(playerid);
- forward playerbrb(playerid);
- //===========================================================================
- public OnFilterScriptInit()
- {
- print("\n----------------------------------");
- print(" AFK and BRB - by DutchBas. (2009)");
- print("----------------------------------\n");
- return 1;
- }
- //===========================================================================
- public OnFilterScriptExit()
- {
- for(new i = 0; i < GetMaxPlayers(); i++)
- {
- if(IsPlayerConnected(i))
- {
- TogglePlayerControllable(i, 1);
- afktime[i] = 0;
- isafk[i] = 0;
- }
- }
- print("\n AFK / BRB System unloaded.");
- print(" All players AFK/BRB status have been reset.\n");
- return 1;
- }
- //==========================================================================
- public OnPlayerCommandText(playerid,cmdtext[]) {
- dcmd(afk, 3, cmdtext);
- dcmd(back, 4, cmdtext);
- dcmd(brb, 3, cmdtext);
- dcmd(afklist, 7, cmdtext);
- dcmd(resetafk, 8, cmdtext);
- return false;
- }
- dcmd_afk(playerid,params[])
- {
- #pragma unused params
- if(afktime[playerid] == 1)
- {
- SystemMessage(playerid, "You have recently been AFK, and cannot use /AFK for 2 minutes.");
- }
- if(afktime[playerid] == 0)
- {
- if(isafk[playerid] == 1)
- {
- SystemMessage(playerid, "You're already AFK.");
- }
- if(isafk[playerid] == 0)
- {
- new name[256];
- new afk[256];
- GetPlayerName(playerid,name, sizeof(name));
- format(afk, sizeof(afk), "~r~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~r~ %s ~w~ is now AFK.", name);
- GameTextForAll(afk,4000,3);
- TogglePlayerControllable(playerid,0);
- SetPlayerVirtualWorld(playerid, 5);
- isafk[playerid] = 1;
- afktime[playerid] = 1;
- SetTimerEx("playerafk", 1000*60*2, false, "b", playerid);
- GetPlayerName(playerid, aname, sizeof(aname));
- strins(aname,"[AFK]",0, MAX_PLAYER_NAME );
- SetPlayerName(playerid,aname);
- }
- }
- return true;
- }
- dcmd_back(playerid,params[])
- {
- #pragma unused params
- if(isafk[playerid] == 0)
- {
- SystemMessage(playerid, "You are not AFK or BRB.");
- }
- if(isafk[playerid] == 1)
- {
- new name[256];
- new back[256];
- GetPlayerName(playerid, aname, sizeof(aname));
- strdel(aname,0,5);
- SetPlayerName(playerid,aname);
- GetPlayerName(playerid,name, sizeof(name));
- format(back, sizeof(back), "~r~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~r~ %s ~w~ is now back.", name);
- GameTextForAll(back,4000,3);
- TogglePlayerControllable(playerid,1);
- SetPlayerVirtualWorld(playerid, 0);
- isafk[playerid] = 0;
- }
- return true;
- }
- dcmd_brb(playerid,params[])
- {
- #pragma unused params
- if(brbtime[playerid] == 1)
- {
- SystemMessage(playerid, "You have recently been BRB, and cannot use /BRB for 15 seconds.");
- }
- if(brbtime[playerid] == 0)
- {
- if(isafk[playerid] == 1)
- {
- SystemMessage(playerid, "You're already BRB.");
- }
- if(isafk[playerid] == 0)
- {
- new name[256];
- new brb[256];
- GetPlayerName(playerid,name, sizeof(name));
- format(brb, sizeof(brb), "~r~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~r~ %s ~w~ will BRB.", name);
- GameTextForAll(brb,4000,3);
- TogglePlayerControllable(playerid,0);
- isafk[playerid] = 1;
- brbtime[playerid] = 1;
- SetTimerEx("playerbrb", 15000, false, "d", playerid);
- GetPlayerName(playerid, aname, sizeof(aname));
- strins(aname,"[BRB]",0, MAX_PLAYER_NAME );
- SetPlayerName(playerid,aname);
- }
- }
- return true;
- }
- dcmd_afklist(playerid,params[])
- {
- #pragma unused params
- SystemMessage(playerid, "AFK Players:");
- for(new i = 0; i < GetMaxPlayers(); i++)
- {
- if(IsPlayerConnected(i))
- {
- if(isafk[i] == 1)
- {
- new name[256];
- new afklist[256];
- GetPlayerName(i,name, sizeof(name));
- format(afklist, sizeof(afklist), "%s", name);
- SystemMessage(playerid, afklist);
- }
- }
- }
- return true;
- }
- dcmd_resetafk(playerid,params[])
- {
- #pragma unused params
- if(IsPlayerAdmin(playerid))
- {
- for(new i = 0; i < GetMaxPlayers(); i++)
- {
- TogglePlayerControllable(i, 1);
- afktime[i] = 0;
- isafk[i] = 0;
- }
- }
- return true;
- }
- //============================================================================
- public OnPlayerText(playerid, text[])
- {
- if(isafk[playerid] == 1)
- {
- SystemMessage(playerid, "You can not use chat when you're AFK or BRB.");
- return 0;
- }
- return 1;
- }
- //=============================================================================
- public OnPlayerDisconnect(playerid) {
- afktime[playerid] = 0;
- isafk[playerid] = 0;
- return false;
- }
- //=============================================================================
- public playerafk(playerid)
- {
- afktime[playerid] = 0;
- }
- public playerbrb(playerid)
- {
- brbtime[playerid] = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment