///////////////////////////////// // // // // // AFK-BACK Script(TextDraw) // // Made By BlackBank3 // // // ///////////////////////////////// #include new Text:Message; new Afk[MAX_PLAYERS]; new Timer[MAX_PLAYERS]; new Float:Pos[MAX_PLAYERS][4]; new Name[24]; new string[256]; #define FILTERSCRIPT public OnFilterScriptInit() { Message = TextDrawCreate(1.000000,435.000000," "); TextDrawAlignment(Message,0); TextDrawBackgroundColor(Message,0x000000ff); TextDrawFont(Message,2); TextDrawLetterSize(Message,0.598999,1.300000); TextDrawSetOutline(Message,1); TextDrawSetProportional(Message,1); TextDrawSetShadow(Message,1); return 1; } public OnFilterScriptExit() { for(new i = 0; i < MAX_PLAYERS; i++) { KillTimer(Timer[i]); TextDrawHideForAll(Text:Message); TextDrawDestroy(Text:Message); } return 1; } public OnPlayerConnect(playerid) { Afk[playerid]=0; return 1; } public OnPlayerDisconnect(playerid) { Afk[playerid]=0; TextDrawHideForPlayer(playerid,Text:Message); KillTimer(Timer[playerid]); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { GetPlayerName(playerid, Name, 24); new Float:X,Float:Y,Float:Z; if (strcmp("/afk", cmdtext, true, 10) == 0) { if(Afk[playerid]==0){ Afk[playerid]=1; Timer[playerid] = SetTimer("SendMessage",100,0); GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]); GetPlayerFacingAngle(playerid,Pos[playerid][3]); GetPlayerPos(playerid,X,Y,Z); SetPlayerPos(playerid,X,Y,Z+10000000); SetPlayerVirtualWorld(playerid,10000000); TogglePlayerControllable(playerid,0); format(string, sizeof(string), "%s is away from the keyboard", Name); SendClientMessageToAll(0x33CCFFAA, string); }else{SendClientMessage(playerid,0xFF0000AA, "You are already Afk");} return 1; } if (strcmp("/back", cmdtext, true, 10) == 0) { if(Afk[playerid]==1){ Afk[playerid]=0; Timer[playerid] = SetTimer("SendMessage",100,0); SetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]); SetPlayerFacingAngle(playerid,Pos[playerid][3]); SetPlayerVirtualWorld(playerid,0); TogglePlayerControllable(playerid,1); format(string, sizeof(string), "%s is back", Name); SendClientMessageToAll(0x33CCFFAA, string); }else{SendClientMessage(playerid,0xFF0000AA, "You are already Back");} return 1; } if (strcmp("/afklist", cmdtext, true, 10) == 0) { SendClientMessage(playerid, 0xFFFF00AA, "Players AFK:"); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(Afk[i]==1) { GetPlayerName(i, Name, sizeof(Name)); format(string, 256, "Player: %s", Name); SendClientMessage(playerid, 0xFFFFFFAA, string); } } } return 1; } return 0; } forward SendMessage(); public SendMessage() { for(new i = 0; i <= MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { GetPlayerName(i, Name, 24); if(Afk[i]==1) { TextDrawHideForAll(Text:Message); format(string, sizeof(string), "~w~%s ~r~Is away from the keyboard",Name); TextDrawSetString(Message,string); TextDrawShowForAll(Text:Message); SetTimer("StopMessage",6000,0); } if(Afk[i]==0) { TextDrawHideForAll(Text:Message); format(string, sizeof(string), "~w~%s ~r~Is back",Name); TextDrawSetString(Message,string); TextDrawShowForAll(Text:Message); SetTimer("StopMessage",6000,0); } } } } forward StopMessage(); public StopMessage() { TextDrawHideForAll(Text:Message); }