Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- //==============================================================================
- #define RandColor // Comment This line if you want to disable the random colors.
- #define FloodProtection 1 //Set it to 0 if you want to disable the anti Flood.
- #define MAX_CHAT_LENGHT 128 //Max chat lenght that will appear (More words won't be seen)
- enum Chat_Enum
- {
- Enabled,
- AllowID
- }
- new AntiFlood;
- new ChatInfo[Chat_Enum];
- new PlayerMuted[MAX_PLAYERS];
- new MessagesCount[MAX_PLAYERS];
- #if defined RandColor
- new RandCol[] =
- {
- 0xFF0000FF, 0x00FF00FF, 0x0000FFFF, 0xFFFFFFFF, 0x000000FF,
- 0xFF00FFFF, 0xF0F8FFFF, 0xFAEBD7FF, 0x00FFFFFF, 0x7FFFD4FF,
- 0xF0FFFFFF, 0xA52A2AFF, 0x008B8BFF, 0xE9967AFF, 0x00BFFFFF,
- 0xFFD700FF, 0x808080FF, 0x008000FF, 0x800000FF, 0x000080FF
- };
- #endif
- forward OnChatInit();
- forward OnChatEnabled();
- forward OnChatDisabled();
- forward OnPlayerMuted(playerid);
- forward OnPlayerUnMuted(playerid);
- #if defined RandColor
- forward RandColour(playerid);
- #endif
- public OnFilterScriptInit()
- {
- print("\n===============================================");
- print("AdvancedChat.inc - By illuminati2 20/2/2016");
- print("===============================================\n");
- CallLocalFunction("OnChatInit", "");
- return 1;
- }
- #if defined _ALS_OnFilterScriptInit
- #undef OnFilterScriptInit
- #else
- #define _ALS_OnFilterScriptInit
- #endif
- #define OnFilterScriptInit PS_OnFilterScriptInit
- forward PS_OnFilterScriptInit();
- #if defined RandColor
- public OnPlayerConnect(playerid)
- {
- SetTimerEx("RandColour", 3000, true, "i", playerid);
- return 1;
- }
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect PS_OnPlayerConnect
- forward PS_OnPlayerConnect(playerid);
- #endif
- public OnPlayerText(playerid, text[])
- {
- if(ChatInfo[Enabled] == 0)
- {
- SendClientMessage(playerid, -1, "{FF0000}ERROR: Chat is disabled!");
- return 0;
- }
- if(PlayerMuted[playerid] == 1)
- {
- SendClientMessage(playerid, -1, "{FF0000}ERROR: You're muted!");
- return 0;
- }
- new chatstr[MAX_CHAT_LENGHT], name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- if(ChatInfo[AllowID] == 1) {
- format(chatstr, sizeof(chatstr), "{%06x}%s [%d]:{FFFFFF} %s", GetPlayerColor(playerid) >>> 8, name, playerid, text);
- }
- else {
- format(chatstr, sizeof(chatstr), "{%06x}%s:{FFFFFF} %s", GetPlayerColor(playerid) >>> 8, name, text);
- }
- SendClientMessageToAll(-1, chatstr);
- #if FloodProtection == 1
- MessagesCount[playerid] += 1;
- AntiFlood = SetTimerEx("ReduceCount", 1500, true, "i", playerid);
- if(MessagesCount[playerid] >= 4) SendClientMessage(playerid, -1, "{FF0000}If you continue flooding you'll be automatically kicked.");
- else if(MessagesCount[playerid] == 5)
- {
- Kick(playerid);
- }
- #endif
- return 0;
- }
- #if defined _ALS_OnPlayerText
- #undef OnPlayerText
- #else
- #define _ALS_OnPlayerText
- #endif
- #define OnPlayerText PS_OnPlayerText
- forward PS_OnPlayerText(playerid, text[]);
- forward ReduceCount(playerid);
- public ReduceCount(playerid)
- {
- MessagesCount[playerid] -= 1;
- if(MessagesCount[playerid] == 0) KillTimer(AntiFlood);
- return 1;
- }
- forward UnMute(playerid);
- public UnMute(playerid)
- {
- PlayerMuted[playerid] = 0;
- CallLocalFunction("OnPlayerUnMuted", "i", playerid);
- return 1;
- }
- #if defined RandColor
- public RandColour(playerid)
- {
- new rand = random(sizeof(RandCol));
- SetPlayerColor(playerid, RandCol[rand]);
- return 1;
- }
- #endif
- //==============================================================================
- stock ToggleChat(bool: Toggle)
- {
- if(Toggle == false) ChatInfo[Enabled] = 0, CallLocalFunction("OnChatDisabled", "");;
- else if(Toggle == true) ChatInfo[Enabled] = 1, CallLocalFunction("OnChatEnabled", "");;
- return 1;
- }
- stock ClearChat()
- {
- for(new i; i <= 30; i++) SendClientMessageToAll(-1, " ");
- return 1;
- }
- stock ToggleChatID(bool: Toggle)
- {
- if(Toggle == false) ChatInfo[AllowID] = 0;
- else if(Toggle == true) ChatInfo[AllowID] = 1;
- return 1;
- }
- stock TogglePlayerChat(playerid, bool: Toggle)
- {
- if(Toggle == false) PlayerMuted[playerid] = 1, CallLocalFunction("OnPlayerMuted", "i", playerid);
- else if(Toggle == true) PlayerMuted[playerid] = 0, CallLocalFunction("OnPlayerUnMuted", "i", playerid);
- return 1;
- }
- stock TempPlayerMute(playerid, minutes)
- {
- PlayerMuted[playerid] = 1;
- CallLocalFunction("OnPlayerMuted", "i", playerid);
- SetTimerEx("UnMute", 1000000 * minutes, false);
- return 1;
- }
- stock SendPlayerMessageInPointToAll(playerid, msg[], Float:distance, Float:x, Float:y, Float:z)
- {
- if(IsPlayerInRangeOfPoint(playerid, distance, x, y, z))
- {
- if(IsPlayerConnected(i)
- {
- new chatstr[MAX_CHAT_LENGHT], name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- format(chatstr, sizeof(chatstr), "{%06x}%s [%d]:{FFFFFF} %s", GetPlayerColor(playerid) >>> 8, name, playerid, msg);
- SendClientMessageToAll(-1, msg);
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement