Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <YSI\y_ini>
- #include <dudb>
- #include <zcmd>
- #include <sscanf2>
- #include <foreach>
- #define PATH "/Igraci/%s.ini"
- #define PLAYER_MUST_REGISTER
- #define REGISTERED_MONEY 5000
- #define Bela 0xFFFFFFA
- #define Crvena 0xFF0000AA
- #define Zuta 0xFFFF00FF
- #define DIALOG_REGISTER 999
- #define DIALOG_LOGIN 998
- #define PAY_TIME (15) // PAYDAY SVAKIH 15 minuta
- #define RESPECTS_LEVEL (1) // KOLIKO CE RESPECTA DOBITI NA JEDNOJ PLACI
- #define LEVELEXP (4) // level * 4 = 1 lvl = 4 respekta, za lvl 2, 8
- main()
- {
- }
- #pragma unused ret_memcpy
- #pragma unused PayDay
- enum pInfo
- {
- Sifra,
- Hash,
- Pare,
- Level,
- Admin,
- GameMaster,
- Respect,
- PayDayTime,
- OnlineMin,
- OnlineHours,
- Smrti,
- Ubistava
- };
- new PVar[MAX_PLAYERS][pInfo];
- /*#if defined AUTOLOGIN
- new pIP[MAX_PLAYERS][16];
- #endif*/
- new onlinesec[MAX_PLAYERS];
- new pLogged[MAX_PLAYERS];
- new LOCAL_TIMER;
- stock ImeIgraca(playerid)
- {
- new Ime[256],name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- format(Ime,sizeof(Ime),PATH,name);
- return Ime;
- }
- public OnGameModeInit()
- {
- print("\n--------------------------------------");
- print(" Ping Gaming RP mod. by Plavsa. ");
- print("--------------------------------------\n");
- SetGameModeText("PG RP By Plavsa");
- // TIMER's
- LOCAL_TIMER = SetTimer("LokalniTimer",1000,true);
- return 1;
- }
- public OnGameModeExit()
- {
- KillTimer(LOCAL_TIMER);
- return (true);
- }
- public OnPlayerConnect(playerid)
- {
- if(fexist(ImeIgraca(playerid))) {
- INI_ParseFile(ImeIgraca(playerid), "UserDataLoad_%s", .bExtra = true, .extra = playerid);
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Login","Nick je registrovan, ukucajte svoju sifru da se logujete! ","Login","Izlaz");
- }
- else {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"{33BBFF} Registracija","Dobrodosli na Ping Gaming RP, Molimo registrujte se, ukucajte svoju sifru!","Registracija","Izlaz");
- }
- if(!IsRolePlayName(playerid)) {
- SendClientMessage(playerid, Bela, "[PG AC] - [KICKOVAN]: Molimo koristite RolePlay ime. (Primer: Petar_Petrovic)");
- Kick(playerid);
- return 1;
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- UpdatePlayer(playerid);
- pLogged[playerid] = 0;
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- if(pLogged[playerid] == 0) return SendClientMessage(playerid,Zuta,"Morate se prvo registrovati ili ulogovati pre spawnanja.!");
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch( dialogid ) {
- case DIALOG_REGISTER:
- {
- if (!response) return Kick(playerid);
- if(response) {
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""Bela"Registracija...",""Bela"Ukucali ste pogresnu sifru.\n"Bela"Ukucajte vasu sifru.","Registracija","Izlaz");
- new INI:File = INI_Open(UserPath(playerid));
- new INI:IGRAC = INI_Open(iData);
- PVar[playerid][Hash] = (udb_hash(inputtext));
- INI_WriteInt(IGRAC, "Sifra", PVar[playerid][Hash]);
- INI_WriteInt(IGRAC, "Pare", REGISTERED_MONEY);
- INI_WriteInt(IGRAC, "Admin", PVar[playerid][Admin]);
- INI_WriteInt(IGRAC, "GameMaster", PVar[playerid][GameMaster]);
- INI_WriteInt(IGRAC, "Respect", PVar[playerid][Respect]);
- INI_WriteInt(IGRAC, "PayDayTime", PVar[playerid][PayDayTime]);
- INI_WriteInt(IGRAC, "OnlineMin", PVar[playerid][OnlineMin]);
- INI_WriteInt(IGRAC, "OnlineHours", PVar[playerid][OnlineHours]);
- INI_WriteInt(IGRAC, "Level", PVar[playerid][Level]);
- INI_WriteInt(IGRAC, "Smrti", PVar[playerid][Smrti]);
- INI_WriteInt(IGRAC, "Ubistava", PVar[playerid][Ubistava]);
- INI_Close(IGRAC);
- PlayerSpectatePlayer(playerid,0);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- pLogged{playerid} = true;
- SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
- SpawnPlayer(playerid);
- ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Cestitamo!",""COL_WHITE"Uspesno ste se registrovali! ","Ok","");
- }
- }
- case DIALOG_LOGIN:
- {
- if ( !response ) return Kick ( playerid );
- if( response ) {
- if(udb_hash(inputtext) == PlayerInfo[playerid][pPass]) {
- INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
- GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
- /*ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Log-in!",""COL_WHITE"Uspesno ste se logovali!","Ok","");
- SpawnPlayer(playerid);
- SetPlayerColor(playerid, COLOR_WHITE);*/
- }
- else {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"Ukucali ste pogresnu sifru.\n"COL_WHITE"Ukucajte svoju sifru da se logujete.","Login","Izlaz");
- }
- return 1;
- }
- }
- }
- return 0;
- }
- stock PayDay(playerid)
- {
- new string[128];
- new varCheck[2] = (0);
- if(pLogged{playerid} == 1)
- {
- PVar[playerid][Respect] += (RESPECTS_LEVEL);
- varCheck[0] = PVar[playerid][Level] + 1;
- varCheck[1] = varCheck[0]*LEVELEXP;
- if(PVar[playerid][Respect] >= varCheck[1])
- {
- // LEVEL UP
- PVar[playerid][Level] += (1);
- format(string, sizeof(string), "Cestitamo sada si lvl %d.",PVar[playerid][Level]);
- SendClientMessage(playerid, Crvena, string);
- UpdatePlayer(playerid);
- }
- }
- else
- {
- Kick(playerid);
- }
- return (true);
- }
- stock UpdatePlayer(playerid)
- {
- new iData[128];
- format(iData, sizeof iData, PATH, ImeIgraca(playerid));
- if(fexist(iData))
- {
- if(pLogged{playerid} == 1)
- {
- new INI:IGRAC = INI_Open(iData);
- INI_WriteInt(IGRAC, "Sifra", PVar[playerid][Hash]);
- INI_WriteInt(IGRAC, "Pare", PVar[playerid][Pare]);
- INI_WriteInt(IGRAC, "Admin", PVar[playerid][Admin]);
- INI_WriteInt(IGRAC, "GameMaster", PVar[playerid][GameMaster]);
- INI_WriteInt(IGRAC, "Respect", PVar[playerid][Respect]);
- INI_WriteInt(IGRAC, "PayDayTime", PVar[playerid][PayDayTime]);
- INI_WriteInt(IGRAC, "OnlineMin", PVar[playerid][OnlineMin]);
- INI_WriteInt(IGRAC, "OnlineHours", PVar[playerid][OnlineHours]);
- INI_WriteInt(IGRAC, "Level", PVar[playerid][Level]);
- INI_WriteInt(IGRAC, "Smrti", PVar[playerid][Smrti]);
- INI_WriteInt(IGRAC, "Ubistava", PVar[playerid][Ubistava]);
- INI_Close(IGRAC);
- }
- }
- return (true);
- }
- forward GetPlayerData(playerid,name[],value[]);
- public GetPlayerData(playerid,name[],value[])
- {
- /*#if defined AUTOLOGIN
- INI_String("IP",pIP[playerid],16);
- #endif*/
- INI_Int("Sifra", PVar[playerid][Sifra]);
- INI_Int("Pare", PVar[playerid][Pare]);
- INI_Int("Level", PVar[playerid][Level]);
- INI_Int("Admin", PVar[playerid][Admin]);
- INI_Int("Ubistava", PVar[playerid][Ubistava]);
- INI_Int("Smrti", PVar[playerid][Smrti]);
- INI_Int("PayDayTime", PVar[playerid][PayDayTime]);
- INI_Int("OnlineMin", PVar[playerid][OnlineMin]);
- INI_Int("OnlineHours", PVar[playerid][OnlineHours]);
- INI_Int("Respect", PVar[playerid][Respect]);
- INI_Int("GameMaster", PVar[playerid][GameMaster]);
- return (true);
- }
- forward LokalniTimer();
- public LokalniTimer()
- {
- foreach(Player, i)
- {
- onlinesec[i] += 1;
- if(onlinesec[i] >= 60)
- {
- PVar[i][PayDayTime] += 1;
- PVar[i][OnlineMin] += 1;
- onlinesec[i] = 0;
- }
- if(PVar[i][OnlineMin] >= 60)
- {
- PVar[i][OnlineHours] += 1;
- PVar[i][OnlineMin] = 0;
- }
- if(PVar[i][PayDayTime] == PAY_TIME)
- {
- PVar[i][PayDayTime] = 0;
- PayDay(i);
- }
- if(PVar[i][Level] < 1 || GetPlayerScore(i) < 1)
- {
- PVar[i][Level] = (1);
- }
- if(PVar[i][Level] != GetPlayerScore(i))
- {
- SetPlayerScore(i, PVar[i][Level]);
- }
- }
- return (true);
- }
- stock IsRolePlayName(playerid, bool:alphaonly = true)
- {
- new trpn[MAX_PLAYER_NAME];
- if(GetPlayerName(playerid,trpn,sizeof(trpn))) {
- new strd = strfind(trpn, "_", false);
- if(strfind(trpn,"_",false,strd+1) == -1) {
- if(strd > 0) {
- if(trpn[strd-1] && trpn[strd+1]) {
- if(alphaonly) {
- for(new a = 0, l = strlen(trpn); a < l; a++) {
- switch(trpn[a]) {
- case '0' .. '9': return 0;
- case 'a' .. 'z': continue;
- case 'A' .. 'Z': continue;
- // easier than specifying every invalid char
- case '_': continue;
- default: return 0;
- }
- }
- }
- return 1;
- }
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment