Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- CREATE TABLE IF NOT EXISTS `gutscheine` (
- `DatensatzID` int(11) NOT NULL AUTO_INCREMENT,
- `gID` int(11) DEFAULT NULL,
- `gOwner` text,
- `gCode` int(11) DEFAULT NULL,
- `gUsed` int(11) DEFAULT NULL,
- `gUsedBy` text,
- `gAktion` int(11) DEFAULT NULL,
- PRIMARY KEY (`DatensatzID`)
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=80 ;
- */
- #include <a_samp>
- #include <ocmd>
- #include <mysql>
- #define MAX_GUTSCHEINE 500 //Maximal 500 Gutscheine
- #define DIALOG_GUTSCHEIN 998 //Gutscheindialog definierung (Anpassen!)
- #define DIALOG_GNAMECHANGE 999 //Namenchange Dialog definierung (Anpassen!)
- forward LoadCoupons();
- #define MySQL
- #if defined MySQL
- #define mysql_host "localhost" //MySQL Daten anpassen!
- #define mysql_user "rgr"
- #define mysql_db "rgrscript"
- #define mysql_pass "test"
- #endif
- enum GutscheinSystem
- {
- gID, //GutscheinID
- gOwner[MAX_PLAYER_NAME], //GutscheinErsteller
- gCode, //Gutschein Code
- gUsed, //Gutschein genutzt
- gUsedBy[MAX_PLAYER_NAME], //Gutschein genutzt von
- gAktion //Gutscheinaktion
- }
- new Gutschein[MAX_GUTSCHEINE][GutscheinSystem];
- public OnFilterScriptInit()
- {
- print(" Gutschein/Coupon-System by crontec/Jason_Varrez");
- LoadCoupons();
- #if defined MySQL
- mysql_connect(mysql_host, mysql_user, mysql_db, mysql_pass);
- printf("");
- printf("Das Gutschein/Coupon System konnte mit der MySQL Datenbank verbunden werden.");
- printf("");
- #endif
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_GUTSCHEIN)
- {
- printf("Test1");
- if(response)
- {
- printf("Test2");
- new string[256];
- if(listitem == 0) //Namenschange
- {
- new geld = GetPlayerMoney(playerid),
- differenz = 500000 -geld;
- if(geld < 500000)
- {
- format(string, sizeof(string), "Dieser Gutschein kostet $500.000, dir fehlen %d", differenz);
- SendClientMessage(playerid, -1, string);
- return 1;
- }
- new rand = random(999998)+1,
- aktion = 1,
- used = 0;
- for(new g = 0; g <MAX_GUTSCHEINE; g++)
- {
- if(Gutschein[g][gCode] == 0)
- {
- Gutschein[g][gID]++;
- Gutschein[g][gCode] = rand;
- Gutschein[g][gAktion] = aktion;
- Gutschein[g][gUsed] = used;
- break;
- }
- }
- //GivePlayerMoney(playerid, -500000);
- SendClientMessage(playerid, -1, "Du hast einen Gutschein für eine Namensänderung für $500.000 gekauft!");
- format(string, sizeof(string), "Der Gutscheincode ist: %d - der Gutschein kann mit /usecoupon verwendet werden.", rand);
- SendClientMessage(playerid, -1, string);
- SendClientMessage(playerid, -1, "Wichtig: Schreibe dir diesen Code auf, falls du ihn an einen Spieler weiter geben möchtest.");
- format(string, sizeof(string), "INSERT INTO `gutscheine` (`gOwner`, `gCode`, `gUsed`, `gAktion`) VALUES ('%s', '%d', '%d', '%d')", SpielerName(playerid), rand, used, aktion);
- self_mysql_query(string);
- }
- if(listitem == 1) // Gefängnisfrei
- {
- printf("Test3");
- new rand = random(999998)+1,
- aktion = 2,
- used = 0;
- for(new g = 0; g <MAX_GUTSCHEINE; g++)
- {
- if(Gutschein[g][gCode] == 0)
- {
- Gutschein[g][gID]++;
- Gutschein[g][gCode] = rand;
- Gutschein[g][gAktion] = aktion;
- Gutschein[g][gUsed] = used;
- break;
- }
- }
- format(string, sizeof(string), "Der Gutscheincode ist: %d - der Gutschein kann mit /usecoupon verwendet werden.", rand);
- SendClientMessage(playerid, -1, string);
- SendClientMessage(playerid, -1, "Wichtig: Schreibe dir diesen Code auf, falls du ihn an einen Spieler weiter geben möchtest.");
- format(string, sizeof(string), "INSERT INTO `gutscheine` (`gOwner`, `gCode`, `gUsed`, `gAktion`) VALUES ('%s', '%d', '%d', '%d')", SpielerName(playerid), rand, used, aktion);
- self_mysql_query(string);
- }
- if(listitem == 2) //Kostenlose Autoreparatur
- {
- new rand = random(999998)+1,
- aktion = 3,
- used = 0;
- for(new g = 0; g <MAX_GUTSCHEINE; g++)
- {
- if(Gutschein[g][gCode] == 0)
- {
- Gutschein[g][gID]++;
- Gutschein[g][gCode] = rand;
- Gutschein[g][gAktion] = aktion;
- Gutschein[g][gUsed] = used;
- break;
- }
- }
- format(string, sizeof(string), "Der Gutscheincode ist: %d - der Gutschein kann mit /usecoupon verwendet werden.", rand);
- SendClientMessage(playerid, -1, string);
- SendClientMessage(playerid, -1, "Wichtig: Schreibe dir diesen Code auf, falls du ihn an einen Spieler weiter geben möchtest.");
- format(string, sizeof(string), "INSERT INTO `gutscheine` (`gOwner`, `gCode`, `gUsed`, `gAktion`) VALUES ('%s', '%d', '%d', '%d')", SpielerName(playerid), rand, used, aktion);
- self_mysql_query(string);
- }
- if(listitem == 3) //Invite Sperre
- {
- new rand = random(999998)+1,
- aktion = 4,
- used = 0;
- for(new g = 0; g <MAX_GUTSCHEINE; g++)
- {
- if(Gutschein[g][gCode] == 0)
- {
- Gutschein[g][gID]++;
- Gutschein[g][gCode] = rand;
- Gutschein[g][gAktion] = aktion;
- Gutschein[g][gUsed] = used;
- break;
- }
- }
- format(string, sizeof(string), "Der Gutscheincode ist: %d - der Gutschein kann mit /usecoupon verwendet werden.", rand);
- SendClientMessage(playerid, -1, string);
- SendClientMessage(playerid, -1, "Wichtig: Schreibe dir diesen Code auf, falls du ihn an einen Spieler weiter geben möchtest.");
- format(string, sizeof(string), "INSERT INTO `gutscheine` (`gOwner`, `gCode`, `gUsed`, `gAktion`) VALUES ('%s', '%d', '%d', '%d')", SpielerName(playerid), rand, used, aktion);
- self_mysql_query(string);
- }
- }
- }
- return 1;
- }
- public LoadCoupons()
- {
- for(new i = 0; i < MAX_GUTSCHEINE; i++)
- {
- Gutschein[i][gOwner] = mysql_GetInt("gutscheine", "gOwner", "DatensatzID",i);
- Gutschein[i][gCode] = mysql_GetInt("gutscheine", "gCode", "DatensatzID",i);
- Gutschein[i][gUsed] = mysql_GetInt("gutscheine", "gUsed", "DatensatzID",i);
- Gutschein[i][gUsedBy] = mysql_GetInt("gutscheine", "gUsedBy", "DatensatzID",i);
- Gutschein[i][gAktion] = mysql_GetInt("gutscheine", "gAktion", "DatensatzID",i);
- }
- return 1;
- }
- ocmd:buycoupon(playerid, params[])
- {
- //Hier sollte noch eine Abfrage erstellt werden, WANN der Befehl nicht benutzt werden sollte, damit man sich keine Vorteile erschleichen kann
- ShowPlayerDialog(playerid, DIALOG_GUTSCHEIN, DIALOG_STYLE_LIST, "ServerName - Gutscheine", "Namenschange $500.000\nCoupon 2 $50.000\nCoupon 3 $2.000\nCoupon 4 $200.000", "Kaufen", "Schließen");
- return 1;
- }
- ocmd:usecoupon(playerid, params[])
- {
- new gutscheinid, string[256];
- if(sscanf(params, "i", gutscheinid)) return SendClientMessage(playerid, -1, "Benutze: /usecoupon [GutscheinCode]");
- for(new g = 0; g <MAX_GUTSCHEINE; g++)
- {
- if(gutscheinid != Gutschein[g][gCode]) continue;
- if(Gutschein[g][gUsed] == 1) return SendClientMessage(playerid, -1, "Dieser Code wurde bereits aktiviert.");
- if(Gutschein[g][gAktion] == 1)
- {
- ShowPlayerDialog(playerid, DIALOG_GNAMECHANGE, DIALOG_STYLE_INPUT, "Gutschein einlösen: Namenschange", "Bitte gib deinen neuen Wunschnamen ein:", "Change", "Abbrechen");
- SetPVarInt(playerid, "g", g);
- }
- if(Gutschein[g][gAktion] == 2)
- {
- Gutschein[g][gUsed] = 1;
- format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s' WHERE gCode = '%d'", SpielerName(playerid), Gutschein[g][gCode]);
- self_mysql_query(string);
- }
- if(Gutschein[g][gAktion] == 3)
- {
- Gutschein[g][gUsed] = 1;
- format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s' WHERE gCode = '%d'", SpielerName(playerid), Gutschein[g][gCode]);
- self_mysql_query(string);
- }
- if(Gutschein[g][gAktion] == 4)
- {
- format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s' WHERE gCode = '%d'", SpielerName(playerid), Gutschein[g][gCode]);
- self_mysql_query(string);
- }
- return 1;
- }
- return SendClientMessage(playerid, -1, "Dieser Code existiert nicht!");
- }
- stock SpielerName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- return name;
- }
- stock self_mysql_query(string[])
- {
- mysql_query(string);
- }
- stock mysql_GetInt(Table[], Field[], Where[], check){
- new query[128];
- mysql_real_escape_string(Table, Table);
- mysql_real_escape_string(Field, Field);
- mysql_real_escape_string(Where, Where);
- format(query, 128, "SELECT %s FROM %s WHERE %s = '%d'", Field, Table, Where, check);
- mysql_query(query);
- mysql_store_result();
- new sqlint = mysql_fetch_int();
- mysql_free_result();
- return sqlint;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement