Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Personal Message system v1.1 by Kwarde
- There is:
- /pm
- /togpm (Receive PM's : On or Off (PERSONLA))
- /apm (admin cmd, with this you can turn the whole pm off)
- /samp (admin cmd, Send Admin Message (to all or to one person))
- /togpriv (admin cmd, Toggle Private Messages)
- /pmhelp (credits and info)
- An PM log
- CREDITS:
- Kwarde - The full maker
- Just enjoy,
- And don't remove this credits
- */
- #include <a_samp>
- #define COLOR_GREEN 0x00FF00AA
- #define COLOR_RED 0xFF0000AA
- #define COLOR_WHITE 0xFFFFFFAA
- new sendername[MAX_PLAYER_NAME];
- new receivername[MAX_PLAYER_NAME];
- new pname[MAX_PLAYER_NAME];
- new message[265];
- // CONFIG //
- new PmActivated = 1; //Pm in begin activated: 0 = deactivated, 1 = activated
- new PmForPlayerActivated[MAX_PLAYERS] = 1; //Pm For Player In begin activated: 0 = deactivated, 1 = activated
- new private = 1; //If an admin turn PM on/off, or if an admin send an PM to all, show name? 1 = show only 'an admin', 0 = 'admin ADMIN_NAME'
- //********//
- public OnPlayerConnect(playerid) SendClientMessage(playerid, COLOR_GREEN, "** PM System By Kwarde: Use /pmhelp");
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new tmp[265], string[265];
- new cmd[128], idx;
- new giveplayerid;
- GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
- cmd = strtok(cmdtext, idx);
- if(!strcmp(cmd, "/pm", true))
- {
- GetPlayerName(playerid, sendername, sizeof sendername);
- GetPlayerName(giveplayerid, receivername, sizeof receivername);
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp))
- {
- SendClientMessage(playerid, COLOR_WHITE, "USAGE: /pm [playerid] [message]");
- return 1;
- }
- giveplayerid = strval(tmp);
- message = strrest(cmdtext, idx);
- if(!strlen(message))
- {
- SendClientMessage(playerid, COLOR_WHITE, "USAGE: /pm [playerid] [message]");
- return 1;
- }
- if(giveplayerid != playerid)
- {
- if(PmActivated == 1)
- {
- if(IsPlayerConnected(giveplayerid))
- {
- if(PmForPlayerActivated[giveplayerid] == 1)
- {
- format(string, sizeof string, ">> %s(%d): %s", receivername, giveplayerid, message);
- SendClientMessage(playerid, COLOR_GREEN, string);
- format(string, sizeof string, "** %s(%d): %s", sendername, playerid, message);
- SendClientMessage(giveplayerid, COLOR_GREEN, string);
- format(string, sizeof string, "[PM] %s to %s: %s", sendername, receivername, message);
- new File:PmLog = fopen("pm.log", io_append);
- fwrite(PmLog, string);
- fclose(PmLog);
- }
- else
- {
- format(string, sizeof string, "-PmServ- %s has turned PM off!", receivername);
- SendClientMessage(playerid, COLOR_RED, string);
- }
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "-PmServ- That player isn't connected!");
- }
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "-PmServ- An admin has turned PM off!");
- }
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "-PmServ- You can't send an personal message to yourself!");
- }
- return 1;
- }
- if(!strcmp(cmd, "/togpm", true))
- {
- if(PmActivated == 1)
- {
- if(PmForPlayerActivated[playerid] == 1)
- {
- PmForPlayerActivated[playerid] = 0;
- SendClientMessage(playerid, COLOR_GREEN, "-PmServ- You have turned PM off! You can't receive any personal message now");
- }
- else if(PmForPlayerActivated[playerid] == 0)
- {
- PmForPlayerActivated[playerid] = 1;
- SendClientMessage(playerid, COLOR_GREEN, "-PmServ- You have turned PM on! You can now receive any personal message");
- return 1;
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "-OperServ- -PmServ- An error occured! Variable PmForPlayerActivated returned something else then 1 or 0");
- print("An error in PmForPlayerActivated occured");
- }
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "-PmServ- An admin has turned the PM off!");
- }
- return 1;
- }
- if(!strcmp(cmd, "/apm", true))
- {
- if(IsPlayerAdmin(playerid))
- {
- if(PmActivated == 1)
- {
- PmActivated = 0;
- if(private == 0)
- {
- format(string, sizeof string, "-PmServ- Admin %s has tured the PM system OFF!", pname);
- SendClientMessageToAll(COLOR_RED, string);
- }
- else
- {
- SendClientMessageToAll(COLOR_RED, "-PmServ- An admin has turned the PM system OFF!");
- }
- return 1;
- }
- else
- {
- PmActivated = 1;
- if(private == 0)
- {
- format(string, sizeof string, "-PmServ- Admin %s has tured the PM system ON!", pname);
- SendClientMessageToAll(COLOR_RED, string);
- }
- else
- {
- SendClientMessageToAll(COLOR_RED, "-PmServ- An admin has turned the PM system ON!");
- }
- return 1;
- }
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "-PmServ- You are not an RCON admin!");
- }
- return 1;
- }
- if(!strcmp(cmd, "/samp", true))
- {
- if(IsPlayerAdmin(playerid))
- {
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /samp [playerid OR 'all'] [message]");
- message = strrest(cmdtext, idx);
- if(!strlen(message)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /samp [playerid OR 'all'] [message]");
- if(!strcmp(tmp, "all", true))
- {
- if(private == 1)
- {
- format(string, sizeof string, "[PM] ADMIN: %s", message);
- SendClientMessageToAll(COLOR_GREEN, string);
- }
- else
- {
- format(string, sizeof string, "[PM] ADMIN %s(%d): %s", pname, playerid, message);
- SendClientMessageToAll(COLOR_GREEN, string);
- }
- return 1;
- }
- else
- {
- giveplayerid = strval(tmp);
- if(private == 1)
- {
- format(string, sizeof string, "[PM] ADMIN: %s", message);
- SendClientMessage(giveplayerid, COLOR_GREEN, string);
- }
- else
- {
- format(string, sizeof string, "[PM] ADMIN %s(%d): %s", pname, playerid, message);
- SendClientMessage(giveplayerid, COLOR_GREEN, string);
- }
- return 1;
- }
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "-PmServ- You are not an RCON admin!");
- }
- return 1;
- }
- if(!strcmp(cmd, "/togpriv", true))
- {
- if(IsPlayerAdmin(playerid))
- {
- if(private == 1)
- {
- private = 0;
- SendClientMessage(playerid, COLOR_RED, "** ADMIN Messages are not private anymore!");
- }
- else
- {
- private = 1;
- SendClientMessage(playerid, COLOR_GREEN, "** ADMIN PM's are now private (again)!");
- }
- return 1;
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "-PmServ- You are not an RCON admin!");
- }
- return 1;
- }
- if(!strcmp(cmd, "/pmhelp", true))
- {
- SendClientMessage(playerid, COLOR_RED, "---------------------");
- SendClientMessage(playerid, COLOR_WHITE, "* Personal Message system - By Kwarde");
- SendClientMessage(playerid, COLOR_WHITE, "* Here are all the commands");
- SendClientMessage(playerid, 0xFFFFFFAA, "");
- SendClientMessage(playerid, COLOR_WHITE, "/pm [playerid] [message] : Will send an personal message");
- SendClientMessage(playerid, COLOR_WHITE, "/togpm : Will toggle PM for you on/or off: You can't receive any message then!");
- if(IsPlayerAdmin(playerid))
- {
- SendClientMessage(playerid, COLOR_GREEN, "/apm : ADMIN COMMAND - Will toggle the whole PM on or off");
- SendClientMessage(playerid, COLOR_GREEN, "/samp : ADMIN COMMAND - Will send an ADMIN message to an person, or to everyone");
- SendClientMessage(playerid, COLOR_GREEN, "/togpriv : ADMIN COMMAND - Toggle Private Admin PM's");
- }
- SendClientMessage(playerid, 0xFFFFFFAA, "");
- SendClientMessage(playerid, COLOR_RED, "PLEASE NOTE THAT ALL MESSAGED WILL BE SAVED INTO A FILE");
- SendClientMessage(playerid, COLOR_RED, "SO IF YOU GONNA DO SOMETHING THAT'S WRONG, WE WILL SEE IT!");
- SendClientMessage(playerid, COLOR_RED, "----------------------");
- }
- return 0;
- }
- strrest(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[128];
- while ((index < length) && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
- strtok(const str[], &index)
- {
- new length = strlen(str);
- while ((index < length) && (str[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (str[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = str[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement