Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ------ Replay HD ------- \\
- #include <a_samp>
- #include <dini>
- #include <dudb>
- #include <YSI/y_ini>
- #pragma unused ret_memcpy
- #define PATH "/Users/%s.ini"
- #define PLAYER_MUST_REGISTER
- #define REGISTERED_MONEY 5000
- #define AUTOLOGIN
- #define white 0xFFFFFFA
- #define red 0xFF0000AA
- #define RED 0xFF0000FF
- #define BLUE 0x00FFFFFF
- #define lime 0x00FF00FF
- #define yellow 0xFFFF00FF
- #define DIALOG_REGISTER 999
- #define DIALOG_LOGIN 998
- new Text:Time, Text:Date;
- forward settime(playerid);
- enum iDetails {
- Pass,
- Cash,
- Score
- };
- new pInfo[MAX_PLAYERS][iDetails];
- #if defined AUTOLOGIN
- new pIP[MAX_PLAYERS][16];
- #endif
- new pLogged[MAX_PLAYERS];
- stock PlayerPath(playerid) {
- new iStr[256],name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- format(iStr,sizeof(iStr),PATH,name);
- return iStr;
- }
- {
- print("\n--------------------------------------");
- print("Login & Register system by PwRh");
- print("--------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- forward UserDataLoad_data(playerid,name[],value[]);
- public UserDataLoad_data(playerid,name[],value[]) {
- INI_Int("Pass",pInfo[playerid][Pass]);
- #if defined AUTOLOGIN
- INI_String("IP",pIP[playerid],16);
- #endif
- INI_Int("Cash",pInfo[playerid][Cash]);
- INI_Int("Score",pInfo[playerid][Score]);
- return 1;
- }
- {
- pLogged[playerid] = 0;
- #if defined AUTOLOGIN
- new tmpIP[16];
- GetPlayerIp(playerid,tmpIP,sizeof(tmpIP));
- #endif
- if(fexist(PlayerPath(playerid))) {
- INI_ParseFile(PlayerPath(playerid), "UserDataLoad_%s", .bExtra = true, .extra = playerid);
- #if defined AUTOLOGIN
- if(strcmp(tmpIP,pIP[playerid],true) == 0) {
- pLogged[playerid] = 1;
- SetPlayerScore(playerid,pInfo[playerid][Score]);
- GivePlayerMoney(playerid,pInfo[playerid][Cash]);
- SendClientMessage(playerid,lime,"Te-ai logat automat. [IP match]");
- return 1;
- }
- #endif
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Terog introdu parola mai jos.","Login","Leave");
- } else
- ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Terog inregistreaza-te introducand parola mai jos","Register","Leave");
- return 1;
- }
- if(pLogged[playerid] == 1)
- new INI:iFile = INI_Open(PlayerPath(playerid));
- INI_SetTag(iFile,"data");
- INI_WriteInt(iFile,"Cash",GetPlayerMoney(playerid));
- INI_WriteInt(iFile,"Score",GetPlayerScore(playerid));
- INI_Close(iFile);
- }
- pLogged[playerid] = 0; {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- if(pLogged[playerid] == 0) return SendClientMessage(playerid,yellow,"Trebuie sa te inregistrezi inainte de a te spawna !");
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- if(dialogid == DIALOG_REGISTER) {
- GetPlayerIp(playerid,pIP[playerid],16);
- if(!response) Kick(playerid);
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Terog introdu o parola.","Register","Leave");
- new INI:iFile = INI_Open(PlayerPath(playerid));
- INI_SetTag(iFile,"data");
- INI_WriteInt(iFile,"Pass",udb_hash(inputtext));
- #if defined AUTOLOGIN
- INI_WriteString(iFile,"IP",pIP[playerid]);
- #endif
- INI_WriteInt(iFile,"Cash",REGISTERED_MONEY);
- INI_WriteInt(iFile,"Score",0);
- INI_Close(iFile);
- pLogged[playerid] = 1;
- new iStr[128];
- format(iStr,sizeof(iStr),"Te-ai inregistrat cu succes cu parola \%s\".,inputtext);
- SendClientMessage(playerid,yellow,iStr);
- return 1;
- }
- if(dialogid == DIALOG_LOGIN)
- if(!response) Kick(playerid);
- new iStr[128],gTries;
- if(gTries == 0) gTries = 1;
- if(gTries == 3)
- new pName[30];
- GetPlayerName(playerid,pName,sizeof(pName));
- format(iStr,sizeof(iStr),"%s A primit kick pentru ca a gresit parola de prea multe ori.",pName);
- SendClientMessageToAll(red,iStr);
- return Kick(playerid);
- }
- if(!strlen(inputtext))
- format(iStr,sizeof(iStr),"Te rog introdu-ti parola. Incercari: %i/3",gTries);
- return ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login",iStr,"Login","Leave");
- }
- if(udb_hash(inputtext) == pInfo[playerid][Pass])
- pLogged[playerid] = 1;
- SendClientMessage(playerid,lime,"Te-ai logat cu succes !");
- SetPlayerScore(playerid,pInfo[playerid][Score]);
- GivePlayerMoney(playerid,pInfo[playerid][Cash]);
- } else
- format(iStr,sizeof(iStr),"Parola gresita. Incercari: %i/3",gTries);
- ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register",iStr,"Login","Leave");
- gTries++;
- return 1;
- }
- return 1;
- }
- return 1;
- }
- // ------ DMV SYSTEM ------ \\
- new isInExam[MAX_PLAYERS];
- new examCar[3][2] = {{0,-1},{0,-1},{0,-1}};
- new Player[MAX_PLAYERS];
- new examCarPlayer[MAX_PLAYERS];
- new info;
- new Float:checkX[36] = {1430.5850,1455.3511,1416.4252,1257.8667,1264.4360,1356.6456,1379.3115,1502.2288,1430.8036,1177.4355,992.6675,833.8546,633.3757,501.4717,682.1296,606.8680,255.1904,158.4106,255.1099,376.2945,678.6802,608.1680,681.1750,794.3322,791.6651,629.4811,-55.7779,-148.9814,109.7437,288.9596,245.8888,626.0427,642.2745,1075.5485,1390.5886,1426.6824};
- new Float:checkY[36] = {-1592.7277,-1442.3207,-1396.3995,-1388.1742,-1281.7068,-1273.9636,-943.0512,-871.2183,-695.4551,-760.5249,-789.7863,-789.6037,-903.1769,-1012.0515,-983.7362,-1120.2753,-1326.6176,-1392.0823,-1026.8380,-1149.7334,-985.7158,-698.5085,-696.5320,-1047.3823,-1150.8011,-1191.1500,-1362.1179,-1362.5183,-1551.5992,-1492.4279,-1572.0403,-1595.4987,-1746.5732,-1853.9291,-1862.7344,-1711.2195};
- new Float:checkZ[36] = {13.0959,13.0977,13.0906,12.8231,12.9687,13.0858,33.8951,61.1055,87.6314,104.4253,100.0467,73.6938,62.6180,90.3753,51.5397,47.0352,52.6881,47.9740,55.9875,77.8403,51.5523,10.6464,15.8889,24.5169,23.3902,18.0197,11.1255,2.3762,7.0331,32.3379,32.7545,15.2608,12.9517,13.0991,13.0894,13.0890};
- new checkpoint[MAX_PLAYERS];
- new bool:ejectFromVeh = false;
- new Float:oldHP, bool:allowHPchange = false, bool:timeChanged = false;
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" DMV System by PwRh");
- print("--------------------------------------\n");
- info = CreatePickup(1239,1,1413.5861,-1701.4697,13.5395,-1);
- examCar[0][0] = AddStaticVehicle(451,1413.8760,-1719.1808,13.2740,267.4485,1,0);
- examCar[1][0] = AddStaticVehicle(451,1413.8760,-1715.6440,13.2523,267.3694,1,0);
- examCar[2][0] = AddStaticVehicle(451,1413.8760,-1712.1121,13.2740,268.0577,1,0);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- if(!IsPlayerNPC(playerid))
- GetPlayerDrivingLicense(playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SavePlayerLicense(playerid);
- return 1;
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/exam", cmdtext, true) == 0)
- {
- if(Player[playerid]==0)
- {
- if(!isInExam[playerid])
- {
- if(GetPlayerMoney(playerid) >= 3000)
- {
- for(new i=0; i<3; i++)
- {
- if(examCar[i][1]==-1)
- {
- isInExam[playerid]=1; examCar[i][1]=1; examCarPlayer[playerid]=examCar[i][0];
- SetVehiclePos(examCar[i][0],1423.5168,-1716.8069,13.5469);
- GetVehicleHealth(examCar[i][0], oldHP);
- PutPlayerInVehicle(playerid,examCar[i][0],0);
- SetPlayerCheckpoint(playerid,checkX[0],checkY[0],checkZ[0],8.0);
- GameTextForPlayer(playerid,"~r~Condu prudent !",10000,6);
- return 1;
- }
- if(i==2)
- SendClientMessage(playerid,RED,"Nu sunt masini valabile ! Va rugam incercati mai tarziu.");
- }
- }
- else SendClientMessage(playerid,RED,"Nu ai bani destui. Iti trebuie 3000$");
- }
- else SendClientMessage(playerid,RED,"Poti da examenul doar o data!");
- }
- else SendClientMessage(playerid,BLUE,"Deja ai carnetul de sofer.");
- return 1;
- }
- if (strcmp("/dlicense",cmdtext,true) == 0)
- {
- if(Player[playerid]==0)
- {
- SendClientMessage(playerid,RED,"Nu ai permisul ! Dute la punctul rosu de pe harta");
- SendClientMessage(playerid,RED,"Ca sa dai examenul");
- SetPlayerCheckpoint(playerid,1413.5861,-1701.4697,13.5395,6.0);
- }
- else SendClientMessage(playerid, BLUE, "You can drive any vehicle!");
- return 1;
- }
- if (strcmp("/credits",cmdtext,true) == 0)
- {
- ShowPlayerDialog(playerid,255,DIALOG_STYLE_MSGBOX,"Credits","Scripter, Mapper, Tester : PwRh","Thank you for joining our server !","Replay HD!");
- return 1;
- }
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- if((vehicleid == examCar[0][0] || vehicleid == examCar[1][0] || vehicleid == examCar[2][0]) && !isInExam[playerid])
- {
- SendClientMessage(playerid,RED,"Nu poti conduce masina asta !");
- ejectFromVeh = true;
- }
- else
- {
- if(Player[playerid]==0 && vehicleid!=examCarPlayer[playerid])
- {
- SendClientMessage(playerid,RED,"Nu poti conduce masina pentru ca nu ai licenta ! Scrie /dlicense pentru a da examenul");
- ejectFromVeh = true;
- }
- }
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(newstate == PLAYER_STATE_DRIVER)
- {
- if(ejectFromVeh)
- {
- RemovePlayerFromVehicle(playerid);
- ejectFromVeh = false;
- }
- }
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- new veh;
- if(isInExam[playerid])
- {
- if(IsPlayerInVehicle(playerid,examCarPlayer[playerid]))
- {
- DisablePlayerCheckpoint(playerid);
- checkpoint[playerid]++;
- if(checkpoint[playerid]>35)
- {
- if(timeChanged)
- {
- new h,m,s;
- gettime(h,m,s); SetPlayerTime(playerid, h, m); timeChanged = false;
- }
- veh = GetPlayerVehicleID(playerid);
- RemovePlayerFromVehicle(playerid);
- SetVehicleToRespawn(veh);
- SetPlayerMoney(playerid,GetPlayerMoney(playerid)-3000);
- GameTextForPlayer(playerid,"Ai ~b~trecut ~w~examenul",10000,5);
- SetPlayerWeather(playerid, 1);
- isInExam[playerid]=0; checkpoint[playerid]=0;
- for(new i=0; i<3; i++)
- {
- if(examCar[i][0]==veh)
- {
- examCar[i][1]=-1;
- break;
- }
- }
- Player[playerid]=1; examCarPlayer[playerid]=0;
- }
- else if(checkpoint[playerid]==9)
- {
- SendClientMessage(playerid,BLUE,"DMV: Simulare in conditii de furtuna - Masina ar putea aluneca");
- SetPlayerWeather(playerid, 8);
- SetPlayerCheckpoint(playerid,checkX[checkpoint[playerid]],checkY[checkpoint[playerid]],checkZ[checkpoint[playerid]],8.0);
- }
- else if(checkpoint[playerid]==19)
- {
- SendClientMessage(playerid,BLUE,"DMV: Simulare in furtuna de nisip - Vizibilitate redusa");
- SetPlayerWeather(playerid, 19);
- SetPlayerCheckpoint(playerid,checkX[checkpoint[playerid]],checkY[checkpoint[playerid]],checkZ[checkpoint[playerid]],8.0);
- }
- else if(checkpoint[playerid]==29)
- {
- SendClientMessage(playerid,BLUE,"DMV: Simulare in timpul noptii - Pericole neasteptate"); timeChanged = true;
- SetPlayerTime(playerid,0,0);
- SetPlayerWeather(playerid, 9);
- SetPlayerCheckpoint(playerid,checkX[checkpoint[playerid]],checkY[checkpoint[playerid]],checkZ[checkpoint[playerid]],8.0);
- }
- else SetPlayerCheckpoint(playerid,checkX[checkpoint[playerid]],checkY[checkpoint[playerid]],checkZ[checkpoint[playerid]],8.0);
- }
- else GameTextForPlayer(playerid,"~r~Nu esti in masina de examen!",10000,5);
- }
- else DisablePlayerCheckpoint(playerid);
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- if(pickupid==info)
- GameTextForPlayer(playerid,"Scrie ~r~/exam ~w~pentru a de examenul",5000,5);
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(isInExam[i] && examCarPlayer[i]==vehicleid)
- {
- if(timeChanged)
- {
- new h,m,s;
- #pragma unused s
- gettime(h,m,s); SetPlayerTime(i, h, m); timeChanged = false;
- }
- GameTextForPlayer(i, "~r~Ai picat examenul!", 10000, 5);
- SetVehicleToRespawn(vehicleid);
- isInExam[i]=0; checkpoint[i]=0; examCarPlayer[i]=0;
- for(new j=0; j<3; j++)
- {
- if(examCar[j][0]==vehicleid)
- {
- examCar[j][1]=-1;
- break;
- }
- SetPlayerWeather(i, 1);
- DisablePlayerCheckpoint(i);
- break;
- }
- return 1;
- }
- public OnVehicleRespray(playerid,vehicleid,color1,color2)
- {
- if(isInExam[playerid])
- {
- if(timeChanged)
- {
- new h,m,s;
- gettime(h,m,s); SetPlayerTime(playerid, h, m); timeChanged = false;
- }
- SendClientMessage(playerid,BLUE,"MARS CU HACKURILE TALE");
- GameTextForPlayer(playerid, "~r~Ai picat examenul!", 10000, 5);
- isInExam[playerid]=0; checkpoint[playerid]=0; examCarPlayer[playerid]=0;
- for(new i=0; i<3; i++)
- {
- if(examCar[i][0]==vehicleid)
- {
- examCar[i][1]=-1;
- break;
- }
- }
- SetPlayerWeather(playerid, 1);
- RemovePlayerFromVehicle(playerid); SetVehicleToRespawn(vehicleid);
- DisablePlayerCheckpoint(playerid);
- }
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- if(isInExam[playerid])
- {
- if(timeChanged)
- {
- new h,m,s;
- gettime(h,m,s); SetPlayerTime(playerid, h, m); timeChanged = false;
- }
- SendClientMessage(playerid,BLUE,"Incearca sa nu te mai lovesti!");
- GameTextForPlayer(playerid, "~r~Ai picat examenul!", 5000, 5);
- isInExam[playerid]=0; checkpoint[playerid]=0; examCarPlayer[playerid]=0;
- for(new i=0; i<3; i++)
- {
- if(examCar[i][0]==vehicleid)
- {
- examCar[i][1]=-1;
- break;
- }
- SetPlayerWeather(playerid, 1);
- RemovePlayerFromVehicle(playerid); RemoveVehicleComponent(vehicleid, componentid);
- SetVehicleToRespawn(vehicleid);
- DisablePlayerCheckpoint(playerid);
- }
- return 1;
- }
- public OnVehicleDamageStatusUpdate(vehicleid, playerid)
- {
- new Float:health;
- GetVehicleHealth(vehicleid,health);
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(isInExam[i] && examCarPlayer[i]==vehicleid && playerid!=i)
- {
- FixCar(vehicleid); SetVehicleHealth(vehicleid, oldHP); allowHPchange = true;
- SendClientMessage(playerid,BLUE,"Nu te supara.... E doar un test ;))");
- break;
- }
- oldHP = health;
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- if(IsPlayerInVehicle(playerid, examCarPlayer[playerid]) && isInExam[playerid])
- {
- new Float:health;
- GetVehicleHealth(examCarPlayer[playerid], health);
- if(health > oldHP && allowHPchange==false)
- {
- if(timeChanged)
- {
- new h,m,s;
- gettime(h,m,s); SetPlayerTime(playerid, h, m); timeChanged = false;
- }
- SendClientMessage(playerid,BLUE,"MARS CU HACKURILE TALE!");
- GameTextForPlayer(playerid, "~r~Ai picat examenul!", 10000, 5);
- isInExam[playerid]=0; checkpoint[playerid]=0;
- for(new i=0; i<3; i++)
- {
- if(examCar[i][0]==examCarPlayer[playerid])
- {
- examCar[i][1]=-1;
- break;
- }
- SetPlayerWeather(playerid, 1);
- RemovePlayerFromVehicle(playerid); SetVehicleToRespawn(examCarPlayer[playerid]);
- DisablePlayerCheckpoint(playerid);
- examCarPlayer[playerid]=0;
- }
- else if(allowHPchange) allowHPchange = false;
- }
- return 1;
- }
- forward LoadLicense(playerid, name[], value[]);
- public LoadLicense(playerid, name[], value[])
- {
- INI_Int("DrivingLicense", Player[playerid]);
- return 0;
- }
- stock GetPlayerDrivingLicense(playerid)
- {
- new name[MAX_PLAYER_NAME],string[256];
- GetPlayerName(playerid,name,sizeof(name));
- format(string,256,"Players/%s.ini",name);
- INI_ParseFile(string,"LoadLicense", .bExtra=true, .extra=playerid);
- return
- }
- stock SavePlayerLicense(playerid)
- {
- new INI:player;
- new name[MAX_PLAYER_NAME],string[256];
- GetPlayerName(playerid,name,sizeof(name));
- format(string,256,"Players/%s.ini",name);
- player = INI_Open(string);
- INI_WriteInt(player, "DrivingLicense", Player[playerid]);
- INI_Close(player);
- return 1;
- }
- stock SetPlayerMoney(playerid, money)
- {
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, money);
- return 1;
- }
- FixCar(vehicleid)
- {
- new panels, doors, lights, tires;
- GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
- tires = encode_tires(0, 0, 0, 0);
- panels = encode_panels(0, 0, 0, 0, 0, 0, 0);
- doors = encode_doors(0, 0, 0, 0, 0, 0);
- lights = encode_lights(0, 0, 0, 0);
- UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
- return 1;
- }
- encode_tires(tire1, tire2, tire3, tire4) return tire1 | (tire2 << 1) | (tire3 << 2) | (tire4 << 3);
- encode_panels(flp, frp, rlp, rrp, windshield, front_bumper, rear_bumper)
- {
- return flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (front_bumper << 20) | (rear_bumper << 24);
- }
- encode_doors(bonnet, boot, driver_door, passenger_door, behind_driver_door, behind_passenger_door)
- {
- #pragma unused behind_driver_door
- #pragma unused behind_passenger_door
- return bonnet | (boot << 8) | (driver_door << 16) | (passenger_door << 24);
- }
- encode_lights(light1, light2, light3, light4)
- {
- return light1 | (light2 << 1) | (light3 << 2) | (light4 << 3);
- }
- // Ceas
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Ceas + Data by PwRh--------------------");
- print("--------------------------------------\n");
- SetTimer("settime",1000,true);
- Date = TextDrawCreate(547.000000,11.000000,"--");
- TextDrawFont(Date,3);
- TextDrawLetterSize(Date,0.399999,1.600000);
- TextDrawColor(Date,0xffffffff);
- Time = TextDrawCreate(547.000000,28.000000,"--");
- TextDrawFont(Time,3);
- TextDrawLetterSize(Time,0.399999,1.600000);
- TextDrawColor(Time,0xffffffff);
- SetTimer("settime",1000,true);
- return 1;
- }
- public OnFilterScriptExit()
- {
- print("\n-----------------------------------------------------");
- print(" Ceas + Data by PwRh !---------------------------------");
- print("-----------------------------------------------------/n");
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SendClientMessage(playerid, 0xF97804FF, "Contact pentru mai multe la : naruto4wnnk!");
- TextDrawShowForPlayer(playerid, Time), TextDrawShowForPlayer(playerid, Date);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- TextDrawHideForPlayer(playerid, Time), TextDrawHideForPlayer(playerid, Date);
- return 1;
- }
- public settime(playerid)
- {
- new string[256],year,month,day,hours,minutes,seconds;
- getdate(year, month, day), gettime(hours, minutes, seconds);
- format(string, sizeof string, "%d/%s%d/%s%d", day, ((month < 10) ? ("0") : ("")), month, (year < 10) ? ("0") : (""), year);
- TextDrawSetString(Date, string);
- format(string, sizeof string, "%s%d:%s%d:%s%d", (hours < 10) ? ("0") : (""), hours, (minutes < 10) ? ("0") : (""), minutes, (seconds < 10) ? ("0") : (""), seconds);
- TextDrawSetString(Time, string);
- return 1;
- }
- {
Advertisement
Add Comment
Please, Sign In to add comment