Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Away script by BlackBank3(Joris Woltman)
- Please keep the credits(This two lines). :)
- */
- #include <a_samp>
- #include <zcmd>
- enum _aData {
- bool:_Away,
- bool:_AwayReason,
- _Reason[64]
- }
- new
- Text:AwayTextdraw,
- AwayTextTimer = -1,
- PlayerAwayData[MAX_PLAYERS][_aData];
- public OnFilterScriptInit()
- {
- AwayTextdraw = TextDrawCreate(323.000000, 430.000000, " ");
- TextDrawUseBox(AwayTextdraw, 1);
- TextDrawBoxColor(AwayTextdraw, 0x00000000);
- TextDrawTextSize(AwayTextdraw, 477.000000, 489.000000);
- TextDrawAlignment(AwayTextdraw, 2);
- TextDrawBackgroundColor(AwayTextdraw, 0x000000FF);
- TextDrawFont(AwayTextdraw, 1);
- TextDrawLetterSize(AwayTextdraw, 0.299999, 1.200000);
- TextDrawColor(AwayTextdraw, 0xFFFFFFFF);
- TextDrawSetOutline(AwayTextdraw, 1);
- TextDrawSetProportional(AwayTextdraw, 1);
- TextDrawSetShadow(AwayTextdraw, 1);
- return 1;
- }
- public OnFilterScriptExit()
- {
- TextDrawDestroy(AwayTextdraw);
- if(AwayTextTimer != -1) KillTimer(AwayTextTimer);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- PlayerAwayData[playerid][_Away] = false;
- PlayerAwayData[playerid][_AwayReason] = false;
- return 1;
- }
- CMD:away(playerid, params[])
- {
- if(PlayerAwayData[playerid][_Away] == true) return SendClientMessage(playerid, -1, "ERROR: You are already away.");
- new string[128];
- PlayerAwayData[playerid][_AwayReason] = (isnull(params)) ? false : true;
- if(PlayerAwayData[playerid][_AwayReason] != false) format(PlayerAwayData[playerid][_Reason], 64, "%s", params);
- PlayerAwayData[playerid][_Away] = true;
- if(PlayerAwayData[playerid][_AwayReason] == true) format(string, sizeof(string), "* AWAY: %s is now away. (Reason: %s)", PlayerName(playerid), PlayerAwayData[playerid][_Reason]);
- else format(string, sizeof(string), "* AWAY: %s is now away.", PlayerName(playerid));
- SendClientMessageToAll(0x33CCFFFF, string);
- format(string, sizeof(string), "~b~~h~%s ~w~is now away.", PlayerName(playerid));
- ShowAwayTextDraw(string);
- return 1;
- }
- CMD:back(playerid, params[])
- {
- if(PlayerAwayData[playerid][_Away] == false) return SendClientMessage(playerid, -1, "ERROR: You are not away.");
- new string[128];
- PlayerAwayData[playerid][_Away] = false;
- PlayerAwayData[playerid][_AwayReason] = false;
- format(string, sizeof(string), "* AWAY: Welcome back %s.", PlayerName(playerid));
- SendClientMessageToAll(0x33CCFFFF, string);
- format(string, sizeof(string), "~w~Welcome back ~b~~h~%s", PlayerName(playerid));
- ShowAwayTextDraw(string);
- return 1;
- }
- CMD:awaylist(playerid, params[])
- {
- new
- string[128],
- cd = 0;
- SendClientMessage(playerid, 0x33CCFFFF, "* PLAYERS AWAY:");
- for(new i = 0; i != MAX_PLAYERS; ++i)
- {
- if(PlayerAwayData[i][_Away] == false) continue;
- if(PlayerAwayData[i][_AwayReason] == true) format(string, sizeof(string), "- %s [%s]", PlayerName(i), PlayerAwayData[i][_Reason]);
- else format(string, sizeof(string), "- %s", PlayerName(i));
- SendClientMessage(playerid, -1, string);
- ++cd;
- }
- if(cd == 0) SendClientMessage(playerid, -1, "There are no players away.");
- return 1;
- }
- forward HideAwayTextDraw();
- public HideAwayTextDraw()
- {
- AwayTextTimer = -1;
- TextDrawHideForAll(AwayTextdraw);
- return 1;
- }
- stock ShowAwayTextDraw(string[])
- {
- if(AwayTextTimer != -1) {
- KillTimer(AwayTextTimer);
- TextDrawHideForAll(AwayTextdraw);
- }
- TextDrawSetString(AwayTextdraw, string);
- TextDrawShowForAll(AwayTextdraw);
- AwayTextTimer = SetTimer("HideAwayTextDraw", 3200, false);
- return 1;
- }
- stock PlayerName(playerid)
- {
- new Name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
- return Name;
- }
Add Comment
Please, Sign In to add comment