SHOP

Grand Theft Auto IV Video Tutorials (Script Hook/C++)

GTA IV Trainer
#pragma once //#include "../ScriptHook/NativeFiberThread.h" #include "../ScriptHook/ScriptThread.h" #include "../ScriptHook/ScriptingEnums.h" #include "../ScriptHook/ScriptingTypes.h" class CustomFiberThread : // public NativeFiberThread public ScriptThread { private: enum eStateMachine { StateDefault, }; eStateMachine m_State; bool isInvincible; // switch for God Mode ON/OFF bool isPedInvincible; bool isFloating; bool isCharOnFire; bool isPlayerVisible; bool isVehicleVisible; bool isObjectVisible; bool isNumPadActive; bool isGravityOn; bool isPlayerFrozen; bool isStupidCopsOn; bool isAnimationPlaying; bool isCarExploding; bool isFunctionViewActive; bool isRelationship; bool isExplosionVisible; bool isBulletTimeActive; bool isTrafficModeActive; bool isNumPadControllingExp; bool isNumPadControllingObj; bool isPedAttachedToCar; int test; Scripting::Player GetPlayer(); Scripting::Ped GetPlayerPed(); Scripting::Char GetPlayerStatic(); Scripting::Blip GetPlayerBlip(); Scripting::Vehicle closestCar; void SpawnGlobal(Scripting::eModel model, int sptype); void ChangeToNewPlayer(int PlayerX); void ChangePlayerSkin(Scripting::eModel model); void TeleportToWaypoint(Scripting::Ped &ped); void DeleteAnObject(Scripting::eModel model); void SpeedofPlayer(Scripting::eModel model); void MakePedNasty(Scripting::Ped ped); void MoveObjectLeft(Scripting::eModel model); void MoveObjectRight(Scripting::eModel model); void MenuExec01(u32 item); void MenuExec2(u32 item); void MenuExec3(u32 item); void MenuExec4(u32 item); void MenuExec5(u32 item); void MenuExec6(u32 item); void MenuExec7(u32 item); void MenuExec8(u32 item); void MenuExec9(u32 item); void MenuExec10(u32 item); void MenuExec11(u32 item); void MenuExec12(u32 item); void MenuExec13(u32 item); void MenuExec14(u32 item); void MenuExec15(u32 item); void MenuExec16(u32 item); void MenuExec17(u32 item); void Sub_MenuExec1(u32 item); void Sub_MenuExec4(u32 item); void Sub_MenuExec4_B(u32 item); void Sub_MenuExec4_C(u32 item); void MenuDisplay(); void SubMenuDisplay(); void TitleDisplay(); //void CallMenu(); void CallSubMenu(); //void ClearMenuLines(); void ClearSubMenuLines(); void ResetMenuDefaults(u32 item); void HelpWithThisMod(); void HelpWithTheMenus(); void ClearKeyboardBuffer(); void CheckMenuStates(); public: void RunScript(); //void RunTick(); void ObjectSpawner(); void ForwardthruTeleportList(); void BackwardthruTeleportList(); void TeleporterActive(); void DecrementObjectList(); void IncrementObjectList(); void WeaponsLoadedSetOne(); void WeaponsLoadedSetTwo(); void WeaponSetNonStandard(); void DetermineIfGodmode(); void ViewPlayerCoordinates(); //void ChangeToNewPlayer(); void ExplodeVehicleInVicinity(); void DeleteLastObject(); void PedSpawner(); void DeleteLastPed(); void MultiPedSpawner(); void IncreasePlayerMoney(); void ChangeWalkorSwimRate_Forward(); void ChangeWalkorSwimRate_Backward(); void ChangeVehicleSpeed(); void AttachObjectToVehicle(); void ActivateRagdoll(); void ForwardThruCarList(); void BackwardThruCarList(); void SpawnaVehicle(int vehtype); void GodCar(); void RepairCar(); void SpawnCops(); void HoveringControl(); void DiggingControl(); void ResetHoveringControl(); void ResetDiggingControl(); void ResetVehicleSpeed(); void ChangeObjectSpeed(); //void MoveObjectUp_Down(); //void MoveObjectLeft(); //void MoveObjectRight(); void FreezeHoveringControl(); void UnFreezeHoveringControl(); void RestorePlayerHealth(); void RemoveWantedLevel(); void DetatchObjectFromVehicle(); void GlobalDelete(); //void ChangeVehicleColor(); void TeleportToPlayer(); void ViewWeather(); void ChangeTime(); void TestBlips(); void BurstingTheTires(); void ForwardSkipObjList(); void BackwardSkipObjList(); void BodyGuardMod(); void FloatingAbility(); void PedOnFire(); void PutCharFireOut(); //void PlayerMakesFire(); void ExtinguishFire(); //void FreezeCarInAir(); void UnFreezeCarInAir(); void ForwardThruCarForceX(); void BackwardThruCarForceX(); void ForwardThruCarForceY(); void BackwardThruCarForceY(); void ForwardThruCarForceZ(); void BackwardThruCarForceZ(); void EnableFancyWaterMod(); void DrawLight(); void UnlockAllBridges(); void ForwardThruPedForceX(); void BackwardThruPedForceX(); void ForwardThruPedForceY(); void BackwardThruPedForceY(); void ForwardThruPedForceZ(); void BackwardThruPedForceZ(); void ControlPlayersCar(); void FlipVehicle(); void RevivePed(); void ViewPedForwardList(); void ViewPedBackwardList(); void SpawnPedSelector(); void PlayerIsInvisible(); void CarIsInvisible(); void TeleportToWayPoint(); void ObjectIsInvisible(); void ActiveSpawnedPed(); void ViewSpawnedObject(); void PlayerControlOptions(); void NumpadSwitch(); void SaveLastTeleportLocation(); void ActivateSavedTeleportLocation(); void ActivateCarLivery(); void PedDropWeapon(); void DriverMission(); void DeleteVehicle(); void ActiveSpawnedVehicle(); void PlayerQuickTrot(); void ForcePedFromCar(); void PlayerMakesExplosions(); void ExecuteYourPlayer(); void WaterLevelAdjustment(); void WaterLevelReset(); //void WaterLevelMode(); void ChangeObjectSize(); void HeliSpeedCheat(); void ResetObjectSpeed(); void ConnectObjectsTogether(); void TornadoPower(); void BikeReset(); void GravitySelector(); void VehicleSpeedForward(); void VehicleSpeedBackward(); void TrustedPlayers(); void SwitchRoads(); void AttachVehicletoVehicle(); void AttachPedToVehicle(); void ChangeCarColor(); void WarpPlayerIntoVehicle(); void KickNetworkPlayer(); void FlipObject(); void ZombieMod(); void LiftPedFromWater(); void PlayerSuperSpeed(); void RotateAnObject(); void FreezeCharMode(); void ApplyForceToTheObject(); void TaskPutHandsUp(); void TaskCombatWithPeds(); void TaskPlayerSitDown(); void RotateObjectOnCar(); void DumbCops(); void DumbCopsControl(); void CharShootRate(); void IncreaseShootRate(); void DecreaseShootRate(); void CharAccuracy(); void ChangeAirportArea(); void PlayerSmoking(); void PlayerWaving(); void PlayerArguing(); void PlayerAttacking(); void ApplyingForceToPed(); void ApplyingForceToVehicle(); void IncreaseCarRadius(); void DecreaseCarRadius(); void ExplodeCarFlag(); void WalkingApplyForceToVehicle(); void CamIsInFront(); void CamIsBehind(); void FireBullet(); void MakeGroup(); void BulletForceToCars(); void Increase_Pedx(); void Decrease_Pedx(); void Increase_Pedy(); void Decrease_Pedy(); void Increase_Pedz(); void Decrease_Pedz(); void ResetAll_PedValues(); void SpawnEmergencyVehicle(); void CrashCarsIntoPeds(); void IncreaseCarRemoteDir(); void DecreaseCarRemoteDir(); void IncreasePedRadius(); void DecreasePedRadius(); void LiftPedinAir(); void BecomeaPassenger(); void MakePedInvincible(); void GTAFunctionViewer(); void HeliCombat(); void CarVariableSpeed_Increment(); void CarVariableSpeed_Decrement(); void CloseCarDoors(); void CarNeons(); void SetupRelationships(); void Relationship_Toggle(); void ReviveDeadCar(); void ResetFireValues(); //void AnimationCall(); // Rotations void RotateObjectX(); void RotateObjectY(); void RotateObjectZ(); void MouseSetup(); void MenuMouseInProcess(); void CreateGravGun(); void GravGunExec(); void Increase_CameraShake(); void ExplosionVisiblity(); void MonsterExplosions(); void CarHydralics(); void JetMod(); void FireJetGuns(); void RotateJet(); void BulletTime(); void TrafficHavok(); void NumpadKeysControlExplosions(); void NumpadKeysControlObjects(); void MoveObjectNorth(); void MoveObjectSouth(); void MoveObjectEast(); void MoveObjectWest(); void HiJackCarOverhead(); void ReleaseHiJackedCar(); void AttachPedstoCar(); void FreezeCloseVehicle(); void UnfreezeCloseVehicle(); void DisplaySomeText(); // Directx test for display void StealPedsObject(); public: CustomFiberThread(); };

This version of the Scripting hook has been modified to support V1.0.3.0 No checks or boundries have been added, SP and MP is supported, Rockstar Add a freaking anti-cheat switch in the session settings! This v`menuersion Is made exclusively for WWW.GTA4MODS.COM, modding news that matters. Please note that WWW.GTA4MODS.COM is in no way liable for your actions. \*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ // Some of these code examples are copyright April 2009, Steve Morrow, All rights reserved. // Parts of this code were written by Steve Morrow and cannot be reused without // written permission. There is also a shell that is copyrighted to Aru only. // You may contact me at yochatwitme@yahoo.com to gain permission. // Add option later to turn off all the hotkeys when in a helicopter // Future modding Objectives // Fix FreezeCarPosition so that the car could float in the air without falling // Fix spawn new clothes for player // Fix object list extension (spawn new objects to view them) // This SDK works : Test July 21, 2012 11:11PM (0 failed, 0 skipped) // Found at F:\ArusNewHook040Test\Debug\SampleCustomerFiber.dll // Game Location: G:\Program Files(x86)\Rockstar\GTAIV // Script Hook location: F:\ArusNewHook040Test\Release // Must copy ScriptHook.lib files from F: drive on each run. #include "CustomFiberThread.h" #include "Scripting.h" #include "../ScriptHook/ScriptHookManager.h" #include "../ScriptHook/Log.h" #include #include #include #include #include #include #include #include #include //#pragma comment( lib, "d3d9.lib" ) //#pragma comment( lib, "d3dx9.lib" ) #pragma once; // Pull in all our scripting functions/types using namespace Scripting; // Move bins www.gtaforums : [GTAIV|REL|SRC] C++ Script Hook, IV Scripting via C++ // Camera Camera cam; // Mouse declarations listed here f32 px, py, pz; f32 xquat, yquat, zquat; f32 window1x=.5; f32 window1y=.5; f32 menuxoff=0; f32 menuyoff=0; f32 gravcursoroff=10; f32 bx, by, bz; Object gravmarker; Vehicle gravcar; Vector3 pCoord; f32 unkFloat; i32 unkFlag; u32 pModelHash; f32 pRotation; u32 pStartIndex; u32 pcount; f32 pDist; Object pObj; eModel pModel; //eModel curObj; eModel curObj; // = GetModelHash(carmod[carObjectX]); eRadioStation radio; f32 wind; u32 hour; u32 minute; f32 zz; f32 m=0; f32 X, Y, Z; //float *(memory); u32 p4; // apply force to vehicle Object lastobj; // pointer to object Vehicle lastcar; // pointer to vehicle Ped lastped; Object objSpawned[100]; // store model objects in an array Vehicle vehSpawned[100]; // store model vehicles in an array Ped pedSpawned[100]; // store model peds in an array u32 menuItem; // menu controller (selects which Menu item is active u32 playerMenuItem; // selects Menu controls for Player Menu (Teleporter) u32 item; // submenus u32 submenuItem; u32 subitem; f32 i; f32 rotAxis; f32 Saveoz; //f32 travelrate; u32 netid; u32 buttonValue; // capture gamepad buttons u32 expType; // debug test for Explosion routine variable incrementer bool trainerActive=false; // default - trainer not active int main_menu = true; bool mcurL; bool mprevL; bool hasIniMsgDisplayed; // Determine if Startup message has printed bool menuToggle; // menu switch to turn Alt F6 ON/OFF bool playerMenuToggle; // menu switch for Player Menu bool helpMenuToggle; // menu switch for Help Menu bool helpMenu2Toggle; // Alt F9 - explains how to use the functions on the menus bool modelRequested; bool isTrafficModeActive = false; bool kcur0; bool kprev0; bool kcur1; bool kprev1; bool kcur2; bool kprev2; bool kcur3; bool kprev3; bool kcur4; bool kprev4; bool kcur5; bool kprev5; bool kcur6; bool kprev6; bool kcur7; bool kprev7; bool kcur8; bool kprev8; bool kcur9; bool kprev9; bool kcurF1; bool kprevF1; bool kcurF6; bool kprevF6; bool kcurF7; bool kprevF7; bool kcurF8; bool kprevF8; bool kcurF9; bool kprevF9; bool kcurF10; bool kprevF10; bool private_menu; int pressF5; bool TopMenu; // This is a class I designed in hopes of speeding up the // ability to create faster processing of FPS class GTAStart { public: int value; eModel model; static void GameTest(); static void ApplyGravityToPeds(); static void AddExplosion_Fire_IncRange(); static void AddExplosion_Fire_DecRange(); static void AddExplosion_Explosion_IncRange(); static void AddExplosion_Explosion_DecRange(); static void AddExplosion_Radius_IncRange(); static void AddExplosion_Radius_DecRange(); static void ExplosionVisiblity(); //static void Increase_CameraShake(); //static void Decrease_CameraShake(); static void PlayerMakesFire(); static void Increase_FireX(); static void Decrease_FireX(); static void Increase_FireY(); static void Decrease_FireY(); static void Increase_FireZ(); static void Decrease_FireZ(); static void ExplosionType(); static void FreezeCar_MoveWest(); static void FreezeCar_MoveEast(); static void FreezeCar_MoveSouth(); static void FreezeCar_MoveNorth(); static void FreezeCar_MoveUp(); static void FreezeCar_MoveDown(); static void FreezeCarInAir(); static void SetupRelationships(); static void myIpodRadio_Hack(); static void Increase_Exp_FireX(); static void Decrease_Exp_FireX(); static void Increase_Exp_FireY(); static void Decrease_Exp_FireY(); static void Increase_Exp_FireZ(); static void Decrease_Exp_FireZ(); static void FreezeNearestPed(); static void UnfreezeNearestPed(); }; static void KeyCheck() { pressF5 = GetAsyncKeyState(VK_NUMPAD5); if (GetAsyncKeyState(VK_NUMPAD0)) // key logic kcur0 = 1; else kcur0 = 0; if (GetAsyncKeyState(VK_NUMPAD1)) // key logic kcur1 = 1; else kcur1 = 0; if (GetAsyncKeyState(VK_NUMPAD2)) // key logic kcur2 = 1; else kcur2 = 0; if (GetAsyncKeyState(VK_NUMPAD3)) // key logic kcur3 = 1; else kcur3 = 0; if (GetAsyncKeyState(VK_NUMPAD4)) // key logic kcur4 = 1; else kcur4 = 0; if (pressF5) // key logic kcur5 = 1; else kcur5 = 0; if (GetAsyncKeyState(VK_NUMPAD6)) // key logic kcur6 = 1; else kcur6 = 0; if (GetAsyncKeyState(VK_NUMPAD7)) // key logic kcur7 = 1; else kcur7 = 0; if (GetAsyncKeyState(VK_NUMPAD8)) // key logic kcur8 = 1; else kcur8 = 0; if (GetAsyncKeyState(VK_NUMPAD9)) // key logic kcur9 = 1; else kcur9 = 0; if (GetAsyncKeyState(VK_F1)) // key logic kcurF1 = 1; else kcurF1 = 0; if (GetAsyncKeyState(VK_F6)) // key logic kcurF6 = 1; else kcurF6 = 0; if (GetAsyncKeyState(VK_F7)) // key logic kcurF7 = 1; else kcurF7= 0; if (GetAsyncKeyState(VK_F8)) kcurF8 = 1; else kcurF8 = 0; if (GetAsyncKeyState(VK_F9)) // key logic kcurF9 = 1; else kcurF9= 0; if (GetAsyncKeyState(VK_F10)) // key logic kcurF10 = 1; else kcurF10= 0; } // Here is where my Menu function is initialized // NOTE: It is important to make sure each return // matches the parameters for each MainMenu function void ClearMenuLines(); void CallMenu(); int MenuLimit; char* MenuD0; char* MenuD1; char* MenuD2; char* MenuD3; char* MenuD4; char* MenuD5; char* MenuD6; char* MenuD7; char* MenuD8; char* MenuD9; char* MenuD10; char* MenuD11; char* MenuD12; char* MenuD13; char* MenuD14; char* MenuD15; char* MenuD16; char* MenuD17; char* MenuD18; char* MenuD19; char* MenuD20; char* MenuD21; char* MenuD22; char* MenuD23; char* MenuD24; char* MenuD25; char* MenuD26; char* MenuD27; const char* MenuDs0; const char* MenuDs1; const char* MenuDs2; const char* MenuDs3; const char* MenuDs4; const char* MenuDs5; const char* MenuDs6; const char* MenuDs7; const char* MenuDs8; const char* MenuDs9; const char* MenuDs10; const char* MenuDs11; const char* MenuDs12; const char* MenuDs13; const char* MenuDs14; const char* MenuDs15; const char* MenuDs16; const char* MenuDs17; const char* MenuDs18; const char* MenuDs19; const char* MenuDs20; const char* MenuDs21; const char* MenuDs22; const char* MenuDs23; const char* MenuDs24; const char* MenuDs25; const char* MenuDs26; const char* MenuDs27; // Here is where the toggle switches are initialized CustomFiberThread::CustomFiberThread() { SetName("CustomFiberThread"); m_State = StateDefault; isInvincible = false; // Determine whether player has God mode activated isPedInvincible = false; // Determine if ped has God mode activated isFloating = false; // Determine whether player if floating/falling isCharOnFire = false; // Determine if Peds are on fire isPlayerVisible = false; // Determine if Player is Invisible isVehicleVisible = false; // Determine if Vehicle is Invisible isObjectVisible = false; // Determine if Objects are Invisible isNumPadActive = true; // Determine if NUMPAD is ON/OFF isGravityOn = false; // Gravity starts in OFF position isPlayerFrozen = false; // Player Can manuever isFunctionViewActive = false; // GTA Function View toggle switch isRelationship = false; // Set relationship between player, gangs, and cops isExplosionVisible = false; // Set visibility of explosions/fire } Player CustomFiberThread::GetPlayer() { Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); return playerIndex; } Scripting::Ped CustomFiberThread::GetPlayerPed() { Ped ped; GetPlayerChar(GetPlayer(), &ped); return ped; } // initialize global declarations/variables Blip blip; ePadButton button; eVehicleTyre tyre; // SubMenu initialization int SubMenuPlayerSelector = 0; // initialize and set declarations // It is quite messy here. Some variables have changed (or worse, been deleted) // This is my old school programming being reborn u32 objectNum; // tracks how many objects are spawned (50 is the limit) u32 player; int carColor = 0; int F6KeyHit; int firecx1 = 1, firecx2 = 1; int pedX, pedY, pedZ; // Ped positioning controls int fireX, fireY, fireZ; // Fire positioning controls int fallingPedX = 0; // Freeze position of ped after falling int changeStation = 16; // Change radio station int sptype = 0; // 1 = Spawn car, 2 = Spawn object, 3 = Spawn ped int vehicleNum = 0; // total vehicles spawned int maxVehicles = 0; // maximum vehicles spawned int maxObjects = 0; // maximum object spawned int travSpeed = 2; // determine how fast our player can run/swim int vehSpeed = 1; // determine how fast a vehicle can move int CarVariableSpeed = 1; // Set the increased speed rate of Vehicle VehSpeed = VehSpeed + CarVariableSpeed int hoveringControl = 2; // set Player hovering rate (CHANGED TO REFLECT CharHeightAboveGround) int navobjSpeed = 1; int trotSpeed = 0; // set Player trot speed, for menu item (Player Trot Speed) int heliSpeed = 1; int savedTelFlag; // Saved Teleport flag int pedNum = 0; // tracks how many peds are spawned int maxPeds; static int floatActive; // Used for display Float first time message for "None" int APFCarx = 1; // Vehicle radius x (used to enlarge/shrink radius) int APFCary = 1; // Vehicle radius y (used to enlarge/shrink radius) int APFCarz = 1; // Vehicle radius z (used to enlarge/shrink radius) int fireexplosionType = 0; int explosionType = 1; // Track fire radius size int AddExpRadius = 1; int cameraShake = 0; int APFPedx = 1; // Apply force to Ped West/East int APFPedy = 1; // Apply force to Ped South/North int APFPedz = 1; // Apply force to Ped Up/Down int freezemoveCarx, freezemoveCary, freezemoveCarz; // Move car when in air and frozen float freezeforceZ = 1; int shootRate = 0; // Player shootRate used with various Shoot routines int CarRadius = 1100; // radius for car range int PedRadius = 1500; // radius for ped range char str2[300]; // store object MODEL name for SpawnGlobal. Example: MODEL_TUGA char str3[300]; // string message "Increase wealth" hotkey F7 char str5[300]; // store vehicle MODEL name for SpawnGlobal. Example MODEL_TURISMO char str6[300]; // store skin MODEL of the Player. Example: MODEL_ROMAN hotkey F11 char str7[300]; // show value for player velocity when flying (and other stuff) char str8[300]; // *** teleport values to be displayed char mes1[300]; // string message "Found object (MODEL), number: x hotkeys F5/F6 char temp3[300]; int range = 1589; // set object limit range - 1333 (1558) objects total int crange = 124; // set vehicle limit range - 124 cars total int charRange = 362; // set player limit range - 43 players total (added 3 new ones) int tCounter = 0; // set counter for looping thru teleport locations int TeleNamecntr = 0; // set counter for showing name of spawned location int telFlag = 0; // Set teleport flag to determine that the teleporter has been accessed int numFlag; // Set numpad flag to determine that the Numpad menu option was selected int ObjectX = 0; // which object are we viewing? int PlayerX = 0; // which player are we viewing? int carObjectX = 113; // which car are we viewing? Start with Annihilator int savecarObjectX = carObjectX; int neonObjectX = 0; int weatherX = 1; // which weather message is showing? int charX = 1; // keep track of spawned peds in a list int PedX = 0; // ped gender list that can be spawned/deleted int waterLevel = 1; // raise water levels (under testing) int waterMode = 0; int sizeObj; // how big is the object going to be? int skipCount = 0; // counter to Skip thru Object list forward or backward int showNewText = 0; // get start of Menu print message. Example: Object List int menuLevel = 0; // start off with -1 Menu selector so we dont repeat this decision int menuLimit = 17; // first start of with the ability to scroll 9 options in a Menu int menuLmt = 17; int submenuLmt = 17; int submenuLimit = 17; // keep submenu within specific range int subMenuActive = 0; int gameplayerX = 0; // keep track of MP Player to teleport to int charRateSpeed = 1; // Change character rate speed int convertNametoNumber; // converts my Friends list names into numerical values // to determine if they have full access or limited // when using this trainer. const char* saveObjString; // pointer saved string (for viewing spawned objects in sequence) //int viewObj; // keep track of how many objects we are viewing (in the spawned savObjString) int listView; // keep track of which object is currently being viewed int listVehView; // Vehicle List captured in Active Spawned Vehicle menu int listPedView; // Ped List captured in Active Ped Spawn menu char* spawnedListObj[50]; // pointer array that keeps track of which object is being viewed char* spawnedListVeh[50]; // pointer array that keeps track of which vehicle is being viewed char* spawnedListPed[50]; // pointer array that keeps track of which ped is being viewed int vehModel[362]; // stores a "-1" when a vehicle is deleted so we don't view that car again int objModel[362]; // stores a "-1" when an object is deleted so we don't view that object again int pedModel[362]; // stores a "-1" when a ped is deleted so we don't view that ped again. int pedspawn = 1; // determine which ped to spawn from a CASE loop int copspawn = 1; // determine which cop to spawn from a CASE loop f32 teleportSaveX; // Save teleport locations x,y,z f32 teleportSaveY; f32 teleportSaveZ; int remoteCarDir; // Set direction of car Crashing into traffic // Flag to decide whether Script Hook Function View is ON/OFF int FunctionViewStatus; char* gtName[] = {"Sneakyjanit0r","Daleingaol","StevorNtheHouse","CrazyDuder","Flameb0i","Bus909","fireproofalexei"}; // Listed below are are the teleport coordinates for areas teleported to in the game. // I am a die hard fanatic for using pointer arrays. float teleport[300] = {766.169312, -569.311584, 10.298987, 891.4139, -499.3775, 19.4210, 601.4458, 1409.8357, 17.4763 , -967.6061, 888.6968, 19.0440, -336.0000, 177.0000, 19.0797, -275.4792, -85.1938, 334.7692 , 21.7521, 60.5495, 223.1774, -182.7256, 597.1370, 119.2988, 332.5396, -719.8954, 4.6907 , -15.4019, -468.4341, 15.4122, -118.7440, -1036.5500, 5.1227, -327.4691, 1422.7618, 13.0601 , -230.9540, 267.2493, 14.8868, -1157.1395, 1386.4534, 24.3507, -1247.3695, 804.2703, 19.7040 , -1686.8047, -326.9265, 2.9017, 697.1852, 1479.4991, 14.7112, 1131.4844, -78.7506, 36.1885 , -1245.5000, 1676.5734, 34.4385, -1065.3115, 1458.3964, 24.5505, 1596.3580, 24.0703, 10.0506 // 21 , -107.3157, 760.0825, 15.2955, 1229.2278, 610.1171, 38.0867, -280.6283, 327.4868, 162.5574 , 642.1340, 1090.8789, 2.7300, 410.3757, 214.1046, 8.7612, -610.0849, -995.2992, 5.2713 , 2428.0000, 569.4791, 5.8129, 2406.1406, 372.1392, 6.0862, -606.5956, -753.5831, 65.9908 , -606.0968, -749.4219, 93.6582, -845.0363, 776.8615, 93.6582, 97.1126, -682.9540, 14.7717 , -1314.1997, 1281.0931, 22.3704, -1136.1410, -373.7700, 3.2092, -283.0240, -96.9614, 390.6313 , -1398.0913, 1460.1091, 25.2021, 549.9185, 738.4665, 20.9232, 51.6838, 809.4344, 14.6622 , -284.0329, -100.3265, 455.9929, -224.4060, 945.4450, 10.9129, -224.4060, 945.4450, 500.0000 // 42 , 734.6112, 1390.6750, 14.2521, 259.0903, 4070.9971, 2.0000, 975.5718, 1865.4789, 23.0803 , 1209.1001, 1713.2784, 16.6666, 1194.9547, 196.1794, 32.5804, -425.9751, 1462.1202, 38.9715 // 48 , 98.4826, 852.1058, 45.0510, 1351.219238, -245.596237, 23.232389 // 766.169312, -569.311584, 10.298987 , 2726.965332, 403.454376, 5.838003, -1164.930298, 1868.392090, 6.672832 ,878, -17, 29, 854, -514, 16, -546, 1230, 97.6, -134, 1493, 22.8, 1376, 196, 35.7 ,-1004, 1223, 28.5, 1369, 526, 33.1, -129, 1525, 23, 566, 1392, 31 ,932, -493, 16, -438, 453, 10.5, -39.588978, 76.312485, 60.977112, 875, -115, 6}; // Here is the list of teleported locations. The player can scroll through and select one. char* TelName[] = {"Shoreline of Algonquin","Broker Safehouse","Bohan Safehouse","Alderney City Safehouse" ,"Comedy Club","Rotterdam tower","Getalife Building","Majestic Hotel","Helitours","Bank of liberty" ,"Poopdeck restaurant","Algonquin Northwood","Algonquin Starjunction","Alderney Leftwood","Alderney City" // 0-44 ,"Industrial Park","Bohan Chase point","Broker outlook","Helipad mansion","Bikeshop","Honkers","Museum" ,"Dukes East island city","Roof of Marriot Marquis","Charge Island","Colony Island","Happiness Island" // 80 64*3 ,"Airport","Airport Glitch","Statue of Happiness heart","Top of Statue of happiness","Alderney Helipad" ,"Lawyer's office","North Alderney Hospital","Prison","Top of Rotterdam tower","Jimmy Pegorino's house" ,"Toll Booth (Charge Island)","Turismo Store","On top of the world","Middle Park","Have a nice fall" ,"Chase Wrecking & Salvage","Have a nice Swim","LCPD Police Station","The Triangle","Hospital (Broker)" // 54 (140) 64*3 ,"Northwood Safehouse","Algonquin Middle park safehouse","Swingset Glitch","Airport - Northwest","Alderney Party Mode" ,"Run down apartment","Nice apartment","High rise apartment","Gangster's apartment","Abandoned apartment","Trashed apartment" ,"Drug Dealer's apartment","Roach infested apartment","One room run down apartment","Broker Bar","Lucky Winkle's Restaurant" ,"Top of Algonquin crane","Inside a Body Shop"}; // 194 (64*3) // Determine number locations of object groups, 7 =Cubes, 39 = Woodpile, etc int objectSkipNumber[41] = {7, 39, 58, 68, 74, 86, 91, 100, 119, 127, 130, 205, 232, 313, 317, 330, 425, 450, 482, 512, 518 , 550, 586, 595, 608, 640, 674, 679, 719, 754, 759, 776, 812, 834, 895, 897, 915, 943, 968, 979, 1029}; // Here is where an object list describes an area more specifically. I had to reorganize the ScriptingEnums objects // to get this list working correctly. char* ViewObjName[] = {"Game Cubes (Set 1)","Pipes","Woodpiles","Ladders","Rubbish piles","Planes","Telephone poles","Scaffolds" ,"Regular Lights","Boats","Doors","Windows","Furniture","Pillars","Flags","Fences","Gates","Electronic Devices" ,"Game Cubes (Set 2)","Cages","Bins/Trash Receptacles","Garbage Piles","Wrecks","Crates","Ceiling Lights" ,"Cardboard Boxes","Pigeons","Street/Business Signs","Barriers","Clocks","Vases","Plants","Icons","Clothes" ,"Cash Piles","Random Objects","Food/Scraps","Kitchenware","Darts","Dishes","New object list"}; // used to print type of "vehicle", "object", "ped" // NOTE: This is an old display, that I believe I discarded awhile ago. char* objName[] = { "a vehicle","an object","peds or Swat" }; // Neon colors: Blue, Red, White, Green char* objNeons[] = { "BM_air_landlites03","nj5_indltR","nj5_indltW","Spotlight_Bada"}; char* objNeonColorType[] = { "Blue neon", "Red neon", "White neon", "Green neon" }; char* gtaRadio[] = { "THE VIBE 98.9","LRR 97.8 LIBERTY ROCK RADIO","JAZZ NATION RADIO 108.5","MASSIVE B" ,"K 109 THE STUDIO","WKTT RADIO","LCHC (WHERE HARDCORE LIVES)","THE JOURNEY","FUSION FM"," THE BEAT 102.7" ,"RADIO BROKER","VLADIVOSTOK FM","PLR - PUBLIC LIBERTY RADIO","SAN JUAN SOUNDS","ELECTRO-CHOC" ,"THE CLASSICS 104.1","IF 99 - INTERNATIONAL FUNK","TUFF GONG","INPEDENDENCE FM","INTEGRITY 2.0" }; // The massive object list of spawned items char* carmod[] = { "ADMIRAL","AIRTUG","AMBULANCE","BANSHEE","BENSON","BIFF","BLISTA","BOBCAT","BOXVILLE","BUCCANEER","BURRITO" ,"BURRITO2","BUS","CABBY","CAVALCADE","CHAVOS","COGNOSCENTI","COMET","COQUETTE","DF8","DILETTANTE","DUKES","E109","EMPEROR" ,"EMPEROR2","ESPERANTO","FACTION","FBI","FELTZER","FEROCI","FEROCI2","FIRETRUK","FLATBED","FORTUNE","FORKLIFT","FUTO","FXT" ,"HABANERO","HAKUMAI","HUNTLEY","INFERNUS","INGOT","INTRUDER","LANDSTALKER","LOKUS","LYCAN","MANANA","MARBELLA","MERIT","MINIVAN" ,"MOONBEAM","MRTASTY","MULE","NOOSE","NSTOCKADE","ORACLE","PACKER","PATRIOT","PERENNIAL","PERENNIAL2","PEYOTE","PHANTOM","PINNACLE" ,"PMP600","POLICE","POLICE2","POLPATRIOT","PONY","PREMIER","PRES","PRIMO","PSTOCKADE","RANCHER","REBLA","RIPLEY","ROMERO","ROM" ,"RUINER","SABRE","SABRE2","SABREGT","SCHAFTER","SENTINEL","SOLAIR","SPEEDO","STALION","STEED","STOCKADE","STRATUM","STRETCH" ,"SULTAN","SULTANRS","SUPERGT","TAXI","TAXI2","TRASH","TURISMO","URANUS","VIGERO","VIGERO2","VINCENT","VIRGO","VOODOO","WASHINGTON", "WILLARD","YANKEE","BOBBER","FAGGIO","HELLFURY","NRG900","PCJ","SANCHEZ","ZOMBIEB","ANNIHILATOR","MAVERICK","POLMAV","TOURMAV" ,"DINGHY","JETMAX","MARQUIS","PREDATOR","REEFER","SQUALO","TUGA","TROPIC","CABLECAR","SUBWAY_LO","SUBWAY_HI" }; char* skinmod[] = { "IG_BRUCIE","PLAYER","IG_PATHOS","IG_FAUSTIN","IG_GRACIE","IG_JOHNNYBIKER","IG_LILJACOB","F_Y_BANK_01","IG_MICHELLE" ,"IG_PLAYBOY_X","M_M_FATMOB_01","F_Y_FF_BURGER_R","F_Y_FF_CLUCK_R","IG_MALLORIE","IG_VLAD","M_M_FATCOP_01","M_Y_MECHANIC_02" ,"F_Y_HOOKER_01","F_Y_NURSE","F_Y_STRIPPERC01","M_Y_FF_CLUCK_R","M_Y_FRENCHTOM","M_M_FATMOB_01","F_Y_PMANHAT_02" ,"IG_MANNY","M_M_LAWYER_01","M_M_LAWYER_02","M_Y_SWAT","M_M_CHINATOWN_01","M_M_BUSDRIVER","F_Y_DOCTOR_01","M_M_CRACKHEAD" ,"M_Y_BOUNCER_01","M_Y_BOUNCER_02","M_Y_COP","M_Y_DEALER","M_Y_DRUG_01","F_O_RICH_01","M_M_GAYMID","M_Y_TOUGH_05" ,"M_Y_SKATEBIKE_01","M_M_ALCOHOLIC"}; char* pedList[] = {"PLAYER","IG_ANNA","IG_ANTHONY","IG_BADMAN","IG_BERNIE_CRANE" ,"IG_BLEDAR","IG_BRIAN","IG_BRUCIE","IG_BULGARIN","IG_CHARISE","IG_CHARLIEUC","IG_CLARENCE","IG_DARDAN","IG_DARKO","IG_DERRICK_MC" ,"IG_DMITRI","IG_DWAYNE","IG_EDDIELOW","IG_FAUSTIN","IG_FRANCIS_MC","IG_FRENCH_TOM","IG_GORDON","IG_GRACIE","IG_HOSSAN","IG_ILYENA" ,"IG_ISAAC","IG_IVAN","IG_JAY","IG_JASON","IG_JEFF","IG_JIMMY","IG_JOHNNYBIKER","IG_KATEMC","IG_KENNY","IG_LILJACOB","IG_LILJACOBW" ,"IG_LUCA","IG_LUIS","IG_MALLORIE","IG_MAMC","IG_MANNY","IG_MARNIE","IG_MEL","IG_MICHAEL","IG_MICHELLE","IG_MICKEY","IG_PACKIE_MC" ,"IG_PATHOS","IG_PETROVIC","IG_PHIL_BELL","IG_PLAYBOY_X","IG_RAY_BOCCINO","IG_RICKY","IG_ROMAN","IG_ROMANW","IG_SARAH","IG_TUNA" ,"IG_VINNY_SPAZ","IG_VLAD","M_Y_GAFR_LO_01","M_Y_GAFR_LO_02","M_Y_GAFR_HI_01","M_Y_GAFR_HI_02","M_Y_GALB_LO_01","M_Y_GALB_LO_02" ,"M_Y_GALB_LO_03","M_Y_GALB_LO_04","M_M_GBIK_LO_03","M_Y_GBIK_HI_01","M_Y_GBIK_HI_02","M_Y_GBIK02_LO_02","M_Y_GBIK_LO_01" ,"M_Y_GBIK_LO_02","M_Y_GIRI_LO_01","M_Y_GIRI_LO_02","M_Y_GIRI_LO_03","M_M_GJAM_HI_01","M_M_GJAM_HI_02","M_M_GJAM_HI_03" ,"M_Y_GJAM_LO_01","M_Y_GJAM_LO_02","M_Y_GKOR_LO_01","M_Y_GKOR_LO_02","M_Y_GLAT_LO_01","M_Y_GLAT_LO_02","M_Y_GLAT_HI_01" ,"M_Y_GLAT_HI_02","M_Y_GMAF_HI_01","M_Y_GMAF_HI_02","M_Y_GMAF_LO_01","M_Y_GMAF_LO_02","M_O_GRUS_HI_01","M_Y_GRUS_LO_01" ,"M_Y_GRUS_LO_02","M_Y_GRUS_HI_02","M_M_GRU2_HI_01","M_M_GRU2_HI_02","M_M_GRU2_LO_02","M_Y_GRU2_LO_01","M_M_GTRI_HI_01" ,"M_M_GTRI_HI_02","M_Y_GTRI_LO_01","M_Y_GTRI_LO_02" ,"F_O_MAID_01","F_O_BINCO","F_Y_BANK_01","F_M_BUSINESS_01","F_Y_DOCTOR_01","F_Y_GYMGAL_01","F_O_PEASTEURO_01","F_O_PEASTEURO_02" ,"F_O_PHARBRON_01","F_O_PJERSEY_01","F_O_PORIENT_01","F_O_RICH_01","F_Y_FF_BURGER_R","F_Y_FF_CLUCK_R","F_Y_FF_RSCAFE","F_Y_FF_TWCAFE" ,"F_Y_FF_WSPIZZA_R1","F_Y_HOOKER_01","F_Y_HOOKER_03","F_Y_NURSE","F_Y_STRIPPERC01","F_Y_STRIPPERC02","F_Y_WAITRESS_01" ,"F_M_BUSINESS_02","F_M_CHINATOWN","F_M_PBUSINESS","F_M_PEASTEURO_01C","F_M_PHARBRON_01" ,"F_M_PJERSEY_01","F_M_PJERSEY_02","F_M_PLATIN_01","F_M_PLATIN_02","F_M_PMANHAT_01","F_M_PMANHAT_02","F_M_PORIENT_01","F_M_PRICH_01" ,"F_Y_BUSINESS_01","F_Y_CDRESS_01","F_Y_PBRONX_01","F_Y_PCOOL_01","F_Y_PCOOL_02","F_Y_PEASTEURO_01","F_Y_PHARBRON_01" ,"F_Y_PHARLEM_01","F_Y_PJERSEY_02","F_Y_PLATIN_01","F_Y_PLATIN_02","F_Y_PLATIN_03","F_Y_PMANHAT_01","F_Y_PMANHAT_02","F_Y_PMANHAT_03" ,"F_Y_PORIENT_01","F_Y_PQUEENS_01","F_Y_PRICH_01","F_Y_PVILLBO_02","F_Y_SHOP_03","F_Y_SHOP_04","F_Y_SHOPPER_05","F_Y_SOCIALITE" ,"F_Y_STREET_02","F_Y_STREET_05","F_Y_STREET_09","F_Y_STREET_12","F_Y_STREET_30","F_Y_STREET_34","F_Y_TOURIST_01","F_Y_VILLBO_01" ,"M_M_ALCOHOLIC","M_M_ARMOURED","M_M_BUSDRIVER","M_M_CHINATOWN_01" ,"M_M_CRACKHEAD","M_M_DOC_SCRUBS_01","M_M_DOCTOR_01","M_M_DODGYDOC","M_M_EECOOK","M_M_ENFORCER","M_M_FACTORY_01","M_M_FATCOP_01" ,"M_M_FBI","M_M_FEDCO","M_M_FIRECHIEF","M_M_GUNNUT_01","M_M_HELIPILOT_01","M_M_HPORTER_01","M_M_KOREACOOK_01","M_M_LAWYER_01" ,"M_M_LAWYER_02","M_M_LOONYBLACK","M_M_PILOT","M_M_PINDUS_01","M_M_POSTAL_01","M_M_SAXPLAYER_01","M_M_SECURITYMAN","M_M_SELLER_01" ,"M_M_SHORTORDER","M_M_STREETFOOD_01","M_M_SWEEPER","M_M_TAXIDRIVER","M_M_TELEPHONE","M_M_TENNIS","M_M_TRAIN_01","M_M_TRAMPBLACK" ,"M_M_TRUCKER_01","M_O_JANITOR","M_O_HOTEL_FOOT","M_O_MPMOBBOSS","M_Y_AIRWORKER","M_Y_BARMAN_01","M_Y_BOUNCER_01","M_Y_BOUNCER_02" ,"M_Y_BOWL_01","M_Y_BOWL_02","M_Y_CHINVEND_01","M_Y_CLUBFIT","M_Y_CONSTRUCT_01","M_Y_CONSTRUCT_02","M_Y_CONSTRUCT_03","M_Y_COP" ,"M_Y_COP_TRAFFIC","M_Y_COURIER","M_Y_COWBOY_01","M_Y_DEALER","M_Y_DRUG_01","M_Y_FF_BURGER_R","M_Y_FF_CLUCK_R","M_Y_FF_RSCAFE" ,"M_Y_FF_TWCAFE","M_Y_FF_WSPIZZA_R","M_Y_FIREMAN","M_Y_GARBAGE","M_Y_GOON_01","M_Y_GYMGUY_01","M_Y_MECHANIC_02","M_Y_MODO" ,"M_Y_NHELIPILOT","M_Y_PERSEUS","M_Y_PINDUS_01","M_Y_PINDUS_02","M_Y_PINDUS_03","M_Y_PMEDIC","M_Y_PRISON","M_Y_PRISONAOM" ,"M_Y_ROMANCAB","M_Y_RUNNER","M_Y_SHOPASST_01","M_Y_STROOPER","M_Y_SWAT","M_Y_SWORDSWALLOW","M_Y_THIEF","M_Y_VALET","M_Y_VENDOR" ,"M_Y_FRENCHTOM","M_Y_JIM_FITZ" ,"M_M_BUSINESS_02","M_M_BUSINESS_03","M_M_EE_HEAVY_01","M_M_EE_HEAVY_02","M_M_FATMOB_01","M_M_GAYMID","M_M_GENBUM_01" ,"M_M_LOONYWHITE","M_M_MIDTOWN_01","M_M_PBUSINESS_01","M_M_PEASTEURO_01","M_M_PHARBRON_01","M_M_PINDUS_02","M_M_PITALIAN_01" ,"M_M_PITALIAN_02","M_M_PLATIN_01","M_M_PLATIN_02","M_M_PLATIN_03","M_M_PMANHAT_01","M_M_PMANHAT_02","M_M_PORIENT_01","M_M_PRICH_01" ,"M_O_EASTEURO_01","M_O_HASID_01","M_O_MOBSTER","M_O_PEASTEURO_02","M_O_PHARBRON_01","M_O_PJERSEY_01","M_O_STREET_01","M_O_SUITED" ,"M_Y_BOHO_01","M_Y_BOHOGUY_01","M_Y_BRONX_01","M_Y_BUSINESS_01","M_Y_BUSINESS_02","M_Y_CHINATOWN_03","M_Y_CHOPSHOP_01" ,"M_Y_CHOPSHOP_02","M_Y_DODGY_01","M_Y_DORK_02","M_Y_DOWNTOWN_01","M_Y_DOWNTOWN_02","M_Y_DOWNTOWN_03","M_Y_GAYYOUNG" ,"M_Y_GENSTREET_11","M_Y_GENSTREET_16","M_Y_GENSTREET_20","M_Y_GENSTREET_34","M_Y_HARDMAN_01","M_Y_HARLEM_01","M_Y_HARLEM_02" ,"M_Y_HARLEM_04","M_Y_HASID_01","M_Y_LEASTSIDE_01","M_Y_PBRONX_01","M_Y_PCOOL_01","M_Y_PCOOL_02","M_Y_PEASTEURO_01","M_Y_PHARBRON_01" ,"M_Y_PHARLEM_01","M_Y_PJERSEY_01","M_Y_PLATIN_01","M_Y_PLATIN_02","M_Y_PLATIN_03","M_Y_PMANHAT_01","M_Y_PMANHAT_02","M_Y_PORIENT_01" ,"M_Y_PQUEENS_01","M_Y_PRICH_01","M_Y_PVILLBO_01","M_Y_PVILLBO_02","M_Y_PVILLBO_03","M_Y_QUEENSBRIDGE","M_Y_SHADY_02" ,"M_Y_SKATEBIKE_01","M_Y_SOHO_01","M_Y_STREET_01","M_Y_STREET_03","M_Y_STREET_04","M_Y_STREETBLK_02","M_Y_STREETBLK_03" ,"M_Y_STREETPUNK_02","M_Y_STREETPUNK_04","M_Y_STREETPUNK_05","M_Y_TOUGH_05","M_Y_TOURIST_02" }; char* weathermod[] = { "EXTRA_SUNNY","SUNNY","SUNNY_WINDY","DRIZZLE","CLOUDY","FOGGY","LIGHTNING","EXTRA_SUNNY","EXTRA_SUNNY_2" ,"SUNNY_WINDY_2" }; char* objmod[] = { "CJ_TANKER","CJ_TANKER_LOD","CJ_TANKERB","CJ_BOAT_RAMP","CJ_WS_T_BASE_DAM","CJ_WS_TRUCK_BASE","BM_air_mast01","CJ_GAME_CUBE_2" ,"CJ_GAME_CUBE_3","CJ_GAME_CUBE_4","CJ_GAME_CUBE_5","CJ_BM_GAME_CUBE_6","BM_aerial01","BM_skate_halfpipe","CJ_TREE_TRUNKS" ,"BM_aerial01","CJ_GAME","CJ_OLD_OFFICE","CJ_PYLON_1","CJ_PYLON_2","nj05_oiltnkbig14","BM_trex_partB","nj5_firepip02" ,"CJ_P_CABIN_STEPS","CJ_CARWASH_MAIN","CJ_HIPPO_BIN","CJ_BAG_TABLE","CJ_JA_AUTO","CJ_JA_AUTO_ROOF","CJ_LD_SKEL_1","CJ_LIGHT_FIT42" ,"CJ_MAIN_ROLLER","CJ_MH_CP_POST1","CJ_NYLAMP1","CJ_PARKING_FRAME_1","CJ_WHOUSE_SHELF_1" ,"CJ_WHOUSE_SHELF_2","CJ_WHOUSE_SHELF_6","CJ_AB_PANRACK" ,"CJ_PIPE_BASE","CJ_IND_PIPE_1","CJ_IND_PIPE_2","CJ_IND_PIPE_2B","CJ_IND_PIPE_3","CJ_IND_PIPE_4","CJ_IND_PIPE_5","CJ_PIPE_BASE" ,"BM_acoutraments","TG_Freeway","CK_LOD_Train_Station","BM_air_cartick","apartment","CJ_CABLEROLL" ,"CJ_CORONA1","CJ_CR_BACKROUND","CJ_SECURITY_HUT_1" ,"CJ_WINE_SHELF_4","CJ_WS_STEPS","CJ_IND_WOODPILE_1","CJ_IND_WOODPILE_2","CJ_IND_WOODPILE_3","CJ_IND_WOODPILE_4","CJ_IND_WOODPILE_5" ,"CJ_IND_WOODPILE_6","CJ_IND_WOODPILE_7","CJ_IND_WOODPILE_8","CJ_IND_WOODPILE_9","CJ_INDCR_BKNLOD","CJ_LADDER_1","CJ_LADDER_2" ,"CJ_LADDER_3","CJ_LADDER_4","CJ_LATINO_BLOCK","CJ_LATINO_BLOCK2","CJ_GM_RUB_PILE_1","CJ_GM_RUB_PILE_2","CJ_GM_RUB_PILE_3" ,"CJ_GM_RUB_PILE_4","CJ_GM_RUB_PILE_5","CJ_GM_RUB_PILE_6","CJ_GM_RUB_PILE_7","CJ_GM_RUB_PILE_8","CJ_GM_RUB_PILE_9","CJ_DOCK_HUT" ,"CJ_DM_ARCWAY","CJ_R_ICON_FLAG","CJ_PLANE_1","CJ_PLANE_1B","CJ_PLANE_COL","CJ_LIFT","BM_1doorskip1","CJ_TELGRPHPOLE" ,"CJ_TELGRPHPOLE_2","CJ_TELGRPHPOLE_3","CJ_TELGRPHPOLE_4","CJ_TELGRPHPOLE_5","CJ_TELGRPHPOLE_6","CJ_IND_LGT_STATIC","CJ_RACE_BOUY_1" ,"CJ_RACE_BOUY_2","CJ_NY_SCAFF_1","CJ_NY_SCAFF_1B","CJ_NY_SCAFF01","CJ_NY_SCAFF04","CJ_SCAFF_COVER","CJ_SCAFF_COVERB","CJ_SCAFFOLD" ,"CJ_SCAFFOLD_03","CJ_SCAFFOLD_2","CJ_SCAFFOLD_3","CJ_SCAFFOLD_3B","CJ_SCAFFOLD_4","CJ_SCAFFOLD_4B","CJ_SCAFFOLD_5" ,"CJ_SCAFFOLD_5B","CJ_SCAFFOLD_6","CJ_SCAFFOLD_7","CJ_SCAFF_2_COVER","CJ_BRIAZER","CJ_IND_LIGHT_1","CJ_IND_LIGHT_2","CJ_IND_LIGHT_3" ,"CJ_IND_LIGHT_4","CJ_IND_LIGHT_5","CJ_IND_LIGHT_7","CJ_IND_LIGHT_7_LOD","CJ_IND_LIGHT_DAY","CJ_OLD_BOAT_1","CJ_SMALL_BOAT_1" ,"CJ_SMALL_BOAT_2","CJ_CHURCH_DOOR_L","CJ_CHURCH_DOOR_R","CJ_DB_MH3_DOOR1","CJ_EXT_DOOR_1","CJ_EXT_DOOR_10","CJ_EXT_DOOR_11" ,"CJ_EXT_DOOR_15B","CJ_EXT_DOOR_16","CJ_EXT_DOOR_17","CJ_EXT_DOOR_18","CJ_EXT_DOOR_19_L","CJ_EXT_DOOR_19_R","CJ_EXT_DOOR_22" ,"CJ_EXT_DOOR_6","CJ_EXT_DOOR_9","CJ_EXT_DOOR_CM","CJ_G_DOOR_BIG","CJ_G_DOOR_BIG2","CJ_GARAGE_DOOR_BIG","CJ_GM_DOOR_04" ,"CJ_GM_DOOR_05","CJ_GM_DOOR_1","CJ_GM_DOOR_2","CJ_INT_DOOR_10","CJ_INT_DOOR_12_H","CJ_INT_DOOR_22","CJ_INT_DOOR_24" ,"CJ_INT_DOOR_27L","CJ_INT_DOOR_27R","CJ_INT_DOOR_29","CJ_INT_DOOR_30","CJ_INT_DOOR_3L","CJ_INT_DOOR_6","CJ_INT_DOOR_7" ,"CJ_JA_DOOR1","CJ_LAW_FRONTDOOR_L","CJ_LAW_FRONTDOOR_R","CJ_LD_GARAGE_DOOR","CJ_LD_MET_DOOR_L","CJ_LD_MET_DOOR_R","CJ_LIFT_L_DOOR" ,"CJ_LIFT_L_DOOR_2","CJ_LIFT_L_DOOR_OUT","CJ_LIFT_L_DOOR_OUT_2","CJ_LIFT_R_DOOR","CJ_LIFT_R_DOOR_2","CJ_LIFT_R_DOOR_OUT" ,"CJ_LIFT_R_DOOR_OUT_2","CJ_MC_DOOR_1","CJ_MISION_DOOR_1" ,"CJ_MP_FACT_DOOR_2","CJ_NEW_CHINA_DOOR_L","CJ_NEW_CHINA_DOOR_R","CJ_NF_GARAGE_DOOR","CJ_NF_GARAGE_DOOR2","CJ_PER_DOOR_L","CJ_PER_DOOR_R" ,"CJ_RUS_DOOR_1","CJ_RUS_DOOR_2","CJ_SHOOT_T_DOOR","CJ_SHOP_DOOR_1","CJ_SM_DAVE_DOOR","CJ_T_DOOR_BRK","CJ_T_DOOR_ENG","CJ_T_DOOR_VAC" ,"CJ_VAULT_DOOR","CJ_VAULT_DOOR_DAM","CJ_WARE_DOOR","CJ_BANK_DOOR_L","CJ_BANK_DOOR_R","CJ_BOAT_DOOR","CJ_BS_DOOR_L","CJ_BS_DOOR_R" ,"CJ_HANDLE_LD","CJ_VAULT_GATE","CJ_WINDOW_CLEANER","CJ_WINDOW_CRADLE","CJ_WINDOW_CRADLE_2","CJ_WINDOW_CRADLE_3","CJ_WINDOW_CRADLE_4" ,"CJ_AB_SOPWIN1","CJ_AB_SOPWIN2","CJ_AB_SOPWIN3","CJ_BOAT_SURROUND","CJ_CHINA_GLASS1","CJ_CHINA_GLASS1A","CJ_SHOPWIN_1","CJ_BS_07" ,"CJ_BS_08","CJ_BS_1","CJ_BS_2","CJ_BS_3","CJ_BS_4","CJ_SHOP_MIRROR","CJ_SKANK_GLASS_02","CJ_SWANK_RACK1" ,"CJ_SWANK_RACK2","CJ_SWANK_RACK3","CJ_PROC_GLASS","CJ_PROC_GLASS_2","CJ_PROC_GLASS_3","CJ_PROC_GLASS_4","CJ_BEER_TABLE_1","CJ_BEDROOM1_W" ,"CJ_BENCH","CJ_BENCH_2","CJ_BM_HALF_CABINET","CJ_CHAIR_1","CJ_CHAIR_2","CJ_CHAIR_6","CJ_CHAIR_7","CJ_CHAIR10","CJ_CHAIR13" ,"CJ_CHAIR2","CJ_CHAIR3","CJ_CHAIR4","CJ_CHAIR5","CJ_CHAIR8","CJ_COM_COUCH_1","CJ_COM_COUCH_2","CJ_COUCH10","CJ_COUCH12","CJ_COUCH3" ,"CJ_COUCH5","CJ_COUCH8","CJ_FILEING_CAB_1","CJ_FILEING_CAB_2","CJ_FOOD_COUNTER2","CJ_GB_BENCH_1","CJ_GB_BENCH_2","CJ_GB_BENCH_3" ,"CJ_GB_BENCH_4","CJ_INTERCOM","CJ_K_CHINA_EXTRA","CJ_K_COUNTER","CJ_K_COUNTER_G_1","CJ_K_COUNTER_G_2" ,"CJ_K_COUNTER_G_3","CJ_K_COUNTER_G_4","CJ_KITCH_1_FREE_2","CJ_KITCH_1_SINK","CJ_KITCH_1_UNIT_2","CJ_KITCH_1_UNIT_5" ,"CJ_KITCH_3_UNIT_6","CJ_KITCH_5_UNIT_2","CJ_KITCH_5_UNIT_4","CJ_KITCH_5_UNIT_7","CJ_KITCH_1_END_2L","CJ_LAUND_BENCH","CJ_LAUND_BENCH_2" ,"CJ_LAUND_COUNTER_1","CJ_MATRESS_1","CJ_MATRESS_2","CJ_MED_SINK_3","CJ_OFF_SUP_SHELF","CJ_POOF4","CJ_REST_CHAIR","CJ_REST_CHAIR_2" ,"CJ_REST_TABLE","CJ_REST_TABLE_2","CJ_REST_TABLE_4","CJ_REST_TABLE_5","CJ_RUB_PILE_19","CJ_SHOP_SHELF_2","CJ_SHUTTER_1","CJ_SHUTTER_4" ,"CJ_K_CUPBOARD_1","CJ_K_CUPBOARD_2" ,"CJ_SKANK_COUNTER","CJ_TABLE_PARASOL","CJ_TINS_SHELF","CJ_TURN_TABLE_2","CJ_WHITE_CHAIR_1","CJ_WHITE_CHAIR_2","CJ_WHITE_TABLE_1" ,"CJ_LIFE_GUARD_CHAIR","CJ_NEW_LAW_CHAIR1","CJ_NEW_LAW_SEAT_1","CJ_NEW_LAW_SEAT_3","CJ_FOOD_SHELF_2","CJ_SWANK_COUNTER_1","CJ_SWANK_COUNTER_2" ,"CJ_SWANK_RACK_SM","CJ_AB_RIT_S_PILLAR","CJ_AB_RIT_S_PILLAR2","CJ_AB_RITZ_PILLER1","CJ_AB_RITZ_PILLER2","CJ_DC_UN_FLAGS","CJ_DM_FLAG_04" ,"CJ_DM_FLAG_1","CJ_DM_FLAG_2","CJ_DM_FLAG_3","CJ_DM_HOT_FLAG_1","CJ_EM_FLAG_1","CJ_EM_FLAG_2","CJ_HOT_FLAG_2","CJ_NS_I_FLAG1" ,"CJ_R_ICON_FLAG","CJ_US_FLAG_1","CJ_US_FLAG_2","CJ_DOCK_FENCE","CJ_EC_DOCK_FENCE" ,"CJ_FENCE_1_1","CJ_FENCE_1_2","CJ_FENCE_1_3","CJ_FENCE_1_4","CJ_FENCE_1_5","CJ_FENCE_1_6","CJ_FENCE_1_7","CJ_FENCE_10_1","CJ_FENCE_10_2" ,"CJ_FENCE_10_3","CJ_FENCE_11_1","CJ_FENCE_11_2","CJ_FENCE_12_1","CJ_FENCE_12_2","CJ_FENCE_13_1","CJ_FENCE_14_1","CJ_FENCE_14_2" ,"CJ_FENCE_15_1","CJ_FENCE_15_11","CJ_FENCE_15_6","CJ_FENCE_15_7","CJ_FENCE_15_8","CJ_FENCE_15_9","CJ_FENCE_16_1","CJ_FENCE_16_2" ,"CJ_FENCE_16_3","CJ_FENCE_16_4","CJ_FENCE_16_5","CJ_FENCE_17_1","CJ_FENCE_17_2","CJ_FENCE_17_3","CJ_FENCE_17_4","CJ_FENCE_18_1" ,"CJ_FENCE_19_1","CJ_FENCE_19_2","CJ_FENCE_19_43","CJ_FENCE_19_44","CJ_FENCE_19_46","CJ_FENCE_19_47","CJ_FENCE_19_48","CJ_FENCE_2_1" ,"CJ_FENCE_2_2","CJ_FENCE_2_3","CJ_FENCE_2_4","CJ_FENCE_2_5","CJ_FENCE_20_1","CJ_FENCE_21_1","CJ_FENCE_21_2","CJ_FENCE_21_3" ,"CJ_FENCE_21_4","CJ_FENCE_23_1","CJ_FENCE_23_2","CJ_FENCE_23_3","CJ_FENCE_23_4","CJ_FENCE_23_PST","CJ_FENCE_3_1","CJ_FENCE_3_2" ,"CJ_FENCE_3_3","CJ_FENCE_3_4","CJ_FENCE_3_5","CJ_FENCE_3_6","CJ_FENCE_3_7","CJ_FENCE_3_8","CJ_FENCE_4_01","CJ_FENCE_4_06" ,"CJ_FENCE_4_07","CJ_FENCE_4_08","CJ_FENCE_4_1","CJ_FENCE_4_2","CJ_FENCE_4_3","CJ_FENCE_4_4","CJ_FENCE_4_5","CJ_FENCE_5_1" ,"CJ_FENCE_5_2","CJ_FENCE_5_3","CJ_FENCE_5_4","CJ_FENCE_6_1","CJ_FENCE_6_2","CJ_FENCE_6_3","CJ_FENCE_6_4","CJ_FENCE_6_5" ,"CJ_FENCE_6_5","CJ_FENCE_6_55","CJ_FENCE_6_6","CJ_FENCE_6_7","CJ_FENCE_6_70","CJ_FENCE_7_1","CJ_FENCE_7_2","CJ_FENCE_8_1" ,"CJ_FENCE_8_2","CJ_FENCE_9_1","CJ_FENCE_9_2","CJ_FENCE_CROWD","CJ_COMP_GATE_POST","CJ_COMP2_GATE_L","CJ_COMP2_GATE_R" ,"CJ_GATE_1","CJ_GATE_18","CJ_GATE_2","CJ_GATE_23","CJ_GATE_25","CJ_GATE_3","CJ_GATE_3_2","CJ_GATE_3_3","CJ_GATE_3_4","CJ_GATE_3_4L" ,"CJ_GATE_3_4R","CJ_GATE_3_7","CJ_GATE_3_7L","CJ_GATE_3_7R","CJ_GATE_3L","CJ_GATE_4","CJ_GATE_4L","CJ_GATE_4R","CJ_GATE_4R01" ,"CJ_GATE_9","CJ_GATE_DOCK","CJ_SM_GATE_1" ,"CJ_AIRCON7","CJ_AIRCON8","CJ_BANK_MON","CJ_MON2","CJ_BM_PHONE1","CJ_FRIDGE_3" ,"CJ_HANDSET_ONE","CJ_HI_FI_2","CJ_HI_FI_SEP_3","CJ_HANDDRIER","CJ_IND_WASHER_3","CJ_IND_WASHER_5" ,"CJ_WASH_MAC_4","CJ_WASH_MAC_5","CJ_WASH_MAC_6" ,"CJ_LIFT_SWITCH","CJ_MICRO1","CJ_MICRO2","CJ_MICRO4","CJ_MOBILE_1","CJ_MOBILE_3","CJ_MOBILE_HAND_1" ,"CJ_P_TV_1","CJ_P_TV_2","CJ_TV_3","CJ_TV_6","CJ_TV_9" ,"CJ_NY_PHONE_1","CJ_NY_PHONE_2","CJ_NY_PHONE_3","CJ_NY_PHONE_4","CJ_NY_PHONE_WALL" ,"CJ_GAME_CUBE_C1","CJ_GAME_CUBE_C2","CJ_GAME_CUBE_C3" ,"CJ_GAME_CUBE_C4","CJ_GAME_CUBE_C5","CJ_GAME_CUBE_C6","CJ_GAME_GRID","CJ_GARAGE_DOOR_BIG","CJ_GAS_CANZ","CJ_GAS_FIRE" ,"CJ_RADIATOR_4","CJ_RADIATOR_MED","CJ_RADIATOR_OLD","CJ_RADIO_2","CJ_SEX_TV2" ,"CJ_SPEAKER_10","CJ_SPEAKER_1B","CJ_SPEAKER_4","CJ_SPEAKER_5","CJ_SPEAKER_9","CJ_RS_EAR_DEF","CJ_TOASTER_09" ,"CJ_TOASTER_2","CJ_TOASTER_7","CJ_TV_2","CJ_TV_2_SCREEN_04","CJ_VIDEO_2","CJ_VIDEO_3","CJ_GHETTO_BLASTER_1","CJ_GHETTO_BLASTER_2" ,"CJ_CAGE_1","CJ_CAGE_2","CJ_CAGE_3","CJ_CAGE_4","CJ_CAGE_5","CJ_BREAD_RACK_2" ,"CJ_NEW_BIN","CJ_BIN_1","CJ_BIN_10","CJ_BIN_11","CJ_BIN_13" ,"CJ_BIN_14","CJ_BIN_15","CJ_BIN_16","CJ_BIN_2","CJ_BIN_3","CJ_BIN_4","CJ_BIN_5","CJ_BIN_6","CJ_BIN_8","CJ_BIN_9","CJ_BIN_BAG_1" ,"CJ_BIN_BAG_2","CJ_BIN_BAG_INT","CJ_BIN_BAG_PICKUP","CJ_BIN_BAG_PICKUP2" ,"CJ_DUMPSTER_1","CJ_DUMPSTER_2","CJ_DUMPSTER_3","CJ_DUMPSTER_4","CJ_DUMPSTER_5","CJ_DUMPSTER_6","CJ_NY_BIN_1" ,"CJ_WASTE_CHUTE","CJ_WASTE_CHUTE2","CJ_WASTEBIN","CJ_WASTEBIN_2","CJ_WHEELIE_1" ,"CJ_PROC_INT_RUB","CJ_PROC_INT_RUB2" ,"CJ_RUB_1","CJ_RUB_10","CJ_RUB_11","CJ_RUB_2","CJ_RUB_3","CJ_RUB_4" ,"CJ_RUB_5","CJ_RUB_6","CJ_RUB_7","CJ_RUB_8","CJ_RUB_9","CJ_RUB_PILE_1","CJ_RUB_PILE_10","CJ_RUB_PILE_11","CJ_RUB_PILE_12" ,"CJ_RUB_PILE_13","CJ_RUB_PILE_15","CJ_RUB_PILE_16","CJ_RUB_PILE_17","CJ_RUB_PILE_18","CJ_RUB_PILE_2" ,"CJ_RUB_PILE_20","CJ_RUB_PILE_21","CJ_RUB_PILE_22","CJ_RUB_PILE_23","CJ_RUB_PILE_25","CJ_RUB_PILE_3","CJ_RUB_PILE_4" ,"CJ_RUB_PILE_5","CJ_RUB_PILE_6","CJ_RUB_PILE_7","CJ_RUB_PILE_8","CJ_RUB_PILE_9","CJ_RUB_W" ,"CJ_WRECK_1","CJ_WRECK_2","CJ_WRECK_3","CJ_WRECK_4","CJ_WRECK_5","CJ_WRECK_6","CJ_WRECK_7","CJ_WRECK_8","CJ_WRECK_9" ,"CJ_CRATE_1","CJ_CRATE_2","CJ_CRISP_BLUE","CJ_CRISP_GREEN","CJ_FRUITCRATE1","CJ_FRUITCRATE2","CJ_FRUITCRATE3" ,"CJ_IND_CRATE_1","CJ_IND_CRATE_2","CJ_IND_CRATE_3","CJ_IND_CRATE_4","CJ_IND_CRATE_5","CJ_IND_GAS" ,"CJ_CEIL_LIGHT_07","CJ_CEIL_LIGHT_09","CJ_CEIL_LIGHT_1" ,"CJ_CEIL_LIGHT_10","CJ_CEIL_LIGHT_14","CJ_CEIL_LIGHT_15","CJ_CEIL_LIGHT_17","CJ_CEIL_LIGHT_18","CJ_CEIL_LIGHT_2","CJ_CEIL_LIGHT_20" ,"CJ_CEIL_LIGHT_24","CJ_CEIL_LIGHT_26","CJ_CEIL_LIGHT_27","CJ_CEIL_LIGHT_28","CJ_CEIL_LIGHT_4","CJ_CEIL_LIGHT_4_L","CJ_CEIL_LIGHT_5" ,"CJ_CEIL_LIGHT_6","CJ_WALL_LIGHT_2","CJ_WALL_LIGHT_4","CJ_K_SPOTLIGHT" ,"CJ_DM_LIGHT_1","CJ_ET_DOCK_LIGHT","CJ_FLOOR_LIGHT_1","CJ_IM_GARD_LIGHT","CJ_IND_DYNAMIC","CJ_WS_LIGHT_6B" ,"CJ_K_LANTERN","CJ_K_LANTERN2","CJ_K_LANTERN3","CJ_K_LANTERN5","CJ_K_LANTERN6" ,"CJ_CARD_PILE_1","CJ_CARD_PILE_2","CJ_CARD_PILE_3","CJ_CARD_PILE_4","CJ_CARD_PILE_5","CJ_CARD_SHEET1","CJ_CIABATTA_1","CJ_CONSOLE" ,"CJ_DRINKS_DISP_2","CJ_ELEC_BOX_14","CJ_ELEC_BOX_15","CJ_JOJO_BOX1","CJ_LD_DISKBOX","CJ_MIS_RUB_FILE" ,"CJ_OFF_SUP_1","CJ_OFF_SUP_3","CJ_OFF_SUP_4","CJ_OFF_SUP_5","CJ_OFF_SUP_7","CJ_REDWOOD_BOX_1","CJ_TV_BOX_1" ,"CJ_IND_BOX_PILE_1","CJ_IND_BOX_PILE_1B","CJ_IND_BOX_PILE_1C","CJ_IND_BOX_PILE_1LD","CJ_IND_BOX_PILE_2","CJ_IND_BOX_PILE_2LD" ,"CJ_BOX_PILE","CJ_BOX_PILE_2","CJ_COK_CHEAP","CJ_BOX_DAM_1","CJ_PROC_CARD1","CJ_PROC_CARD2","CJ_PROC_CARD3" ,"CJ_PIGEON_05","CJ_PIGEON_06","CJ_PIGEON_07","CJ_PIGEON_08","CJ_PIGEON_1" ,"CJ_DW_SIGN_1","CJ_DW_SIGN_2","CJ_LAUND_SIGN_1","CJ_LAUND_SIGN_2","CJ_LAUND_SIGN_3","CJ_LAUND_SIGN_4","CJ_LAUND_SIGN_5" ,"CJ_NY_SIGN_11","CJ_NY_SIGN_12" ,"CJ_NY_SIGN_14","CJ_NY_SIGN_16","CJ_NY_SIGN_17","CJ_NY_SIGN_18","CJ_NY_SIGN_6","CJ_NY_SIGN_6L","CJ_NY_SIGN_8","CJ_NY_SIGN03" ,"CJ_NY_SIGN1","CJ_NY_SIGN2","CJ_PARKING_SIGN_1","CJ_PARKING_SIGN_2","CJ_PARKING_SIGN_3","CJ_RW_SIGN1","CJ_RW_SIGN2","CJ_RW_SIGN3" ,"CJ_SEC_SIGN_2","CJ_WORK_SIGN_07","CJ_WORK_SIGN_07B","CJ_WORK_SIGN_1","CJ_WORK_SIGN_2","CJ_WORK_SIGN_3","CJ_WORK_SIGN_4" ,"CJ_WORK_SIGN_5","CJ_WORK_SIGN_6","CJ_WORK_SIGN_6B","CJ_BILLBRD_1A","CJ_WALL_BILLBRD_1","CJ_WALL_BILLBRD_2","CJ_WL_BIB_2_LOD01" ,"CJ_WL_BIB_2_LOD02" ,"CJ_BARRIER_1","CJ_BARRIER_10" ,"CJ_BARRIER_10B","CJ_BARRIER_11","CJ_BARRIER_11B","CJ_BARRIER_1B","CJ_BARRIER_1C","CJ_BARRIER_2","CJ_BARRIER_3","CJ_BARRIER_4B" ,"CJ_BARRIER_5","CJ_BARRIER_5B","CJ_BARRIER_6","CJ_BARRIER_6B","CJ_BARRIER_7","CJ_BARRIER_7B","CJ_BARRIER_8","CJ_BARRIER_8_LIGHT" ,"CJ_BARRIER_8B","CJ_BARRIER_8C","CJ_BARRIER_9","CJ_BARRIER_9B","CJ_CAR_WASH_BARRIER","CJ_DOCK_BARRIER" ,"CJ_NEIL_BAR_ARML_D","CJ_NEIL_BAR_ARMR_D","CJ_NEIL_BARRIER_ARML","CJ_NEIL_BARRIER_ARMR","CJ_NEIL_BARRIER_BASE" ,"CJ_SEC_BARRIER","CJ_SEC_BARRIER_2","CJ_SEC_BARRIER_3","CJ_SEC_BARRIER_4","CJ_W_BARRIER","CJ_W_BARRIER_ARM" ,"CJ_DAVE_CLOCK_1","CJ_DAVE_CLOCK_2","CJ_CLOCK","CJ_DOCK_CLOCK","CJ_GAME_CLOCK" ,"CJ_GB_KOR_VASE_1","CJ_GB_KORFAN01","CJ_GB_KORJADEVASE01","CJ_KOR_HUGE_VASE","CJ_KOR_HUGE_VASE_2","CJ_KOR_HUGE_VASE_3","CJ_VASE_7" ,"CJ_KOR_MED_VASE_1","CJ_KOR_MED_VASE_3","CJ_KOR_MED_VASE_4","CJ_KOR_SMALL_VASE_1","CJ_KOR_SMALL_VASE_4","CJ_MUMS_VASE","CJ_VASE_3" ,"CJ_COOKER_1","CJ_COOKER_6","CJ_COOKER_7" ,"CJ_INT_PLANT_1","CJ_INT_PLANT_2","CJ_INT_PLANT_3","CJ_INT_PLANT_4","CJ_PLANTPOT1","CJ_PLANTPOT2","CJ_PLANTPOT3" ,"CJ_PROC_PLANT_1","CJ_PROC_PLANT_10","CJ_PROC_PLANT_11","CJ_PROC_PLANT_12","CJ_PROC_PLANT_13" ,"CJ_PROC_PLANT_14","CJ_PROC_PLANT_15","CJ_PROC_PLANT_16","CJ_PROC_PLANT_17","CJ_PROC_PLANT_18","CJ_PROC_PLANT_19","CJ_PROC_PLANT_2" ,"CJ_PROC_PLANT_20","CJ_PROC_PLANT_21","CJ_PROC_PLANT_22","CJ_PROC_PLANT_23","CJ_PROC_PLANT_24","CJ_PROC_PLANT_25" ,"CJ_PROC_PLANT_26","CJ_PROC_PLANT_28","CJ_PROC_PLANT_29","CJ_PROC_PLANT_3","CJ_PROC_PLANT_30","CJ_PROC_PLANT_4","CJ_PROC_PLANT_5" ,"CJ_PROC_PLANT_6","CJ_PROC_PLANT_7","CJ_PROC_PLANT_8","CJ_PROC_PLANT_9" ,"CJ_ARROW_ICON_2","CJ_R_ICON_ARROW","CJ_CONE","CJ_CONE_SM","CJ_CYLINDER","CJ_PROC_REC1","CJ_PROC_REC2","CJ_PROC_REC3","CJ_PROC_REC4" ,"CJ_PROC_REC5","CJ_QUESTION_MARK","CJ_ROW_REMOVER" ,"CJ_NUM_0","CJ_NUM_1","CJ_NUM_2","CJ_NUM_3","CJ_NUM_4","CJ_NUM_5","CJ_NUM_6","CJ_NUM_7","CJ_NUM_8","CJ_NUM_9" ,"CJ_CHEAP_BLACK","CJ_CHEAP_CAMMO","CJ_CHEAP_JEANS_RAD","CJ_CHEAP_OLIVE","CJ_CLOTHES_RADIAL1","CJ_GB_BLUE_GREEN_1","CJ_GB_BLUE_NAVY_1" ,"CJ_GB_BURG_GREEN_1","CJ_GB_CHEAP_BLACK","CJ_GB_CHEAP_GREEN","CJ_GB_CHEAP_GREY","CJ_GB_CHEAP_NAVY","CJ_GB_JERK_BK" ,"CJ_GB_JERK_BLACK","CJ_GB_JERK_FAWN","CJ_GB_JERK_G","CJ_GB_JERK_GREY","CJ_GB_JERK_TAN","CJ_GB_JUMP_1","CJ_GB_JUMP_2","CJ_GB_JUMP_3" ,"CJ_GB_LEATH_B_BLUE","CJ_GB_LEATH_B_RED","CJ_GB_LEATH_B_YEL" ,"CJ_GB_MED_B_LEATH","CJ_GB_MED_B_T","CJ_GB_MED_BK_LEATH","CJ_GB_MED_BLK_T","CJ_GB_MED_FAWN_T","CJ_GB_MED_G_LEATH","CJ_GB_MED_JEANS" ,"CJ_GB_MED_JEANS_BLK","CJ_GB_MED_JEANS_W","CJ_GB_MED_SHIRT_1","CJ_GB_MED_SHIRT_2","CJ_GB_MED_SHIRT_3","CJ_GB_PUFF_BLACK" ,"CJ_GB_PUFF_BROWN","CJ_GB_PUFF_GREEN","CJ_GB_SMART_BLK1","CJ_GB_SMART_BLK2","CJ_GB_SMART_BLK3","CJ_GB_SMART_BLK4" ,"CJ_GB_SMART_BLK5","CJ_GB_SMART_BROWN4","CJ_GB_SMART_FAWN1","CJ_GB_SMART_FAWN2","CJ_GB_SMART_GREY1","CJ_GB_SMART_GREY2" ,"CJ_GB_SMART_GREY3","CJ_GB_SMART_GREY4","CJ_GB_SMART_GREY5","CJ_JERK_TAN_SING" ,"CJ_F1","CJ_F2","CJ_F4","CJ_F5","CJ_F6","CJ_F7","CJ_F8","CJ_F9" ,"CJ_CASH_PILE_1","CJ_CASH_PILE_3","CJ_BOWLING_BALL3","CJ_BOWLING_PIN","CJ_BM_FLAM_DRUM","CJ_DL_IMPOSTER","CJ_DL_V_IMPOSTER" ,"CJ_NL_IMPOSTER","CJ_DIVING_BOARD","CJ_CARP_ROLL_1","CJ_CARP_ROLL_2","CJ_CARP_ROLL_3","CJ_CARPET_DIRT" ,"CJ_IND_CABLEW_1","CJ_IND_CABLEW_2","CJ_IND_RAFT_BIG","CJ_FLIGHT_CASE_1","CJ_HOTEL_TROLLY" ,"CJ_B_CAN3","CJ_BAGUETTE_1","CJ_BAN_1","CJ_BAN_2","CJ_BAN_3","CJ_BAN_4" ,"CJ_BAN_5","CJ_BAN_6","CJ_BAN_7","CJ_BAN_8","CJ_DONUT","CJ_DONUT2","CJ_DONUT3" ,"CJ_BASK_1","CJ_BFAST_J_2","CJ_BICCIE_2","CJ_BICCIE_BOX","CJ_BLOX_1","CJ_BS_TRAY_1","CJ_BS_TRAY_3","CJ_BS_TRAY_4" ,"CJ_CAN_DRINK_1","CJ_CAR_WASH_TICKET","CJ_CASE_2","CJ_CEREAL","CJ_CEREAL_BOX2","CJ_CEREAL2","CJ_CHANGING_ROOM" ,"CJ_CHEESE_1","CJ_CHEESE_3","CJ_CHOPPING_BOARD" ,"CJ_COFFEE_CUP","CJ_COFFEE_CUP01","CJ_COFFEE_CUP02","CJ_COFFEE_MAC","CJ_COFFEE_MAC_1","CJ_COFFEE_MAC_2","CJ_COFFEE_MAC2" ,"CJ_COFFEEE_MAC_1","CJ_COK_FILTER","CJ_COK_LIGHT","CJ_COKE_PACK","CJ_COLA_BOTTLE1","CJ_COLA_BOTTLE2","CJ_COLA_BOX","CJ_COLA_BOX_2" ,"CJ_EXPRESSO_CUP" ,"CJ_COOKIE_1","CJ_COOKIE_2","CJ_COOKIE_3","CJ_CRACK_ROCK" ,"CJ_CUP_CRATE","CJ_CUTLARY_TRAY","CJ_DAISY_1","CJ_DAISY_2","CJ_DART_1","CJ_DART_2" ,"CJ_DART_3","CJ_DART_4","CJ_DART_5","CJ_DART_6","CJ_DART_7","CJ_DART_BOARD","CJ_DART_BOARD_CAB","CJ_DART_TARGET","CJ_DART_TARGET2" ,"CJ_DINNER_PLATE_1","CJ_DINNER_PLATE_1B","CJ_DINNER_PLATE_2","CJ_DINNER_PLATE_2B","CJ_DINNER_PLATE_3","CJ_DINNER_PLATE_3B" ,"CJ_DINNER_PLATE_3C","CJ_DINNER_PLATE_4","CJ_DINNER_PLATE_5B","CJ_DINNER_PLATE_7" ,"CJ_K_BOWL_1B","CJ_K_BOWL_2B","CJ_K_BOWL_3B","CJ_K_KNIFE","CJ_K_PLATE_1" ,"CJ_K_PLATE_2","CJ_K_POT_1B","CJ_K_POT_3","CJ_K_POT_3B","CJ_K_POT_4","CJ_K_POT_4B","CJ_K_POT_5","CJ_K_POT_5B","CJ_K_POT_6B" ,"CJ_K_POT_7","CJ_K_POT_7B","CJ_K_POT_8B","CJ_K_W_POT","CJ_K_W_POT2","CJ_KETTLE_1","CJ_KETTLE_3" ,"CJ_KETTLE_6","CJ_KICKSTOOL","CJ_KITCH_1_COOKER","CJ_KNIFE","CJ_KNIFE_STAND","CJ_KNIVE_RACK","CJ_FORK" ,"CJ_DM_LIGHT_1","CJ_DM_SPRAYCAN","CJ_DOG_TIN_2","CJ_DONUT","CJ_DONUT2","CJ_DONUT3" ,"CJ_FIRST_AID_PICKUP","CJ_FISHING_ROD_1","_CJ_","CJ_GAS_CANZ","CJ_GAS_FIRE","CJ_GATE_1" ,"stat_hilberty01","Statue_bannister","Statue_staircase" ,"Lib_blckhrt","Lib_blckhrt_02","EC_Boatramp3","explode_01_MH12","explode_02_MH12","ET_seafloor02","EC_Barge_lrg_1" ,"EC_Barge_lrg_2","EastTower_MH8","LOD_skaterink_mh11","nj5_pristower","playgroundA_MH4","playp_LODbkn03","playp_LODbkn2","P_CRANE_1" ,"P_CRANE_11","P_CRANE_13","P_CRANE_14B","P_CRANE_14L","P_CRANE_14L01","P_CRANE_14L02","P_CRANE_3","P_CRANE_9","P_WATER_TOW_2" ,"P_WATER_TOW_4","SkateGrndB_MH11","skateramp_lod_mh4","skaterink02_mh11","skaterink02_mh11D" ,"nj05_oiltnkbig","nj05_oiltnkbig05","nj05_oiltnkbig06","nj05_oiltnkbig07","nj05_oiltnkbig13","nj05_oiltnkbig14","nj05_oiltnkbigb" ,"nj05_oiltnkmed","nj05_oiltnkmedb","nj05_oiltnkthin","nj05_oiltnkthin19","nj05_oiltnkthin2","nj05_oiltnkthin20","nj05_oiltnkthin21" ,"nj05_oiltnkthin22","nj05_oiltnkthin50","nj05_oiltnkwee","nj05_oiltnkwee08","nj05_oiltnkwee28","nj05_oiltnkwee29","nj05_oiltnkwee30" ,"nj05_oiltnkwee31","nj05_oiltnkwee33","nj05_oiltnkwee34","nj05_oiltnkwee35","nj05_oiltnkwee36","nj05_oiltnkwee37","nj05_oiltnkwee38" ,"nj05_oiltnkwee41","nj05_oiltnkwee43","nj05_oiltnkweeb","nj05_oilventa","nj05_oilventb" ,"nj05_bridge_ivy02","nj05_bridge_ivy03","nj05_bridge_ivy04","nj05_bridge_ivy05","nj05_bridge_ivy06","nj05_bridge_ivy07" ,"nj05_bridge_ivy08","nj05_bridge_ivy08b","nj05_bridge_ivy09","nj05_bridge_ivy10","nj05_bridge_ivy11","nj05_bridge_ivy12" ,"nj05_bridge_ivy13","nj05_bridgegraf00","nj05_bridgegraf02" ,"NJ01_AbndndHouse","NJ01_AbndndHouseLOD","NJ01_BigWhiteHouse","NJ01_BigWhiteHouse01","NJ01_BigWhiteHouse02","NJ01_BigWhiteHouse07" ,"NJ01_SapranoHouse01","NJ01_SapranoHouse02","NJ01_SapranoHouse07","NJ01_SapranoHouse08" ,"NJ01_TownHouseB","NJ01_TownHouseB01","NJ01_TownHouseB02","NJ01_TownHouseBLOD","NJ01_TownHouseBLOD01","NJ01_TownHouseC01" ,"NJ01_TownHouseC10","NJ01_TownHouseC11","NJ01_TownHouseD","NJ01_TownHouseD01","NJ01_TownHouseD02","NJ01_TownHouseDLOD" ,"NJ01_TownHouseDLOD03","NJ01_TownHouseDLOD04","NJ01_TownHouseE","NJ01_TownHouseE01","NJ01_TwnHouseA","NJ01_TwnHouseA01" ,"NJ01_TwnHouseA02","NJ01_TwnHouseALOD" ,"nj01_WoodHouseB01","nj01_WoodHouseB02","nj01_WoodHouseB04","nj01_WoodHouseB05","NJ01CreamHouse01","NJ01CreamHouse02" ,"NJ01CreamHouseLod","NJ01CreamHouseLod03","NJ01Church","NJ01ChurchLOD","NJ01CornerShop","NJ01CornerShopLOD" ,"NJ01OldStore1C","NJ01pliceGrndLOD01","NJ01PoliceStaLOD","NJ01ResLarge","NJ01Rest1","NJ01Retail_6x14","NJ01Retail_6x14B02" ,"NJ01Retail_6x14C","NJ01Retail1012b","NJ01Retail10x14BB02","NJ01Retail10x14TC","NJ01Retail10x14TDx","NJ01Retail10x14TDx01" ,"NJ01_AbndndGarage","NJ01_AbndndHouse","NJ01_AbndndHouseLOD","NJ01_BurgerShot","NJ01_BurgerShotLOD","NJ01_BurgerShotLOD01" ,"NJ01_Casino_A","NJ01_Casino_ALOD","NJ01_Casino_alpha","NJ01_Casino_B","NJ01_Casino_BLOD","NJ01_Casino_C","NJ01_Hospital" ,"NJ01_HospitalB","NJ01_HospitalEmiss","NJ01_HospitalLOD","NJ01_HospRT2LOD","NJ01_HospRTLOD","NJ01_GreenHouseC","NJ01_GreenHouseC01" ,"NJ01_GreenHouseC02","NJ01_GreenShop01","NJ01_GreenShop01LOD","NJ01_GreenShop02","NJ01_MansionA","NJ01_MansionALOD","NJ01_MansionB" ,"NJ01_MansionC","NJ01_PoliceStation","NJ01_PolicRTLOD01","NJ01_PolicRTLOD2","NJ01_Supermarket","NJ01BigWhteHseLOD" ,"NJ01BigWhteHseLOD01","NJ01BigWhteHseLOD02","NJ01BigWhteHseLOD03","ET_GasStation06","ET_GasStation09","ET_GasStation11" ,"ET_GasStation15","ET_oldwarehouse01" ,"NJ01WhiteBuild02","NJ01WhiteHouseA","NJ01WhiteHouseB","NJ01WhiteHouseB01LOD","NJ01WhiteHouseB03LOD","NJ01WhiteHouseB04LOD" ,"NJ01WhiteHouseB05LOD","NJ01WhiteHouseBLOD06","NJ01WhteHseB2LOD","WareHouse1_MH12","warehouse3","warehouse3_LOD","warehouse3_LOD2" ,"nj5_firepip00","nj5_firepip04","nj5_firepip05","nj5_firepip06","nj5_firepip07","nj5_firepip08","nj5_firepip09","nj5_firepip10" ,"nj5_firepip11","nj5_firepip12","nj5_firepip13","nj5_firepip14","nj5_firepip15","nj5_firepip16","nj5_firepip17","nj5_firepip18" ,"nj5_firepip19","nj5_firepip20","nj5_firepip21" ,"CJ_GOLF_BALL","CJ_GOLF_CLUB_1","CJ_GOLF_CLUB_2","CJ_GOLF_CLUB_3","CJ_HANDLE_LD","CJ_HOLDALL" ,"CJ_J_CAN_USED","CJ_J_CAN1","CJ_J_CAN2","CJ_J_CAN3","CJ_J_CAN4","CJ_J_CAN5","CJ_J_CAN6","CJ_J_CAN7","CJ_GIN_BOT_SM" ,"CJ_JA_BRICK_1","CJ_JA_MORE_WOOD" ,"CJ_K_INCENCE_B","CJ_K_INCENSE","CJ_KOR_POSTERS1","CJ_LAUND_BASKET","CJ_LAUND_BASKET_2","CJ_LAUND_DETAILS" //742 ,"CJ_LD_POOLBALL_1","CJ_LD_POOLBALL_10","CJ_LD_POOLBALL_11","CJ_LD_POOLBALL_12","CJ_LD_POOLBALL_13","CJ_LD_POOLBALL_14" ,"CJ_LD_POOLBALL_15","CJ_LD_POOLBALL_16","CJ_LD_POOLBALL_2","CJ_LD_POOLBALL_3","CJ_LD_POOLBALL_4","CJ_LD_POOLBALL_5" ,"CJ_LD_POOLBALL_6","CJ_LD_POOLBALL_7","CJ_LD_POOLBALL_8","CJ_LD_POOLBALL_9" ,"CJ_LEAF_1","CJ_LEAF_2","CJ_LEAF_3","CJ_LEAF_4","CJ_LEAF_W","CJ_LEATH_B_YEL_SING","CJ_LIB_PICKUP","CJ_LIFE_PRES_NY","CJ_LIFT_2" ,"CJ_LIFT_OUTER","CJ_LIFT_OUTER_2","CJ_LIFT_RUNNERS_2","CJ_LIFT_SWITCHDN" //805 ,"CJ_LIFT_SWITCHUP","CJ_LOBBY_PILLER","CJ_LOGO_BLOCK_1","CJ_LOGO_BLOCK_2","CJ_LOGO_BLOCK_3","CJ_MED_SHAD_1","CJ_MED_TOILET_2" ,"CJ_MENU_1","CJ_MENU_2","CJ_MILK_4","CJ_MINCER","CJ_MINI_BOMB","CJ_MK_DRUG_BAG","CJ_MK_DRUG_BAG2" ,"CJ_NEW_ATM","CJ_NOODLE_1","CJ_NOODLE_2","CJ_NOODLE_3","CJ_NOODLE_4" //902 ,"CJ_NY_ELEC1","CJ_NY_ELEC8","CJ_NY_ELEC8B","CJ_NY_PAP_DISP_1","CJ_NY_PAP_DISP_2","CJ_NY_PAP_DISP_3","CJ_NY_PAP_DISP_4" ,"CJ_NY_PAP_DISP_5","CJ_NY_PAP_DISP_6","CJ_NY_PAP_DISP_7","CJ_NY_PAP_DISP_8","CJ_NY_PAP_DISP_9" ,"CJ_NY_POSTBOX","CJ_NY_POSTBOX_2","CJ_NY_POSTBOX_B","CJ_NY_POSTBOX_B_GRAF" ,"CJ_NY_POSTBOX_GRAF","CJ_NYLAMP2","CJ_NYLAMP2B","CJ_O2_TANK","CJ_OFF2_LIC_1_L","CJ_OIL_DRUM","CJ_OIL_DRUM_2","CJ_OIL_DRUM_3" ,"CJ_OIL_DRUM_4","CJ_OIL_TIN_1","CJ_OIL_TIN_2","CJ_P_POT_1","CJ_P_POT_4" ,"CJ_PAINT_POT_1","CJ_PAINT_POT_2","CJ_PAINT_POT_3","CJ_PALLET_TROLLY_1","CJ_PALLET_TROLLY_2","CJ_PALLET_TROLLY_3" ,"CJ_PALLET_TROLLY_4","CJ_PALLET_TROLLY_5","CJ_PALLET_TROLLY_6","CJ_PARKING_FRAME_1","CJ_PARKING_FRAME_2","CJ_PARKING_FRAME_3" ,"CJ_PARKING_FRAME_4","CJ_PARKING_HUT_1","CJ_PARKING_HUT_2","CJ_PAVE_EXAUST","CJ_PHONE_OFF","CJ_PILLER_INDUS","CJ_PILLER_INDUS_2" ,"CJ_PING_PONG" //998 ,"CJ_PLASTIC_CUPS","CJ_PLASTIC_CUPS_2","CJ_PLASTIC_TRAY","CJ_POOL_SHADOW" ,"CJ_PORTA_CAB_2LOD","CJ_PORTA_CABIN_1","CJ_PORTA_CABIN_2","CJ_PORTA_CABIN_3","CJ_POSTERS_2","CJ_POT_1","CJ_POT_10","CJ_POT_2" ,"CJ_POT_3","CJ_POT_4","CJ_POT_5","CJ_POT_6","CJ_POT_8","CJ_POT_9","CJ_PRAM","CJ_PROC_BAN","CJ_PROC_BAN_B","CJ_PROC_BEER_1" ,"CJ_PROC_BEER_2","CJ_PROC_BEER_W","CJ_PROC_BRICK","CJ_PROC_BRICK10","CJ_PROC_BRICK2","CJ_PROC_BRICK3","CJ_PROC_BRICK4" ,"CJ_PROC_BRICK5","CJ_PROC_BRICK6","CJ_PROC_BRICK7","CJ_PROC_BRICK8","CJ_PROC_BRICK9","CJ_PROC_BS_BAG","CJ_PROC_BS_CHIP" ,"CJ_PROC_BS_CUP","CJ_PROC_BS_CUP2","CJ_PROC_BS_LID","CJ_PROC_BS_NAP","CJ_PROC_BS_STRAW","CJ_PROC_COFFEE_W","CJ_PROC_COFFEE1","CJ_PROC_FAG1" ,"CJ_PROC_FAG2","CJ_PROC_FAG3","CJ_PROC_FAGP","CJ_PROC_FAGP_2" ,"CJ_PROC_FAGP_W","CJ_PROC_HOSE","CJ_PROC_HOSE_W" ,"CJ_PROC_HOSE2","CJ_PROC_HOSE3","CJ_PROC_JONNY","CJ_PROC_MILK","CJ_PROC_NEEDLE" ,"CJ_PROC_PAIN3","CJ_PROC_PAINT","CJ_PROC_PAINT2","CJ_PROC_PANTS","CJ_PROC_PAPER","CJ_PROC_PAPER2","CJ_PROC_PAPER3","CJ_PROC_PAPER4" ,"CJ_PROC_PAPER5","CJ_PROC_PEACH" //1104 works ,"CJ_PROC_PLUM","CJ_PROC_POST10","CJ_PROC_REC1" ,"CJ_PROC_REC2","CJ_PROC_REC3","CJ_PROC_REC4","CJ_PROC_REC5","CJ_PROC_ROPE1","CJ_PROC_ROPE2","CJ_PROC_SLAB1","CJ_PROC_SLAB2" ,"CJ_PROC_SLAB3","CJ_PROC_SLAB4","CJ_PROC_SLAB5","CJ_PROC_SLAB6","CJ_PROC_SOCK","CJ_PROC_SOCK2","CJ_PROC_STONE1","CJ_PROC_STONE2" ,"CJ_PROC_STONE3","CJ_PROC_TICKET1","CJ_PROC_TICKET2","CJ_PROC_TIN","CJ_PROC_TIN2","CJ_PROC_TIN3","CJ_PROC_TIN4","CJ_PROC_TIN5" ,"CJ_PROC_TOWEL","CJ_PROC_TOWEL2","CJ_PROC_TSHIRT","CJ_PROC_WEED","CJ_PROC_WEED2","CJ_PROC_WHEEL","CJ_PROC_WOOD","CJ_PROC_WOOD_W" ,"CJ_PROC_WOOD_W2","CJ_PROC_WOOD_W3","CJ_PROC_WOOD10","CJ_PROC_WOOD11","CJ_PROC_WOOD12","CJ_PROC_WOOD13","CJ_PROC_WOOD2" ,"CJ_PROC_WOOD3","CJ_PROC_WOOD4","CJ_PROC_WOOD5","CJ_PROC_WOOD6","CJ_PROC_WOOD7","CJ_PROC_WOOD8","CJ_PROC_WOOD9","CJ_PROP_AK47" ,"CJ_PROP_EAGLE","CJ_PROP_GLOCK","CJ_PROP_GRENADE","CJ_PROP_KNIFE","CJ_PROP_M4","CJ_PROP_MOLOTOV","CJ_PROP_MP5","CJ_PROP_PSG1" ,"CJ_PROP_PUMPSHOT","CJ_PROP_RIFLE","CJ_PROP_RPG","CJ_PROP_SHOTGUN","CJ_PROP_UZI","CJ_PUFF_BLACK_SING","CJ_PUFF_GREEN_SING" ,"CJ_PYLON_2","CJ_REST_UMB","CJ_REST_UMB_10","CJ_REST_UMB_11","CJ_REST_UMB_2" ,"CJ_REST_UMB_3","CJ_REST_UMB_4","CJ_REST_UMB_5","CJ_REST_UMB_6","CJ_REST_UMB_7","CJ_REST_UMB_8","CJ_REST_UMB_9","CJ_RING_ICON" ,"CJ_RING_ICON_2","CJ_ROCKET","CJ_ROW_REMOVER","CJ_RUS_SHADOW","CJ_S_BOT_SM","CJ_S_L_BOT_SM","CJ_SAND_TIMER","CJ_SAUS_1" ,"CJ_SCHEDULE_1","CJ_SECURITY_HUT_1","CJ_SHOP_TILL_1","CJ_SHOP_TILL_TRAY","CJ_SHOWER","CJ_SHOWER_RACK" ,"CJ_SOAP_P_1","CJ_SOAP_P_2","CJ_SPOON","CJ_SPRITE_BOTTLE","CJ_SPRUNK_BOTTLE2","CJ_SPRUNK_BOX_1","CJ_SPRUNK_BOX_2" ,"CJ_SPRUNK_L_BOTTLE2","CJ_SPRUNKBOX","CJ_SUTTER_3","CJ_T_LIGHT_TEMP" ,"CJ_T_ROLL_DISP","CJ_TABLE_TEN_BAT","CJ_TABLE_TENNIS","CJ_TAXI_METER_1","CJ_TEA_URN" ,"CJ_TENNIS_BAT","CJ_TEST_STICKERS_1","CJ_TEST1","CJ_TILE_BASE","CJ_TILL_2","CJ_TOILET_BRUSH","CJ_TOILET_ROLL","CJ_TOWEL_DISP_3" ,"CJ_TRACK_SING","CJ_TRAY","CJ_TRAY_BAKER","CJ_TREE_GUARD","CJ_TROLLEY_1Z","CJ_TROLLEY_2Z","CJ_TROLLEY_RUB" ,"CJ_VAULT_GATE","CJ_VAULT_SURROUND","CJ_VEIW_TELESCOPE","CJ_VIDEO_2","CJ_VIDEO_3","CJ_W_CRADLE_HARNESS","CJ_WATER_BAR_1" ,"CJ_WIN_CABLE","CJ_WIN_CRAD_WINCH","CJ_WIN_CRAD_WINCH03","CJ_WIN_DISP_03","CJ_WIN_DISP_04","CJ_WINE_2","CJ_WL_BIB_2_LOD01" ,"CJ_WL_BIB_2_LOD02","CJ_YOG_USED" // Newest Additions 8/2/10 ,"01_Wires_MH1","02Ground_MH8","03_graffiti_01_MH5","03_graffiti_02_MH5","03_graffiti_03_MH5","03_nitelight01_MH5" ,"03_nitelight02_MH5","03_railings_01_MH5","03_railings_02_MH5","03_railings_03_MH5","03_railings_04_MH5","03_wareDet01_MH2" ,"03_wareDet02_MH2","03_wareDet03_MH2","03_wareDet04_MH2","03Glue_01_MH5","03Glue_02_MH5","04_02_MH3","04_02_MH5","04_03_DTL1_MH5" ,"04_03_MH5","04_05_MH5","04_Glue1_MH5" ,"04_Glue2_MH5","04_Glue3_MH5","04_Land1_MH5","04_Land2_MH5","04_LeaseSign_MH5","04_nitewins1_MH5" ,"04_Sign01_MH5","04_terr01_MH2"}; //Set class to retrieve Player info static Player GetPlayer() { Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); return playerIndex; } static Player GetPlayerStatic() { Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); return playerIndex; } static Ped GetPlayerPed() { Ped ped; GetPlayerChar(GetPlayer(), &ped); return ped; } static eModel GetPlayerModel() { eModel model; GetCharModel(GetPlayerPed(), &model); return model; } static eWeather GetCurrentWeather() { eWeather weather; return weather; } // A perfectly working global spawner! Uses values based on sptype to determine the function to spawn void CustomFiberThread::SpawnGlobal(eModel model, int sptype) { RequestModel(model); while(!HasModelLoaded(model)) { Wait(150); } Ped ped = GetPlayerPed(); // ped declaration represents GetPlayerPed() f32 x, y, z; // x = left/right position, y = forward/backward pos, z = height of the object (how long it will be) f32 place; place = 1; f32 height; ColourIndex colour; // declare color object of a class colour = 3; // set blip color SetNetworkIdExistsOnAllMachines(netid, true); switch(sptype) { case 1: // Spawn a Vehicle GetCharCoordinates(ped, &x, &y, &z); // z+140, y=position to player. Neg puts obj in front of player CreateCar(model, x - 3, y, z, &lastcar, true); // Create vehicle y + 15 AddBlipForCar(lastcar, &blip); vehSpawned[vehicleNum] = lastcar; /* try { throw L"Exception when spawning a car"; } catch(float z) { //Console::WriteLine(L"String^: (0)", z); MessageBox(NULL, L"Error in floating point z", L"Message", MB_OK); } */ break; // Spawn an Object case 2: GetCharCoordinates(ped, &x, &y, &z); CreateObject(model, x, y, z - place, &lastobj, true); FreezeObjectPosition(lastobj, true); //GetNetworkIdFromObject(lastobj, &netid); //SetNetworkIdExistsOnAllMachines(netid, true); objSpawned[objectNum] = lastobj; // Save object array(lastobj) so we can use this later break; // Spawn a Ped case 3: GetCharCoordinates(ped, &x, &y, &z); GetCharHeightAboveGround(ped, &height); // determine position in proximity to ground level CreateChar(3, model, x, y + 2, z, &lastped, true); // Create a ped pedSpawned[pedNum] = lastped; // Save ped array(lastped) so we can use this later. break; // Change Character case 4: eInteriorRoomKey roomKey; GetKeyForCharInRoom(GetPlayerPed(), &roomKey); ChangePlayerModel(GetPlayer(), model); SetRoomForCharByKey(GetPlayerPed(), roomKey); MarkModelAsNoLongerNeeded(model); break; } if (sptype > 0) { //sprintf_s(mes1,300,"Now spawning %s" , objName[sptype - 1]); //PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } MarkModelAsNoLongerNeeded(model); } void CustomFiberThread::ChangePlayerSkin(eModel model) { RequestModel(model); while(!HasModelLoaded(model)) { Wait(0); } eInteriorRoomKey roomKey; GetKeyForCharInRoom(GetPlayerPed(), &roomKey); ChangePlayerModel(GetPlayer(), model); SetRoomForCharByKey(GetPlayerPed(), roomKey); MarkModelAsNoLongerNeeded(model); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////// MAIN FUNCTIONS ACTIVATED THROUGH MENU SETUP //////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // RunScript Function Calls void CustomFiberThread::SupermanMode() { Ped ped = GetPlayerPed(); f32 x, y, z; Ped playerped; GetCharCoordinates(ped, &x, &y, &z); ApplyingForceToVehicle(); //SetCharFireDamageMultiplier(ped, 9000.2); PrintStringWithLiteralStringNow("STRING", "Superman power mode", 7500,1); } void CustomFiberThread::ViewMPCoordinates() { gameplayerX +=1; // point at current MP Player (increments forward) if (gameplayerX > 31) { gameplayerX = 0; // wrap object position to reference first item in pointer array } sprintf_s(str7,300,"Now targetting Player: %s, %i" , GetPlayerName(gameplayerX),gameplayerX); PrintStringWithLiteralStringNow("STRING", str7, 7500, 1); } void CustomFiberThread::ViewFunctionStats() { f32 x, y, z; sprintf_s(mes1,300,"SetCharVelocity(funChar, x + pedX, y + pedY, z + pedZ) : %d, %d, %d" , x + pedX, y + pedY, z + pedZ); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::Flying() { f32 x, y, z; Ped ped = GetPlayerPed(); GetCharVelocity(GetPlayerPed(), &x, &y, &z); SetCharVelocity(GetPlayerPed(), (x), y, (z + hoveringControl)); // x*12, z*12 kickoff! FreezeCharPosition(GetPlayerPed(), isPlayerFrozen); sprintf_s(str7,300,"Flying free like a bird"); PrintStringWithLiteralStringNow("STRING", str7, 7500, 1); } void CustomFiberThread::MovePlayerLeft() { f32 x, y, z; f32 dir; Ped ped = GetPlayerPed(); GetCharCoordinates(ped, &x, &y, &z); GetCharHeading(ped, &dir); SetCharHeading(ped, dir + 5); PrintStringWithLiteralStringNow("STRING","Moving Player to the left", 7500, 1); } void CustomFiberThread::MovePlayerRight() { f32 x, y, z; f32 dir; Ped ped = GetPlayerPed(); GetCharCoordinates(ped, &x, &y, &z); GetCharHeading(ped, &dir); SetCharHeading(ped, dir - 5); PrintStringWithLiteralStringNow("STRING", "Moving Player to the right", 7500, 1); } void CustomFiberThread::MoveObjectUp() { lastobj = objSpawned[listView - 1]; PrintStringWithLiteralStringNow("STRING", "Moving object Up",7500,1); f32 x, y, z; GetObjectCoordinates(lastobj, &x, &y, &z); ClearRoomForObject(lastobj); SetObjectCoordinates(lastobj, x, y, z + navobjSpeed); // z + navGravity } void CustomFiberThread::MoveObjectDown() { lastobj = objSpawned[listView - 1]; PrintStringWithLiteralStringNow("STRING", "Moving object Down",7500,1); f32 x, y, z; GetObjectCoordinates(lastobj, &x, &y, &z); ClearRoomForObject(lastobj); SetObjectCoordinates(lastobj, x, y, z - navobjSpeed); // z + navGravity } void CustomFiberThread::RotateCharToLeft() { f32 x,y,z; f32 dir; Ped ped = GetPlayerPed(); GetCharCoordinates(ped, &x, &y, &z); GetCharHeading(ped, &dir); SetCharHeading(ped, dir + 5); PrintStringWithLiteralStringNow("STRING", "Rotating player to the left", 7500, 1); } void CustomFiberThread::RotateObjectToLeft() { f32 dir; GetObjectHeading(lastobj, &dir); SetObjectHeading(lastobj, dir + navobjSpeed); PrintStringWithLiteralStringNow("STRING", "Rotating object to the left",7500,1); } void CustomFiberThread::RotateCharToRight() { f32 x,y,z; f32 dir; Ped ped = GetPlayerPed(); GetCharCoordinates(ped, &x, &y, &z); GetCharHeading(ped, &dir); SetCharHeading(ped, dir - 5); PrintStringWithLiteralStringNow("STRING", "Rotating player to the right", 7500, 1); } void CustomFiberThread::RotateObjectToRight() { f32 dir; GetObjectHeading(lastobj, &dir); SetObjectHeading(lastobj, dir - navobjSpeed); PrintStringWithLiteralStringNow("STRING", "Rotating object to the right",7500,1); } void CustomFiberThread::RunSuperFast() { PrintStringWithLiteralStringNow("STRING", "rapid motion.",7500,1); f32 x, y, z; Ped ped = GetPlayerPed(); FreezeCharPosition(GetPlayerPed(), isPlayerFrozen); GetCharVelocity(GetPlayerPed(), &x, &y, &z); SetCharVelocity(GetPlayerPed(), (x * travSpeed), (y* travSpeed) , z); // x*8,y*8 - freeze the player } void CustomFiberThread::FastVehicle() { Vehicle vehicle; f32 travelrate; GetCarCharIsUsing(GetPlayerPed(), &vehicle); GetCarSpeed(vehicle, &travelrate); SetCarForwardSpeed(vehicle, (travelrate + vehSpeed)); // travelrate * vehSpeed } void CustomFiberThread::SuperBrake() { Vehicle vehicle; f32 travelrate; GetCarCharIsUsing(GetPlayerPed(), &vehicle); GetCarSpeed(vehicle, &travelrate); SetCarForwardSpeed(vehicle, (travelrate / 2)); Ped ped = GetPlayerPed(); SetCharWillFlyThroughWindscreen(ped, 0); PrintStringWithLiteralStringNow("STRING", "Super brake",7500,1); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// OBJECT LIST /////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CustomFiberThread::IncrementObjectList() { ObjectX +=1; // point at current object to be seen (increments forward) if (ObjectX > range) { ObjectX = 1; // wrap object position to reference first item in pointer array } sprintf_s(mes1,300,"Found object %s, number: %d, total spawned: %i" ,objmod[ObjectX], ObjectX, objectNum); PrintStringWithLiteralStringNow("STRING", mes1, 9000, 1); } void CustomFiberThread::DecrementObjectList() { ObjectX -=1; // point at current object to be seen (increments backward) if (ObjectX < 1) { ObjectX = range; // don't overflow pointer buffer (wrap around) } sprintf_s(mes1,300,"Found object %s, number: %d, total spawned: %i" ,objmod[ObjectX], ObjectX, objectNum); PrintStringWithLiteralStringNow("STRING", mes1, 9000, 1); } void CustomFiberThread::ObjectSpawner() { sprintf_s(str2,300, objmod[ObjectX]); SpawnGlobal(GetModelHash(str2), 2); SetObjectCollision(lastobj, true); // newly added sprintf_s(mes1,300,"Now spawning number %i, object: %s" ,objectNum+1, objmod[ObjectX]); PrintStringWithLiteralStringNow("STRING", mes1, 9900, 1); SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.38f, .095f, "STRING", objmod[ObjectX]); objectNum++; // Added 7/3/09 maxObjects++; listView = objectNum; // keep track of which item is currently being viewed spawnedListObj[objectNum] = objmod[ObjectX]; } void CustomFiberThread::ForwardSkipObjList() { ObjectX = objectSkipNumber[skipCount]; skipCount ++; // point at current object to be seen (increments forward) if (skipCount> 41) { skipCount = 0; // wrap object position to reference first item in array } sprintf_s(mes1,300,"Forwarding thru object skip list %i, %s" ,objectSkipNumber[skipCount-1],ViewObjName[skipCount-1]); PrintStringWithLiteralStringNow("STRING", mes1, 6000, 1); } void CustomFiberThread::BackwardSkipObjList() { ObjectX = objectSkipNumber[skipCount]; skipCount --; // point at current object to be seen (increments forward) if (skipCount< 0) { skipCount = 41; // wrap object position to reference first item in array } sprintf_s(mes1,300,"Backward thru object skip list %i, %s" ,objectSkipNumber[skipCount-1],ViewObjName[skipCount-1]); PrintStringWithLiteralStringNow("STRING", mes1, 6000, 1); } void CustomFiberThread::AttachObjectToVehicle() { if (DoesObjectExist(lastobj) && objectNum > 0) { objectNum++; // Added 7/3/09 listView = objectNum; // keep track of which item is currently being viewed spawnedListObj[objectNum] = objmod[ObjectX]; //lastobj = objSpawned[listView - 1]; PrintStringWithLiteralStringNow("STRING", "Attaching object to vehicle",7500,1); Ped ped = GetPlayerPed(); f32 x, y, z; objectNum++; eModel curObj = GetModelHash(objmod[ObjectX]); //BM_trex_partB Vehicle vehicle; //curObj = spawnedListObj[objectNum]; GetCarCharIsUsing(GetPlayerPed(), &vehicle); GetCharCoordinates(GetPlayerPed(), &x, &y, &z); CreateObject(curObj, x, y, z, &lastobj, true); AttachObjectToCar(lastobj, vehicle, 0, 0, 0, 0, 0 ,0 ,0); //FreezeObjectPosition(lastobj, true); sprintf_s(mes1,300,"Attaching object %s, number: %d" ,objmod[ObjectX], ObjectX); PrintStringWithLiteralStringNow("STRING", mes1, 6000, 1); } else if (!DoesObjectExist(lastobj)) { PrintStringWithLiteralStringNow("STRING", "Cannot attach object not spawned yet.", 7500, 1); } } void CustomFiberThread::DetatchObjectFromVehicle() { //lastobj = objSpawned[listView - 1]; if (DoesObjectExist(lastobj) && objectNum > 0) { Ped ped = GetPlayerPed(); f32 x, y, z; objectNum--; eModel curObj = GetModelHash(objmod[ObjectX]); //BM_trex_partB Vehicle vehicle; GetCarCharIsUsing(GetPlayerPed(), &vehicle); GetCharCoordinates(GetPlayerPed(), &x, &y, &z); DetachObject(lastobj, true); PrintStringWithLiteralStringNow("STRING", "Object is now detached from your vehicle", 7500, 1); } else if (!DoesObjectExist(lastobj)) { PrintStringWithLiteralStringNow("STRING", "Cannot detatch object not spawned yet", 7500, 1); } } void CustomFiberThread::RotateAnObject() { f32 ox,oy,oz; Blip objblip; lastobj = objSpawned[listView - 1]; //if(DoesObjectExist(lastobj)) if(objectNum > 0) { //if (IsObjectAttached(lastobj)) //{ f32 dir; eModel curObj = GetModelHash(carmod[carObjectX]); // GetObjectVelocity(Object obj, f32 *pX, f32 *pY, f32 *pZ) GetObjectCoordinates(lastobj, &ox, &oy, &oz); GetObjectRotationVelocity(lastobj, &ox, &oy, &oz); Saveoz = oz; SetObjectCoordinates(lastobj, ox, oy, oz); SetObjectQuaternion(lastobj, ox, oy, oz, rotAxis); // Also try -90, -180, -360 GetObjectHeading(lastobj, &dir); SetObjectHeading(lastobj, dir + rotAxis); AddBlipForObject(lastobj, &objblip); sprintf_s(mes1,300,"Rotating Object %i, object: %s, Axis: %i" ,objectNum+1, objmod[ObjectX], rotAxis); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); //Saveoz = Saveoz - .9; rotAxis = rotAxis - .90 / ox; //} } else if (!DoesObjectExist(lastobj)) { PrintStringWithLiteralStringNow("STRING", "No spawned objects to view yet", 7500, 1); } } void CustomFiberThread::DeleteLastObject() { //objSpawned[listView] = lastobj; lastobj = objSpawned[listView - 1]; if (DoesObjectExist(lastobj)) { if (objectNum > 0) { // Deleting number: %d, %s, %d" , listView, spawnedListObj[listView],objSpawned[listView-1]); sprintf_s(mes1,300,"Deleting object number: %d, %s",listView, spawnedListObj[listView]); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); objModel[listView] = -1; spawnedListObj[listView]= "** deleted **"; DeleteObject(&lastobj); objectNum--; // track how many objects have been deleted if (objectNum < 0) { objectNum = 0; listView=0; maxObjects=0; } } } else if (objectNum < 1) { PrintStringWithLiteralStringNow("STRING", "There are no objects to delete",7500,1); } } void CustomFiberThread::ObjectIsInvisible() { lastobj = objSpawned[listView - 1]; if(DoesObjectExist(lastobj)) { if (objectNum > 0) { isObjectVisible = !isObjectVisible; SetNetworkIdExistsOnAllMachines(netid, true); const ch* displayString = (isObjectVisible ? "Object is visible" : "Object is not visible"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); SetObjectVisible(lastobj, isObjectVisible); } } else { PrintStringWithLiteralStringNow("STRING", "There is no object spawned yet.", 1000, 1); } } void CustomFiberThread::ViewSpawnedObject() { if (objectNum > 0) { listView++; // point at current object to be seen (increments forward) //if (listView > objectNum) //{ // listView = 1; // wrap object position to reference first item in array //} // use for loop to skip any duplicates // maxObjects+1 (both when it worked) for (int i = 1; i < maxObjects+1; i++) { // this line works fine if (listView > maxObjects) // this line works fine { listView = 1; // wrap object position to reference first item in array // this line works fine } // if (objModel[i] < 0) //if (objModel[i] < 0) // if we found a deleted object skip the object display "*** deleted ***" if (objModel[listView] < 0) listView++; } // Now viewing object: %i, %s, %d" , listView, spawnedListObj[listView], objSpawned[listView - 1], objectNum); // objSpawned-listView - 1] = 63256 (or whatever the object value is) sprintf_s(mes1,300,"Now viewing object: %i, %s, %i" ,listView, spawnedListObj[listView],maxObjects); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } else if (objectNum < 1) { PrintStringWithLiteralStringNow("STRING", "No spawned objects to view yet", 7500, 1); } saveObjString++; // stringSize; // cycle through each memory object } void CustomFiberThread::ApplyForceToTheObject() { if(DoesObjectExist(lastobj)) { Ped ped; f32 x, y, z; f32 speed; Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); GetPlayerChar(playerIndex, &ped); GetCharCoordinates(ped, &x, &y, &z); //GrabNearbyObjectWithSpecialAttribute(navobjSpeed, &lastobj); //SetObjectQuaternion(pObj, APFCarx, APFCary, APFCarz, 2); GetObjectCoordinates(lastobj, &x, &y, &z); GetObjectSpeed(lastobj, &speed); ApplyForceToObject(lastobj, 1, x, y, z, APFCarx, APFCary, APFCarz, 1, 1, 1, 1); speed += 100; Wait(50); //FreezeCarPosition(vehicle, 1); PrintStringWithLiteralStringNow("STRING", "Applying force to objects within range.", 7500, 1); } else if (objectNum < 1) { PrintStringWithLiteralStringNow("STRING", "Cannot apply force to object not spawned yet.", 7500, 1); } } void CustomFiberThread::RotateObjectOnCar() { if(DoesObjectExist(lastobj)) { f32 x,y,z; //GetCarObjectIsAttachedTo(lastobj); GetObjectRotationVelocity(lastobj, &x, &y, &z); f32 dir; GetObjectHeading(lastobj, &dir); SetObjectHeading(lastobj, dir + navobjSpeed); PrintStringWithLiteralStringNow("STRING", "Rotating object attached to your car.",7500,1); } if (!DoesObjectExist(lastobj)) { PrintStringWithLiteralStringNow("STRING", "Object is not attached to car or does not exist.",7500,1); } } void CustomFiberThread::RotateObjectX() { f32 x,y,z; if (DoesObjectExist(lastobj)) { xquat=xquat+2; GetObjectCoordinates(lastobj, &x, &y, &z); //SetObjectCoordinates(lastobj, x, y, z); GetObjectRotation(lastobj, &x, &y, &z); SetObjectRotation(lastobj, xquat, y, z); //GetNetworkIdFromObject(lastobj, &netid); //RequestControlOfNetworkId(netid); sprintf_s(mes1,300,"Rotating object X: %i,%i,%f" ,listView, spawnedListObj[listView], xquat); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } if (!DoesObjectExist(lastobj)) { PrintStringWithLiteralStringNow("STRING", "Object does not exist. Cannot rotate X value",7500,1); } } void CustomFiberThread::RotateObjectY() { f32 x,y,z; if (DoesObjectExist(lastobj)) { yquat=yquat+2; //GetObjectCoordinates(lastobj, &x, &y, &z); //SetObjectCoordinates(lastobj, x, y, z); GetObjectRotation(lastobj, &x, &y, &z); SetObjectRotation(lastobj, x, yquat, z); //GetNetworkIdFromObject(lastobj, &netid); //RequestControlOfNetworkId(netid); sprintf_s(mes1,300,"Rotating object Y: %i,%i,%f" ,listView, spawnedListObj[listView], yquat); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } if (!DoesObjectExist(lastobj)) { PrintStringWithLiteralStringNow("STRING", "Object does not exist. Cannot rotate Y value",7500,1); } } void CustomFiberThread::RotateObjectZ() { Blip objblip; if (DoesObjectExist(lastobj)) { f32 x,y,z; zquat=zquat+2; GetCharCoordinates(GetPlayerPed(), &x, &y, &z); //GetObjectCoordinates(lastobj, &x, &y, &z); // new line (commented out) //SetObjectCoordinates(lastobj, x, y, z); GetObjectRotation(lastobj, &x, &y, &z); // new line SetObjectRotation(lastobj, x, y, zquat); // new line SetObjectQuaternion(lastobj, x, y, z, zquat); RotateObject(lastobj, x, y, zquat); AddBlipForObject(lastobj, &objblip); //GetNetworkIdFromObject(lastobj, &netid); //RequestControlOfNetworkId(netid); sprintf_s(mes1,300,"Rotating object Z: %i,%i,%f" ,listView, spawnedListObj[listView], zquat); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } if (!DoesObjectExist(lastobj)) { PrintStringWithLiteralStringNow("STRING", "Object does not exist. Cannot rotate Z value",7500,1); } } void CustomFiberThread::MoveObjectNorth() { if (DoesObjectExist(lastobj)) { lastobj = objSpawned[listView - 1]; PrintStringWithLiteralStringNow("STRING", "Moving object North",7500,1); f32 x, y, z; GetObjectCoordinates(lastobj, &x, &y, &z); ClearRoomForObject(lastobj); SetObjectCoordinates(lastobj, x, y - navobjSpeed, z); // y - navRight } if (!DoesObjectExist(lastobj)) { PrintStringWithLiteralStringNow("STRING", "Object does not exist. Cannot move North",7500,1); } } void CustomFiberThread::MoveObjectSouth() { if (DoesObjectExist(lastobj)) { lastobj = objSpawned[listView - 1]; PrintStringWithLiteralStringNow("STRING", "Moving object South",7500,1); f32 x, y, z; GetObjectCoordinates(lastobj, &x, &y, &z); ClearRoomForObject(lastobj); SetObjectCoordinates(lastobj, x, y + navobjSpeed, z); // x - navLeft } if (!DoesObjectExist(lastobj)) { PrintStringWithLiteralStringNow("STRING", "Object does not exist. Cannot move South",7500,1); } } void CustomFiberThread::MoveObjectEast() { if (DoesObjectExist(lastobj)) { lastobj = objSpawned[listView - 1]; PrintStringWithLiteralStringNow("STRING", "Moving object East",7500,1); f32 x, y, z; GetObjectCoordinates(lastobj, &x, &y, &z); ClearRoomForObject(lastobj); SetObjectCoordinates(lastobj, x - navobjSpeed, y, z); // x - navLeft } if (!DoesObjectExist(lastobj)) { PrintStringWithLiteralStringNow("STRING", "Object does not exist. Cannot move East",7500,1); } } void CustomFiberThread::MoveObjectWest() { if (DoesObjectExist(lastobj)) { lastobj = objSpawned[listView - 1]; PrintStringWithLiteralStringNow("STRING", "Moving object West",7500,1); f32 x, y, z; GetObjectCoordinates(lastobj, &x, &y, &z); ClearRoomForObject(lastobj); SetObjectCoordinates(lastobj, x + navobjSpeed, y, z); } if (!DoesObjectExist(lastobj)) { PrintStringWithLiteralStringNow("STRING", "Object does not exist. Cannot move West",7500,1); } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// GAME SWITCHES ////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// Hovering/Digging starts here void CustomFiberThread::HoveringControl() { hoveringControl = hoveringControl + 1; if (hoveringControl > 4180) { hoveringControl = 1; // don't overflow pointer buffer (wrap around) } sprintf_s(temp3,300,"Hovering rate: %i" , hoveringControl); PrintStringWithLiteralStringNow("STRING", temp3, 7500, 1); } void CustomFiberThread::ChangeWalkorSwimRate_Forward() { travSpeed = travSpeed + 1; if (travSpeed > 990000) { travSpeed = 1; // don't overflow pointer buffer (wrap around) } sprintf_s(temp3,300,"Increase swim rate: %i" , travSpeed); PrintStringWithLiteralStringNow("STRING", temp3, 7500, 1); } void CustomFiberThread::ChangeWalkorSwimRate_Backward() { travSpeed = travSpeed - 1; if (travSpeed < -990000) { travSpeed = 990000; } sprintf_s(temp3,300,"Decrease walk rate: %i" , travSpeed); PrintStringWithLiteralStringNow("STRING", temp3, 7500, 1); } void CustomFiberThread::NumpadSwitch() { numFlag = 1; isNumPadActive = !isNumPadActive; SetNetworkIdExistsOnAllMachines(netid, true); const ch* displayString = (isNumPadActive ? "NUMPAD Keys are ON" : "Numpad Keys are OFF"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); } void CustomFiberThread::FloatingAbility() { floatActive=1; Ped ped = GetPlayerPed(); f32 gravity; f32 x, y, z; GetCharCoordinates(ped, &x, &y, &z); GetCharHeightAboveGround(ped, &gravity); isFloating = !isFloating; SetCharGravity(ped, isFloating); const ch* displayString = (isFloating ? "Floating Off" : "Floating On"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); } void CustomFiberThread::ChangeObjectSpeed() { navobjSpeed = navobjSpeed + 1; if (navobjSpeed > 1024) { navobjSpeed = 1; } sprintf_s(str7,300,"Object speed: %i" , navobjSpeed); PrintStringWithLiteralStringNow("STRING", str7, 7500, 1); } void CustomFiberThread::ResetHoveringControl() { hoveringControl = 1; sprintf_s(temp3,300,"Hovering rate has been reset %i" , hoveringControl); PrintStringWithLiteralStringNow("STRING", temp3, 7500, 1); } void CustomFiberThread::ResetObjectSpeed() { navobjSpeed = 1; sprintf_s(mes1, 300,"Resetting object speed: %i" , navobjSpeed); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } void CustomFiberThread::ResetVehicleSpeed() { vehSpeed = 1; sprintf_s(mes1, 300,"Resetting vehicle speed: %i" , vehSpeed); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } void CustomFiberThread::FreezeCharMode() { f32 x, y, z; Ped ped = GetPlayerPed(); isPlayerFrozen = !isPlayerFrozen; GetCharCoordinates(ped, &x, &y, &z); const ch* displayString = (isPlayerFrozen ? "Freeze Mode is On" : "Freeze Mode is Off"); FreezeCharPositionAndDontLoadCollision(ped, true); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); } void CustomFiberThread::HeliSpeedCheat() { if (vehicleNum > 0) { heliSpeed++; if (heliSpeed > 9000) //12 { heliSpeed = 0; // 1 } lastcar = vehSpawned[listVehView - 1]; ActivateHeliSpeedCheat(lastcar, heliSpeed); SetHeliBladesFullSpeed(lastcar); SetRocketLauncherFreebieInHeli(lastcar); sprintf_s(mes1, 300,"Changing the helicopter speed: %i" , heliSpeed); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } else if (vehicleNum < 0) { PrintStringWithLiteralStringNow("STRING", "You are currently not in a vehicle", 1000, 1); } } void CustomFiberThread::GTAFunctionViewer() { isFunctionViewActive = !isFunctionViewActive; const ch* displayString = (isFunctionViewActive ? "Function View On" : "Function View Off"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); } void CustomFiberThread::Relationship_Toggle() { isRelationship = !isRelationship; const ch* displayString = (isRelationship ? "Relationship Off" : "Relationship On"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); } void CustomFiberThread::MouseSetup() { //f32 pX, pY; GetMousePosition(&px, &py); f32 sX=0.1; f32 sY=0.2; if(GetAsyncKeyState(VK_LBUTTON)) { if((px < window1x+sX) && (px > window1x- sX) && (py < window1y+sY) && (py > window1y-sY)) { window1y=py; window1x=px; } } DrawRect(window1x,window1y, sX, sY, 0, 0, 0, 200); SetTextColour(255, 255, 0, 255); DrawRect(px, py, .005, .01, 255, 255, 0, 255); // mouse cursor HideHUDAndRadarThisFrame(); PrintStringWithLiteralStringNow("STRING", "Testing the mouse", 1000, 1); } void CustomFiberThread::MenuMouseInProcess() { //CreateGravGun(); MouseSetup(); //f32 px, py; GetMousePosition(&px, &py); DrawRect(px, py, .0055, .0055, 255, 255, 0, 255); KeyCheck(); //if (mcurL != mprevL) // menu logic //{ //mprevL = mcurL; //if(mcurL) //MenuExec(menuItem); //} if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.060) && (py > menuyoff+.045)) { menuItem=1; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.075) && (py > menuyoff+.060)) { menuItem=2; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.090) && (py > menuyoff+.075)) { menuItem=3; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.105) && (py > menuyoff+.090)) { menuItem=4; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.120) && (py > menuyoff+.105)) { menuItem=5; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.135) && (py > menuyoff+.120)) { menuItem=6; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.150) && (py > menuyoff+.135)) { menuItem=7; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.165) && (py > menuyoff+.150)) { menuItem=8; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.180) && (py > menuyoff+.165)) { menuItem=9; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.195) && (py > menuyoff+.180)) { menuItem=10; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.210) && (py > menuyoff+.195)) { menuItem=11; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.225) && (py > menuyoff+.210)) { menuItem=12; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.240) && (py > menuyoff+.225)) { menuItem=13; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.255) && (py > menuyoff+.240)) { menuItem=14; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.270) && (py > menuyoff+.255)) { menuItem=15; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.285) && (py > menuyoff+.270)) { menuItem=16; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.300) && (py > menuyoff+.285)) { menuItem=17; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.315) && (py > menuyoff+.300)) { menuItem=18; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.330) && (py > menuyoff+.315)) { menuItem=19; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.345) && (py > menuyoff+.330)) { menuItem=20; } else if((px < menuxoff+.3) && (px > menuxoff) && (py < menuyoff+.360) && (py > menuyoff+.345)) { menuItem=21; } else { menuItem=0; } sprintf_s(mes1,300,"Gravity gun coordinates %d, %d, %d" ,px, py, pz); PrintStringWithLiteralStringNow("STRING", mes1, 6000, 1); PrintStringWithLiteralStringNow("STRING", "Gravity Gun Method Test", 1000, 1); } void CustomFiberThread::CreateGravGun() { Ped ped; u32 netid; f32 x, y, z; f32 fwdspeed; f32 head, whichdir, ground; f32 fx, fy, fz, cX, cY, cZ; f32 pi, rnd, xx, yy, zz, facing; //MenuMouseInProcess(); GetCharCoordinates(GetPlayerPed(), &x, &y, &z); //CreateObjectNoOffset(MODEL_CJ_BOWLING_BALL3, bx, by, bz, &gravmarker, true); //AttachObjectToPed(gravmarker, GetPlayerPed(), (ePedBone)1232, gravcursoroff, 0, 0, 0, 0, 0, 0); //GetNetworkIdFromObject(gravmarker, &netid); //SetNetworkIdCanMigrate(gravmarker, false); //SetNetworkIdExistsOnAllMachines(netid, false); //SetObjectAlpha(gravmarker, 150); gravcar=GetClosestCar(x, y, z, 200, false, 70); //GetCarCoordinates(gravcar, &cX, &cY, &cZ); //SetCarCoordinates(gravcar, x, y, z); // new line //GetCarHeading(gravcar, &head); //SetCarHeading(gravcar, head); //gravcar=GetClosestCar(X, Y, Z, 10, false, 70); pi = 3.14159f; if(DoesVehicleExist(gravcar)) // || IsCharDead(ped) || IsCharSittingInCar(ped, gravcar)) { GetCarCoordinates(gravcar, &x, &y, &z); GenerateRandomFloatInRange(0, pi * 2.0f, &rnd); if (IsVehDriveable(gravcar)) { GetDriverOfCar(gravcar, &ped); //BlockCharGestureAnims(ped, true); //CancelCurrentlyPlayingAmbientSpeech(ped); //ClearCharTasks(ped); //SetBlockingOfNonTemporaryEvents(ped, true); //SetCharWantedByPolice(ped, true); TaskLeaveCarImmediately(ped, gravcar); //TaskCombatHatedTargetsAroundChar(ped, 100); // ped, radius //AddBlipForChar(ped, &blip); PrintStringWithLiteralStringNow("STRING", "Ejecting ped from car.", 1000, 1); } xx = x; yy = y; zz = z; GetOffsetFromCarGivenWorldCoords(gravcar, x, y, z, &xx, &yy, &zz); GetGroundZFor3DCoord(xx,yy,zz, &ground); //GetCarCharIsUsing(GetPlayerPed(), &gravcar); GetCarSpeed(gravcar, &fwdspeed); SetCarForwardSpeed(gravcar, (fwdspeed + 10 * vehSpeed)); // travelrate * vehSpeed //SetCarHeading(gravcar, head); fx = (x - xx) / 2; fy = (y - yy) / 2; fz = (z - zz) / 2; GetNetworkIdFromVehicle(gravcar, &netid); RequestControlOfNetworkId(netid); //AddBlipForCar(gravcar, &blip); OpenCarDoor(gravcar, eVehicleDoor::VEHICLE_DOOR_RIGHT_FRONT); OpenCarDoor(gravcar, eVehicleDoor::VEHICLE_DOOR_LEFT_FRONT); ApplyForceToCar(gravcar, 0, fx, fy, fz, x, y, 0, 0, 0, 0, 1); } } void CustomFiberThread::GravGunExec() { SetTextColour(255,255, 0, 255); SetTextScale(.3,.22); DisplayTextWithLiteralString(.65, .95, "STRING", "Vehicle Gun"); if(!DoesObjectExist(gravmarker)) { CreateGravGun(); } if(GetAsyncKeyState(VK_ADD)) { DetachObject(gravmarker, true); gravcursoroff++; if(gravcursoroff>0) AttachObjectToPed(gravmarker, GetPlayerPed(), (ePedBone)1232 ,gravcursoroff, 0, 0, 0, 0, 0, 0); } else if(GetAsyncKeyState(VK_SUBTRACT)) { DetachObject(gravmarker, true); gravcursoroff--; if(gravcursoroff>0) AttachObjectToPed(gravmarker, GetPlayerPed(), (ePedBone)1232 ,gravcursoroff, 0, 0, 0, 0, 0, 0); } f32 X, Y, Z, cX, cY, cZ, fx, fy, fz;; GetObjectCoordinates(gravmarker, &X, &Y, &Z); if(GetAsyncKeyState(VK_DECIMAL) || !DoesVehicleExist(gravcar)) gravcar=GetClosestCar(X, Y, Z, 10, false, 70); if(DoesVehicleExist(gravcar)) { u32 netid; if(GetAsyncKeyState(VK_NUMPAD0)) { u32 netid; GetNetworkIdFromVehicle(gravcar, &netid); RequestControlOfNetworkId(netid); SetCarCoordinates(gravcar, X, Y, Z); } else { GetNetworkIdFromVehicle(gravcar, &netid); RequestControlOfNetworkId(netid); GetCarCoordinates(gravcar, &cX, &cY, &cZ); fx = (X - cX)/ 2; fy = (Y - cY)/ 2; fz = (Z - cZ)/ 2; ApplyForceToCar(gravcar, 3, fx, fy, fz, 0, 0, 0, 1, 0, 1, 1); } } } void CustomFiberThread::NumpadKeysControlExplosions() { isNumPadControllingExp = !isNumPadControllingExp; const ch* displayString = (isNumPadControllingExp ? "Numpad Control Explosion Activated" : "Numpad Control Explosion Deactivated"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); } void CustomFiberThread::NumpadKeysControlObjects() { isNumPadControllingObj = !isNumPadControllingObj; const ch* displayString = (isNumPadControllingObj ? "Numpad Control Objects Activated" : "Numpad Control Objects Deactivated"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); } void CustomFiberThread::RemoveAllWeapons() { EnableMaxAmmoCap(true); RemoveWeaponFromChar(GetPlayerPed(), WEAPON_KNIFE); RemoveWeaponFromChar(GetPlayerPed(), WEAPON_MOLOTOV); RemoveWeaponFromChar(GetPlayerPed(), WEAPON_PISTOL); RemoveWeaponFromChar(GetPlayerPed(), WEAPON_SHOTGUN); RemoveWeaponFromChar(GetPlayerPed(), WEAPON_MICRO_UZI); RemoveWeaponFromChar(GetPlayerPed(), WEAPON_AK47); RemoveWeaponFromChar(GetPlayerPed(), WEAPON_RLAUNCHER); PrintStringWithLiteralStringNow("STRING", "Removing all weapons from inventory.",7500,1); } //****************************************************************************************************************************** ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// PLAYER OPTIONS ////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CustomFiberThread::ChangeToNewPlayer(int PlayerX) { PlayerX ++; // point at current player to be seen (increments forward) if (PlayerX > 361) { PlayerX = 0; // wrap player position to reference first item in pointer array } sprintf_s(mes1,300,"Now viewing Player: %s, %d" , pedList[PlayerX], PlayerX); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); sprintf_s(str6,300, pedList[PlayerX]); ChangePlayerSkin(GetModelHash(str6)); } void CustomFiberThread::DetermineIfGodmode() { Ped ped = GetPlayerPed(); Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); //GetCharCoordinates(ped, &x, &y, &z); // may add this line SetCharCantBeDraggedOut(ped, true); SetCharWeaponSkill(ped, 1900); SetCharFireDamageMultiplier(ped, 300.2); SetPlayerNeverGetsTired(playerIndex, true); SetCharProofs(GetPlayerPed(), true, true, true, true, true); // new line //ResetCarWheels(lastcar, true); isInvincible = !isInvincible; SetPlayerInvincible(GetPlayer(), isInvincible, 1); //AddArmourToChar(GetPlayerPed(), 1000); const ch* displayString = (isInvincible ? "Invincibility On" : "Invincibility Off"); SetCharStayInCarWhenJacked(ped, true); //SetDontActivateRagdollFromPlayerImpact(ped, true); // new item (edited out) PrintStringWithLiteralStringNow("STRING", displayString,7500,1); } void CustomFiberThread::RestorePlayerHealth() { SetCharHealth(GetPlayerPed(), 1000); AddArmourToChar(GetPlayerPed(), 1000); ExtinguishCharFire(GetPlayerPed()); PrintStringWithLiteralStringNow("STRING", "Curing Player's health", 7500, 1); } void CustomFiberThread::WeaponsLoadedSetOne() { EnableMaxAmmoCap(false); GiveWeaponToChar(GetPlayerPed(),WEAPON_KNIFE,1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_MOLOTOV,1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_PISTOL,1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_SHOTGUN, 1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_MICRO_UZI, 1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_AK47,1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_RLAUNCHER, 1000,0); PrintStringWithLiteralStringNow("STRING", "Loading Weapons Set One",7500,1); } void CustomFiberThread::WeaponsLoadedSetTwo() { EnableMaxAmmoCap(false); GiveWeaponToChar(GetPlayerPed(),WEAPON_BASEBALLBAT,1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_GRENADE, 1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_DEAGLE,1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_BARETTA, 1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_MP5,1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_M4, 1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_SNIPERRIFLE,1000,0); GiveWeaponToChar(GetPlayerPed(),WEAPON_RLAUNCHER, 1000,0); PrintStringWithLiteralStringNow("STRING", "Loading Weapons Set Two",7500,1); } void CustomFiberThread::RemoveWantedLevel() { ClearWantedLevel(GetPlayer()); PrintStringWithLiteralStringNow("STRING", "Cops won't bother you now", 7500, 1); } void CustomFiberThread::IncreasePlayerMoney() { sprintf_s(str3,100,"Increase player's financial status"); PrintStringWithLiteralStringNow("STRING", str3, 7500, true); // this will make it appear in the top left part of the screen AddScore(GetPlayer(), 9999); } void CustomFiberThread::SetupRelationships() { Ped rioter; f32 x,y,z; SetRelationship(5,8,0); // Rioters hate themselves GetCharCoordinates(rioter, &x, &y, &z); if ((GetClosestChar(x, y, z, 15, 40, 1, &rioter)) == true) { if(isRelationship==true) { SetRelationship(5,8,0); // Rioters hate player (you) SetPlayerCanBeHassledByGangs(GetPlayer(), true); PrintStringWithLiteralStringNow("STRING", "You are a walking victim for gangs.",7500,1); } else { SetRelationship(1,8,0); // Rioters ignore player (you) } } SetRelationship(5,8,3); // Rioters hate cops SetRelationship(5,3,8); // Cops hate rioters } void CustomFiberThread::PlayerIsInvisible() { Ped ped = GetPlayerPed(); SetNetworkIdExistsOnAllMachines(netid, true); isPlayerVisible = !isPlayerVisible; const ch* displayString = (isPlayerVisible ? "Invisibility Off" : "Invisibility On"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); SetCharVisible(ped, isPlayerVisible); } void CustomFiberThread::AttachPedToVehicle() { Vehicle vehicle; Ped ped = GetPlayerPed(); f32 x,y,z; GetCharCoordinates(GetPlayerPed(), &x, &y, &z); closestCar = GetClosestCar(x, y, z, 50.0f, 0, 70); if(DoesVehicleExist(closestCar)) { isPedAttachedToCar = !isPedAttachedToCar; const ch* displayString = (isPedAttachedToCar ? "Ped is glued to Car" : "Ped is not glued to Car"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); //f32 x1,y1,z1,x2,y2,z2,dist,height; //GetCarCoordinates(closestCar,&x1,&y1,&z1); //GetCharCoordinates(ped,&x2,&y2,&z2); //GetDistanceBetweenCoords2D(x1, y1, x2, y2, &dist); //GetCharHeightAboveGround(ped, &height); //SwitchPedToRagdoll(ped, 10000, 5000, x, y, z, 0); if (!isPedAttachedToCar) { AttachPedToCar(ped, closestCar, 0, 0, 0, z+17, 276, 0, 0, 0); } else if (isPedAttachedToCar) { DetachPed(ped, true); DetachPedFromWithinCar(ped, true); MarkCarAsNoLongerNeeded(&closestCar); } } //} } void CustomFiberThread::GravitySelector() { isGravityOn = !isGravityOn; SetGravityOff(isGravityOn); const ch* displayString = (isGravityOn ? "Gravity is On" : "Gravity is Off"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); } void CustomFiberThread::WeaponSetNonStandard() { GiveWeaponToChar(GetPlayerPed(), WEAPON_POOLCUE, 1000, 0); PrintStringWithLiteralStringNow("STRING", "Loading Weapon Poolcue",7500,1); } void CustomFiberThread::ExecuteYourPlayer() { f32 x, y, z; Ped ped = GetPlayerPed(); GetCharCoordinates(ped, &x, &y, &z); ExplodeCharHead(ped); if (HasDeathArrestExecuted()) { FakeDeathArrest(); } PrintStringWithLiteralStringNow("STRING","Killing your Player", 6500, true); } void CustomFiberThread::DumbCopsControl() { isStupidCopsOn = !isStupidCopsOn; SetPoliceIgnorePlayer(GetPlayer(), isStupidCopsOn); const ch* displayString = (isStupidCopsOn ? "Stupid Cops is On" : "Stupid Cops is Off"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); } void CustomFiberThread::IncreaseShootRate() { f32 x, y, z; Ped ped = GetPlayerPed(); GetCharCoordinates(ped, &x, &y, &z); shootRate+=50; if (shootRate > 999999) { shootRate = 1; } SetCharShootRate(ped, shootRate); sprintf_s(mes1,300,"Increasing the shooting(skill) rate %i" ,shootRate); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } void CustomFiberThread::DecreaseShootRate() { f32 x, y, z; Ped ped = GetPlayerPed(); GetCharCoordinates(ped, &x, &y, &z); shootRate-=50; if (shootRate < -999999) { shootRate = 0; } SetCharShootRate(ped, shootRate); sprintf_s(mes1,300,"Decreasing the shooting rate %i" ,shootRate); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } void CustomFiberThread::CharShootRate() { Ped ped = GetPlayerPed(); shootRate = 0; SetCharWeaponSkill(ped, shootRate); // SetCharShootRate(ped, shootRate); PrintStringWithLiteralStringNow("STRING", "Resetting the shoot rate.", 7500, 1); } void CustomFiberThread::CharAccuracy() { Ped ped = GetPlayerPed(); shootRate = 0; SetCharAccuracy(ped, shootRate); sprintf_s(mes1,300,"Setting the firing accuracy rate %i" ,shootRate); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } void CustomFiberThread::FireBullet() { f32 x,y,z; Vehicle theCar; Ped ped = GetPlayerPed(); GetCharCoordinates(ped, &x, &y, &z); FireSingleBullet(x, y, z,APFPedx, APFPedy, APFPedz, CarRadius); theCar=GetClosestCar(x, y, z, CarRadius, 1, 1); // Increase the ShootRate to get ApplyForce to work if(DoesVehicleExist(theCar)&& private_menu==true) { ApplyForceToCar(theCar, true, x, y, z, APFCarx, APFCary, APFCarz, true, true, true, true); } PrintStringWithLiteralStringNow("STRING", "Firing bullets", 7500, 1); } void CustomFiberThread::ChangeVehicleSpeed() { vehSpeed = vehSpeed + 1; // vehSpeed = vehSpeed + 10; if (vehSpeed > 9000) // vehSpeed > 3000 { vehSpeed = 1; // wrap around } sprintf_s(str7,300,"Vehicle speed: %d" , vehSpeed); PrintStringWithLiteralStringNow("STRING", str7, 7500, 1); } void CustomFiberThread::ActivateRagdoll() { Ped ped = GetPlayerPed(); f32 x, y, z; //f32 px,py,pz; //f32 spinx,spiny,spinz; GetCharCoordinates(ped, &x, &y, &z - 12); zz = zz + 1; if (!IsPedRagdoll(ped)) { f32 spinx, spiny, spinz; GetCharCoordinates(ped, &spinx, &spiny, &spinz - 12); SwitchPedToRagdoll(ped, 10000, 5000, 2, 1, 1, 0); ApplyForceToPed(ped,3,x,y,z,spinx,spiny,spinz + .5,0,1,1,1); /////SwitchPedToRagdoll(ped, 10000, 5000, 2, 10000, 20000, 1); // worked b4 //GivePlayerRagdollControl(ped, true); //SetDontActivateRagdollFromPlayerImpact(ped, true); //SwitchPedToRagdollWithFall(ped ,1, 0, 0, -20, 0, 0, 0, 17, 1, 1, 1, 0, 1, 1); PrintStringWithLiteralStringNow("STRING", "Activating Ragdoll",7500,1); } } void CustomFiberThread::GoThroughDoors() { Ped playerped; f32 heading; f32 x,y,z, pOffX, pOffY, pOffZ, ground; GetCharCoordinates(GetPlayerPed(), &x, &y, &z + 5); pOffX = x; pOffY = y; pOffZ = z; GetOffsetFromCharInWorldCoords(GetPlayerPed(), 0, 2, -1, &pOffX, &pOffY, &pOffZ); GetGroundZFor3DCoord(pOffX,pOffY,pOffZ, &ground); SetCharCoordinates(GetPlayerPed(), pOffX, pOffY, pOffZ); sprintf_s(mes1,300,"Player move coordinates %d, %d, %d" ,pOffX, pOffY, pOffZ); PrintStringWithLiteralStringNow("STRING", mes1, 6000, 1); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// VEHICLE OPTIONS ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CustomFiberThread::ForwardThruCarList() { carObjectX +=1; // point at current vehicle to be seen (increments thru a pointer array) if (carObjectX > crange) { carObjectX = 0; // wrap vehicle position to reference first item in pointer array } savecarObjectX = carObjectX; // store vehicle count position for later retrieval sprintf_s(mes1,300,"Found vehicle %s, number: %d, total spawned: %d" ,carmod[carObjectX], carObjectX, vehicleNum); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::BackwardThruCarList() { carObjectX -=1; // point at current vehicle to be seen (increments thru a pointer array) if (carObjectX < 0) { carObjectX = crange; // wrap vehicle position to reference first item in pointer array } savecarObjectX = carObjectX; // store vehicle count position for later retrieval sprintf_s(mes1,300,"Found vehicle %s, number: %d, total spawned: %d" ,carmod[carObjectX], carObjectX, vehicleNum); PrintStringWithLiteralStringNow("STRING", mes1, 9000, 1); } void CustomFiberThread::SpawnaVehicle(int vehtype) { lastcar = vehSpawned[vehicleNum]; if (vehtype < 1) // if carObjectX=-1 then remember saved value; { carObjectX = savecarObjectX; // earlier saved value is now in memory } else if (vehtype > 0) { carObjectX = vehtype; // use this for the Vehicle Spawned(list) } sprintf_s(str5,300,carmod[carObjectX]); SpawnGlobal(GetModelHash(str5), 1); vehicleNum++; // track how many cars have been spawned maxVehicles++; if(DoesVehicleExist(lastcar)) { WarpCharIntoCar(GetPlayerPed(), lastcar); } /* if(!IsCharInAnyCar(GetPlayerPed())) { GetDriverOfCar(lastcar, &driver); PrintStringWithLiteralStringNow("STRING", "Player warped into a car", 7500,1); Vehicle vehicle; GetCarCharIsUsing(GetPlayerPed(), &lastcar); if(IsCarPassengerSeatFree(lastcar,0)) TaskWarpCharIntoCarAsPassenger(GetPlayerPed(), vehicle, 0); } */ sprintf_s(mes1,300,"Now spawning Vehicle %i, number: %s, total spawned: %i" ,vehicleNum, carmod[carObjectX], vehicleNum); PrintStringWithLiteralStringNow("STRING", mes1, 9900, 1); SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.38f, .095f, "STRING", carmod[ObjectX]); listVehView = vehicleNum; spawnedListVeh[vehicleNum] = carmod[carObjectX]; //delete spawnedListVeh[vehicleNum]; Ped ped = GetPlayerPed(); SetCharWillFlyThroughWindscreen(ped, 0); } void CustomFiberThread::GodCar() { if (IsCharInAnyCar(GetPlayerPed())) { Vehicle vehicle; GetEngineHealth(lastcar); SetEngineHealth(lastcar, 21500); GetCarCharIsUsing(GetPlayerPed(), &lastcar); SetCharWillFlyThroughWindscreen(GetPlayerPed(), 0); SetCharCanBeKnockedOffBike(GetPlayerPed(), 0); SetCharCanBeShotInVehicle(GetPlayerPed(), 0); SetCharCantBeDraggedOut(GetPlayerPed(), true); SetCanBurstCarTyres(lastcar, false); // new line //SetCarProofs(vehicle, true, true, true, true, true); //SetIgnoreLowPriorityShockingEvents(GetPlayerPed(), true); //SetCharSuffersCriticalHits(GetPlayerPed(), false); SetCarCanBeVisiblyDamaged(lastcar, false); SetCarStrong(lastcar, true); //ResetCarWheels(vehicle, true); //SetCarCollision(vehicle, true); //MarkCarAsConvoyCar(vehicle, true); //ClearCarLastDamageEntity(lastcar); if (IsCarOnFire(lastcar)) { ExtinguishCarFire(lastcar); } PrintStringWithLiteralStringNow("STRING", "Car is indestructable", 3000, true); } else if (!IsCharInAnyCar(GetPlayerPed())) { PrintStringWithLiteralStringNow("STRING", "You must be in a vehicle first", 3000, true); } } void CustomFiberThread::RepairCar() { if (IsCharInAnyCar(GetPlayerPed())) { Vehicle vehicle; GetCarCharIsUsing(GetPlayerPed(), &lastcar); ExtinguishCarFire(lastcar); FixCar(lastcar); SetCarCanBeVisiblyDamaged(lastcar, false); PrintStringWithLiteralStringNow("STRING", "Car has been maintenanced", 3000, true); } else if (!IsCharInAnyCar(GetPlayerPed())) { PrintStringWithLiteralStringNow("STRING", "You must be in a vehicle first", 3000, true); } } //int i; //char aPointer[] = "I love earth and all its creatures."; //char *pCarrier[sizeof(aPointer)]; //for (i = 0; i < sizeof(aPointer); i++) //pCarrier[i] = &aPointer[i]; //cout << *pCarrier; //return 0; void CustomFiberThread::ViewPlayerCoordinates() { Ped playerped; GetPlayerChar(player, &playerped); f32 x, y, z; GetCharCoordinates(playerped, &x, &y, &z); char temp0[300]; SetTextColour(255, 100, 0, 255); sprintf_s(temp0, 300,"Player Coordinates:" , x, y, z); SetTextScale(.1f, .25f); DisplayTextWithLiteralString(.010f, .980f, "STRING", temp0); sprintf_s(temp0, 300,"%f,%f,%f" , x, y, z); SetTextColour(255, 255, 0, 255); // green text SetTextScale(.1f, .25f); DisplayTextWithLiteralString(.066f, .980f, "STRING", temp0); const char* objString = objmod[ObjectX]; // save current object string. Example "CJ_TANKER" saveObjString = objString; // stored saved string in a char pointer } void CustomFiberThread::ExplodeVehicleInVicinity() { PrintStringWithLiteralStringNow("STRING", "Exploding closest car within proximity of player",7500,1); f32 x,y,z; GetCharCoordinates(GetPlayerPed(), &x, &y, &z); closestCar = GetClosestCar(x, y, z, CarRadius, 0, 70); if(DoesVehicleExist(closestCar)) { ExplodeCar(closestCar, 1, 0); MarkCarAsNoLongerNeeded(&closestCar); } } void CustomFiberThread::FlipVehicle() { Ped ped; Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); GetPlayerChar(playerIndex, &ped); if (IsCharInAnyCar(ped)) { Vehicle vehicle; GetCarCharIsUsing(ped, &vehicle); FixCar(vehicle); SetCarOnGroundProperly(vehicle); PrintStringWithLiteralStringNow("STRING", "Flipped vehicle right side up", 1000, 1); } else if (!IsCharInAnyCar(ped)) { PrintStringWithLiteralStringNow("STRING", "You are currently not in a vehicle", 1000, 1); } } void CustomFiberThread::CarIsInvisible() { lastcar = vehSpawned[listVehView - 1]; if (vehicleNum > 0) { Vehicle vehicle; isVehicleVisible = !isVehicleVisible; SetNetworkIdExistsOnAllMachines(netid, true); const ch* displayString = (isVehicleVisible ? "Car Invisible Mode On" : "Car Invisible Mode Off"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); GetCarCharIsUsing(GetPlayerPed(), &vehicle); SetCarVisible(lastcar, isVehicleVisible); } } void CustomFiberThread::ActiveSpawnedVehicle() { // objSpawned[listVehView] = lastobj; if (vehicleNum > 0) { listVehView++; // point at current object to be seen carmod[carObjectX], cycle through saved carmod[x] array list //if (listVehView > maxVehicles) // maxVehicle = don't change this value so we can always scroll thru the VehModel[] list //{ // listVehView = 1; // loop back to point at the first item in the Active Spawned List //} // std::vector chkdeletedCar; for (int i = 1; i < maxVehicles+1; i++) { if (listVehView > maxVehicles) // maxVehicle = don't change this value so we can always scroll thru the VehModel[] list { listVehView = 1; // loop back to point at the first item in the Active Spawned List } if (vehModel[listVehView] < 0) // if we found a deleted vehicle skip the vehicle display "*** deleted ***" listVehView++; //if (listVehView > maxVehicle) // maxVehicle = don't change this value so we can always scroll thru the VehModel[] list //{ // listVehView = 1; // loop back to point at the first item in the Active Spawned List //} } sprintf_s(mes1,300,"Now viewing vehicle: %i, %s, %i" , listVehView, spawnedListVeh[listVehView], vehSpawned[listVehView-1], maxVehicles); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); // spawnedListVeh[listVehView+1 } else if (vehicleNum < 1) { PrintStringWithLiteralStringNow("STRING", "No spawned vehicles to view yet", 7500, 1); } saveObjString++; // stringSize; // cycle through each memory object } void CustomFiberThread::DeleteVehicle() { lastcar = vehSpawned[listVehView - 1]; // -1 if (DoesVehicleExist(lastcar)) { if (vehicleNum > 0) // one or more vehicles have been spawned { vehModel[listVehView] = -1; // set each deleted car number to determine which model we don't need to view anymore spawnedListVeh[listVehView]= "** deleted **"; //delete spawnedListVeh[listVehView]; //using namespace std; //vector chkdeletedCar; //chkdeletedCar.push_back["cat"]; DeleteCar(&lastcar); sprintf_s(mes1,300,"Deleting vehicle number: %i, %s, %d, %i" , listVehView, spawnedListVeh[listVehView],vehSpawned[listVehView -1], vehModel[listVehView]); PrintStringWithLiteralStringNow("STRING", mes1, 11500, 1); vehicleNum--; // track how many vehicles have been deleted if (vehicleNum < 1) { vehicleNum = 0; listVehView=0; maxVehicles=0; } } } else if (vehicleNum < 1) { PrintStringWithLiteralStringNow("STRING", "Cannot delete a vehicle you haven't yet spawned",7500,1); } } void CustomFiberThread::VehicleSpeedForward() { vehSpeed = vehSpeed + 10; if (vehSpeed > 65000) { vehSpeed = 1; } sprintf_s(str7,300,"Vehicle forward speed accelerator: %d" , vehSpeed); PrintStringWithLiteralStringNow("STRING", str7, 7500, 1); } void GTAStart::FreezeCarInAir() { Ped ped; Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); GetPlayerChar(playerIndex, &ped); if(IsCharInAnyCar(ped)) { Vehicle vehicle; GetCarCharIsUsing(ped, &vehicle); f32 x,y,z; int above = 1; f32 head; GetCarForwardX(vehicle, &x); GetCarForwardY(vehicle, &y); GetCarCoordinates(vehicle, &x, &y, &z); // SetCarCoordinates(vehicle, x+freezemoveCarx, y+freezemoveCary, z+freezemoveCarz); SetCarCoordinates(vehicle, x, y, z); // new line //SetCarCoordinates(vehicle, x, y, z); GetCarHeading(vehicle, &head); SetCarHeading(vehicle, head); // GetCarPitch(Vehicle vehicle, f32 *pValue) // GetCarRoll(Vehicle vehicle, f32 *pValue) FreezeCarPosition(vehicle, 0); FreezeCarPositionAndDontLoadCollision(vehicle, true); // new line //ApplyForceToCar(vehicle, 0, freezemoveCarx, freezemoveCary, freezemoveCarz, x, y, z, 0, 0, 0, 1); // changed this line ApplyForceToCar(vehicle, 0, x, y, z+.1, x, y, z+.1, 0, 0, 0, 1); // changed this line //Wait(50); FreezeCarPosition(vehicle, 1); PrintStringWithLiteralStringNow("STRING", "Applying force to car", 7500, 1); } } void CustomFiberThread::UnFreezeCarInAir() { Ped ped; f32 x,y,z; Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); GetPlayerChar(playerIndex, &ped); if(IsCharInAnyCar(ped)) { Vehicle vehicle; GetCarCharIsUsing(ped, &vehicle); GetCarCoordinates(vehicle, &x, &y, &z); FreezeCarPosition(vehicle, 0); //ApplyForceToCar(vehicle, 3, freezemoveCarx, freezemoveCary, freezemoveCarz, 0, 0, 0, 0, 0, 0, 1); PrintStringWithLiteralStringNow("STRING", "Unfreezing this car", 7500, 1); } } void CustomFiberThread::CloseCarDoors() { if(IsCharInAnyCar(GetPlayerPed())) { Vehicle vehicle; GetCarCharIsUsing(GetPlayerPed(), &vehicle); CloseAllCarDoors(vehicle); PrintStringWithLiteralStringNow("STRING", "Closing all car doors", 9500, 1); } } void CustomFiberThread::CarNeons() { if (IsCharInAnyCar(GetPlayerPed())) { Vehicle vehicle; f32 x, y, z; GetCarCharIsUsing(GetPlayerPed(), &vehicle); GetCharCoordinates(GetPlayerPed(), &x, &y, &z); //eModel curObj = GetModelHash(carmod[carObjectX]); eModel neon = GetModelHash(objNeons[neonObjectX]); //eModel neon= GetModelHash("BM_air_landlites03"); Object neon0; CreateObject(neon, x, y, z, &neon0, true); AttachObjectToCar(neon0, vehicle, 0, 0, 0, .5, 0, 3.15, 0); //storage[capacity]=fire0; //capacity++; neonObjectX++; sprintf_s(str5,300,objNeonColorType[neonObjectX]); //sprintf_s(str5,300,objNeonColorType[neonObjectX]); PrintStringWithLiteralStringNow("STRING", str5, 3000, true); //objNeonColorType neonObjectX++; if (neonObjectX > 2) { neonObjectX = 0; // wrap vehicle position to reference first item in pointer array } } } void CustomFiberThread::ApplyingForceToVehicle() { Vehicle theCar; Object pObj; f32 x,y,z; f32 cx,cy,cz,dir; Ped mePlayer = GetPlayerPed(); Ped closeped = GetPlayerPed(); GetCharCoordinates(mePlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); theCar=GetClosestCar(x, y, z, CarRadius, 1, 1); // Increase the ShootRate to get ApplyForce to work if(DoesVehicleExist(theCar)) { GetCarCoordinates(theCar, &cx, &cy, &cz); GetAngleBetween2DVectors(cx, cy, x, y, &dir); SetCarHeading(theCar, remoteCarDir); SetCarForwardSpeed(theCar, 50.0f); FreezeCarPosition(theCar, 0); ApplyForceToCar(theCar, true, x, y, z, x+APFCarx, y+APFCary, z+APFCarz, true, true, true, true); if (isCarExploding) { ExplodeCar(theCar, isCarExploding, 0); } PrintStringWithLiteralStringNow("STRING", "Applying force to cars in range", 5500, 1); GetClosestChar(x, y, z, shootRate, true, true, &closeped); } if(DoesObjectExist(pObj)) { ApplyForceToObject(pObj, 1, x, y, z, APFCarx, APFCary, APFCarz, CarRadius, 1, 1, 1); //just4fun :) PrintStringWithLiteralStringNow("STRING", "Applying force to object in range", 5500, 1); } } void CustomFiberThread::SpawnEmergencyVehicle() { Vehicle vehicle; GetCarCharIsUsing(GetPlayerPed(), &vehicle); AllowEmergencyServices(true); eModel model = MODEL_AMBULANCE; if(!modelRequested) { RequestModel(model); modelRequested=true; } if(HasModelLoaded(model)) { Ped ped = GetPlayerPed(); f32 x,y,z; GetCharCoordinates(ped, &x, &y, &z); CreateEmergencyServicesCar(model, x, y, z); SpawnGlobal(model, 1); } PrintStringWithLiteralStringNow("STRING", "Spawning an emergency vehicle.", 3000, true); } // This was a mod found online somewhere. It spawns an auto car that drives very quickly into // nearby pedestrians. I modified it to control a spawning area for North, South, East, West // This is controlled by the SetCarHeading(vehicle, remoteCarDir) native. // The remoteCarDir can be turned N,S,E,W. void CustomFiberThread::CrashCarsIntoPeds() { eModel model = MODEL_COMET; RequestModel(model); while(!HasModelLoaded(model)) { Wait(0); } LogInfo("Car model available... spawning it!"); Ped ped = GetPlayerPed(); Vehicle vehicle; f32 x,y,z,xx,yy,zz,cX,cY,cZ,dir,rnd,pi; pi = 3.14159f; GetCharCoordinates(ped, &x, &y, &z); GenerateRandomFloatInRange(0, pi * 2.0f, &rnd); xx = sin(rnd)*20; yy = cos(rnd)*20; zz = sin(rnd) * 250; // CreateCar(model, x + xx, y + yy, z+zz, &vehicle, true); CreateCar(model, x, y, z + zz, &vehicle, true); GetCarCoordinates(vehicle, &cX, &cY, &cZ); GetAngleBetween2DVectors(cX, cY, x, y, &dir); //SetCarHeading(vehicle, dir); SetCarHeading(vehicle, remoteCarDir); SetCarForwardSpeed(vehicle, 50.0f); MarkModelAsNoLongerNeeded(model); //sprintf_s(mes1,300,"Increasing value pedX %i" ,PedZ); PrintStringWithLiteralStringNow("STRING", "Crashing cars into peds", 7500, 1); } // This functions control what direction the automated spawned car with drive toward void CustomFiberThread::IncreaseCarRemoteDir() { remoteCarDir +=1; // point at current vehicle to be seen (increments thru a pointer array) if (remoteCarDir > 4) { remoteCarDir = 0; // wrap vehicle position to reference first item in pointer array } if (remoteCarDir==1) { sprintf_s(mes1,300,"Increase remote direction West: %d" ,remoteCarDir); } if (remoteCarDir==2) { sprintf_s(mes1,300,"Increase remote direction East: %d" ,remoteCarDir); } if (remoteCarDir==3) { sprintf_s(mes1,300,"Increase remote direction South: %d" ,remoteCarDir); } if (remoteCarDir==4) { sprintf_s(mes1,300,"Increase remote direction North: %d" ,remoteCarDir); } PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::DecreaseCarRemoteDir() { remoteCarDir -=1; // point at current vehicle to be seen (increments thru a pointer array) if (remoteCarDir < 0) { remoteCarDir = 4; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Decrease remote direction: %d" ,remoteCarDir); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::ReviveDeadCar() // crashed on 8/12/10 { // Later try to setup a FreezeCarPosition(Vehicle vehicle, b8 frozen) option Vehicle deadcar; f32 vx,vy,vz; eVehicleDoor door; eVehicleLights lights; u32 pvalue; GetCharCoordinates(GetPlayerPed(), &vx, &vy, &vz); //GetCarCoordinates(deadcar, &vx, &vy, &vz); deadcar = GetClosestCar(vx, vy, vz, 15, CarRadius, 70); //Vehicle deadcar = GetClosestCar(vx, vy, vz, 15, CarRadius, 70); if (DoesVehicleExist(deadcar)) { //closestCar = GetClosestCar(vx, vy, vz, 15, CarRadius, 70); if (IsCarDead(deadcar)) { GetDeadCarCoordinates(deadcar, &vx, &vy, &vz); FixCar(deadcar); GetEngineHealth(deadcar); SetEngineHealth(deadcar,100); SetCarEngineOn(deadcar, 1, 1); // new line SetCarCanBeDamaged(deadcar, false); SetVehHazardLights(deadcar, true); GetCarHealth(deadcar, &pvalue); SetCarHealth(deadcar, 100); ClearCarLastDamageEntity(deadcar); ExtinguishCarFire(deadcar); //OpenCarDoor(deadcar, eVehicleDoor::VEHICLE_DOOR_RIGHT_FRONT); //OpenCarDoor(deadcar, eVehicleDoor::VEHICLE_DOOR_LEFT_FRONT); ForceVehicleLights(deadcar, eVehicleLights::VEHICLE_LIGHTS_0); // new line PrintStringWithLiteralStringNow("STRING", "Reviving damaged vehicle",7500,1); } if(DoesVehicleExist(deadcar)) { PrintStringWithLiteralStringNow("STRING", "There's isn't a damaged vehicle here",7500,1); } } } void CustomFiberThread::ChangeCarColor() { if (DoesVehicleExist(lastcar)) { if (IsCharInAnyCar(GetPlayerPed())) { carColor++; if (carColor > 255) { carColor = 0; } Vehicle vehicle; GetCarCharIsUsing(GetPlayerPed(), &vehicle); SetCarColourCombination(lastcar, carColor); sprintf_s(mes1, 300,"Changing car color: %i" , carColor); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } } else if (!IsCharInAnyCar(GetPlayerPed())) { PrintStringWithLiteralStringNow("STRING", "You must be in a vehicle first", 3000, true); } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// TELEPORT LIST ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CustomFiberThread::ForwardthruTeleportList() { telFlag = 1; // Set to first display the "None" message for Teleporter Display tCounter +=3; // point at current object to be seen (increments forward) TeleNamecntr++; // increment thru TelName[TeleNamecntr] - Teleport Location name list if (TeleNamecntr > 64) // >51+9 TelName[TeleNamecntr] Example - "Alderney Party Mode" { TeleNamecntr = 0; // TelName[TeleNamecntr] Example - "Algonquin Middle park safehouse" tCounter = 0; // pointer array teleport[] - Example 98.4826, 852.1058, 45.0510, 891.4139, -499.3775 } sprintf_s(str8,300,"Teleport location: %s, %d" , TelName[TeleNamecntr],TeleNamecntr); // TeleNamecntr-2 (orig) PrintStringWithLiteralStringNow("STRING", str8, 7500, 1); // New lines added below (testing) SetTextColour(255, 80, 90, 255); SetTextScale(.9f,.22f); DisplayTextWithLiteralString(.29f, .065f, "STRING", "Now teleporting..."); } void CustomFiberThread::BackwardthruTeleportList() { telFlag = 1; tCounter -=3; // point at current object to be seen (increments forward) TeleNamecntr--; // increment to next teleport name location display if (TeleNamecntr < 0) // <0 TelName[TeleNamecntr] Example - "Algonquin Middle park safehouse" { TeleNamecntr = 64; // TelName[TeleNamecntr] Example - "Alderney Party Mode" tCounter = 192; // pointer array teleport[] - Example 98.4826, 852.1058, 45.0510, 891.4139, -499.3775 } sprintf_s(str8,300,"Teleport location: %s, %d" , TelName[TeleNamecntr],TeleNamecntr); //TeleNamecntr-2 (orig) PrintStringWithLiteralStringNow("STRING", str8, 7500, 1); // New lines added below (testing) SetTextColour(0, 100, 225, 255); SetTextScale(.11f,.25f); DisplayTextWithLiteralString(.29f, .065f, "STRING", "Now teleporting..."); } void CustomFiberThread::TeleporterActive() { Ped playerped; GetPlayerChar(player, &playerped); f32 x, y, z; GetCharCoordinates(playerped, &x, &y, &z); sprintf_s(str8,300,"Teleported to: %s, %f, %f, %f" , TelName[TeleNamecntr],x,y,z); PrintStringWithLiteralStringNow("STRING", str8, 7500, 1); x = teleport[tCounter]; y = teleport[tCounter+1]; z = teleport[tCounter+2]; SetCharCoordinates(GetPlayerPed(), x, y, z); SetTextColour(255, 130, 0, 255); SetTextScale(.9f,.22f); DisplayTextWithLiteralString(.29f, .080f, "STRING", "Teleported location:"); } void CustomFiberThread::SaveLastTeleportLocation() { Ped playerped; GetPlayerChar(player, &playerped); f32 x, y, z; GetCharCoordinates(playerped, &x, &y, &z); teleportSaveX = x; teleportSaveY = y; teleportSaveZ = z; SetCharCoordinates(GetPlayerPed(), x, y, z); sprintf_s(str8,300,"Saving coordinates: %d, %d, %d" ,teleportSaveX,teleportSaveY, teleportSaveZ); PrintStringWithLiteralStringNow("STRING", str8, 9500, 1); savedTelFlag = 1; } void CustomFiberThread::ActivateSavedTeleportLocation() { Ped playerped; GetPlayerChar(player, &playerped); f32 x, y, z; GetCharCoordinates(playerped, &x, &y, &z); x = teleportSaveX; y = teleportSaveY; z = teleportSaveZ; SetCharCoordinates(GetPlayerPed(), x, y, z); sprintf_s(mes1,2300,"Teleported to: %d, %d, %d" , x, y, z); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// PED OPTIONS LIST ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CustomFiberThread::ViewPedForwardList() { charX++; // point at current object to be seen (increments backward) if (charX > 342) //12 { charX = 0; // 1 } sprintf_s(str7,300,"Now viewing Ped: %s, number: %i" , pedList[charX], charX); //s, d,f worked PrintStringWithLiteralStringNow("STRING", str7, 7500, 1); } void CustomFiberThread::ViewPedBackwardList() { charX--; // point at current object to be seen (increments backward) if (charX < 0) { charX = 342; } sprintf_s(str7,300,"Now viewing Ped: %s, number: %i" , pedList[charX], charX); //s, d,f worked PrintStringWithLiteralStringNow("STRING", str7, 7500, 1); } void CustomFiberThread::SpawnPedSelector() { sprintf_s(str2,300, pedList[charX]); SpawnGlobal(GetModelHash(str2), 3); f32 x,y,z; Ped ped = GetPlayerPed(); Blip blip; ColourIndex pColour; GetCharCoordinates(ped, &x, &y, &z); GetBlipColour(blip, &pColour); AddBlipForChar(ped, &blip); ChangeBlipColour(blip, 2); AddBlipForCoord(x, y, z, &blip); eWeapon weapon; GetCurrentCharWeapon(ped, &weapon); GiveWeaponToChar(ped,WEAPON_RLAUNCHER, 25000,5); SetCurrentCharWeapon(ped,WEAPON_RLAUNCHER, true); } void CustomFiberThread::SpawnCops() { switch(pedspawn) { case 1: SpawnGlobal(MODEL_M_Y_SWAT, 3); break; case 2: SpawnGlobal(MODEL_M_M_FATCOP_01, 3); break; case 3: SpawnGlobal(MODEL_M_Y_SWAT, 3); break; case 4: SpawnGlobal(MODEL_M_M_ARMOURED, 3); break; case 5: SpawnGlobal(MODEL_M_Y_COP, 3); break; case 6: SpawnGlobal(MODEL_M_Y_COP_TRAFFIC, 3); break; case 7: SpawnGlobal(MODEL_M_Y_SWAT, 3); break; case 8: SpawnGlobal(MODEL_M_M_FATCOP_01, 3); break; } PrintStringWithLiteralStringNow("STRING", "Spawning swat",6500,1); copspawn +=1;// point at current ped to be seen (increments thru a pointer array) if (copspawn > 8) { copspawn = 1; // wrap ped position to reference first item in pointer array } } void CustomFiberThread::PedSpawner() { sprintf_s(str2,300,pedList[charX]); SpawnGlobal(GetModelHash(str2), 3); pedNum++; // pedNum = 1 (after first spawn), pedList[1] = "IG_ANNA" sprintf_s(mes1,300,"Now spawning number %i, ped: %s" ,pedNum, pedList[charX]); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.38f, .095f, "STRING", pedList[charX]); maxPeds++; // listPedView = 1; (after first spawn) listPedView = pedNum; // keep track of which item is currently being viewed spawnedListPed[pedNum] = pedList[charX]; } void CustomFiberThread::ActiveSpawnedPed() { if (pedNum > 0) { // listPedView = 1 (after first spawn) listPedView++; // point at current object to be seen (increments forward) for (int i = 1; i < maxPeds+1; i++) { // listPedView (keeps incrementing). maxPeds (increments on each spawn) X > 1(pedNum) if (listPedView > maxPeds) { listPedView = 1; // wrap object position to reference first item in array // this line works fine } // pedModel[1] < 0 || pedModel[2] < 0 || pedModel[3] < 0 (basically if pedModel[x] = "-1" if (pedModel[listPedView] < 0) // = "-1" listPedView++; } sprintf_s(mes1,300,"Now viewing Ped: %i, %s, %i" ,listPedView, spawnedListPed[listPedView],maxPeds); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } else if (pedNum < 1) { PrintStringWithLiteralStringNow("STRING", "No spawned peds to view yet", 7500, 1); } saveObjString++; // stringSize; // cycle through each memory object } void CustomFiberThread::DeleteLastPed() { lastped = pedSpawned[listPedView - 1]; // objectNum - 1 worked earlier // Future work below to keep track of list of deleted peds (by each ped name) /* if (DoesPedExist(lastped)) { if (pedNum > 0) { sprintf_s(mes1,300,"Deleting ped number: %d, %s",listPedView, spawnedListPed[listPedView]); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); pedModel[listPedView] = -1; spawnedListPed[listPedView]= "** deleted **"; DeleteChar(&lastped); pedNum--; // track how many objects have been deleted if (pedNum < 0) { pedNum = 0; listPedView=0; maxPeds=0; } } } else if (pedNum < 1) { PrintStringWithLiteralStringNow("STRING", "There are no peds to delete yet",7500,1); } */ } //spawnedListObj[objectNum] = objmod[ObjectX]; // 0x0000000 //lastobj = spawnedListObj[objectNum]; //objSpawned[listView]=lastobj; //objectNum++; // track how many objects have been spawned // Removed 7/3/09 // Use objSpawned[objectNum] to show the object value, Example: 36643 (object value) // This is a mod that attempts to force a pedestrians to drop a weapon they have. Currently it does not // work. Future plans are to implement a ped check range to see which ped has a weapon, object and // force them to drop it. void CustomFiberThread::PedDropWeapon() { Ped human; Ped myPlayer = GetPlayerPed(); f32 x,y,z; Blip blip; GetCharCoordinates(myPlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); if (GetClosestChar(x, y, z, 25, PedRadius, 1, &human)) { //ReviveInjuredPed(ped); // DamageChar(ped, 10, true); applys damage to your character ForceCharToDropWeapon(human); PrintStringWithLiteralStringNow("STRING", "Make ped drop a weapon", 1000, 1); } else if (GetClosestChar(x, y, z, 25, PedRadius, 1, &human)) { PrintStringWithLiteralStringNow("STRING", "No peds around here to harass", 1000, 1); } } // This is an older mod that attempts to make a pedestrian hostile that may currently be // passive. Currently it does not work. void CustomFiberThread::MakePedNasty(Ped ped) { Ped human; Ped myPlayer = GetPlayerPed(); f32 x,y,z; Blip blip; eWeapon weapon; //CoverPoint cover; GetCharCoordinates(myPlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); if (GetClosestChar(x, y, z, 25, PedRadius, 1, &human)) { SetCollideWithPeds(human, true); GetCurrentCharWeapon(human, &weapon); AddBlipForChar(human, &blip); ChangeBlipColour(blip, 3); SetGroupCharDucksWhenAimedAt(human, true); SetCharWillUseCarsInCombat(human, true); AddArmourToChar(human, 1000); GiveWeaponToChar(human, weapon, 1000, 0); SetCharCantBeDraggedOut(human, true); //SetCharInvincible(human, true); TaskCombatHatedTargetsAroundChar(human, 1000); eWeapon weapon = WEAPON_RLAUNCHER; SetCharAllowedToDuck(human, true); AddAmmoToChar(human, weapon, 45000); GiveWeaponToChar(human, WEAPON_AK47, 1, 0); SetCurrentCharWeapon(human, WEAPON_AK47, 1); SetCharWantedByPolice(human, true); // new line //SetCharWillUseCover(human, cover); SetIgnoreLowPriorityShockingEvents(human, true); // new line SetCharRandomComponentVariation(human); // new line PrintStringWithLiteralStringNow("STRING", "You have just roused the gangs", 1000, 1); } if (GetClosestChar(x, y, z, 25, PedRadius, 1, &human)==false) { PrintStringWithLiteralStringNow("STRING", "Haven't found a ped here", 1000, 1); } } // This is my first ped spawner. Now its been abandoned, although still in the Menu section void CustomFiberThread::MultiPedSpawner() { PrintStringWithLiteralStringNow("STRING", "Spawning a ped",7500,1); Ped ped = GetPlayerPed(); f32 x, y, z; GetCharCoordinates(ped, &x, &y, &z - 5); switch(pedspawn) { case 1: CreateRandomFemaleChar(x, y - 5, z - 5, &ped); PrintStringWithLiteralStringNow("STRING", "Spawning a drowning female",7500,1); SetCharDrownsInSinkingVehicle(ped, true); break; case 2: PrintStringWithLiteralStringNow("STRING", "Spawning a male",7500,1); CreateRandomMaleChar(x, y - 5, z - 15, &ped); break; case 3: PrintStringWithLiteralStringNow("STRING", "Spawning Roman",7500,1); SpawnGlobal(MODEL_IG_ROMAN, 3); ApplyForceToPed(ped, true, x, y, z, 1, 2, 3, true, true, true, true); Wait(100); ApplyForceToPed(ped, true, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, true, true, true, true); Wait(700); ApplyForceToPed(ped, true, 0.0, 0.0, -20.0, 0.0, 0.0, 0.0, true, true, true, true); break; case 4: PrintStringWithLiteralStringNow("STRING", "Spawning an angry female",7500,1); SetPlayerMoodPissedOff(GetPlayer(), 1); CreateRandomFemaleChar(x, y - 5, z - 5, &ped); break; case 5: PrintStringWithLiteralStringNow("STRING", "Spawning male",7500,1); CreateRandomMaleChar(x, y - 5, z - 35, &ped); break; case 6: PrintStringWithLiteralStringNow("STRING", "Spawning random/damaged ped",7500,1); DamageChar(ped, 25, true); CreateRandomChar(x, y - 5, z + 5, &ped); break; case 7: PrintStringWithLiteralStringNow("STRING", "Spawning a burning female",7500,1); CreateRandomFemaleChar(x, y - 5, z - 8, &ped); break; case 8: PrintStringWithLiteralStringNow("STRING", "Spawning an overweight cop",7500,1); SpawnGlobal(MODEL_M_M_FATCOP_01, 3); break; } pedspawn +=1; // point at current ped to be seen (increments thru a pointer array) if (pedspawn > 8) { pedspawn = 1; // wrap ped position to reference first item in pointer array } } void CustomFiberThread::TaskPutHandsUp() { Ped human; Ped mePlayer = GetPlayerPed(); f32 x,y,z; f32 pvalue; Blip blip; //eModel model = MODEL_PSTOCKADE; eModel police = GetModelHash("PSTOCKADE"); GetCharCoordinates(mePlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); //Wait(200); //if(!modelRequested) //{ // RequestModel(police); // modelRequested=true; //} //if(HasModelLoaded(police)) //{ if ((GetClosestChar(x, y, z, 40, PedRadius, 1, &human)) == true) { if(DoesCharExist(human)) { Vehicle vehicle; Ped ped; //CreateRandomCharAsDriver(vehicle, &human); //GetCurrentPoliceCarModel(&police); //GetCarUprightValue(vehicle, &pvalue); SetCreateRandomCops(human); SetCharWantedByPolice(human, true); SetCharNeverTargetted(human, false); //AddBlipForChar(human, &blip); TaskEnterCarAsPassenger(human, vehicle, 1, 2); TaskHandsUp(human, 40); PrintStringWithLiteralStringNow("STRING", "Pedestrian raises hands.",7500,1); } else if(DoesCharExist(human)) { PrintStringWithLiteralStringNow("STRING", "I'm still looking for peds here",7500,1); } } //} } void CustomFiberThread::TaskCombatWithPeds() { //Ped ped = GetPlayerPed(); //Vehicle vehicle; //if (IsPedInCombat(GetPlayerPed())) //{ Ped human; Vehicle vehicle; f32 x,y,z; Blip blip; Ped myPlayer = GetPlayerPed(); GetCharCoordinates(myPlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); if (GetClosestChar(x, y, z, 40, PedRadius, 1, &human)) { if(DoesCharExist(human)) { Ped ped = GetPlayerPed(); FirePedWeapon(human, x, y, z); // Makes the nearest gun fire SetCharAsEnemy(human, true); ExplodeCharHead(human); //SetPedIsDrunk(human, true); // newly added //TaskOpenDriverDoor(human, vehicle, 1); TaskCombatHatedTargetsAroundChar(human, PedRadius); //TaskCombatHatedTargetsInArea(human, &x, &y, &z, true); SetPlayerCanBeHassledByGangs(GetPlayerId(), true); PrintStringWithLiteralStringNow("STRING", "Sending peds to an early grave",7500,1); } else if(!DoesCharExist(human)) { PrintStringWithLiteralStringNow("STRING", "There are no pedestrians nearby",7500,1); } if (IsPedFleeing(human)) { ExplodeCharHead(human); // new line } } } //SetCharAsEnemy(bodyguard, false); //SetCharNeverTargetted(bodyguard, true); //SetCharInvincible(bodyguard, true); //SetCharAllowedToDuck(bodyguard, false); //SetCharWantedByPolice(bodyguard, false); void CustomFiberThread::TaskPlayerSitDown() { f32 x, y, z; f32 pedir; GetCharCoordinates(GetPlayerPed(), &x, &y, &z); if (IsCharWaitingForWorldCollision(GetPlayerPed())) { Ped ped = GetPlayerPed(); Ped human; GetCharCoordinates(ped, &x, &y, &z); TaskSitDown(ped, x, y, z); TaskSitDownOnNearestObject(ped, 1, 1, x, y, z, 3, 4, 5, 6); SetCharDesiredHeading(human, pedir + 1); // new line PrintStringWithLiteralStringNow("STRING", "Sitting player down.",7500,1); } else if (!IsCharWaitingForWorldCollision(GetPlayerPed())) { PrintStringWithLiteralStringNow("STRING", "Cannot locate a bench.",7500,1); } } // This is another original Ped Option. It has been left in the Menu section, but is no' // longer being modified. Future plans may be to omit this. void CustomFiberThread::PedOnFire() { Ped human; f32 x,y,z; Ped mePlayer = GetPlayerPed(); GetCharCoordinates(mePlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); isCharOnFire = !isCharOnFire; if (GetClosestChar(x, y, z, 15, PedRadius, 1, &human)) { if(DoesCharExist(human)) { if (isCharOnFire) { isCharOnFire = !isCharOnFire; SetCharHealth(human, 600); Wait(100); StartCharFire(human); MarkCharAsNoLongerNeeded(&human); PrintStringWithLiteralStringNow("STRING", "Setting nearby ped on fire!", 7500, 1); } } } } void CustomFiberThread::ZombieMod() { f32 x,y,z; GetCharCoordinates(GetPlayerPed(), &x, &y, &z); eModel model = MODEL_F_Y_STRIPPERC01; //x = (x+(8*Sin((-1*heading)))); //y = (y+(8*Cos((-1*heading)))); if(!modelRequested) { RequestModel(model); modelRequested=true; } Ped closeChar; if(HasModelLoaded(model)) { Ped bodyguard; Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); CreateChar(1, model, x, y, z, &bodyguard, true); SetCharComponentVariation(bodyguard, PED_COMPONENT_HEAD, 5, GetCharTextureVariation(GetPlayerPed(), PED_COMPONENT_HEAD)); SetCharComponentVariation(bodyguard, PED_COMPONENT_UPPER, 4, GetCharTextureVariation(GetPlayerPed(), PED_COMPONENT_UPPER)); SetCharComponentVariation(bodyguard, PED_COMPONENT_LOWER, 3, GetCharTextureVariation(GetPlayerPed(), PED_COMPONENT_LOWER)); SetCharComponentVariation(bodyguard, PED_COMPONENT_SUSE, 0, GetCharTextureVariation(GetPlayerPed(), PED_COMPONENT_SUSE)); SetCharComponentVariation(bodyguard, PED_COMPONENT_FEET, 0, GetCharTextureVariation(GetPlayerPed(), PED_COMPONENT_FEET)); SetCharComponentVariation(bodyguard, PED_COMPONENT_HAIR, 2, GetCharTextureVariation(GetPlayerPed(), PED_COMPONENT_HAIR)); SetCharComponentVariation(bodyguard, PED_COMPONENT_SUS2, 0, GetCharTextureVariation(GetPlayerPed(), PED_COMPONENT_SUS2)); SetCharComponentVariation(bodyguard, PED_COMPONENT_TEEF, 0, GetCharTextureVariation(GetPlayerPed(), PED_COMPONENT_TEEF)); SetCharComponentVariation(bodyguard, PED_COMPONENT_FACE, 3, GetCharTextureVariation(GetPlayerPed(), PED_COMPONENT_FACE)); SetCharInvincible(bodyguard, true); SetCharVisible(bodyguard, true); GetClosestChar(x, y, z, 25.0f, true, true, &closeChar); //SetCharDruggedUp(driver, true); SetCharAsEnemy(bodyguard, false); SetCharNeverTargetted(bodyguard, true); SetCharInvincible(bodyguard, true); SetCharAllowedToDuck(bodyguard, false); SetCharWantedByPolice(bodyguard, false); RemoveCharDefensiveArea(bodyguard); //SetCharAsMissionChar(bodyguard); SetCharNeverLeavesGroup(bodyguard, true); SetCharIsTargetPriority(bodyguard, false); //SetCharSphereDefensiveArea(bodyguard, x, y, z, CarRadius); SetPlayerGroupToFollowAlways(playerIndex, true); FirePedWeapon(bodyguard, x, y, z); GetCharWillCowerInsteadOfFleeing(bodyguard); DamagePedBodyPart(bodyguard, 1, 12); DetachPedFromWithinCar(bodyguard, true); FakeDeathArrest(); //SetAllRandomPedsFlee(driver, false); //AddBlipForChar(driver, &blip); //SetCarEngineOn(vehicle, true, true); //SetCarForwardSpeed(vehicle, dir + 8); //SetCarHeading(vehicle, dir + 2); //PopCarBoot(vehicle); //SetCharGestureGroup(driver, 4); GiveWeaponToChar(bodyguard, WEAPON_AK47, 1, 0); SetCurrentCharWeapon(bodyguard, WEAPON_AK47, 1); SetPedWontAttackPlayerWithoutWantedLevel(bodyguard, false); //TaskCombat(driver, closeChar); MarkCharAsNoLongerNeeded(&bodyguard); modelRequested=false; PrintStringWithLiteralStringNow("STRING", "Activating bodyguards", 7500,1); } //TaskCombat(driver, closeChar); } void CustomFiberThread::BodyGuardMod() { Ped ped = GetPlayerPed(); //u32 playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); //u32 pStartIndex = ConvertIntToPlayerIndex(GetPlayerPed()); f32 x, y, z; //Group group; //ePedBodyPart bodypart; //int pCount; //eWeapon weapon; //amount = 4; GetCharCoordinates(ped, &x, &y, &z - 5); //CreateRandomFemaleChar(x, y - 5, z - 5, &ped); //eWeapon playerWeapon = GetWeaponHash("BASEBALLBAT"); //AddAmmoToChar(ped, playerWeapon, 1); //GetPlayerGroup(playerIndex, &group); //GetGroupLeader(group, &ped); //GetGroupMember(group, 1, &ped); // new item (testing) //CreateGroup(true, &group, true); //eWeapon playerWeapon = GetWeaponHash("ROCKET"); //SetPlayerGroupToFollowAlways(playerIndex, true); //GetGroupSize(group, 1, 4); //AddAmmoToChar(ped, playerWeapon, 1); //FirePedWeapon(ped, x, y, z); //ForcePedPinnedDown(ped, true, 100); //DamagePedBodyPart(ped, bodypart, 6); SetCharAsEnemy(ped, true); CreateRandomFemaleChar(x, y - 5, z - 5, &ped); PrintStringWithLiteralStringNow("STRING", "Spawning a bodyguard",7500,1); } void CustomFiberThread::LiftPedFromWater() { Ped human; Ped myPlayer = GetPlayerPed(); f32 x,y,z; Blip blip; GetCharCoordinates(myPlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(false); Wait(200); if ((GetClosestChar(x, y, z, 15+PedRadius, PedRadius, 1, &human)) == true) { PrintStringWithLiteralStringNow("STRING", "Nearby ped found. Close to water.", 1000, 1); if (IsCharSwimming(human) || IsPedFleeing(human) || IsPedRetreating(human)) // (DoesCharExist(human) { PrintStringWithLiteralStringNow("STRING", "Ped was located", 1000, 1); SwitchPedToRagdoll(human, 10000, 5000, x, y, z, 0); GetCharVelocity(human, &x, &y, &z); SetCharVelocity(human, x, pedY, z + 1 + pedZ); PrintStringWithLiteralStringNow("STRING", "Lifting ped(s) out of the water", 1000, 1); } else if (!DoesCharExist(human) && !IsCharInWater(human) ) { PrintStringWithLiteralStringNow("STRING", "There is no ped in the water or you're not near the lake", 1000, 1); } if (IsCharDead(human)) { GetDeadCharCoordinates(human, &x, &y, &z); GetCharVelocity(human, &x, &y, &z); SetCharVelocity(human, x, pedY, z + 1 + pedZ); PrintStringWithLiteralStringNow("STRING", "Lifting dead ped(s) out of the water", 1000, 1); } } } // This is the Bodyguard spawner. Currently it allows a spawned female guard. However she runs when // the cops arrive. Yet a mystery to be fixed. void CustomFiberThread::MakeGroup() { f32 x,y,z; Ped leader; Group group; Blip blip; DecisionMaker decision; Ped ped = GetPlayerPed(); GetCharCoordinates(GetPlayerPed(), &x, &y, &z); eModel model = MODEL_F_Y_STRIPPERC02;; eWeapon weapon = WEAPON_RLAUNCHER; if(!modelRequested) { RequestModel(model); modelRequested=true; } if(HasModelLoaded(model)) { CreateChar(1, model, x, y, z, &leader, true); SetCharWantedByPolice(leader, false); ClearWantedLevel(GetPlayer()); //SetCharKeepTask(leader, true); PrintStringWithLiteralStringNow("STRING", "Bodyguard on patrol", 7500, 1); /* CreateGroup(true, &group, true); if (DoesGroupExist(group)) { Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); CreateChar(1, model, x, y, z, &leader, true); //CreateGroup(true, &group, true); // New as of 8/9/10 //if (DoesGroupExist(group)) //{ CreateGroup(false, &group, true); GetGroupSize(group, &pStartIndex, &pcount); SetGroupFollowStatus(group, 1); SetGroupFormation(group, 1); SetGroupFormationSpacing(group, 2); SetGroupSeparationRange(group, 1); SetGroupCharDucksWhenAimedAt(leader, false); SetCharRelationshipGroup(leader, 1) ; PrintStringWithLiteralStringNow("STRING", "Spawning a set of bodyguards",7500,1); //} //***************** //GetGroupLeader(group, &ped); //SetGroupLeader(group, ped); GetPlayerGroup(playerIndex, &group); SetGroupFollowStatus(group, 2); SetPlayerGroupToFollowAlways(playerIndex, true); if (!IsGroupLeader(leader, group)) { GetGroupLeader(group, &leader); SetGroupLeader(group, leader); PrintStringWithLiteralStringNow("STRING", "We have a group leader", 7500, 1); } */ if (IsCharInCombat(leader)) { TaskCombatHatedTargetsInArea(leader, &x, &y, &z, true); FirePedWeapon(leader, x, y, z); SetCharNeverLeavesGroup(leader, true); PrintStringWithLiteralStringNow("STRING", "A war has started", 7500, 1); } /* //GetGroupMember(group, 1, &leader); //SetGroupMember(group, leader); //CopyCombatDecisionMaker(1, &decision); //CopyGroupCombatDecisionMaker(1, &decision); //SetGroupCombatDecisionMaker(group, decision); SetCharWillDoDrivebys(leader, true); */ // New stuff as of 8/9/10 if (!IsGroupMember(leader, group)) { GetGroupMember(group, 1, &leader); SetGroupMember(group, leader); PrintStringWithLiteralStringNow("STRING", "We have a group member", 7500, 1); } // ********************** //GetGroupSize(group, &pStartIndex, &pcount); //SetPlayerGroupToFollowAlways(playerIndex, true); //SetGroupFollowStatus(group, 3); //SetGroupSeparationRange(group, 15); //CreateGroup(true, &group, true); SetCharIsTargetPriority(leader, true); //SetGroupCharDucksWhenAimedAt(leader, false); AddBlipForChar(leader, &blip); //SetCharNeverTargetted(ped, true); //SetCharNeverLeavesGroup(leader, true); SetCharAllowedToDuck(leader, true); //SetRelationship(1, 1, 2); //SetCharRelationship(leader, 2, 1); //SetCharNotDamagedByRelationshipGroup(leader, 1, true); //SetCharWillUseCarsInCombat(ped, true); SetCharInvincible(leader, true); SetCharVisible(leader, true); AddAmmoToChar(leader, weapon, 45000); GiveWeaponToChar(leader, WEAPON_AK47, 1, 0); SetCurrentCharWeapon(leader, WEAPON_AK47, 1); MarkCharAsNoLongerNeeded(&leader); modelRequested=false; PrintStringWithLiteralStringNow("STRING", "Settting other ped options", 7500, 1); } } void CustomFiberThread::ForcePedFromCar() { Ped human; Ped mePlayer = GetPlayerPed(); f32 x,y,z; Blip blip; GetCharCoordinates(mePlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); if ((GetClosestChar(x, y, z, 40, PedRadius, 1, &human)) == true) { PrintStringWithLiteralStringNow("STRING", "Ped in range", 7500, 1); if(DoesCharExist(human)) { if (IsCharSittingInAnyCar(human)) { f32 px,py,pz; Ped ped = GetPlayerPed(); GetCharCoordinates(human, &px, &py, &pz); CancelCurrentlyPlayingAmbientSpeech(human); DetachPedFromWithinCar(human, true); //GetCharCoordinates(human, &x, &y, &z); //SetAllRandomPedsFlee(human, true); AddBlipForChar(human, &blip); PrintStringWithLiteralStringNow("STRING","Forcing ped from vehicle", 6500, true); } else if(!DoesCharExist(human)) { PrintStringWithLiteralStringNow("STRING","There are no peds in a vehicle or nearby", 6500, true); } } } } void CustomFiberThread::BecomeaPassenger() // Change to Heli Mission in awhile { Ped driver; Ped mePlayer = GetPlayerPed(); f32 x, y, z; GetCharCoordinates(GetPlayerPed(), &x, &y, &z); //AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); Vehicle theCar=GetClosestCar(x, y, z, 15, CarRadius, 1); // Increase the ShootRate to get ApplyForce to work0 if (DoesVehicleExist(theCar) && IsVehDriveable(theCar)) { GetDriverOfCar(theCar, &driver); WarpCharIntoCarAsPassenger(GetPlayerPed(), theCar, 1); if(!DoesCharExist(driver)) { CreateRandomCharAsDriver(theCar, &driver); //PrintStringWithLiteralStringNow("STRING", "Player warped into a car", 7500,1); //Vehicle vehicle; //GetCarCharIsUsing(driver, &theCar); if(IsCarPassengerSeatFree(theCar,0)) TaskWarpCharIntoCarAsPassenger(GetPlayerPed(), theCar, 0); else if(IsCarPassengerSeatFree(theCar, 1)) TaskWarpCharIntoCarAsPassenger(GetPlayerPed(), theCar, 1); else if(IsCarPassengerSeatFree(theCar, 2)) TaskWarpCharIntoCarAsPassenger(GetPlayerPed(), theCar, 2); else if(IsCarPassengerSeatFree(theCar, 3)) TaskWarpCharIntoCarAsPassenger(GetPlayerPed(), theCar, 3); PrintStringWithLiteralStringNow("STRING","You're a passenger now.", 6500, true); //SetDriveTaskCruiseSpeed(driver, 150); } else if(DoesCharExist(driver)) { PrintStringWithLiteralStringNow("STRING","Can't locate a driver yet.", 6500, true); } PrintStringWithLiteralStringNow("STRING","Waiting for a car.", 6500, true); } //if(DoesVehicleExist(car) && IsVehDriveable(car)) //{ // RequestModel(Scripting::eModel::MODEL_POLICE); // while(!HasModelLoaded(Scripting::eModel::MODEL_POLICE)) // { // Wait(150); // } // Ped driver; //eModel eValue; //const eModel& operator++(eModel& eValue); //GetCharModel(GetPlayerPed(), &eValue); //GetDriverOfCar(car, &driver); //WarpCharIntoCarAsPassenger(GetPlayerPed(), car, 3); //PrintStringWithLiteralStringNow("STRING","You're a passenger now.", 6500, true); //sprintf_s(mes1, 300,"Enum Scroll Model List: %s" , eValue); //PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); /*if(!DoesCharExist(driver)) { CreateRandomCharAsDriver(car, &driver); MakePedNasty(driver); SetCharInvincible(driver, true); SetCharWillFlyThroughWindscreen(driver, 0); SetCharWantedByPolice(driver, false); GiveWeaponToChar(driver, WEAPON_AK47, 1, 0); SetCurrentCharWeapon(driver, WEAPON_AK47, 1); PopCarBoot(car); } else { MakePedNasty(driver); } */ //SetDriveTaskCruiseSpeed(driver, 150); // 255 //} } // This mod was created in an effort to restore a ped that has been hurt (burned,shot) to // the original health status. Currently it does not work. void CustomFiberThread::RevivePed() { Ped human; Ped myPlayer = GetPlayerPed(); f32 x,y,z; Blip blip; GetCharCoordinates(myPlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); if (GetClosestChar(x, y, z, 25, PedRadius, 1, &human)) { if (DoesCharExist(human)) { if (IsCharDead(human) || (IsCharInjured(human))) // || IsCharFatallyInjured(human)) { GetCharCoordinates(human, &x, &y, &z); ReviveInjuredPed(human); ClearCharTasks(human); ClearCharLastDamageBone(human); ClearCharLastDamageEntity(human); //DamageChar(ped, 10, true); applys damage to your character //ApplyForceToPed(human, true, x, y, z, 100, 150, 1255, true, true, true, true); // true, x,y,z,100,150,255,(all trues) PrintStringWithLiteralStringNow("STRING", "Trying to revive a pedestrian", 1000, 1); } else if (!IsCharDead(human) || (IsCharInjured(human))) { PrintStringWithLiteralStringNow("STRING", "Don't see any dead peds here", 1000, 1); } } else if (DoesCharExist(human)) { PrintStringWithLiteralStringNow("STRING", "Can't find a ped here", 1000, 1); } } } // This is future work in hopes of resuscitating a dead Ped. Currently it does not work. // It is also being tested to restore a car (in area of player) that has been blown up // or wrecked. // This mod is currently being worked on as of 8/9/10. The goal here is to grab pedestrians in the area and // glue them to your car or another car in the area. void CustomFiberThread::AttachPedstoCar() { f32 x,y,z; Ped grabped; Vehicle theCar; GetCharCoordinates(GetPlayerPed(), &x, &y, &z); theCar=GetClosestCar(x, y, z, 15, CarRadius, 1); if (GetClosestChar(x, y, z, 40, PedRadius, 1, &grabped)) { if(DoesCharExist(grabped)) { PrintStringWithLiteralStringNow("STRING", "Ped found!",7500,1); if(DoesVehicleExist(theCar)) { PrintStringWithLiteralStringNow("STRING", "Get in a vehicle to use this feature",7500,1); if (IsCharInAnyCar(GetPlayerPed())) { GetCarCharIsUsing(grabped, &theCar); // newly added GetCharCoordinates(grabped, &x, &y, &z); //ApplyForceToPed(funChar, true, x, y, z, 2100, 3150, shootRate, true, true, true, true); //SwitchPedToRagdoll(grabped, 10000, 5000, x, y, z+pedZ, 3); DamageChar(grabped, 100, true); //GetCharCoordinates(grabped, &x, &y, &z); if (!IsPedAttachedToAnyCar(grabped)) { //ePedMoveState state; GetCharCoordinates(grabped, &x, &y, &z); AttachPedToCar(grabped, theCar, 1, x, y, z+pedZ, 20, 0, 0, 0); SwitchPedToRagdoll(grabped, 10000, 5000, x, y, z+pedZ, 3); //ModifyCharMoveState(grabped, state); // new line //SwitchPedToRagdoll(funChar, 10000, 5000, 2, 1, 1, 0); PrintStringWithLiteralStringNow("STRING", "Peds are now ragdoll or dead",7500,1); } } } else if(!DoesCharExist(grabped)) { PrintStringWithLiteralStringNow("STRING", "Peds are not near you",7500,1); } } } } void CustomFiberThread::StealPedsObject() { Ped human; Ped mePlayer = GetPlayerPed(); f32 x,y,z; Object obj; //Blip blip; GetCharCoordinates(mePlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); if ((GetClosestChar(x, y, z, 15+PedRadius, PedRadius, 1, &human)) == true) { if(DoesCharExist(human)) { if (IsPedHoldingAnObject(human)) // (IsCharTouchingObject(human, obj) || IsPedAttachedToObject(human, obj)) { //GetPedObjectIsAttachedTo(obj); Ped humanobj=GetPedObjectIsAttachedTo(obj); //GetObjectPedIsHolding(human); DropObject(human, true); PrintStringWithLiteralStringNow("STRING", "Stealing object from Ped.",7500,1); } } else if(DoesCharExist(human)) { PrintStringWithLiteralStringNow("STRING", "Ped doesn't seem to be around",7500,1); } } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// POWER OPTIONS ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // #2 DetermineIfGodMode() // #3 RestorePlayerHealth() void GTAStart::PlayerMakesFire() { f32 x,y,z; Ped myPlayer = GetPlayerPed(); //restore this line 1 GetCharCoordinates(myPlayer, &x, &y, &z); //restore this line 2 AddExplosion(x+fireX, y+fireY, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(x+fireX-1, y+fireY+3, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(x+fireX-2, y+fireY+4, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(x+fireX-3, y+fireY+5, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(x+fireX-4, y+fireY+6, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(x+fireX-5, y+fireY+7, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(x+fireX+1, y+fireY-1, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(x+fireX+2, y+fireY-2, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(x+fireX+3, y+fireY-3, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(x+fireX+4, y+fireY-4, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(x+fireX+5, y+fireY-5, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(x+fireX+6, y+fireY-6, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(x+fireX+7, y+fireY-7, z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); // Here's a cool loop to create multiple explosions in a radius scanned area. However I noticed that if // this loop gets too large, the game lags. while (m != 12900) // was != 900 { AddExplosion(X+fireX+m, Y+fireY, Z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(X+fireX-m, Y+fireY, Z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(X+fireX, Y+fireY+m, Z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(X+fireX, Y+fireY-m, Z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(X+fireX+m, Y+fireY+m, Z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(X+fireX-m, Y+fireY-m, Z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); AddExplosion(X+fireX+m, Y+fireY-m, Z+fireZ, fireexplosionType, AddExpRadius, 50, 1, cameraShake); m++; } m=0; PrintStringWithLiteralStringNow("STRING", "The Human Torch! : AddExplosion(x+fireX, y+fireY, z+fireZ, fireexplosionType, AddExpRadius, 50, isObjectVisible, 0);", 7500, 1); } void CustomFiberThread::TornadoPower() { vehSpeed = 900; isInvincible = false; DetermineIfGodmode(); GodCar(); RepairCar(); Ped ped = GetPlayerPed(); SetCharWillFlyThroughWindscreen(ped, 0); sprintf_s(mes1, 300,"Niko, The human Tornado! Vehicle speed: %i" , vehSpeed); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } void CustomFiberThread::BikeReset() { vehSpeed = 1; isInvincible = false; DetermineIfGodmode(); GodCar(); RepairCar(); Ped ped = GetPlayerPed(); SetCharWillFlyThroughWindscreen(ped, 0); sprintf_s(mes1, 300,"The flying bike: %i" , vehSpeed); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } void CustomFiberThread::PlayerMakesExplosions() { Ped ped = GetPlayerPed(); Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); GetPlayerChar(playerIndex, &ped); f32 X, Y, Z; GetDeadCharCoordinates(ped, &X, &Y, &Z); // Here's yet another cool loop to create multiple explosions. However caution should be applied here since // a larger loop tends to slow the FPS. while (m != 12900) // was m! = 900 { AddExplosion(X+fireX+m, Y+fireY, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX-m, Y+fireY, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY+m, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY-m, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX+m, Y+fireY+m, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX-m, Y+fireY-m, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX+m, Y+fireY-m, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); m++; } m=0; expType++; if (expType > 1255) { expType = 0; } sprintf_s(mes1, 300,"Deadly Explosions: %f, %i, %f" , 1.0f + expType, 1 + expType, 0, 1); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } // Here is an old mod that is supposed to have gangs attack the Player. Currently it does not seem // to work. void CustomFiberThread::PlayerAttacking() { Ped ped = GetPlayerPed(); //f32 spinX, spinY, spinZ; SetCharMeleeActionFlag0(ped, true); //IsCharInCombat //IsPlayerFreeAimingAtChar //IsPlayerTargettingAnything //IsPlayerTargettingChar //IsPlayerTargettingObject //IsButtonPressed //if (IsPlayerTargettingAnything(GetPlayer())) //if (IsPlayerFreeAimingAtChar(ped)) //{ if (IsCharInCombat(ped)) { f32 x, y, z; //f32 spinX, spinY, spinZ; GetCharCoordinates(ped, &x, &y, &z); SetCharProofs(ped, true, true, true, true, true); ApplyForceToPed(ped, 10, x, y, z, APFCarx, APFCary, APFCarz, 20, 5, 4, 1); PrintStringWithLiteralStringNow("STRING", "Player is in Combat", 7500,1); } //} } // This mod recreates a bullet effect (same as firing a pistol). It will also allow you to shoot // annoying traffic in front of you while driving to send them flying out of your direction. // Also it shoot peds up in the sky or in the direction you set the radius to. void CustomFiberThread::BulletForceToCars() { Ped ped = GetPlayerPed(); f32 x, y, z; if (IsCharShooting(ped)) { GetCharCoordinates(ped, &x, &y, &z); //SetCharProofs(ped, true, true, true, true, true); ApplyingForceToVehicle(); ApplyingForceToPed(); PrintStringWithLiteralStringNow("STRING", "Applying bullet mass", 7500,1); } } void CustomFiberThread::Increase_Pedx() { pedX+=1; if (pedX > 999999) { pedX = -999999; } sprintf_s(mes1,300,"Increasing throw Ped West range %i" ,pedX); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } void CustomFiberThread::Increase_Pedy() { pedY+=1; if (pedY > 999999) { pedY = 0; } sprintf_s(mes1,300,"Increasing throw Ped South range %i" ,pedY); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } void CustomFiberThread::Increase_Pedz() { pedZ+=1; if (pedZ > 999999) { pedZ = 0; } sprintf_s(mes1,300,"Increasing thow Ped Up range %i" ,pedZ); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } // This mod will reset all the Ped radius control values. This is useful if you want to throw a // ped in a North instead of a South direction, etc. Because the ped values are incremented in a // display counter on the screen and it takes awhile to scroll back to zero (for a reset). void CustomFiberThread::ResetAll_PedValues() { pedX=0; pedY=0; pedZ=0; if (pedZ > 999999) { pedZ = 0; } sprintf_s(mes1,300,"Resetting all lift values: %i" ,pedZ); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } void CustomFiberThread::TrafficHavok() { isTrafficModeActive = !isTrafficModeActive; const ch* displayString = (isTrafficModeActive ? "Traffic Havok Mode is On" : "Traffic Havok Mode is Off"); PrintStringWithLiteralStringNow("STRING", displayString, 7500,1); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// EXTRA OPTIONS ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CustomFiberThread::ViewWeather() { eWeather weather; GetCurrentWeather(&weather); u32 intweather =(eWeather)weather; intweather++; ForceWeatherNow((eWeather)intweather); ReleaseWeather(); sprintf_s(mes1,300,"Current weather: %s, value: %d" ,weathermod[weatherX - 1], weatherX - 1); PrintStringWithLiteralStringNow("STRING", mes1, 6000, 1); weatherX++; // point at current object to be seen (increments backward) if (weatherX > 9) { weatherX = 0; } } // This mod works to clear an obstacle course. However it is faulty if you have spawned // objects or cars since it will delete everything in range. Therefore the object/vehicle // counter will be off. This is a another contributing nuisance to fix the delete // object/vehicle/ped issue. void CustomFiberThread::GlobalDelete() { f32 x, y, z; Ped nearped; GetCharCoordinates(GetPlayerPed(), &x, &y, &z); Vehicle car = GetClosestCar(x, y, z, 100, CarRadius, 70); ClearArea(x, y, z, 100, true); ClearAreaOfCops(x, y, z, 100); ClearAreaOfChars(x, y, z, 100); SwitchAmbientPlanes(false); eModel model=GetModelHash("BM_skate_halfpipe"); FreezePositionOfClosestObjectOfType(x, y, z, 10, model, false); SetVisibilityOfClosestObjectOfType(x, y, z, 10, model, false); PrintStringWithLiteralStringNow("STRING", "Cleaning a path",7500,1); if (DoesVehicleExist(car)) { MarkCarAsNoLongerNeeded(&car); DeleteCar(&car); PrintStringWithLiteralStringNow("STRING", "Now removing your vehicle",7500,1); if (vehicleNum < 1) { vehicleNum = 0; } if ((GetClosestChar(x, y, z, 25, PedRadius, true, &nearped)) == true) { MarkCharAsNoLongerNeeded(&nearped); DeleteChar(&nearped); } } } void CustomFiberThread::SwitchRoads() { SwitchRoadsOn(true); PrintStringWithLiteralStringNow("STRING", "Switching roads on", 9500, 1); } // #5 PedStuff() // #6 AttachPedToVehicle() void CustomFiberThread::VehicleSpeedBackward() { vehSpeed = vehSpeed - 10; if (vehSpeed < -65000) { vehSpeed = 65000; } sprintf_s(str7,300,"Vehicle backward speed: %d" , vehSpeed); PrintStringWithLiteralStringNow("STRING", str7, 7500, 1); } // This mod is being worked on as of 8/9/10. Currently it works. There are plans to modify this further // to include controls to set where an attachment will take place (on the vehicle/heli, etc). // This will then allow a Player to stack vehicle in funny places. void CustomFiberThread::AttachVehicletoVehicle() { //lastobj = objSpawned[listView - 1]; Ped ped = GetPlayerPed(); f32 x, y, z; //f32 xrot, yrot, zrot; vehicleNum++; // Keep track of this vehicle for the Active Spawned Vehicle list //eModel curObj = GetModelHash(carmod[carObjectX]); //BM_trex_partB Vehicle theCar; //curObj = spawnedListObj[objectNum]; // GetCarCharIsUsing(ped, &vehicle); //GetCarCharIsUsing(GetPlayerPed(), &theCar); GetCharCoordinates(GetPlayerPed(), &x, &y, &z); theCar=GetClosestCar(x, y, z, 15, CarRadius, 1); if(DoesVehicleExist(theCar)) { GetCarCharIsUsing(GetPlayerPed(), &theCar); GetCharCoordinates(GetPlayerPed(), &x, &y, &z); Ped driver; GetDriverOfCar(theCar, &driver); //WarpCharIntoCarAsPassenger(GetPlayerPed(), theCar, 1); Ped playerped; GetPlayerChar(playerMenuItem, &playerped); //AttachCarToCar(theCar, theCar, true, x, y, z, x+2, y+2, z+1); PrintStringWithLiteralStringNow("STRING", "Attaching vehicles together", 7500,1); //CreateObject(curObj, x, y, z, &lastcar, true); // MODEL_COMET //AttachCarToCar(theCar, theCar, true, x, y, z, x+2, y+2, z+1); SetCarCoordinates(theCar, x, y, z-14); AttachCarToCar(theCar, lastcar, true, x, y, z, x+2, y+2, z+1); //FreezeObjectPosition(lastobj, true); //sprintf_s(mes1,300,"Attaching vehicle %s, number: %d" ,carmod[carObjectX], carObjectX); //PrintStringWithLiteralStringNow("STRING", mes1, 6000, 1); } } // This mod was taken from SneakyJanit0r (with permission). void CustomFiberThread::CarHydralics() { if (IsCharInAnyCar(GetPlayerPed())) { Vehicle vehicle; GetCarCharIsUsing(GetPlayerPed(), &vehicle); ApplyForceToCar(vehicle, 0, 0, 0, 0, 0, 0, 1000000, 0, 1, 1, 1); PrintStringWithLiteralStringNow("STRING", "Using car hydralics", 6000, 1); } } void CustomFiberThread::FreezeHoveringControl() { Ped ped = GetPlayerPed(); isPlayerFrozen = !isPlayerFrozen; FreezeCharPosition(ped, isPlayerFrozen); FreezeCharPositionAndDontLoadCollision(ped, true); const ch* displayString = (isPlayerFrozen ? "Freeze Player On" : "Freeze Player Off"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); MarkCharAsNoLongerNeeded(&ped); } void CustomFiberThread::TeleportToPlayer() { Ped playerped; GetPlayerChar(player, &playerped); f32 x, y, z; GetCharCoordinates(playerped, &x, &y, &z); } // This mod is only used to test blips void CustomFiberThread::TestBlips() { //Blip blip; //Vector3 vector; Ped playerped; GetPlayerChar(player, &playerped); f32 x, y, z; GetCharCoordinates(playerped, &x, &y, &z); //GetBlipCoords(blip, &vector); SetCharCoordinates(GetPlayerPed(), x, y, z); //GetBlipCoords(blip, &vector); //AddBlipForChar(playerped, &blip); //AddBlipForCoord(x, y, z, &blip); AddBlipForContact(x, y, z, &blip); //yellow blip //DisplayFrontEndMapBlips(true); sprintf_s(str8,300,"Blips for MP player: %s, %f, %f, %f" ,&x, &y, &z); PrintStringWithLiteralStringNow("STRING", str8, 7500, 1); } // This mod is supposed to blow a vehicle's tires. Currently it does not work. It is literally abandoned // at this time. void CustomFiberThread::BurstingTheTires() { f32 x,y,z; GetCharCoordinates(GetPlayerPed(), &x, &y, &z); Vehicle theCar=GetClosestCar(x, y, z, 15, CarRadius, 1); if(DoesVehicleExist(theCar)) { if (IsCharInAnyCar(GetPlayerPed())) { Ped ped = GetPlayerPed(); Vehicle vehicle; //eVehicleTyre tyre; GetCarCharIsUsing(GetPlayerPed(), &vehicle); //BurstCarTyre(vehicle); PrintStringWithLiteralStringNow("STRING", "Now bursting car tires", 7500, 1); } } } // This mod is supposed to snuff out your player (if they are on fire). It does not seem to work yet. void CustomFiberThread::PutCharFireOut() { Ped funChar; f32 x,y,z; Ped myPlayer = GetPlayerPed(); GetCharCoordinates(myPlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); isCharOnFire = !isCharOnFire; if (GetClosestChar(x, y, z, 25, PedRadius, 1, &funChar)) { //if(DoesCharExist(funChar)) //{ if (isCharOnFire) { isCharOnFire = !isCharOnFire; SetCharHealth(funChar, 600); Wait(100); StartCharFire(funChar); MarkCharAsNoLongerNeeded(&funChar); PrintStringWithLiteralStringNow("STRING", "Putting out your fire", 7500, 1); } //} } } // This is another test mod. Out of curiousity I wanted to see what it does. Currently it does not work. void CustomFiberThread::PlayerControlOptions() { u32 playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); if (IsPlayerControlOn(playerIndex)) { //SetPlayerControl(playerIndex, true); SetPlayerControlAdvanced(playerIndex, true, true, true); PrintStringWithLiteralStringNow("STRING", "Player Control Activated", 1000, 1); } } // This was an earlier mod (back in 2009). Currently it does not work. This is essentially because I don't // understand what a Car Livery is. void CustomFiberThread::ActivateCarLivery() { Vehicle vehicle; //f32 livery; //f32 strong; //strong++; // point at current object to be seen (increments backward) //if (strong > 12) //12 //{ // strong = 1; // 1 //} GetCarCharIsUsing(GetPlayerPed(), &vehicle); SetCarStrong(vehicle, true); // 255 SetCarOnGroundProperly(vehicle); //sprintf_s(mem1,2300,"Current Strength: %f" , strong + 1); //PrintStringWithLiteralStringNow("STRING", mem1, 9500, 1); //SetCarLivery(vehicle, livery + 2); } // This is a mod that attempts to force a pedestrians to drop a weapon they have. Currently it does not // work. Future plans are to implement a ped check range to see which ped has a weapon, object and // force them to drop it. void CustomFiberThread::PlayerQuickTrot() { f32 x,y,z; trotSpeed++; // point at current object to be seen (increments backward) if (trotSpeed > 20) { trotSpeed = 0; } Ped ped = GetPlayerPed(); GetCharCoordinates(ped, &x, &y, &z); SetCharMoveAnimSpeedMultiplier(ped, trotSpeed); sprintf_s(mes1,2300,"Player Trot Speed: %i" , trotSpeed); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } // This is an older mod that attempted to change a object's size. Currently it does not // seem to work. It is not being worked at this time. void CustomFiberThread::ChangeObjectSize() { f32 x, y, z; lastobj = objSpawned[listView - 1]; if (objectNum > 0) { GetCharCoordinates(GetPlayerPed(), &x, &y, &z); //SetObjectScale(lastobj, sizeObj); SetObjectQuaternion(lastobj, x, y, z, sizeObj); sizeObj++; // point at current object to be seen (increments backward) if (sizeObj > 9000) { sizeObj = 0; } sprintf_s(mes1, 300,"Changing the object size: %i" , sizeObj); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } } // This is an older mod taken from SneakyJanit0r. It is supposed to recreate the spawned ship // that people can navigate on. It is not being worked on at this time. void CustomFiberThread::ConnectObjectsTogether() { lastobj = objSpawned[listView - 1]; Object tankerC, tankerB; f32 x, y, z; //f32 x1, y1, z1; eModel model1 = GetModelHash("CJ_Tanker"); eModel model2 = GetModelHash("CJ_Tanker_LOD"); eModel model3 = GetModelHash("CJ_Tankerb"); GetCharCoordinates(GetPlayerPed(), &x, &y, &z); FreezeObjectPosition(lastobj, true); //CreateObjectNoOffset(model1, x, y, z, &tankerB, true); AttachObjectToObject(lastobj, tankerC, x, y, z, x+1, y+1, z+1, 1); GetNetworkIdFromObject(lastobj, &netid); SetNetworkIdExistsOnAllMachines(netid, true); } void CustomFiberThread::ChangeTime() { u32 hour, minute; GetTimeOfDay(&hour, &minute); hour = hour + 6; SetTimeOfDay(hour,minute); ForceTimeOfDay(hour, minute); ReleaseTimeOfDay(); sprintf_s(mes1,300,"Now changing the time: %i" ,hour); PrintStringWithLiteralStringNow("STRING", mes1, 6000, 1); } // This is an older mod (2009). I grew frustrated trying to control the water levels. Alot of time has // spent researching this. Currently it does not work and probably never will. void CustomFiberThread::WaterLevelAdjustment() { f32 x, y, z; f32 x1,y1,z1, dist; //eMapArea map; //f32 xoff, yoff, zoff; Ped ped = GetPlayerPed(); //if (IsCharInWater(GetPlayerPed())) //{ GetCharCoordinates(ped, &x, &y, &z); //GetOffsetFromCharInWorldCoords(ped, X, Y, Z, &xoff, &yoff, &zoff); waterLevel -=1; // point at current object to be seen (increments backward) if (waterLevel < -9999999) //12 { waterLevel = 1; // 1 } //} // //Water water; // Listed below are the water attributes. // 5,8,9,13 par5 (<4 hides water, 5 vis water w/height waves, 8/9 - water invisible, 13 vis water w/no waves //if (IsCharInWater(ped)) //{ GetCharCoordinates(ped, &x1, &y1, &z1); //map=GetMapAreaFromCoords(x1 + waterLevel, y1 + waterLevel, z1 + waterLevel + 150); //DisplayFrontEndMapBlips(true); //GetDistanceBetweenCoords3D(pedX, pedY, pedZ, x1 + waterLevel, y1 + waterLevel + 150, z1 + waterLevel + 150, &dist); GetWaterHeightNoWaves(3000, 3000, pedZ, waterMode); GetWaterHeight(3000, 3000, pedZ, waterMode); //GetWaterHeightNoWaves(1, pedY, pedZ, waterMode); // worked //GetWaterHeight(1, pedY, pedZ, waterMode); // worked sprintf_s(mes1, 300,"Changing the water height: %i, %i, %i, %i" , 5 + waterLevel, 2000, 1500 + waterLevel, waterMode+5); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); //} } void CustomFiberThread::WaterLevelReset() { waterLevel=1; PrintStringWithLiteralStringNow("STRING","Resetting the water level", 6500, true); } // Below is a mod that attempts to rotate a jet (that was attached to the helicopter). // Currently it does not work (since I don't understand how GetObjectRotationVelocity // works. void CustomFiberThread::RotateJet() { Object obj; f32 pX, pY, pZ; GetCarCharIsUsing(GetPlayerPed(), &lastcar); //GetObjectRotationVelocity(Object obj, &pX, &pY, &pZ); PrintStringWithLiteralStringNow("STRING","Jet rotation", 6500, true); } static void WaterLevelMode() { waterMode++; if (waterMode > 13) { waterMode = 1; } sprintf_s(mes1, 300,"Water Mode: %i" , waterMode); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } // This was a mod found online somewhere. Was never able to get it working properly. It is supposed to // flip nearby trash bags. Currently it is abandoned. void CustomFiberThread::FlipObject() { GetCharCoordinates(GetPlayerPed(), &px, &py, &pz); LogInfo(">>> GetCharCoordinates >> [ %.2f | %.2f | %.2f ]", px, py, pz); //FindNearestCollectableBinBags(px, py, pz); FindNearestEntitiesWithSpecialAttribute(px, py, pz); LogInfo(">>> FindNearestEntitiesWithSpecialAttribute"); if(LookAtNearbyEntityWithSpecialAttribute(0, &pCoord, &unkFloat, &unkFlag, &pModelHash, &pRotation)) { LogInfo(">>> LookAtNearbyEntityWithSpecialAttribute >> [ %.2f | %.2f | %.2f ] [ %.2f | %d ] [0x%X] [ %.2f ]", pCoord.X, pCoord.Y, pCoord.Z, unkFloat, unkFlag, pModelHash, pRotation); GetDistanceBetweenCoords3D(px, py, pz, pCoord.X, pCoord.Y, pCoord.Z, &pDist); if(pDist <= 10.0f) { GrabNearbyObjectWithSpecialAttribute(0, &pObj); LogInfo(">>> GrabNearbyObjectWithSpecialAttribute"); if(DoesObjectExist(pObj)) { LogInfo(">>> DoesObjectExist"); GetObjectModel(pObj, &pModel); LogInfo(">>> Object found! >>> [0x%X]",pModel); //ApplyForceToObject(pObj, 1, 0.0f, 0.0f, 5.0f, 0.0f, 0.0f, 0.0f, 0, 0, 1, 1); //just4fun :) MarkObjectAsNoLongerNeeded(&pObj); MarkModelAsNoLongerNeeded(pModel); PrintStringWithLiteralStringNow("STRING", "Flipping nearby object", 7500,1); LogInfo(">>>----------------------------------->>>"); } } } Wait(250); } // This is a newer mod as of August 2010. It allows the player to attach jets to a helicopter. // Then it turns off the helicopter visibility and the player only sees 3 jets in a row. // I liked this since it reminded me of the movie "Top Gun". // Future plans are to relocate the jet fume and create a jet weapon control where you can // fire a weapon from (similar to Top Gun). void CustomFiberThread::JetMod() { if (IsCharInAnyCar(GetPlayerPed()) && carObjectX ==113) { //Ped ped; Vehicle vehicle; f32 x, y, z; f32 px,py,pz,rx,ry,rz; f32 heading; eModel jet = GetModelHash("EC_jet4"); eModel jetstream = GetModelHash("nj5_firepip02"); isPlayerVisible=true; //PlayerIsInvisible(); GetCarCharIsUsing(GetPlayerPed(), &lastcar); SetCarVisible(lastcar, isVehicleVisible); // Turn flying vehicle visibility off GetCarCharIsUsing(GetPlayerPed(), &vehicle); GetCharCoordinates(GetPlayerPed(), &x, &y, &z); SetCharCoordinates(GetPlayerPed(), x+10, y-10, z); // calculate position of Niko in plane SetCharVisible(GetPlayerPed(), true); //GetCarCoordinates(vehicle, &x, &y, &z); RequestModel(jet); while(!HasModelLoaded(jet)) { Wait(150); } RequestModel(jetstream); while(!HasModelLoaded(jetstream)) { Wait(150); } // Jet #1 CreateObject(jet, x, y, z, &lastobj, true); AttachObjectToCar(lastobj, vehicle, 0, 0, -5, -1, 0, 0, 3.15); // Jet #2 CreateObject(jet, x, y+20, z, &lastobj, true); AttachObjectToCar(lastobj, vehicle, 0, -20, 0, -1, 0, 0, 3.15); // Jet #3 CreateObject(jet, x, y-20, z, &lastobj, true); AttachObjectToCar(lastobj, vehicle, 0, +20, 0, -1, 0, 0, 3.15); GetCarCoordinates(lastcar, &x, &y-10, &z-5); // Get position of spawned jets GetObjectHeading(lastobj, &heading); SetObjectHeading(lastobj, heading + 75); // Jet stream #2 (jet on the far left) CreateObject(jetstream, x, y+20, z, &lastobj, true); // Now spawn some jetstream //lastobj, vehicle, 0, -20, -12, +3, -1, 0, 3.15 (x=-20, y=-12., z=+3) AttachObjectToCar(lastobj, vehicle, 0, -20, -11, 6, -1, 0, 3.15); // append it to the jets (o,x,y,z) // Jet stream #1 (center plane) // lastobj, vehicle, 0, 0, -15, +3, -1, 0, 3.15 (x=0, y=-15., z=+3) CreateObject(jetstream, x, y-20, z+3, &lastobj, true); // Now spawn some jetstream AttachObjectToCar(lastobj, vehicle, 0, 0, -15, 3, -1, 0, 3.15); // append it to the jets // Jet stream #3 (jet on the far right) // lastobj, vehicle, 0, +20, -12, +3, -1, 0, 3.15 (x=+20, y=-12. z=+3) CreateObject(jetstream, x, y-20, z, &lastobj, true); // Now spawn some jetstream AttachObjectToCar(lastobj, vehicle, 0, 20, -11, 6, -1, 0, 3.15); // append it to the jets PrintStringWithLiteralStringNow("STRING", "F-15 Fighter Jets spawned", 3000, true); MarkObjectAsNoLongerNeeded(&lastobj); } if (!IsCharInAnyCar(GetPlayerPed()) && carObjectX !=113) { PrintStringWithLiteralStringNow("STRING", "You must be in the Annihilator first", 3000, true); } } // Do Jet Rotation (real time simulation) void CustomFiberThread::RotateJets() { if (IsCharInAnyCar(GetPlayerPed()) && carObjectX ==113) { //Ped ped; Vehicle vehicle; f32 x, y, z; f32 px,py,pz,rx,ry,rz; f32 heading; //eModel jet1 = GetModelHash("EC_jet4"); //eModel jet2 = GetModelHash("EC_jet4"); //eModel jet3 = GetModelHash("EC_jet4"); //eModel jetstream = GetModelHash("nj5_firepip02"); //GetCarCharIsUsing(GetPlayerPed(), &lastcar); //SetCarVisible(lastcar, isVehicleVisible); // Turn flying vehicle visibility off //GetCarCharIsUsing(GetPlayerPed(), &vehicle); GetCharCoordinates(GetPlayerPed(), &x, &y, &z); //SetCharCoordinates(GetPlayerPed(), x, y+8, z); // new line //SetCharVisible(GetPlayerPed(), true); //GetCarCoordinates(vehicle, &x, &y, &z); // Jet #3 //CreateObject(jet3, x, y-20, z, &lastobj, true); //AttachObjectToCar(lastobj, vehicle, 0, +20, 0, -1, 0, 0, 3.15); //GetCarCoordinates(lastcar, &x, &y-10, &z-5); // Get position of annihilator if (DoesObjectExist(lastobj)) { //if (IsObjectAttached(lastobj)) //{ GetObjectHeading(lastobj, &heading); SetObjectHeading(lastobj, heading + 75); xquat=xquat+6; GetObjectCoordinates(lastobj, &x, &y, &z); //SetObjectCoordinates(lastobj, x, y, z); GetObjectRotation(lastobj, &x, &y, &z); SetObjectRotation(lastobj, xquat, y, z); // Rotate on the X axis (grab center jet) PrintStringWithLiteralStringNow("STRING", "F-15 Jet rotation in motion", 3000, true); //MarkObjectAsNoLongerNeeded(&lastobj); //} } else if (!IsCharInAnyCar(GetPlayerPed()) && carObjectX !=113) { PrintStringWithLiteralStringNow("STRING", "You must be in the Annihilator first", 3000, true); } } } // This was a mod taken from SneakyJanit0r. It creates the mission driver (seen in the actual // Grand Theft IV series. Future plans are to create a auto heli pilot where the Player can // be attached onto. This mod is a newer upcoming one. void CustomFiberThread::DriverMission() { //Ped ped; f32 x, y, z; GetCharCoordinates(GetPlayerPed(), &x, &y, &z); Vehicle car = GetClosestCar(x, y, z, 500, false, 70); //eModel car = GetModelHash("POLICE"); //CreateCar(0x79FBB0C5, x - 3, y, z, &lastcar, true); if(DoesVehicleExist(car) && IsVehDriveable(car)) { RequestModel(Scripting::eModel::MODEL_POLICE); while(!HasModelLoaded(Scripting::eModel::MODEL_POLICE)) { Wait(150); } Ped driver; GetDriverOfCar(car, &driver); // eModel curObj = GetModelHash(objmod[ObjectX]); WarpCharIntoCarAsPassenger(GetPlayerPed(), car, 1); PrintStringWithLiteralStringNow("STRING","Crazy driver!", 6500, true); if(!DoesCharExist(driver)) { CreateRandomCharAsDriver(car, &driver); MakePedNasty(driver); SetCharInvincible(driver, true); SetCharWillFlyThroughWindscreen(driver, 0); SetCharWantedByPolice(driver, false); GiveWeaponToChar(driver, WEAPON_AK47, 1, 0); SetCurrentCharWeapon(driver, WEAPON_AK47, 1); //SetCarEngineOn(vehicle, true, true); //SetCarForwardSpeed(vehicle, dir + 8); //SetCarHeading(vehicle, dir + 2); PopCarBoot(car); } else { MakePedNasty(driver); } SetDriveTaskCruiseSpeed(driver, 150); // 255 } } // This is a future mod that will turn the spawned jets into a Top Gun fighter. // This will enable a Player to fire a gun from the plane. This will be done // by setting a radius coordinates to launch an explosion and send it downward // toward the ground. void CustomFiberThread::FireJetGuns() { Ped ped = GetPlayerPed(); ///Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); //GetPlayerChar(playerIndex, &ped); //GetDeadCharCoordinates(ped, &X, &Y, &Z); PrintStringWithLiteralStringNow("STRING", "Firing F-15 missiles", 9500, 1); //GetCharCoordinates(ped, &x, &y, &z); // CreateObject(jetstream, x, y-20, z, &lastobj, true); // Now spawn some jetstream Vehicle vehicle; f32 x,y,z, head, ground; f32 vehOffX, vehOffY, vehOffZ; if (DoesVehicleExist(lastcar)) { GetCarHeading(lastcar, &head); // use later to line up direction for jet missiles SetCarHeading(lastcar, head); // if angle=90,180,360 then head=1,2,3, etc while (m < 25200) // m !=45200 // Use floating point values later for faster FPS 35200.0800 { GetCharCoordinates(GetPlayerPed(), &x, &y, &z); GetCarCoordinates(lastcar, &x, &y, &z); //SetCharCoordinates(GetPlayerPed(), x, y, z); // just use x-40+m, y, z // Original explosion here //AddExplosion(x-30+(m*2), y, z-(m/360)*2, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); //AddExplosion(x+30+(m*2), y, z-(m/360)*2, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); // AttachObjectToCar(lastobj, vehicle, 0, 0, -15, 3, -1, 0, 3.15); // append it to the jets vehOffX = x; vehOffY = y; vehOffZ = z; AddExplosion(vehOffX, vehOffY+15+m+(m*2), vehOffZ-(m/360)*6, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(vehOffX, vehOffY+15+m+(m*2), vehOffZ-(m/360)*6, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); m = m + 6; // m = m + .6 } m=0; } } // This is a mod taken from SneakyJanit0r. It allows a Player to warp into a // nearby vehicle. void CustomFiberThread::WarpPlayerIntoVehicle() { //if(IsNetworkPlayerActive(playerMenuItem) && !HasNetworkPlayerLeftGame(playerMenuItem)) //{ Ped playerped; GetPlayerChar(playerMenuItem, &playerped); if(DoesVehicleExist(lastcar)) { if(!IsCharInAnyCar(playerped)) { PrintStringWithLiteralStringNow("STRING", "Player warped into a car", 7500,1); Vehicle vehicle; GetCarCharIsUsing(playerped, &vehicle); if(IsCarPassengerSeatFree(vehicle,0)) TaskWarpCharIntoCarAsPassenger(GetPlayerPed(), vehicle, 0); else if(IsCarPassengerSeatFree(vehicle, 1)) TaskWarpCharIntoCarAsPassenger(GetPlayerPed(), vehicle, 1); else if(IsCarPassengerSeatFree(vehicle, 2)) TaskWarpCharIntoCarAsPassenger(GetPlayerPed(), vehicle, 2); else if(IsCarPassengerSeatFree(vehicle, 3)) TaskWarpCharIntoCarAsPassenger(GetPlayerPed(), vehicle, 3); } } } void CustomFiberThread::PlayerSuperSpeed() { //f32 speed2; Ped ped = GetPlayerPed(); GetCharSpeed(ped, 100); //charRateSpeed++; sprintf_s(mes1, 300,"Player current speed: %i" , charRateSpeed); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } // This was a mod found online somewhere. It is supposed to modify the airport area. // Can't remember what I planned to do with it. void CustomFiberThread::ChangeAirportArea() { //SetCreateRandomCops(0); TerminateAllScriptsWithThisName("ambairportarea"); PrintStringWithLiteralStringNow("STRING", "Changing the airport setup.", 7500, 1); } // These are interesting mods that control the game's camera. Future plans will be set // camera spawning points to get a different angle on a specific scene. void CustomFiberThread::CamIsInFront() { Camera camera; Ped ped = GetPlayerPed(); f32 camx, camy, camz; f32 x, y, z; f32 fov; if (!DoesCamExist(camera)) { CreateCam(14, &camera); if (IsCamActive(camera)) { GetGameCam(&camera); SetCamActive(camera, true); GetCharCoordinates(ped, &x, &y, &z); //CreateCam(14, &camera); GetCamFov(camera, &fov); SetCamFov(camera, 7666.169312); GetCamPos(camera, &camx, &camy, &camz); SetCamPos(camera, 766.169312 + pedX, -569.311584 + pedY, 10.298987 + pedZ); GetCamRot(camera, &camx, &camy, &camz); //SetCamRot(camera, 466.169312, -580.311584, 10.298987); SetCamRot(camera, pedX, pedY, pedZ); //SetCamActive(camera, true); SetCamInFrontOfPed(ped); //SetCamTargetPed(camera, ped); //SetCamPropagate(camera, true); //SetCamBehindPed(ped); PointCamAtCoord(camera, x, y, z); SetDrunkCam(ped, true, 1); PrintStringWithLiteralStringNow("STRING", "Camera view is in front of player", 7500, 1); } } } void CustomFiberThread::CamIsBehind() { Camera camera; Ped ped = GetPlayerPed(); f32 camx, camy, camz; f32 x, y, z; f32 fov; if (!DoesCamExist(camera)) { SetCamActive(camera, true); GetCharCoordinates(ped, &x, &y, &z); CreateCam(14, &camera); GetCamFov(camera, &fov); SetCamFov(camera, 7666.169312); GetCamPos(camera, &camx, &camy, &camz); SetCamPos(camera, 766.169312, -569.311584, 10.298987); GetCamRot(camera, &camx, &camy, &camz); SetCamRot(camera, 466.169312, -580.311584, 10.298987); //SetCamActive(camera, true); //SetCamInFrontOfPed(ped); //SetCamTargetPed(camera, ped); //SetCamPropagate(camera, true); SetCamBehindPed(ped); PointCamAtCoord(camera, x+10, y, z+6); SetDrunkCam(ped, true, 1); SetPedIsDrunk(ped, true); PrintStringWithLiteralStringNow("STRING", "Camera view is behind player", 7500, 1); } } // This mod is supposed to remove standing peds, fires, planes in an area. CUrrently it does not // seem to work. void CustomFiberThread::ExtinguishFire() { Vehicle vehicle; f32 x, y, z; Ped myPlayer; Ped scanPlayer = GetPlayerPed(); GetCharCoordinates(scanPlayer, &x, &y, &z); ClearPedNonCreationArea(); ClearPedNonRemovalArea(); SwitchAmbientPlanes(true); GetNumberOfFiresInRange(x, y, z, AddExpRadius); //FireId StartCarFire(vehicle); ExtinguishFireAtPoint(x, y, z, CarRadius); PrintStringWithLiteralStringNow("STRING", "Clear ped(area), switch planes", 7500, 1); } // Code reference: http://gta4.pastebin.com/kL5ST0xE // This is a newer mod that allows the player to change the radio station at a // faster rate. void GTAStart::myIpodRadio_Hack() { //eRadioStation radio; //eRadioStation radio = &GetPlayerRadioStationName(); EnableFrontEndRadio(); SetLoudVehicleRadio(radio, true); SkipRadioForward(); ++changeStation; if (changeStation > 19) { changeStation = 0; // wrap vehicle position to reference first item in pointer array } sprintf_s(str5,300, gtaRadio[changeStation]); PrintStringWithLiteralStringNow("STRING", str5, 3000, true); //PrintStringWithLiteralStringNow("STRING", "Changing Radio Station", 8000, 1); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// NETWORK SETTINGS ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // #2 ActivateNetworkSettingsMenu void CustomFiberThread::ControlPlayersCar() { if(IsCharInAnyCar(GetPlayerPed())) { Vehicle vehicle; GetCarCharIsUsing(GetPlayerPed(), &vehicle); GetNetworkIdFromVehicle(vehicle, &netid); RequestControlOfNetworkId(netid); //SetNetworkIdCanMigrate(netid, false); GetVehicleFromNetworkId(vehicle, &netid); } else { GetNetworkIdFromPed(GetPlayerPed(), &netid); RequestControlOfNetworkId(netid); } } void CustomFiberThread::KickNetworkPlayer() { NetworkKickPlayer(playerMenuItem); PrintStringWithLiteralStringNow("STRING", "Network player kicked for insubordination", 7500,1); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// ANIMATION OPTIONS ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CustomFiberThread::PlayerSmoking() { //if (!HaveAnimsLoaded("amb@smoking_spliff")) //{ isAnimationPlaying = !isAnimationPlaying; const ch* displayString = (isAnimationPlaying ? "Animation is On" : "Animation is Off"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); RequestAnims("amb@smoking_spliff"); TaskPlayAnim(GetPlayerPed(), "create_spliff", "amb@smoking_spliff", 4.0f, 0, 0, 0, 0, -1); //RequestAnims("missbrian_1"); //} } void CustomFiberThread::PlayerWaving() { //if (!HaveAnimsLoaded("amb@smoking_spliff")) //{ isAnimationPlaying = !isAnimationPlaying; const ch* displayString = (isAnimationPlaying ? "Animation is On" : "Animation is Off"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); RequestAnims("amb@missbrian_1"); TaskPlayAnim(GetPlayerPed(), "friendly_idle", "amb@missbrian_1", 4.0f, 0, 0, 0, 0, -1); //RequestAnims("missbrian_1"); //} } void CustomFiberThread::PlayerArguing() { //if (!HaveAnimsLoaded("amb@smoking_spliff")) //{ isAnimationPlaying = !isAnimationPlaying; const ch* displayString = (isAnimationPlaying ? "Animation is On" : "Animation is Off"); PrintStringWithLiteralStringNow("STRING", displayString, 7500,1); RequestAnims("amb@argue"); TaskPlayAnim(GetPlayerPed(), "argue_a", "amb@argue", 4.0f, 0, 0, 0, 0, -1); //RequestAnims("missbrian_1"); //} } void CustomFiberThread::BulletTime() { isBulletTimeActive = !isBulletTimeActive; if (isBulletTimeActive==true) { Wait(50); SetTimeScale(0.1f); } else if (!isBulletTimeActive) { Wait(50); SetTimeScale(1.0f); } //Wait(50); const ch* displayString = (isBulletTimeActive ? "Bullet Time is On" : "Bullet Time is Off"); PrintStringWithLiteralStringNow("STRING", displayString, 7500,1); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// VEHICLE MASS DESTRUCTION ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CustomFiberThread::IncreaseCarRadius() { CarRadius +=20; // point at current vehicle to be seen (increments thru a pointer array) if (CarRadius > 60000) { CarRadius = 0; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Car Radius value: %d" ,CarRadius); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::DecreaseCarRadius() { CarRadius -=20; // point at current vehicle to be seen (increments thru a pointer array) if (CarRadius < 0) { CarRadius = 60000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Car Radius value: %d" ,CarRadius); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::ExplodeCarFlag() { Ped ped = GetPlayerPed(); SetNetworkIdExistsOnAllMachines(netid, true); isCarExploding = !isCarExploding; const ch* displayString = (isCarExploding ? "Explode Vehicle is ON" : "Explode Vehicle is OFF"); PrintStringWithLiteralStringNow("STRING", displayString,7500,1); } void CustomFiberThread::ForwardThruCarForceX() { APFCarx +=1; // point at current vehicle to be seen (increments thru a pointer array) if (APFCarx > 30000) { APFCarx = 0; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing Car Force West range: %d" ,APFCarx); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::BackwardThruCarForceX() { APFCarx -=1; // point at current vehicle to be seen (increments thru a pointer array) //if (APFCarx < 1) //{ // APFCarx = 300000; // wrap vehicle position to reference first item in pointer array //} sprintf_s(mes1,300,"Increasing Car Force East range: %d" ,APFCarx); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::ForwardThruCarForceY() { APFCary +=1; // point at current vehicle to be seen (increments thru a pointer array) if (APFCary > 30000) { APFCary = 0; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing Car Force South range: %d" ,APFCary); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::BackwardThruCarForceY() { APFCary -=1; // point at current vehicle to be seen (increments thru a pointer array) //if (APFCary < 1) //{ // APFCary = 300000; // wrap vehicle position to reference first item in pointer array //} sprintf_s(mes1,300,"Increasing Car Force North range: %d" ,APFCary); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::ForwardThruCarForceZ() { APFCarz +=1; // point at current vehicle to be seen (increments thru a pointer array) if (APFCarz > 30000) { APFCarz = 0; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing Car Force Up range: %d" ,APFCarz); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::BackwardThruCarForceZ() { APFCarz -=1; // point at current vehicle to be seen (increments thru a pointer array) //if (APFCarz < 1) //{ // APFCarz = 300000; // wrap vehicle position to reference first item in pointer array //} sprintf_s(mes1,300,"Increasing Car Force Down range: %d" ,APFCarz); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } // #12 ApplyingForceToVehicle() // This mod is my attempt to turn the Annihilator into a destructive weapon. // Online youtube videos demonstrate how the helicopter can shoot rocket // launchers. I have yet to get this working. void CustomFiberThread::HeliCombat() { //Vector3 pDeformation; Vehicle theCar; Ped checkped; f32 x,y,z; Ped myPlayer = GetPlayerPed(); Ped closeped = GetPlayerPed(); GetCharCoordinates(myPlayer, &x, &y, &z); eWeapon weapon = WEAPON_RLAUNCHER; //AllowScenarioPedsToBeReturnedByNextCommand(true); //Wait(200); // Melee if (IsCharInAnyHeli(myPlayer)) // Check if player is in a helicopter { if (IsCharInCombat(myPlayer)) { if(HasCharGotWeapon(myPlayer, weapon)) { GetCarCharIsUsing(myPlayer, &theCar); GetCarCoordinates(theCar, &x, &y, &z); SetCarCoordinates(theCar, x, y + 1, z); GetCurrentCharWeapon(myPlayer, &weapon); GiveWeaponToChar(myPlayer, weapon, 1000,0); SetCurrentCharWeapon(myPlayer, weapon, true); FirePedWeapon(myPlayer, x, y, z); //SetRocketLauncherFreebieInHeli(theCar); //GetCarDeformationAtPos(theCar, x, y, z, &pDeformation); //SetCharMeleeActionFlag0(checkped, true); //SetCarProofs(theCar, true, true, true, true, true); PrintStringWithLiteralStringNow("STRING", "Helicopter combat!", 5500, 1); } } } if (GetClosestChar(x, y, z, 40, CarRadius, 1, &checkped)) { if(DoesVehicleExist(theCar)) { SetCarEngineOn(theCar, 1, 1); PrintStringWithLiteralStringNow("STRING", "Restarting car engine", 5500, 1); } } } // Below are the mods to control the moving direction of a frozen vehicle. // The vehSpeed is used to speed up the moving vehicle. // This frozen car can also move through an object (building, etc) void GTAStart::FreezeCar_MoveWest() { freezemoveCarx +=vehSpeed; // point at current vehicle to be seen (increments thru a pointer array) FreezeCarInAir(); sprintf_s(mes1,300,"Increasing Car Force West cruise: %d" ,freezemoveCarx); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void GTAStart::FreezeCar_MoveEast() { freezemoveCarx -=vehSpeed; // point at current vehicle to be seen (increments thru a pointer array) FreezeCarInAir(); sprintf_s(mes1,300,"Increasing Car Force East cruise: %d" ,freezemoveCarx); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void GTAStart::FreezeCar_MoveSouth() { freezemoveCary += vehSpeed; // point at current vehicle to be seen (increments thru a pointer array) FreezeCarInAir(); sprintf_s(mes1,300,"Increasing Car Force South cruise: %d" ,freezemoveCary); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void GTAStart::FreezeCar_MoveNorth() { freezemoveCary -= vehSpeed; // point at current vehicle to be seen (increments thru a pointer array) FreezeCarInAir(); sprintf_s(mes1,300,"Increasing Car Force North cruise: %d" ,freezemoveCary); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void GTAStart::FreezeCar_MoveUp() { freezemoveCarz += vehSpeed; // point at current vehicle to be seen (increments thru a pointer array) FreezeCarInAir(); sprintf_s(mes1,300,"Increasing Car Force Upward cruise: %d" ,freezemoveCarz); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void GTAStart::FreezeCar_MoveDown() { freezemoveCarz -= vehSpeed; // point at current vehicle to be seen (increments thru a pointer array) FreezeCarInAir(); sprintf_s(mes1,300,"Increasing Car Force Downward cruise: %d" ,freezemoveCarz); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::FreezeCloseVehicle() { // Later try to setup a FreezeCarPosition(Vehicle vehicle, b8 frozen) option Ped ped; Blip blip; //Vehicle deadcar; f32 x,y,z; f32 vx,vy,vz; eVehicleDoor door; GetCharCoordinates(GetPlayerPed(), &vx, &vy, &vz); Vehicle theCar = GetClosestCar(vx, vy, vz, 15, CarRadius, 70); if (DoesVehicleExist(theCar)) { GetCarCoordinates(theCar, &vx, &vy, &vz); //GetCarCharIsUsing(ped, &theCar); f32 head; GetCarForwardX(theCar, &vx); GetCarForwardY(theCar, &vy); //SetCarCoordinates(theCar, vx, vy, vz+freezeforceZ); // was z+3 SetCarCoordinates(theCar, vx, vy, vz); // was z+3 GetCarHeading(theCar, &head); SetCarHeading(theCar, head); AddBlipForCar(theCar, &blip); freezeforceZ = freezeforceZ + .1; ApplyForceToCar(theCar, 3, vx, vy, vz+freezeforceZ, vx, vy, vz, 0, 0, 0, 1); FreezeCarPositionAndDontLoadCollision(theCar, true); FreezeCarPosition(theCar, 1); PrintStringWithLiteralStringNow("STRING", "Freezing nearby car",7500,1); } if(!DoesVehicleExist(theCar)) { PrintStringWithLiteralStringNow("STRING", "There isn't a vehicle here",7500,1); } } void CustomFiberThread::UnfreezeCloseVehicle() { // Later try to setup a FreezeCarPosition(Vehicle vehicle, b8 frozen) option //Vehicle deadcar; f32 x,y,z; f32 vx,vy,vz; eVehicleDoor door; GetCharCoordinates(GetPlayerPed(), &vx, &vy, &vz); Vehicle theCar = GetClosestCar(vx, vy, vz, 15, CarRadius, 70); if (DoesVehicleExist(theCar)) { GetCarCoordinates(theCar, &vx, &vy, &vz); f32 head; GetCarForwardX(theCar, &x); GetCarForwardY(theCar, &y); //SetCarCoordinates(theCar, vx, vy, vz+1); // was z+3 SetCarCoordinates(theCar, vx, vy, vz); // was z+3 GetCarHeading(theCar, &head); SetCarHeading(theCar, head); FreezeCarPosition(theCar, 0); PrintStringWithLiteralStringNow("STRING", "Unfreezing nearby car",7500,1); } if(!DoesVehicleExist(theCar)) { PrintStringWithLiteralStringNow("STRING", "There isn't a vehicle here",7500,1); } } // This is a newer mod that allow a helicopter/vehicle to grab a nearby vehicle and // attach it easily. Future plans are to grab every vehicle in range and stash // it into a pile on your car. // There is also a release vehicle option (that currently does not seem to work yet). void CustomFiberThread::HiJackCarOverhead() { Ped ped = GetPlayerPed(); f32 x, y, z, head; Vehicle theCar; GetCharCoordinates(ped, &x, &y, &z); GetCarCharIsUsing(GetPlayerPed(), &theCar); theCar = GetClosestCar(x, y ,z, CarRadius, 1, 1); if(DoesVehicleExist(theCar)) { PrintStringWithLiteralStringNow("STRING", "Hijacking car(s) from above", 8000, 1); GetCarForwardX(theCar, &x); GetCarForwardY(theCar, &y); SetCarCoordinates(theCar, x, y, z-14); // was z+3 GetCarHeading(theCar, &head); SetCarHeading(theCar, head); //FreezeCarPosition(theCar, 1); AttachCarToCar(theCar, lastcar, true, x, y, z-14, x, y, z); } } void CustomFiberThread::ReleaseHiJackedCar() { Ped ped = GetPlayerPed(); f32 x, y, z, head; Vehicle theCar; GetCharCoordinates(ped, &x, &y, &z); GetCarCharIsUsing(GetPlayerPed(), &theCar); theCar = GetClosestCar(x, y ,z, CarRadius, 1, 1); if(DoesVehicleExist(theCar)) { PrintStringWithLiteralStringNow("STRING", "Releasing hijacked car(s)", 8000, 1); GetCarForwardX(theCar, &x); GetCarForwardY(theCar, &y); SetCarCoordinates(theCar, x, y, z-14); // was z+3 GetCarHeading(theCar, &head); SetCarHeading(theCar, head); //FreezeCarPosition(theCar, 0); AttachCarToCar(theCar, lastcar, true, x, y, z-14, x, y, z); DetachPedFromWithinCar(ped, true); } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// PED APPLY FORCE OPTIONS ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // #2 Freeze Car in Air // #3 Unfreeze Car in Air void CustomFiberThread::IncreasePedRadius() { PedRadius +=50; // point at current vehicle to be seen (increments thru a pointer array) if (PedRadius > 60000) { PedRadius = 0; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Car Radius value: %d" ,PedRadius); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::DecreasePedRadius() { PedRadius -=50; // point at current vehicle to be seen (increments thru a pointer array) if (PedRadius < 0) { PedRadius = 60000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Car Radius value: %d" ,PedRadius); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::ForwardThruPedForceX() { APFPedx +=20; // point at current vehicle to be seen (increments thru a pointer array) if (APFPedx > 30000) { APFPedx = 0; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing Throw Ped West: %d" ,APFPedx); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::BackwardThruPedForceX() { APFPedx -=20; // point at current vehicle to be seen (increments thru a pointer array) if (APFPedx < 1) { APFPedx = 300000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing Throw Ped East: %d" ,APFPedx); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::ForwardThruPedForceY() { APFPedx +=20; // point at current vehicle to be seen (increments thru a pointer array) if (APFPedx > 30000) { APFPedx = 0; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing Throw Ped South: %d" ,APFPedx); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::BackwardThruPedForceY() { APFPedx -=20; // point at current vehicle to be seen (increments thru a pointer array) if (APFPedx < 1) { APFPedx = 300000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing Throw Ped North: %d" ,APFPedx); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::ForwardThruPedForceZ() { APFPedx +=20; // point at current vehicle to be seen (increments thru a pointer array) if (APFPedx > 30000) { APFPedx = 0; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing Throw Ped Up: %d" ,APFPedx); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::BackwardThruPedForceZ() { APFPedx -=20; // point at current vehicle to be seen (increments thru a pointer array) if (APFCarz < 1) { APFCarz = 300000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing Throw Ped Down: %d" ,APFPedx); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::ApplyingForceToPed() { Ped funChar; f32 x,y,z; Ped mePlayer = GetPlayerPed(); GetCharCoordinates(mePlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); isCharOnFire = !isCharOnFire; if (GetClosestChar(x, y, z, 40, PedRadius, 1, &funChar)) { if(DoesCharExist(funChar)) { SwitchPedToRagdoll(funChar, 10000, 5000, 2, 1, 1, 0); ApplyForceToPed(funChar, true, x, y, z, APFPedx/2, APFPedy/2, APFPedz/2, true, 9100, true, true); PrintStringWithLiteralStringNow("STRING", "Applying force to ped in range", 5500, 1); } } } // This is one of my favorite mods. It allows the player to lift an ped in range and // control where he/she(ped) can be throw at. void CustomFiberThread::LiftPedinAir() { Ped funChar; f32 x,y,z; Ped mePlayer = GetPlayerPed(); GetCharCoordinates(mePlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); isCharOnFire = !isCharOnFire; if (GetClosestChar(x, y, z, 40, PedRadius, 1, &funChar)) { if(DoesCharExist(funChar)) { while (m != 15200) { SwitchPedToRagdoll(funChar, 10000, 5000, 2, 1, 1, 0); GetCharVelocity(funChar, &x, &y, &z); SetCharVelocity(funChar, x + pedX+m, y + pedY+m, z + pedZ); m++; } m=0; SetCharSphereDefensiveArea(funChar, x, y, z, CarRadius); SwitchPedToAnimated(funChar, true); //fallingPedX++; SetCharInvincible(funChar, isPedInvincible); // Make ped invincible //GetCharWillCowerInsteadOfFleeing(funChar); if (IsPedRetreating(funChar)) { //Blip blip; //eWeapon weapon; //GetCurrentCharWeapon(funChar, &weapon); //GiveWeaponToChar(funChar,WEAPON_RLAUNCHER, 25000,5); //SetCurrentCharWeapon(funChar,WEAPON_RLAUNCHER, true); //FirePedWeapon(funChar, x, y, z); //AddBlipForChar(funChar, &blip); /////////ChangeBlipColour(blip, 2); /////////SetGroupCharDucksWhenAimedAt(funChar, true); SetCharWillUseCarsInCombat(funChar, true); AddArmourToChar(funChar, 1000); GetCharWillCowerInsteadOfFleeing(funChar); GetCharCoordinates(funChar, &x, &y, &z); SetCharCoordinates(funChar, x, y, z); SetCharAsEnemy(funChar, true); SetCharWantedByPolice(funChar, true); } if(IsPedFleeing(funChar)) { SwitchPedToRagdoll(funChar, 10000, 5000, 2, 1, 1, 0); GetCharVelocity(funChar, &x, &y, &z); SetCharVelocity(funChar, x + pedX, y + pedY, z + pedZ); PrintStringWithLiteralStringNow("STRING", "Fleeing peds are not safe either.", 5500, 1); } if(IsPedRetreating(funChar)) { SwitchPedToRagdoll(funChar, 10000, 5000, 2, 1, 1, 0); GetCharVelocity(funChar, &x, &y, &z); SetCharVelocity(funChar, x + pedX, y + pedY, z + pedZ); PrintStringWithLiteralStringNow("STRING", "Retreating peds are not safe either.", 5500, 1); } if(IsCharOnFoot(funChar)) { SwitchPedToRagdoll(funChar, 10000, 5000, 2, 1, 1, 0); GetCharVelocity(funChar, &x, &y, &z); SetCharVelocity(funChar, x + pedX, y + pedY, z + pedZ); PrintStringWithLiteralStringNow("STRING", "Running peds are not safe either.", 5500, 1); } if(IsCharInAir(funChar) && fallingPedX==80) { FreezeCharPosition(funChar, isPlayerFrozen); fallingPedX=0; } PrintStringWithLiteralStringNow("STRING", "Lifting ped in range", 5500, 1); if (isFunctionViewActive) { sprintf_s(mes1,300,"SetCharVelocity(funChar, x + pedX, y + pedY, z + pedZ) : %d, %d, %d" , x + pedX, y + pedY, z + pedZ); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } } } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// LIFT PED OPTIONS ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // #2 IncreasePedRadius() // #3 DecreasePedRadius() // #4 ResetAll_PedValues() // #5 Increase_Pedx() // Below are the controls to determine which direction to throw a ped (N,E,S,W) void CustomFiberThread::Decrease_Pedx() { pedX-=1; if (pedX < -999999) { pedX = 999999; } sprintf_s(mes1,300,"Decreasing throw Ped East range %i" ,pedX); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } // #7 Increase_Pedy() void CustomFiberThread::Decrease_Pedy() { pedY-=1; if (pedY < -999999) { pedY = 0; } sprintf_s(mes1,300,"Decreasing throw Ped North range %i" ,pedY); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } // #9 Increase_Pedz() void CustomFiberThread::Decrease_Pedz() { pedZ-=1; if (pedZ < -999999) { pedZ = -999999; } sprintf_s(mes1,300,"Decreasing throw Ped Down range %i" ,pedZ); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } // #11 LiftPedinAir() void CustomFiberThread::MakePedInvincible() { Ped funChar; f32 x,y,z; Ped mePlayer = GetPlayerPed(); GetCharCoordinates(mePlayer, &x, &y, &z); if (GetClosestChar(x, y, z, 40, PedRadius, 1, &funChar)) { if(DoesCharExist(funChar)) { //SwitchPedToRagdoll(funChar, 10000, 5000, 2, 1, 1, 0); //GetCharVelocity(funChar, &x, &y, &z); //SetCharVelocity(funChar, x + pedX, y + pedY, z + pedZ); //fallingPedX++; SetCharInvincible(funChar, isPedInvincible); // Make ped invincible GetCharWillCowerInsteadOfFleeing(funChar); if (IsPedRetreating(funChar)) { Blip blip; ColourIndex pColour; GetBlipColour(blip, &pColour); AddBlipForChar(funChar, &blip); ChangeBlipColour(blip, 2); AddBlipForCoord(x, y, z, &blip); eWeapon weapon; GetCurrentCharWeapon(funChar, &weapon); GiveWeaponToChar(funChar,WEAPON_RLAUNCHER, 25000,5); SetCurrentCharWeapon(funChar,WEAPON_RLAUNCHER, true); //FirePedWeapon(funChar, x, y, z); //SetGroupCharDucksWhenAimedAt(funChar, true); SetCharWillUseCarsInCombat(funChar, true); AddArmourToChar(funChar, 1000); GetCharCoordinates(funChar, &x, &y, &z); SetCharCoordinates(funChar, x, y, z); SetCharAllowedToDuck(funChar, true); GetCharWillCowerInsteadOfFleeing(funChar); SetCharAsEnemy(funChar, true); SetCharWantedByPolice(funChar, false); } } } isPedInvincible = !isPedInvincible; const ch* displayString = (isInvincible ? "Ped Invincibility On" : "Ped Invincibility Off"); PrintStringWithLiteralStringNow("STRING", displayString,6500,1); } // This is a marked favorite also. It scans an area of peds and throw multiple people around. // Very fun to watch. Also seen on my youtube channel. Ref: http://www.youtube.com/watch?v=irMeqsRqrbE void GTAStart::ApplyGravityToPeds() { Ped human; f32 x,y,z; Ped mePlayer = GetPlayerPed(); GetCharCoordinates(mePlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); //Wait(200); // Old x, y, z, 25, PedRadius, 1, &human if ((GetClosestChar(x, y, z, 40, PedRadius, 1, &human)) == true) { if(DoesCharExist(human)) { SwitchPedToRagdoll(human, 10000, 5000, x, y, z, 0); GetCharVelocity(human, &x, &y, &z); SetCharVelocity(human, x+pedX, y+pedY, z + pedZ); SetCharAllowedToDuck(human, false); } if(IsCharInjured(human)) { ClearCharLastDamageBone(human); } } //sprintf_s(mes1,300,"GTA IV value: %d" , gta.value); PrintStringWithLiteralStringNow("STRING", "Throw all Peds within distance", 8000, 1); } // This is a newer mod that will freeze any ped you walk close to. void GTAStart::FreezeNearestPed() { Ped human; f32 x,y,z; Blip blip; Ped mePlayer = GetPlayerPed(); GetCharCoordinates(mePlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); if ((GetClosestChar(x, y, z, 40, PedRadius, 1, &human)) == true) { if(DoesCharExist(human)) { SwitchPedToRagdoll(human, 10000, 5000, x, y, z, 0); FreezeCharPosition(human, true); //eModel model = MODEL_F_Y_STRIPPERC02; //eWeapon weapon = WEAPON_RLAUNCHER; //CreateChar(1, model, x, y, z, &leader, true); AddBlipForChar(human, &blip); SetCharAllowedToDuck(human, true); //AddAmmoToChar(human, weapon, 45000); //GiveWeaponToChar(human, WEAPON_AK47, 1, 0); //SetCurrentCharWeapon(human, WEAPON_AK47, 1); } } PrintStringWithLiteralStringNow("STRING", "Freezing peds in range", 8000, 1); } // This mod will unfreeze the ped you frozen (above). void GTAStart::UnfreezeNearestPed() { Ped human; f32 x,y,z; Ped mePlayer = GetPlayerPed(); GetCharCoordinates(mePlayer, &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); if ((GetClosestChar(x, y, z, 40, PedRadius, 1, &human)) == true) { if(DoesCharExist(human)) { SwitchPedToRagdoll(human, 10000, 5000, x, y, z, 2); // added x,y,z,2 (was x,y,z,0) FreezeCharPosition(human, false); } } PrintStringWithLiteralStringNow("STRING", "Unfreezing peds in range", 8000, 1); } void CustomFiberThread::MovePedRight() { Ped victim; f32 x,y,z; f32 walking; GetCharCoordinates(GetPlayerPed(), &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); if ((GetClosestChar(x, y, z, 40, PedRadius, 1, &victim)) == true) { if(DoesCharExist(victim)) { //SwitchPedToRagdoll(victim, 10000, 5000, x, y, z, 2); // added x,y,z,2 (was x,y,z,0) SetCharHeading(victim, walking + 5); } } PrintStringWithLiteralStringNow("STRING", "Move puppet ped to the right.", 8000, 1); } void CustomFiberThread::MovePedLeft() { Ped victim; f32 x,y,z; f32 walking; GetCharCoordinates(GetPlayerPed(), &x, &y, &z); AllowScenarioPedsToBeReturnedByNextCommand(true); Wait(200); if ((GetClosestChar(x, y, z, 40, PedRadius, 1, &victim)) == true) { if(DoesCharExist(victim)) { //SwitchPedToRagdoll(victim, 10000, 5000, x, y, z, 2); // added x,y,z,2 (was x,y,z,0) SetCharHeading(victim, walking - 5); } } PrintStringWithLiteralStringNow("STRING", "Move puppet ped to the left.", 8000, 1); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// SPEED CONTROLS ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // #1 ChangeWalkorSwimRate_Forward() // #2 ChangeWalkorSwimRate_Backward() // #4 VehicleSpeedForward() // #5 VehicleSpeedBackward() // #6 HeliSpeedCheat() void CustomFiberThread::CarVariableSpeed_Increment() { CarVariableSpeed +=1; // point at current vehicle to be seen (increments thru a pointer array) if (CarVariableSpeed > 990000) { CarVariableSpeed = -990000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increase Car Variable value: %d" ,CarVariableSpeed); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::CarVariableSpeed_Decrement() { CarVariableSpeed -=1; // point at current vehicle to be seen (increments thru a pointer array) if (CarVariableSpeed < -990000) { CarVariableSpeed = 990000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Decrease Car Variable value: %d" ,CarVariableSpeed); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void GTAStart::GameTest() { GTAStart gta; gta.value = 8; ClearWantedLevel(GetPlayer()); sprintf_s(mes1,300,"GTA IV value: %d" , gta.value); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } // #10 GTAStart::ApplyGravityToPeds() void GTAStart::AddExplosion_Fire_IncRange() { fireexplosionType +=1; // point at current vehicle to be seen (increments thru a pointer array) if (fireexplosionType > 990000) { fireexplosionType = -990000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing the fire radius range: %i" ,fireexplosionType); PrintStringWithLiteralStringNow("STRING", mes1, 6000, 1); } void GTAStart::AddExplosion_Fire_DecRange() { fireexplosionType -=1; // point at current vehicle to be seen (increments thru a pointer array) if (fireexplosionType < -990000) { fireexplosionType = 990000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Decreasing the fire radius range: %d" ,fireexplosionType); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void GTAStart::AddExplosion_Radius_IncRange() { AddExpRadius +=1; // point at current vehicle to be seen (increments thru a pointer array) if (AddExpRadius > 990000) { AddExpRadius = -990000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing the explosion radius range: %i" ,AddExpRadius); PrintStringWithLiteralStringNow("STRING", mes1, 6000, 1); } void GTAStart::AddExplosion_Radius_DecRange() { AddExpRadius -=1; // point at current vehicle to be seen (increments thru a pointer array) if (AddExpRadius < -990000) { AddExpRadius = 990000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Decreasing the explosion radius range: %d" ,AddExpRadius); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// FIRE CONTROLS ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void GTAStart::Increase_FireX() { fireX+=1; if (fireX > 999999) { fireX = -999999; } sprintf_s(mes1,300,"Increasing fire toward West Radius %i" ,fireX); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } void GTAStart::Decrease_FireX() { fireX-=1; if (fireX < -999999) { fireX = 999999; } sprintf_s(mes1,300,"Decreasing fire toward East Radius %i" ,fireX); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } void GTAStart::Increase_FireY() { fireY+=1; if (fireY > 999999) { fireY = -999999; } sprintf_s(mes1,300,"Increasing fire toward North Radius %i" ,fireY); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } void GTAStart::Decrease_FireY() { fireY-=1; if (fireY < -999999) { fireY = 999999; } sprintf_s(mes1,300,"Decreasing fire toward South Radius %i" ,fireY); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } void GTAStart::Increase_FireZ() { fireZ+=1; if (fireZ > 999999) { fireZ = -999999; } sprintf_s(mes1,300,"Increasing fire Upward Radius %i" ,fireZ); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } void GTAStart::Decrease_FireZ() { fireZ-=1; if (fireZ < -999999) { fireZ = 999999; } sprintf_s(mes1,300,"Decreasing fire Downward Radius %i" ,fireZ); PrintStringWithLiteralStringNow("STRING", mes1, 7500, 1); } void CustomFiberThread::ResetFireValues() { fireX=0; fireY=0; fireZ=0; PrintStringWithLiteralStringNow("STRING", "Reset Fire Value Defaults", 7500, 1); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////// EXPLOSION CONTROLS ///////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // #2 PlayerMakesExplosions(); // #3 GTAStart::Increase_FireX(); // #4 GTAStart::Decrease_FireX() // #5 GTAStart::Increase_FireY(); // #6 GTAStart::Decrease_FireY(); // #7 GTAStart::Increase_FireZ(); // #8 GTAStart::Decrease_FireZ(); void GTAStart::AddExplosion_Explosion_IncRange() { explosionType +=1; // point at current vehicle to be seen (increments thru a pointer array) if (explosionType > 990000) { explosionType = -990000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing the fire radius range: %i" ,explosionType); PrintStringWithLiteralStringNow("STRING", mes1, 6000, 1); } void GTAStart::AddExplosion_Explosion_DecRange() { explosionType -=1; // point at current vehicle to be seen (increments thru a pointer array) if (explosionType < -990000) { explosionType = 990000; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Decreasing the fire radius range: %d" ,explosionType); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } // #11 GTAStart::AddExplosion_Radius_IncRange(); // #12 GTAStart::AddExplosion_Radius_DecRange(); // #13 GTAStart::Audible(); // #14 GTAStart::Invisible(); void CustomFiberThread::ExplosionVisiblity() { isExplosionVisible = !isExplosionVisible; const ch* displayString = (isExplosionVisible ? "Explosion is On" : "Explosion is Off"); PrintStringWithLiteralStringNow("STRING", displayString, 7500,1); } // #15 GTAStart::CameraShake(); void CustomFiberThread::Increase_CameraShake() { cameraShake +=1; // point at current vehicle to be seen (increments thru a pointer array) if (cameraShake > 6) { cameraShake = 1; // wrap vehicle position to reference first item in pointer array } sprintf_s(mes1,300,"Increasing the camera shake range: %d" ,cameraShake); PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } void CustomFiberThread::MonsterExplosions() { Ped ped = GetPlayerPed(); Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); GetPlayerChar(playerIndex, &ped); f32 X, Y, Z; GetDeadCharCoordinates(ped, &X, &Y, &Z); //AddExplosion(X, Y, Z, 0, 1.0f + expType, 1 + expType, 0, 1); AddExplosion(X+fireX, Y+fireY, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); // Surrounding Explosions (distance from Player) AddExplosion(X+fireX+15, Y+fireY, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX-15, Y+fireY, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY+15, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY-15, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY, Z+fireZ+15, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY, Z+fireZ-15, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX+25, Y+fireY, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX-25, Y+fireY, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY+25, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY-25, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY, Z+fireZ+25, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY, Z+fireZ-25, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); // Further away AddExplosion(X+fireX+1000, Y+fireY, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX-1000, Y+fireY, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY+1000, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY-1000, Z+fireZ, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY, Z+fireZ+1000, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); AddExplosion(X+fireX, Y+fireY, Z+fireZ-1000, 0, explosionType, AddExpRadius, isExplosionVisible, cameraShake); if (expType > 1255) { expType = 0; } sprintf_s(mes1, 300,"Monster Explosions: %f, %i, %f" , 1.0f + expType, 1 + expType, 0, 1); PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); } // #16 ResetFireValues(); // Below is where the Status Displays are setup. void CustomFiberThread::TitleDisplay() { playerMenuToggle=0; helpMenuToggle=0; helpMenu2Toggle=0; SetTextColour(155, 120, 130, 205); //255,100,0,255=orange SetTextScale(.6f,.37f); SetTextBackground(120); DisplayTextWithLiteralString(.01f, .015f, "STRING", "My Super Mega Trainer Menu: F6 to exit"); // plot x,y, x+w, y+h DrawRect((.009), (.120), .210, .270, 0, 0, 0, 125); // x, y, width, height, red, green, blue, alpha) // y(170) h(180) //23 SetTextColour(255, 255, 0, 255); SetTextScale(.2f,.22f); //SetTextDropshadow(40, 255, 255, 100, 2, 1); DisplayTextWithLiteralString(.45f, .97f, "STRING", "By StevorNtheHouse (c) 2009"); // Mouse coordinates /* f32 pX, pY; GetMousePosition(&pX, &pY); menuxoff=pX; menuyoff=pY; char temp1[300]; sprintf_s(temp1,300,"X: %f Y: %f" , menuxoff,menuyoff); SetTextScale(.3,.22); DisplayTextWithLiteralString(.5, .5, "STRING", temp1); */ //////////////////////////////////////////////////// //SetTextColour(255, 255, 132, 255); //SetTextScale(.2f,.22f); //SetTextDropshadow(40, 255, 255, 100, 2, 1); //DisplayTextWithLiteralString(.45f, .89f, "STRING", "Number value:"); // Draw Stat Rectangles DrawRect(.900, .980, .270, .220, 0, 0, 0, 120); // Box for Status Menu (bottom right corner) // .160, 0,0,0,100 //DrawRect(.900, .995, .250, .045, 0, 0, 0, 100); // x, y, w, h Black line DrawRect(.090, .995, .185, .065, 0, 0, 0, 200); // Box for Player Coordinates ViewPlayerCoordinates(); SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.785f, .870f, "STRING", "Current Weather:"); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.912, .870f, "STRING", weathermod[weatherX+2]); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.785f, .885f, "STRING", "God Mode:"); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.785f, .900f, "STRING", "Floating:"); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.785f, .915f, "STRING", "Numpad Keys:"); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.785f, .930f, "STRING", "Hovering Rate Speed:"); SetTextColour(255, 255, 0, 255); char temp4[300]; sprintf_s(temp4, 300," %i" , hoveringControl); SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.905f, .930f, "STRING", temp4); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.785f, .945f, "STRING", "Teleporter:"); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.785f, .960f, "STRING", "Object:"); if (objectNum > 0) { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.836f, .960f, "STRING", spawnedListObj[listView]); } else { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.836f, .960f, "STRING", "None"); // Object Display } SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.785f, .975f, "STRING", "Vehicle:"); if (vehicleNum > 0) { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.836f, .975f, "STRING", spawnedListVeh[listVehView]); } else { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.836f, .975f, "STRING", "None"); } char temp2[300]; sprintf_s(temp2, 300," %s" , TelName[TeleNamecntr-2]); SetTextScale(.2f, .16f); if (telFlag==1) // Use this to set Teleport to "None" first time mod is run { SetTextColour(255, 255, 0, 255); DisplayTextWithLiteralString(.855f, .945f, "STRING", temp2); } if (numFlag < 1) // First time game is run Numpad line will display "OFF" { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.935f, .915f, "STRING", "OFF"); } if (isInvincible==true) { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.912f, .885f, "STRING", "ON"); } else { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.935f, .885f, "STRING", "OFF"); // was 933 } if (floatActive < 1) // Will display "OFF" before Floating ON/OFF menu is activated { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.935f, .900f, "STRING", "OFF"); } if (isFloating==true && floatActive > 0) { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.935f, .900f, "STRING", "OFF"); } else if(isFloating==false && floatActive > 0) { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.912f, .900f, "STRING", "ON"); } if (isNumPadActive==true && numFlag==1) { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.912f, .915f, "STRING", "ON"); } else if (isNumPadActive==false && numFlag==1) { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.935f, .915f, "STRING", "OFF"); } if (objectNum > 0 && menuLevel==1) // Will show in Object menu after object is spawned { SetTextColour(255, 255, 0, 255); SetTextScale(.2f, .16f); DisplayTextWithLiteralString(.15f, .215f, "STRING", spawnedListObj[listView]); // .15f, .200f } } /* void CustomFiberThread::DisplaySomeText() { LPD3DXFONT m_font; // Create a D3DX font object D3DXCreateFont( gD3dDevice, 20, 0, FW_BOLD, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, TEXT("Arial"), &m_font ); } */ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////// START MENU SETUP HERE //////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // The description below was the original way I had to create a new menu (pain). Now with the MainMenu function my // life has gotten easier. // To change a menu item. First change the first occurance of menuLimit (global variables) +1 to add the new menu scroll limit // Be sure to add the new lines into the MenuDesc list. Each section has 1-16 items (including the " ") // Then add new functions(above), example: void CustomFiberThread::NewFunction() // Next add new item to appropriate place in the Menu lists (MenuExec01 - MenuExec10). example: if (item==23) NewFunction(); // If adding a new main menu be certain to change the menuLimit + 1 (menuLimit=9 example). Then add the new item to MenuDesc // The showNewText should point to the correct text (count all arrays if this is necessary). MenuDesc starts at 0. // Change new menu item in ResetMenuDefaults (example: menuLimit=9) void CustomFiberThread::MenuExec01(u32 item) { // Build menu selection for all menu items if(item==1) menuLevel=0; // Main menu if(item==2) menuLevel=1; // Go to Object List if(item==3) menuLevel=2; // Go to Game Switches if(item==4) menuLevel=3; // Go to Player Options if(item==5) menuLevel=4; // Go to Vehicle Options if(item==6) menuLevel=5; // GO to Teleport Options if(item==7) menuLevel=6; // Go to Ped Options if(item==8) menuLevel=7; // Go to Power Options if(item==9) menuLevel=8; // Go to Extra Options if(item==10) menuLevel=9; // Go to Network Settings if(item==11) menuLevel=10; // Go to Animation Settings if(item==12) menuLevel=11; // Go to Mass Destruction Settings if(item==13) menuLevel=12; // Go To Freeze Vehicle Options if(item==14) menuLevel=13; // Go To Lift Ped Options if(item==15) menuLevel=14; // Go To Speed Control Options if(item==16) menuLevel=15; // Go To Fire Control Options if(item==17) menuLevel=16; // Go To Explosion Controls if(item==18) menuLevel=17; // Go To Player Selector } // This function is an attempt to recreate menus that house player spawning // Example // < ---- PLAYER SELECTOR MENU ---- > // Spawn Roman // Spawn Niko // Spawn Brucie // Spawn Nurse void CustomFiberThread::Sub_MenuExec1(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) SpawnaVehicle(0); if(item==3) SpawnaVehicle(1); if(item==4) SpawnaVehicle(2); if(item==5) SpawnaVehicle(3); if(item==6) SpawnaVehicle(4); if(item==7) SpawnaVehicle(5); if(item==8) SpawnaVehicle(6); if(item==9) SpawnaVehicle(7); if(item==10) SpawnaVehicle(8); if(item==11) SpawnaVehicle(9); if(item==12) SpawnaVehicle(10); if(item==13) SpawnaVehicle(11); if(item==14) SpawnaVehicle(12); if(item==15) SpawnaVehicle(13); if(item==16) SpawnaVehicle(14); if(item==17) SpawnaVehicle(15); if(item==18) SpawnaVehicle(16); if(item==19) SpawnaVehicle(17); if(item==20) SpawnaVehicle(18); if(item==21) SpawnaVehicle(19); if(item==22) ResetMenuDefaults(item); Wait(100); } } void CustomFiberThread::Sub_MenuExec4_B(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) { PlayerX=19; ChangeToNewPlayer(19); } if(item==3) { PlayerX=20; ChangeToNewPlayer(20); } if(item==4) { PlayerX=21; ChangeToNewPlayer(21); } if(item==5) { PlayerX=22; ChangeToNewPlayer(22); } if(item==6) { PlayerX=23; ChangeToNewPlayer(23); } if(item==7) { PlayerX=24; ChangeToNewPlayer(24); } if(item==8) { PlayerX=25; ChangeToNewPlayer(25); } if(item==9) { PlayerX=26; ChangeToNewPlayer(26); } if(item==10) { PlayerX=27; ChangeToNewPlayer(27); } if(item==11) { PlayerX=28; ChangeToNewPlayer(28); } if(item==12) { PlayerX=29; ChangeToNewPlayer(29); } if(item==13) { PlayerX=30; ChangeToNewPlayer(30); } if(item==14) { PlayerX=31; ChangeToNewPlayer(31); } if(item==15) { PlayerX=32; ChangeToNewPlayer(32); } if(item==16) { PlayerX=33; ChangeToNewPlayer(33); } if(item==17) { PlayerX=34; ChangeToNewPlayer(34); } if(item==18) { PlayerX=35; ChangeToNewPlayer(35); } if(item==19) { PlayerX=36; ChangeToNewPlayer(36); } if(item==20) { PlayerX=37; ChangeToNewPlayer(37); } if(item==21) { PlayerX=38; ChangeToNewPlayer(38); } if(item==22) { ResetMenuDefaults(item); } Wait(100); } } void CustomFiberThread::Sub_MenuExec4_C(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) { PlayerX=39; ChangeToNewPlayer(39); } if(item==3) { PlayerX=40; ChangeToNewPlayer(40); } if(item==4) { PlayerX=41; ChangeToNewPlayer(41); } if(item==5) { PlayerX=42; ChangeToNewPlayer(42); } if(item==6) { PlayerX=43; ChangeToNewPlayer(43); } if(item==7) { PlayerX=44; ChangeToNewPlayer(44); } if(item==8) { PlayerX=45; ChangeToNewPlayer(45); } if(item==9) { PlayerX=46; ChangeToNewPlayer(46); } if(item==10) { PlayerX=47; ChangeToNewPlayer(47); } if(item==11) { PlayerX=48; ChangeToNewPlayer(48); } if(item==12) { PlayerX=49; ChangeToNewPlayer(49); } if(item==13) { PlayerX=50; ChangeToNewPlayer(50); } if(item==14) { PlayerX=51; ChangeToNewPlayer(51); } if(item==15) { PlayerX=52; ChangeToNewPlayer(52); } if(item==16) { PlayerX=53; ChangeToNewPlayer(53); } if(item==17) { PlayerX=54; ChangeToNewPlayer(54); } if(item==18) { PlayerX=55; ChangeToNewPlayer(55); } if(item==19) { PlayerX=56; ChangeToNewPlayer(56); } if(item==20) { PlayerX=57; ChangeToNewPlayer(57); } if(item==21) { PlayerX=58; ChangeToNewPlayer(58); } if(item==22) { ResetMenuDefaults(item); } Wait(100); } } void CustomFiberThread::MenuExec2(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) // change to menuItem IncrementObjectList(); if(item==3) DecrementObjectList(); if(item==4) ObjectSpawner(); if(item==5) ForwardSkipObjList(); if(item==6) BackwardSkipObjList(); if(item==7) AttachObjectToVehicle(); if(item==8) DetatchObjectFromVehicle(); if(item==9) //PrintStringWithLiteralStringNow("STRING", "Rotate object under construction", 7500, 1); RotateAnObject(); if(item==10) DeleteLastObject(); if(item==11) ObjectIsInvisible(); if(item==12) ViewSpawnedObject(); if(item==13) ApplyForceToTheObject(); if(item==14) RotateObjectOnCar(); if(item==15) RotateObjectX(); if(item==16) RotateObjectY(); if(item==17) RotateObjectZ(); if(item==18) MoveObjectNorth(); if(item==19) MoveObjectSouth(); if(item==20) MoveObjectEast(); if(item==21) MoveObjectWest(); if(item==22) ResetMenuDefaults(item); Wait(100); } } // Here is where the menus get called from. This worked with the a menu function I designed (example below) // MainMenu(6, "< ---- ANIMATION OPTIONS MENU ---- >","Player smoking","Player Waving","Player Arguing", // "Bullet Time (Matrix style)","Top Menu"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "); void CustomFiberThread::MenuExec3(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) HoveringControl(); if(item==3) ChangeWalkorSwimRate_Forward(); if(item==4) ChangeWalkorSwimRate_Backward(); if(item==5) NumpadSwitch(); if(item==6) FloatingAbility(); if(item==7) ChangeObjectSpeed(); if(item==8) ResetHoveringControl(); if(item==9) ResetObjectSpeed(); if(item==10) ResetVehicleSpeed(); if(item==11) FreezeCharMode(); if(item==12) HeliSpeedCheat(); if(item==13) GTAFunctionViewer(); // Will show attributes of a function. Exp: GodCar(1982422,152434, 0024242, true) if(item==14) Relationship_Toggle(); if(item==15) //PrintStringWithLiteralStringNow("STRING", "Mouse setup under construction", 7500, 1); MouseSetup(); if(item==16) //PrintStringWithLiteralStringNow("STRING", "Menu mouse under construction", 7500, 1); MenuMouseInProcess(); if(item==17) //PrintStringWithLiteralStringNow("STRING", "Cannot create gravity gun", 7500, 1); CreateGravGun(); if(item==18) PrintStringWithLiteralStringNow("STRING", "Gravity gun under construction", 7500, 1); // GravGunExec(); if(item==19) NumpadKeysControlExplosions(); if(item==20) NumpadKeysControlObjects(); if(item==21) RemoveAllWeapons(); if(item==22) ResetMenuDefaults(item); Wait(100); } } void CustomFiberThread::MenuExec4(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) ChangeToNewPlayer(0); if(item==3) DetermineIfGodmode(); if(item==4) RestorePlayerHealth(); if(item==5) WeaponsLoadedSetOne(); if(item==6) WeaponsLoadedSetTwo(); if(item==7) RemoveWantedLevel(); if(item==8) IncreasePlayerMoney(); if(item==9) //PrintStringWithLiteralStringNow("STRING", "Relationship Status under construction", 9500, 1); WarpPlayerIntoVehicle(); if(item==10) PlayerIsInvisible(); if(item==11) AttachPedToVehicle(); if(item==12) GravitySelector(); if(item==13) WeaponSetNonStandard(); if(item==14) ExecuteYourPlayer(); if(item==15) DumbCopsControl(); if(item==16) IncreaseShootRate(); if(item==17) DecreaseShootRate(); if(item==18) CharShootRate(); if(item==19) CharAccuracy(); if(item==20) FireBullet(); if(item==21) ActivateRagdoll(); if(item==22) GoThroughDoors(); if(item==23) ResetMenuDefaults(item); Wait(100); } } void CustomFiberThread::MenuExec5(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) ForwardThruCarList(); if(item==3) BackwardThruCarList(); if(item==4) SpawnaVehicle(-1); if(item==5) GodCar(); if(item==6) RepairCar(); if(item==7) ChangeVehicleSpeed(); if(item==8) ExplodeVehicleInVicinity(); if(item==9) FlipVehicle(); if(item==10) CarIsInvisible(); if(item==11) ActiveSpawnedVehicle(); if(item==12) DeleteVehicle(); if(item==13) VehicleSpeedForward(); if(item==14) GTAStart::FreezeCarInAir(); if(item==15) UnFreezeCarInAir(); if(item==16) CloseCarDoors(); if(item==17) CarNeons(); if(item==18) SpawnEmergencyVehicle(); if(item==19) CrashCarsIntoPeds(); if(item==20) IncreaseCarRemoteDir(); if(item==21) DecreaseCarRemoteDir(); if(item==22) ReviveDeadCar(); if(item==23) ChangeCarColor(); if(item==24) BurstingTheTires(); if(item==25) HiJackCarOverhead(); if(item==26) ReleaseHiJackedCar(); if(item==27) ResetMenuDefaults(item); Wait(100); } } void CustomFiberThread::MenuExec6(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) ForwardthruTeleportList(); if(item==3) BackwardthruTeleportList(); if(item==4) TeleporterActive(); if(item==5) SaveLastTeleportLocation(); if(item==6 && savedTelFlag ==1) ActivateSavedTeleportLocation(); else if (item==6 && savedTelFlag < 1) PrintStringWithLiteralStringNow("STRING", "You must save a teleport location first before it can be activated.", 9500, 1); if(item==7) ResetMenuDefaults(item); Wait(100); } } void CustomFiberThread::MenuExec7(u32 item) { // Work on resetting item=1 later. Because if a menu item is selected that is the same as the item number on // the sub menu, it will always go to ResetMenuDefaults. This leaves it at the main menu and the change will // never be seen showNewText=0 Ped ped; if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) ViewPedForwardList(); if(item==3) ViewPedBackwardList(); if(item==4) SpawnPedSelector(); if(item==5) SpawnCops(); if(item==6) PedSpawner(); if(item==7) ApplyingForceToPed(); if(item==8) ActiveSpawnedPed(); if(item==9) DeleteLastPed(); if(item==10) // ZombieMod(); PedDropWeapon(); if(item==11) MakePedNasty(ped); if(item==12) TaskPutHandsUp(); if(item==13) TaskCombatWithPeds(); if(item==14) TaskPlayerSitDown(); if(item==15) PedOnFire(); if(item==16) ZombieMod(); // BodyGuardMod(); if(item==17) LiftPedFromWater(); //MakeGroup(); if(item==18) ForcePedFromCar(); if(item==19) BecomeaPassenger(); if(item==20) RevivePed(); if(item==21) AttachPedstoCar(); if(item==22) StealPedsObject(); if(item==23) GTAStart::FreezeNearestPed(); if(item==24) GTAStart::UnfreezeNearestPed(); if(item==25) ResetMenuDefaults(item); Wait(100); } } void CustomFiberThread::MenuExec8(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) DetermineIfGodmode(); if(item==3) RestorePlayerHealth(); if(item==4) GTAStart::PlayerMakesFire(); if(item==5) TornadoPower(); if(item==6) BikeReset(); if(item==7) PlayerMakesExplosions(); if(item==8) PlayerAttacking(); if(item==9) BulletForceToCars(); if(item==10) Increase_Pedx(); if(item==11) Increase_Pedy(); if(item==12) Increase_Pedz(); if(item==13) ResetAll_PedValues(); // TrafficHavok(); if(item==14) { GetNetworkIdFromObject(lastobj, &netid); SetNetworkIdExistsOnAllMachines(netid, true); ResetMenuDefaults(item); } } } void CustomFiberThread::MenuExec9(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) ViewWeather(); if(item==3) ChangeTime(); if(item==4) AttachVehicletoVehicle(); if(item==5) CarHydralics(); if(item==6) AttachPedToVehicle(); //if(item==7) // ChangeCarColor(); if(item==8) WaterLevelMode(); if(item==9) WaterLevelAdjustment(); if(item==10) WaterLevelReset(); if(item==11) RotateJet(); if(item==12) PrintStringWithLiteralStringNow("STRING", "Flip object under construction", 7500, 1); //FlipObject(); if(item==13) JetMod(); if(item==14) DriverMission(); if(item==15) FireJetGuns(); if(item==16) CamIsInFront(); if(item==17) CamIsBehind(); if(item==18) ExtinguishFire(); if(item==19) GTAStart::myIpodRadio_Hack(); if(item==20) GlobalDelete(); if(item==21) ResetMenuDefaults(item); Wait(100); } } // This mod was created by SneakyJanit0r. It creates a Player Menu that shows the // names of all player's that joined a server. // Future plans are to create a mod to track a player's coordinates (in a server) // and spy on them (hee hee). // I have alot of plans to mastering the Network functions, but presently I'm to // busy coming up with regular mods in Single Player (Free Mode). void CustomFiberThread::MenuExec10(u32 item) { if(item==2) { PrintStringWithLiteralStringNow("STRING", "Activating Settings Menu", 9500, 1); ActivateNetworkSettingsMenu(); } if(item==3) ControlPlayersCar(); if(item==4) KickNetworkPlayer(); if(item==5) { GetNetworkIdFromObject(lastobj, &netid); SetNetworkIdExistsOnAllMachines(netid, true); ResetMenuDefaults(item); } } void CustomFiberThread::MenuExec11(u32 item) { if(item==2) PlayerSmoking(); if(item==3) PlayerWaving(); if(item==4) PlayerArguing(); if(item==5) BulletTime(); if(item==6) { GetNetworkIdFromObject(lastobj, &netid); SetNetworkIdExistsOnAllMachines(netid, true); ResetMenuDefaults(item); } } // The below option for: // if (kcur5 && !main_menu) // kcur5=!kcur5; // if (kprev5 != kcur5 && !main_menu) // { // kprev5 = kcur5; // will allow a menu to be automatically held down. This saves the old menus that had to be // pressed each time. This is also how I've created the effect to spawn quickly, // explode, etc. void CustomFiberThread::MenuExec12(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) IncreaseCarRadius(); if(item==3) DecreaseCarRadius(); if(item==4) ExplodeCarFlag(); if(item==5) ForwardThruCarForceX(); if(item==6) BackwardThruCarForceX(); if(item==7) ForwardThruCarForceY(); if(item==8) BackwardThruCarForceY(); if(item==9) ForwardThruCarForceZ(); if(item==10) BackwardThruCarForceZ(); if(item==11) ApplyingForceToVehicle(); if(item==12) HeliCombat(); if(item==13) GTAStart::FreezeCar_MoveWest(); if(item==14) GTAStart::FreezeCar_MoveEast(); if(item==15) GTAStart::FreezeCar_MoveSouth(); if(item==16) GTAStart::FreezeCar_MoveNorth(); if(item==17) GTAStart::FreezeCar_MoveUp(); if(item==18) GTAStart::FreezeCar_MoveDown(); if(item==19) HiJackCarOverhead(); if(item==20) ReleaseHiJackedCar(); if(item==21) { GetNetworkIdFromObject(lastobj, &netid); SetNetworkIdExistsOnAllMachines(netid, true); ResetMenuDefaults(item); } } } void CustomFiberThread::MenuExec13(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) GTAStart::FreezeCarInAir(); if(item==3) UnFreezeCarInAir(); if(item==4) GTAStart::FreezeCar_MoveWest(); if(item==5) GTAStart::FreezeCar_MoveEast(); if(item==6) GTAStart::FreezeCar_MoveSouth(); if(item==7) GTAStart::FreezeCar_MoveNorth(); if(item==8) GTAStart::FreezeCar_MoveUp(); if(item==9) GTAStart::FreezeCar_MoveDown(); if(item==10) GTAStart::myIpodRadio_Hack(); if(item==11) FreezeCloseVehicle(); if(item==12) UnfreezeCloseVehicle(); if(item==13) ResetMenuDefaults(item); } } void CustomFiberThread::MenuExec14(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) IncreasePedRadius(); if(item==3) DecreasePedRadius(); if(item==4) ResetAll_PedValues(); if(item==5) Increase_Pedx(); if(item==6) Decrease_Pedx(); if(item==7) Increase_Pedy(); if(item==8) Decrease_Pedy(); if(item==9) Increase_Pedz(); if(item==10) Decrease_Pedz(); if(item==11) LiftPedinAir(); if(item==12) MakePedInvincible(); if(item==13) GTAStart::ApplyGravityToPeds(); if(item==14) GTAStart::FreezeNearestPed(); if(item==15) GTAStart::UnfreezeNearestPed(); if(item==16) MovePedRight(); if(item==17) MovePedLeft(); if(item==18) ResetMenuDefaults(item); } } void CustomFiberThread::MenuExec15(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) ChangeWalkorSwimRate_Forward(); if(item==3) ChangeWalkorSwimRate_Backward(); if(item==4) VehicleSpeedForward(); if(item==5) VehicleSpeedBackward(); if(item==6) HeliSpeedCheat(); if(item==7) CarVariableSpeed_Increment(); if(item==8) CarVariableSpeed_Decrement(); if(item==9) GTAStart::GameTest(); if(item==10) GTAStart::ApplyGravityToPeds(); if(item==11) GTAStart::AddExplosion_Explosion_IncRange(); if(item==12) GTAStart::AddExplosion_Explosion_DecRange(); if(item==13) GTAStart::AddExplosion_Radius_DecRange(); //if(item==14) // GTAStart::fireRadius2DecRange(); if(item==14) ResetMenuDefaults(item); } } void CustomFiberThread::MenuExec16(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) GTAStart::PlayerMakesFire(); if(item==3) GTAStart::Increase_FireX(); if(item==4) GTAStart::Decrease_FireX(); if(item==5) GTAStart::Increase_FireY(); if(item==6) GTAStart::Decrease_FireY(); if(item==7) GTAStart::Increase_FireZ(); if(item==8) GTAStart::Decrease_FireZ(); if(item==9) GTAStart::AddExplosion_Fire_IncRange(); if(item==10) GTAStart::AddExplosion_Fire_DecRange(); if(item==11) GTAStart::AddExplosion_Radius_IncRange(); if(item==12) GTAStart::AddExplosion_Radius_DecRange(); //if(item==13) // GTAStart::Audible(); //if(item==14) // GTAStart::Invisible(); //if(item==15) // GTAStart::CameraShake(); if(item==13) ResetFireValues(); //if(item==17) // Blank() // Blank is setup to fix a bug I have in the menus. Sometimes they don't work after // having so many items on one menu. I have yet to correct this. if(item==14) ResetMenuDefaults(item); } } void CustomFiberThread::MenuExec17(u32 item) { if (kcur5 && !main_menu) kcur5=!kcur5; if (kprev5 != kcur5 && !main_menu) { kprev5 = kcur5; if(item==2) PlayerMakesExplosions(); if(item==3) GTAStart::Increase_FireX(); if(item==4) GTAStart::Decrease_FireX(); if(item==5) GTAStart::Increase_FireY(); if(item==6) GTAStart::Decrease_FireY(); if(item==7) GTAStart::Increase_FireZ(); if(item==8) GTAStart::Decrease_FireZ(); if(item==9) GTAStart::AddExplosion_Explosion_IncRange(); if(item==10) GTAStart::AddExplosion_Explosion_DecRange(); if(item==11) GTAStart::AddExplosion_Radius_IncRange(); if(item==12) GTAStart::AddExplosion_Radius_DecRange(); //if(item==13) // GTAStart::Audible(); //if(item==13) // ExplosionVisiblity(); //if(item==14) // Increase_CameraShake(); if(item==13) ResetFireValues(); if(item==14) MonsterExplosions(); if(item==15) ResetMenuDefaults(item); } } void CustomFiberThread::ResetMenuDefaults(u32 item) { item = 0; menuItem=0; menuLevel = 0; submenuLimit=10; SubMenuPlayerSelector=0; ClearMenuLines(); main_menu = true; //MenuDisplay(); } // last parameter before change MenuDs21 int MainMenu(int Mnlmt, char* MenuDs0, char* MenuDs1, char* MenuDs2, char* MenuDs3, char* MenuDs4, char* MenuDs5, char* MenuDs6, char* MenuDs7, char* MenuDs8, char* MenuDs9, char* MenuDs10, char* MenuDs11, char* MenuDs12, char* MenuDs13, char* MenuDs14, char* MenuDs15, char* MenuDs16, char* MenuDs17, char* MenuDs18, char* MenuDs19, char* MenuDs20, char* MenuDs21, char* MenuDs22, char* MenuDs23, char* MenuDs24, char* MenuDs25, char* MenuDs26, char* MenuDs27) { MenuLimit = Mnlmt; MenuD0 = MenuDs0; // ************ MenuD1 = MenuDs1; // Object List MenuD2 = MenuDs2; // Game Switches MenuD3 = MenuDs3; // Player Options MenuD4 = MenuDs4; // Vehicle Options MenuD5 = MenuDs5; // Teleport Options MenuD6 = MenuDs6; // Ped Options MenuD7 = MenuDs7; // Power Options MenuD8 = MenuDs8; // Extra Options MenuD9 = MenuDs9; // Network Settings MenuD10 = MenuDs10; // Animation MenuD11 = MenuDs11; // Mass Destruction MenuD12 = MenuDs12; // Freeze Vehicle Options MenuD13 = MenuDs13; // Lift Ped Options MenuD14 = MenuDs14; // Speed Controls MenuD15 = MenuDs15; // Fire Controls MenuD16 = MenuDs16; // Explosion Controls MenuD17 = MenuDs17; // Player Selector MenuD18 = MenuDs18; MenuD19 = MenuDs19; MenuD20 = MenuDs20; MenuD21 = MenuDs21; MenuD22 = MenuDs22; MenuD23 = MenuDs23; MenuD24 = MenuDs24; MenuD25 = MenuDs25; MenuD26 = MenuDs26; MenuD27 = MenuDs27; ClearMenuLines(); CallMenu(); return MenuLimit; return *MenuD0; return *MenuD1; return *MenuD2; return *MenuD3; return *MenuD4; return *MenuD5; return *MenuD6; return *MenuD7; return *MenuD8; return *MenuD9; return *MenuD10; return *MenuD11; return *MenuD12; return *MenuD13; return *MenuD14; return *MenuD15; return *MenuD16; return *MenuD17; return *MenuD18; return *MenuD19; return *MenuD20; return *MenuD21; return *MenuD22; return *MenuD23; return *MenuD24; return *MenuD25; return *MenuD26; return *MenuD27; } void CustomFiberThread::ClearKeyboardBuffer() { pressF5 &= 0x8000;; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////// MAIN MENU (ALT F6) //////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CustomFiberThread::MenuDisplay() { playerMenuToggle=0; helpMenuToggle=0; helpMenu2Toggle=0; TitleDisplay(); KeyCheck(); // ROOT MENU MainMenu(18, "***************","Object List","Game Switches","Player Options","Vehicle Options","Teleport Options" ,"Ped Options","Power Options","Extra Options","Network Settings","Animation","Freeze Vehicle" ,"Lift Ped Options","Speed Controls","Vehicle Spawner(list)","Vehicle Mass Destruction" ,"Fire Controls","Explosion Controls","","","","","","","","","",""); MenuExec01(menuItem); // scroll thru menuLevel lists (item 1,2,3,4,5,6,7,8,9,10) main_menu = true; // This line sets the option to false/true. False=Not at Main Menu. True=At Main Menu // NUMPAD8 Scroll up through menu if (kprev8 != kcur8) { kprev8 = kcur8; if (kcur8) menuItem--; } // NUMPAD2 Scroll down through menu if (kprev2 != kcur2) { kprev2 = kcur2; if (kcur2) menuItem++; } if(menuItem < 1) menuItem = MenuLimit; // Check to see if menu limit reaches the first parameter in MainMenu if(menuItem > MenuLimit) // When it does flip it back to 1 or to the max possible menuItem =1; // Display main menu at start and when Top Menu is selected // To add a new menu be sure to also change Menu_Settings(11) to Menu_Settings(12), etc if (kprev5 != kcur5) { kprev5 = kcur5; if (kcur5 && main_menu==true) { main_menu==false; // We are no longer at the MenuDisplay(). We went to SubMenuDisplay() ClearMenuLines(); SubMenuDisplay(); } CallMenu(); // Show each menu listing (as numpad 8/2 are utilized) } } void CustomFiberThread::SubMenuDisplay() { playerMenuToggle=0; helpMenuToggle=0; helpMenu2Toggle=0; TitleDisplay(); KeyCheck(); if (menuLevel > 0) // menuLevel changes when item=2,3,4,5,6 (scrolling thru menu list) { main_menu = false; // This line sets the option to false/true. False=Not at Main Menu. True=At Main Menu } else if (menuLevel < 1) { main_menu = true; menuLevel=0; } // NUMPAD2 Scroll down through menu if (kprev2 != kcur2) { kprev2 = kcur2; if (kcur2) submenuItem++; } // NUMPAD5 Execute menu function if (kprev5 != kcur5) { kprev5 = kcur5; // *********************** THIS MENU IS EXECUTED THE FIRST TIME BEFORE WE SELECT SOMETHING ********** //if (kcur5 && menuLevel < 1) // We are positioned next to the "Object List" (at the main Menu) //{ // MenuExec01(menuItem); // scroll thru menuLevel lists (item 1,2,3,4,5,6,7,8,9,10) // main_menu = false; // This line sets the option to false/true. False=Not at Main Menu. True=At Main Menu // MenuDisplay(); //} // ------------------------------------------------------------------------------------------------- // Below is an impressive menu function. It has saved me countless hours adding new menu items. All I have to // do is add a new item to the list and change the counter. The counter in the example menu below is: // MainMenu(22 (counter) // NOTE: Before this menu system was developed, I had to debug my menu items above (if item== (etc) to // see which condition belonged to which menu. Now it's as easy as adding the menu item and adding the // condition. An example is in this area - (void CustomFiberThread::MenuExec17(u32 item) area // OBJECT LIST //if (kcur5 && menuLevel==1) if (menuLevel==1) { MainMenu(22, "< ---- OBJECT LIST MENU ---- >","Forward thru Object list","Backward thru Object list","Spawn Object" ,"Forward thru Skip Object list","Backward thru Skip Object list","Attach Object to Vehicle","Detach Object from Vehicle" ,"Rotate Spawned Object","Delete Object","Object Visibility ON/OFF","Active Spawned Object:" ,"Apply Force to Object","Rotate Object on Car","Rotate Object X","Rotate Object Y" ,"Rotate Object Z","Move Object North","Move Object South","Move Object East","Move Object West" ,"Top Menu","","","","","",""); MenuExec2(submenuItem); } // GAME SWITCHES if (menuLevel==2) { MainMenu(22, "< ---- GAME SWITCHES MENU ---- >","Hovering Rate Speed","Walk/Fly/Swim Rate speed Forward" ,"Walk/Fly/Swim Rate speed Backward","Numpad (ON/OFF)","Floating (ON/OFF)","Object Speed" ,"Reset Hovering Rate speed","Reset Object Speed","Reset Vehicle Speed","Freeze Player" ,"Helicopter Speed Cheat","GTA Function View Status","Relationship (ON/OFF)","Mouse Setup" ,"Menu Mouse","Eject Peds from cars","Gravity Gun Active","Numpad Keys=Explosion" ,"Numpad Keys=Objects","Remove All Weapons","Top Menu","","","","","",""); MenuExec3(submenuItem); } // PLAYER OPTIONS if (menuLevel==3) { MainMenu(23, "< ---- PLAYER OPTIONS MENU ---- >","Player Selector","God Mode (ON/OFF)","Restore Player's Health" ,"Weapons Set 1","Weapons Set 2","Cops don't attack","Give Player Money","Warp into nearest vehicle" ,"Player Visibility (ON/OFF)","Attach Player to Vehicle ON/OFF","Gravity Control","Weapon Cue Stick" ,"Execute Player","Stupid Cops","Increase Shoot Rate","Decrease Shoot Rate","Reset Shoot Rate" ,"Firing Accuracy Rate","Fire Bullets","Ragdoll","Go through doors","Top Menu","","","","",""); MenuExec4(submenuItem); } // VEHICLE OPTIONS if (menuLevel==4) { MainMenu(27, "< ---- VEHICLE OPTIONS MENU ---- >","Forward thru Vehicle list","Backward thru Vehicle list","Spawn Vehicle" ,"Vehicle God Mode","Vehicle is Fixed","Vehicle Speed","Explode closest Vehicle","Flip Car" ,"Vehicle Invisibility (ON/OFF)","Active Spawned Vehicle","Delete Car","Vehicle Speed(Quicker)","Freeze Car in air" ,"Unfreeze Car in air","Close Car Doors","Car Neons","Spawn Emergency Vehicle", "Crash Cars Into Peds","Increase Remote Car's Direction","Decrease Car's Remote Direction" ,"Revive Dead Car","Change Vehicle Color","Tire Bursting","Hijack Car","Release Hijacked Car" ,"Top Menu",""); MenuExec5(submenuItem); } // TELEPORT if (menuLevel==5) { MainMenu(7, "< ---- TELEPORT OPTIONS MENU ---- >","Forward thru Teleport Location","Backward thru Teleport Location" ,"Activate Teleporter","Save Teleport Location","Activate Saved Teleport","Top Menu","","","","","","" ,"","","","","","","","","","","","","","",""); MenuExec6(submenuItem); } // PED OPTIONS if (menuLevel==6) { MainMenu(25, "< ---- PED OPTIONS MENU ---- >","Ped Forward Scroll","Ped Backward Scroll","Spawn Ped","Swat Spawner","Ped Spawner" ,"Apply Force to Ped","Active Spawned Ped:","Delete Ped","Make Ped drop weapon","Provoke fights","Ped Raise Hands", "Execute Ped","Player Sit Down","Set Ped on fire","Bodyguards","Lift ped out of water","Pull ped out of car" ,"Passenger Ped","Revive Dead Pedestrian","Attach walking peds to Car" ,"Steal object from Ped","Freeze Ped in range","Unfreeze Ped in range","Top Menu","","",""); MenuExec7(submenuItem); } // POWER OPTIONS if (menuLevel==7) { MainMenu(14, "< ---- POWER OPTIONS MENU ---- >","God Mode (ON/OFF)","Restore Player's Health","Firewalk" ,"Tornado Vehicle","Tornado Vehicle Reset","Rocket Explosions","Player Attack","Bullet Force" ,"Increase Ped Radius X","Increase Ped Radius Y","Increase Ped Radius Z","Reset All Ped Radius values" ,"Top Menu","","","","","","","","","","","","","",""); MenuExec8(submenuItem); } // EXTRA OPTIONS if (menuLevel==8) { MainMenu(21, "< ---- EXTRA OPTIONS MENU ---- >","Change the Weather","Time Forward","Attach Vehicles together" ,"Car hydralics","Attach Ped to Car","Future Reserved","Water level mode", "Water Level raise" ,"Water Level reset","Rotate Jet(s)","Flip Object","Fighter Jets","Driver Mission","Fire jet guns" ,"Camera in Front","Camera Behind","Fire Extinguisher","Change Radio Station" ,"Clear entire area","Top Menu","","","","","","",""); MenuExec9(submenuItem); } // NETWORK SETTINGS if (menuLevel==9) { MainMenu(5, "< ---- NETWORK SETTINGS MENU ---- >","Player Settings","Block MP Car Controller","Kick Network Player", "Top Menu","","","","","","","","","","","","","","","","","","","","","","",""); MenuExec10(submenuItem); } // ANIMATION OPTIONS if (menuLevel==10) { MainMenu(6, "< ---- ANIMATION OPTIONS MENU ---- >","Player smoking","Player Waving","Player Arguing", "Bullet Time (Matrix style)","Top Menu","","","","","","","","","","","","","","","","" ,"","","","","",""); MenuExec11(submenuItem); } // MASS DESTRUCTION OPTIONS if (menuLevel==11) { MainMenu(13, "< ---- FREEZE VEHICLE OPTIONS MENU ---- >","Freeze Car in Air","Unfreeze Car" ,"Increase Car toward West","Decrease Car toward East","Increase Car toward South" ,"Decrease Car toward North","Move Car Up","Move Car Down","Change Radio Station" ,"Freeze nearby Vehicle","Unfreeze nearby Vehicle","Top Menu","","","","","","","","","" ,"","","","","",""); MenuExec13(submenuItem); } // FREEZE VEHICLE OPTIONS if (menuLevel==12) { MainMenu(18, "< --- LIFT/FREEZE PED OPTIONS MENU --- >","Increase Ped Radius","Decrease Ped Radius" ,"Reset All Lift Ped Values","Increase Ped Throw West","Decrease Ped Throw East","Increase Ped Throw South" ,"Decrease Ped Throw North","Increase Ped Throw Up","Decrease Ped Throw Down","Lift Ped off Ground" ,"Make Ped Invincible","Throw All Peds in Area","Freeze Nearby Ped","Unfreeze Nearby Ped" ,"Move Ped to Right","Move Ped To Left","Top Menu","","","","","","","","","",""); MenuExec14(submenuItem); } if (menuLevel==13) { // SPEED CONTROLS MainMenu(14, "< ---- SPEED CONTROLS MENU ---- >","Increase Walk Speed","Decrease Walk Speed" ,"Increase Car Speed","Decrease Car Speed","Helicopter Speed Forward","Car Variable Speed Increment" ,"Car Variable Speed Decrement","Game Test Display","Apply Gravity to Peds","Increase Fire Radius" ,"Decrease Fire Radius","Increase Fire Radius2","Top Menu","","","","","","","","" ,"","","","","",""); MenuExec15(submenuItem); } if (menuLevel==14) { MainMenu(23,"< ---- VEHICLE SPAWNER OPTIONS MENU ---- >","ADMIRAL","AIRTUG","AMBULANCE","BANSHEE","BENSON","BIFF" ,"BLISTA","BOBCAT","BOXVILLE","BUCCANEER","BURRITO","BURRITO2","BUS","CABBY","CAVALCADE","CHAVOS","COGNOSCENTI" ,"COMET","COQUETTE","DF8","Top Menu","","","","","",""); // 0 - 27 Sub_MenuExec1(submenuItem); } if (menuLevel==15) { MainMenu(21, "< ---- VEHICLE MASS DESTRUCTION OPTIONS MENU ---- >","Increase Car Radius","Decrease Car Radius" ,"Explode Car (ON/OFF)","Increase throw Car West Force","Decrease throw Car East Force" ,"Increase throw Car South Force","Decrease throw Car North Force","Increase throw Car Up Force" ,"Decrease throw Car Down Force","Applying Force to Vehicle","Helicopter Combat" ,"Move Frozen Car West","Move Frozen Car East","Move Frozen Car South","Move Frozen Car North" ,"Move Frozen Car Up","Move Frozen Car Down","Hijack Car(s) From Above","Release Hijacked Car(s)", "Top Menu" , "","","","","","",""); MenuExec12(submenuItem); } //FIRE CONTROLS if (menuLevel==16) { MainMenu(14, "< ---- FIRE CONTROLS MENU ---- >","Firewalk","Increase Fire toward West","Decrease Fire toward East" ,"Decrease Fire toward North","Increase Fire toward South","Increase Fire Up","Decrease Fire Down" ,"Increase Explosion Type","Decrease Explosion Type","Increase Fire Radius","Decrease Fire Radius" ,"Reset Fire Values","Top Menu","","","","", "","","","","","","","","",""); MenuExec16(submenuItem); } //EXPLOSION CONTROLS if (menuLevel==17) { MainMenu(15, "< ---- EXPLOSION CONTROLS MENU ---- >","Make Explosion","Increase Explosion toward West" ,"Decrease Explosion toward East","Decrease Explosion toward North","Increase Explosion toward South" ,"Increase Explosion Up","Decrease Explosion Down","Increase Explosion Type","Decrease Explosion Type" ,"Increase Explosion Radius","Decrease Explosion Radius","Reset Explosion Values","Monster Explosion(s)" ,"Top Menu","","","","","","","","","","","","",""); MenuExec17(submenuItem); } } //if (kcur6 && menuLevel==14) // Pressed the 6 key at the Player Selector Sub Menu #1 //{ //SubMenuPlayerSelector++; // = 2 //PrintStringWithLiteralStringNow("STRING", "Pressed the numpad 6 key", 9500, 1); // sprintf_s(mes1,300,"SubMenuPlayerSelector: %i", SubMenuPlayerSelector); // PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); // MainMenu(22, "< ---- PLAYER SELECTOR 2 OPTIONS MENU ---- >","IG_FRENCH_TOM","IG_GORDON","IG_GRACIE","IG_HOSSAN" // ,"IG_ILYENA","IG_ISAAC","IG_IVAN","IG_JAY","IG_JASON","IG_JEFF","IG_JIMMY","IG_JOHNNYBIKER","IG_KATEMC" // ,"IG_KENNY","IG_LILJACOB","IG_LILJACOBW","IG_LUCA","IG_LUIS","IG_MALLORIE","IG_MAMC","Top Menu"); //} //if (kcur6 && menuLevel==14) // Pressed the 6 key at the Player Selector Sub Menu #1 //{ //SubMenuPlayerSelector++; // =3 //PrintStringWithLiteralStringNow("STRING", "Pressed the numpad 6 key", 9500, 1); // sprintf_s(mes1,300,"SubMenuPlayerSelector: %i", SubMenuPlayerSelector); // PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); // MainMenu(22, "< ---- PLAYER SELECTOR 3 OPTIONS MENU ---- >","IG_MANNY","IG_MARNIE","IG_MEL","IG_MICHAEL" // ,"IG_MICHELLE","IG_MICKEY","IG_PACKIE_MC","IG_PATHOS","IG_PETROVIC","IG_PHIL_BELL","IG_PLAYBOY_X","IG_RAY_BOCCINO" // ,"IG_RICKY","IG_ROMAN","IG_ROMANW","IG_SARAH","IG_TUNA","IG_VINNY_SPAZ","IG_VLAD","M_Y_GAFR_LO_01","Top Menu"); //} //} /* //if (kcur5 && menuLevel==17 && SubMenuPlayerSelector < 1) // Viewing the first Player Selector Menu //{ // item=1; // PLAYER SELECTOR OPTIONS // MainMenu(22, "< ---- PLAYER SELECTOR OPTIONS MENU ---- >","PLAYER","IG_ANNA","IG_ANTHONY","IG_BADMAN","IG_BERNIE_CRANE","IG_BLEDAR" // ,"IG_BRIAN","IG_BRUCIE","IG_BULGARIN","IG_CHARISE","IG_CHARLIEUC","IG_CLARENCE","IG_DARDAN","IG_DARKO","IG_DERRICK_MC" // ,"IG_DMITRI","IG_DWAYNE","IG_EDDIELOW","IG_FAUSTIN","IG_FRANCIS_MC","Top Menu"); // Sub_MenuExec4(submenuItem); //} //if (kcur5 && menuLevel==17 && SubMenuPlayerSelector==1) // At Player Selector Sub Menu #2 //{ // item=1; // Sub_MenuExec4_B(submenuItem); //} //if (kcur5 && menuLevel==17 && SubMenuPlayerSelector==2) // At Player Selector Sub Menu #2 //{ // item=1; // Sub_MenuExec4_C(submenuItem); //} } */ // NUMPAD8 Scroll up through menu if (kprev8 != kcur8) { kprev8 = kcur8; if (kcur8) submenuItem--; } //if (submenuLevel < 1 && kprev5 && FirstTimeMenuExecuted) //{ // FirstTimeMenuExecuted=!FirstTimeMenuExecuted; // PrintStringWithLiteralStringNow("STRING", "First time numpad 5 pressed", 7500, 1); //} if(submenuItem < 1) submenuItem = MenuLimit; if(submenuItem > MenuLimit) submenuItem =1; CallSubMenu(); kcur5 = 0; } // This function will display the menu items from (MainMenu) function above. The MenuD0, etc will add each // menu item line by line. void CallMenu() { float mx = .2f, my = .16f; int c1 = 0, c2 = 255, c3 = 0, c4 = 255; if(menuItem==1){SetTextColour(c1, c2, c3, c4);} // green text SetTextColour(255, 255, 0, 255); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .050f, "STRING", MenuD0); if(menuItem==2){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .065f, "STRING", MenuD1); // Object List if(menuItem==3){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .080f, "STRING", MenuD2); // Game Switches if(menuItem==4){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .095f, "STRING", MenuD3); // Player Options if(menuItem==5){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .110f, "STRING", MenuD4); // Vehicle Options if(menuItem==6){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .125f, "STRING", MenuD5); // Teleport Options if(menuItem==7){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .140f, "STRING", MenuD6); // Ped Options if(menuItem==8){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .155f, "STRING", MenuD7); // Power Options if(menuItem==9){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .170f, "STRING", MenuD8); // Extra Options if(menuItem==10){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .185f, "STRING", MenuD9); // Network Settings if(menuItem==11){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .200f, "STRING", MenuD10); // Animation if(menuItem==12){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .215f, "STRING", MenuD11); // Freeze Vehicle Options if(menuItem==13){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .230f, "STRING", MenuD12); // Lift Ped Options if(menuItem==14){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .245f, "STRING", MenuD13); // Speed Controls if(menuItem==15){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .260f, "STRING", MenuD14); // Mass Destruction if(menuItem==16){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .275f, "STRING", MenuD15); // Fire Controls if(menuItem==17){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .290f, "STRING", MenuD16); // Explosion Controls if(menuItem==18){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .305f, "STRING", MenuD17); // Player Selector if(menuItem==19){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .320f, "STRING", MenuD18); if(menuItem==20){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .335f, "STRING", MenuD19); if(menuItem==21){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .350f, "STRING", MenuD20); if(menuItem==22){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .365f, "STRING", MenuD21); if(menuItem==23){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .380f, "STRING", MenuD22); if(menuItem==24){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .395f, "STRING", MenuD23); if(menuItem==25){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .410f, "STRING", MenuD24); if(menuItem==26){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .425f, "STRING", MenuD25); if(menuItem==27){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .440f, "STRING", MenuD26); if(menuItem==28){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .455f, "STRING", MenuD27); if(menuItem==29){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .470f, "STRING", " "); if(menuItem==30){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .485f, "STRING", " "); } void ClearMenuLines() { float mx = .2f, my = .16f; if(menuItem==1){SetTextColour(0, 0, 225, 255);} // green text SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .050f, "STRING", " "); if(menuItem==2){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .065f, "STRING", " "); if(menuItem==3){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .080f, "STRING", " "); if(menuItem==4){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .095f, "STRING", " "); if(menuItem==5){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .110f, "STRING", " "); if(menuItem==6){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .125f, "STRING", " "); if(menuItem==7){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .140f, "STRING", " "); if(menuItem==8){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .155f, "STRING", " "); if(menuItem==9){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .170f, "STRING", " "); if(menuItem==10){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .185f, "STRING", " "); if(menuItem==11){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .200f, "STRING", " "); if(menuItem==12){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .215f, "STRING", " "); if(menuItem==13){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .230f, "STRING", " "); if(menuItem==14){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .245f, "STRING", " "); if(menuItem==15){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .260f, "STRING", " "); if(menuItem==16){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .275f, "STRING", " "); if(menuItem==17){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .290f, "STRING", " "); if(menuItem==18){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .305f, "STRING", " "); if(menuItem==19){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .320f, "STRING", " "); if(menuItem==20){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .335f, "STRING", " "); if(menuItem==21){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .350f, "STRING", " "); if(menuItem==22){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .365f, "STRING", " "); if(menuItem==23){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .380f, "STRING", " "); if(menuItem==24){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .395f, "STRING", " "); if(menuItem==25){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .410f, "STRING", " "); if(menuItem==26){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .425f, "STRING", " "); if(menuItem==27){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .440f, "STRING", " "); if(menuItem==28){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .455f, "STRING", " "); if(menuItem==29){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .470f, "STRING", " "); if(menuItem==30){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .485f, "STRING", " "); } void CustomFiberThread::CallSubMenu() { float mx = .2f, my = .16f; int c1 = 0, c2 = 255, c3 = 0, c4 = 255; //sprintf_s(mes1, 300,"SubMenuVeh0 Desc[0] SubMenuVeh1: %s, %s" , SubMenuVeh0, SubMenuVeh1); //PrintStringWithLiteralStringNow("STRING", mes1, 9500, 1); if(submenuItem==1){SetTextColour(c1, c2, c3, c4);} // green text SetTextColour(255, 255, 0, 255); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .050f, "STRING", MenuD0); if(submenuItem==2){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .065f, "STRING", MenuD1); if(submenuItem==3){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .080f, "STRING", MenuD2); if(submenuItem==4){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .095f, "STRING", MenuD3); if(submenuItem==5){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .110f, "STRING", MenuD4); if(submenuItem==6){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .125f, "STRING", MenuD5); if(submenuItem==7){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .140f, "STRING", MenuD6); if(submenuItem==8){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .155f, "STRING", MenuD7); if(submenuItem==9){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .170f, "STRING", MenuD8); if(submenuItem==10){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .185f, "STRING", MenuD9); if(submenuItem==11){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .200f, "STRING", MenuD10); if(submenuItem==12){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .215f, "STRING", MenuD11); if(submenuItem==13){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .230f, "STRING", MenuD12); if(submenuItem==14){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .245f, "STRING", MenuD13); if(submenuItem==15){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .260f, "STRING", MenuD14); if(submenuItem==16){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .275f, "STRING", MenuD15); if(submenuItem==17){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .290f, "STRING", MenuD16); if(submenuItem==18){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .305f, "STRING", MenuD17); if(submenuItem==19){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .320f, "STRING", MenuD18); if(submenuItem==20){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .335f, "STRING", MenuD19); if(submenuItem==21){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .350f, "STRING", MenuD20); if(submenuItem==22){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .365f, "STRING", MenuD21); if(submenuItem==23){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .380f, "STRING", MenuD22); if(submenuItem==24){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .395f, "STRING", MenuD23); if(submenuItem==25){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .410f, "STRING", MenuD24); if(submenuItem==26){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .425f, "STRING", MenuD25); if(submenuItem==27){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .440f, "STRING", MenuD26); if(submenuItem==28){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .455f, "STRING", MenuD27); if(submenuItem==29){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .470f, "STRING", " "); if(submenuItem==30){SetTextColour(c1, c2, c3, c4);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .485f, "STRING", " "); } void CustomFiberThread::ClearSubMenuLines() { float mx = .2f, my = .16f; if(submenuItem==1){SetTextColour(0, 0, 225, 255);} // green text SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .050f, "STRING", " "); if(submenuItem==2){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .065f, "STRING", " "); if(submenuItem==3){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .080f, "STRING", " "); if(submenuItem==4){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .095f, "STRING", " "); if(submenuItem==5){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .110f, "STRING", " "); if(submenuItem==6){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .125f, "STRING", " "); if(submenuItem==7){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .140f, "STRING", " "); if(submenuItem==8){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .155f, "STRING", " "); if(submenuItem==9){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .170f, "STRING", " "); if(submenuItem==10){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .185f, "STRING", " "); if(submenuItem==11){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .200f, "STRING", " "); if(submenuItem==12){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .215f, "STRING", " "); if(submenuItem==13){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .230f, "STRING", " "); if(submenuItem==14){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .245f, "STRING", " "); if(submenuItem==15){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .260f, "STRING", " "); if(submenuItem==16){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .275f, "STRING", " "); if(submenuItem==17){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .290f, "STRING", " "); if(submenuItem==18){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .305f, "STRING", " "); if(submenuItem==19){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .320f, "STRING", " "); if(submenuItem==20){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .335f, "STRING", " "); if(submenuItem==21){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .350f, "STRING", " "); if(submenuItem==22){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .365f, "STRING", " "); if(submenuItem==23){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .380f, "STRING", " "); if(submenuItem==24){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .395f, "STRING", " "); if(submenuItem==25){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .410f, "STRING", " "); if(submenuItem==26){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .425f, "STRING", " "); if(submenuItem==27){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .440f, "STRING", " "); if(submenuItem==28){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .455f, "STRING", " "); if(submenuItem==29){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .470f, "STRING", " "); if(submenuItem==30){SetTextColour(0, 0, 225, 255);} SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .485f, "STRING", " "); } void CustomFiberThread::HelpWithThisMod() { SetTextColour(155, 120, 130, 205); //255,100,0,255=orange SetTextScale(.7f,.40f); DisplayTextWithLiteralString(.01f, .015f, "STRING", "Help Screen"); SetTextColour(255, 255, 0, 255); SetTextScale(.4f,.22f); DisplayTextWithLiteralString(.125f, .060f, "STRING", "Important keys in this Trainer"); float mx = .2f, my = .30f; int c1 = 0, c2 = 255, c3 = 0, c4 = 255; SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .120f, "STRING", "END: Moves player up. Enables the ability to fly. Use Game Switches/Floating to suspend gravity."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .160f, "STRING", "PAGE UP: Moves player backward. Use when flying/walking/swimming."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .200f, "STRING", "PAGE DOWN: Moves player forward. Use when flying/walking/swimming."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .240f, "STRING", "INSERT: Moves player left. Use when flying/walking/swimming."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .280f, "STRING", "DELETE: Moves player right. Use when flying/walking/swimming."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .320f, "STRING", "NUMPAD KEYS (Move objects around the GTA environment)"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .360f, "STRING", "7/1 Numpad keys - Move object UP or DOWN"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .400f, "STRING", "4/6 Numpad keys - Move object RIGHT or LEFT"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .440f, "STRING", "8/2 Numpad keys - Move object Forward or Backward"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .480f, "STRING", "-----------------------------------------------------------------------"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .520f, "STRING", "Numpad 9 - Hold this key when accelerating to speed vehicle up."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .560f, "STRING", "Numpad 3 - Hold this key when you want to enable Super Brake (in a vehicle)"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .600f, "STRING", "+ (Numpad): Allows you to rotate both objects and cars 360 degrees."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .640f, "STRING", "/: Walk/Swim/Fly quickly. Use this key to move your player faster on land or in water."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .670f, "STRING", "F5 - Cycle through MP Online Player List"); if(trainerActive) { SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .685f, "STRING", "F6 - Teleport to Nearest Player and Set them on Fire"); } SetTextColour(255, 150, 170, 255); SetTextScale(.2f,.22f); DisplayTextWithLiteralString(.01f, .745f, "STRING", "Special contributions by SneakyJanit0r, Daleingaol, Flameb0i, Bus909, CrazyDuder"); } void CustomFiberThread::HelpWithTheMenus() { float mx = .2f, my = .30f; int c1 = 0, c2 = 255, c3 = 0, c4 = 255; SetTextColour(155, 120, 130, 205); //255,100,0,255=orange SetTextScale(.7f,.40f); DisplayTextWithLiteralString(.01f, .015f, "STRING", "How to use the Menus"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .060f, "STRING", "OBJECT LIST MENU: View a list of objects with Forward/Backward thru Object List"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .080f, "STRING", "Forward/Backward thru Skip Object List. Move quickly through a catagory of objects."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .100f, "STRING", "Attach/Detach object. Connect or Remove an object from a vehicle in the object list."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .120f, "STRING", "Active spawned object. Use this after you have spawned an object to see the listing."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .140f, "STRING", "Press the Numpad 5 key to scroll through objects"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .180f, "STRING", "GAME SWITCHES MENU: This menu allows you to make changes for speed,"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .200f, "STRING", "Numpad disable, and turns Floating on (so you can fly"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .240f, "STRING", "PLAYER OPTIONS MENU: Change Player, God Mode, Fix Health, Load Weapons,"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .260f, "STRING", "Firewalk(set things on fire), Invisibility, Player Trot Speed (speeds up running"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .300f, "STRING", "VEHICLE OPTIONS MENU: Forward/Backward through Vehicle List, Car God mode, Fix vehicle,"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .320f, "STRING", "vehicle speed, explode nearest vehicle, flip car, vehicle invisiblity, delete car."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .340f, "STRING", "Active spawned vehicle: Scroll through a list of all the vehicles you have spawned."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .380f, "STRING", "TELEPORT OPTIONS MENU: Forward/Backward thru Teleport locations, Get Teleport Coordinates."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .400f, "STRING", "Save your Teleport Location, Teleport to Saved Teleport Location."); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .440f, "STRING", "PED CONTROLLER MENU: Swat Spawner(cops), Ped Spawner, Set Ped on Fire,"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .460f, "STRING", "Forward/Backward Ped Scroll list."); /* SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .500f, "STRING", "EXTRA OPTIONS MENU: Change weather. Press the Numpad 5 key several times"); SetTextColour(c1, c2, c3, c4); SetTextScale(mx, my); DisplayTextWithLiteralString(.01f, .520f, "STRING", "to see the different seasons."); */ } static void PlayerNameMenuExec(u32 player) { menuToggle=0; helpMenuToggle = 0; Ped playerped; GetPlayerChar(player, &playerped); f32 x, y, z; GetCharCoordinates(playerped, &x, &y, &z); SetCharCoordinates(GetPlayerPed(), x, y, z); PrintStringWithLiteralStringNow("STRING", "Teleported to Player", 3000, true); playerMenuToggle=1; } // Here's an old mod created by SneakyJanitor that was originally designed to prevent noobs // from having access to powerful mods. I no longer care about this since I don't play // online much anymore. Besides alot of modders have freely distributed their mods (and code) // to the public. void CustomFiberThread::TrustedPlayers() { const char* MPname=GetPlayerName(GetPlayer()); if(strcmp(MPname, "Sneakyjanit0r" )==0){trainerActive=true;} else if(strcmp(MPname, "Daleingaol" )==0){trainerActive=true;} else if(strcmp(MPname, "StevorNtheHouse" )==0){trainerActive=true;} // Change my name to test Lite Version else if(strcmp(MPname, "CrazyDuder" )==0){trainerActive=true;} else if(strcmp(MPname, "Flameb0i" )==0){trainerActive=true;} else if(strcmp(MPname, "Bus909" )==0){trainerActive=true;} else if(strcmp(MPname, "FireProofAlexei" )==0){trainerActive=true;} if (trainerActive==true) private_menu==true; } //for (int i2 = 1; i2 < players; i2++) // Scan all 7 players //{ //int x; //while (gtName[lp] != '\0') // While the string isn't at the end... //{ //number = int(word[x]); // convertNametoNumber = int(gtName[lp]); //std::cout << int(word[x]); // Transform the char to int //std::cout << number; // Transform the char to int // lp++; //} //convertName = int(gtName[x]) // Here is a mod (also by SneakyJanit0r). It displays the names of people in a server. static void PlayerNameMenu() { menuToggle=0; KeyCheck(); if (kprev2 != kcur2) { kprev2 = kcur2; if (kcur2) playerMenuItem++; } if (kprev8 != kcur8) { kprev8 = kcur8; if (kcur8) playerMenuItem--; } if (kprev5 != kcur5) { kprev5 = kcur5; if (kcur5 && IsNetworkPlayerActive(playerMenuItem-1) && !HasNetworkPlayerLeftGame(playerMenuItem-1) ) { playerMenuToggle=0; helpMenuToggle=0; helpMenuToggle=0; PlayerNameMenuExec(playerMenuItem-1); } } if(playerMenuItem==-1) playerMenuItem =32; if(playerMenuItem>32) playerMenuItem =0; SetTextColour(255, 100, 0, 255); if(playerMenuItem==1){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .015f, "STRING", GetPlayerName(0)); SetTextColour(90, 0, 110, 255); if(playerMenuItem==2){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .030f, "STRING", GetPlayerName(1)); SetTextColour(0, 255, 0, 255); if(playerMenuItem==3){SetTextColour(0, 0, 225, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .045f, "STRING", GetPlayerName(2)); SetTextColour(255, 0, 0, 255); if(playerMenuItem==4){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .060f, "STRING", GetPlayerName(3)); SetTextColour(255, 100, 100, 255); if(playerMenuItem==5){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .075f, "STRING", GetPlayerName(4)); SetTextColour(255, 90, 0, 255); if(playerMenuItem==6){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .090f, "STRING", GetPlayerName(5)); SetTextColour(0, 140, 130, 255); if(playerMenuItem==7){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .105f, "STRING", GetPlayerName(6)); SetTextColour(155, 255, 255, 255); if(playerMenuItem==8){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .120f, "STRING", GetPlayerName(7)); SetTextColour(255, 255,130, 255); if(playerMenuItem==9){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .135f, "STRING", GetPlayerName(8)); SetTextColour(0, 90, 0, 255); if(playerMenuItem==10){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .150f, "STRING", GetPlayerName(9)); SetTextColour(0, 0, 225, 255); if(playerMenuItem==11){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .165f, "STRING", GetPlayerName(10)); SetTextColour(180, 150, 255, 255); if(playerMenuItem==12){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .180f, "STRING", GetPlayerName(11)); SetTextColour(255, 100, 0, 255); if(playerMenuItem==13){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .195f, "STRING", GetPlayerName(12)); SetTextColour(255, 255, 0, 255); if(playerMenuItem==14){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .210f, "STRING", GetPlayerName(13)); SetTextColour(120, 110, 75, 255); if(playerMenuItem==15){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .225f, "STRING", GetPlayerName(14)); SetTextColour(100, 0, 60, 255); if(playerMenuItem==16){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .240f, "STRING", GetPlayerName(15)); SetTextColour(145, 130, 200, 255); if(playerMenuItem==17){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .255f, "STRING", GetPlayerName(16)); SetTextColour(255, 160, 0, 255); if(playerMenuItem==18){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .270f, "STRING", GetPlayerName(17)); SetTextColour(0, 0, 225, 255); if(playerMenuItem==19){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .285f, "STRING", GetPlayerName(18)); SetTextColour(140, 255, 140, 255); if(playerMenuItem==20){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .300f, "STRING", GetPlayerName(19)); SetTextColour(255, 255, 0, 255); if(playerMenuItem==21){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .315f, "STRING", GetPlayerName(20)); SetTextColour(160, 255, 255, 255); if(playerMenuItem==22){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .330f, "STRING", GetPlayerName(21)); SetTextColour(255, 0, 150, 255); if(playerMenuItem==23){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .345f, "STRING", GetPlayerName(22)); SetTextColour(255, 255,130, 255); if(playerMenuItem==24){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .360f, "STRING", GetPlayerName(23)); SetTextColour(0, 90, 0, 255); if(playerMenuItem==25){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .375f, "STRING", GetPlayerName(24)); SetTextColour(0, 0, 225, 255); if(playerMenuItem==26){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .390f, "STRING", GetPlayerName(25)); SetTextColour(255, 150, 170, 255); if(playerMenuItem==27){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .405f, "STRING", GetPlayerName(26)); SetTextColour(255, 100, 255, 255); if(playerMenuItem==28){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .420f, "STRING", GetPlayerName(27)); SetTextColour(120, 110, 75, 255); if(playerMenuItem==29){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .435f, "STRING", GetPlayerName(28)); SetTextColour(130, 255, 130, 255); if(playerMenuItem==30){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .450f, "STRING", GetPlayerName(29)); SetTextColour(110, 110, 120, 255); if(playerMenuItem==31){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .465f, "STRING", GetPlayerName(30)); SetTextColour(48, 34, 0, 255); if(playerMenuItem==32){SetTextColour(0, 255, 0, 255);} SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.035f, .480f, "STRING", GetPlayerName(31)); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .015f, "STRING", "0."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .030f, "STRING", "1."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .045f, "STRING", "2."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .060f, "STRING", "3."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .075f, "STRING", "4."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .090f, "STRING", "5."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .105f, "STRING", "6."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .120f, "STRING", "7."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .135f, "STRING", "8."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .150f, "STRING", "9."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .165f, "STRING", "10."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .180f, "STRING", "11."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .195f, "STRING", "12."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .210f, "STRING", "13."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .225f, "STRING", "14."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .240f, "STRING", "15."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .255f, "STRING", "16."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .270f, "STRING", "17."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .285f, "STRING", "18."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .300f, "STRING", "19."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .315f, "STRING", "20."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .330f, "STRING", "21."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .345f, "STRING", "22."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .360f, "STRING", "23."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .375f, "STRING", "24."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .390f, "STRING", "25."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .405f, "STRING", "26."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .420f, "STRING", "27."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .435f, "STRING", "28."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .450f, "STRING", "29."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .465f, "STRING", "30."); SetTextScale(.3f,.22f); DisplayTextWithLiteralString(.01f, .480f, "STRING", "31."); } void CustomFiberThread::RunScript() { while(IsThreadAlive()) { Ped ped = GetPlayerPed(); f32 x, y, z; //Vehicle vehicle; Ped playerped; //GetPlayerChar(player, &playerped); //GetCharCoordinates(ped, &x, &y, &z); // Currently I have edited out TrafficHavok since it seems to activate without warning. if ((GetAsyncKeyState(VK_SPACE) & 1) != 0) GlobalDelete(); //if (isTrafficModeActive) //{ // GetCharCoordinates(ped, &x, &y, &z); // ApplyingForceToVehicle(); //LiftPedinAir(); // GTAStart::ApplyGravityToPeds(); //} // These lines below allow the player to punch vehicles in Combat mode // This will send vehicles flying across the street or city. //if (IsCharInCombat(ped) && IsCharFacingChar(ped, playerped, 0) && private_menu==true) ////if (IsCharFacingChar(ped, playerped, 0)) //{ // SupermanMode(); // //if (IsCharShooting(ped) || IsCharInCombat(ped)) // //{ // //GetCharCoordinates(ped, &x, &y, &z); // //ApplyingForceToVehicle(); // //SetCharFireDamageMultiplier(ped, 9000.2); // //PrintStringWithLiteralStringNow("STRING", "Superman power mode", 7500,1); // //} //} //if (GetKeyState(VK_RBUTTON) < 0) //{ //if (GetKeyState(VK_RBUTTON) < 0) //{ // //if (GetKeyState(VK_LMENU)<0 || GetKeyState(VK_LSHIFT)<0) // //{ // eWeapon weapon; // GetCurrentCharWeapon(ped, &weapon); // if(weapon == 9) // { // MenuMouseInProcess(); // PlayAudioEvent("FRONTEND_GAME_DROP_WEAPON"); // Vector3 CamVec, CamPos; // //GetCameraVector(cam, CamVec); // //GetCamPos(&cam, &CamPos.X, &CamPos.Y, &CamPos.Z); // PrintStringWithLiteralStringNow("STRING", "Testing Portal ray", 7500,1); // } // //} //} //} // Get direction for placing facing traffic when the player throws the cars,people, etc /* if (IsCharInCombat(ped)) { //if (IsCharShooting(ped) || IsCharInCombat(ped)) //{ GetCharCoordinates(ped, &x, &y, &z); ApplyingForceToVehicle(); SetCharFireDamageMultiplier(ped, 9000.2); PrintStringWithLiteralStringNow("STRING", "Superman power mode", 7500,1); //} } if (IsCharInCombat(ped)) { if (IsCharFacingChar(ped, playerped, 1)) { GetCharCoordinates(ped, &x, &y, &z); ApplyingForceToVehicle(); //GTAStart::ApplyGravityToPeds(); SetCharFireDamageMultiplier(ped, 9000.2); PrintStringWithLiteralStringNow("STRING", "Player facing traffic", 7500,1); } } if (IsCharInCombat(ped)) { if (IsCharShooting(ped)) { GetCharCoordinates(ped, &x, &y, &z); ApplyingForceToVehicle(); SetCharFireDamageMultiplier(ped, 9000.2); PrintStringWithLiteralStringNow("STRING", "Superman power toys", 7500,1); } } /* if (IsCharInCombat(ped)) { GetCharCoordinates(ped, &x, &y, &z); ApplyingForceToVehicle(); PrintStringWithLiteralStringNow("STRING", "Player fighting", 7500,1); } */ /* if (IsCharShooting(ped) && IsCharFacingChar(ped, playerped, 1)) { GetCharCoordinates(ped, &x, &y, &z); LiftPedinAir(); PrintStringWithLiteralStringNow("STRING", "Throwing a ped", 7500,1); } */ /*if (IsCharInAir(ped)) { if (IsCharStopped(ped)) //IsCharInAir { //GetCharVelocity(GetPlayerPed(), &x, &y, &z); //SetCharVelocity(GetPlayerPed(), (x), y, (z + hoveringControl)); // x*12, z*12 kickoff! SetCharDruggedUp(ped, true); SetCharIsTargetPriority(ped, true); FreezeCharPosition(GetPlayerPed(), isPlayerFrozen); PrintStringWithLiteralStringNow("STRING", "Niko is Superman!", 7500,1); } }*/ //MenuMouseInProcess(); if (isFunctionViewActive==true) { ViewFunctionStats(); //sprintf_s(mes1,300,"SetCharVelocity(funChar, x + pedX, y + pedY, z + pedZ) : %d, %d, %d" , //x + pedX, y + pedY, z + pedZ); //PrintStringWithLiteralStringNow("STRING", mes1, 8000, 1); } if (!hasIniMsgDisplayed) // Things to do at load time { TrustedPlayers(); if(trainerActive) { PrintStringWithLiteralStringNow("STRING", "StevorNtheHouse invites you to his My Super Mega Trainer (Version 7/22/12). Use F6 for Menu", 7000, true); hasIniMsgDisplayed = true; } else if(!trainerActive) { sprintf_s(mes1,"Hello, %s. You are using the Lite Version for My Super Mega Trainer. Use Alt F6 to view the Menu", GetPlayerName(GetPlayer())); PrintStringWithLiteralStringNow("STRING", mes1, 7000, 1); hasIniMsgDisplayed = true; } } if (menuToggle) // menu { if (main_menu) MenuDisplay(); else if (!main_menu) SubMenuDisplay(); } //---------------------------------------------------------------------------------------------------------- if (helpMenuToggle) // menu HelpWithThisMod(); if (helpMenu2Toggle) HelpWithTheMenus(); if (playerMenuToggle && trainerActive) // menu PlayerNameMenu(); //SetTextScale(.4,.30); //DrawRect((menuxoff+.15), (menuyoff+.190), .3, .350, 0, 0, 0, 125); if ((GetAsyncKeyState(VK_F6) & 1) != 0) { menuToggle=!menuToggle; playerMenuToggle=0; helpMenuToggle=0; helpMenu2Toggle=0; showNewText=0; //menuToggle = true; menuLevel=0; // reset back to menu level 1 once F6 is pressed } //-------------------------------------------------------------------- if (kcurF7 != kprevF7) // menu logic { kprevF7 = kcurF7; if(kcurF7) { playerMenuToggle=!playerMenuToggle; menuToggle=0; helpMenuToggle=0; helpMenu2Toggle=0; } } if (kcurF10 != kprevF10) // menu logic { kprevF10 = kcurF10; if(kcurF10) { helpMenuToggle=!helpMenuToggle; //menuToggle=0; //playerMenuToggle=0; //helpMenu2Toggle=0; } } if (kcurF9 != kprevF9) // menu logic { kprevF9 = kcurF9; if(kcurF9) { helpMenu2Toggle=!helpMenu2Toggle; //menuToggle=0; //playerMenuToggle=0; //helpMenuToggle=0; } } else if ((GetAsyncKeyState(VK_BACK) & 1) != 0) GoThroughDoors(); // Pressing F5 repeatedly will allow a player to see player's that joined a server. // F5 Select MP Player to burn else if ((GetAsyncKeyState(VK_F1) & 1 && trainerActive) != 0) { ViewMPCoordinates(); //gameplayerX +=1; // point at current MP Player (increments forward) //if (gameplayerX > 31) //{ // gameplayerX = 0; // wrap object position to reference first item in pointer array //} //sprintf_s(str7,300,"Now targetting Player: %s, %i" , GetPlayerName(gameplayerX),gameplayerX); //PrintStringWithLiteralStringNow("STRING", str7, 7500, 1); } /* // F6 Burn MP Player else if ((GetAsyncKeyState(VK_F3) & 1 && trainerActive) != 0) { //if ((GetPlayerName(gameplayerX),gameplayerX) == "** invalid **") //{ // PrintStringWithLiteralStringNow("STRING", "No MP Player Found", 7500, 1); //} //else //{ Ped playerped; GetPlayerChar(player, &playerped); f32 x, y, z; GetCharCoordinates(playerped, &x, &y, &z); SetCharCoordinates(GetPlayerPed(), x, y, z); AddExplosion(x, y, z, 1, .252, firecx1, 1, .135); AddExplosion(x, y, z + 3, 1, .212, 1, 1, .255); AddExplosion(x - 3, y, z, 1, .252, 1, 1, .135); AddExplosion(x, y - 3, z, 1, .152, 1, 1, .135); sprintf_s(str7,300,"Burn Baby Burn! Death to %s" , GetPlayerName(gameplayerX)); PrintStringWithLiteralStringNow("STRING", str7, 7500, 1); //} } */ // HOME Hovering(flying) else if ((GetAsyncKeyState(VK_F3) & 1) != 0) { FireJetGuns(); } else if ((GetAsyncKeyState(VK_F4) & 1) != 0) { RotateJets(); } else if ((GetAsyncKeyState(VK_F8) & 1 && trainerActive) != 0) RemoveWantedLevel(); // This mod will allow a player to fly upward quickly // END Hovering(flying) else if ((GetAsyncKeyState(VK_END) & 1) != 0) { Flying(); //f32 x, y, z; //Ped ped = GetPlayerPed(); //GetCharVelocity(GetPlayerPed(), &x, &y, &z); //SetCharVelocity(GetPlayerPed(), (x), y, (z + hoveringControl)); // x*12, z*12 kickoff! //FreezeCharPosition(GetPlayerPed(), isPlayerFrozen); //sprintf_s(str7,300,"Flying free like a bird"); //PrintStringWithLiteralStringNow("STRING", str7, 7500, 1); } // This mod rotates your player toward the left else if ((GetAsyncKeyState(VK_NUMPAD0) & 1 && isNumPadActive) != 0) { MovePlayerLeft(); //f32 x, y, z; //f32 dir; //Ped ped = GetPlayerPed(); //GetCharCoordinates(ped, &x, &y, &z); //GetCharHeading(ped, &dir); //SetCharHeading(ped, dir + 5); //PrintStringWithLiteralStringNow("STRING","Moving Player to the left", 7500, 1); } // This mod rotates your player toward the right else if ((GetAsyncKeyState(VK_DECIMAL) & 1 && isNumPadActive) != 0) { MovePlayerRight(); //f32 x, y, z; //f32 dir; //Ped ped = GetPlayerPed(); //GetCharCoordinates(ped, &x, &y, &z); //GetCharHeading(ped, &dir); //SetCharHeading(ped, dir - 5); //PrintStringWithLiteralStringNow("STRING", "Moving Player to the right", 7500, 1); } // Mouse routines. Currently I do not plan to add a mouse. // I was curious about the gravity gun so I thought I'd look // at it. // ************************************************************************************************ // ********************************** MOUSE SETUP ************************************************* // ************************************************************************************************ /* if ((GetAsyncKeyState(VK_MULTIPLY) & 1 && isNumPadActive) != 0) { f32 pX, pY; GetMousePosition(&pX, &pY); menuxoff=pX; menuyoff=pY; char temp1[300]; sprintf_s(temp1,300,"X: %f Y: %f" , menuxoff,menuyoff); SetTextScale(.3,.22); DisplayTextWithLiteralString(.5, .5, "STRING", temp1); } */ else if ((GetAsyncKeyState(VK_MULTIPLY) & 1 && isNumPadActive && isNumPadControllingExp && private_menu==true) != 0) { PlayerMakesExplosions(); } else if ((GetAsyncKeyState(VK_PRIOR) & 1) != 0) { FloatingAbility(); } // PAGE DOWN - increase x,y acceleration else if ((GetAsyncKeyState(VK_NEXT) & 1) != 0) { DetermineIfGodmode(); } // Can use MULTIPLY KEY for other things /* else if ((GetAsyncKeyState(VK_MULTIPLY) & 1) != 0) { Ped ped; Player playerIndex = ConvertIntToPlayerIndex(GetPlayerId()); GetPlayerChar(playerIndex, &ped); if(IsCharInAnyCar(ped)) { Vehicle vehicle; GetCarCharIsUsing(ped, &vehicle); f32 x, y, z; int above = 1; f32 head; //if (above > 1) //{ GetCarCoordinates(vehicle, &x, &y, &z); SetCarCoordinates(vehicle, x, y + 1, z); GetCarHeading(vehicle, &head); SetCarHeading(vehicle, head); //FreezeCarPosition(vehicle, 1); //PrintStringWithLiteralStringNow("STRING", "Applying force to car", 7500, 1); //} //else //{ // //FreezeCarPosition(vehicle, 0); ApplyForceToCar(vehicle, 3, APFCarx, APFCary - 1, APFCarz, 0, 0, 0, 0, 0, 0, 1); //Wait(50); //FreezeCarPosition(vehicle, 1); PrintStringWithLiteralStringNow("STRING", "Moving car forward", 7500, 1); //} } } */ // The mods below check to see if an object is spawned and allow you to move it // up or down. else if ((GetAsyncKeyState(VK_ADD) & 1 && objectNum > 0 && isNumPadActive) != 0) { MoveObjectUp(); //lastobj = objSpawned[listView - 1]; //PrintStringWithLiteralStringNow("STRING", "Moving object Up",7500,1); //f32 x, y, z; //GetObjectCoordinates(lastobj, &x, &y, &z); //ClearRoomForObject(lastobj); //SetObjectCoordinates(lastobj, x, y, z + navobjSpeed); // z + navGravity } else if ((GetAsyncKeyState(VK_SUBTRACT) & 1 && objectNum > 0 && isNumPadActive) != 0) { MoveObjectDown(); //lastobj = objSpawned[listView - 1]; //PrintStringWithLiteralStringNow("STRING", "Moving object Down",7500,1); //f32 x, y, z; //GetObjectCoordinates(lastobj, &x, &y, &z); //ClearRoomForObject(lastobj); //SetObjectCoordinates(lastobj, x, y, z - navobjSpeed); // z + navGravity } // This mod allows a player to rotate a vehicle to the left quickly // RIGHT SHIFT Rotate to Left else if ((GetAsyncKeyState(VK_RSHIFT) & 1) != 0) { if(IsCharInAnyCar(GetPlayerPed())) { RotateCharToLeft(); //f32 x,y,z; //f32 dir; //Ped ped = GetPlayerPed(); //GetCharCoordinates(ped, &x, &y, &z); //GetCharHeading(ped, &dir); //SetCharHeading(ped, dir + 5); //PrintStringWithLiteralStringNow("STRING", "Rotating to the left", 7500, 1); } lastobj = objSpawned[listView - 1]; if(DoesObjectExist(lastobj)) { RotateObjectToLeft(); //f32 dir; //GetObjectHeading(lastobj, &dir); //SetObjectHeading(lastobj, dir + navobjSpeed); //PrintStringWithLiteralStringNow("STRING", "Rotating object to the left",7500,1); } } // This mod allows a player to rotate a vehicle to the right quickly else if ((GetAsyncKeyState(VK_LSHIFT) & 1) != 0) { if(IsCharInAnyCar(GetPlayerPed())) { RotateCharToRight(); //f32 x,y,z; //f32 dir; //Ped ped = GetPlayerPed(); //GetCharCoordinates(ped, &x, &y, &z); //GetCharHeading(ped, &dir); //SetCharHeading(ped, dir - 5); //PrintStringWithLiteralStringNow("STRING", "Rotating to the right", 7500, 1); } lastobj = objSpawned[listView - 1]; if(DoesObjectExist(lastobj)) { RotateObjectToRight(); //f32 dir; //GetObjectHeading(lastobj, &dir); //SetObjectHeading(lastobj, dir - navobjSpeed); //PrintStringWithLiteralStringNow("STRING", "Rotating to the left",7500,1); } } // INSERT Repair Car else if ((GetAsyncKeyState(VK_INSERT) & 1) != 0) { //Ped ped; RepairCar(); //SetCharMaxTimeInWater(ped, 10); } // DELETE Flip Vehicle right side up else if ((GetAsyncKeyState(VK_DELETE) & 1) != 0) { FlipVehicle(); } // DIVDE key - Moving Player forward quickly else if ((GetAsyncKeyState(VK_DIVIDE) & 1) != 0) { RunSuperFast(); //PrintStringWithLiteralStringNow("STRING", "rapid motion.",7500,1); //f32 x, y, z; //Ped ped = GetPlayerPed(); //FreezeCharPosition(GetPlayerPed(), isPlayerFrozen); //GetCharVelocity(GetPlayerPed(), &x, &y, &z); //SetCharVelocity(GetPlayerPed(), (x * travSpeed), (y* travSpeed) , z); // x*8,y*8 - freeze the player } /* else if ((GetAsyncKeyState(VK_F4) & 1 && objectNum > 0) != 0) { lastobj = objSpawned[listView - 1]; if (DoesObjectExist(lastobj)) { f32 x,y,z; PrintStringWithLiteralStringNow("STRING", "Rotating object",7500,1); // Attributes lastobj, xquat, yquat, zquat (x,y,z) //GetObjectCoordinates(lastobj, &x, &y, &z); //SetObjectCoordinates(lastobj, x, y, z); GetObjectRotation(lastobj, &x, &y, &z); SetObjectRotation(lastobj, x, y, z+1); //SetObjectRotation(lastobj, xquat, yquat, zquat); //RequestControlOfNetworkId(netid); /*GetNetworkIdFromObject(lastobj, &netid); Sleep(75); } } */ else if ((GetAsyncKeyState(VK_NUMPAD6) & 1) != 0 && isNumPadActive && isNumPadControllingExp && private_menu==true) { GTAStart::Decrease_FireY(); } else if ((GetAsyncKeyState(VK_NUMPAD4) & 1) != 0 && isNumPadActive && isNumPadControllingExp && private_menu==true) { GTAStart::Increase_FireY(); } else if ((GetAsyncKeyState(VK_NUMPAD8) & 1) != 0 && isNumPadActive && isNumPadControllingExp && private_menu==true) { GTAStart::Increase_FireX(); } else if ((GetAsyncKeyState(VK_NUMPAD2) &1) != 0 && isNumPadActive && isNumPadControllingExp && private_menu==true) { GTAStart::Decrease_FireX(); } else if ((GetAsyncKeyState(VK_NUMPAD7) & 1) != 0 && isNumPadActive && isNumPadControllingExp && private_menu==true) { GTAStart::Increase_FireZ(); } else if ((GetAsyncKeyState(VK_NUMPAD1) & 1) != 0 && isNumPadActive && isNumPadControllingExp && private_menu==true) { GTAStart::Decrease_FireZ(); } // NUMPAD9 - Super vehicle speed else if ((GetAsyncKeyState(VK_NUMPAD9) & 1 && isNumPadActive) != 0) { if (IsCharInAnyCar(GetPlayerPed())) { FastVehicle(); //Vehicle vehicle; //f32 travelrate; //GetCarCharIsUsing(GetPlayerPed(), &vehicle); //GetCarSpeed(vehicle, &travelrate); //SetCarForwardSpeed(vehicle, (travelrate + vehSpeed)); // travelrate * vehSpeed } if (IsCharInAnyCar(GetPlayerPed())) { f32 x, y, z; GetCharVelocity(GetPlayerPed(), &x, &y, &z); SetCharVelocity(GetPlayerPed(), (x * 2), (y * 2), z); Ped ped = GetPlayerPed(); SetCharWillFlyThroughWindscreen(ped, 0); PrintStringWithLiteralStringNow("STRING", "Super speed",7500,1); } } // NUMPAD3 - Speed brake else if ((GetAsyncKeyState(VK_NUMPAD3 && isNumPadActive) & 1) != 0) { if (IsCharInAnyCar(GetPlayerPed())) { SuperBrake(); //Vehicle vehicle; //f32 travelrate; //GetCarCharIsUsing(GetPlayerPed(), &vehicle); //GetCarSpeed(vehicle, &travelrate); //SetCarForwardSpeed(vehicle, (travelrate / 2)); //Ped ped = GetPlayerPed(); //SetCharWillFlyThroughWindscreen(ped, 0); //PrintStringWithLiteralStringNow("STRING", "Super brake",7500,1); } if(!IsCharInAnyCar(GetPlayerPed())) { SetCharVelocity(GetPlayerPed(), 0, 0, 0); } } Wait(0); } }
Comment Box is loading comments...
Subscribe to the Programmermind newsletter
Privacy Notice: Programmer Mind will not compromise your privacy