Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////////////
- /////////////////
- // Scripted by //
- // Mathias //
- /////////////////
- /////////////////
- #include <a_samp>
- #include <zcmd>
- #include <mysql>
- // Defines
- #define DIALOG_MAIL_MAIN 1
- #define DIALOG_MAIL_COMPOSE_MAIN 2
- #define DIALOG_MAIL_COMPOSE_SEND 3
- #define DIALOG_MAIL_COMPOSE_ADD 4
- #define DIALOG_MAIL_MSGBOX 5
- #define DIALOG_MAIL_INBOX 6
- #define DIALOG_STYLE_READ_MSG 7
- // Database settings
- #define MYSQL_HOST "host"
- #define MYSQL_USER "user"
- #define MYSQL_PASS "pass"
- #define MYSQL_DB "db"
- // Global variables.
- new Mail[MAX_PLAYERS][2048]; // The reason why this is so big is in case someone want to send one big ass mail, lol!
- new mList[MAX_PLAYERS][100];
- new lastRead[MAX_PLAYERS];
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" MySQL Mail filterscript by Mathias");
- print("--------------------------------------\n");
- new MySQL:connection = mysql_init(LOG_ONLY_ERRORS, 1);
- mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DB, connection, 1);
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- Mail[playerid] = "";
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/mycommand", cmdtext, true, 10) == 0)
- {
- // Do something here
- return 1;
- }
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_MAIL_MAIN)
- {
- if(response)
- {
- switch(listitem)
- {
- case 0: // Inbox selected
- {
- new pName[MAX_PLAYER_NAME], query[256], mails[1000], tmp[126], i = 0;
- GetPlayerName(playerid, pName, sizeof(pName));
- format(query, sizeof(query), "SELECT * FROM mails WHERE mto = '%s'", pName);
- mysql_query(query);
- mysql_store_result();
- if(mysql_num_rows() < 1) return SendClientMessage(playerid, -1, "No e-mails could be found!");
- while(mysql_fetch_row(query, "|"))
- {
- new from[24], read, rstr[32], mid;
- mysql_fetch_field("mfrom", from);
- mysql_fetch_field("mread", query); read = strval(query);
- mysql_fetch_field("id", query); mid = strval(query);
- switch(read)
- {
- case 0: rstr = "{FF0000}(unread)";
- case 1: rstr = "{00FF00}(read)";
- }
- mList[playerid][i] = mid;
- strins(mails, tmp, strlen(mails));
- i++;
- }
- ShowPlayerDialog(playerid, DIALOG_MAIL_INBOX, DIALOG_STYLE_LIST, "Inbox", mails, "Read", "Go back");
- }
- case 1: // Compose new selected
- {
- ShowPlayerDialog(playerid, DIALOG_MAIL_COMPOSE_MAIN, DIALOG_STYLE_LIST, "Compose new", "Send e-mail\nAdd text\nReset text", "Select", "Go back");
- }
- }
- } else {
- return SendClientMessage(playerid, -1, "You have signed out of your e-mail account!");
- }
- }
- if(dialogid == DIALOG_MAIL_COMPOSE_MAIN)
- {
- if(response)
- {
- switch(listitem)
- {
- case 0: // Send e-mail
- {
- ShowPlayerDialog(playerid, DIALOG_MAIL_COMPOSE_SEND, DIALOG_STYLE_INPUT, "Sending e-mail", "Enter the name of who you'd like to send it to. (Case-sensitive, underscore required)", "Send", "Go back");
- }
- case 1: // Add text
- {
- ShowPlayerDialog(playerid, DIALOG_MAIL_COMPOSE_ADD, DIALOG_STYLE_INPUT, "Editing e-mail", "Enter the text you wish to add to your mail! (newline with ;)", "Add", "Go back");
- }
- case 2: // Reset text
- {
- Mail[playerid] = "";
- ShowPlayerDialog(playerid, DIALOG_MAIL_COMPOSE_MAIN, DIALOG_STYLE_LIST, "Compose new", "Send e-mail\nAdd text\nReset text", "Select", "Go back");
- return SendClientMessage(playerid, -1, "E-mail text has been reset!");
- }
- }
- } else {
- ShowPlayerDialog(playerid, DIALOG_MAIL_MAIN, DIALOG_STYLE_LIST, "Outlook E-Mail", "Inbox\nCompose new mail", "Select", "Sign out");
- }
- }
- if(dialogid == DIALOG_MAIL_COMPOSE_SEND)
- {
- if(response)
- {
- new query[256];
- strreplace(inputtext, ''', '*');
- if(strlen(inputtext) > 24) return SendClientMessage(playerid, -1, "You can't enter a name longer than 24 characters!");
- new string[50], pName[MAX_PLAYER_NAME], id;
- GetPlayerName(playerid, pName, sizeof(pName));
- strins(Mail[playerid], string, 0);
- strins(Mail[playerid], string, strlen(Mail[playerid]));
- id = GetPlayerIDFromName(inputtext);
- format(query, sizeof(query), "INSERT INTO mails VALUES('', '%s', '%s', '%s', '0')", inputtext, pName, Mail[playerid]);
- mysql_query(query);
- if(id != 65535) SendClientMessage(id, -1, "You have received a new e-mail! (/mail)");
- strreplace(Mail[playerid], ';', '\n');
- ShowPlayerDialog(playerid, DIALOG_MAIL_MSGBOX, DIALOG_STYLE_MSGBOX, "E-Mail sent!", Mail[playerid], "Close", "");
- Mail[playerid] = "";
- return 1;
- } else {
- ShowPlayerDialog(playerid, DIALOG_MAIL_COMPOSE_MAIN, DIALOG_STYLE_LIST, "Compose new", "Send e-mail\nAdd text\nReset text", "Select", "Go back");
- }
- }
- if(dialogid == DIALOG_MAIL_COMPOSE_ADD)
- {
- if(response)
- {
- strreplace(inputtext, ''', '*');
- strins(Mail[playerid], inputtext, strlen(Mail[playerid]));
- SendClientMessage(playerid, -1, "You have added the text to your mail!");
- return ShowPlayerDialog(playerid, DIALOG_MAIL_COMPOSE_MAIN, DIALOG_STYLE_LIST, "Compose new", "Send e-mail\nAdd text\nReset text", "Select", "Go back");
- } else {
- return ShowPlayerDialog(playerid, DIALOG_MAIL_COMPOSE_MAIN, DIALOG_STYLE_LIST, "Compose new", "Send e-mail\nAdd text\nReset text", "Select", "Go back");
- }
- }
- if(dialogid == DIALOG_MAIL_INBOX)
- {
- if(response)
- {
- new msgStr[2048], query[256], mid;
- format(query, sizeof(query), "SELECT * FROM mails WHERE id = '%d'", mList[playerid][listitem]);
- mysql_query(query);
- mysql_store_result();
- while(mysql_fetch_row(query, "|"))
- {
- mysql_fetch_field("message", msgStr);
- mysql_fetch_field("id", query); mid = strval(query);
- lastRead[playerid] = mid;
- strreplace(msgStr, ';', '\n');
- return ShowPlayerDialog(playerid, DIALOG_STYLE_READ_MSG, DIALOG_STYLE_MSGBOX, "Reading e-mail.", msgStr, "Mark as read", "Go back");
- }
- }
- }
- if(dialogid == DIALOG_STYLE_READ_MSG)
- {
- if(response)
- {
- new query[256];
- format(query, sizeof(query), "UPDATE mails SET mread = 1 WHERE id = '%d'", lastRead[playerid]);
- mysql_query(query);
- lastRead[playerid] = -1;
- SendClientMessage(playerid, -1, "Message has been marked as read!");
- return ShowPlayerDialog(playerid, DIALOG_MAIL_MAIN, DIALOG_STYLE_LIST, "Outlook E-Mail", "Inbox\nCompose new mail", "Select", "Sign out");
- } else {
- return ShowPlayerDialog(playerid, DIALOG_MAIL_MAIN, DIALOG_STYLE_LIST, "Outlook E-Mail", "Inbox\nCompose new mail", "Select", "Sign out");
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- // Command(s)
- CMD:mail(playerid, params[])
- {
- SendClientMessage(playerid, -1, "You have signed in to your outlook e-mail!");
- ShowPlayerDialog(playerid, DIALOG_MAIL_MAIN, DIALOG_STYLE_LIST, "Outlook E-Mail", "Inbox\nCompose new mail", "Select", "Sign out");
- return 1;
- }
- // Just used for my vid.
- CMD:cc(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "You are not admin!");
- for(new i = 0; i < 51; i++)
- {
- SendClientMessageToAll(-1, "");
- }
- return 1;
- }
- // Stocks
- stock strreplace(string[], find, replace)
- {
- for(new i=0; string[i]; i++)
- {
- if(string[i] == find)
- {
- string[i] = replace;
- }
- }
- return replace;
- }
- stock GetPlayerIDFromName(playername[])
- {
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- new playername2[MAX_PLAYER_NAME];
- GetPlayerName(i, playername2, sizeof(playername2));
- if(strcmp(playername2, playername, true, strlen(playername)) == 0)
- {
- return i;
- }
- }
- }
- return 65535;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement