| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646 |
- /*
- file: jobs/mechanic_job.inc
- description: The mechanic job for SARP.
- author: Unknown
- improved by: Jay Cortez
- date created: 30th March 2018
- */
- // Mechanic price
- #define MECH_HYDRAULICS_PRICE 500
- #define MECH_REPAIR_PRICE 5000
- #define MECH_NOS_PRICE 1000
- #define MECH_NEON_PRICE 5000
- // Cooldowns
- #define MECH_HYDRAULICS_COOLDOWN (30000)
- // Neon colors
- #define NEON_RED 18647
- #define NEON_BLUE 18648
- #define NEON_GREEN 18649
- #define NEON_YELLOW 18650
- #define NEON_PINK 18651
- #define NEON_WHITE 18652
- // Command to repair the vehicle
- CMD:repair(playerid, params[])
- return cmd_fix(playerid, params);
- CMD:fix(playerid, params[])
- {
- if(PlayerInfo[playerid][pJob] != 7)
- return SendClientMessage(playerid, COLOR_GREY, "You are not a mechanic.");
- if(IsPlayerRestricted(playerid))
- return SendClientMessage(playerid, COLOR_GREY, "You are unable to do that at this time.");
- if(!CanRepair[playerid])
- return SendClientMessage(playerid, COLOR_GREY, "You must wait before repairing your vehicle again.");
-
- if(!IsPlayerInAnyVehicle(playerid))
- return SendClientMessage(playerid, COLOR_GREY, "You are not in any vehicle.");
- if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
- return SendClientMessage(playerid, COLOR_GREY, "You are not the driver.");
- if(GetVehicleSpeed(GetPlayerVehicleID(playerid)) > 5)
- return SendClientMessage(playerid, COLOR_WHITE, "You can't do that while the car is moving!");
- if(PlayerInfo[playerid][pCash] < MECH_REPAIR_PRICE)
- return SendClientMessage(playerid, COLOR_GREY, "You don't have enough money to do this.");
- // Open hood of vehicle
- new engine, lights, alarm, doors, bonnet, boot, objective, Float:x, Float:y, Float:z;
- GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
- SetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, 1, boot, objective);
-
- // Set checkpoint at hood
- GetPosAheadVehicle(GetPlayerVehicleID(playerid), x, y, z);
- SetPlayerCheckpointEx(playerid, x, y, z, 1.5);
- // Set variables
- repairVeh[playerid] = GetPlayerVehicleID(playerid);
- isRepairing[playerid] = true;
- // Action
- new mechanicStr[128];
- format(mechanicStr, sizeof(mechanicStr), "* %s pops the bonnet of the vehicle open, then opens the door and steps out.", PlayerICName(playerid));
- SetPlayerChatBubble(playerid, mechanicStr, COLOR_PURPLE, 20.0, 15000);
- format(mechanicStr, sizeof(mechanicStr), "> %s pops the bonnet of the vehicle open, then opens the door and steps out.", PlayerICName(playerid));
- SendClientMessage(playerid, COLOR_PURPLE, mechanicStr);
- // Remove and inform player
- RemovePlayerFromVehicle(playerid);
- SendClientMessage(playerid, COLOR_YELLOW, "Make your way to the bonnet to finish the repair of the vehicle.");
- return 1;
- }
- Timer:RepairTimer(playerid) return CanRepair[playerid] = true;
- // Called when the player enter the repair checkpoint
- OnEnterRepairCheckpoint(playerid) {
- // Game text and sound
- GameTextForPlayer(playerid, "~r~Vehicle repair ~g~completed.", 3000, 5);
- PlayerPlaySound(playerid, 1133, 0, 0, 0);
- ImproveMechanicSkill(playerid, 1);
- // Determine repair cooldown
- new minutesToWait;
- switch(PlayerInfo[playerid][pMechSkill]) {
- case 0 .. 49: minutesToWait = 5;
- case 50 .. 99: minutesToWait = 4;
- case 100 .. 199: minutesToWait = 3;
- case 200 .. 399: minutesToWait = 2;
- default: minutesToWait = 1;
- }
- SetTimerEx("Timer_RepairTimer", 60000 * minutesToWait, false, "i", playerid);
- // Repair the vehicle
- RepairVehicle(repairVeh[playerid]);
- SetVehicleHealth(repairVeh[playerid], 1000);
- // charge money
- GiveMoney(playerid, -MECH_REPAIR_PRICE);
- switch(GetVehicleModel(repairVeh[playerid])){
- case 427, 432, 601:SetVehicleHealth(repairVeh[playerid], 10000); //Enforcer, Tank, Splashy
- case 470, 433, 596, 598:SetVehicleHealth(repairVeh[playerid], 1350); //Humvee, Barracks, SAPD-Cruisers
- case 425, 520, 528:SetVehicleHealth(repairVeh[playerid], 1500); //Hunter, Hydra, smaller SWAT Van
- }
- if(sVehicleInfo[repairVeh[playerid]][v_faction] == 6 && GetVehicleModel(sVehicleInfo[repairVeh[playerid]][v_id]) == 409)
- {
- SetVehicleHealth(sVehicleInfo[repairVeh[playerid]][v_id], 10000);
- }
-
- new mechanicStr[128];
- // Bicycle fix
- if(IsABicycle(repairVeh[playerid])) {
- SetVehicleEngineState(repairVeh[playerid], 0);
- format(mechanicStr, sizeof(mechanicStr), "* %s fixes the bike's chain and tests it out.", PlayerICName(playerid));
- SetPlayerChatBubble(playerid, mechanicStr, COLOR_PURPLE, 20.0, 15000);
- format(mechanicStr, sizeof(mechanicStr), "> %s fixes the bike's chain and tests it out.", PlayerICName(playerid));
- SendClientMessage(playerid, COLOR_PURPLE, mechanicStr);
- }
- else {
- format(mechanicStr, sizeof(mechanicStr), "* %s moves their hands around inside of the engine bay, attempting to fix the vehicle.", PlayerICName(playerid));
- SetPlayerChatBubble(playerid, mechanicStr, COLOR_PURPLE, 20.0, 15000);
- format(mechanicStr, sizeof(mechanicStr), "> %s moves their hands around inside of the engine bay, attempting to fix the vehicle.", PlayerICName(playerid));
- SendClientMessage(playerid, COLOR_PURPLE, mechanicStr);
- }
- // Close the bonnet
- new engine, lights, alarm, doors, bonnet, boot, objective;
- GetVehicleParamsEx(repairVeh[playerid], engine, lights, alarm, doors, bonnet, boot, objective);
- SetVehicleParamsEx(repairVeh[playerid], engine, lights, alarm, doors, 0, boot, objective);
-
- // Reset variables and remove checkpoint
- repairVeh[playerid] = INVALID_VEHICLE_ID;
- isRepairing[playerid] = false;
- CanRepair[playerid] = false;
- DisablePlayerCheckpointEx(playerid);
- return 1;
- }
- CMD:nos(playerid)
- {
- if(PlayerInfo[playerid][pJob] != 7) return SendClientMessage(playerid, COLOR_GREY, "You are not a mechanic.");
- if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You can use this command only when in vehicle.");
- if(PlayerInfo[playerid][pCash] < MECH_NOS_PRICE)
- return SendClientMessage(playerid, COLOR_GREY, "You cant afford the nos.");
- new vehicleid = GetPlayerVehicleID(playerid);
- if(!IsValidNosVehicle(vehicleid))
- return SendClientMessage(playerid, COLOR_GREY, "This vehicle does not support nos.");
- new Float:x, Float:y, Float:z;
- new vehspeed = GetVehicleSpeed(vehicleid);
- if(vehspeed > 5) return SendClientMessage(playerid, COLOR_GREY, "Please stop your vehicle in order to add nitro.");
- GetPosAheadVehicle(GetPlayerVehicleID(playerid), x, y, z);
- SetPlayerCheckpointEx(playerid, x, y, z, 1.5);
- // Open hood of vehicle
- new engine, lights, alarm, doors, bonnet, boot, objective;
- GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
- SetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, 1, boot, objective);
- RemovePlayerFromVehicle(playerid);
- SendClientMessage(playerid, COLOR_GREY, "Make your way to the hood and add nitro to your vehicle.");
- nosVehicle[playerid] = vehicleid;
- isAddingNos[playerid] = true;
- return 1;
- }
- OnEnterNosCheckpoint(playerid) {
- // Game text and sound
- GameTextForPlayer(playerid, "~r~Vehicle NOS addition ~g~completed.", 3000, 5);
- PlayerPlaySound(playerid, 1133, 0, 0, 0);
- // Add nos
- AddVehicleComponent(nosVehicle[playerid], 1009);
-
- new mechanicStr[128];
- format(mechanicStr, sizeof(mechanicStr), "* %s moves their hands around inside of the engine bay, attempting to add nos to the vehicle.", PlayerICName(playerid));
- SetPlayerChatBubble(playerid, mechanicStr, COLOR_PURPLE, 20.0, 15000);
- format(mechanicStr, sizeof(mechanicStr), "> %s moves their hands around inside of the engine bay, attempting to add nos to the vehicle.", PlayerICName(playerid));
- SendClientMessage(playerid, COLOR_PURPLE, mechanicStr);
- // Close the bonnet
- new engine, lights, alarm, doors, bonnet, boot, objective;
- GetVehicleParamsEx(nosVehicle[playerid], engine, lights, alarm, doors, bonnet, boot, objective);
- SetVehicleParamsEx(nosVehicle[playerid], engine, lights, alarm, doors, 0, boot, objective);
-
- // Reset variables and remove checkpoint
- nosVehicle[playerid] = INVALID_VEHICLE_ID;
- isAddingNos[playerid] = false;
- DisablePlayerCheckpointEx(playerid);
- return 1;
- }
- // Command to apply hydraulics to vehicle
- CMD:hyd(playerid, params[])
- return cmd_hydraulics(playerid, params);
- CMD:hydraulics(playerid, params[]) {
- if(PlayerInfo[playerid][pJob] != 7)
- return SendClientMessage(playerid, COLOR_GREY, "You are not a mechanic.");
- if(UseHYDTimer[playerid])
- return SendClientMessage(playerid, COLOR_GREY, "You must wait before doing that again.");
- if(!IsPlayerInAnyVehicle(playerid))
- return SendClientMessage(playerid, COLOR_GREY, "You are not in a vehicle.");
- if(PlayerInfo[playerid][pCash] < MECH_HYDRAULICS_PRICE)
- return SendClientMessage(playerid, COLOR_GREY, "You cant afford the hydraulics.");
- GiveMoney(playerid, -MECH_HYDRAULICS_PRICE);
- // Add hydraulics to vehicle
- AddVehicleComponent(GetPlayerVehicleID(playerid), 1087);
- // Play sound
- PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
- // Action
- new mechanicStr[128];
- format(mechanicStr, sizeof(mechanicStr), "* %s has modified the vehicle with hydraulics.", PlayerICName(playerid));
- SetPlayerChatBubble(playerid, mechanicStr, COLOR_PURPLE, 20.0, 15000);
- format(mechanicStr, sizeof(mechanicStr), "> %s has modified the vehicle with hydraulics.", PlayerICName(playerid));
- SendClientMessage(playerid, COLOR_PURPLE, mechanicStr);
-
- // Set the hydraulics timer
- UseHYDTimer[playerid] = 1;
- SetTimerEx("Timer_UseHYD", MECH_HYDRAULICS_COOLDOWN, false, "i", playerid);
- return 1;
- }
- Timer:UseHYD(playerid)
- {
- if(!IsPlayerConnected(playerid)) return 0;
- if(UseHYDTimer[playerid])
- {
- UseHYDTimer[playerid] = 0;
- }
- return 1;
- }
- // Command to refill a player's vehicle
- CMD:refill(playerid, params[]) {
- if(PlayerInfo[playerid][pJob] != 7)
- return SendClientMessage(playerid, COLOR_GREY, "You are not a mechanic.");
- if(PlayerInfo[playerid][pMechTime])
- return SendClientMessage(playerid, COLOR_GREY, "You must wait before you can offer another refill.");
-
- new target, money;
- if(sscanf(params, "ui", target, money))
- return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /refill [playerid/PartOfName] [price]");
- if(!IsPlayerConnected(target))
- return SendClientMessage(playerid, COLOR_GREY, "Unknown player.");
- if(target == playerid)
- return SendClientMessage(playerid, COLOR_GREY, "You cannot offer to refill your own vehicle.");
- if(money < 1000 || money > 5000)
- return SendClientMessage(playerid, COLOR_GREY, "The price cannot be lower then $1,000 or above $5,000.");
-
- if(!IsPlayerInRangeOfPlayer(8.0, playerid, target))
- return SendClientMessage(playerid, COLOR_GREY, "That player is not near you.");
- if(!IsPlayerInAnyVehicle(target))
- return SendClientMessage(playerid, COLOR_GREY, "That player is not in a vehicle.");
- new mechanicStr[128];
- format(mechanicStr, sizeof(mechanicStr), "* You offered %s to refill their car for $%i .", PlayerICName(target), money);
- SendClientMessage(playerid, COLOR_LIGHTBLUE, mechanicStr);
- format(mechanicStr, sizeof(mechanicStr), "* Mechanic %s wants to refill your car for $%i. Type [/accept refill] to accept.", PlayerICName(playerid), money);
- SendClientMessage(target, COLOR_LIGHTBLUE, mechanicStr);
- // Set variables
- PlayerInfo[playerid][pMechTime] = 60;
- RefillOffer[target] = playerid;
- RefillPrice[target] = money;
- return 1;
- }
- // Called when a refill request is accepted
- OnRefillAccept(playerid) {
- new refiller = RefillOffer[playerid];
- if(refiller == INVALID_PLAYER_ID)
- return SendClientMessage(playerid, COLOR_GREY, "Nobody offered to refill your vehicle.");
-
- if(!IsPlayerConnected(refiller)) {
- RefillOffer[playerid] = INVALID_PLAYER_ID;
- return SendClientMessage(playerid, COLOR_GREY, "The player that offered you a refill has disconnected.");
- }
- if(!IsPlayerInAnyVehicle(playerid))
- return SendClientMessage(playerid, COLOR_GREY, "You are not in any vehicle.");
- new refillPrice = RefillPrice[playerid];
- if(PlayerInfo[playerid][pCash] < refillPrice)
- return SendClientMessage(playerid, COLOR_GREY, "You cannot afford the refill.");
- if(UseAcceptTimer[playerid])
- return SendClientMessage(playerid, COLOR_GREY, "You must wait before doing that.");
- new vehid = GetPlayerVehicleID(playerid),
- fuelToAdd = 0;
- // Improve the refiller's mechanic skill by 1
- ImproveMechanicSkill(refiller, 1);
-
- // Determine the fuel to add
- switch(PlayerInfo[refiller][pMechSkill]) {
- case 0 .. 49: fuelToAdd = 15;
- case 50 .. 99: fuelToAdd = 40;
- case 100 .. 199: fuelToAdd = 60;
- case 200 .. 399: fuelToAdd = 80;
- default: fuelToAdd = 100;
- }
- // Send messages
- new mechanicStr[128];
- format(mechanicStr, sizeof(mechanicStr), "* You refilled your vehicle with %i, for $%i by mechanic %s.", fuelToAdd, refillPrice, PlayerICName(refiller));
- SendClientMessage(playerid, COLOR_LIGHTBLUE, mechanicStr);
- format(mechanicStr, sizeof(mechanicStr), "* You refilled %s's vehicle with %i, the $%i has been added to your bank account.", PlayerICName(playerid), fuelToAdd, refillPrice);
- SendClientMessage(RefillOffer[playerid], COLOR_LIGHTBLUE, mechanicStr);
- // Take and add money
- PlayerInfo[refiller][pAccount] += refillPrice;
- GiveMoney(playerid, -refillPrice);
- // Set the fuel
- if(Gas[vehid] < 110)
- Gas[vehid] += fuelToAdd;
- // Reset refill offer
- RefillOffer[playerid] = INVALID_PLAYER_ID;
- RefillPrice[playerid] = 0;
- // Set accept timer
- UseAcceptTimer[playerid] = 1;
- SetTimerEx("Timer_UseAccept", 60 *1000, 0, "i", playerid);
- return 1;
- }
- // Command to add neon strips to a vehicle
- CMD:neon(playerid, params[]) {
- if(PlayerInfo[playerid][pJob] != 7)
- return SendClientMessage(playerid, COLOR_GREY, "You are not a mechanic.");
- if(!IsPlayerInAnyVehicle(playerid))
- return SendClientMessage(playerid, COLOR_GREY, "You are not in any vehicle.");
- if(PlayerInfo[playerid][pCash] < MECH_NEON_PRICE)
- return SendClientMessage(playerid, COLOR_GREY, "You cannot afford the neon.");
- new vehid = GetPlayerVehicleID(playerid);
- if(IsInvalidNeonVehicle(vehid))
- return SendClientMessage(playerid, COLOR_GREY, "You cannot add neon to this vehicle.");
- ShowPlayerDialog(playerid, 101, DIALOG_STYLE_LIST, "Neon",
- "Red\n\
- Blue\n\
- Green\n\
- Yellow\n\
- Pink\n\
- White",
- "Mod", "Cancel");
- return 1;
- }
- // Called when a player has selected neon from the dialog
- Dialog_NeonResponse(playerid, listitem) {
- // Set the neon
- new vehid = GetPlayerVehicleID(playerid);
- switch(listitem)
- {
- case 0: AddVehicleNeon(vehid, NEON_RED);
- case 1: AddVehicleNeon(vehid, NEON_BLUE);
- case 2: AddVehicleNeon(vehid, NEON_GREEN);
- case 3: AddVehicleNeon(vehid, NEON_YELLOW);
- case 4: AddVehicleNeon(vehid, NEON_PINK);
- case 5: AddVehicleNeon(vehid, NEON_WHITE);
- }
- // Take the money
- GiveMoney(playerid, -MECH_NEON_PRICE);
- // Play sound
- PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
- // Action
- new mechanicStr[128];
- format(mechanicStr, sizeof(mechanicStr), "* %s modifies the vehicle with neon.", PlayerICName(playerid));
- SetPlayerChatBubble(playerid, mechanicStr, COLOR_PURPLE, 20.0, 15000);
- format(mechanicStr, sizeof(mechanicStr), "> %s modifies the vehicle with neon.", PlayerICName(playerid));
- SendClientMessage(playerid, COLOR_PURPLE, mechanicStr);
- return 1;
- }
- // Adds neon to a vehicle
- AddVehicleNeon(vehicleid, neon)
- {
- // Destroy current neons
- if(Neon[vehicleid]) DestroyDynamicObjectEx(Neon[vehicleid]);
- if(Neon2[vehicleid]) DestroyDynamicObjectEx(Neon2[vehicleid]);
- if(Neon3[vehicleid]) DestroyDynamicObjectEx(Neon3[vehicleid]);
- if(Neon4[vehicleid]) DestroyDynamicObjectEx(Neon4[vehicleid]);
- Neon[vehicleid] = CreateDynamicObject(neon, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
- Neon2[vehicleid] = CreateDynamicObject(neon, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
- if(GetVehicleModel(vehicleid) == 409)
- {
- Neon3[vehicleid] = CreateDynamicObject(neon, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
- Neon4[vehicleid] = CreateDynamicObject(neon, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
- }
- switch(GetVehicleModel(vehicleid))
- {
- case 400:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.9, 0.0, -0.8, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.9, 0.0, -0.8, 0.0, 0.0, 0.0);
- }
- case 401:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.9, 0.0, -0.6, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.9, 0.0, -0.6, 0.0, 0.0, 0.0);
- }
- case 402:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.92, 0.0, -0.7, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.92, 0.0, -0.7, 0.0, 0.0, 0.0);
- }
- case 404, 466, 467:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.55, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.55, 0.0, 0.0, 0.0);
- }
- case 405, 442:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.7, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.7, 0.0, 0.0, 0.0);
- }
- case 409:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 1.0, -0.6, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 1.0, -0.6, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon3[vehicleid], vehicleid, 0.8, -1.0, -0.6, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon4[vehicleid], vehicleid, -0.8, -1.0, -0.6, 0.0, 0.0, 0.0);
- }
- case 410, 560:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.5, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.5, 0.0, 0.0, 0.0);
- }
- case 411, 412, 415, 419, 458, 474:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.65, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.65, 0.0, 0.0, 0.0);
- }
- case 413:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.85, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.85, 0.0, 0.0, 0.0);
- }
- case 418:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.9, 0.0, -0.95, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.9, 0.0, -0.95, 0.0, 0.0, 0.0);
- }
- case 420, 426, 429, 436:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.9, 0.0, -0.55, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.9, 0.0, -0.55, 0.0, 0.0, 0.0);
- }
- case 421, 422:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.9, 0.0, -0.7, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.9, 0.0, -0.7, 0.0, 0.0, 0.0);
- }
- case 424:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.85, 0.0, -0.5, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.85, 0.0, -0.5, 0.0, 0.0, 0.0);
- }
- case 434:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.6, 0.0, -0.75, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.6, 0.0, -0.75, 0.0, 0.0, 0.0);
- }
- case 438, 439:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.9, 0.0, -0.75, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.9, 0.0, -0.75, 0.0, 0.0, 0.0);
- }
- case 440:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -1.0, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -1.0, 0.0, 0.0, 0.0);
- }
- case 444:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.9, 0.0, 0.0, 0.0, 0.0, 0.0);
- }
- case 445, 451, 475:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.6, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.6, 0.0, 0.0, 0.0);
- }
- case 457:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.55, 0.0, -0.4, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.55, 0.0, -0.4, 0.0, 0.0, 0.0);
- }
- case 459:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.8, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.8, 0.0, 0.0, 0.0);
- }
- case 477, 480, 579, 580:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.6, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.6, 0.0, 0.0, 0.0);
- }
- case 479, 541, 559, 565, 576, 598:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.5, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.5, 0.0, 0.0, 0.0);
- }
- case 491, 534..536, 545, 587:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.65, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.65, 0.0, 0.0, 0.0);
- }
- case 494, 502, 503, 540, 603:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.7, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.7, 0.0, 0.0, 0.0);
- }
- case 495:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.9, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.9, 0.0, 0.0, 0.0);
- }
- case 496, 518, 533, 566:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.55, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.55, 0.0, 0.0, 0.0);
- }
- case 500:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.2, -0.6, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.2, -0.6, 0.0, 0.0, 0.0);
- }
- case 506:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, -0.2, -0.55, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, -0.2, -0.55, 0.0, 0.0, 0.0);
- }
- case 527:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.2, -0.5, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.2, -0.5, 0.0, 0.0, 0.0);
- }
- case 550:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, -0.2, -0.7, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, -0.2, -0.7, 0.0, 0.0, 0.0);
- }
- case 558, 589:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.45, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.45, 0.0, 0.0, 0.0);
- }
- case 562:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.1, -0.5, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.1, -0.5, 0.0, 0.0, 0.0);
- }
- case 567:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.2, -0.7, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.2, -0.7, 0.0, 0.0, 0.0);
- }
- case 575:
- {
- AttachDynamicObjectToVehicle(Neon[vehicleid], vehicleid, 0.8, 0.0, -0.4, 0.0, 0.0, 0.0);
- AttachDynamicObjectToVehicle(Neon2[vehicleid], vehicleid, -0.8, 0.0, -0.4, 0.0, 0.0, 0.0);
- }
- }
- return 1;
- }
- // This function adds to the mechanic skill of a player
- ImproveMechanicSkill(playerid, amount) {
- PlayerInfo[playerid][pMechSkill] += amount;
- // Send notification if new level reached
- if(PlayerInfo[playerid][pMechSkill] == 50)
- SendClientMessage(playerid, COLOR_YELLOW, "* Your Mechanic Skill is now Level 2, you can now add more Fuel to Cars.");
- else if(PlayerInfo[playerid][pMechSkill] == 100)
- SendClientMessage(playerid, COLOR_YELLOW, "* Your Mechanic Skill is now Level 3, you can now add more Fuel to Cars.");
- else if(PlayerInfo[playerid][pMechSkill] == 200)
- SendClientMessage(playerid, COLOR_YELLOW, "* Your Mechanic Skill is now Level 4, you can now add more Fuel to Cars.");
- else if(PlayerInfo[playerid][pMechSkill] == 400)
- SendClientMessage(playerid, COLOR_YELLOW, "* Your Mechanic Skill is now Level 5, you can now add more Fuel to Cars.");
- return 1;
- }
|