11.07.2012, 12:14
Hey guys iv got this code for when a player enters a car:
My problem is. in this section:
What im trying to do, is do all the checks like if engine is on blah blah, that all works. What isnt working is checking wether the vehicle entered is a DMV vehicle or a trucker vehicle. Im not sure what iv done wrong, i get no errors. But with the way it is right now only the DMV works and when getting in trucks that code doesnt process at all.
Please help me, I want the DMV code to work and the truck aswel. At the moment its either one or the other.
Thanks heaps, its probably a simple mistake on my behalf but i cant figure it out!
Код:
public OnPlayerStateChange(playerid, newstate, oldstate) { if(newstate == PLAYER_STATE_PASSENGER) { SetPlayerArmedWeapon(playerid,0); } if(newstate == PLAYER_STATE_PASSENGER) { if(newstate == PLAYER_STATE_PASSENGER) { new gun,tmp; GetPlayerWeaponData(playerid,4,gun,tmp); #pragma unused tmp if(gun)SetPlayerArmedWeapon(playerid,gun); else SetPlayerArmedWeapon(playerid,0); } if(GetPlayerVehicleID(playerid) == NPCBus) { new string[128], BusDriver = RPIDFN("BusDriver"); if(PlayerInfo[playerid][pMoney] < 2) { RemovePlayerFromVehicle(playerid); format(string, sizeof(string), "Bus Driver shouts: Get out of the bus poor hobo!"); SendNearbyMessage(BusDriver, 30, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5); return 1; } format(string, sizeof(string), "Bus Driver says: The ticket costs $5, you will have to pay $2 everytime the bus stops."); SendNearbyMessage(BusDriver, 10, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5); format(string, sizeof(string), "* %s takes out $5, hands them to the bus driver and grabs a ticket.", RPN(playerid)); SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); GiveZaiatMoney(playerid, -5); SendClientMessage(playerid, COLOR_LIGHTBLUE, " You will not recieve any playing minutes until you get out of the bus."); SetTimerEx("BusTimer", 1000, false, "i", playerid); } } if(newstate == PLAYER_STATE_DRIVER && oldstate != PLAYER_STATE_DRIVER)//inside vehicle { new vehicleid = GetPlayerVehicleID(playerid); new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); if(!engine) SendClientMessage(playerid, COLOR_WHITE, "Type {FF6347}/engine{FFFFFF} to start the vehicle."); if(!PlayerInfo[playerid][pCarLic]) SendClientMessage(playerid, COLOR_LIGHTRED, " You don't have a drivers license, beware of cops."); if(IsATowTruck(vehicleid)) SendClientMessage(playerid, COLOR_WHITE, "You can tow a vehicle using {FF6347}/tow{FFFFFF}."); //cometow if(IsDMVCar(vehicleid)) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Finish the test by driving through all of the checkpoints on your map."); SetPlayerCheckpoint(playerid,2040.7101,-1930.1340,13.4667,5); SendClientMessage(playerid, COLOR_RED, "If you exit the car your test will be failed and it will have to be re-done."); } else { if(IsTruckerVehicle(vehicleid) && PlayerInfo[playerid][pTPackages] >= 1 && PlayerInfo[playerid][pDeliverTruck] != GetPlayerVehicleID(playerid)) { GameTextForPlayer(playerid, "~r~You have already loaded~n~a different truck",4000,3); DisablePlayerCheckpoint(playerid); } else if(IsTruckerVehicle(vehicleid) && PlayerInfo[playerid][pTPackages] >= 1) { startingtruckjob[playerid] = 2; SetPlayerCheckpoint(playerid, 2222.5107,-2682.7368,13.5409, 5); GameTextForPlayer(playerid, "~g~This truck is loaded~n~take it to the marker",4000,3); } else if(IsTruckerVehicle(vehicleid)) { startingtruckjob[playerid] = 1; GameTextForPlayer(playerid, "~g~Drive to the marker to~n~load some packages",4000,3); SetPlayerCheckpoint(playerid,867.3699,-1209.2664,16.9766,5); } } } return 1; }
Код:
if(newstate == PLAYER_STATE_DRIVER && oldstate != PLAYER_STATE_DRIVER)//inside vehicle { new vehicleid = GetPlayerVehicleID(playerid); new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); if(!engine) SendClientMessage(playerid, COLOR_WHITE, "Type {FF6347}/engine{FFFFFF} to start the vehicle."); if(!PlayerInfo[playerid][pCarLic]) SendClientMessage(playerid, COLOR_LIGHTRED, " You don't have a drivers license, beware of cops."); if(IsATowTruck(vehicleid)) SendClientMessage(playerid, COLOR_WHITE, "You can tow a vehicle using {FF6347}/tow{FFFFFF}."); //cometow if(IsDMVCar(vehicleid)) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* GPS: Finish the test by driving through all of the checkpoints on your map."); SetPlayerCheckpoint(playerid,2040.7101,-1930.1340,13.4667,5); SendClientMessage(playerid, COLOR_RED, "If you exit the car your test will be failed and it will have to be re-done."); } else { if(IsTruckerVehicle(vehicleid) && PlayerInfo[playerid][pTPackages] >= 1 && PlayerInfo[playerid][pDeliverTruck] != GetPlayerVehicleID(playerid)) { GameTextForPlayer(playerid, "~r~You have already loaded~n~a different truck",4000,3); DisablePlayerCheckpoint(playerid); } else if(IsTruckerVehicle(vehicleid) && PlayerInfo[playerid][pTPackages] >= 1) { startingtruckjob[playerid] = 2; SetPlayerCheckpoint(playerid, 2222.5107,-2682.7368,13.5409, 5); GameTextForPlayer(playerid, "~g~This truck is loaded~n~take it to the marker",4000,3); } else if(IsTruckerVehicle(vehicleid)) { startingtruckjob[playerid] = 1; GameTextForPlayer(playerid, "~g~Drive to the marker to~n~load some packages",4000,3); SetPlayerCheckpoint(playerid,867.3699,-1209.2664,16.9766,5); } } } return 1; }
Please help me, I want the DMV code to work and the truck aswel. At the moment its either one or the other.
Thanks heaps, its probably a simple mistake on my behalf but i cant figure it out!