mirror of
https://github.com/iDisaster/GTAConnected.git
synced 2026-03-08 09:25:23 +00:00
486 lines
24 KiB
Plaintext
486 lines
24 KiB
Plaintext
/**
|
|
* @ MAJOR DISTRIBUTION EXTEND
|
|
* @ Current Version : TRIDENT
|
|
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
|
|
*/
|
|
|
|
/* ######################### PLAYER OPTIONS SETUP & ACTION ############################*/
|
|
|
|
#pragma once
|
|
|
|
//Maybe add autospawn boat to this section - Player Protections
|
|
|
|
void MD_New_PlayerOptions_Setup(const int Player_ID){
|
|
//!**Player Char Check**//
|
|
Ped Player_PED;
|
|
if(!PLAYER_HAS_CHAR(Player_ID))return Alert_Abort(Error_Char_Missing,false);
|
|
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
|
|
//!**********************/
|
|
|
|
MENU_SUB_HEADER = "Player Options";
|
|
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
|
|
Add_JumpOver("~BLIP_94~ P L A Y E R O P T I O N S ~BLIP_94~"); //5
|
|
|
|
//!NeW Setup
|
|
AddFunction_Value("Player Protection",3); //6 Godmode / Juggernaut / never wanted / ADD autospawn boat(water)
|
|
AddFunction_Value_CB("Weapon Options",5); //7 Unlimmited Clip / Rapid Fire / Auto Aim / Give Weapons /Remove Weapons
|
|
AddFunction_Value_CB("Health & Armour",3); //8 ALL PLAYERS / SELF = Default on enter submenu
|
|
AddFunction_Value("Visibility",5); //9 Invisible (On Foot) / Invisible (On Foot+Vehicle) / Hide Blip(On Foot) / Hide Blip (On Foot + Vehicle)
|
|
AddFunction_Value("Super Powers",4); //10 Super Punch / Super Punch / Super Jump / Force Field
|
|
AddFunction_Value("Physics", 3); //11 / Drive Walk ON Water / Gravity / Slow Motion
|
|
AddBool("~BLIP_68~ Fly-mod ~PAD_LB~ slower / ~PAD_RB~ faster",Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD)); //12
|
|
AddBool("~BLIP_52~ Inferno",Get_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_INFERNO)); //13 ALL PLAYERS / SELF = Default on enter submenu
|
|
AddFunction_CB("~BLIP_52~ Explode Player"); //14 ALL PLAYERS / SELF = Default on enter submenu
|
|
AddFunction_CB("~BLIP_52~ Spawn Money around player"); //15 ALL PLAYERS / SELF = Default on enter submenu
|
|
AddFunction("~BLIP_68~ Network Ghost Mod"); //16
|
|
AddFunction_Value_CB("Set Player Colors (YOU = Host)",18); //17 ALL PLAYERS / SELF = Default on enter submenu
|
|
AddFunction("~BLIP_68~ Reset Player");
|
|
|
|
item_highlighted = 6;
|
|
//*/ //--> = 25 options on one page without the top 4 shortcuts = all together 34 options on ONE PAGE !!!
|
|
return;
|
|
}
|
|
|
|
void MD_New_PlayerOptions_Action(const int Player_ID){
|
|
//!**Player Char Check**//
|
|
Ped Player_PED;
|
|
if(!PLAYER_HAS_CHAR(Player_ID))return Alert_Abort(Error_Char_Missing,false);
|
|
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
|
|
//!**********************/
|
|
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
|
|
//! ITEMLINE 5 ******************Jumpover TITLE MENU********************//
|
|
if(SelectedItem == 6){ //AddFunction_Value("Player Protection",2); //6 Godmode / Juggernaut / Never wanted
|
|
if(menu_item[SelectedItem].num_val == 1){
|
|
Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_GODMODE);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Godmode",Get_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_GODMODE) ? PrintON : PrintOFF ,false);
|
|
}
|
|
else if(menu_item[SelectedItem].num_val == 2){
|
|
Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_JUGGERNAUT);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Juggernaut",Get_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_JUGGERNAUT) ? PrintON : PrintOFF ,false);
|
|
}
|
|
else if(menu_item[SelectedItem].num_val == 3){
|
|
Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_NEVER_WANTED);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Never wanted by the police",Get_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_NEVER_WANTED) ? PrintON : PrintOFF ,false);
|
|
}
|
|
}
|
|
else if(SelectedItem == 7){//AddFunction_Value("Weapon Options",4); //7 Unlimmited Clip / Rapid Fire / Auto Aim / Give Weapons / Remove
|
|
if(menu_item[SelectedItem].num_val == 1){
|
|
Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_INFINITE_AMMO);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Unlimited Clip (Yourself)",Get_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_INFINITE_AMMO) ? PrintON : PrintOFF ,false);
|
|
}
|
|
else if(menu_item[SelectedItem].num_val == 2){
|
|
Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_RAPID_FIRE);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Rapid Fire (Yourself)",Get_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_RAPID_FIRE) ? PrintON : PrintOFF ,false);
|
|
}
|
|
else if(menu_item[SelectedItem].num_val == 3){
|
|
Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_AUTO_AIM);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Auto Aim (Yourself)",Get_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_AUTO_AIM) ? PrintON : PrintOFF ,false);
|
|
}
|
|
else if(menu_item[SelectedItem].num_val == 4){
|
|
GIVE_EPISODIC_WEAPONS_TO_CHAR(Player_PED,Episode);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Weapons given to", GET_PLAYER_NAME(Player_ID),true);
|
|
}
|
|
else if(menu_item[SelectedItem].num_val == 5){
|
|
REMOVE_ALL_CHAR_WEAPONS(Player_PED);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Weapons removed from", GET_PLAYER_NAME(Player_ID),true);
|
|
}
|
|
}
|
|
if(SelectedItem == 8){//AddFunction_CB("~BLIP_52~ Health / Armour / Remove Armour"); //8 ALL PLAYERS / SELF = Default on enter submenu
|
|
if(menu_item[SelectedItem].num_val == 1){
|
|
if(Player_PED == pPlayer)SET_CHAR_HEALTH(Player_PED,500);
|
|
else GIVE_HEALTH_TO_CHAR(Player_PED);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Health given to", GET_PLAYER_NAME(Player_ID),true);
|
|
}
|
|
else if(menu_item[SelectedItem].num_val == 2){
|
|
ADD_ARMOUR_TO_CHAR(Player_PED,200);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Armour given to", GET_PLAYER_NAME(Player_ID),true);
|
|
}
|
|
else if(menu_item[SelectedItem].num_val == 3){
|
|
ADD_ARMOUR_TO_CHAR(Player_PED,-100);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Armour taken from", GET_PLAYER_NAME(Player_ID),true);
|
|
}
|
|
}
|
|
if(SelectedItem == 9){//AddFunction_Value("Visibility",3); //9 Invisible (On Foot) / Invisible (On Foot+Vehicle) / Hide Blip(On Foot) / Hide Blip (On Foot + Vehicle)
|
|
|
|
if(menu_item[SelectedItem].num_val == 1){
|
|
SET_CHAR_VISIBLE(pPlayer,!IS_CHAR_VISIBLE(pPlayer));
|
|
Alert_Two("~COL_NET_4~MD: ~s~Visibility",IS_CHAR_VISIBLE(pPlayer) ? PrintON : PrintOFF ,false);
|
|
}
|
|
else if(menu_item[SelectedItem].num_val == 2){
|
|
Vehicle vehicle;
|
|
if(!IS_CHAR_IN_ANY_CAR(pPlayer)){
|
|
Alert_Abort(Error_Personal_Vehicle,false);
|
|
return;
|
|
}
|
|
else{
|
|
GET_CAR_CHAR_IS_USING(pPlayer,&vehicle);
|
|
Switch_Bool_Value(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE);
|
|
SET_CAR_VISIBLE(vehicle,Get_Bool_Value(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE));
|
|
Alert_Two("~COL_NET_4~MD: ~s~Vehicle Visibility",Get_Bool_Value(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE) ? PrintON : PrintOFF ,false);
|
|
}
|
|
}
|
|
else if(menu_item[SelectedItem].num_val == 3){ //Invisible Player + Car
|
|
Vehicle vehicle;
|
|
if(!IS_CHAR_IN_ANY_CAR(pPlayer)){
|
|
Alert(Error_Personal_Vehicle,false);
|
|
return;
|
|
}
|
|
else{
|
|
GET_CAR_CHAR_IS_USING(pPlayer,&vehicle);
|
|
SET_CHAR_VISIBLE(pPlayer,!IS_CHAR_VISIBLE(pPlayer));
|
|
Set_Bool_Value(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE,IS_CHAR_VISIBLE(pPlayer));
|
|
SET_CAR_VISIBLE(vehicle,IS_CHAR_VISIBLE(pPlayer));
|
|
Alert_Two("~COL_NET_4~MD: ~s~Vehicle + Player Visibility",(Get_Bool_Value(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE) && IS_CHAR_VISIBLE(pPlayer)) ? PrintON : PrintOFF ,false);
|
|
}
|
|
}
|
|
else if(menu_item[SelectedItem].num_val == 4){
|
|
Switch_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_REMOVE_BLIP);
|
|
if(!Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_REMOVE_BLIP)){
|
|
SET_PLAYER_CONTROL(iPlayer,true);
|
|
SET_CHAR_VISIBLE(pPlayer,true);
|
|
}
|
|
Alert_Two("~COL_NET_4~MD: ~s~Ninja Mode",Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_REMOVE_BLIP) ? PrintON : PrintOFF ,false);
|
|
}
|
|
else if(menu_item[SelectedItem].num_val == 5){
|
|
Vehicle vehicle;
|
|
if(!IS_CHAR_IN_ANY_CAR(pPlayer)){
|
|
Alert(Error_Personal_Vehicle,false);
|
|
return;
|
|
}
|
|
else{
|
|
GET_CAR_CHAR_IS_USING(pPlayer,&vehicle);
|
|
Switch_Bool_Value(VehicleOptionsBitSet, VEHICLE_OPTION_REMOVE_BLIP);
|
|
if(!Get_Bool_Value(pPlayerOptionsBitSet,VEHICLE_OPTION_REMOVE_BLIP)){
|
|
SET_PLAYER_CONTROL(iPlayer,true);
|
|
if(!IS_CHAR_VISIBLE(pPlayer))SET_CHAR_VISIBLE(pPlayer,true);
|
|
if(IS_CHAR_IN_ANY_CAR(pPlayer) || is_driving(pPlayer)){
|
|
SET_CAR_VISIBLE(vehicle,true);
|
|
Set_Bool_Value(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY,false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//!Add Helpers for this
|
|
else if(SelectedItem == 10){//AddFunction_Value("Super Powers",3); //10 Super Punch / Super Punch / Super Jump / Force Field
|
|
if(menu_item[SelectedItem].num_val == 1)Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_SUPER_RUN);
|
|
else if(menu_item[SelectedItem].num_val == 2)Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_SUPER_JUMP);
|
|
else if(menu_item[SelectedItem].num_val == 3)Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_SUPER_PUNCH);
|
|
else if(menu_item[SelectedItem].num_val == 4){
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_GODMODE))Set_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_GODMODE,true);
|
|
Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_FORCE_FIELD);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Player Inferno",Get_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_INFERNO) ? PrintON : PrintOFF ,false);
|
|
WAIT(1000);
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_FORCE_FIELD)) Alert("~COL_NET_4~MD: ~s~ Do not overuse this! Godmode was enabled",false);
|
|
}
|
|
}
|
|
else if(SelectedItem == 11){//AddFunction_Value("Physics", 3); //11 / Drive Walk ON Water / Gravity / Slow Motion
|
|
if(menu_item[SelectedItem].num_val == 1)TOGGLE_DRIVE_WALK_WATER_FOR_PLAYER(Player_ID);
|
|
else if(menu_item[SelectedItem].num_val == 2)Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_GRAVITY);
|
|
else if(menu_item[SelectedItem].num_val == 3){
|
|
Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_SLOW_MO);
|
|
SET_TIME_SCALE(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_SLOW_MO) ? 0.3 : 1);
|
|
}
|
|
}
|
|
else if(SelectedItem == 12){
|
|
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) == 3){
|
|
Detach_pPlayer_On_Coord();
|
|
Alert("~COL_NET_4~MD: ~s~Spectate mode disabled for flymod!",false);
|
|
}
|
|
bool flymod = Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD);
|
|
if(flymod){
|
|
if(DOES_CAM_EXIST(scriptedCam)){
|
|
SET_CAM_ACTIVE(scriptedCam, false);
|
|
SET_CAM_PROPAGATE(scriptedCam, false);
|
|
ACTIVATE_SCRIPTED_CAMS(false, false);
|
|
UNATTACH_CAM(scriptedCam);
|
|
DESTROY_CAM(scriptedCam);
|
|
while (DOES_CAM_EXIST(scriptedCam)) WAIT(0);
|
|
SET_CAM_BEHIND_PED(pPlayer);
|
|
scriptedCam = 0;
|
|
}
|
|
FREEZE_CHAR_POSITION(pPlayer, false);
|
|
}
|
|
Switch_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Flymod",Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD) ? PrintON : PrintOFF ,false);
|
|
}
|
|
else if(SelectedItem == 13){
|
|
Switch_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_INFERNO);
|
|
Alert_Two("~COL_NET_4~MD: ~s~Player Inferno",Get_Bool_Value(pPlayerOptionsBitSet,PLAYER_OPTION_INFERNO) ? PrintON : PrintOFF ,false);
|
|
}
|
|
else if(SelectedItem == 14){
|
|
float x,y,z;
|
|
GET_CHAR_COORDINATES(Player_PED, &x, &y, &z);
|
|
ADD_EXPLOSION(x, y, z, EXPLOSION_SHIP_DESTROY, 10.0, true, false, 0.7f);
|
|
}
|
|
else if(SelectedItem == 15){
|
|
int i;
|
|
for(i = 0; i < 4; i++){
|
|
GIVE_CASH_PICKUP_TO_CHAR(Player_PED, 99999999999);
|
|
}
|
|
}
|
|
else if(SelectedItem == 16){
|
|
if(GetPlayerModel() != MODEL_PLAYER)change_player(MODEL_PLAYER);
|
|
else change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
|
|
SET_CHAR_HEALTH(pPlayer,500);
|
|
ADD_ARMOUR_TO_CHAR(pPlayer,200);
|
|
GIVE_EPISODIC_WEAPONS_TO_CHAR(pPlayer,Episode);
|
|
}
|
|
else if(SelectedItem == 17){
|
|
if(menu_item[SelectedItem].num_val > 0 && menu_item[SelectedItem].num_val < 18) SET_PLAYER_COLOUR(Player_ID, (menu_item[SelectedItem].num_val - 1));
|
|
else {
|
|
if (Player_ID == iPlayer) SET_PLAYER_COLOUR(Player_ID, (iPlayer + 1));
|
|
else{
|
|
int scanner;
|
|
for(scanner = 0; scanner < MAX_PLAYERS; scanner++){
|
|
if(players[scanner].id != Player_ID)continue;
|
|
SET_PLAYER_COLOUR(Player_ID, players[scanner].id);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if(SelectedItem == 18){
|
|
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
void MC_PlayerOptions_Loop(void){
|
|
/**Invincibility Stuff**/
|
|
bool pPlayer_is_in_car = IS_CHAR_IN_ANY_CAR(pPlayer);
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD) && !IS_PAUSE_MENU_ACTIVE() && GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) != 3){
|
|
if(!DOES_CAM_EXIST(scriptedCam)){
|
|
CREATE_CAM(14, &scriptedCam);
|
|
SET_CAM_ACTIVE(scriptedCam, true);
|
|
SET_CAM_PROPAGATE(scriptedCam, true);
|
|
ACTIVATE_SCRIPTED_CAMS(true, true);
|
|
scriptedCamPitch = 0.0;
|
|
}
|
|
Vehicle playerVehicle;
|
|
Ped driver;
|
|
int leftX, leftY, rightX, rightY;
|
|
float x, y, z, heading;
|
|
float moveTrig, moveSpeed;
|
|
float flymodCamDistance, flymodCamOffsetX, flymodCamOffsetY, flymodCamOffsetZ, flymodCamOffsetTrig;
|
|
FREEZE_CHAR_POSITION(pPlayer, true);
|
|
ATTACH_CAM_TO_PED(scriptedCam, pPlayer);
|
|
POINT_CAM_AT_PED(scriptedCam, pPlayer);
|
|
if (IS_CHAR_IN_ANY_CAR(pPlayer)){
|
|
uint playerVehicleModel;
|
|
Vector3 playerVehicleModelMinDims, playerVehicleModelMaxDims;
|
|
GET_CAR_CHAR_IS_USING(pPlayer, &playerVehicle);
|
|
GET_CAR_MODEL(playerVehicle, &playerVehicleModel);
|
|
GET_MODEL_DIMENSIONS(playerVehicleModel, &playerVehicleModelMinDims, &playerVehicleModelMaxDims);
|
|
flymodCamDistance = 1.5 * (playerVehicleModelMaxDims.y - playerVehicleModelMinDims.y);
|
|
GET_CAR_COORDINATES(playerVehicle, &x, &y, &z);
|
|
GET_CAR_HEADING(playerVehicle, &heading);
|
|
}
|
|
else{
|
|
GET_CHAR_COORDINATES_HEADING(pPlayer,&x,&y,&z,&heading);
|
|
flymodCamDistance = 4.0;
|
|
}
|
|
GET_POSITION_OF_ANALOGUE_STICKS(0, &leftX, &leftY, &rightX, &rightY);
|
|
heading = heading - (rightX * 0.035f);
|
|
if (heading > 360.0f)heading -= 360.0f;
|
|
if (heading < 0.0f) heading += 360.0f;
|
|
scriptedCamPitch = ( IS_LOOK_INVERTED() ? (scriptedCamPitch + (0.035f * rightY)) : (scriptedCamPitch - (0.035f * rightY)) );
|
|
if (scriptedCamPitch < -70.0)scriptedCamPitch = -70.0;
|
|
if (scriptedCamPitch > 70.0)scriptedCamPitch = 70.0;
|
|
|
|
if (IS_BUTTON_JUST_PRESSED(0,BUTTON_FLYMOD_RESET_PITCH)) scriptedCamPitch = 0.0f;
|
|
|
|
moveSpeed = 1.0f;
|
|
if (IS_BUTTON_PRESSED(0,BUTTON_FLYMOD_FAST_BUTTON) && !IS_BUTTON_PRESSED(0,BUTTON_FLYMOD_SLOW_BUTTON)) moveSpeed = 4.0f;
|
|
if (IS_BUTTON_PRESSED(0,BUTTON_FLYMOD_SLOW_BUTTON) && !IS_BUTTON_PRESSED(0,BUTTON_FLYMOD_FAST_BUTTON)) moveSpeed = 0.25f;
|
|
moveTrig = (leftY * 0.0133f) * COS(scriptedCamPitch);
|
|
x = x + (moveSpeed * ((moveTrig * SIN(heading)) + (leftX * 0.0133f) * COS(heading)));
|
|
y = y - (moveSpeed * ((moveTrig * COS(heading)) - (leftX * 0.0133f) * SIN(heading)));
|
|
z = z - (moveSpeed * (((leftY * 0.0133f) * SIN(scriptedCamPitch)) + (GET_CONTROL_VALUE(0, 6) * 0.0025f) - (GET_CONTROL_VALUE(0, 5) * 0.0025f)));
|
|
|
|
if(pPlayer_is_in_car){
|
|
GET_DRIVER_OF_CAR(playerVehicle, &driver);
|
|
if(driver == pPlayer || !In_Network){
|
|
SET_CAR_COORDINATES_NO_OFFSET(playerVehicle, x, y, z);
|
|
SET_CAR_HEADING(playerVehicle, heading);
|
|
}
|
|
}
|
|
else{
|
|
SET_CHAR_COORDINATES_NO_OFFSET(pPlayer, x, y, z);
|
|
SET_CHAR_HEADING(pPlayer, heading);
|
|
}
|
|
flymodCamOffsetTrig = (flymodCamDistance * COS(scriptedCamPitch - 18.0f));
|
|
flymodCamOffsetX = flymodCamOffsetX + (flymodCamOffsetTrig * SIN(heading));
|
|
flymodCamOffsetY = flymodCamOffsetY - (flymodCamOffsetTrig * COS(heading));
|
|
flymodCamOffsetZ = flymodCamOffsetZ - (flymodCamDistance * SIN(scriptedCamPitch - 18.0f));
|
|
|
|
SET_CAM_ATTACH_OFFSET(scriptedCam, flymodCamOffsetX, flymodCamOffsetY, flymodCamOffsetZ); //last attempt = uncomment this and comment one above..
|
|
Set_Up_Draw(MDVersion_Txt_Size, Gold, Header_a,0,0,0);
|
|
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.19f, 0.754f, "STRING", "FLY-MOD OPTIONS");
|
|
Set_Up_Draw(Info_Item_Text, 255, 255, 255, Header_a,0,0,0);
|
|
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.19f,0.782f, "STRING", "DISABLE - Hold: ~PAD_LB~ + ~PAD_RB~ + ~PAD_LT~ + ~PAD_RT~");
|
|
USE_PREVIOUS_FONT_SETTINGS();
|
|
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.19f, 0.81f , "STRING", "Speed - Hold: ~PAD_LB~ - Slower, ~PAD_RB~ - Faster.");
|
|
USE_PREVIOUS_FONT_SETTINGS();
|
|
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.19f, 0.838f, "STRING", "Height - Hold: ~PAD_LT~ - Down, ~PAD_RT~ - Up.");
|
|
|
|
if(IS_BUTTON_PRESSED(0,BUTTON_R1) && IS_BUTTON_PRESSED(0,BUTTON_L1) && IS_BUTTON_PRESSED(0,BUTTON_R2) && IS_BUTTON_PRESSED(0,BUTTON_L2)){
|
|
SET_CAM_ACTIVE(scriptedCam, false);
|
|
SET_CAM_PROPAGATE(scriptedCam, false);
|
|
ACTIVATE_SCRIPTED_CAMS(false, false);
|
|
UNATTACH_CAM(scriptedCam);
|
|
DESTROY_CAM(scriptedCam);
|
|
while (DOES_CAM_EXIST(scriptedCam)) WAIT(0);
|
|
SET_CAM_BEHIND_PED(pPlayer);
|
|
scriptedCam = 0;
|
|
FREEZE_CHAR_POSITION(pPlayer, false);
|
|
Set_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD, false);
|
|
}
|
|
}
|
|
SET_CHAR_INVINCIBLE(pPlayer,Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE));
|
|
SET_PLAYER_NEVER_GETS_TIRED(iPlayer, Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE));
|
|
SET_PLAYER_FAST_RELOAD(iPlayer, Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE));
|
|
ENABLE_MAX_AMMO_CAP(!Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE));
|
|
SET_CHAR_NEVER_TARGETTED(pPlayer,Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE));
|
|
|
|
DISABLE_PLAYER_LOCKON(iPlayer, !Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM));
|
|
ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(iPlayer, Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM));
|
|
ALLOW_LOCKON_TO_RANDOM_PEDS(iPlayer, Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM));
|
|
|
|
/**Jugg Stuff**/
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_JUGGERNAUT)){
|
|
uint armor,health;
|
|
GET_CHAR_ARMOUR(pPlayer,&armor);
|
|
GET_CHAR_HEALTH(pPlayer,&health);
|
|
if(health < 500)SET_CHAR_HEALTH(pPlayer,500);
|
|
if(armor < 200) ADD_ARMOUR_TO_CHAR(pPlayer,(200 - armor));
|
|
}
|
|
/**Ammo Stuff**/
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_INFINITE_AMMO) && IS_CHAR_SHOOTING(pPlayer)){
|
|
uint weapon,ammo;
|
|
GET_CURRENT_CHAR_WEAPON(pPlayer,&weapon);
|
|
if(weapon != WEAPON_GRENADE && weapon != WEAPON_MOLOTOV){
|
|
GET_MAX_AMMO_IN_CLIP(pPlayer,weapon,&ammo);
|
|
SET_AMMO_IN_CLIP(pPlayer,weapon,ammo);
|
|
}
|
|
}
|
|
/**Never Wanted**/
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_NEVER_WANTED)) CLEAR_WANTED_LEVEL(iPlayer);
|
|
/**Super Powers**/
|
|
if(!pPlayer_is_in_car){
|
|
bool LB_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_LB);
|
|
bool RB_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_RB);
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_SUPER_RUN)){
|
|
if( (LB_IS_PRESSED || RB_IS_PRESSED) && IS_BUTTON_PRESSED(0,BUTTON_A))APPLY_FORCE_TO_PED(pPlayer,true,0.0, (LB_IS_PRESSED ? 100.0 : 10.0) ,0.0,0.0,0.0,0.0,true,true,true,true);
|
|
}
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_SUPER_JUMP)){
|
|
if( (LB_IS_PRESSED || RB_IS_PRESSED) && IS_BUTTON_PRESSED(0,BUTTON_X))APPLY_FORCE_TO_PED(pPlayer,true,0.0, (LB_IS_PRESSED ? 1.2 : 0.0), (LB_IS_PRESSED ? 11.0 : 50.0),0.0,0.0,0.0,true,true,true,true);
|
|
}
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_SUPER_PUNCH)){
|
|
if(LB_IS_PRESSED && IS_BUTTON_PRESSED(0,BUTTON_B)){
|
|
int wep;
|
|
GET_CURRENT_CHAR_WEAPON(pPlayer,&wep);
|
|
if(wep == WEAPON_UNARMED){
|
|
float punch_x,punch_y,punch_z;
|
|
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(pPlayer, 0, 2, 0, &punch_x, &punch_y, &punch_z);
|
|
ADD_EXPLOSION(punch_x, punch_y, punch_z, EXPLOSION_SHIP_DESTROY, 10, 0, 1, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/**Drive water Function --> Loop here or in network players ? //here.*/
|
|
float x,y,z;
|
|
int NetPlayer_ID,tmp;
|
|
for(NetPlayer_ID = 0; NetPlayer_ID < MAX_PLAYERS; NetPlayer_ID++){
|
|
if(!DOES_OBJECT_EXIST(drive_water[NetPlayer_ID])) continue;
|
|
#ifdef Admin
|
|
if(NetPlayer_ID == iPlayer && AdminCommandTick != 0) continue;
|
|
#endif
|
|
GET_PLAYER_CHAR(NetPlayer_ID,&tmp);
|
|
if(DOES_CHAR_EXIST(tmp)){
|
|
#ifdef Premium
|
|
if(IS_CHAR_IN_ANY_CAR(tmp)){
|
|
float speed;
|
|
int tmp_veh;
|
|
GET_CAR_CHAR_IS_USING(tmp,&tmp_veh);
|
|
//GET_CAR_FORWARD_Y(tmp_veh,&speed); //no good, useless //doesn't take into account heading.
|
|
GET_CHAR_SPEED(tmp,&speed); //mayaswell try not spam one type of native if possible (this is not used i dont think)
|
|
int offset;
|
|
if(speed > 18 && IS_CAR_UPRIGHT(tmp_veh) && !IS_BIG_VEHICLE(tmp_veh))offset = 18;
|
|
else offset = 8;
|
|
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(tmp,0,offset,0,&x,&y,&z); //char heading = exact same as vehicles
|
|
SET_OBJECT_COORDINATES(drive_water[NetPlayer_ID],x,y, IS_CHAR_IN_ANY_BOAT(tmp) ? -15.0 : -9.2);
|
|
}
|
|
else{
|
|
GET_CHAR_COORDINATES(tmp,&x,&y,&z);
|
|
float ox,oy;
|
|
GET_OBJECT_COORDINATES(drive_water[NetPlayer_ID],&ox,&oy,&z);
|
|
float birdsEyeDistance;
|
|
GET_DISTANCE_BETWEEN_COORDS_2D(x,y,ox,oy, &birdsEyeDistance);
|
|
if(birdsEyeDistance > 16.25f) SET_OBJECT_COORDINATES(drive_water[NetPlayer_ID],x,y,-9.2);
|
|
}
|
|
#else
|
|
GET_CHAR_COORDINATES(tmp,&x,&y,&z);
|
|
SET_OBJECT_COORDINATES(drive_water[NetPlayer_ID],x,y, IS_CHAR_IN_ANY_BOAT(tmp) ? -15.0 : -9.2);
|
|
#endif
|
|
FREEZE_OBJECT_POSITION(drive_water[NetPlayer_ID],true); //required
|
|
//SET_OBJECT_VISIBLE(drive_water[NetPlayer_ID],true); //nathan testing
|
|
}
|
|
else DELETE_OBJECT(&drive_water[NetPlayer_ID]);
|
|
|
|
//if(!In_Network) break; //cba making network a lil slower just for singleplayer, nobody cares for it. - Nathan
|
|
}
|
|
GET_CHAR_COORDINATES(pPlayer,&x,&y,&z);
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FORCE_FIELD))ADD_EXPLOSION(x,y,z,EXPLOSION_SHIP_DESTROY,10.0,false,true,0.0);
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_INFERNO)) ADD_EXPLOSION(x,y,z,EXPLOSION_MOLOTOV,7.5,true,false,0.0);
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_REMOVE_BLIP)){ //OPTIMISED but not tested
|
|
if(!pPlayer_is_in_car){
|
|
uint pos[4];
|
|
GET_POSITION_OF_ANALOGUE_STICKS(0,&pos[0],&pos[1],&pos[2],&pos[3]);
|
|
if(pos[0] == 0 && pos[1] == 0){
|
|
if(!(IS_BUTTON_PRESSED(0,BUTTON_L) || IS_BUTTON_PRESSED(0,BUTTON_R))){
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT)){
|
|
ADD_EXPLOSION(x,y,z,EXPLOSION_MOLOTOV,7.5,true,false,0.0);
|
|
Set_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT, false);
|
|
}
|
|
}
|
|
}
|
|
else Set_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT, true);
|
|
SET_CAMERA_CONTROLS_DISABLED_WITH_PLAYER_CONTROLS(false);
|
|
SET_CHAR_VISIBLE(pPlayer,Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
|
|
SET_PLAYER_CONTROL(iPlayer,Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
|
|
}
|
|
}
|
|
if(Get_Bool_Value(VehicleOptionsBitSet, VEHICLE_OPTION_REMOVE_BLIP)){ //NOT TESTED BUT OPTIMISED - Nathan
|
|
if(pPlayer_is_in_car){
|
|
if(!IS_BUTTON_PRESSED(0,BUTTON_L) && !IS_BUTTON_PRESSED(0,BUTTON_R)){
|
|
Set_Bool_Value(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY, false);
|
|
float ground,speed;
|
|
GET_CHAR_SPEED(pPlayer,&speed);
|
|
GET_GROUND_Z_FOR_3D_COORD(x,y,z,&ground);
|
|
int height = (z - ground);
|
|
if(speed < 0.08f && height < 3){
|
|
if(Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT)){
|
|
ADD_EXPLOSION(x,y,z,EXPLOSION_MOLOTOV,7.5,true,false,0.0);
|
|
Set_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT, false);
|
|
}
|
|
}
|
|
}
|
|
else Set_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT, true);
|
|
SET_CAMERA_CONTROLS_DISABLED_WITH_PLAYER_CONTROLS(false); //doesn't have to be true does it?
|
|
SET_PLAYER_CONTROL(iPlayer,Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
|
|
SET_CHAR_VISIBLE(pPlayer,Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
|
|
int vehicle;
|
|
GET_CAR_CHAR_IS_USING(pPlayer, &vehicle);
|
|
SET_CAR_VISIBLE(vehicle,Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
|
|
Set_Bool_Value(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE, !Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
|
|
Set_Bool_Value(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY, !Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
|
|
FREEZE_CAR_POSITION(vehicle,!Get_Bool_Value(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
|
|
}
|
|
}
|
|
if(Variations_Loop){
|
|
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
|
|
SET_CHAR_COMPONENT_VARIATION(pPlayer,0, 1,1);
|
|
}
|
|
} |