Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Dieses Lottosystem wurde von PermanenT geschrieben.
- Es wurde versucht so Ressorcen schonend wie nur möglich zu machen.
- Das dies nicht immer geht ist sicher jedem bewusst.
- Die Idee für dieses Filescript habe ich beim Lotto schauen bekommen.
- Leute die mir geholfen haben:
- Music4You der mir diversen Problemen geholfen hat als ich nicht weiter kam
- */
- #include <a_samp>
- #include <zcmd>
- #include sscanf2
- #define Function%0(%1) forward%0(%1); public%0(%1)
- #define DIALOG_LOTTO 70
- #define DIALOG_KP 71
- #define GELDERHOEEN 10000 //Um wieviel man das Geld erhöht beim Adminbefehl /ALotto
- #define VOLLENGEWINN 6 //Wieviele man richtig haben muss für vollen gewinn. 6
- #define STARTGEWINN 200000 //Wieviele Geld immer im Jackpot ist nach neustart.
- #define TEILNAHME 10000 //Wieviel man für den Lottoschein ausgeben muss.
- #define GRAU 0xB4B4B4FF
- #define HTML_WHITE "{FAFAFA}"
- #define HTML_ORANGE "{FFA000}"
- new DB:Data,
- LottoGeld;
- public OnFilterScriptInit()
- {
- new oldtime = GetTickCount(),DBResult:Result, string[256];
- Data = db_open("Lotto.db");
- Createtable();
- Result = db_query(Data,"SELECT * FROM `LottoGeld`");
- db_get_field_assoc(Result,"Geld",string,sizeof(string));
- LottoGeld=strval(string);
- if(LottoGeld <= 1) { LottoGeld = STARTGEWINN; SaveLotto();}
- Result = db_query(Data,"SELECT * FROM `Lotto` WHERE Name = 'Muss'");
- if(db_num_rows(Result) > 0){}
- else
- {
- format(string,sizeof(string),"INSERT INTO `Lotto` (`Name`,`Nummer`) VALUES ('Muss','0.0.0.0.0.0.Muss')");
- db_query(Data,string);
- }
- print("\n--------------------------------------");
- print(" Lotto System Version 1");
- printf("- Server brauchte für das Hochfahren %i ms -",GetTickCount() - oldtime);
- print("--------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_LOTTO:
- {
- new DateInfo[6][124],string[200],query[1000];
- split(inputtext,DateInfo,'.');
- if(response == 0) return 1;
- else
- {
- if(strlen(inputtext) < 1 || strlen(inputtext) > 25)return ShowPlayerDialog(playerid,DIALOG_LOTTO,DIALOG_STYLE_INPUT,"Lotto Nummer","Bitte gebe nun 6 Ziffern ein.\nBeispiel:\n6.12.2.5.46","Bestätigen","Abbrechen");
- if(strval(DateInfo[0]) < 0 || strval(DateInfo[0]) > 46 || strval(DateInfo[1]) < 0 || strval(DateInfo[1]) > 46 ||
- strval(DateInfo[2]) < 0 || strval(DateInfo[2]) > 46 || strval(DateInfo[3]) < 0 || strval(DateInfo[3]) > 46 ||
- strval(DateInfo[4]) < 0 || strval(DateInfo[4]) > 46 || strval(DateInfo[5]) < 0 || strval(DateInfo[5]) > 46)return SendClientMessage(playerid,GRAU,"Nur von 1-46");
- if(strlen(DateInfo[0]) < 1 || strlen(DateInfo[0]) > 5)return ShowPlayerDialog(playerid,DIALOG_LOTTO,DIALOG_STYLE_INPUT,"Lotto Nummer","Bitte gebe nun 6 Ziffern ein.\nBeispiel:\n6.12.2.5.46","Bestätigen","Abbrechen");
- if(strlen(DateInfo[1]) < 1 || strlen(DateInfo[1]) > 5)return ShowPlayerDialog(playerid,DIALOG_LOTTO,DIALOG_STYLE_INPUT,"Lotto Nummer","Bitte gebe nun 6 Ziffern ein.\nBeispiel:\n6.12.2.5.46","Bestätigen","Abbrechen");
- if(strlen(DateInfo[2]) < 1 || strlen(DateInfo[2]) > 5)return ShowPlayerDialog(playerid,DIALOG_LOTTO,DIALOG_STYLE_INPUT,"Lotto Nummer","Bitte gebe nun 6 Ziffern ein.\nBeispiel:\n6.12.2.5.46","Bestätigen","Abbrechen");
- if(strlen(DateInfo[3]) < 1 || strlen(DateInfo[3]) > 5)return ShowPlayerDialog(playerid,DIALOG_LOTTO,DIALOG_STYLE_INPUT,"Lotto Nummer","Bitte gebe nun 6 Ziffern ein.\nBeispiel:\n6.12.2.5.46","Bestätigen","Abbrechen");
- if(strlen(DateInfo[4]) < 1 || strlen(DateInfo[4]) > 5)return ShowPlayerDialog(playerid,DIALOG_LOTTO,DIALOG_STYLE_INPUT,"Lotto Nummer","Bitte gebe nun 6 Ziffern ein.\nBeispiel:\n6.12.2.5.46","Bestätigen","Abbrechen");
- if(strlen(DateInfo[5]) < 1 || strlen(DateInfo[5]) > 5)return ShowPlayerDialog(playerid,DIALOG_LOTTO,DIALOG_STYLE_INPUT,"Lotto Nummer","Bitte gebe nun 6 Ziffern ein.\nBeispiel:\n6.12.2.5.46","Bestätigen","Abbrechen");
- format(string,sizeof(string),"%s.%s",inputtext,SpielerName(playerid));
- format(query,sizeof(query),"INSERT INTO `Lotto` (`Name`,`Nummer`) VALUES ('%s','%s')",
- SpielerName(playerid),string);
- db_query(Data,query);
- format(string,sizeof(string),""#HTML_ORANGE"Deine 6 Zahlen\n"#HTML_ORANGE"1. "HTML_WHITE"%d\n"#HTML_ORANGE"2. "HTML_WHITE"%d\n"#HTML_ORANGE"3. "HTML_WHITE"%d\n"#HTML_ORANGE"4. "HTML_WHITE"%d\n"#HTML_ORANGE"5. "HTML_WHITE"%d\n"#HTML_ORANGE"6. "HTML_WHITE"%d",
- strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]),strval(DateInfo[3]),strval(DateInfo[4]),strval(DateInfo[5]));
- ShowPlayerDialog(playerid,DIALOG_KP,DIALOG_STYLE_MSGBOX,"Deine Lottozahlen",string,"Okay","Zurück");
- GivePlayerMoney(playerid,-TEILNAHME);
- LottoGeld += TEILNAHME;
- SaveLotto();
- }
- return 1;
- }
- }
- return 1;
- }
- COMMAND:lotto(playerid,params[])
- {
- new DBResult:Result, string[512];
- format(string,sizeof(string),"SELECT * FROM `Lotto` WHERE Name = '%s'",SpielerName(playerid));
- Result = db_query(Data,string);
- if(db_num_rows(Result) > 0) return SendClientMessage(playerid,0x969696FF,"Du besitzt bereits ein Lottoschein. Nutze: /Lottoschein.");
- else
- {
- ShowPlayerDialog(playerid,DIALOG_LOTTO,DIALOG_STYLE_INPUT,"Lotto Nummer","Bitte gebe nun 6 Ziffern ein.\nBeispiel:\n6.12.2.5.46","Bestätigen","Abbrechen");
- }
- return 1;
- }
- COMMAND:alotto(playerid,params[])
- {
- new cmd[35],string[124], Zufall[6], stunde,minute,sekunde,jahr,monat,tag;
- if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,GRAU,"Du bist kein Teammitglied./Du hast nicht den jeweiligen Adminrang.");
- if(sscanf(params,"s[35]",cmd))
- {
- SendClientMessage(playerid,0x969696FF,"BENUTZE: /aLotto [Art]");
- SendClientMessage(playerid,0xFFFFFFFF,"ART: Save, Geldlöschen, Gelderhöhen (+ "#GELDERHOEEN"K)");
- SendClientMessage(playerid,0xFFFFFFFF,"ART: Starten");
- return 1;
- }
- gettime(stunde,minute,sekunde); getdate(jahr,monat,tag);
- if(strcmp(cmd,"Save",true) == 0)
- {
- SaveLotto();
- format(string,sizeof(string),"Du hast das Lottogeld gesaved. Es befinden sich %d€ drinnen",LottoGeld);
- SendClientMessage(playerid,0x00FFFFFF,string);
- return 1;
- }
- else if(strcmp(cmd,"Geldlöschen",true) == 0)
- {
- LottoGeld = 0;
- SaveLotto();
- SendClientMessage(playerid,0x00FFFFFF,"Du hast das Lottogeld gelöscht!");
- format(string,sizeof(string),"INSERT INTO `LottoLog` (`Tat`,`Admin`,`Uhrzeit`,`Datum`,`JackPot`) VALUES ('Löschen','%s','%02d:%02d:%02d','%04d-%02d-%02d','%d')",
- SpielerName(playerid),stunde,minute,sekunde,tag,monat,jahr,LottoGeld);
- return 1;
- }
- else if(strcmp(cmd,"Gelderhöhen",true) == 0)
- {
- LottoGeld += GELDERHOEEN;
- SaveLotto();
- SendClientMessage(playerid,0x00FFFFFF,"Du hast das Lottogeld gelöscht!");
- format(string,sizeof(string),"INSERT INTO `LottoLog` (`Tat`,`Admin`,`Uhrzeit`,`Datum`,`JackPot`) VALUES ('Erhöhen','%s','%02d:%02d:%02d','%04d-%02d-%02d','%d')",
- SpielerName(playerid),stunde,minute,sekunde,tag,monat,jahr,LottoGeld);
- return 1;
- }
- else if(strcmp(cmd,"starten",true) == 0)
- {
- Zufall[0]=random(46);Zufall[1]=random(46);Zufall[2]=random(46);Zufall[3]=random(46);Zufall[4]=random(46);Zufall[5]=random(46);
- Lotto(Zufall[0],Zufall[1],Zufall[2],Zufall[3],Zufall[4],Zufall[5]);
- format(string,sizeof(string),"INSERT INTO `LottoLog` (`Tat`,`Admin`,`Uhrzeit`,`Datum`,`JackPot`) VALUES ('Starten','%s','%02d:%02d:%02d','%04d-%02d-%02d','%d')",
- SpielerName(playerid),stunde,minute,sekunde,tag,monat,jahr,LottoGeld);
- return 1;
- }
- else
- {
- SendClientMessage(playerid,0x969696FF,"BENUTZE: /aLotto [Art]");
- SendClientMessage(playerid,0xFFFFFFFF,"ART: Save, Geldlöschen, Gelderhöhen (+ "#GELDERHOEEN"K)");
- SendClientMessage(playerid,0xFFFFFFFF,"ART: Starten");
- }
- return 1;
- }
- COMMAND:Lottoschein(playerid,params[])
- {
- new DBResult:Result, string[512], DateInfo[7][124];
- format(string,sizeof(string),"SELECT * FROM `Lotto` WHERE Name = '%s'",SpielerName(playerid));
- Result = db_query(Data,string);
- if(db_num_rows(Result) > 0)
- {
- db_get_field_assoc(Result,"Nummer",string,sizeof(string));
- split(string,DateInfo,'.');
- format(string,sizeof(string),""#HTML_ORANGE"Deine 6 Zahlen\n"#HTML_ORANGE"1. "HTML_WHITE"%d\n"#HTML_ORANGE"2. "HTML_WHITE"%d\n"#HTML_ORANGE"3. "HTML_WHITE"%d\n"#HTML_ORANGE"4. "HTML_WHITE"%d\n"#HTML_ORANGE"5. "HTML_WHITE"%d\n"#HTML_ORANGE"6. "HTML_WHITE"%d",
- strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]),strval(DateInfo[3]),strval(DateInfo[4]),strval(DateInfo[5]));
- ShowPlayerDialog(playerid,DIALOG_KP,DIALOG_STYLE_MSGBOX,"Deine Lottozahlen",string,"Okay","Zurück");
- }
- else return SendClientMessage(playerid,0x969696FF,"Du besitz keinen Lottoschein. Nutze /Lotto");
- return 1;
- }
- COMMAND:Gewinn(playerid,params[])
- {
- new DBResult:Result, string[512],str[35];
- format(string,sizeof(string),"SELECT * FROM `LottoUser` WHERE Name = '%s'",SpielerName(playerid));
- Result = db_query(Data,string);
- if(db_num_rows(Result) > 0)
- {
- db_get_field_assoc(Result,"Geld",str,sizeof(str));
- GivePlayerMoney(playerid,strval(str));
- format(string,sizeof(string),"Herzlichen Glückwunsch! Du hast im Lotto %d€ gewonnen",strval(str));
- SendClientMessage(playerid,0x0087FFFF,string);
- }
- else return SendClientMessage(playerid,0x969696FF,"Du hast nicht im Lotto gewonnen!");
- return 1;
- }
- //Alle Stocks
- stock Createtable()
- {
- db_query(Data,"CREATE TABLE IF NOT EXISTS `Lotto`(`Name`,`Nummer`)");
- db_query(Data,"CREATE TABLE IF NOT EXISTS `LottoGeld`(`Geld`)");
- db_query(Data,"CREATE TABLE IF NOT EXISTS `LottoUser`(`Name`,`Geld`)");
- db_query(Data,"CREATE TABLE IF NOT EXISTS `LottoLog` (`Tat`,`Admin`,`Uhrzeit`,`Datum`,`JackPot`)");
- return 1;
- }
- stock Lotto(One,Two,Three,Four,Five,Six)
- {
- new store[124],JackPot,query[124];
- new DBResult:Result = db_query(Data,"SELECT `Nummer` FROM `Lotto`");
- while(db_next_row(Result))
- {
- new DateInfo[7][200],Speicher[6];
- db_get_field(Result,0,store,124);
- split(store,DateInfo,'.');
- for(new i=0;i<6;i++)
- {
- Speicher[i] = strval(DateInfo[i]);
- }
- JackPot = 0;
- for(new i;i<6;i++)
- {
- if(Speicher[i] == One)
- {
- Speicher[i] = -1;
- JackPot ++;
- }
- if(Speicher[i] == Two)
- {
- Speicher[i] = -1;
- JackPot ++;
- }
- if(Speicher[i] == Three)
- {
- Speicher[i] = -1;
- JackPot ++;
- }
- if(Speicher[i] == Four)
- {
- Speicher[i] = -1;
- JackPot ++;
- }
- if(Speicher[i] == Five)
- {
- Speicher[i] = -1;
- JackPot ++;
- }
- if(Speicher[i] == Six)
- {
- Speicher[i] = -1;
- JackPot ++;
- }
- }
- if(JackPot >= VOLLENGEWINN)
- {
- new string[512],str[35];
- format(string,sizeof(string),"SELECT * FROM `LottoUser` WHERE Name = '%s'",DateInfo[6]);
- Result = db_query(Data,string);
- if(db_num_rows(Result) > 0)
- {
- db_get_field_assoc(Result,"Geld",str,sizeof(str));
- format(string,sizeof(string),"UDPATE `LottoUser` SET `Geld` = %d WHERE Name = '%s'",strval(str)+LottoGeld,DateInfo[6]);
- }
- else
- {
- format(query,sizeof(query),"INSERT INTO `LottoUser` (`Name`,`Geld`) VALUES ('%s','%d')",DateInfo[6],LottoGeld);
- db_query(Data,query);
- }
- format(string,sizeof(string),"Der Spieler %s hat dein Jackpot von %d€ gewonnen",DateInfo[6],LottoGeld);
- SendClientMessageToAll(0xFFFF00AA,string);
- LottoGeld = STARTGEWINN;
- SaveLotto();
- }
- format(query,sizeof(query),"DELETE FROM `Lotto` WHERE Name = '%s'",DateInfo[6]);
- db_query(Data,query);
- }
- db_free_result(Result);
- format(query,sizeof(query),"DELETE FROM `Lotto` WHERE Name = 'Muss'");
- db_query(Data,query);
- return 1;
- }
- stock SaveLotto()
- {
- new string[256];
- format(string,sizeof(string),"UPDATE `LottoGeld` SET `Geld` = %d",LottoGeld);
- db_query(Data,string);
- return 1;
- }
- stock split(const strsrc[],strdest[][],delimiter)
- {
- new aNum,len,i,li;
- while(i <= strlen(strsrc))
- {
- if(strsrc[i] == delimiter || i == strlen(strsrc))
- {
- len = strmid(strdest[aNum],strsrc,li,i,128);
- strdest[aNum][len] = false;
- li = i+1;
- aNum++;
- }
- i++;
- }
- return 1;
- }
- stock SpielerName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- return name;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement