Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <DOF2>
- #define TagFile(%0) File[%0]
- #define GetName(%0) pName[%0]
- #define Red 0xFF0000AA
- #define Yellow 0xFFFF00AA
- new File[MAX_PLAYERS][64];
- new pName[MAX_PLAYERS][MAX_PLAYER_NAME + 2];
- new g_Str_g[256];
- #define FILTERSCRIPT
- public OnFilterScriptInit()
- {
- for(new i, j = GetMaxPlayers(); i < j; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i);
- return 1;
- }
- public OnFilterScriptExit()
- {
- for(new i, j = GetMaxPlayers(); i < j; i++) if(IsPlayerConnected(i)) OnPlayerDisconnect(i, 200);
- DOF2_Exit();
- return DOF2_SaveFile();
- }
- public OnPlayerConnect(playerid)
- {
- return GetPlayerName(playerid, pName[playerid], sizeof pName), format(File[playerid], sizeof File, "Users/Tags/%s.ini", GetName(playerid));
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- File[playerid][0] = EOS;
- pName[playerid][0] = EOS;
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(DOF2_FileExists(TagFile(playerid)))
- {
- format(g_Str_g, sizeof g_Str_g, "%s: {FFFFFF}%s [ID: %d | {%s}%s]", GetName(playerid), text, playerid, DOF2_GetString(TagFile(playerid), "Color"), DOF2_GetString(TagFile(playerid), "Tag"));
- SendClientMessageToAll(GetPlayerColor(playerid), g_Str_g);
- return 0;
- }
- return 0;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[4][128], idx;
- cmd[0] = strtok(cmdtext, idx);
- if(strcmp(cmd[0], "/SetTag", true) == 0)
- {
- if(!IsPlayerAdmin(playerid)) return 0;
- new id = strval(strtok(cmdtext, idx));
- cmd[2] = strtok(cmdtext, idx);
- cmd[3] = strrest(cmdtext, idx);
- if(id < 0 || id > MAX_PLAYERS || !strlen(cmd[2]) || !strlen(cmd[3])) return SendClientMessage(playerid, Red, "Syntax Error: \"/SetTag [ID] [COLOR: 1 = Red | 2 = Green | 3 = Blue | 4 = Yellow | 5 = Orange | 6 = Purple | 7 = Black | 8 = White] [Text]\".");
- if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Red, "Syntax Error: \"Inavlid ID\".");
- if(strlen(cmd[3]) > 20) return SendClientMessage(playerid, Red, "Syntax Error: \"Tag Text Cannot Be Over 20 Characters\".");
- new TagColor[8];
- if(!DOF2_FileExists(TagFile(id))) return DOF2_CreateFile(TagFile(id));
- switch(strval(cmd[2]))
- {
- case 1: TagColor = "FF0000";
- case 2: TagColor = "33FF00";
- case 3: TagColor = "0088FF";
- case 4: TagColor = "FFFF00";
- case 5: TagColor = "FF7700";
- case 6: TagColor = "CC00FF";
- case 7: TagColor = "000000";
- case 8: TagColor = "FFFFFF";
- }
- DOF2_SetString(TagFile(id), "Color", TagColor);
- DOF2_SetString(TagFile(id), "Tag", cmd[3]);
- format(g_Str_g, 256, "You Have Set Player \"%s\" Tag To {%s}\"%s\"{FFFF00}.", GetName(id), TagColor, cmd[3]);
- SendClientMessage(playerid, Yellow, g_Str_g);
- format(g_Str_g, 256, "Admin {FF0000}\"%s\" {FFFF00}Has Set Your Tag To {%s}\"%s\"{FFFF00}.", GetName(playerid), TagColor, cmd[3]);
- SendClientMessage(id, Yellow, g_Str_g);
- return 1;
- }
- if(strcmp(cmd[0], "/RemoveTag", true) == 0)
- {
- if(!IsPlayerAdmin(playerid)) return 0;
- cmd[1] = strtok(cmdtext, idx);
- new id = strval(cmd[1]);
- if(!strlen(cmd[1])) return SendClientMessage(playerid, Red, "Syntax Error: \"/RemoveTag [ID]\".");
- if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Red, "Syntax Error: \"Inavlid ID\".");
- if(!DOF2_FileExists(TagFile(id))) return SendClientMessage(playerid, Red, "Syntax Error: \"This Player Dosent Have A Tag\".");
- DOF2_RemoveFile(TagFile(id));
- format(g_Str_g, 256, "You Have Removed Player \"%s\" Tag.", GetName(id));
- SendClientMessage(playerid, Yellow, g_Str_g);
- format(g_Str_g, 256, "Admin {FF0000}\"%s\" {FFFF00}Has Removed Your Tag.", GetName(playerid));
- SendClientMessage(id, Yellow, g_Str_g);
- return 1;
- }
- return 0;
- }
- stock strtok(const source[], &index)
- {
- new
- variableStart;
- while (source[index] && source[index] <= 0x20)
- index ++;
- variableStart = index;
- while (source[index] && source[index] > 0x20)
- index ++;
- new
- szResult[20];
- memcpy(szResult, source[variableStart], 0, 4 * (index - variableStart), 20);
- return szResult;
- }
- stock strrest(str[], &index) {
- new result[128];
- strmid(result, str, index, strlen(str));
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement