Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /***********************************************************************************************************************************
- ____________________________________________________________________________________________________________________________________
- L-AFK System by Lordz™.
- Copyright (c) 2012, L-AFK
- ____________________________________________________________________________________________________________________________________
- ************************************************************************************************************************************
- This is an Advance AFK System made by me(Lordz™).
- This AFK System has timers, textdraws, teleports, saving coords, 3dTextLabels and Timer Kicklogs.
- Hope you guys will like the script. */
- //==============================================================================
- // Includes
- //==============================================================================
- #include <a_samp>
- #include <zcmd>
- //==============================================================================
- // Defines
- //==============================================================================
- #define green 0xFF0000 //Color green.
- #define red 0xFF0000FF //Color red.
- #define orange 0xFF9900AA // Color orange.
- #define TIMEFORMAT(%0,%1,%2) (((%0)*3600+(%1)*60+(%2))*1000) //Time format, dont touch it if you are newbie.
- #define AFK_MINUTES 15 //Minutes, a player can stay in AFK. Default is 15.
- #define AFK_SECONDS 0 //Seconds along minutes and hours, a player can stay in AFK.
- #define AFK_HOUR 0 //Hours along minutes and seconds, a player can stay in AFK.
- #define Disable_AFKCHAT == true //Change it from true to false if you don't want AFK users to be restricted in Chatting.
- #define sname "SERVER" //Change the SERVER to your hostname but it must be typed between the quotes(").
- //==============================================================================
- // Variables
- //==============================================================================
- new File:kicklog;
- new AFK[MAX_PLAYERS];
- new Text3D: tAFK[MAX_PLAYERS];
- new AFKcount;
- //==============================================================================
- // TextDraws
- //==============================================================================
- new Text:Textdraw0;
- new Text:kick;
- new Text:Textdraw1;
- new Text:Textdraw3;
- new Text:Textdraw4;
- new Text:Textdraw5;
- public OnFilterScriptInit()
- {
- Textdraw0 = TextDrawCreate(251.000000, 30.000000, " ");
- TextDrawBackgroundColor(Textdraw0, 255);
- TextDrawFont(Textdraw0, 1);
- TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
- TextDrawColor(Textdraw0, -1);
- TextDrawSetOutline(Textdraw0, 0);
- TextDrawSetProportional(Textdraw0, 1);
- TextDrawSetShadow(Textdraw0, 1);
- kick = TextDrawCreate(199.000000, 141.000000, "You are kicked from the server!");
- TextDrawBackgroundColor(kick, 255);
- TextDrawFont(kick, 1);
- TextDrawLetterSize(kick, 0.500000, 1.899999);
- TextDrawColor(kick, -16776961);
- TextDrawSetOutline(kick, 1);
- TextDrawSetProportional(kick, 1);
- Textdraw1 = TextDrawCreate(228.000000, 281.000000, "EXCEEDED 15 MINUTES!");
- TextDrawBackgroundColor(Textdraw1, 255);
- TextDrawFont(Textdraw1, 2);
- TextDrawLetterSize(Textdraw1, 0.500000, 2.799999);
- TextDrawColor(Textdraw1, 65535);
- TextDrawSetOutline(Textdraw1, 0);
- TextDrawSetProportional(Textdraw1, 1);
- TextDrawSetShadow(Textdraw1, 3);
- Textdraw3 = TextDrawCreate(208.000000, 170.000000, "YOU ARE NOW IN AFK MODE");
- TextDrawBackgroundColor(Textdraw3, -16776961);
- TextDrawFont(Textdraw3, 2);
- TextDrawLetterSize(Textdraw3, 0.430000, 2.499999);
- TextDrawColor(Textdraw3, 255);
- TextDrawSetOutline(Textdraw3, 1);
- TextDrawSetProportional(Textdraw3, 1);
- Textdraw4 = TextDrawCreate(344.000000, 147.000000, "AFK");
- TextDrawBackgroundColor(Textdraw4, -65281);
- TextDrawFont(Textdraw4, 3);
- TextDrawLetterSize(Textdraw4, 0.500000, 1.799999);
- TextDrawColor(Textdraw4, -16776961);
- TextDrawSetOutline(Textdraw4, 1);
- TextDrawSetProportional(Textdraw4, 1);
- Textdraw5 = TextDrawCreate(189.000000, 311.000000, "BE BACK WITHIN 15 MINUTES!");
- TextDrawBackgroundColor(Textdraw5, 16777215);
- TextDrawFont(Textdraw5, 2);
- TextDrawLetterSize(Textdraw5, 0.500000, 3.000000);
- TextDrawColor(Textdraw5, 65535);
- TextDrawSetOutline(Textdraw5, 1);
- TextDrawSetProportional(Textdraw5, 1);
- AFKcount = 0;
- print("\n--------------------------------------");
- print(" L-AFK System v1.0 By Lordz™ Loaded!");
- print("--------------------------------------\n");
- return 1;
- }
- //==============================================================================
- // Script
- //==============================================================================
- new Float:xpos,Float:ypos,Float:zpos;
- new ainterior;
- new Float:hp[MAX_PLAYERS];
- new Float:armour[MAX_PLAYERS];
- CMD:afk(playerid,params[])
- {
- if(AFK[playerid] == 1)
- {
- return SendClientMessage(playerid, red, "You are already in AFK. Use /back");
- }
- new Lname[MAX_PLAYER_NAME];
- new string[128];
- TextDrawShowForPlayer(playerid, Textdraw3);
- TextDrawShowForPlayer(playerid, Textdraw5);
- GetPlayerName(playerid,Lname,sizeof(Lname));
- GetPlayerPos(playerid,xpos,ypos,zpos);
- ainterior = GetPlayerInterior(playerid);
- GetPlayerHealth(playerid,hp[playerid]);
- GetPlayerArmour(playerid,armour[playerid]);
- SetPlayerHealth(playerid,100000);
- SetPlayerArmour(playerid,0);
- SetPlayerInterior(playerid,3);
- SetPlayerPos(playerid,-2668.868408,1410.360107,906.460937);
- TogglePlayerControllable(playerid,0);
- GameTextForPlayer(playerid,"~r~ AFK ] MODE",3000,3);
- tAFK[playerid] = Create3DTextLabel("AFK-MODE", 0xFF0000FF, 0.0, 0.0, 2.0, 40, 0, 0);
- Attach3DTextLabelToPlayer(tAFK[playerid],playerid, 0.0, 0.0, 0.4);
- PlayerPlaySound(playerid,1185,2944.7271,-729.7914,1.9063);
- ApplyAnimation(playerid,"DANCING","dance_loop", 4.1,1,1,1,1,1);
- format(string, sizeof(string), "%s is now Away From Keyboard {FF0000}(AFK)", Lname);
- SendClientMessageToAll(green,string);
- AFK[playerid]=1;
- SetTimerEx("Kicktimer", TIMEFORMAT(AFK_HOUR, AFK_MINUTES, AFK_SECONDS),false,"d",playerid);
- AFKcount++;
- return 1;
- }
- CMD:back(playerid,params[])
- {
- if(AFK[playerid] == 0)
- {
- SendClientMessage(playerid, red, "You are not in AFK to use this command.");
- }
- else
- {
- SpawnPlayer(playerid);
- new string[192];
- new Bname[MAX_PLAYER_NAME];
- GetPlayerName(playerid,Bname,sizeof(Bname));
- SetPlayerPos(playerid,xpos,ypos,zpos);
- SetPlayerInterior(playerid,ainterior);
- SetPlayerHealth(playerid,hp[playerid]);
- SetPlayerArmour(playerid,armour[playerid]);
- PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
- Delete3DTextLabel(tAFK[playerid]);
- format(string, sizeof(string), "%s is now back from {FF0000} AFK", Bname);
- SendClientMessageToAll(green,string);
- AFK[playerid]=0;
- TextDrawHideForPlayer(playerid, Textdraw3);
- TextDrawHideForPlayer(playerid, Textdraw4);
- TextDrawHideForPlayer(playerid, Textdraw5);
- new str1[128];
- format(str1, sizeof(str1),"Welcome Back To %s", sname);
- SendClientMessage(playerid, orange, str1);
- AFKcount--;
- }
- return 1;
- }
- CMD:afklist(playerid,params[])
- {
- new string[128];
- new Lsname[MAX_PLAYER_NAME];
- new cstring[128];
- SendClientMessage(playerid, orange, "______________________________________");
- SendClientMessage(playerid, orange, "");
- SendClientMessage(playerid, green, " Players in AFK MODE");
- SendClientMessage(playerid, orange, "______________________________________");
- format(cstring,sizeof(cstring),"There are currently %d player(s) in AFK mode.", AFKcount);
- SendClientMessage(playerid, orange, cstring);
- for(new i = 0; i< MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(AFK[i] == 1)
- {
- GetPlayerName(i,Lsname,sizeof(Lsname));
- format(string,sizeof(string),"%s (ID:%d) is Away From Keyboard {FF0000}(AFK)\r\n", Lsname, i);
- SendClientMessage(playerid, orange, string);
- }
- }
- }
- return 1;
- }
- #if defined Disable_AFKCHAT == true
- public OnPlayerText(playerid,text[])
- {
- if(AFK[playerid] == 1) return SendClientMessage(playerid, red, "You cannot talk while you are in AFK-MODE."), 0;
- return 1;
- }
- #endif
- forward Kicktimer(playerid);
- public Kicktimer(playerid)
- {
- if(AFK[playerid] == 1)
- {
- TextDrawHideForPlayer(playerid, Textdraw3);
- TextDrawHideForPlayer(playerid, Textdraw4);
- TextDrawHideForPlayer(playerid, Textdraw5);
- new string[192];
- new Lstring[192];
- new ip[16];
- new Kname[MAX_PLAYER_NAME];
- kicklog = fopen("LAFK_Kicklogs.txt", io_append);
- GetPlayerName(playerid,Kname,sizeof(Kname));
- format(string, sizeof(string), "%s(ID:%d) has been kicked from the server(Reason:Exceeded 15 minutes in AFK)", Kname, playerid);
- SendClientMessageToAll(red,string);
- GetPlayerIp(playerid, ip, sizeof(ip));
- format(Lstring, sizeof(Lstring), "%s (IP:%i) has been kicked from the server(Reason:Exceeded 15 minutes in AFK)\r\n", Kname, ip);
- fwrite(kicklog,Lstring);
- fclose(kicklog);
- TextDrawShowForPlayer(playerid,kick);
- TextDrawShowForPlayer(playerid,Textdraw1);
- Kick(playerid);
- }
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- TextDrawHideForPlayer(playerid,kick);
- TextDrawHideForPlayer(playerid,Textdraw1);
- TextDrawHideForPlayer(playerid,Textdraw3);
- TextDrawHideForPlayer(playerid,Textdraw4);
- TextDrawHideForPlayer(playerid,Textdraw5);
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- TextDrawHideForPlayer(playerid,kick);
- TextDrawHideForPlayer(playerid,Textdraw1);
- TextDrawHideForPlayer(playerid,Textdraw3);
- TextDrawHideForPlayer(playerid,Textdraw4);
- TextDrawHideForPlayer(playerid,Textdraw5);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- TextDrawHideForPlayer(playerid,kick);
- TextDrawHideForPlayer(playerid,Textdraw1);
- TextDrawHideForPlayer(playerid,Textdraw3);
- TextDrawHideForPlayer(playerid,Textdraw4);
- TextDrawHideForPlayer(playerid,Textdraw5);
- AFK[playerid] = 0;
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
- {
- TextDrawHideForPlayer(playerid,kick);
- TextDrawHideForPlayer(playerid,Textdraw1);
- TextDrawHideForPlayer(playerid,Textdraw3);
- TextDrawHideForPlayer(playerid,Textdraw4);
- TextDrawHideForPlayer(playerid,Textdraw5);
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- AFK[playerid] = 0;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement