Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- #include <sscanf2>
- #include <streamer>
- #include <zcmd>
- #include <regex>
- native WP_Hash(buffer[], len, const str[]);
- #define SQL_HOST "localhost"
- #define SQL_USER "root"
- #define SQL_DB "samp"
- #define SQL_PASS ""
- #define DIALOG_LOGIN 1
- #define DIALOG_REG 2
- #define SCM SendClientMessage
- #define SPD ShowPlayerDialog
- #define ORANGE 0xFF9900AA
- #define RED 0xAA3333AA
- #define BLUE 0x0000BBAA
- #define LIGHTBLUE 0x33CCFFAA
- #define WHITE 0xFFFFFFAA
- #define IsValidRpName(%1) \
- regex_match(%1, "([A-Z]{1,1})[a-z]{2,9}+_([A-Z]{1,1})[a-z]{2,9}")
- #define IPC IsPlayerConnected
- forward KickTimer(playerid);
- forward NovacPlusTimer(playerid);
- forward PdPoeni();
- forward PayDay(i);
- new Ulogovan[MAX_PLAYERS];
- new DobioPlatu[MAX_PLAYERS];
- new Text:NovacPlusTD;
- main()
- {
- print("\n----------------------------------");
- print(" Blank Gamemode by your name here");
- print("----------------------------------\n");
- }
- enum pinfo
- {
- Ime[23],
- Lozinka[129],
- Novac,
- Registrovan,
- Level,
- Exp,
- PayDayPoeni,
- Admin
- }
- new PI[MAX_PLAYERS][pinfo];
- public OnGameModeInit()
- {
- mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
- mysql_debug(1);
- SetGameModeText("Blank Script");
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- AllowInteriorWeapons(1);// (1) mogu koristit, (0) ne mogu koristit oruzje u interieru
- DisableInteriorEnterExits();
- LimitGlobalChatRadius(30);
- EnableStuntBonusForAll(0);
- ShowPlayerMarkers(1);
- ManualVehicleEngineAndLights();
- NovacPlusTD = TextDrawCreate(498.000000, 100.187500, "+ $500");
- TextDrawLetterSize(NovacPlusTD, 0.449999, 1.600000);
- TextDrawAlignment(NovacPlusTD, 1);
- TextDrawColor(NovacPlusTD, -16711681);
- TextDrawSetShadow(NovacPlusTD, 0);
- TextDrawSetOutline(NovacPlusTD, 1);
- TextDrawBackgroundColor(NovacPlusTD, 51);
- TextDrawFont(NovacPlusTD, 3);
- TextDrawSetProportional(NovacPlusTD, 1);
- SetTimer("PdPoeni", 58000+random(5000), true);
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- if(Ulogovan[playerid] == 1)
- {
- SetSpawnInfo(playerid, 0, 199, 1611.0992,-2330.3567,13.5376,0.0000,0,0,0,0,0,0);
- SpawnPlayer(playerid);
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- if(!IsValidRpName(ImeIgraca(playerid)))
- {
- SCM(playerid, ORANGE, " >> Ime koje ste odabrali nije u validnom RolePlay formatu.");
- SCM(playerid, RED, " (info) Primer validnog RolePlay imena: Ime_Prezima.");
- SetTimerEx("KickTimer", 100, false, "i", playerid);
- return 1;
- }
- PI[playerid][Novac] = 0;
- PI[playerid][Level] = 1;
- PI[playerid][PayDayPoeni] = 0;
- PI[playerid][Exp] = 0;
- SetPlayerColor(playerid, WHITE);
- ProveriIgraca(playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- UpdateIgraca(playerid);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(Ulogovan[playerid] == 0)
- {
- SCM(playerid, ORANGE, " >> Ovaj server zahteva prijavu prije spawna, automatski ste izbaceni !");
- SetTimerEx("KickTimer", 100, false, "i", playerid);
- return 1;
- }
- GivePlayerMoney(playerid, PI[playerid][Novac]);
- 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 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[])
- {
- switch(dialogid)
- {
- case DIALOG_REG:
- {
- if(!response) return Kick(playerid);
- if(response)
- {
- if(strlen(inputtext) < 6 || strlen(inputtext) > 20)
- {
- SCM(playerid, ORANGE, " >> Lozinka mora da sadrzi minimalno 6 a maksimalno 20 karaktera !");
- new rstring[500];
- format(rstring, sizeof(rstring), "{FFFFFF}Dobrodosli na Server %s\n\n{00C0FF}Vas racun nije pronadjen u nasoj bazi potadaka, molimo vas da se registrujete.", ImeIgraca(playerid));
- SPD(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{00C0FF}Registracija", rstring, "Reg", "Izlaz");
- }
- else
- {
- WP_Hash(PI[playerid][Lozinka], 129, inputtext);
- SendClientMessage(playerid, -1, "You have been successfully registered!");
- PI[playerid][Level] = 1;
- PI[playerid][Novac] = 500;
- SetPlayerScore(playerid, PI[playerid][Level]);
- UpisiVarijable(playerid);
- Ulogovan[playerid] = 1;
- }
- }
- }
- case DIALOG_LOGIN:
- {
- if(!response) return Kick(playerid);
- if(response)
- {
- if(strlen(inputtext) < 6 || strlen(inputtext) > 21)
- {
- new str[250];
- format(str, sizeof(str), "{FFFFFF}Dobrodosli na SA-MP Server %s\n\n{00C0FF}Vas racun je pronadjen u nasoj bazi podataka, molimo da se prijavite.", ImeIgraca(playerid));
- SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00C0FF}Prijava", str, "Prijava", "Izlaz");
- }
- else
- {
- Ulogovan[playerid] = 0;
- UlogujIgraca(playerid, inputtext);
- }
- }
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- public KickTimer(playerid)
- {
- Kick(playerid);
- return 1;
- }
- public PdPoeni()
- {
- new sat, minut, sekund, godina, mesec, dan;
- gettime(sat, minut, sekund);
- getdate(godina, mesec, dan);
- for(new i = 0; i < GetMaxPlayers(); i++)
- {
- PI[i][PayDayPoeni] ++;
- if(minut >= 0 && minut <= 3)
- {
- if(DobioPlatu[i] == 0)
- {
- PayDay(i);
- }
- }
- else if(minut > 3) DobioPlatu[i] = 0;
- }
- return 1;
- }
- public PayDay(i)
- {
- if(PI[i][PayDayPoeni] < 30)
- {
- SCM(i, ORANGE, " >> Niste igrali dovoljno dugo da bi ste dobili platu !");
- DobioPlatu[i] = 1;
- return 1;
- }
- PI[i][Exp] ++;
- new iskustvo = (PI[i][Level] * 2) + 2;
- if(PI[i][Exp] < iskustvo)
- {
- SCM(i, ORANGE, " ** Plata je legla na vas racun, niste dobili level + !");
- }
- else if(PI[i][Exp] >= iskustvo)
- {
- SCM(i, ORANGE, " ** Plata je legla na vas racun, i dobili ste level + !");
- PI[i][Exp] = 0;
- PI[i][Level] ++;
- SetPlayerScore(i, PI[i][Level]);
- }
- PI[i][PayDayPoeni] = 0;
- new Isk[300];
- format(Isk, sizeof(Isk), "UPDATE `igraci` SET `Level` = '%d', `Iskustvo` = '%d', `PDPoeni` = '%d' WHERE `Ime` = '%s' ", PI[i][Level], PI[i][Exp], PI[i][PayDayPoeni], ImeIgraca(i));
- mysql_query(Isk);
- return 1;
- }
- public NovacPlusTimer(playerid)
- {
- TextDrawHideForPlayer(playerid, Text:NovacPlusTD);
- return 1;
- }
- stock ProveriIgraca(playerid)
- {
- new Query[80], str[250];
- format(Query, sizeof(Query), "SELECT `Ime` FROM `igraci` WHERE `Ime` = '%s' LIMIT 1", ImeIgraca(playerid));
- mysql_query(Query);
- mysql_store_result();
- if(mysql_num_rows() != 0)
- {
- format(str, sizeof(str), "{FFFFFF}Dobrodosli na SA-MP Server %s\n\n{00C0FF}Vas racun je pronadjen u nasoj bazi podataka, molimo da se prijavite.", ImeIgraca(playerid));
- SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00C0FF}Prijava", str, "Prijava", "Izlaz");
- }
- else
- {
- format(str, sizeof(str), "{FFFFFF}Dobrodosli na SA-MP Server %s\n\n{00C0FF}Vas racun nije pronadjen u nasoj bazi potadaka, molimo vas da se registrujete.", ImeIgraca(playerid));
- SPD(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{00C0FF}Registracija", str, "Reg", "Izlaz");
- }
- mysql_free_result();
- return 1;
- }
- stock ImeIgraca(playerid)
- {
- new FuckingName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, FuckingName, sizeof(FuckingName));
- return FuckingName;
- }
- stock UlogujIgraca(playerid,const password[])
- {
- new Query[300], EscapedText[60], buf[129];
- mysql_real_escape_string(password, EscapedText);
- WP_Hash(buf, 129, password);
- format(Query, sizeof(Query), "SELECT * FROM `igraci` WHERE `Ime` = '%s' AND `Lozinka` = '%s' ", ImeIgraca(playerid), buf);
- mysql_query(Query);
- mysql_store_result();
- if(mysql_num_rows() != 0)
- {
- Ulogovan[playerid] = 1;
- SetCameraBehindPlayer(playerid);
- UcitajPodatke(playerid);
- }
- else
- {
- SCM(playerid, -1, "Pogresna lozinka !");
- new str[250];
- format(str, sizeof(str), "{FFFFFF}Dobrodosli na SA-MP Server %s\n\n{00C0FF}Vas racun je pronadjen u nasoj bazi podataka, molimo da se prijavite.", ImeIgraca(playerid));
- SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00C0FF}Prijava", str, "Prijava", "Izlaz");
- }
- mysql_free_result();
- return 1;
- }
- stock UcitajPodatke(playerid)
- {
- new Query[500];
- format(Query, sizeof(Query), "SELECT * FROM `igraci` WHERE `Ime` = '%s' ", ImeIgraca(playerid));
- mysql_query(Query);
- mysql_store_result();
- mysql_fetch_row_format(Query, "|");
- sscanf(Query, "p<|>s[24]s[129]iiiiii", PI[playerid][Ime], PI[playerid][Lozinka], PI[playerid][Novac], PI[playerid][Registrovan], PI[playerid][Level], PI[playerid][Exp], PI[playerid][PayDayPoeni],
- PI[playerid][Admin]);
- mysql_free_result();
- SetPlayerScore(playerid, PI[playerid][Level]);
- return 1;
- }
- stock UpisiVarijable(playerid)
- {
- new Query[500];
- format(Query, sizeof(Query), "INSERT INTO `igraci` (`Ime`, `Lozinka`, `Novac`, `Registrovan`, `Level`, `Iskustvo`, `PDPoeni`, `Admin`) VALUES ('%s', '%s', '%d', '0', '1', '0', '0', '0') ", ImeIgraca(playerid),
- PI[playerid][Lozinka], PI[playerid][Novac]);
- mysql_query(Query);
- mysql_store_result();
- return 1;
- }
- stock UpdateIgraca(playerid)
- {
- new Query[2000];
- format(Query, sizeof(Query), "UPDATE `igraci` SET `Novac` = '%d', `Registrovan` = '%d', `Level` = '%d', `Iskustvo` = '%d', `PDPoeni` = '%d', `Admin` = '%d' WHERE `Ime` = '%s'", PI[playerid][Novac], PI[playerid][Registrovan], PI[playerid][Level],
- PI[playerid][Exp], PI[playerid][PayDayPoeni], PI[playerid][Admin], ImeIgraca(playerid));
- mysql_query(Query);
- return 1;
- }
- stock NovacPlus(id, iznos)
- {
- if(iznos < 0 || iznos > 99999999) return 1;
- new pare[15];
- format(pare, sizeof(pare), "+ $%d", iznos);
- TextDrawSetString(NovacPlusTD, pare);
- TextDrawShowForPlayer(id, NovacPlusTD);
- GivePlayerMoney(id, iznos);
- PI[id][Novac] += iznos;
- SetTimerEx("NovacPlusTimer", 5000, false, "i", id);
- return 1;
- }
- stock SCMF(playerid,color,fstring[],{Float, _}:...)
- {
- new n=(numargs()-3)*4;
- if(n)
- {
- new message[128],arg_start,arg_end;
- #emit CONST.alt fstring
- #emit LCTRL 5
- #emit ADD
- #emit STOR.S.pri arg_start
- #emit LOAD.S.alt n
- #emit ADD
- #emit STOR.S.pri arg_end
- do
- {
- #emit LOAD.I
- #emit PUSH.pri
- arg_end-=4;
- #emit LOAD.S.pri arg_end
- }
- while(arg_end>arg_start);
- #emit PUSH.S fstring
- #emit PUSH.C 255
- #emit PUSH.ADR message
- n+=4*3;
- #emit PUSH.S n
- #emit SYSREQ.C format
- n+=4;
- #emit LCTRL 4
- #emit LOAD.S.alt n
- #emit ADD
- #emit SCTRL 4
- return SCM(playerid,color,message);
- }
- else return SCM(playerid,color,fstring);
- }
- CMD:makeadmin(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SCM(playerid, WHITE, "Niste ovlasteni za koristenje ove komande !");
- new id, level;
- if(sscanf(params, "ui", id, level)) return SCM(playerid, WHITE, "Koristite: /makeadmin [ID Igraca] [Level 1-5]");
- if(!IPC(id)) return SCM(playerid, ORANGE, " >> Taj igrac nije Online !");
- if(level > 6) return SCM(playerid, ORANGE, " >> Level administratora je od 1-6 !");
- SCMF(playerid, ORANGE, "** Postavili ste igracu %s administratorski level %d.", ImeIgraca(id), level);
- SCMF(id, LIGHTBLUE, "** Promovistani ste u administratora level %d. Izvrsio naredbu: %s", level, ImeIgraca(playerid));
- PI[id][Admin] = level;
- UpdateIgraca(id);
- return 1;
- }
- CMD:goto(playerid, params[])
- {
- if(PI[playerid][Admin] == 0) return SCM(playerid, WHITE, "Niste ovlasteni za koristenje ove komande !");
- new id, Float:Pos[3], vozilo = GetPlayerVehicleID(playerid);
- if(sscanf(params, "u", id)) return SCM(playerid, WHITE, "Koristite: /goto [ID Igraca]");
- if(!IPC(id)) return SCM(playerid, ORANGE, " >> Taj igrac nije Online !");
- if(id == playerid) return SCM(playerid, ORANGE, "Ne mozete se teleportovati sami do sebe !");
- GetPlayerPos(id, Pos[0], Pos[1], Pos[2]);
- SetPlayerInterior(playerid, GetPlayerInterior(id));
- SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(id));
- SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
- if(IsPlayerInAnyVehicle(playerid))
- {
- SetVehiclePos(vozilo, Pos[0], Pos[1], Pos[2]);
- PutPlayerInVehicle(playerid, GetPlayerVehicleID(playerid), 0);
- SetPlayerInterior(playerid, GetPlayerInterior(id));
- SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(id));
- }
- SCMF(playerid, WHITE, " (info) Teleportovali ste se do %s[ID: %d]", ImeIgraca(id), id);
- return 1;
- }
- CMD:gethere(playerid, params[])
- {
- if(PI[playerid][Admin] < 3) return SCM(playerid, WHITE, "Niste ovlasteni za koristenje ove komande !");
- new id, Float:Pos[3], vozilo = GetPlayerVehicleID(playerid);
- if(sscanf(params, "u", id)) return SCM(playerid, WHITE, "Koristite: /gethere [Igracev ID]");
- if(!IPC(id)) return SCM(playerid, ORANGE, " >> Taj igrac nije Online !");
- if(id == playerid) return SCM(playerid, ORANGE, "Nije moguce izvrsiti ovu komandu.");
- GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
- SetPlayerInterior(id, GetPlayerInterior(playerid));
- SetPlayerVirtualWorld(id, GetPlayerVirtualWorld(playerid));
- SetPlayerPos(id, Pos[0], Pos[1], Pos[2]);
- if(IsPlayerInAnyVehicle(id))
- {
- SetVehiclePos(vozilo, Pos[0], Pos[1], Pos[2]);
- PutPlayerInVehicle(id, GetPlayerVehicleID(id), 0);
- SetPlayerInterior(id, GetPlayerInterior(playerid));
- SetPlayerVirtualWorld(id, GetPlayerVirtualWorld(playerid));
- }
- return 1;
- }
- CMD:dajpare(playerid, params[])
- {
- if(PI[playerid][Admin] < 5) return SCM(playerid, WHITE, "Niste ovlasteni za koristenje ove komande !");
- new id, iznos;
- if(sscanf(params, "ui", id, iznos)) return SCM(playerid, WHITE, "Koristite: /dajpare [Igracev ID] [Iznos]");
- if(!IPC(id)) return SCM(playerid, ORANGE, " >> Taj igrac nije Online !");
- NovacPlus(id, iznos);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement