Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "a_samp"
- #include "dini"
- #define ChooseID 508
- #define ChooseText 509
- #define ChooseColor 510
- #define ChooseIDR 511
- enum TagsInformation
- {
- bool:Tag,
- TagText[38],
- TagColor[7]
- }
- new Tags[MAX_PLAYERS][TagsInformation];
- new ChoseID[MAX_PLAYERS],
- ChoseColor[7][MAX_PLAYERS],
- ChoseText[38][MAX_PLAYERS],
- ChoseIDR[MAX_PLAYERS];
- public OnPlayerConnect(playerid)
- {
- if(!dini_Exists(CheckTFile(playerid))) Tags[playerid][Tag] = false;
- else
- {
- Tags[playerid][Tag] = true;
- format(Tags[playerid][TagColor], 7, "%s", dini_Get(CheckTFile(playerid), "TagColor"));
- format(Tags[playerid][TagText], 38, "%s", dini_Get(CheckTFile(playerid), "TagText"));
- }
- return true;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(!Tags[playerid][Tag]) if(dini_Exists(CheckTFile(playerid))) dini_Remove(CheckTFile(playerid));
- Tags[playerid][Tag] = false;
- format(Tags[playerid][TagText], 38, "None");
- format(Tags[playerid][TagColor], 7, "None");
- dini_Remove(CheckTFile(playerid));
- return true;
- }
- public OnPlayerText(playerid, text[])
- {
- if(Tags[playerid][Tag])
- {
- new string[256];
- format(string, 256, "%s [%d | {%s}%s{ffffff}]",text, playerid, Tags[playerid][TagColor], Tags[playerid][TagText]);
- return SendPlayerMessageToAll(playerid, string),0;
- }
- return true;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[256], idx;
- cmd = strtok(cmdtext, idx);
- if(!strcmp(cmd, "/settag", true)) return ShowPlayerDialog(playerid, ChooseID, DIALOG_STYLE_INPUT, "Set tag to player.", "Choose the PlayerID that you want to set his tag.", "Next", "Cancel");
- if(!strcmp(cmd, "/removetag", true)) return ShowPlayerDialog(playerid, ChooseIDR, DIALOG_STYLE_INPUT, "Remove tag from player.", "Choose the PlayerID that you want to remove his tag.", "Next", "Cancel");
- return false;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case ChooseIDR:
- {
- new string[256];
- if(!response) return true;
- if(!IsPlayerConnected(strval(inputtext))) return ShowPlayerDialog(playerid, ChooseID, DIALOG_STYLE_INPUT, "Remove tag from player.", "Choose the PlayerID that you want to set his tag.", "Next", "Cancel"), SendClientMessage(playerid, 0xFFFFFF00, "[Error] This player isn't connected.");
- if(!CheckNumber(inputtext)) return ShowPlayerDialog(playerid, ChooseID, DIALOG_STYLE_INPUT, "Remove tag from player.", "Choose the PlayerID that you want to set his tag.", "Next", "Cancel"), SendClientMessage(playerid, 0xFFFFFF00, "[Error] Please write just numbers.");
- if(!Tags[strval(inputtext)][Tag]) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] The player doesn't has tag.");
- ChoseIDR[playerid] = strval(inputtext);
- Tags[ChoseIDR[playerid]][Tag] = false;
- format(Tags[ChoseIDR[playerid]][TagText], 38, "None");
- format(Tags[ChoseIDR[playerid]][TagColor], 7, "None");
- dini_Remove(CheckTFile(playerid));
- format(string, 128, "Administrator %s removed your tag.", CheckName(playerid));
- SendClientMessage(ChoseIDR[playerid], 0xFFFFFF00, string);
- format(string, 128, "You removed the tag to %s.", CheckName(ChoseIDR[playerid]));
- SendClientMessage(playerid, 0xFFFFFF00, string);
- }
- case ChooseID:
- {
- if(!response) return true;
- if(!IsPlayerConnected(strval(inputtext))) return ShowPlayerDialog(playerid, ChooseID, DIALOG_STYLE_INPUT, "Set tag to player.", "Choose the PlayerID that you want to set his tag.", "Next", "Cancel"), SendClientMessage(playerid, 0xFFFFFF00, "[Error] This player isn't connected.");
- if(!CheckNumber(inputtext)) return ShowPlayerDialog(playerid, ChooseID, DIALOG_STYLE_INPUT, "Set tag to player.", "Choose the PlayerID that you want to set his tag.", "Next", "Cancel"), SendClientMessage(playerid, 0xFFFFFF00, "[Error] Please write just numbers.");
- if(Tags[strval(inputtext)][Tag]) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] The player has already tag.");
- ChoseID[playerid] = strval(inputtext);
- ShowPlayerDialog(playerid, ChooseText, DIALOG_STYLE_INPUT, "Set tag to player.", "Choose the text that you want to set his tag.", "Next", "Back");
- }
- case ChooseText:
- {
- if(!response) return ShowPlayerDialog(playerid, ChooseID, DIALOG_STYLE_INPUT, "Set tag to player.", "Choose the PlayerID that you want to set his tag.", "Next", "Cancel");
- format(ChoseText[playerid], 38, "%s", inputtext);
- ShowPlayerDialog(playerid, ChooseColor, DIALOG_STYLE_INPUT, "Set tag to player.", "Choose the color that you want to set his tag.\n\rExample(HTML Color): FFFFFF, 0F0F0F, etc...", "Done", "Cancel");
- }
- case ChooseColor:
- {
- new string[256];
- if(!response) return ShowPlayerDialog(playerid, ChooseText, DIALOG_STYLE_INPUT, "Set tag to player.", "Choose the text that you want to set his tag.", "Next", "Back");
- format(ChoseColor[playerid], 7, "%s", inputtext);
- Tags[ChoseID[playerid]][Tag] = true;
- format(Tags[ChoseID[playerid]][TagColor], 38, "%s", inputtext);
- format(Tags[ChoseID[playerid]][TagText], 38, "%s", ChoseText[playerid]);
- if(!dini_Exists(CheckTFile(playerid))) dini_Create(CheckTFile(playerid));
- dini_BoolSet(CheckTFile(playerid), "Tag", true);
- dini_Set(CheckTFile(playerid), "TagText", Tags[playerid][TagText]);
- dini_Set(CheckTFile(playerid), "TagColor", Tags[playerid][TagColor]);
- format(string, 256, "Tag information:\n\rPlayer: %s[%d]\n\rTag text: %s\n\rTag color: {%s}%s{A9C4E4}\n\r\n\rRemove his tag by typing /removetag.", CheckName(ChoseID[playerid]), ChoseID[playerid], ChoseText[playerid], inputtext, inputtext);
- ShowPlayerDialog(playerid, 999, DIALOG_STYLE_MSGBOX, "Tagged successfuly", string, "Okay", "");
- format(string, 256, "Tag information:\n\rPlayer: %s[%d]\n\rTag text: %s\n\rTag color: {%s}%s{A9C4E4}\n\r\n\rRemove his tag by typing /removetag.", CheckName(ChoseID[playerid]), ChoseID[playerid], ChoseText[playerid], inputtext, inputtext);
- ShowPlayerDialog(ChoseID[playerid], 999, DIALOG_STYLE_MSGBOX, "Tagged successfuly", string, "Okay", "");
- }
- }
- return true;
- }
- stock CheckName(playerid)
- {
- new name[24];
- GetPlayerName(playerid, name, 24);
- return name;
- }
- stock CheckTFile(playerid)
- {
- new file[30];
- format(file, 30, "Tags/%s.ini", CheckName(playerid));
- return file;
- }
- CheckNumber(const string[])
- {
- for (new i = 0, j = strlen(string); i < j; i++) if (string[i] > '9' || string[i] < '0') return false;
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment