Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include <YSI\y_ini>
- #define UserPath "License/%s.ini"
- #define COLOR_RED 0xC00000FF //Red Color
- #define COLOR_GREEN 0x009647FF //Green Color
- #define COLOR_BLUE 0x0093BBFF //Blue Color
- #define VEHICLE_ID 426 //Current Vehicle is Premier
- #define VEH_DAMAGE 900 //Here 900 means that If Vehicle health is less than 900 and test would fail
- #define MINI_SPEED 40 //maximum speed at which player should drive car
- #define MAX_SPEEDING 4 //number of warnings
- new ncar[MAX_PLAYERS];
- enum pinfo{
- license,
- CP,
- speeding,
- };
- new gPlayer[MAX_PLAYERS][pinfo];
- public OnFilterScriptInit()
- {
- print("\n======================================");
- print(" TRL Driving Test By Rage Loaded!!");
- print("======================================\n");
- CreateObject(1412, 1279.60181, -1561.81287, 13.47932, 0.00000, 0.00000, 359.76001);
- CreateObject(1412, 1284.81030, -1561.81824, 13.42387, 0.00000, 0.00000, -0.12000);
- CreateObject(1412, 1287.57068, -1559.17639, 13.49489, 0.00000, 0.00000, 86.09998);
- CreateObject(1412, 1287.96887, -1553.98267, 13.51316, 0.00000, 0.00000, 85.31999);
- CreateObject(1412, 1288.39575, -1548.77991, 13.50460, 0.00000, 0.00000, 83.82001);
- CreateObject(1412, 1289.05505, -1543.61560, 13.51273, 0.00000, 0.00000, 81.42001);
- CreateObject(1412, 1290.06531, -1538.52112, 13.56483, 0.00000, 0.00000, 74.52000);
- CreateObject(1412, 1291.64819, -1533.51697, 13.57772, 0.00000, 0.00000, 70.38003);
- CreateObject(1412, 1293.41418, -1528.64636, 13.55346, 0.00000, 0.00000, 69.71999);
- CreateObject(1412, 1295.25208, -1523.78308, 13.56062, 0.00000, 0.00000, 68.04002);
- CreateObject(1412, 1293.60803, -1521.35400, 13.59054, 0.00000, 0.00000, 0.00000);
- CreateObject(1412, 1288.37805, -1521.36536, 13.63041, 0.00000, 0.00000, 0.00000);
- CreateObject(1412, 1283.14111, -1521.43250, 13.66456, 0.00000, 0.00000, 0.00000);
- CreateObject(1412, 1277.96399, -1521.42505, 13.68231, 0.00000, 0.00000, -0.36000);
- CreateObject(1412, 1272.79675, -1521.42407, 13.67245, 0.00000, 0.00000, -0.06000);
- CreateObject(1412, 1267.70337, -1521.48181, 13.71738, 0.00000, 0.00000, 0.00000);
- CreateObject(1412, 1265.17786, -1524.05994, 13.84590, 0.00000, 0.00000, 91.91999);
- CreateObject(1412, 1265.39380, -1529.26270, 13.83466, 0.00000, 0.00000, 92.64003);
- CreateObject(1412, 1267.21936, -1562.06421, 13.60090, 0.00000, 0.00000, 0.00000);
- CreateObject(1412, 1264.60339, -1559.48193, 13.60165, 0.00000, 0.00000, 88.32004);
- return 1;
- }
- public OnFilterScriptExit()
- {
- print("\n======================================");
- print(" TRL Driving Test By Rage UNLoaded!!");
- print("======================================\n");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- if(fexist(Path(playerid)))
- {
- INI_ParseFile(Path(playerid),"loadaccount_%s", .bExtra = true, .extra = playerid);
- }
- else
- {
- new INI:file = INI_Open(Path(playerid));
- INI_SetTag(file,"User's License");
- INI_WriteInt(file,"License",0);
- INI_Close(file);
- return 1;
- }
- RemoveBuildingForPlayer(playerid, 638, 1266.5469, -1557.6172, 13.2656, 0.25);
- RemoveBuildingForPlayer(playerid, 792, 1279.7344, -1552.9453, 12.2188, 0.25);
- RemoveBuildingForPlayer(playerid, 1231, 1273.6094, -1542.3750, 15.2344, 0.25);
- RemoveBuildingForPlayer(playerid, 638, 1266.5469, -1544.0000, 13.2656, 0.25);
- RemoveBuildingForPlayer(playerid, 638, 1266.5469, -1550.8828, 13.2656, 0.25);
- RemoveBuildingForPlayer(playerid, 638, 1266.5469, -1537.2969, 13.2656, 0.25);
- RemoveBuildingForPlayer(playerid, 792, 1280.0313, -1531.1406, 12.0703, 0.25);
- RemoveBuildingForPlayer(playerid, 638, 1266.5469, -1530.5859, 13.2656, 0.25);
- RemoveBuildingForPlayer(playerid, 1231, 1289.8906, -1520.1484, 15.1953, 0.25);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new INI:file = INI_Open(Path(playerid));
- INI_SetTag(file,"User's License");
- INI_WriteInt(file,"License",gPlayer[playerid][license]);
- return 1;
- }
- CMD:drivingtest(playerid,params[]){ //Making the command
- new money;
- money=GetPlayerMoney(playerid);
- if(gPlayer[playerid][license]==1) return SendClientMessage(playerid, COLOR_RED,"You already have a driving license");
- if(money<2000) return SendClientMessage(playerid, COLOR_RED,"You must have $2000 to begin driving test");
- gPlayer[playerid][CP]=1;
- SendClientMessage(playerid, COLOR_GREEN,"Instruction: Destination Saved. Make your way to the red marker to begin driving test.");
- SetPlayerCheckpoint(playerid,1271.5436,-1545.9067,13.5648,4.0);
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- if(gPlayer[playerid][CP]==1){
- DisablePlayerCheckpoint(playerid);
- ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Driving Test Approval","Are you sure you want to begin your driving test?","Yes","No");
- }
- else if(gPlayer[playerid][CP]==2){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=3;
- SetPlayerCheckpoint(playerid,1295.2511,-1602.4054,13.3828,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==3){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=4;
- SetPlayerCheckpoint(playerid,1295.0060,-1654.1892,13.3828,4.0);
- }
- else if(gPlayer[playerid][CP]==4){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=5;
- SetPlayerCheckpoint(playerid,1295.4152,-1708.8987,13.3828,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==5){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=6;
- SetPlayerCheckpoint(playerid,1256.7621,-1709.6104,13.3828,4.0);
- }
- else if(gPlayer[playerid][CP]==6){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=7;
- SetPlayerCheckpoint(playerid,1201.9366,-1709.9708,13.3828,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==7){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=8;
- SetPlayerCheckpoint(playerid,1156.5132,-1709.4323,13.7813,4.0);
- }
- else if(gPlayer[playerid][CP]==8){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=9;
- SetPlayerCheckpoint(playerid,1109.7393,-1709.3726,13.3828,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==9){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=10;
- SetPlayerCheckpoint(playerid,1040.7274,-1709.6338,13.3828,4.0);
- }
- else if(gPlayer[playerid][CP]==10){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=11;
- SetPlayerCheckpoint(playerid,1040.4951,-1673.3054,13.3828,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==11){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=12;
- SetPlayerCheckpoint(playerid,1039.7523,-1614.5819,13.3828,4.0);
- }
- else if(gPlayer[playerid][CP]==12){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=13;
- SetPlayerCheckpoint(playerid,1050.4260,-1574.9825,13.3892,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==13){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=14;
- SetPlayerCheckpoint(playerid,1118.1987,-1574.7905,13.3966,4.0);
- }
- else if(gPlayer[playerid][CP]==14){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=15;
- SetPlayerCheckpoint(playerid,1147.7310,-1584.6283,13.3395,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==15){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=16;
- SetPlayerCheckpoint(playerid,1147.5430,-1629.2367,13.7813,4.0);
- }
- else if(gPlayer[playerid][CP]==16){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=17;
- SetPlayerCheckpoint(playerid,1147.7458,-1704.4374,13.7813,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==17){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=18;
- SetPlayerCheckpoint(playerid,1181.2891,-1714.7313,13.5279,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==18){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=19;
- SetPlayerCheckpoint(playerid,1239.9648,-1715.3239,13.3828,4.0);
- }
- else if(gPlayer[playerid][CP]==19){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=20;
- SetPlayerCheckpoint(playerid,1286.8646,-1714.1796,13.3828,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==20){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=21;
- SetPlayerCheckpoint(playerid,1300.1241,-1670.1123,13.3828,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==21){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=22;
- SetPlayerCheckpoint(playerid,1300.7595,-1625.7065,13.3828,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==22){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=23;
- SetPlayerCheckpoint(playerid,1300.3802,-1570.8374,13.3828,4.0);
- }
- else if(gPlayer[playerid][CP]==23){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=24;
- SetPlayerCheckpoint(playerid,1271.1886,-1570.4200,13.3828,4.0);
- IsSpeeding(playerid);
- }
- else if(gPlayer[playerid][CP]==24){
- DisablePlayerCheckpoint(playerid);
- gPlayer[playerid][CP]=25;
- SetPlayerCheckpoint(playerid,1271.5436,-1545.9067,13.5648,4.0);
- }
- else if(gPlayer[playerid][CP]==25){
- DisablePlayerCheckpoint(playerid);
- new Float:health;
- new vehid = GetPlayerVehicleID(playerid);
- GetVehicleHealth(vehid, health);
- if(health>VEH_DAMAGE && gPlayer[playerid][speeding]<MAX_SPEEDING){
- SendClientMessage(playerid, COLOR_BLUE,"Congratulations! You have successfully acquired your driving license");
- gPlayer[playerid][license] = 1;
- new vehicleid = GetPlayerVehicleID(playerid);
- DestroyVehicle(vehicleid);
- }
- else{
- SendClientMessage(playerid, COLOR_RED,"Sorry! But you failed driving test, Try again to get your driving license");
- new vehicleid = GetPlayerVehicleID(playerid);
- DestroyVehicle(vehicleid);
- }
- return 1;
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid==1){
- if(response){
- gPlayer[playerid][CP]=2;
- SetPlayerCheckpoint(playerid,1282.1848,-1574.9357,13.3828,4.0);
- ncar[playerid]=AddStaticVehicle(VEHICLE_ID,1271.5435,-1545.9233,13.1358,177.9724,0,0);
- PutPlayerInVehicle(playerid, ncar[playerid], 0);
- SendClientMessage(playerid, COLOR_GREEN,"Instruction: Your driving test has started. Drive carefully on the right lane(Make your way through Checkpoints)");
- }
- else{
- SendClientMessage(playerid,COLOR_RED,"Rejected: It seems you don't want to have driving test");
- }
- }
- return 1;
- }
- GetVehicleSpeed(vehicleid)
- {
- new Float:Vx, Float:Vy, Float:Vz;
- GetVehicleVelocity(vehicleid, Vx, Vy, Vz);
- new Float:rtn;
- rtn = floatsqroot(floatpower(Vx*100,2) + floatpower(Vy*100,2));
- rtn = floatsqroot(floatpower(rtn,2) + floatpower(Vz*100,2));
- return floatround(rtn);
- }
- stock IsSpeeding(playerid)
- {
- if(GetVehicleSpeed(ncar[playerid])>MINI_SPEED)
- {
- gPlayer[playerid][speeding]++;
- SendClientMessage(playerid, COLOR_RED, "Slow down! Or You will Fail your driving test!");
- }
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- if(gPlayer[playerid][license]==0){
- ClearAnimations(playerid);
- SendClientMessage(playerid, COLOR_RED,"Driving License: You need a Driving license to drive vehicles. Type /drivingtest to get your driver's license");
- }
- return 1;
- }
- stock Path(playerid)
- {
- new str[128],name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- format(str,sizeof(str),UserPath,name);
- return str;
- }
- forward loadaccount_user(playerid, name[], value[]);
- public loadaccount_user(playerid, name[], value[])
- {
- INI_Int("License",gPlayer[playerid][license]);
- return 1;
- }
Add Comment
Please, Sign In to add comment