Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Dynamisches Paydaysystem by ErikSon
- Zinsen einstellbar
- Steuern einstellbar
- Paydayzeit einstellbar
- Levelup einstellbar
- Levelkosten einstellbar
- */
- #include <a_samp>
- #include <dini>
- #include <ocmd>
- //Farben
- #define Schwarz 0x000000FF
- #define Rot 0xE10000FF
- #define Gelb 0xFFE600FF
- #define HBlau 0x00FFFFFF
- #define DBlau 0x0000FFFF
- #define Blau 0x2E9AFEFF
- #define HGruen 0x00FF00FF
- #define Orange 0xFFAB00FF
- #define Weiss 0xFFFFFFFF
- #define Grau 0xDCDCDCFF
- #define Gold 0xD4A017AA
- #define Lila 0x7800FFFF
- #define Pink 0xFF00CDFF
- #define Gruen 0x009F32FF
- forward PDS_OnGameModeInit();
- forward PDS_OnGameModeExit();
- forward PDS_OnPlayerConnect(playerid);
- forward PDS_OnPlayerDisconnect(playerid,reason);
- forward PDS_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
- enum
- {
- dSettings = 9000,
- dESteuern,
- dEZinsen,
- dPD,
- dEPDZeit,
- dEEP,
- dELvlKosten,
- dStats
- }
- forward PDS_Load();
- enum eEP
- {
- Float:Zinsen,
- Steuern,
- PDZeit,
- EP,
- LvlKosten,
- Timer
- }
- new Payday[eEP];
- enum PEP
- {
- Zeit,
- Bankgeld,
- pEP
- }
- new PDS_Payday[MAX_PLAYERS][PEP];
- public OnGameModeInit()
- {
- print("\n--------------------------------------");
- print(" Dynamisches Paydaysystem by ErikSon");
- print("--------------------------------------\n");
- new D[32]; format(D,sizeof(D),"/Payday/Settings.ini");
- if(!dini_Exists(D))
- {
- dini_Create(D);
- dini_FloatSet(D,"Zinsen",1.2),dini_IntSet(D,"Steuern",150),dini_IntSet(D,"PDZeit",60),dini_IntSet(D,"EP",4),dini_IntSet(D,"Levelkosten",2000);
- Payday[Zinsen] = 1.2,Payday[Steuern] = 150,Payday[PDZeit] = 60,Payday[EP] = 4,Payday[LvlKosten] = 2000;
- }
- else Payday[Zinsen] = dini_Float(D,"Zinsen"),Payday[Steuern] = dini_Int(D,"Steuern"),Payday[PDZeit] = dini_Int(D,"PDZeit"),Payday[EP] = dini_Int(D,"EP"),Payday[LvlKosten] = dini_Int(D,"Levelkosten");
- Payday[Timer] = SetTimer("PDS_Load",888*60,true);
- PDS_LoadDaten();
- return CallLocalFunction("PDS_OnGameModeInit","");
- }
- public OnGameModeExit()
- {
- KillTimer(Payday[Timer]);
- new D[32]; format(D,sizeof(D),"/Payday/Settings.ini");
- dini_IntSet(D,"Steuern",Payday[Steuern]),dini_FloatSet(D,"Zinsen",Payday[Zinsen]),dini_IntSet(D,"PDZeit",Payday[PDZeit]),
- dini_IntSet(D,"EP",Payday[EP]),dini_IntSet(D,"Levelkosten",Payday[LvlKosten]);
- return CallLocalFunction("PDS_OnGameModeExit","");
- }
- public OnPlayerConnect(playerid)
- {
- new PDD[32],p[32]; format(PDD,sizeof(PDD),"/Payday/Daten.ini");
- if(!dini_Exists(PDD))
- {
- dini_Create(PDD);
- format(p,sizeof(p),"%s_Zeit",PDS_name(playerid)); dini_IntSet(PDD,p,0),PDS_Payday[playerid][Zeit] = 0;
- format(p,sizeof(p),"%s_Bankgeld",PDS_name(playerid)); dini_IntSet(PDD,p,0), PDS_Payday[playerid][Bankgeld] = 0;
- format(p,sizeof(p),"%s_EP",PDS_name(playerid)); dini_IntSet(PDD,p,0), PDS_Payday[playerid][pEP] = 0;
- format(p,sizeof(p),"%s_Level",PDS_name(playerid)); dini_IntSet(PDD,p,1),SetPlayerScore(playerid,1);
- }
- else
- {
- format(p,sizeof(p),"%s_Zeit",PDS_name(playerid)); PDS_Payday[playerid][Zeit] = dini_Int(PDD,p);
- format(p,sizeof(p),"%s_Bankgeld",PDS_name(playerid)); PDS_Payday[playerid][Bankgeld] = dini_Int(PDD,p);
- format(p,sizeof(p),"%s_EP",PDS_name(playerid)); PDS_Payday[playerid][pEP] = dini_Int(PDD,p);
- format(p,sizeof(p),"%s_Level",PDS_name(playerid)); SetPlayerScore(playerid,dini_Int(PDD,p));
- }
- return CallLocalFunction("PDS_OnPlayerConnect","");
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new PDD[32],p[32]; format(PDD,sizeof(PDD),"/Payday/Daten.ini");
- format(p,sizeof(p),"%s_Zeit",PDS_name(playerid)); dini_IntSet(PDD,p,PDS_Payday[playerid][Zeit]);
- format(p,sizeof(p),"%s_Bankgeld",PDS_name(playerid)); dini_IntSet(PDD,p,PDS_Payday[playerid][Bankgeld]);
- format(p,sizeof(p),"%s_EP",PDS_name(playerid)); dini_IntSet(PDD,p,PDS_Payday[playerid][pEP]);
- format(p,sizeof(p),"%s_Level",PDS_name(playerid)); dini_IntSet(PDD,p,GetPlayerScore(playerid));
- return CallLocalFunction("PDS_OnPlayerDisconnect","ii",playerid,reason);
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case dSettings:
- {
- if(!response)return 1;
- switch(listitem)
- {
- case 0:return ShowPlayerDialog(playerid,dESteuern,DIALOG_STYLE_INPUT,"Payday - Steuern","Bitte gebe ein, wie hoch der Steuerbetrag sein soll.","Speichern","Abbrechen");
- case 1:return ShowPlayerDialog(playerid,dEZinsen,DIALOG_STYLE_INPUT,"Payday - Zinsen","Bitte gebe ein, wie hoch der Zinsbetrag sein soll.","Speichern","Abbrechen");
- case 2:return ShowPlayerDialog(playerid,dEPDZeit,DIALOG_STYLE_INPUT,"Payday - PaydayZeit","Bitte gebe ein, wie lange ein Payday dauern soll.","Speichern","Abbrechen");
- case 3:return ShowPlayerDialog(playerid,dEEP,DIALOG_STYLE_INPUT,"Payday - EP","Bitte gebe ein, wie viel EP ( 1 EP / Stunde ) man brauchen soll,\num Level-Up zu kommen.\n\nDas Level wird dann mal den EP multipliziert.\nBeispiel: Level 3 - Es werden 4 EP pro Level benötigt.\n= 12 EP benötigt!","Speichern","Abbrechen");
- case 4:return ShowPlayerDialog(playerid,dELvlKosten,DIALOG_STYLE_INPUT,"Payday - Levelkosten","Bitte gebe ein, wie teuer ein Level-Up kosten soll.\nDie Kosten werden dann mal das Level multipliziert.\nBeispiel: Level 4 - 1000$ pro Level\n= 4000$ benötigt!","Speichern","Abbrechen");
- }
- }
- case dESteuern:
- {
- if(!response)return 1;
- if(!strval(inputtext))return ocmd_pdsettings(playerid),SendClientMessage(playerid,Rot,"Bitte gebe einen Betrag ein!");
- Payday[Steuern] = strval(inputtext);
- SendClientMessage(playerid,Blau,"Du hast den Steuerbetrag geändert & gespeichert.");
- return ocmd_pdsettings(playerid);
- }
- case dEZinsen:
- {
- if(!response)return 1;
- if(strval(inputtext) < 0)return ocmd_pdsettings(playerid),SendClientMessage(playerid,Rot,"Bitte gebe einen Betrag ein!");
- Payday[Zinsen] = floatstr(inputtext);
- SendClientMessage(playerid,Blau,"Du hast den Zinsbetrag geändert & gespeichert.");
- return ocmd_pdsettings(playerid);
- }
- case dEPDZeit:
- {
- if(!response)return 1;
- if(!strval(inputtext))return ocmd_pdsettings(playerid),SendClientMessage(playerid,Rot,"Bitte gebe einen Betrag ein!");
- Payday[PDZeit] = strval(inputtext);
- SendClientMessage(playerid,Blau,"Du hast die Paydayzeit geändert & gespeichert.");
- return ocmd_pdsettings(playerid);
- }
- case dEEP:
- {
- if(!response)return 1;
- if(!strval(inputtext))return ocmd_pdsettings(playerid),SendClientMessage(playerid,Rot,"Bitte gebe einen Betrag ein!");
- Payday[EP] = strval(inputtext);
- SendClientMessage(playerid,Blau,"Du hast die benötigte EP / Level geändert & gespeichert.");
- return ocmd_pdsettings(playerid);
- }
- case dELvlKosten:
- {
- if(!response)return 1;
- if(!strval(inputtext))return ocmd_pdsettings(playerid),SendClientMessage(playerid,Rot,"Bitte gebe einen Betrag ein!");
- Payday[LvlKosten] = strval(inputtext);
- SendClientMessage(playerid,Blau,"Du hast die Kosten / Level geändert & gespeichert.");
- return ocmd_pdsettings(playerid);
- }
- }
- return CallLocalFunction("PDS_OnDialogResponse","iiiis",playerid, dialogid, response, listitem, inputtext[512]);
- }
- public PDS_Load()
- {
- new i = 0;
- for(; i<MAX_PLAYERS; i++)
- {
- if(!IsPlayerConnected(i))continue;
- if(IsPlayerNPC(i))continue;
- PDS_Payday[i][Zeit] ++;
- if(PDS_Payday[i][Zeit] >= Payday[PDZeit])
- {
- new newstand = floatround((PDS_Payday[i][Bankgeld] - Payday[Steuern]) * Payday[Zinsen]);
- new string[512]; format(string,sizeof(string),"Alter Kontostand: %i$\n\n\nSteuern: %i$\nZinsen: %.1f%%\n\nNeuer Kontostand: %i$",PDS_Payday[i][Bankgeld],Payday[Steuern],Payday[Zinsen],newstand);
- ShowPlayerDialog(i,dPD,DIALOG_STYLE_MSGBOX,"Payday!",string,"Okay","");
- PDS_Payday[i][pEP] ++;
- PDS_Payday[i][Bankgeld] = newstand,PDS_Payday[i][Zeit] = 0;
- if(PDS_Payday[i][pEP] >= (Payday[EP] * GetPlayerScore(i)))SendClientMessage(i,Blau,"Benutze '/buylevel', um dir einen Level-Up zu kaufen.");
- }
- }
- return 1;
- }
- //Befehle
- ocmd:pdsettings(playerid)
- {
- if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,Rot,"Du bist kein Admin!");
- new string[128]; format(string,sizeof(string),"Steuern: %i$\nZinsen: %.1f%%\nPaydayzeit: %i Minuten / Payday\nEP / Level: %i\nKosten / Level: %i$",Payday[Steuern],Payday[Zinsen],Payday[PDZeit],Payday[EP],Payday[LvlKosten]);
- return ShowPlayerDialog(playerid,dSettings,DIALOG_STYLE_LIST,"Paydayeinstellungen",string,"Bearbeiten","Abbrechen");
- }
- ocmd:stats(playerid)
- {
- new string[128]; format(string,sizeof(string),"Name: %s\nLevel: %i\nGeld: %i$\nBankkonto: %i$\nPayday: %i / %i Minuten\nEP: %i / %i\nLevelkosten: %i$",PDS_name(playerid),GetPlayerScore(playerid),
- GetPlayerMoney(playerid),PDS_Payday[playerid][Bankgeld],PDS_Payday[playerid][Zeit],Payday[PDZeit],PDS_Payday[playerid][pEP],(Payday[EP]*GetPlayerScore(playerid)),(Payday[LvlKosten] * GetPlayerScore(playerid)));
- return ShowPlayerDialog(playerid,dStats,DIALOG_STYLE_MSGBOX,"Statistik",string,"Okay","");
- }
- ocmd:buylevel(playerid)
- {
- if(PDS_Payday[playerid][pEP] < (Payday[EP]*GetPlayerScore(playerid)))return SendClientMessage(playerid,Rot,"Du hast noch nicht genug EP!");
- if(GetPlayerMoney(playerid) < (Payday[LvlKosten]*GetPlayerScore(playerid)))return SendClientMessage(playerid,Rot,"Du hast nicht genug Geld bei!");
- SetPlayerScore(playerid,GetPlayerScore(playerid)+ 1);
- PDS_Payday[playerid][pEP] = 0;
- GivePlayerMoney(playerid,-(Payday[LvlKosten]*GetPlayerScore(playerid)));
- return SendClientMessage(playerid,Blau,"Du bist nun Level-Up!");
- }
- //Funktionen
- stock PDS_name(playerid)
- {
- new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
- return pname;
- }
- stock PDS_LoadDaten()
- {
- new i = 0;
- for(; i<MAX_PLAYERS; i++)
- {
- if(!IsPlayerConnected(i))continue;
- if(IsPlayerNPC(i))continue;
- new PDD[32],p[32]; format(PDD,sizeof(PDD),"/Payday/Daten.ini");
- if(!dini_Exists(PDD))
- {
- dini_Create(PDD);
- format(p,sizeof(p),"%s_Zeit",PDS_name(i)); dini_IntSet(PDD,p,0),PDS_Payday[i][Zeit] = 0;
- format(p,sizeof(p),"%s_Bankgeld",PDS_name(i)); dini_IntSet(PDD,p,0), PDS_Payday[i][Bankgeld] = 0;
- format(p,sizeof(p),"%s_EP",PDS_name(i)); dini_IntSet(PDD,p,0), PDS_Payday[i][pEP] = 0;
- format(p,sizeof(p),"%s_Level",PDS_name(i)); dini_IntSet(PDD,p,1),SetPlayerScore(i,1);
- }
- else
- {
- format(p,sizeof(p),"%s_Zeit",PDS_name(i)); PDS_Payday[i][Zeit] = dini_Int(PDD,p);
- format(p,sizeof(p),"%s_Bankgeld",PDS_name(i)); PDS_Payday[i][Bankgeld] = dini_Int(PDD,p);
- format(p,sizeof(p),"%s_EP",PDS_name(i)); PDS_Payday[i][pEP] = dini_Int(PDD,p);
- format(p,sizeof(p),"%s_Level",PDS_name(i)); SetPlayerScore(i,dini_Int(PDD,p));
- }
- }
- return 1;
- }
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect PDS_OnPlayerConnect
- #if defined _ALS_OnGameModeInit
- #undef OnGameModeInit
- #else
- #define _ALS_OnGameModeInit
- #endif
- #define OnGameModeInit PDS_OnGameModeInit
- #if defined _ALS_OnGameModeExit
- #undef OnGameModeExit
- #else
- #define _ALS_OnGameModeExit
- #endif
- #define OnGameModeExit PDS_OnGameModeExit
- #if defined _ALS_OnPlayerDisconnect
- #undef OnPlayerDisconnect
- #else
- #define _ALS_OnPlayerDisconnect
- #endif
- #define OnPlayerDisconnect PDS_OnPlayerDisconnect
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect PDS_OnPlayerConnect
- #if defined _ALS_OnDialogResponse
- #undef OnDialogResponse
- #else
- #define _ALS_OnDialogResponse
- #endif
- #define OnDialogResponse PDS_OnDialogResponse
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement