Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <dudb>
- #define COLOR_RED 0xFF0000AA
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_GREEN 0x00FF00AA
- forward StoleCar(playerid, vehicleid);
- new StoleCarTimer[MAX_PLAYERS];
- new logged[MAX_PLAYERS];
- new adminlevel[MAX_PLAYERS];
- new money[MAX_PLAYERS];
- new license[MAX_PLAYERS];
- new playername[MAX_PLAYER_NAME];
- new IsCarStolen[MAX_VEHICLES];
- new LastCar[MAX_PLAYERS];
- main()
- {
- print("===============================");
- print(" LicenseSystem by WackoX ");
- print(" AccountSystem by Sandra18[NL] ");
- print("===============================");
- }
- public OnPlayerConnect(playerid)
- {
- license[playerid] = 0;
- logged[playerid] = 0;
- LastCar[playerid] = 0;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(logged[playerid] == 0)
- {
- SendClientMessage(playerid, COLOR_RED, "Je bent nog niet ingelogd! Gebruik /login [wachtwoord]!");
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[256],tmp[256], tmp2[256];
- new idx;
- new string[256];
- cmd = strtok(cmdtext, idx);
- GetPlayerName(playerid, playername, sizeof(playername));
- if(strcmp(cmd, "/register", true) == 0)
- {
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp))
- {
- SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /register (password)");
- }
- else
- {
- if (!dini_Exists(udb_encode(playername)))
- {
- dini_Create(udb_encode(playername));
- dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
- dini_IntSet(udb_encode(playername), "adminlevel", 0);
- dini_IntSet(udb_encode(playername), "money", 0);
- dini_IntSet(udb_encode(playername), "license", 0);
- format(string, sizeof(string), "Account %s aangemaakt! Je kunt nu inloggen met het wachtwoord: %s.", playername, tmp);
- SendClientMessage(playerid, COLOR_YELLOW, string);
- }
- else
- {
- format(string, sizeof(string), "%s already registered.", playername,tmp);
- SendClientMessage(playerid, COLOR_RED, string);
- }
- }
- return 1;
- }
- if(strcmp(cmd, "/login", true) == 0)
- {
- GetPlayerName(playerid, playername, sizeof(playername));
- if(logged[playerid] == 1)
- {
- SendClientMessage(playerid, COLOR_RED, "Je bent al ingelogd");
- return 1;
- }
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp))
- {
- SendClientMessage(playerid, COLOR_YELLOW, "Gebruik: /login (wachtwoord)");
- }
- else
- {
- if (dini_Exists(udb_encode(playername)))
- {
- tmp2 = dini_Get(udb_encode(playername), "password");
- if (udb_hash(tmp) != strval(tmp2))
- {
- SendClientMessage(playerid, COLOR_RED, "Verkeerd wachtwoord!.");
- }
- else
- {
- logged[playerid] = 1;
- license[playerid] = dini_Int(udb_encode(playername), "license");
- money[playerid] = dini_Int(udb_encode(playername), "money");
- adminlevel[playerid] = dini_Int(udb_encode(playername), "adminlevel");
- format(string, sizeof(string), "%s, Je bent nu ingelogd. Je hebt (Admin)Level %d, $%d Dollar, en %d License(s)", playername, adminlevel[playerid], money[playerid], license[playerid]);
- SendClientMessage(playerid, COLOR_GREEN, string);
- GivePlayerMoney(playerid, money[playerid]);
- }
- }
- else
- {
- format(string, sizeof(string), "Het account %s, bestaat nog niet. Typ /register [wachtwoord] om een account te maken.", playername);
- SendClientMessage(playerid, COLOR_RED, string);
- }
- }
- return 1;
- }
- if(strcmp(cmd, "/BuyLicense", true) == 0)
- {
- if(logged[playerid] == 1)
- {
- if(license[playerid] == 0)
- {
- if(GetPlayerMoney(playerid) >= 1000)
- {
- license[playerid] = 1;
- GivePlayerMoney(playerid, - 1000);
- SendClientMessage(playerid, COLOR_GREEN, "Je hebt $1000 betaald om een License te kopen!");
- return 1;
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "Je hebt niet genoeg geld! (Je hebt $1000 nodig!)");
- }
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "Je hebt al een License!");
- }
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "Je moet je eerst inloggen /login [wachtwoord]");
- }
- return 1;
- }
- if(strcmp(cmd, "/maakmijadmin", true) == 0)
- {
- if(IsPlayerAdmin(playerid))
- {
- if(logged[playerid] == 1)
- {
- if(adminlevel[playerid] != 3)
- {
- adminlevel[playerid] = 3;
- SendClientMessage(playerid, COLOR_GREEN, "Je bent nu hoofdadmin! Gefeliciteerd!");
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "Je bent al hoofdadmin!");
- }
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "Je moet je eerst inloggen /login [wachtwoord]");
- }
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "Je moet je eerst met rcon inloggen! (/rcon login [rcon-pass])");
- }
- return 1;
- }
- return 0;
- }
- public StoleCar(playerid, vehicleid)
- {
- new Float:X, Float:Y, Float:Z;
- if(IsCarStolen[vehicleid] == 1)
- {
- GetVehiclePos(vehicleid, X, Y, Z);
- for(new i; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(PlayerToPoint(100.0, i, X, Y, Z))
- {
- PlayerPlaySound(playerid,1147,0.0,0.0,0.0);
- }
- }
- }
- }
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- new Vid = GetPlayerVehicleID(playerid);
- if(newstate == 2)
- {
- LastCar[playerid] = Vid;
- if(license[playerid] == 0)
- {
- IsCarStolen[Vid] = 1;
- KillTimer(StoleCarTimer[playerid]);
- StoleCarTimer[playerid] = SetTimerEx("StoleCar", 1000, 1, "id", playerid, Vid);
- SendClientMessage(playerid, COLOR_RED, "Je hebt nog geen License (/buylicense), Of je bent nog niet ingelogd!");
- }
- else if(license[playerid] == 1)
- {
- KillTimer(StoleCarTimer[playerid]);
- SendClientMessage(playerid, COLOR_GREEN, "Je hebt een License! Rijd goed!");
- }
- }
- if(oldstate == 2)
- {
- KillTimer(StoleCarTimer[playerid]);
- IsCarStolen[LastCar[playerid]] = 0;
- }
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- IsCarStolen[vehicleid] = 0;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(logged[playerid] == 1)
- {
- GetPlayerName(playerid, playername, sizeof(playername));
- money[playerid] = GetPlayerMoney(playerid);
- dini_IntSet(udb_encode(playername), "license", license[playerid]);
- dini_IntSet(udb_encode(playername), "money", money[playerid]);
- dini_IntSet(udb_encode(playername), "adminlevel", adminlevel[playerid]);
- logged[playerid] = 0;
- }
- KillTimer(StoleCarTimer[playerid]);
- return 1;
- }
- PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
- {
- new Float:oldposx, Float:oldposy, Float:oldposz;
- new Float:tempposx, Float:tempposy, Float:tempposz;
- GetPlayerPos(playerid, oldposx, oldposy, oldposz);
- tempposx = (oldposx -x);
- tempposy = (oldposy -y);
- tempposz = (oldposz -z);
- if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
- {
- return 1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement