Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //----------------------------------------------------------
- //
- // GRAND LARCENY 1.0
- // A freeroam gamemode for SA-MP 0.3
- //
- //----------------------------------------------------------
- #include <a_samp>
- #include <core>
- #include <float>
- #include "../include/gl_common.inc"
- #include "../include/gl_spawns.inc"
- #include <YSI\y_master>
- #include <YSI\y_commands>
- #include <streamer>
- #include <speedcap>
- #include <foreach>
- #pragma tabsize 0
- //----------------------------------------------------------
- #define COLOR_WHITE 0xFFFFFFFF
- #define COLOR_NORMAL_PLAYER 0xFFBB7777
- #define CITY_LOS_SANTOS 0
- #define CITY_SAN_FIERRO 1
- #define CITY_LAS_VENTURAS 2
- new total_vehicles_from_files=0;
- // Class selection globals
- new gPlayerCitySelection[MAX_PLAYERS];
- new gPlayerHasCitySelected[MAX_PLAYERS];
- new gPlayerLastCitySelectionTick[MAX_PLAYERS];
- new Text:txtClassSelHelper;
- new Text:txtLosSantos;
- new Text:txtSanFierro;
- new Text:txtLasVenturas;
- new thisanimid=0;
- new lastanimid=0;
- //----------------------------------------------------------
- main()
- {
- print("\n---------------------------------------");
- print("Running Grand Larceny - by the SA-MP team\n");
- print("---------------------------------------\n");
- }
- //----------------------------------------------------------
- public OnPlayerConnect(playerid)
- {
- GameTextForPlayer(playerid,"~w~Grand Larceny",3000,4);
- SendClientMessage(playerid,COLOR_WHITE,"Welcome to {88AA88}G{FFFFFF}rand {88AA88}L{FFFFFF}arceny");
- // class selection init vars
- gPlayerCitySelection[playerid] = -1;
- gPlayerHasCitySelected[playerid] = 0;
- gPlayerLastCitySelectionTick[playerid] = GetTickCount();
- //SetPlayerColor(playerid,COLOR_NORMAL_PLAYER);
- //Kick(playerid);
- /*
- Removes vending machines
- RemoveBuildingForPlayer(playerid, 1302, 0.0, 0.0, 0.0, 6000.0);
- RemoveBuildingForPlayer(playerid, 1209, 0.0, 0.0, 0.0, 6000.0);
- RemoveBuildingForPlayer(playerid, 955, 0.0, 0.0, 0.0, 6000.0);
- RemoveBuildingForPlayer(playerid, 1775, 0.0, 0.0, 0.0, 6000.0);
- RemoveBuildingForPlayer(playerid, 1776, 0.0, 0.0, 0.0, 6000.0);
- */
- /*
- new ClientVersion[32];
- GetPlayerVersion(playerid, ClientVersion, 32);
- printf("Player %d reports client version: %s", playerid, ClientVersion);*/
- return 1;
- }
- new SpeedoTimer[MAX_VEHICLES];
- new Iterator:Vehicle<MAX_VEHICLES>;
- public OnVehicleSpawn(vehicleid)
- {
- Iter_Add(Vehicle, vehicleid);
- SpeedoTimer[vehicleid] = -1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- Iter_Remove(Vehicle, vehicleid);
- }
- new VehicleTimer[MAX_VEHICLES];
- new VehicleTarget[MAX_VEHICLES];
- new Text:SpeedoTextdrawLabel[2];
- new Text:SpeedoTextdrawSpeed[2][MAX_VEHICLES];
- YCMD:speedo(playerid, params[], help)
- {
- if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "You must be in a vehicle to use this!");
- if (GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid, -1, "You must be the driver to use this!");
- new vehicleid = GetPlayerVehicleID(playerid);
- if (SpeedoTimer[vehicleid] == -1)
- {
- SendClientMessage(playerid, -1, "Speedo on");
- SpeedoTextdrawSpeed[0][vehicleid] = TextDrawCreate(550.000000, 339.000000, "999");
- SpeedoTextdrawSpeed[1][vehicleid] = TextDrawCreate(550.000000, 357.000000, "999");
- for (new i = 0; i < 2; i++)
- {
- TextDrawAlignment(SpeedoTextdrawSpeed[i][vehicleid], 3);
- TextDrawBackgroundColor(SpeedoTextdrawSpeed[i][vehicleid], 255);
- TextDrawFont(SpeedoTextdrawSpeed[i][vehicleid], 3);
- TextDrawLetterSize(SpeedoTextdrawSpeed[i][vehicleid], 0.370000, 1.800000);
- TextDrawSetOutline(SpeedoTextdrawSpeed[i][vehicleid], 0);
- TextDrawSetProportional(SpeedoTextdrawSpeed[i][vehicleid], 1);
- TextDrawSetShadow(SpeedoTextdrawSpeed[i][vehicleid], 1);
- TextDrawColor(SpeedoTextdrawSpeed[i][vehicleid], -1);
- }
- HandleSpeedo(vehicleid, playerid);
- SpeedoTimer[vehicleid] = SetTimerEx("HandleSpeedo", 500, true, "dd", vehicleid, playerid);
- }
- else
- {
- SendClientMessage(playerid, -1, "Speedo off");
- KillTimer(SpeedoTimer[vehicleid]);
- SpeedoTimer[vehicleid] = -1;
- TextDrawDestroy(SpeedoTextdrawSpeed[0][vehicleid]);
- TextDrawDestroy(SpeedoTextdrawSpeed[1][vehicleid]);
- TextDrawHideForPlayer(playerid, SpeedoTextdrawLabel[0]);
- TextDrawHideForPlayer(playerid, SpeedoTextdrawLabel[1]);
- }
- return 1;
- }
- forward HandleSpeedo(vehicleid, playerid);
- public HandleSpeedo(vehicleid, playerid)
- {
- new Float:speed_x, Float:speed_y, Float:speed_z, Float:final_speed;
- GetVehicleVelocity(vehicleid, speed_x, speed_y, speed_z);
- final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*136.666667;
- new string[5];
- format(string, sizeof(string), "%d", floatround(final_speed, floatround_round));
- TextDrawSetString(SpeedoTextdrawSpeed[0][vehicleid], string);
- format(string, sizeof(string), "%d", floatround(final_speed * 1.60934, floatround_round));
- TextDrawSetString(SpeedoTextdrawSpeed[1][vehicleid], string);
- for (new t = 0; t < 2; t++)
- {
- TextDrawShowForPlayer(playerid, SpeedoTextdrawLabel[t]);
- TextDrawShowForPlayer(playerid, SpeedoTextdrawSpeed[t][vehicleid]);
- }
- }
- YCMD:dashcam(playerid, params[], help)
- {
- if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "You must be in a vehicle to use this!");
- if (GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid, -1, "You must be the driver to use this!");
- new vehicleid = GetPlayerVehicleID(playerid);
- if (VehicleTimer[vehicleid] != -1) return SendClientMessage(playerid, -1, "Your dashcam is already on!");
- VehicleTimer[vehicleid] = SetTimerEx("DashCam", 1000, true, "d", vehicleid);
- SendClientMessage(playerid, -1, "Dashcam on");
- return 1;
- }
- YCMD:dashcamoff(playerid, params[], help)
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- KillTimer(VehicleTimer[vehicleid]);
- VehicleTimer[vehicleid] = -1;
- SendClientMessage(playerid, -1, "Dashcam off");
- return 1;
- }
- stock Float:GetDistanceBetweenPoints(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2)
- {
- x1 -= x2, y1 -= y2, z1 -= z2;
- return floatsqroot((x1 * x1) + (y1 * y1) + (z1 * z1));
- }
- forward DashCam(vehicleid);
- public DashCam(vehicleid)
- {
- new Float:x, Float:y, Float:z, Float:a;
- GetVehiclePos(vehicleid, x, y, z);
- GetVehicleZAngle(vehicleid, a);
- new Float:points[8];
- points[0] = (x + (1.0 * floatsin(-(a - 90), degrees)));
- points[1] = (y + (1.0 * floatcos(-(a - 90), degrees)));
- points[2] = (x + (45.0 * floatsin(-(a - 30), degrees)));
- points[3] = (y + (45.0 * floatcos(-(a - 30), degrees)));
- points[4] = (x + (45.0 * floatsin(-(a + 30), degrees)));
- points[5] = (y + (45.0 * floatcos(-(a + 30), degrees)));
- points[6] = (x + (1.0 * floatsin(-(a + 90), degrees)));
- points[7] = (y + (1.0 * floatcos(-(a + 90), degrees)));
- new VehicleSearchPolygon = CreateDynamicPolygon(points);
- new Float:closestDistance = 9999999999;
- VehicleTarget[vehicleid] = -1;
- for(new v = 0; v < MAX_VEHICLES; v++)
- {
- if (v == vehicleid) continue;
- new Float:_x, Float:_y, Float:_z;
- GetVehiclePos(v, _x, _y, _z);
- if (GetDistanceBetweenPoints(x, y, z, _x, _y, _z) > closestDistance) continue;
- if (GetDistanceBetweenPoints(0, 0, z, 0, 0, _z) > 10) continue;
- if (IsVehicleBodyInDynamicArea(v, VehicleSearchPolygon))
- {
- closestDistance = GetDistanceBetweenPoints(x, y, z, _x, _y, _z);
- VehicleTarget[vehicleid] = v;
- }
- }
- if (VehicleTarget[vehicleid] != -1)
- {
- new string[128];
- format(string, sizeof(string), "Current target vehicle (%d) is a %s", VehicleTarget[vehicleid], GetVehicleName(VehicleTarget[vehicleid]));
- SendClientMessageToAll(-1, string);
- }
- }
- stock IsVehicleBodyInDynamicArea(vehicleid, areaid)
- {
- new Float:x, Float:y, Float:z, Float:angle, Float:sX, Float:sY, Float:sZ, result;
- GetVehiclePos(vehicleid, x, y, z);
- GetVehicleModelInfo(vehicleid, VEHICLE_MODEL_INFO_SIZE , sX, sY, sZ);
- GetVehicleZAngle(vehicleid, angle);
- x += ( (sX / 2.0) * floatsin( -angle, degrees ) );
- y += ( (sY / 2.0) * floatsin( -angle, degrees ) );
- if(IsPointInDynamicArea(areaid, x, y, z))
- {
- result = 1;
- }
- if(result == 0)
- {
- GetVehicleModelInfo(vehicleid, VEHICLE_MODEL_INFO_SIZE , sX, sY, sZ);
- x -= ( (sX / 2.0) * floatsin( -angle, degrees ) );
- y -= ( (sY / 2.0) * floatsin( -angle, degrees ) );
- if(IsPointInDynamicArea(areaid, x, y, z))
- {
- result = 1;
- }
- }
- //z += (sZ / 2.0); acrtually no need to mess with the Z
- return result;
- }
- new VehicleNames[][] =
- {
- "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel",
- "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus",
- "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
- "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection",
- "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus",
- "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie",
- "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
- "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder",
- "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van",
- "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale",
- "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
- "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
- "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper",
- "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking",
- "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa", "RC Goblin",
- "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT",
- "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt",
- "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
- "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
- "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer",
- "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent",
- "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo",
- "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
- "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium",
- "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
- "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper",
- "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400",
- "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
- "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car",
- "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha",
- "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville",
- "Tiller", "Utility Trailer"
- };
- stock GetVehicleName(vehicleid)
- {
- new String[128];
- if (GetVehicleModel(vehicleid) < 400)
- {
- format(String, sizeof(String), "null");
- return String;
- }
- format(String,sizeof(String),"%s",VehicleNames[GetVehicleModel(vehicleid) - 400]);
- return String;
- }
- //----------------------------------------------------------
- public OnPlayerSpawn(playerid)
- {
- if(IsPlayerNPC(playerid)) return 1;
- new randSpawn = 0;
- SetPlayerInterior(playerid,0);
- TogglePlayerClock(playerid,0);
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, 30000);
- if(CITY_LOS_SANTOS == gPlayerCitySelection[playerid]) {
- randSpawn = random(sizeof(gRandomSpawns_LosSantos));
- SetPlayerPos(playerid,
- gRandomSpawns_LosSantos[randSpawn][0],
- gRandomSpawns_LosSantos[randSpawn][1],
- gRandomSpawns_LosSantos[randSpawn][2]);
- SetPlayerFacingAngle(playerid,gRandomSpawns_LosSantos[randSpawn][3]);
- }
- else if(CITY_SAN_FIERRO == gPlayerCitySelection[playerid]) {
- randSpawn = random(sizeof(gRandomSpawns_SanFierro));
- SetPlayerPos(playerid,
- gRandomSpawns_SanFierro[randSpawn][0],
- gRandomSpawns_SanFierro[randSpawn][1],
- gRandomSpawns_SanFierro[randSpawn][2]);
- SetPlayerFacingAngle(playerid,gRandomSpawns_SanFierro[randSpawn][3]);
- }
- else if(CITY_LAS_VENTURAS == gPlayerCitySelection[playerid]) {
- randSpawn = random(sizeof(gRandomSpawns_LasVenturas));
- SetPlayerPos(playerid,
- gRandomSpawns_LasVenturas[randSpawn][0],
- gRandomSpawns_LasVenturas[randSpawn][1],
- gRandomSpawns_LasVenturas[randSpawn][2]);
- SetPlayerFacingAngle(playerid,gRandomSpawns_LasVenturas[randSpawn][3]);
- }
- //SetPlayerColor(playerid,COLOR_NORMAL_PLAYER);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL,200);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL_SILENCED,200);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE,200);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SHOTGUN,200);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SAWNOFF_SHOTGUN,200);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SPAS12_SHOTGUN,200);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_MICRO_UZI,200);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_MP5,200);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47,200);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_M4,200);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SNIPERRIFLE,200);
- GivePlayerWeapon(playerid,WEAPON_COLT45,100);
- //GivePlayerWeapon(playerid,WEAPON_MP5,100);
- TogglePlayerClock(playerid, 0);
- return 1;
- }
- public OnPlayerDisconnect(playerid)
- {
- }
- //----------------------------------------------------------
- public OnPlayerDeath(playerid, killerid, reason)
- {
- new playercash;
- // if they ever return to class selection make them city
- // select again first
- gPlayerHasCitySelected[playerid] = 0;
- if(killerid == INVALID_PLAYER_ID) {
- ResetPlayerMoney(playerid);
- } else {
- playercash = GetPlayerMoney(playerid);
- if(playercash > 0) {
- GivePlayerMoney(killerid, playercash);
- ResetPlayerMoney(playerid);
- }
- }
- return 1;
- }
- //----------------------------------------------------------
- ClassSel_SetupCharSelection(playerid)
- {
- if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS) {
- SetPlayerInterior(playerid,11);
- SetPlayerPos(playerid,508.7362,-87.4335,998.9609);
- SetPlayerFacingAngle(playerid,0.0);
- SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609);
- SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609);
- }
- else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO) {
- SetPlayerInterior(playerid,3);
- SetPlayerPos(playerid,-2673.8381,1399.7424,918.3516);
- SetPlayerFacingAngle(playerid,181.0);
- SetPlayerCameraPos(playerid,-2673.2776,1394.3859,918.3516);
- SetPlayerCameraLookAt(playerid,-2673.8381,1399.7424,918.3516);
- }
- else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS) {
- SetPlayerInterior(playerid,3);
- SetPlayerPos(playerid,349.0453,193.2271,1014.1797);
- SetPlayerFacingAngle(playerid,286.25);
- SetPlayerCameraPos(playerid,352.9164,194.5702,1014.1875);
- SetPlayerCameraLookAt(playerid,349.0453,193.2271,1014.1797);
- }
- }
- //----------------------------------------------------------
- // Used to init textdraws of city names
- ClassSel_InitCityNameText(Text:txtInit)
- {
- TextDrawUseBox(txtInit, 0);
- TextDrawLetterSize(txtInit,1.25,3.0);
- TextDrawFont(txtInit, 0);
- TextDrawSetShadow(txtInit,0);
- TextDrawSetOutline(txtInit,1);
- TextDrawColor(txtInit,0xEEEEEEFF);
- TextDrawBackgroundColor(txtClassSelHelper,0x000000FF);
- }
- //----------------------------------------------------------
- ClassSel_InitTextDraws()
- {
- // Init our observer helper text display
- txtLosSantos = TextDrawCreate(10.0, 380.0, "Los Santos");
- ClassSel_InitCityNameText(txtLosSantos);
- txtSanFierro = TextDrawCreate(10.0, 380.0, "San Fierro");
- ClassSel_InitCityNameText(txtSanFierro);
- txtLasVenturas = TextDrawCreate(10.0, 380.0, "Las Venturas");
- ClassSel_InitCityNameText(txtLasVenturas);
- // Init our observer helper text display
- txtClassSelHelper = TextDrawCreate(10.0, 415.0,
- " Press ~b~~k~~GO_LEFT~ ~w~or ~b~~k~~GO_RIGHT~ ~w~to switch cities.~n~ Press ~r~~k~~PED_FIREWEAPON~ ~w~to select.");
- TextDrawUseBox(txtClassSelHelper, 1);
- TextDrawBoxColor(txtClassSelHelper,0x222222BB);
- TextDrawLetterSize(txtClassSelHelper,0.3,1.0);
- TextDrawTextSize(txtClassSelHelper,400.0,40.0);
- TextDrawFont(txtClassSelHelper, 2);
- TextDrawSetShadow(txtClassSelHelper,0);
- TextDrawSetOutline(txtClassSelHelper,1);
- TextDrawBackgroundColor(txtClassSelHelper,0x000000FF);
- TextDrawColor(txtClassSelHelper,0xFFFFFFFF);
- }
- //----------------------------------------------------------
- ClassSel_SetupSelectedCity(playerid)
- {
- if(gPlayerCitySelection[playerid] == -1) {
- gPlayerCitySelection[playerid] = CITY_LOS_SANTOS;
- }
- if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS) {
- SetPlayerInterior(playerid,0);
- SetPlayerCameraPos(playerid,1630.6136,-2286.0298,110.0);
- SetPlayerCameraLookAt(playerid,1887.6034,-1682.1442,47.6167);
- TextDrawShowForPlayer(playerid,txtLosSantos);
- TextDrawHideForPlayer(playerid,txtSanFierro);
- TextDrawHideForPlayer(playerid,txtLasVenturas);
- }
- else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO) {
- SetPlayerInterior(playerid,0);
- SetPlayerCameraPos(playerid,-1300.8754,68.0546,129.4823);
- SetPlayerCameraLookAt(playerid,-1817.9412,769.3878,132.6589);
- TextDrawHideForPlayer(playerid,txtLosSantos);
- TextDrawShowForPlayer(playerid,txtSanFierro);
- TextDrawHideForPlayer(playerid,txtLasVenturas);
- }
- else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS) {
- SetPlayerInterior(playerid,0);
- SetPlayerCameraPos(playerid,1310.6155,1675.9182,110.7390);
- SetPlayerCameraLookAt(playerid,2285.2944,1919.3756,68.2275);
- TextDrawHideForPlayer(playerid,txtLosSantos);
- TextDrawHideForPlayer(playerid,txtSanFierro);
- TextDrawShowForPlayer(playerid,txtLasVenturas);
- }
- }
- //----------------------------------------------------------
- ClassSel_SwitchToNextCity(playerid)
- {
- gPlayerCitySelection[playerid]++;
- if(gPlayerCitySelection[playerid] > CITY_LAS_VENTURAS) {
- gPlayerCitySelection[playerid] = CITY_LOS_SANTOS;
- }
- PlayerPlaySound(playerid,1052,0.0,0.0,0.0);
- gPlayerLastCitySelectionTick[playerid] = GetTickCount();
- ClassSel_SetupSelectedCity(playerid);
- }
- //----------------------------------------------------------
- ClassSel_SwitchToPreviousCity(playerid)
- {
- gPlayerCitySelection[playerid]--;
- if(gPlayerCitySelection[playerid] < CITY_LOS_SANTOS) {
- gPlayerCitySelection[playerid] = CITY_LAS_VENTURAS;
- }
- PlayerPlaySound(playerid,1053,0.0,0.0,0.0);
- gPlayerLastCitySelectionTick[playerid] = GetTickCount();
- ClassSel_SetupSelectedCity(playerid);
- }
- //----------------------------------------------------------
- ClassSel_HandleCitySelection(playerid)
- {
- new Keys,ud,lr;
- GetPlayerKeys(playerid,Keys,ud,lr);
- if(gPlayerCitySelection[playerid] == -1) {
- ClassSel_SwitchToNextCity(playerid);
- return;
- }
- // only allow new selection every ~500 ms
- if( (GetTickCount() - gPlayerLastCitySelectionTick[playerid]) < 500 ) return;
- if(Keys & KEY_FIRE) {
- gPlayerHasCitySelected[playerid] = 1;
- TextDrawHideForPlayer(playerid,txtClassSelHelper);
- TextDrawHideForPlayer(playerid,txtLosSantos);
- TextDrawHideForPlayer(playerid,txtSanFierro);
- TextDrawHideForPlayer(playerid,txtLasVenturas);
- TogglePlayerSpectating(playerid,0);
- return;
- }
- if(lr > 0) {
- ClassSel_SwitchToNextCity(playerid);
- }
- else if(lr < 0) {
- ClassSel_SwitchToPreviousCity(playerid);
- }
- }
- //----------------------------------------------------------
- public OnPlayerRequestClass(playerid, classid)
- {
- if(IsPlayerNPC(playerid)) return 1;
- if(gPlayerHasCitySelected[playerid]) {
- ClassSel_SetupCharSelection(playerid);
- return 1;
- } else {
- if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) {
- TogglePlayerSpectating(playerid,1);
- TextDrawShowForPlayer(playerid, txtClassSelHelper);
- gPlayerCitySelection[playerid] = -1;
- }
- }
- return 0;
- }
- //----------------------------------------------------------
- public OnGameModeInit()
- {
- SetGameModeText("Grand Larceny");
- ShowPlayerMarkers(PLAYER_MARKERS_MODE_GLOBAL);
- ShowNameTags(1);
- SetNameTagDrawDistance(40.0);
- EnableStuntBonusForAll(0);
- DisableInteriorEnterExits();
- SetWeather(2);
- SetWorldTime(11);
- UsePlayerPedAnims();
- //ManualVehicleEngineAndLights();
- //LimitGlobalChatRadius(300.0);
- ClassSel_InitTextDraws();
- // Player Class
- AddPlayerClass(281,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(282,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(283,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(284,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(285,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(286,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(287,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(288,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(289,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(265,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(266,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(267,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(268,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(269,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(270,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(1,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(2,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(3,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(4,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(5,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(6,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(8,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(42,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(65,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- //AddPlayerClass(74,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(86,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(119,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(149,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(208,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(273,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(289,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(47,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(48,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(49,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(50,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(51,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(52,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(53,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(54,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(55,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(56,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(57,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(58,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(68,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(69,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(70,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(71,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(72,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(73,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(75,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(76,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(78,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(79,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(80,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(81,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(82,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(83,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(84,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(85,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(87,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(88,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(89,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(91,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(92,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(93,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(95,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(96,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(97,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(98,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- AddPlayerClass(99,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
- // SPECIAL
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/trains.txt");
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/pilots.txt");
- // LAS VENTURAS
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_law.txt");
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_airport.txt");
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_gen.txt");
- // SAN FIERRO
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_law.txt");
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_airport.txt");
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_gen.txt");
- // LOS SANTOS
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_law.txt");
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_airport.txt");
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_inner.txt");
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_outer.txt");
- // OTHER AREAS
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/whetstone.txt");
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/bone.txt");
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/flint.txt");
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/tierra.txt");
- total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/red_county.txt");
- printf("Total vehicles from files: %d",total_vehicles_from_files);
- for (new v = 0; v < MAX_VEHICLES; v++)
- {
- SpeedoTimer[v] = -1;
- }
- SpeedoTextdrawLabel[0] = TextDrawCreate(580.000000, 339.000000, "MPH");
- SpeedoTextdrawLabel[1] = TextDrawCreate(577.000000, 357.000000, "KPH");
- for (new i = 0; i < 2; i++)
- {
- TextDrawAlignment(SpeedoTextdrawLabel[i], 3);
- TextDrawBackgroundColor(SpeedoTextdrawLabel[i], 255);
- TextDrawFont(SpeedoTextdrawLabel[i], 3);
- TextDrawLetterSize(SpeedoTextdrawLabel[i], 0.370000, 1.800000);
- TextDrawSetOutline(SpeedoTextdrawLabel[i], 0);
- TextDrawSetProportional(SpeedoTextdrawLabel[i], 1);
- TextDrawSetShadow(SpeedoTextdrawLabel[i], 1);
- TextDrawColor(SpeedoTextdrawLabel[i], -858993921);
- }
- return 1;
- }
- //----------------------------------------------------------
- public OnPlayerUpdate(playerid)
- {
- if(!IsPlayerConnected(playerid)) return 0;
- if(IsPlayerNPC(playerid)) return 1;
- // changing cities by inputs
- if( !gPlayerHasCitySelected[playerid] &&
- GetPlayerState(playerid) == PLAYER_STATE_SPECTATING ) {
- ClassSel_HandleCitySelection(playerid);
- return 1;
- }
- // No weapons in interiors
- if(GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0) {
- SetPlayerArmedWeapon(playerid,0); // fists
- return 0; // no syncing until they change their weapon
- }
- // Don't allow minigun
- if(GetPlayerWeapon(playerid) == WEAPON_MINIGUN) {
- Kick(playerid);
- return 0;
- }
- /* No jetpacks allowed
- if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK) {
- Kick(playerid);
- return 0;
- }*/
- /* For testing animations
- new msg[128+1];
- new animlib[32+1];
- new animname[32+1];
- thisanimid = GetPlayerAnimationIndex(playerid);
- if(lastanimid != thisanimid)
- {
- GetAnimationName(thisanimid,animlib,32,animname,32);
- format(msg, 128, "anim(%d,%d): %s %s", lastanimid, thisanimid, animlib, animname);
- lastanimid = thisanimid;
- SendClientMessage(playerid, 0xFFFFFFFF, msg);
- }*/
- return 1;
- }
- //----------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement