07.08.2009, 15:55
Код:
public OnPlayerStateChange(playerid, newstate, oldstate) { new vehicleid = GetPlayerVehicleID(playerid); if (oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER && DMVTest[playerid] == 1 && vehicleid == dmvcar) SetVehicleParamsForPlayer(dmvcar,playerid,0,0); if (oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER && DMVTest[playerid] == 1 && vehicleid == dmvcar2) SetVehicleParamsForPlayer(dmvcar2,playerid,0,0); if (oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER && DrivingLicense[playerid] == 0 && DMVTest[playerid] == 0) { SendClientMessage(playerid,RED,"Warning: you might get caught for driving without a real driving license!"); new star = GetPlayerWantedLevel(playerid); SetPlayerWantedLevel(playerid,star+1); } return 1; } public OnPlayerEnterCheckpoint(playerid) { switch(DMVCP[playerid]) { case -1: { ShowMenuForPlayer(dmvoption[playerid],playerid); TogglePlayerControllable(playerid,0); } case 0: { if(!IsPlayerInVehicle(playerid,dmvcar)) { SendClientMessage(playerid,RED,"You're not in the Admiral car!"); } else { DisablePlayerCheckpoint(playerid); DMVCP[playerid]++; SetPlayerCheckpoint(playerid,DrivingSchoolCP[1][0],DrivingSchoolCP[1][1],DrivingSchoolCP[1][2],5.0); DMVCount[playerid] = 1; DMVT = SetTimerEx("DrivingTestCount",1000,0,"d",playerid); DMVT2 = SetTimerEx("DrivingTestCount2",1000,0,"d",playerid); } } case 1..26: { if(!IsPlayerInVehicle(playerid,dmvcar)) { SendClientMessage(playerid,RED,"You're not in the Admiral car!"); } else { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid,DrivingSchoolCP[DMVCP[playerid]+1][0],DrivingSchoolCP[DMVCP[playerid]+1][1],DrivingSchoolCP[DMVCP[playerid]+1][2],5.0); DMVCP[playerid]++; } } case 27: { new Float:VehHealth; new string[128]; GetVehicleHealth(GetPlayerVehicleID(playerid),VehHealth); if (VehHealth < MINVEHHP) { SendClientMessage(playerid,RED,"You failed the test: you weren't driving safely!"); DrivingLicense[playerid] = 0; DisablePlayerCheckpoint(playerid); DMVCP[playerid] = -1; format(string, sizeof(string), "Time: %d",DrivingTestTime[playerid]); SendClientMessage(playerid,YELLOW,string); DMVTest[playerid] = 0; KillTimer(DMVT); SetPlayerCheckpoint(playerid,-2037.1954,-94.4220,35.1641,2.0); } else if (DrivingTestTime[playerid] > TooSlow) { SendClientMessage(playerid,RED,"You failed the test: you were driving too slow!"); DrivingLicense[playerid] = 0; DisablePlayerCheckpoint(playerid); DMVCP[playerid] = -1; format(string, sizeof(string), "Time: %d",DrivingTestTime[playerid]); SendClientMessage(playerid,YELLOW,string); DMVTest[playerid] = 0; KillTimer(DMVT); SetPlayerCheckpoint(playerid,-2037.1954,-94.4220,35.1641,2.0); } else if (DrivingTestTime[playerid] < TooFast) { SendClientMessage(playerid,RED,"You failed the test: you were driving too fast!"); DrivingLicense[playerid] = 0; DisablePlayerCheckpoint(playerid); DMVCP[playerid] = -1; format(string, sizeof(string), "Time: %d",DrivingTestTime[playerid]); SendClientMessage(playerid,YELLOW,string); DMVTest[playerid] = 0; KillTimer(DMVT); SetPlayerCheckpoint(playerid,-2037.1954,-94.4220,35.1641,2.0); } else if (DrivingTestTime[playerid] > TooFast && DrivingTestTime[playerid] < TooSlow) { SendClientMessage(playerid,GREEN,"You passed the first test!"); DMVCP[playerid] = 28; DMVTest2Barrels(playerid); DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid,DrivingSchoolCP[28][0],DrivingSchoolCP[28][1],DrivingSchoolCP[28][2],5.0); SetPlayerPos(playerid,-2046.157592, -109.187286, 35.234008); } } case 28,29: { if(!IsPlayerInVehicle(playerid,dmvcar2)) { SendClientMessage(playerid,RED,"You're not in the Admiral car!"); } else { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid,DrivingSchoolCP[DMVCP[playerid]+1][0],DrivingSchoolCP[DMVCP[playerid]+1][1],DrivingSchoolCP[DMVCP[playerid]+1][2],5.0); DMVCP[playerid]++; SetPlayerObjectRot(playerid,barrier, 0, 270.6185, 3.4377); } } case 30: { if(!IsPlayerInVehicle(playerid,dmvcar2)) { SendClientMessage(playerid,RED,"You're not in the Admiral car!"); } else { new string[256]; DisablePlayerCheckpoint(playerid); DMVCP[playerid] = -1; SendClientMessage(playerid,GREEN,"You passed the driving test! Here's your license. Drive safely!"); DrivingLicense[playerid] = 1; SendClientMessage(playerid,LIGHTBLUE,"You earned a driving license. ( /licenses )"); SetPlayerCheckpoint(playerid,-2037.1954,-94.4220,35.1641,2.0); format(string, sizeof(string), "Total Time: %d",DrivingTestTime[playerid]); SendClientMessage(playerid,YELLOW,string); DMVTest[playerid] = 0; KillTimer(DMVT); } } } return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { new Menu:Current = GetPlayerMenu(playerid); if (Current == dmvoption[playerid]) { switch (row) { case 0: { if (GetPlayerMoney(playerid) < DrivingTestCash) { SendClientMessage(playerid,RED,"You don't have enough cash"); ShowMenuForPlayer(dmvoption[playerid],playerid); return 1; } if (DrivingLicense[playerid] == 1) { SendClientMessage(playerid,RED,"You already have a license!"); return 1; } GivePlayerMoney(playerid,-DrivingTestCash); SetPlayerPos(playerid,-2027.8353, -98.8884, 35.1642); SetPlayerFacingAngle(playerid,355); SetCameraBehindPlayer(playerid); DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid,DrivingSchoolCP[0][0],DrivingSchoolCP[0][1],DrivingSchoolCP[0][2],5.0); SendClientMessage(playerid,GREEN,"Get ready!"); DMVCP[playerid]=0; SetPlayerInterior(playerid,0); DMVTest[playerid] = 1; SetVehicleParamsForPlayer(dmvcar,playerid,1,0); } case 1: {DisablePlayerCheckpoint(playerid);SendClientMessage(playerid,RED,"Alright, come back again!");SetPlayerCheckpoint(playerid,-2033.396606, -117.458976, 1035.171875,2.0);DMVCP[playerid]=-1;DMVTest[playerid] = 0;} } TogglePlayerControllable(playerid,1); HideMenuForPlayer(dmvoption[playerid],playerid); } return 1; } public OnPlayerExitedMenu(playerid) { TogglePlayerControllable(playerid,1); SetPlayerCheckpoint(playerid,-2037.1954,-94.4220,35.1641,2.0); SetPlayerPos(playerid,-2029.798217, -113.841880, 1035.171875); return 1; } public DrivingTestCount(playerid) { if (DMVTest[playerid] == 0) { KillTimer(DMVT); } else { DrivingTestTime[playerid]++; DMVT = SetTimerEx("DrivingTestCount",1000,0,"d",playerid); } return 1; } public DrivingTestCount2(playerid) { new string[128]; if (DMVTest[playerid] == 0) { KillTimer(DMVT2); DrivingTestTime[playerid] = 0; } else { format(string, sizeof(string), "%d",DrivingTestTime[playerid]); GameTextForPlayer(playerid,string,1500,6); DMVT2 = SetTimerEx("DrivingTestCount2",1000,0,"d",playerid); } return 1;