Add files via upload

This commit is contained in:
iDisaster
2026-01-28 21:32:26 +04:00
committed by GitHub
parent 9dc5fe61aa
commit f80d6e8a4c
100 changed files with 88887 additions and 0 deletions

View File

@@ -0,0 +1,214 @@
/**
* @ MD EXTEND+
* @ Version TRIDENT(Essentials Based)
* @ MADE BY - DEVILSDESIGN && IIV NATHAN VII
*/
#pragma once
void Essentials_Startup(void){
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("menu_startup") != 0) return;
REQUEST_SCRIPT("menu_startup");
if (menu_level == 0){
item_highlighted = 1;
menu_level = 1;
press_counter = 2;
press_counter_timesby = 1;
}
BLOCK_PED_WEAPON_SWITCHING(pPlayer, true);
Menu_Setup_Draw();
menu_consts_start_y = Menu_Start_Pos_y;
menu_consts_max = menu_max;
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SHOW, true);
uint menuThreadID = GET_ID_OF_THIS_THREAD();
while(!HAS_SCRIPT_LOADED("menu_startup")) WAIT(0);
START_NEW_SCRIPT_WITH_ARGS("menu_startup", &menuThreadID, 1, 128);
MARK_SCRIPT_AS_NO_LONGER_NEEDED("menu_startup");
}
void Essentials_Shutdown(void){
char * cellphone = In_Network ? "mpcellphone" : "spcellphone";
REQUEST_SCRIPT(cellphone);
Menu_Close_Draw();
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("menu_startup");
BLOCK_PED_WEAPON_SWITCHING(pPlayer,false);
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SHOW, false);
while(!HAS_SCRIPT_LOADED(cellphone)) WAIT(0);
START_NEW_SCRIPT(cellphone, 1024);
MARK_SCRIPT_AS_NO_LONGER_NEEDED(cellphone);
Update_On_Display_Only = true;
}
void Essentials_Button_Registration(void){
if(!GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_MOVE) && !Move_Player_Info){
//if(!GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_MOVE)){
if (menu_up_pressed(true) && !GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR)){
if (item_highlighted == 1) item_highlighted = itemCount;
else{
item_highlighted--;
if (itemCount > menu_consts_max && item_highlighted > (menu_start_scrolling - 1)){
Menu_Start_Pos_y += Item_height;
menu_max--;
}
if(menu_item[item_highlighted].type == 10 )item_highlighted--;
}
//PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_SERVER_HIGHLIGHT");
PLAY_AUDIO_EVENT("RADIO_RETUNE_BEEP");
}
else if (menu_down_pressed(true) && !GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR)){
if (item_highlighted == itemCount){
item_highlighted = 1;
Menu_Start_Pos_y = menu_consts_start_y;
menu_max = menu_consts_max;
}
else{
item_highlighted++;
if (itemCount > menu_consts_max && item_highlighted > menu_start_scrolling){
Menu_Start_Pos_y -= Item_height;
menu_max++;
}
if(menu_item[item_highlighted].type == 10 )item_highlighted++;
}
PLAY_AUDIO_EVENT("RADIO_RETUNE_BEEP");
//PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_SERVER_HIGHLIGHT");
}
//!Setting up cross browsing on netplayers --> DEVILSDESIGN//
if((menu_item[item_highlighted].type > 20 && menu_item[item_highlighted].type < 30)){
//!Crosbrowsing setting to yourself*//
if (IS_BUTTON_PRESSED(0, BUTTON_X) && IS_BUTTON_JUST_PRESSED(0, BUTTON_SELECT) && !GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR)){
if(players[ChangeNetPlayer].id != iPlayer){
int scanner;
for(scanner = 0; scanner < 16; scanner++){
if(players[scanner].id != iPlayer) continue;
ChangeNetPlayer = scanner;
Alert("~b~MD: ~s~Crossbrowsing set to yourself!",false);
break;
}
}
}
if (IS_BUTTON_PRESSED(0, BUTTON_X) && IS_BUTTON_JUST_PRESSED(0, DPAD_RIGHT) && !GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR)){
PLAY_AUDIO_EVENT("RADIO_RETUNE_BEEP");
Player_Counter();
if(ChangeNetPlayer == player_count - 1) ChangeNetPlayer = 0;
else ChangeNetPlayer++;
if(Player_Display_Selection( players[ChangeNetPlayer].id)){
ChangeNetPlayer++;
return ;
}
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_AUTO_SPECTATE)) SetByteSet(&SpectateAndAttachByteSet, SPECTATE_PLAYER_INDEX, players[ChangeNetPlayer].id);
if(MD_Player_Info)UPDATE_CHANGE_NET_PLAYER_WEAPON_INFO();
#ifdef Admin
if(MD_Version_Detector) userfound = GET_PLAYER_MD_STATUS(players[ChangeNetPlayer].id);
#endif
}
else if (IS_BUTTON_PRESSED(0, BUTTON_X) && IS_BUTTON_JUST_PRESSED(0, DPAD_LEFT) && !GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR)){
PLAY_AUDIO_EVENT("RADIO_RETUNE_BEEP");
Player_Counter();
if(ChangeNetPlayer == 0) ChangeNetPlayer = player_count - 1;
else ChangeNetPlayer--;
if(Player_Display_Selection( players[ChangeNetPlayer].id)){
ChangeNetPlayer--;
return ;
}
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_AUTO_SPECTATE)) SetByteSet(&SpectateAndAttachByteSet, SPECTATE_PLAYER_INDEX, players[ChangeNetPlayer].id);
if(MD_Player_Info)UPDATE_CHANGE_NET_PLAYER_WEAPON_INFO();
#ifdef Admin
if(MD_Version_Detector) userfound = GET_PLAYER_MD_STATUS(players[ChangeNetPlayer].id);
#endif
}
}
if( !IS_BUTTON_PRESSED(0, BUTTON_X) && menu_right_pressed(true)){
if(menu_item[item_highlighted].type == 8
|| menu_item[item_highlighted].type == 9
|| menu_item[item_highlighted].type == 14
|| menu_item[item_highlighted].type == 15
|| menu_item[item_highlighted].type == 22
|| menu_item[item_highlighted].type == 23
|| menu_item[item_highlighted].type == 24){
if(menu_item[item_highlighted].num_val == menu_item[item_highlighted].extra_val)
menu_item[item_highlighted].num_val = 1;
else menu_item[item_highlighted].num_val += 1;
}
}
else if( !IS_BUTTON_PRESSED(0, BUTTON_X) && menu_left_pressed(true)){
if(menu_item[item_highlighted].type == 8
|| menu_item[item_highlighted].type == 9
|| menu_item[item_highlighted].type == 14
|| menu_item[item_highlighted].type == 15
|| menu_item[item_highlighted].type == 22
|| menu_item[item_highlighted].type == 23
|| menu_item[item_highlighted].type == 24){
if(menu_item[item_highlighted].num_val == 1) menu_item[item_highlighted].num_val = menu_item[item_highlighted].extra_val;
else menu_item[item_highlighted].num_val -= 1;
}
}
if (menu_back_pressed()){
if (menu_level != 1 || GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR)){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SET_ITEMS, false);
Reset_Menu();
if(!GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_ACTION_ERROR)) menu_level--;
SelectedItem = last_selected[menu_level - 1];
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR)){
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_ACTION_ERROR)){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_ACTION_ERROR, false);
}
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR, false);
}
}
else if (!GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_DISABLE)){
Essentials_Shutdown();
menu_level = 0;
}
//PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_SERVER_HIGHLIGHT");
//PLAY_AUDIO_EVENT("FRONTEND_OTHER_COUNTDOWN");
//PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_SERVER_HIGHLIGHT");
PLAY_AUDIO_EVENT("RADIO_RETUNE_BEEP");
}
else if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER)){
press_counter = 2;
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, false);
}
}
if (menu_forward_pressed() && press_counter_timesby < 2 && !GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR)){
SelectedItem = item_highlighted;
if(GetBit(MenuActionBitSet, (SelectedItem - 1)))MENU_ACTION();
else{
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SET_ITEMS, false);
last_selected[menu_level] = SelectedItem;
item_highlighted = 1;
Reset_Menu();
menu_level++;
}
PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_SERVER_HIGHLIGHT");
//if(GetBit(MenuActionBitSet, (SelectedItem - 1))) PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_READY");
//else PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_SERVER_HIGHLIGHT");
}
}
void Essentials_Core(void){
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SHUTDOWN)) Essentials_Shutdown();
Essentials_Button_Registration();
if(!GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SET_ITEMS)){
Base_set();
if (menu_back_pressed() && last_selected[menu_level] != 0){
if (last_selected[menu_level] <= itemCount) item_highlighted = last_selected[menu_level];
else item_highlighted = itemCount;
last_selected[menu_level] = 0;
if (itemCount > menu_consts_max && item_highlighted > menu_start_scrolling){
uint Menu_Line;
for (Menu_Line = (menu_start_scrolling + 1); Menu_Line <= item_highlighted; Menu_Line++){
Menu_Start_Pos_y -= Item_height;
menu_max++;
}
}
}
}
if (menu_up_pressed(false)){
if (itemCount > menu_consts_max && item_highlighted == itemCount){
Menu_Start_Pos_y = (menu_consts_start_y) - ((itemCount - menu_start_scrolling) * Item_height);
menu_max = itemCount + menu_start_scrolling;
}
}
}

View File

@@ -0,0 +1,73 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
char* MD_Version;
char* MD_SubVersion;
char* MENU_HEADER;
char* MENU_SUB_HEADER;
char* MENU_FOOTER;
char* null_string;
//char* custom_bool_on;
//char* custom_bool_off;
char* load_script;
char* Essentials_script[MAX_MENU_ITEMS];
#define ETC ~COL_NET_4~
#include "MD_Compile_Settings.c"
/**Version info for Detection*/
//#define Version_Advertise 130 //1301 would be v13.01, this will just be v13
/**Version Title*/
#define MD_Extend_Header "E X T E N D"
#define MD_Extend_SubHeader "~BLIP_76~ T R I D E N T ~BLIP_76~"
#define MD_Version "v13"
#ifdef Beta
#define MD_SubVersion "BETA"
#else
#define MD_SubVersion "~BLIP_73~"
#endif
#define MD_Creators "~BLIP_76~ Made by Devilsdesign & IIV NATHAN VII~BLIP_76~"
#define MD_Display_Welcome "~COL_NET_4~Welcome to MD Trident V13! ~n~ ~w~ Open with :(Hold) ~PAD_DPAD_DOWN~ + (press)~PAD_B~"
#define VERSION_DISPLAY "~BLIP_76~ MD EXTEND~w~+ ~COL_NET_4~TRIDENT"
/**Footers*/
#define menu_lfooter "~b~MD: ~s~Made by ~r~DEVILSDESIGN ~s~& ~r~IIV NATHAN VII"
#define menu_rfooter " ~BLIP_76~ Visit www.consolecrunch.com for updates! ~BLIP_76~"
#define MD_Extend_Footer "Made by DEVILSDESIGN & IIV NATHAN VII"
/**Error Messages used in the menu*/
#define ADMIN_ONLY_STRING "~b~MD: ~s~This feature is admin only."
#define Error_Personal_Vehicle "~b~MD: ~s~You need to be in a vehicle to use this feature."
#define Error_NetPlayer_Vehicle "~b~MD: ~s~Player is not in a vehicle."
#define Error_Model_Missing "~b~MD: ~s~Model is missing from img files."
#define Error_Char_Missing "~b~MD: ~s~Player has no character, action can not be performed."
#define Error_No_Player "~b~MD: ~s~Player does not exist anymore, action can not be performed."
#define Error_ID_Control "~b~MD: ~s~Unable to control ID, action can not be performed."
#define Error_TBOGT "~b~MD: ~s~TBOGT Only!"
#define Colours_Updated "~b~MD: ~s~Vehicle Colours saved! Function Enabled.~n~ Go to spawn settings to disable."
#define Essentials_Error ""
#define Essentials_Error_invalid "Not available currently."
#define Essentials_Error_script "Add your own .sco's!"
#define Essentials_Error_goback "Press ~INPUT_FRONTEND_CANCEL~ to go back."
/**Generally used txt in menu**/
#define PrintON " ~COL_NET_3~ON" //mehhhhhhh
#define PrintOFF " ~COL_NET_4~OFF"
//Add strinchecker here
void Security_Check(void){
/*
if((SecureTextForEditing("MD E X T E N D ~BLIP_73~", 28, 3569161059))){
Alert(MD_Display_Welcome,true);
}
else{
Freeze_Self();
}
*/
}

View File

@@ -0,0 +1,55 @@
/**
* @ MD EXTEND+
* @ Version MDv13 TRIDENT(Essentials Based)
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MC_Looped_Setup(void)
{
if(COMPARE_STRING(menu_item[item_highlighted].name,"~BLIP_52~ Teleport to saved location"))
{
int num = (menu_item[item_highlighted].num_val - 1);
if(save_x[num] != 0)
{
DRAW_SPHERE(save_x[num],save_y[num], save_z[num] - 1,2); //fine as 2 incase in car
}
}
//menu_item[1].num_val = (AutoSpectate ? 2 : 1);
/*
Spy_string[1] = "~w~Spectate Player / AutoSpectate ~COL_NET_4~OFF";
Spy_string[2] = "~w~Spectate Player / AutoSpectate ~COL_NET_3~ON";
*/
//if(COMPARE_STRING(menu_item[1].charval,
switch(menu_level)
{
case 1:
{
if(item_highlighted == 19) //delete distance setting
{
float x,y,z;
GET_CHAR_COORDINATES(pPlayer,&x,&y,&z);
DRAW_SPHERE(x,y,z - 3, (menu_item[item_highlighted].num_val * 2)); //yes x 2 is correct..
}
}
break;
case 5:
{
#ifdef Admin
if(!GetBit(MD_Misc_OptionsBitSet,MD_MISC_ADMIN_PRINTED_VEHICLE_SPAWN_FREEZE_WARNING))
{
if(last_selected[1] == 2 && last_selected[2] != 1 && last_selected[3] == 17 && last_selected[4] == 9)
{
Alert("~b~MD: ~s~Be wary here, you don't want them spawning into a freeze-car.",true);
SetBit(MD_Misc_OptionsBitSet,MD_MISC_ADMIN_PRINTED_VEHICLE_SPAWN_FREEZE_WARNING,true);
}
}
#endif
}
break;
}
}

View File

@@ -0,0 +1,35 @@
/**
* @ MD EXTEND+
* @ Version MDv13 TRIDENT(Essentials Based)
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MC_Looped_Setup(void)
{
if(COMPARE_STRING(menu_item[item_highlighted].name,"~BLIP_52~ Teleport to saved location"))
{
int num = (menu_item[item_highlighted].num_val - 1);
if(save_x[num] != 0)
{
DRAW_SPHERE(save_x[num],save_y[num], save_z[num] - 1,2); //fine as 2 incase in car
}
}
//menu_item[1].num_val = (AutoSpectate ? 2 : 1);
/*
Spy_string[1] = "~w~Spectate Player / AutoSpectate ~COL_NET_4~OFF";
Spy_string[2] = "~w~Spectate Player / AutoSpectate ~COL_NET_3~ON";
*/
//if(COMPARE_STRING(menu_item[1].charval,
if(menu_level == 1)
{
if(item_highlighted == 18) //delete distance setting
{
float x,y,z;
GET_CHAR_COORDINATES(pPlayer,&x,&y,&z);
DRAW_SPHERE(x,y,z - 3,menu_item[item_highlighted].num_val);
}
}
}

View File

@@ -0,0 +1,346 @@
/**
* @ MD EXTEND+
* @ Version MDv13 TRIDENT(Essentials Based)
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
//! Menu Functions
void menu_hold_pressed(uint p_id){
uint button1;
uint button2;
switch(p_id)
{
case 1:
{
button1 = BUTTON_DPAD_UP;
button2 = KEY_UP_ARROW;
}
break;
case 2:
{
button1 = BUTTON_DPAD_DOWN;
button2 = KEY_DOWN_ARROW;
}
break;
case 3:
{
button1 = BUTTON_DPAD_LEFT;
button2 = KEY_LEFT_ARROW;
}
break;
case 4:
{
button1 = BUTTON_DPAD_RIGHT;
button2 = KEY_RIGHT_ARROW;
}
break;
}
if (IS_BUTTON_PRESSED(0, button1) || IS_GAME_KEYBOARD_KEY_PRESSED(button2)){
press_id = p_id;
if (hold_counter > 40){
press_counter_timesby++;
hold_counter = 0;
}
hold_counter++;
press_counter++;
press_counter *= press_counter_timesby;
}
else if (press_id == p_id){
press_counter_timesby = 1;
hold_counter = 0;
}
}
bool menu_up_pressed(bool counter){
if ((IS_BUTTON_JUST_PRESSED(0, BUTTON_DPAD_UP) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_UP_ARROW))
|| (press_counter > 6 && (IS_BUTTON_PRESSED(0, BUTTON_DPAD_UP) || IS_GAME_KEYBOARD_KEY_PRESSED(KEY_UP_ARROW)))){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, true);
return true;
}
if (counter)
menu_hold_pressed(1);
return false;
}
bool menu_down_pressed(bool counter){
if ((IS_BUTTON_JUST_PRESSED(0, BUTTON_DPAD_DOWN) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_DOWN_ARROW))
|| (press_counter > 6 && (IS_BUTTON_PRESSED(0, BUTTON_DPAD_DOWN) || IS_GAME_KEYBOARD_KEY_PRESSED(KEY_DOWN_ARROW)))){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, true);
return true;
}
if (counter)
menu_hold_pressed(2);
return false;
}
bool menu_left_pressed(bool counter){
if ((IS_BUTTON_JUST_PRESSED(0, DPAD_LEFT) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_LEFT_ARROW))
|| (press_counter > 6 && (IS_BUTTON_PRESSED(0, DPAD_LEFT) || IS_GAME_KEYBOARD_KEY_PRESSED(KEY_LEFT_ARROW)))){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, true);
return true;
}
if (counter)menu_hold_pressed(3);
return false;
}
bool menu_right_pressed(bool counter){
if ((IS_BUTTON_JUST_PRESSED(0, DPAD_RIGHT) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_RIGHT_ARROW))
|| (press_counter > 6 && (IS_BUTTON_PRESSED(0, DPAD_RIGHT) || IS_GAME_KEYBOARD_KEY_PRESSED(KEY_RIGHT_ARROW)))){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, true);
return true;
}
if (counter)menu_hold_pressed(4);
return false;
}
bool menu_LB_pressed(bool counter){
if ((IS_BUTTON_JUST_PRESSED(0, BUTTON_LB) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_L))
|| (press_counter > 6 && (IS_BUTTON_PRESSED(0, BUTTON_LB) || IS_GAME_KEYBOARD_KEY_PRESSED(KEY_L)))){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, true);
return true;
}
if (counter)menu_hold_pressed(3);
return false;
}
bool menu_RB_pressed(bool counter){
if ((IS_BUTTON_JUST_PRESSED(0, BUTTON_RB) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_R))
|| (press_counter > 6 && (IS_BUTTON_PRESSED(0, BUTTON_RB) || IS_GAME_KEYBOARD_KEY_PRESSED(KEY_R)))){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_RESET_COUNTER, true);
return true;
}
if(counter)menu_hold_pressed(4);
return false;
}
bool menu_forward_pressed(void){
if (IS_BUTTON_JUST_PRESSED(0, BUTTON_A) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_ENTER))
return true;
return false;
}
bool menu_back_pressed(void){
if (IS_BUTTON_JUST_PRESSED(0, BUTTON_B) || IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_BACKSPACE))
return true;
return false;
}
/**Crossbrowsing MenuItems**/
//Keeping the type between 20 and 30 so if type is between this range it will crossbrowse.
void AddFunction_CB(char* item_text){
itemCount++;
menu_item[itemCount].name = item_text;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].type = 21;//Former 12
}
void AddFunction_Num_CB(char* item_text,int maxval){
itemCount++;
menu_item[itemCount].name = item_text;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].num_val = 1;
menu_item[itemCount].extra_val = maxval;
menu_item[itemCount].type = 22; //Former 8
}
void AddFunction_Value_CB(char* item_text,int maxval){
itemCount++;
menu_item[itemCount].name = item_text;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].num_val = 1;
menu_item[itemCount].extra_val = maxval;
menu_item[itemCount].type = 23; //Former 9
//Add_StringValue(itemCount);
}
void AddFunction_ValueLine_CB(int maxval){
itemCount++;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].num_val = 1;
menu_item[itemCount].extra_val = maxval;
menu_item[itemCount].type = 24; //Former 15
//Add_StringValue(itemCount);
}
void AddBool_CB(char* item_text, bool item_bool){
itemCount++;
menu_item[itemCount].name = item_text;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].extra_val = item_bool;
menu_item[itemCount].type = 25; //Former 3
}
void AddBool_NoHighlight_CB(char* item_text){
itemCount++;
menu_item[itemCount].name = item_text;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].type = 26; //Former 12
}
void AddGxt_Model_CB(uint item_gxt_hash){
itemCount++;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].num_val = item_gxt_hash;
menu_item[itemCount].type = 27; //Former 5
}
/**END**/
void AddSubMenu(char* item_text){
itemCount++;
menu_item[itemCount].name = item_text;
menu_item[itemCount].type = 13;
}
void AddPlayername(char* item_text){
itemCount++;
menu_item[itemCount].name = item_text;
menu_item[itemCount].type = 7;
}
void Add_NotPresent(char* item_text){
itemCount++;
menu_item[itemCount].name = item_text;
menu_item[itemCount].type = 6;
}
void Add_JumpOver(char* item_text){
itemCount++;
menu_item[itemCount].name = item_text;
menu_item[itemCount].type = 10;
}
void Add_Error(char* item_text){
itemCount++;
menu_item[itemCount].name = item_text;
menu_item[itemCount].type = 11;
}
void AddFunction(char* item_text){
itemCount++;
menu_item[itemCount].name = item_text;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].type = 12;
}
void AddFunction_Num(char* item_text,int maxval){
itemCount++;
menu_item[itemCount].name = item_text;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].num_val = 1;
menu_item[itemCount].extra_val = maxval;
menu_item[itemCount].type = 8;
}
void AddFunction_NumSphere(char* item_text,int maxval){
itemCount++;
menu_item[itemCount].name = item_text;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].num_val = Delete_Distance_Radius;
menu_item[itemCount].extra_val = maxval;
menu_item[itemCount].type = 14;
}
void AddFunction_Value(char* item_text,int maxval){
itemCount++;
menu_item[itemCount].name = item_text;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].num_val = 1;
menu_item[itemCount].extra_val = maxval;
menu_item[itemCount].type = 9;
//Add_StringValue(itemCount);
}
void AddFunction_ValueLine(int maxval){
itemCount++;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].num_val = 1;
menu_item[itemCount].extra_val = maxval;
menu_item[itemCount].type = 15;
//Add_StringValue(itemCount);
}
void AddBool(char* item_text, bool item_bool){
itemCount++;
menu_item[itemCount].name = item_text;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].extra_val = item_bool;
menu_item[itemCount].type = 3;
}
void AddBool_NoHighlight(char* item_text){
itemCount++;
menu_item[itemCount].name = item_text;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].type = 12;
}
void AddGxt_Model(uint item_gxt_hash){
itemCount++;
SetBit(MenuActionBitSet, (itemCount - 1), true);
menu_item[itemCount].num_val = item_gxt_hash;
menu_item[itemCount].type = 5;
}
void Menu_Add_Item_Sco(bool item_bool){
menu_item[itemCount].extra_val = item_bool;
menu_item[itemCount].type = 4;
}
void Menu_Add_Action(void){
SetBit(MenuActionBitSet, (itemCount - 1), true);
}
void Load_Sco(char* item_text, char* item_script){
//Make an item type for this
if (DOES_SCRIPT_EXIST(item_script)){
AddSubMenu(item_text);
Essentials_script[itemCount] = item_script;
bool enabled;
if (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT(item_script) == 1)
enabled = true;
Menu_Add_Item_Sco(enabled);
Menu_Add_Action();
}
else{
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_SHOW_MISSING_SCO)){
Add_NotPresent(item_text);
}
}
}
void Essentials_apply(void){
if (menu_item[SelectedItem].extra_val){
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME(Essentials_script[SelectedItem]);
menu_item[SelectedItem].extra_val = false;
}
else{
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME(Essentials_script[SelectedItem]);
START_NEW_SCRIPT(Essentials_script[SelectedItem], 1024);
MARK_SCRIPT_AS_NO_LONGER_NEEDED(Essentials_script[SelectedItem]);
Menu_Has_Sco_Loaded = false;
menu_item[SelectedItem].extra_val = true;
}
}
void Modmanager(void){
if(!Menu_Has_Sco_Loaded && !menu_item[SelectedItem].extra_val)load_script = Essentials_script[SelectedItem];
else Essentials_apply();
}
void Reset_Menu(void){
int I;
for (I = 1; I < (itemCount + 1); I++){
menu_item[I].name = null_string;
menu_item[I].type = 0;
menu_item[I].num_val = 1;
menu_item[I].extra_val = 0;
SetBit(MenuActionBitSet, (I - 1), false);
}
Menu_Start_Pos_y = menu_consts_start_y;
menu_max = menu_consts_max;
itemCount = 0;
}
void Base_Error(uint Error_id){
//if (menu_item[SelectedItem].action) Menu_Action_Error = true;
if(GetBit(MenuActionBitSet,SelectedItem - 1))SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_ACTION_ERROR, true);
Reset_Menu();
MENU_HEADER = Essentials_Error;
if (Error_id == MODMANAGER_ERROR_ID_INVALID)AddSubMenu(Essentials_Error_invalid);
else if (Error_id == MODMANAGER_ERROR_ID_SCRIPT)AddSubMenu(Essentials_Error_script);
AddSubMenu(Essentials_Error_goback);
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR, true);
PLAY_AUDIO_EVENT("FRONTEND_MENU_ERROR");
}

View File

@@ -0,0 +1,98 @@
/**
* @ MD EXTEND+
* @ Version MDv13 TRIDENT(Essentials Based)
* @ MADE BY - DEVILSDESIGN & IIV NATHAN VII
*/
//THIS IS NOT TO BE SHARED, THERE WILL BE HUGE CONSEQUENSES --> Nail in coffin for IV/ infinite loading screens for everybody 24/7 just like Red Dead Redemption
#pragma once
void SetByte(int* addr, const int val)
{
#ifdef VERSION_PC
*addr = (val % 256);
#else
*addr = SHIFT_LEFT(val % 256, 24) | (*addr & 0xFFFFFF);
#endif
}
int GetByte(const int* addr)
{
#ifdef VERSION_PC
return *addr % 256;
#else
return SHIFT_RIGHT(*addr, 24);
#endif
}
char* Strcpy(const char* dest, const char* src)
{
int i;
for(i = 0; GetByte((int*)((int)src + i)); i++)
SetByte((int*)((int)dest + i), GetByte((int*)((int)src + i)));
SetByte((int*)((int)dest + i), 0);
return dest;
}
char* Strcat(const char* dest, const char * src)
{
unsigned int len = GET_LENGTH_OF_LITERAL_STRING(dest);
Strcpy((char*)((int)dest + len), src);
return dest;
}
char* itoa(const int num, const char * dest)
{
uint numArr[10];
unsigned int len = GET_LENGTH_OF_LITERAL_STRING(dest);
unsigned int size = 0;
int i = num;
bool negative = num < 0;
if(negative) Strcpy((char*)((int)dest + len), "-");
do
{
numArr[9-size] = i % 10;
i /= 10;
size++;
} while(i != 0);
for(i = (10 - size); i < 10; i++)
{
SetByte((int*)((int)dest + (len + (i-(10-size)) + negative)), (numArr[i] + '0'));
}
SetByte((int*)((int)dest + (len + size + negative)), 0);
return dest;
}
//Nathans funcs/////////
void PLAYERS_COLOUR(const int playerindex, char * dest)
{
Strcat(dest, "~COL_NET_");
itoa( (playerindex + 1), dest);
Strcat(dest, "~");
}
void PLAYER_NAME_WITH_COLOUR(const int playerindex, char * dest) //WORKS!
{
PLAYERS_COLOUR(playerindex, dest);
Strcat(dest, GET_PLAYER_NAME(playerindex));
}
char* VEHICLES_MODEL_NAME(const int vehicle)
{
int model;
GET_CAR_MODEL(vehicle,&model);
return GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(model));
}
////////////////////////
char* ftoa(float num, char * dest, int decimalPlaces)
{
itoa((int)num, dest);
Strcat(dest, ".");
itoa( (int)((num - (int)num) * POW(10.0, (float)decimalPlaces)), dest);
return dest;
}

View File

@@ -0,0 +1,39 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv12
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//security_bool = false;
Blip PlayerBlips[16];
Texture radar;
int iPlayer;
Ped pPlayer;
int Glowing = 0;
int Rotating360 = 1;
bool security_bool = false;
bool Glowing_Increment = false;
bool buttons = true;
bool nohost = true;
bool EventPrints;
bool Terminate4Ghost;
bool Joined = false;
bool Joining_Display = true;
bool Joined_Normal = false;
bool found_host = false;
bool Joined_As_Ghost = false;
bool is_xbox_version = false;
int Attach_Type = 0;
int userfound = 0;
#ifdef Admin
int AdminCommandTick = 0;
int AdminCommandTickLevel = 10;
float admin_coord_x, admin_coord_y;
float previous_admin_coord_x, previous_admin_coord_y, previous_admin_coord_z;
#endif
uint ChangeNetPlayer;
int AdminAttachScanObj;
int adminAdvertisePed;
uint admin_tick_delay = 0;

View File

@@ -0,0 +1,890 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
uint menu_max, menu_consts_max, menu_start_scrolling;
float Menu_Start_Pos_x = 0.6950f, Menu_Start_Pos_y = 0.1550f;
float Player_Stats_Pos_x = 0.2400f,Player_Stats_Pos_y = 0.1300f; // Stats Window
float dropdown_y = 1.2;
bool Update_On_Display_Only;
#pragma once
#define Gold 164, 134, 35
#define ItemLine_MD 164, 134, 35
#define Chocolate 210,105,30
#define Steelblue 70,130,180
#define DevilsRed 153, 0, 0
#define menu_consts_start_y Menu_Start_Pos_y
#define Centering_Pos 0.1250f
#define Window_Pos_x Menu_Start_Pos_x
#define Window_Pos_y Menu_Start_Pos_y
#define Header_Pos_x Menu_Start_Pos_x + 0.0200f
#define Header_Pos_y Menu_Start_Pos_y + 0.0050f
#define Header_r 177
#define Header_g 19
#define Header_b 26
#define Header_a 255
#define Header_Txt_Size 0.258f,0.432f
#define Extend_Txt_Size 0.303f,0.450f
#define Updated_Txt_Size 0.1500f,0.2200f
#define Sub_Header_Pos_x Menu_Start_Pos_x
#define Sub_Header_Pos_y Menu_Start_Pos_y + 0.0400f
#define Sub_Header_r 58
#define Sub_Header_g 95
#define Sub_Header_b 205
#define Sub_Header_Txt_Size 0.2000f,0.3200f
#define Version_Pos_x Menu_Start_Pos_x + 0.2109f
#define Version_Pos_y Menu_Start_Pos_y + 0.0045f
#define Version_Txt_Size 0.4200f,0.9500f
#define SubVersion_Txt_Size 0.303f,0.450f
#define SubVersion_Pos_y Menu_Start_Pos_y + 0.0300f
#define Line_Pos_x Menu_Start_Pos_x
#define Line_Pos_y Menu_Start_Pos_y + 0.0675f
#define Line_r 255
#define Line_g 255
#define Line_b 255
#define Item_Pos_x Menu_Start_Pos_x + 0.020f
#define Item_StringValue_Pos_x Item_Pos_x + 0.2150f
#define Item_Pos_y 0.0500f
#define Item_height 0.0280f
#define Item_Txt_Size 0.19f,0.35f
#define Names_Txt_Size 0.19f,0.35f
#define Jumpover_Txt_Size 0.209,0.385f
#define Item_r 180
#define Item_g 180
#define Item_b 180
#define Item_a 255
#define Scroll_Item_r 255
#define Scroll_Item_g 255
#define Scroll_Item_b 255
#define SubMenu_r 139
#define SubMenu_g 134
#define SubMenu_b 130
#define MenuBlip_r 255
#define MenuBlip_g 255
#define MenuBlip_b 255
#define Item_Highlight_r 255
#define Item_Highlight_g 143
#define Item_Highlight_b 0
#define AddString_r 138
#define AddString_g 43
#define AddString_b 226
#define JumpOver_r 58
#define JumpOver_g 95
#define JumpOver_b 205
#define Bool_r 255
#define Bool_g 128
#define Bool_b 0
#define Ranksize 0.0160f, 0.0200f
#define Color_Palette_x Menu_Start_Pos_x + 0.1850f
#define Color_Palette_y Menu_Start_Pos_y + 0.1200f
#define Color_Palette_Scroll 0.028
#define Info_Item_Text 0.1520f,0.2800f
#define Stats_Item_Text 0.1530f,0.32725f
#define Stats_Item_Height 0.025f
#define Stats_Window_width 0.18f
#define Stats_Item_Margin_x 0.010f
#define Stats_Item_r 255
#define Stats_Item_g 255
#define Stats_Item_b 255
#define Stats_Value_r 255
#define Stats_Value_g 143
#define Stats_Value_b 0
//Green
#define Stats_Yes_r 204
#define Stats_Yes_g 0
#define Stats_Yes_b 0
//Red
#define Stats_No_r 0
#define Stats_No_g 204
#define Stats_No_b 0
//Red Alert
#define Alert_r 255
#define Alert_g 0
#define Alert_b 0
#define Ghost_r 0
#define Ghost_g 102
#define Ghost_b 204
#define Holy_r 127
#define Holy_g 0
#define Holy_b 255
#define Spy_Item_r 255
#define Spy_Item_g 255
#define Spy_Item_b 255
#define Orange_rgb 255,69,0
//Purple for allerts!
#define Stats_Allert_r 177
#define Stats_Allert_g 19
#define Stats_Allert_b 26
#define Stats_Spacer_40 0.040f
#define Stats_Spacer_50 0.050f
#define Stats_Spacer_60 0.060f
#define Stats_Spacer_70 0.070f
#define Stats_Spacer_80 0.080f
#define Stats_Spacer_90 0.090f
#define MDVersion_y Item_Start_y - 0.052f
#define MDVersion_x Menu_Start_Pos_x - 0.0800f
#define Frames_Allert_r 143
#define Frames_Allert_g 9
#define Frames_Allert_b 220
//#define MDVersion_Txt_Size 0.1520f,0.2800f
#define MD_Frames_Txt_Size 0.19f,0.35f
#define MDVersion_r 0
#define MDVersion_g 76
#define MDVersion_b 153
#define MDVersion_Txt_Size 0.19f,0.35f
#define Mic_Talk_r 255
#define Mic_Talk_g 140
#define Mic_Talk_b 0
#define Has_Mic_r 255
#define Has_Mic_g 255
#define Has_Mic_b 255
#define MenuTypeSprite_y 0.0120f
Texture arrowUpDown;
Texture arrowLeftRight;
//Texture Map_Background_Texture;
//blips radar_police_heli 64x64
/**Item Types Blips**/
Texture Submenu_Blip;
Texture Charvalue_Blip;
Texture Invite_Icon;
void Menu_Setup_Draw(void){
menu_max = MAX_MENU_ITEMS;
menu_start_scrolling = MENU_START_SCROLLING;
}
void Menu_Open_Draw()
{
REQUEST_STREAMED_TXD("network", 1); //stop commenting this it prevents the menu from opening.. - Nathan
REQUEST_STREAMED_TXD("blips", 1);
CREATE_MOBILE_PHONE(2);
SET_CINEMATIC_BUTTON_ENABLED(false);
while (!HAS_STREAMED_TXD_LOADED("network")) WAIT(0);
arrowUpDown = GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_ARROW_UP");
arrowLeftRight = GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_ARROW_RIGHT");
Submenu_Blip = GET_TEXTURE_FROM_STREAMED_TXD("blips", "radar_police_heli");
Charvalue_Blip = GET_TEXTURE_FROM_STREAMED_TXD("blips", "radar_hospital");
PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_READY");
}
void Menu_Close_Draw(){
PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_UNREADY");
DESTROY_MOBILE_PHONE();
SET_CINEMATIC_BUTTON_ENABLED(true);
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SLIDE)){//Slider Position on start/closing
Menu_Start_Pos_x = 0.7500f;
Menu_Start_Pos_y = 0.155f;
}
Fading_100 = 100;
Fading_150 = 150;
dropdown_y = 1;
RELEASE_TEXTURE(arrowUpDown);
RELEASE_TEXTURE(arrowLeftRight);
RELEASE_TEXTURE(Submenu_Blip);
RELEASE_TEXTURE(Charvalue_Blip);
//MARK_STREAMED_TXD_AS_NO_LONGER_NEEDED("network"); ///hmmmmmm other scripts need this buddy, maybe bad idea
MARK_STREAMED_TXD_AS_NO_LONGER_NEEDED("blips");
}
void MicOnDisplay(){
if (Rotating360 >= 360)Rotating360 = 0;
else Rotating360 += 5;
if(FlashingGhost >= 255) SetBit(MD_Misc_OptionsBitSet, MD_MISC_FLASHING_GHOST_INCREMENT, false);
else if(FlashingGhost < 150) SetBit(MD_Misc_OptionsBitSet, MD_MISC_FLASHING_GHOST_INCREMENT, true);
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_FLASHING_GHOST_INCREMENT)){
if(FlashingGhost > 240){
FlashingGhost += (255 - FlashingGhost);
SetBit(MD_Misc_OptionsBitSet, MD_MISC_FLASHING_GHOST_INCREMENT, false);
}
else FlashingGhost += 2;
}
else FlashingGhost -= 2;
}
void Menu_Effects(){
float Menu_Move_x = Menu_Start_Pos_x;
float Menu_Move_y = Menu_Start_Pos_y;
if(Glowing >= 190) SetBit(MD_Misc_OptionsBitSet, MD_MISC_GLOWING_INCREMENT, false);
if(Glowing <= 0) SetBit(MD_Misc_OptionsBitSet, MD_MISC_GLOWING_INCREMENT, true);
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_GLOWING_INCREMENT)){
if(Glowing > 185) Glowing++;
else Glowing += 2;
}
else{
if(Glowing < 10) Glowing--;
else Glowing -= 2;
}
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_MOVE)){
if (IS_BUTTON_PRESSED(0,DPAD_RIGHT)) Menu_Start_Pos_x += 0.01;
else if (IS_BUTTON_PRESSED(0,DPAD_LEFT)) Menu_Start_Pos_x -= 0.01;
else if (IS_BUTTON_PRESSED(0,DPAD_UP)) Menu_Start_Pos_y -= 0.01;
else if (IS_BUTTON_PRESSED(0,DPAD_DOWN)) Menu_Start_Pos_y += 0.01;
Set_Up_Draw(Stats_Item_Text, Stats_Item_r, Stats_Item_g, Stats_Item_b, 255,0,0,0);
DISPLAY_TEXT_WITH_FLOAT(Menu_Start_Pos_x + Stats_Item_Margin_x + 0.1, Menu_Start_Pos_y -(Stats_Item_Height*3), "NUMBER", Menu_Move_x, 8);
USE_PREVIOUS_FONT_SETTINGS();
DISPLAY_TEXT_WITH_FLOAT(Menu_Start_Pos_x + Stats_Item_Margin_x + 0.1, Menu_Start_Pos_y -(Stats_Item_Height*2), "NUMBER", Menu_Move_y, 8);
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Menu_Start_Pos_x + Stats_Item_Margin_x, Menu_Start_Pos_y -(Stats_Item_Height*3), "Menu Pos x:");
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Menu_Start_Pos_x + Stats_Item_Margin_x, Menu_Start_Pos_y -(Stats_Item_Height*2), "Menu Pos y:");
}
if(Move_Player_Info){
if (IS_BUTTON_PRESSED(0,DPAD_RIGHT)) InfoDisplay_x += 0.01;
else if (IS_BUTTON_PRESSED(0,DPAD_LEFT)) InfoDisplay_x -= 0.01;
else if (IS_BUTTON_PRESSED(0,DPAD_UP)) InfoDisplay_y -= 0.01;
else if (IS_BUTTON_PRESSED(0,DPAD_DOWN)) InfoDisplay_y += 0.01;
Set_Up_Draw(Stats_Item_Text, Stats_Item_r, Stats_Item_g, Stats_Item_b, 255,0,0,0);
DISPLAY_TEXT_WITH_FLOAT(InfoDisplay_x + Stats_Item_Margin_x + 0.1, InfoDisplay_y -(Stats_Item_Height*3), "NUMBER", Menu_Move_x, 8);
USE_PREVIOUS_FONT_SETTINGS();
DISPLAY_TEXT_WITH_FLOAT(InfoDisplay_x + Stats_Item_Margin_x + 0.1, InfoDisplay_y -(Stats_Item_Height*2), "NUMBER", Menu_Move_y, 8);
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", InfoDisplay_x + Stats_Item_Margin_x, InfoDisplay_y -(Stats_Item_Height*3), "Menu Pos x:");
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", InfoDisplay_x + Stats_Item_Margin_x, InfoDisplay_y -(Stats_Item_Height*2), "Menu Pos y:");
}
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SLIDE)){
if(Menu_Start_Pos_x > 0.6951f){
Menu_Start_Pos_x -= 0.008f;
Menu_Start_Pos_y = 0.155f;
}
}
if(Fading_100 < 255)Fading_100 += 5;
if(Fading_150 < 255)Fading_150 += 5;
}
void Draw_Spy_Helper_Window(void){
if(Draw_Spy_Helper){
Set_Up_Draw(MDVersion_Txt_Size, Gold, Header_a,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.19f, 0.754f, "STRING", "SPECTATE MODE OPTIONS");
Set_Up_Draw(Info_Item_Text, Spy_Item_r, Spy_Item_g, Spy_Item_b, Header_a,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.19f,0.782f, "STRING", "DISABLE - Hold: ~PAD_LB~ - Press: ~PAD_RB~");
USE_PREVIOUS_FONT_SETTINGS();
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.19f, 0.81f , "STRING", "TELEPORT TO PLAYER - Hold: ~PAD_LB~ - Press: ~PAD_RT~");
USE_PREVIOUS_FONT_SETTINGS();
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.19f, 0.838f, "STRING", "TELEPORT SAFE ZONE - Hold: ~PAD_LB~ - Press: ~PAD_LT~");
}
}
void Menu_Draw_Footer_2(){
}
float Timer_Slide = 0;
void Ghost_Player_List(void){
/*
if(IS_BUTTON_JUST_PRESSED(0,DPAD_DOWN)) //Minimap zoom (just like freemode does it) works flawless //flashes when scrolling and menu open (doesnt normally so)
{
//BUILT IN CRASH HOPEFULLY IF MENU STARTUP NOT FOUND!
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("menu_startup") < 1)
{
if(minimap_tick > GetTickCount())
{
minimap_tick = (GetTickCount() - 5000);
}
else
{
minimap_tick = (GetTickCount() + 5000);
}
}
}
if(minimap_tick > GetTickCount())
{
SET_RADAR_ZOOM(980);
}
else
{
if(minimap_tick != 0)
{
SET_RADAR_ZOOM(0); //no need to loop this me don't think
minimap_tick = 0;
}
}
*/
if(PlayerList){
if(IS_BUTTON_JUST_PRESSED(0,DPAD_DOWN)) //Minimap zoom (just like freemode does it) works flawless //flashes when scrolling and menu open (doesnt normally so)
{
//BUILT IN CRASH HOPEFULLY IF MENU STARTUP NOT FOUND!
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("menu_startup") < 1)
{
if(playerlist_tick > GetTickCount())
{
playerlist_tick = (GetTickCount() - 5000);
}
else
{
playerlist_tick = (GetTickCount() + 5000);
}
}
}
if(playerlist_tick > GetTickCount() && GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("menu_startup") < 1)
{
uint PlayerList_ID;
uint cr,cg,cb;
float Line_Y = 0.1000f;
float Line_X = 0.0630f;
float window_height = 0.0250f;
float scale = 0.60;
float width = 0.1800;
Player_Counter();
if(player_count > 0){
//DRAW_CURVED_WINDOW(Line_X - 0.020f ,Line_Y - 0.020f, width,window_height*(GET_NUMBER_OF_PLAYERS()+1.5), 200);
DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "MAP_LOBBY"),Line_X + (width/2) -0.02, Line_Y + (window_height*(player_count/2)) - 0.02, width, window_height*(player_count + 3 ), 0, 70,130,180, 255); //r g b a
Set_Up_Draw(0.303f*scale,0.450f*scale, Gold, FlashingGhost,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Line_X + 0.01, Line_Y - 0.048 , "STRING", MENU_HEADER);
Set_Up_Draw(0.4200f*scale,0.9500f/2, Steelblue, 255, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Line_X - 0.01, Line_Y -0.053 , "STRING", "MD");
Set_Up_Draw(0.303f*0.80,0.450f*0.80, 255, 255, 255, 255,0,0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Line_X + width - 0.05, Line_Y - 0.05, "STRING", MD_SubVersion);
Set_Up_Draw(0.2000f*0.60,0.3200f*0.60, Steelblue, 255, 0, 0, 0);
SET_TEXT_CENTRE(1);
DISPLAY_TEXT_WITH_LITERAL_STRING(Line_X + (width/2) - 0.02, Line_Y - 0.03, "STRING", MENU_SUB_HEADER);
DRAW_RECT(Line_X + (width/2) - 0.02, Line_Y -0.01 , width, 0.00200000f, Line_r, Line_g, Line_b, 255);
for(PlayerList_ID = 0;PlayerList_ID < MAX_PLAYERS ;PlayerList_ID++){
if (Invalid_Player(PlayerList_ID)) continue;
#ifndef Developer
if(Is_Developer(PlayerList_ID)) continue;
#endif
char* Playerlist_name = GET_PLAYER_NAME(PlayerList_ID);
GET_PLAYER_RGB_COLOUR(PlayerList_ID,&cr,&cg,&cb);
Set_Up_Draw(0.1950f,0.3600f,cr,cg,cb,255,0,0,0);
SET_TEXT_FONT(Player_Name_Font);
SET_TEXT_USE_UNDERSCORE(!is_xbox_version);
DISPLAY_TEXT_WITH_LITERAL_STRING(Line_X + 0.0260f, Line_Y, "STRING", Playerlist_name);
if(IS_NETWORK_PLAYER_ACTIVE(PlayerList_ID)){
DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_PLAYER"),Line_X + 0.0100f , Line_Y + 0.0120f, 0.0200f, 0.0250f, 0, 255, 255, 255, 255);
}
else {
if(PLAYER_HAS_CHAR(PlayerList_ID))DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_CRIMINAL"),Line_X + 0.0100f , Line_Y + 0.0120f, 0.0200f, 0.0250f, 0, 255, 255, 255, 255);
else DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_DEATHS"),Line_X + 0.0100f , Line_Y + 0.0120f, 0.0200f, 0.0250f, 0, 255, 255, 255, 255);
}
if(NETWORK_PLAYER_HAS_HEADSET(PlayerList_ID)){//Headset icon
if(!NETWORK_IS_PLAYER_TALKING(PlayerList_ID))DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_HEADSET_ON1"),Line_X - 0.0100f, Line_Y + 0.0120f, 0.0160f, 0.0160f, Rotating360, Has_Mic_r, Has_Mic_g, Has_Mic_b, 255);
else DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_HEADSET_ON1"),Line_X - 0.0100f, Line_Y + 0.0120f, 0.0160f, 0.0160f, Rotating360, Mic_Talk_r, Mic_Talk_g, Mic_Talk_b, 255);
}
Line_Y += 0.025f;
}
}
}
}
}
void Menu_Draw_Header(){
Set_Up_Draw(Extend_Txt_Size, Gold, FlashingGhost,0,0,0);
SET_TEXT_DROPSHADOW( 0, 0, 0, 0, 255 );
DISPLAY_TEXT_WITH_LITERAL_STRING(Header_Pos_x + 0.035, Header_Pos_y + 0.005, "STRING", MENU_HEADER);
Set_Up_Draw(Version_Txt_Size, Steelblue, 255, 0, 0, 0);
SET_TEXT_DROPSHADOW( 0, 0, 0, 0, 255 );
DISPLAY_TEXT_WITH_LITERAL_STRING(Header_Pos_x, Header_Pos_y, "STRING", "MD");
//Set_Up_Draw(Extend_Txt_Size, Header_r, Glowing, Glowing, FlashingGhost,FlashingGhost,FlashingGhost, FlashingGhost);
Set_Up_Draw(Extend_Txt_Size, Steelblue, 255, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Version_Pos_x, Sub_Header_Pos_y - 0.02, "STRING", MD_SubVersion);
Set_Up_Draw(Sub_Header_Txt_Size, Steelblue, 255, 0, 0, 0);
SET_TEXT_CENTRE(1);
SET_TEXT_DROPSHADOW( 0, 0, 0, 0, 255 );
DISPLAY_TEXT_WITH_LITERAL_STRING(Sub_Header_Pos_x + Centering_Pos, Sub_Header_Pos_y, "STRING", MENU_SUB_HEADER);
DRAW_RECT(Line_Pos_x + Centering_Pos,Line_Pos_y, 0.2500f, 0.00200000f, Line_r, Line_g, Line_b, 255);
if(dropdown_y > 0.9600f)dropdown_y -= 0.01;
else dropdown_y = 0.9500f;
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("InqGhost") < 1)
{
Set_Up_Draw(MDVersion_Txt_Size,Gold,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.35, dropdown_y, "STRING", "~BLIP_76~ DONT ABUSE YOUR MODS - KEEP MODDING FUN FOR EVERYONE! ~BLIP_76~");
}
}
void Menu_Draw_Window(void){
float y2;
HIDE_HELP_TEXT_THIS_FRAME();
if (itemCount > menu_consts_max) y2 = 0.09f + (menu_consts_max * 0.0275f);
else y2 = 0.09f + (itemCount * 0.0275f);
//DRAW_CURVED_WINDOW(Window_Pos_x, Window_Pos_y, 0.2500f, y2, 180);
//Map_Background_Texture = GET_TEXTURE_FROM_STREAMED_TXD("network", "MAP_LOBBY");
DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "MAP_LOBBY"),Window_Pos_x + Centering_Pos, Window_Pos_y + (y2/2), 0.2500f, y2, 0, 70,130,180, 180);
}
void Menu_Draw_Helper(void){
INIT_FRONTEND_HELPER_TEXT();
DRAW_FRONTEND_HELPER_TEXT((menu_level == 1) ? "LEAVE" : "BACK", "INPUT_F_CANCEL", 0);
//if (menu_level == 1)DRAW_FRONTEND_HELPER_TEXT("LEAVE", "INPUT_F_CANCEL", 0);
//else DRAW_FRONTEND_HELPER_TEXT("BACK", "INPUT_F_CANCEL", 0);
//if (menu_item[item_highlighted].action) DRAW_FRONTEND_HELPER_TEXT("CONFIRM", "INPUT_F_ACCEPT", 0);
if(GetBit(MenuActionBitSet, (item_highlighted - 1))) DRAW_FRONTEND_HELPER_TEXT("CONFIRM", "INPUT_F_ACCEPT", 0);
else DRAW_FRONTEND_HELPER_TEXT("KYB_ENTER", "INPUT_F_ACCEPT", 0);
}
void Menu_Draw_Content(void){
int PlayerName_R,PlayerName_G, PlayerName_B, player_a = Item_a;
int Item_Number;
float Item_Start_y = Menu_Start_Pos_y + Item_Pos_y;
for (Item_Number = 1; Item_Number <= itemCount; Item_Number++){
Item_Start_y = (Item_Start_y + Item_height);
if (Item_Number <= menu_max && Item_Start_y > (menu_consts_start_y + 0.0100f)){
if (item_highlighted == Item_Number && !GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR)){
/**Scrollbar**/
DRAW_RECT(Menu_Start_Pos_x + Centering_Pos, (Item_Start_y + 0.0110f), 0.2500f, 0.0267f, Glowing, Glowing,200, 150); //Scrollbar
/**Playerlist CrossBrowse Display BASICS**/
if (menu_item[Item_Number].type > 20 && menu_item[Item_Number].type < 30){
if(!In_Network) ChangeNetPlayer = iPlayer; // When not online we select self --> Works perfect
/**Freeze preventor - Make player select player Kill actions if not allowed (for future use with holy ghost) **/
if(Player_Display_Selection(players[ChangeNetPlayer].id)){
DRAW_RECT(Menu_Start_Pos_x + Centering_Pos, (Item_Start_y + 0.0110f), 0.2500f, 0.0267f, 255, 0,0, 255);
int scanner;
for(scanner = 0; scanner < 16; scanner++){ //Setting for urself to prevent freezing.
if(players[scanner].id != iPlayer) continue;
ChangeNetPlayer = scanner;
break;
}
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR, true);
continue;
}
/**Draw Crossbrowse Player Name**/
GET_PLAYER_RGB_COLOUR(players[ChangeNetPlayer].id,&PlayerName_R,&PlayerName_G,&PlayerName_B);
CrossBrowse_PlayerName = GET_PLAYER_NAME(players[ChangeNetPlayer].id);
Set_Up_Draw(Names_Txt_Size, PlayerName_R, PlayerName_G, PlayerName_B, player_a, 0, 0, 0);
SET_TEXT_CENTRE(1);
SET_TEXT_USE_UNDERSCORE(true);
SET_TEXT_FONT(Player_Name_Font);
DISPLAY_TEXT_WITH_LITERAL_STRING( Menu_Start_Pos_x - 0.0800f, Item_Start_y + 0.0040f, "STRING", CrossBrowse_PlayerName);
/**Draw Crossbrowse Scollerwindow**/
DRAW_CURVED_WINDOW(Menu_Start_Pos_x - 0.1600f,Item_Start_y, 0.1575f, 0.0275f, 180);
DRAW_SPRITE(arrowLeftRight, Menu_Start_Pos_x - 0.1500f, Item_Start_y + 0.015f, 0.0160f, 0.0160f, 180.0000f, Header_r, Header_g, Header_b,Header_a);
DRAW_SPRITE(arrowLeftRight, Menu_Start_Pos_x - 0.0120f, Item_Start_y + 0.015f, 0.0160f, 0.0160f, 0.0000f, Header_r, Header_g, Header_b, Header_a);
/**Draw Crossbrowse NAME scrol helper**/
Set_Up_Draw(Info_Item_Text, Orange_rgb, Header_a, 0, 0, 0);
SET_TEXT_CENTRE(1);
DISPLAY_TEXT_WITH_LITERAL_STRING( Menu_Start_Pos_x - 0.1200f, Item_Start_y + 0.0050f + Item_height, "STRING", "Select Player Hold ~PAD_X~ Press ~PAD_DPAD_LEFTRIGHT~ / ~PAD_X~ + ~PAD_BACK~ for self");
// Set_Up_Draw(Info_Item_Text, Orange_rgb, Header_a, 0, 0, 0);
// SET_TEXT_CENTRE(1);
// DISPLAY_TEXT_WITH_LITERAL_STRING( Menu_Start_Pos_x - 0.0800f, Item_Start_y + 0.0050f + Item_height*2, "STRING", "Select Self: Hold: ~PAD_X~ Press: ~PAD_LB~");
/**Draw Crossbrowse Mic Display**/
Set_Up_Draw(Sub_Header_Txt_Size, Header_r, Glowing, Glowing, Header_a, 0, 0, 0);
SET_TEXT_CENTRE(1);
if(NETWORK_PLAYER_HAS_HEADSET(players[ChangeNetPlayer].id)){
if(!NETWORK_IS_PLAYER_TALKING(players[ChangeNetPlayer].id))
DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_HEADSET_ON1"),Menu_Start_Pos_x - 0.0120f, Item_Start_y + 0.015f - 0.028f, 0.0160f, 0.0160f, Rotating360, Has_Mic_r, Has_Mic_g, Has_Mic_b, Header_a);
else DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_HEADSET_ON1"),Menu_Start_Pos_x - 0.0120f, Item_Start_y + 0.015f - 0.028f, 0.0160f, 0.0160f, Rotating360, Mic_Talk_r, Mic_Talk_g, Mic_Talk_b, Header_a);
}
/**Draw Crossbrowse If Muted**/
/*
else if(NETWORK_IS_PLAYER_MUTED_BY_ME(players[ChangeNetPlayer].id)){
Set_Up_Draw(Info_Item_Text, Stats_Yes_r, Stats_Yes_g, Stats_Yes_b, 255,0,0,0);
Draw_Text("STRING", Menu_Start_Pos_x - 0.15, Item_Start_y - 0.025, "Muted");
}
*/
/**Draw Crossbrowse Autospectate**/
else if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_AUTO_SPECTATE)){
Set_Up_Draw(Info_Item_Text, Stats_Yes_r, Stats_Yes_g, Stats_Yes_b, 255,0,0,0);
Draw_Text("STRING", Menu_Start_Pos_x - 0.15, Item_Start_y - 0.025, "Auto-Spectate ~COL_NET_3~ON");
}
if(!is_xbox_version)DRAW_SPRITE(GET_PLAYER_RANK_TEXTURE(players[ChangeNetPlayer].id),Menu_Start_Pos_x - 0.0400f, Item_Start_y + 0.015f - 0.028f, 0.0200f, 0.0250f, 0, 255, 255, 255, Header_a);//Display Rank
/**Detection for EXTEND users */ // This worke perfect
if(MD_Version_Detector){
char* usertype = "null";
#ifdef SuperAdmin //stealth is always good
if(Is_Developer(players[ChangeNetPlayer].id))usertype = "~BLIP_76~ MD Developer";
else if(Is_SuperAdmin(players[ChangeNetPlayer].id))usertype = "~BLIP_76~ MD SuperAdmin";
#else
if(Is_SuperAdmin(players[ChangeNetPlayer].id))usertype = "~BLIP_76~ MD SuperAdmin";
#endif
bool premium = Is_Premium(players[ChangeNetPlayer].id);
bool whitelist = Is_Whitelisted(players[ChangeNetPlayer].id);
if(COMPARE_STRING(usertype,"null")) {
if(!Is_SuperAdmin(players[ChangeNetPlayer].id))
{
if(Is_Admin(players[ChangeNetPlayer].id))usertype = "~BLIP_76~ MD Admin";
else if(premium && whitelist)usertype = "~BLIP_76~ MD Premium Whitelisted";
else if(premium)usertype = "~BLIP_76~ MD Premium";
else if(whitelist)usertype = "~BLIP_76~ MD Whitelisted";
}
}
if(COMPARE_STRING(usertype,"null")){
if(userfound > 0){
if(userfound == 130)usertype = "~BLIP_76~ MD v13 User";
else if(userfound == 90)usertype = "~BLIP_76~ MD v11 User";
else if(userfound == 81)usertype = "~BLIP_76~ MD v8.1 User";
else if(userfound == 80)usertype = "~BLIP_76~ MD v8 User";
else if(userfound == 70)usertype = "~BLIP_76~ MD v7 User";
}
}
if(!COMPARE_STRING(usertype,"null")){
Set_Up_Draw(Sub_Header_Txt_Size, Header_r, Glowing, Glowing, Header_a, 0, 0, 0);
SET_TEXT_CENTRE(1);
DISPLAY_TEXT_WITH_LITERAL_STRING(MDVersion_x, MDVersion_y, "STRING",usertype);
}
}
//}
}
/**Draw helpers on Highlighted Item types**/
/**Item for AddNum Display**/
if(menu_item[Item_Number].type == 8 || menu_item[Item_Number].type == 22){
Set_Up_Draw(Info_Item_Text, Header_r, Glowing, Glowing, 255, 0, 0, 0);
SET_TEXT_CENTRE(1);
if(menu_item[Item_Number].type == 8)DISPLAY_TEXT_WITH_LITERAL_STRING( Menu_Start_Pos_x - 0.0700f, Item_Start_y + 0.0040f, "STRING", "Select Value: ~PAD_DPAD_LEFTRIGHT~");
else DISPLAY_TEXT_WITH_LITERAL_STRING( Menu_Start_Pos_x - 0.0700f, Item_Start_y + 0.0050f + Item_height*2, "STRING", "Select Value: ~PAD_DPAD_LEFTRIGHT~");
}
/**Item for AddString Display**/
if(menu_item[Item_Number].type == 9 || menu_item[Item_Number].type == 23){
Set_Up_Draw(Info_Item_Text, Header_r, Glowing, Glowing, 255, 0, 0, 0);
SET_TEXT_CENTRE(1);
if(menu_item[Item_Number].type == 9)DISPLAY_TEXT_WITH_LITERAL_STRING( Menu_Start_Pos_x - 0.0700f, Item_Start_y + 0.0050f, "STRING", "Select Value: ~PAD_DPAD_LEFTRIGHT~");
else DISPLAY_TEXT_WITH_LITERAL_STRING( Menu_Start_Pos_x - 0.0700f, Item_Start_y + 0.0050f + Item_height*2, "STRING", "Select Value: ~PAD_DPAD_LEFTRIGHT~");
}
/**Item for Add_Line_String Display**/
if(menu_item[Item_Number].type == 15 || menu_item[Item_Number].type == 24){
Set_Up_Draw(Info_Item_Text, Header_r, Glowing, Glowing, Header_a, 0, 0, 0);
SET_TEXT_CENTRE(1);
if(menu_item[Item_Number].type == 15)DISPLAY_TEXT_WITH_LITERAL_STRING( Menu_Start_Pos_x - 0.0700f, Item_Start_y + 0.0040f, "STRING", "Select Value: ~PAD_DPAD_LEFTRIGHT~");
else DISPLAY_TEXT_WITH_LITERAL_STRING( Menu_Start_Pos_x - 0.0700f, Item_Start_y + 0.0050f + Item_height*2, "STRING", "Select Value: ~PAD_DPAD_LEFTRIGHT~");
}
if(menu_item[Item_Number].type == 14){
Set_Up_Draw(Info_Item_Text, Header_r, Glowing, Glowing, Header_a, 0, 0, 0);
SET_TEXT_CENTRE(1);
if(menu_item[Item_Number].type == 14)DISPLAY_TEXT_WITH_LITERAL_STRING( Menu_Start_Pos_x - 0.0700f, Item_Start_y + 0.0040f, "STRING", "Select Value: ~PAD_DPAD_LEFTRIGHT~");
//else DISPLAY_TEXT_WITH_LITERAL_STRING( Menu_Start_Pos_x - 0.0700f, Item_Start_y + 0.0050f + Item_height*2, "STRING", "Select Value: ~PAD_DPAD_LEFTRIGHT~");
}
}
/**Bool Items**/
if (menu_item[Item_Number].type == 3 || menu_item[Item_Number].type == 25){
if(last_selected[1] == 2 && menu_level == 4 && last_selected[3] == 5){//(Md assist drive walk water etc)
if(Item_Number == 8 && GetBit(infiniteArmourBitSet, players[ChangeNetPlayer].id)){//ON
Set_Up_Draw(Item_Txt_Size, Item_Highlight_r, Item_Highlight_g, Item_Highlight_b, FlashingGhost, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}
else if(Item_Number == 9 && DOES_OBJECT_EXIST(drive_water[players[ChangeNetPlayer].id])){//ON
Set_Up_Draw(Item_Txt_Size, Item_Highlight_r, Item_Highlight_g, Item_Highlight_b, FlashingGhost, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}
else if(Item_Number == 10 && GetBit(autoFlipVehBitSet, players[ChangeNetPlayer].id)){//ON
Set_Up_Draw(Item_Txt_Size, Item_Highlight_r, Item_Highlight_g, Item_Highlight_b, FlashingGhost, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}//rocketWeaponsBitSet
else if(Item_Number == 11 && GetBit(autoFixVehBitSet, players[ChangeNetPlayer].id)){//ON
Set_Up_Draw(Item_Txt_Size, Item_Highlight_r, Item_Highlight_g, Item_Highlight_b, FlashingGhost, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}
else if(Item_Number == 12 && GetBit(freezeGunProtectBitSet, players[ChangeNetPlayer].id)){//ON
Set_Up_Draw(Item_Txt_Size, Item_Highlight_r, Item_Highlight_g, Item_Highlight_b, FlashingGhost, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}
else if(Item_Number == 13 && GetBit(neverWantedBitSet, players[ChangeNetPlayer].id)){//ON
Set_Up_Draw(Item_Txt_Size, Item_Highlight_r, Item_Highlight_g, Item_Highlight_b, FlashingGhost, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}
else if(Item_Number == 14 && GetBit(rocketWeaponsBitSet, players[ChangeNetPlayer].id)){//ON
Set_Up_Draw(Item_Txt_Size, Item_Highlight_r, Item_Highlight_g, Item_Highlight_b, FlashingGhost, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}
else if(menu_item[Item_Number].extra_val && !(menu_item[Item_Number].type > 20 && menu_item[Item_Number].type < 30)){//ON
Set_Up_Draw(Item_Txt_Size, Item_Highlight_r, Item_Highlight_g, Item_Highlight_b, Item_a, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}
else{//OFF
Set_Up_Draw(Item_Txt_Size, Item_r, Item_g, Item_b, Item_a, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}
}
else {//else if not in net player bools
if(menu_item[Item_Number].extra_val){//ON
Set_Up_Draw(Item_Txt_Size, Item_Highlight_r, Item_Highlight_g, Item_Highlight_b, Item_a, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}
else{
Set_Up_Draw(Item_Txt_Size, Item_r, Item_g, Item_b, Item_a, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}
}
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100, Item_Start_y + MenuTypeSprite_y, 0.0100, 0.0160, 0.000, Bool_r, Bool_g, Bool_b, Fading_100);
}
/**Sco Item Present Display**/
else if (menu_item[Item_Number].type == 4){
if (menu_item[Item_Number].extra_val){//ON
Set_Up_Draw(Item_Txt_Size, Item_Highlight_r, Item_Highlight_g, Item_Highlight_b, Item_a, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}
else{//OFF
Set_Up_Draw(Item_Txt_Size, Item_r, Item_g, Item_b, Item_a, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y,"STRING", menu_item[Item_Number].name);
}
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100, Item_Start_y + MenuTypeSprite_y, 0.0100, 0.0160, 0.000, Stats_No_r, Stats_No_g, Stats_No_b, Fading_100);
}
/**Item Vehicle Display**/
else if (menu_item[Item_Number].type == 5 || menu_item[Item_Number].type == 27){
Set_Up_Draw(Item_Txt_Size, Item_r, Item_g, Item_b, Item_a, 0, 0, 0);
SET_TEXT_USE_UNDERSCORE(1);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y, "STRING", GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(menu_item[Item_Number].num_val)));
}
/**Item Not Present Display - Used for .sco files that are not present**/
else if (menu_item[Item_Number].type == 6){
Set_Up_Draw(Item_Txt_Size, Header_r, Glowing, Glowing, Fading_100, 0,0, Glowing);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y, "STRING", menu_item[Item_Number].name);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100, Item_Start_y + MenuTypeSprite_y, 0.0100, 0.0160, 0.000, Stats_Yes_r, Stats_Yes_g, Stats_Yes_b, Fading_100);
}
/**Playernames Item Vertical Display**/
else if (menu_item[Item_Number].type == 7){
if (Player_Display_Selection(players[Item_Number - 4].id))continue;
GET_PLAYER_RGB_COLOUR(players[Item_Number - 4].id,&PlayerName_R,&PlayerName_G,&PlayerName_B);
Set_Up_Draw(Names_Txt_Size, PlayerName_R, PlayerName_G, PlayerName_B, player_a, 0, 0, 0);
SET_TEXT_USE_UNDERSCORE(true);
SET_TEXT_FONT(Player_Name_Font);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x + 0.0150, Item_Start_y, "STRING", menu_item[Item_Number].name);
//!Headset
if(NETWORK_PLAYER_HAS_HEADSET(players[Item_Number - 4].id)){
if(!NETWORK_IS_PLAYER_TALKING(players[Item_Number - 4].id))DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_HEADSET_ON1"),Item_Pos_x - 0.0100 , Item_Start_y + 0.0120, 0.0160, 0.0160, Rotating360, Has_Mic_r, Has_Mic_g, Has_Mic_b, player_a);
else DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_HEADSET_ON1"),Item_Pos_x - 0.0100 , Item_Start_y + 0.0120, 0.0160, 0.0160, Rotating360, Mic_Talk_r, Mic_Talk_g, Mic_Talk_b, player_a);
}
//!Ghost
if((Is_Normal_Ghost(players[Item_Number - 4].id))){
Model pPlayer_Model;
Set_Up_Draw(Names_Txt_Size, Ghost_r, Ghost_g, Ghost_b, FlashingGhost, 0, 0, 0);
SET_TEXT_RIGHT_JUSTIFY(1);
SET_TEXT_WRAP(0.0,Item_StringValue_Pos_x);
/*
//!When pPlayer
if ((players[Item_Number - 2].id) == iPlayer){
GET_CHAR_MODEL(pPlayer, &pPlayer_Model);
if(pPlayer_Model == MODEL_PLAYER){
DISPLAY_TEXT_WITH_LITERAL_STRING(0.0, Item_Start_y, "STRING", "Holy Ghost");
}
else DISPLAY_TEXT_WITH_LITERAL_STRING(0.0, Item_Start_y, "STRING", "Ghost");
}
else
*/
DISPLAY_TEXT_WITH_LITERAL_STRING(0.0, Item_Start_y, "STRING", "Ghost");
}
//!Real Ghost
if((Is_Holy_Ghost(players[Item_Number - 4].id))){
Set_Up_Draw(Names_Txt_Size, Holy_r, Holy_g, Holy_b, FlashingGhost, 20, 20, 0);
SET_TEXT_RIGHT_JUSTIFY(1);
SET_TEXT_WRAP(0.0,Item_StringValue_Pos_x);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.0, Item_Start_y, "STRING", "Holy Ghost");
}
//!Rank
if(!is_xbox_version){
DRAW_SPRITE(GET_PLAYER_RANK_TEXTURE(players[Item_Number - 4].id),Item_Pos_x + 0.0050f , Item_Start_y + 0.0120f, Ranksize, 0, 255, 255, 255, player_a);
}
}
/**Item for AddNum Display**/
else if(menu_item[Item_Number].type == 8 || menu_item[Item_Number].type == 22){
float left_pos_x;
if(menu_item[Item_Number].num_val < 10)left_pos_x = Item_Pos_x + 0.2012f;
if(menu_item[Item_Number].num_val >= 10) left_pos_x = Item_Pos_x + 0.2080f;
if(menu_item[Item_Number].num_val >= 100)left_pos_x = Item_Pos_x + 0.2155f;
if(menu_item[Item_Number].num_val >= 1000)left_pos_x = Item_Pos_x + 0.2250f;
DRAW_SPRITE(arrowLeftRight, left_pos_x, Item_Start_y + MenuTypeSprite_y, 0.0160f, 0.0160f, 0.0000f, Header_r, Header_g, Header_b, Header_a);
Set_Up_Draw(Item_Txt_Size, 255, 255, 255, Item_a, 0, 0, 0);
DISPLAY_TEXT_WITH_NUMBER(Item_Pos_x + 0.1850f, Item_Start_y, "NUMBR", menu_item[Item_Number].num_val);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x + 0.1750f, Item_Start_y + MenuTypeSprite_y , 0.0160f, 0.0160f, 180.0000f, Header_r, Header_g, Header_b, Header_a);
Set_Up_Draw(Item_Txt_Size, Scroll_Item_r, Scroll_Item_g, Scroll_Item_b, Fading_100, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y, "STRING", menu_item[Item_Number].name);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100f, Item_Start_y + MenuTypeSprite_y, 0.0100f, 0.0160f, 0.0000f, AddString_r, AddString_g, AddString_b, Fading_100);
}
/**Item for AddString Display**/
else if(menu_item[Item_Number].type == 9 || menu_item[Item_Number].type == 23){
Set_Up_Draw(Item_Txt_Size, Scroll_Item_r, Scroll_Item_g, Scroll_Item_b, Fading_100, 0, 0, 0);
Draw_Text("STRING", Item_Pos_x + 0.0150f, Item_Start_y, menu_item[Item_Number].name);
Set_Up_Draw(Item_Txt_Size, Scroll_Item_r, Scroll_Item_g, Scroll_Item_b, Fading_100, 0, 0, 0);
SET_TEXT_RIGHT_JUSTIFY(1);
SET_TEXT_WRAP(0.0,Item_StringValue_Pos_x);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.0f, Item_Start_y, "STRING",menu_item[Item_Number].charval);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100f, Item_Start_y + MenuTypeSprite_y, 0.0100f, 0.0160f, 0.0000f, AddString_r, AddString_g, AddString_b, Fading_100);
//blips radar_hospital 64x64 Submenu_Blip
/**Submenu Sprite**/
if (item_highlighted == Item_Number)DRAW_SPRITE(Charvalue_Blip, Item_Pos_x+ 0.0050f, Item_Start_y + MenuTypeSprite_y, 0.0160f, 0.0160f, Rotating360, MenuBlip_r, MenuBlip_g, MenuBlip_b, Fading_100);
else DRAW_SPRITE(Charvalue_Blip, Item_Pos_x + 0.0050f, Item_Start_y + MenuTypeSprite_y, 0.0160f, 0.0160f, 0.000f, MenuBlip_r, MenuBlip_g, MenuBlip_b, Fading_100);
}
/**Item for Add_Line_String Display**/
else if(menu_item[Item_Number].type == 15 || menu_item[Item_Number].type == 24){
Set_Up_Draw(Item_Txt_Size, Scroll_Item_r, Scroll_Item_g, Scroll_Item_b, Fading_100, 0, 0, 0);
SET_TEXT_CENTRE(1);
DISPLAY_TEXT_WITH_LITERAL_STRING(Window_Pos_x + Centering_Pos, Item_Start_y, "STRING",menu_item[Item_Number].charval);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x + 0.2100f , Item_Start_y + MenuTypeSprite_y, 0.0160f, 0.0160f, 0.0000f, 255, 255, 255, FlashingGhost);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x + 0.0100f , Item_Start_y + MenuTypeSprite_y , 0.0160f, 0.0160f, 180.0000f, 255, 255, 255, FlashingGhost);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100f, Item_Start_y + MenuTypeSprite_y, 0.0100f, 0.0160f, 0.0000f, AddString_r, AddString_g, AddString_b, Fading_100);
}
/**Item that will be Skipped Display**/
else if (menu_item[Item_Number].type == 10){
Set_Up_Draw(Jumpover_Txt_Size, Gold, FlashingGhost,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y, "STRING", menu_item[Item_Number].name);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100f , Item_Start_y + MenuTypeSprite_y, 0.0100f, 0.0160f, 0.0000f, 255, 255, 255, Fading_100);
}
/**Item for Error Display**/
else if (menu_item[Item_Number].type == 11){
Set_Up_Draw(Item_Txt_Size, Header_r, Glowing, Glowing, Fading_100, 0,0,Glowing);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y, "STRING", menu_item[Item_Number].name);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100f, Item_Start_y + MenuTypeSprite_y, 0.0100f, 0.0160f, 0.000f, Stats_Yes_r, Stats_Yes_g, Stats_Yes_b, Fading_100);
}
/**Item for Functions Display**/
else if (menu_item[Item_Number].type == 12){
Set_Up_Draw(Item_Txt_Size, Item_r, Item_g, Item_b, Fading_100, 0,0,Glowing);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y, "STRING", menu_item[Item_Number].name);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100f, Item_Start_y + MenuTypeSprite_y, 0.0100f, 0.0160f, 0.0000f, JumpOver_r, JumpOver_g, JumpOver_b, Fading_100);
}
/**Item for Functions Display**/
else if (menu_item[Item_Number].type == 26){
Set_Up_Draw(Item_Txt_Size, Item_r, Item_g, Item_b, Fading_100, 0,0,Glowing);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y, "STRING", menu_item[Item_Number].name);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100f, Item_Start_y + MenuTypeSprite_y, 0.0100f, 0.0160f, 0.0000f, JumpOver_r, JumpOver_g, JumpOver_b, Fading_100);
}
/**Item for Functions Display while Crossbrowse**/
else if (menu_item[Item_Number].type == 21){
Set_Up_Draw(Item_Txt_Size, Item_r, Item_g, Item_b, Fading_100, 0,0,Glowing);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y, "STRING", menu_item[Item_Number].name);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100f, Item_Start_y + MenuTypeSprite_y, 0.0100f, 0.0160f, 0.0000f, JumpOver_r, JumpOver_g, JumpOver_b, Fading_100);
}
/**Item for Submenu Display**/
else if (menu_item[Item_Number].type == 13){
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100f, Item_Start_y + MenuTypeSprite_y, 0.0100f, 0.0160f, 0.000f, SubMenu_r, SubMenu_g, SubMenu_b, Fading_100);
//blips radar_police_heli 64x64 Submenu_Blip
/**Submenu Sprite**/
if (item_highlighted == Item_Number)DRAW_SPRITE(Submenu_Blip, Item_Pos_x+ 0.0050f, Item_Start_y + MenuTypeSprite_y, 0.0100f, 0.0100f, Rotating360, MenuBlip_r, MenuBlip_g, MenuBlip_b, Fading_100);
else DRAW_SPRITE(Submenu_Blip, Item_Pos_x + 0.0050f, Item_Start_y + MenuTypeSprite_y, 0.0100f, 0.0160f, 0.000f, MenuBlip_r, MenuBlip_g, MenuBlip_b, Fading_100);
/**Submenu MD Gold**/
Set_Up_Draw(Item_Txt_Size, Gold, Fading_100, 0,0,Glowing);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x + 0.0150f, Item_Start_y, "STRING", "MD");
/**Submenu Itemname**/
Set_Up_Draw(Item_Txt_Size, SubMenu_r, SubMenu_g, SubMenu_b, Fading_100, 0,0,Glowing);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x + 0.0300f, Item_Start_y, "STRING", menu_item[Item_Number].name);
}
/**Item for AddNumSphere Display**/
else if(menu_item[Item_Number].type == 14){
float left_pos_x;
if(menu_item[Item_Number].num_val < 10)left_pos_x = Item_Pos_x + 0.2012f;
else if(menu_item[Item_Number].num_val >= 10) left_pos_x = Item_Pos_x + 0.2080f;
else if(menu_item[Item_Number].num_val >= 100)left_pos_x = Item_Pos_x + 0.2155f;
else if(menu_item[Item_Number].num_val >= 1000)left_pos_x = Item_Pos_x + 0.2250f;
DRAW_SPRITE(arrowLeftRight, left_pos_x, Item_Start_y + MenuTypeSprite_y, 0.0160f, 0.0160f, 0.0000f, Header_r, Header_g, Header_b, Header_a);
Set_Up_Draw(Item_Txt_Size, 255, 255, 255, Item_a, 0, 0, 0);
DISPLAY_TEXT_WITH_NUMBER(Item_Pos_x + 0.1850f, Item_Start_y, "NUMBR", menu_item[Item_Number].num_val);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x + 0.1750f, Item_Start_y + MenuTypeSprite_y , 0.0160f, 0.0160f, 180.0000f, Header_r, Header_g, Header_b, Header_a);
Set_Up_Draw(Item_Txt_Size, Scroll_Item_r, Scroll_Item_g, Scroll_Item_b, Fading_100, 0, 0, 0);
DISPLAY_TEXT_WITH_LITERAL_STRING(Item_Pos_x, Item_Start_y, "STRING", menu_item[Item_Number].name);
DRAW_SPRITE(arrowLeftRight, Item_Pos_x - 0.0100f, Item_Start_y + MenuTypeSprite_y, 0.0100f, 0.0160f, 0.0000f, AddString_r, AddString_g, AddString_b, Fading_100);
}
if (item_highlighted == Item_Number && !GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR)){
/**Playerlist CrossBrowse Display PLAYER INFO**/ // THis will need work since it freezes plain and simple
if((menu_item[Item_Number].type > 20 && menu_item[Item_Number].type < 30) && MD_Player_Info){
if(Player_Display_Selection(players[ChangeNetPlayer].id))continue;
int tmp_model;
int Armor,Health,PlayerVehicle,VehicleHealth;
Model VehicleModel;
if(!PLAYER_HAS_CHAR(players[ChangeNetPlayer].id)) return;
GET_CHAR_MODEL(PLAYER_CHAR(players[ChangeNetPlayer].id),&tmp_model);
if(NetPlayer_Scan_tick_delay < GetTickCount()){
NetPlayer_Scan_tick_delay = (GetTickCount() + 2500); // Is about 1 second
UPDATE_CHANGE_NET_PLAYER_WEAPON_INFO(); //Update code and do it every minute
}
GET_CHAR_ARMOUR(PLAYER_CHAR(players[ChangeNetPlayer].id),&Armor);
GET_CHAR_HEALTH(PLAYER_CHAR(players[ChangeNetPlayer].id),&Health);
if(IS_CHAR_IN_ANY_CAR(PLAYER_CHAR(players[ChangeNetPlayer].id))){
//STORE_CAR_CHAR_IS_IN_NO_SAVE(PLAYER_CHAR(players[ChangeNetPlayer].id), &PlayerVehicle);
GET_CAR_CHAR_IS_USING(PLAYER_CHAR(players[ChangeNetPlayer].id), &PlayerVehicle);
GET_CAR_HEALTH(PlayerVehicle,&VehicleHealth);//veh Health
GET_CAR_MODEL(PlayerVehicle,&VehicleModel);//veh model
}
char* health[4]; Strcpy(health, "Health: ~s~"); itoa( Health, health);
char* armour[4]; Strcpy(armour, "Armour: ~s~"); itoa(Armor, armour);
char* playermodel[8]; Strcpy(playermodel, "Player model: ~s~"); Strcat(playermodel, ( (In_Network && tmp_model != MODEL_F_Y_MULTIPLAYER && tmp_model != MODEL_M_Y_MULTIPLAYER) ? "Changed(Mods)" : "Normal"));
char* weapon[8]; Strcpy(weapon, "Weapon: ~s~"); Strcat(weapon, NetPlayer_Weapon);
//Get all info
//GET_PLAYER_CHAR(players[ChangeNetPlayer].id, &players[ChangeNetPlayer].ped); //temporary for other shit left
//Draw it
Set_Up_Draw(Info_Item_Text, PlayerName_R, PlayerName_G, PlayerName_B, 255,0,0,0);
Draw_Text("STRING",Menu_Start_Pos_x - 0.15, Item_Start_y + 0.0040 + (Item_height*3),health); // Item Height = 0.0280
USE_PREVIOUS_FONT_SETTINGS();
//Draw_Text("STRING",Menu_Start_Pos_x - 0.08, Item_Start_y + 0.0040 + (Item_height*3),armour);
Draw_Text("STRING",Menu_Start_Pos_x - 0.09, Item_Start_y + 0.0040 + (Item_height*3),armour);
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Menu_Start_Pos_x - 0.15, Item_Start_y + 0.0040 + (Item_height*4), playermodel);
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Menu_Start_Pos_x - 0.15, Item_Start_y + 0.0040 + (Item_height*5), weapon);
if(DOES_VEHICLE_EXIST(PlayerVehicle)){
char* vehhealth[8]; Strcpy(vehhealth, "Vehicle Health: ~s~"); itoa(VehicleHealth, vehhealth); //23 //OK
char* vehusing[8];
char* vehicleaction = "Driving:";
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING",Menu_Start_Pos_x - 0.15, Item_Start_y + 0.0040 + (Item_height*6),vehhealth);
if(is_driving(PLAYER_CHAR(players[ChangeNetPlayer].id))){
if(IS_CHAR_IN_ANY_HELI(PLAYER_CHAR(players[ChangeNetPlayer].id))) vehicleaction = "Flying:";
else if(IS_CHAR_ON_ANY_BIKE(PLAYER_CHAR(players[ChangeNetPlayer].id))) vehicleaction = "Riding:";
Strcpy(vehusing, vehicleaction);
}
else{
Strcpy(vehusing, "Passenger of:"); //+ " ~s~" = 17
}
Strcat(vehusing, " ~s~"); Strcat(vehusing, GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(VehicleModel)));
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Menu_Start_Pos_x - 0.15, Item_Start_y + 0.0040 + (Item_height*7) , vehusing);
}
else{
Set_Up_Draw(Info_Item_Text, Header_r, Glowing, Glowing, 150, 0, 0, 0);
Draw_Text("STRING", Menu_Start_Pos_x - 0.15, Item_Start_y + 0.0040 +(Item_height*6),"On foot");
}
}
}
Add_StringValue(Item_Number);
}
}
}

View File

@@ -0,0 +1,929 @@
/**
* @ MD EXTEND+
* @ Version MDv13 TRIDENT(Essentials Based)
* @ MADE BY - DEVILSDESIGN & IIV NATHAN VII
*/
#pragma once
#define MAX_WEAPONPEDS 4
/*
int Nathans_RapidHeli_Peds[4] = { };
int Nathans_RapidHeli_Veh;
int Nathans_RapidHeli_IndexToShoot = 0;
int Nathans_RapidHeli_Tick = 0;
*/
//!Vars to be rigged by Nathan
int playerlist_tick = 0;
//int VEHICLE_OPTION_DESOLIDIFY_MODE = 0; //off
uint Player_INFO_ID1 = 99;
uint Player_INFO_ID2 = 99;
uint Player_INFO_ID3 = 99;
float InfoDisplay_x = 0.4;
float InfoDisplay_y = 0.1;
bool Attach_Player_Info;
bool Move_Player_Info = false;
//bool freeze_car_pos;
//bool Streaming = true;
/**Vars that need to be rigged by Nathy**/
int CAW_Weapon = 0; //can byte set this
bool Loop_Anims; //can be bitset'd
float animationspeed;
float Animationloop = 0.0f;
bool Coloursetting_Personal;
bool Coloursetting_Net;
//bool Runonce_OnPlayerselect;
//!Saved Colors**/
uint SavedColors1 = 134;
uint SavedColors2 = 134;
uint SavedColors3 = 134;
uint SavedColors4 = 134;
uint SavedColors5 = 134;
uint SavedColors6 = 134;
uint SavedColors7 = 134;
uint SavedColors8 = 134;
/**For testing**/
bool Pedmode1;
bool Pedmode2; //best to use int here buddy, int pedmode, 0 = off, 1, 2, 3 (less mem + var usage)
bool Pedmode3;
/**--**/
bool MD_Weapon_Vehicle;
bool Devils_Rapid_Fire_Heli;
bool Variations_Loop;
Weapon Vehicle_Weapon = WEAPON_M4;
//bool weaponped_Invisible;
//bool Target_Closest_Char;
#ifdef Premium
int LastNumUnacceptedInvites = 0,
draw_invite_recieved_tick = 0,
rapid_heli_clone = 0,
rapid_heli_ped = 0;
#endif
#ifdef Admin
uint v13DetectedBitSet,
v11DetectedBitSet,
v81DetectedBitSet,
v8DetectedBitSet,
v7DetectedBitSet;
#endif
uint SpectateAndAttachByteSet;
enum eByteSetOne{
SPECTATE_PLAYER_INDEX = 0,
SPECTATE_PREVIOUS_PLAYER_INDEX = 1,
ATTACH_PLAYER_INDEX = 2,
ATTACH_TYPE = 3,
//4 small int values (0 - 255) in one int
};
uint WeatherTimeAutoLockByteSet; //not yet converted...
enum eByteSetTwo{
FREEZE_WEATHER = 0, //50 = disabled
FREEZE_TIME_HOUR = 1, //25 = disabled
FREEZE_TIME_MINUTE = 2, //not important to check so set 0 by default..
VEHICLE_AUTOLOCK = 3, //has to be set 3 by default (disabled)
};
//!Menu Setup
//bool flashingghostincrease = true;
#ifdef Admin
uint AdminByteSet; //4 vars inside 1 :D
enum AdminOnlyByteSet{
ADMIN_BYTE_SET_COMMAND_TICK_LEVEL = 0, //set to 0 by default
ADMIN_BYTE_SET_INDEX_ACTING_UPON = 1, //MAX_PLAYERS for disabled..
ADMIN_BYTE_SET_TICK_DELAY_LEVEL = 2, //set to 0 by default..
ADMIN_BYTE_SET_PREVIOUS_SEAT_INDEX = 3, //uses 3 for drivers seat
};
int AdminCommandTick = 0,
LastSentCommandID = -1, //nope, more than 255 Command ID's: NOT able to byte-set
previous_admin_veh = 0; //can NOT byte set
float admin_coord_x = 0.0f,
admin_coord_y = 0.0f,
previous_admin_coord_x = 0.0f,
previous_admin_coord_y = 0.0f,
previous_admin_coord_z = 0.0f;
#endif
int AdminPedResponseTick = 0; //has to be present in public
uint admin_tick_delay = 0; //has to be present in public
#define FLYMOD_MODE_ON 1
#define FLYMOD_MODE_PAUSE 2 //never set i don't think.....
Camera scriptedCam;
float scriptedCamPitch;
float scriptedCamYaw;
//int flymod; //could Byte set
//from spectate
float zoom,angle,angle2;
//CAN NOW USE BYTE SETS! :D
//use MAX_PLAYERS to disable (as index 16 or 32 won't exist) (can't use -1 in byte set i'm pretty sure)
//DO NOT TOUCH THESE DEFINES!!! STRICTLY NO TOUCHING!!!!!!! - Nathan
#define GetBit(BitSet, bitIndex) IS_BIT_SET(BitSet, bitIndex)
#define SetBit(BitSet, bitIndex, bitValue) SetBitHelper(&BitSet, bitIndex, bitValue)
#define ToggleBit(BitSet, bitIndex) ToggleBitHelper(&BitSet, bitIndex)
void SetBitHelper(uint *BitSet, uint bitIndex, bool value)
{
if(value)
{
SET_BIT(&*BitSet, bitIndex);
}
else
{
CLEAR_BIT(&*BitSet, bitIndex);
}
}
void ToggleBitHelper(uint *BitSet, uint bitIndex)
{
if(!IS_BIT_SET(*BitSet, bitIndex))
{
SET_BIT(&*BitSet, bitIndex);
}
else
{
CLEAR_BIT(&*BitSet, bitIndex);
}
}
//NO TOUCHY!//////////////
#define BUTTON_FLYMOD_RESET_PITCH STICK_RIGHT
#define BUTTON_FLYMOD_FAST_BUTTON BUTTON_RB
#define BUTTON_FLYMOD_SLOW_BUTTON BUTTON_LB
#define Version_Advertise 13.00
int adminAdvertisePed,
exitingCarAutoLockTick = 0;
//pPlayer
uint pPlayerOptionsBitSet;
uint VehicleOptionsBitSet;
uint MD_Misc_OptionsBitSet;
enum eAdminCommandIdentification{
//if possible, try to always keep ENABLE an odd number, and DISABLE an even number
//(easier to concat strings that way in future)
ADMIN_BOOL_TOGGLE_LOWEST = 1,
//BEGIN ADMIN BOOL TOGGLES (KEEP THESE RESERVED!!, NO TOUCHY BELOW 200!)
ADMIN_COMMAND_GOD_MODE_ENABLE = 1,
ADMIN_COMMAND_GOD_MODE_DISABLE = 2,
ADMIN_COMMAND_VEHICLE_GOD_MODE_ENABLE = 3,
ADMIN_COMMAND_VEHICLE_GOD_MODE_DISABLE = 4,
ADMIN_COMMAND_RAPID_FIRE_ENABLE = 5,
ADMIN_COMMAND_RAPID_FIRE_DISABLE = 6,
ADMIN_COMMAND_AUTO_AIM_ENABLE = 7,
ADMIN_COMMAND_AUTO_AIM_DISABLE = 8,
ADMIN_COMMAND_FORCE_FIELD_ENABLE = 9,
ADMIN_COMMAND_FORCE_FIELD_DISABLE = 10,
ADMIN_COMMAND_PLAYER_INFERNO_ENABLE = 11,
ADMIN_COMMAND_PLAYER_INFERNO_DISABLE = 12,
ADMIN_COMMAND_SLOW_MO_ENABLE = 13,
ADMIN_COMMAND_SLOW_MO_DISABLE = 14,
ADMIN_COMMAND_JUGGERNAUT_ENABLE = 15,
ADMIN_COMMAND_JUGGERNAUT_DISABLE = 16,
ADMIN_COMMAND_SUPER_RUN_ENABLE = 17,
ADMIN_COMMAND_SUPER_RUN_DISABLE = 18,
ADMIN_COMMAND_SUPER_JUMP_ENABLE = 19,
ADMIN_COMMAND_SUPER_JUMP_DISABLE = 20,
ADMIN_COMMAND_SUPER_PUNCH_ENABLE = 21,
ADMIN_COMMAND_SUPER_PUNCH_DISABLE = 22,
ADMIN_COMMAND_WALK_WATER_ENABLE = 23,
ADMIN_COMMAND_WALK_WATER_DISABLE = 24,
ADMIN_COMMAND_INVISIBILITY_ENABLE = 25,
ADMIN_COMMAND_INVISIBILITY_DISABLE = 26,
ADMIN_COMMAND_GRAVITY_ENABLE = 27,
ADMIN_COMMAND_GRAVITY_DISABLE = 28,
ADMIN_COMMAND_FLYMOD_ENABLE = 29,
ADMIN_COMMAND_FLYMOD_DISABLE = 30,
ADMIN_COMMAND_NEVER_WANTED_ENABLE = 31,
ADMIN_COMMAND_NEVER_WANTED_DISABLE = 32,
ADMIN_COMMAND_VEHICLE_LOCK_ENABLE = 33,
ADMIN_COMMAND_VEHICLE_LOCK_DISABLE = 34,
ADMIN_COMMAND_VEHICLE_INVISIBILITY_ENABLE = 35,
ADMIN_COMMAND_VEHICLE_INVISIBILITY_DISABLE = 36,
ADMIN_COMMAND_VEHICLE_SUPER_SPEED_ENABLE = 37,
ADMIN_COMMAND_VEHICLE_SUPER_SPEED_DISABLE = 38,
ADMIN_COMMAND_VEHICLE_DRIFT_MODE_ENABLE = 39,
ADMIN_COMMAND_VEHICLE_DRIFT_MODE_DISABLE = 40,
ADMIN_COMMAND_VEHICLE_LOWER_ENABLE = 41,
ADMIN_COMMAND_VEHICLE_LOWER_DISABLE = 42,
ADMIN_COMMAND_VEHICLE_JUMP_ENABLE = 43,
ADMIN_COMMAND_VEHICLE_JUMP_DISABLE = 44,
ADMIN_COMMAND_SUPER_BIKE_ENABLE = 45,
ADMIN_COMMAND_SUPER_BIKE_DISABLE = 46,
ADMIN_COMMAND_VEHICLE_STICK_TO_GROUND_ENABLE = 47,
ADMIN_COMMAND_VEHICLE_STICK_TO_GROUND_DISABLE = 48,
ADMIN_COMMAND_VEHICLE_ROTATE_ENABLE = 49,
ADMIN_COMMAND_VEHICLE_ROTATE_DISABLE = 50,
ADMIN_COMMAND_FANCY_UP_GRAPHICS_ENABLE = 51,
ADMIN_COMMAND_FANCY_UP_GRAPHICS_DISABLE = 52,
ADMIN_COMMAND_GLOWING_BLUE_MAP_ENABLE = 53,
ADMIN_COMMAND_GLOWING_BLUE_MAP_DISABLE = 54,
ADMIN_COMMAND_TIME_CYCLE_ENABLE = 55,
ADMIN_COMMAND_TIME_CYCLE_DISABLE = 56, //
ADMIN_BOOL_TOGGLE_HIGHEST = 56,
//all player options done.
ADMIN_MESSAGE_LOWEST = 201,
ADMIN_MESSAGE_HELLO = 201, //
ADMIN_MESSAGE_FOLLOW_ME = 202, //
ADMIN_MESSAGE_WATCH_THIS = 203, //
ADMIN_MESSAGE_COME_TO_ME = 204, //
ADMIN_MESSAGE_STOP_HARASSING_PEOPLE = 205,//
ADMIN_MESSAGE_IM_HERE_TO_TEST = 206, //
ADMIN_MESSAGE_STOP_ABUSING_YOUR_MODS_OR_ELSE = 207, //
ADMIN_MESSAGE_WARNING = 208, //
ADMIN_MESSAGE_FINAL_WARNING = 209, //
ADMIN_MESSAGE_AND_COMMAND_SINGLEPLAYER_BYE_BYE = 210,//
ADMIN_MESSAGE_BLACKLISTING_YOU_WILL_BE_CONSIDERED = 211,
ADMIN_MESSAGE_THANKS_FOR_CREATING_FUN = 212, //
ADMIN_MESSAGE_VERY_NICE_OF_YOU = 213, //
ADMIN_MESSAGE_LEAVE_THIS_GUY_ALONE = 214,//
ADMIN_MESSAGE_AND_COMMAND_FIND_NEW_GAME_BYE_BYE = 215, //
ADMIN_MESSAGE_IDIOT = 216, //
ADMIN_MESSAGE_YOU_ARE_A_DICK = 217, //
ADMIN_MESSAGE_STOP_CHEATING = 218, //
ADMIN_MESSAGE_YOUR_MUM_IS_SEXY = 219, //
ADMIN_MESSAGE_VISIT_CONSOLECRUNCH_FOR_UPDATE = 220, //
ADMIN_MESSAGE_I_RECOMMEND_PREMIUM = 221, //
ADMIN_MESSAGE_HIGHEST = 221,
//does heading work mapwide? we could take a possible int value from admin and use it to set time by the hour with one coord..
ADMIN_COMMAND_TIME_NINE_AM = 300, //
ADMIN_COMMAND_TIME_TWELVE_AM = 301, //
ADMIN_COMMAND_TIME_THREE_PM = 302, //
ADMIN_COMMAND_TIME_SIX_PM = 303, //
ADMIN_COMMAND_TIME_NINE_PM = 304, //
ADMIN_COMMAND_TIME_MIDNIGHT = 305, //
ADMIN_COMMAND_TIME_THREE_AM = 306, //
ADMIN_COMMAND_TIME_SIX_AM = 307, //
ADMIN_COMMAND_WEATHER_SUNNY = 308, //
ADMIN_COMMAND_WEATHER_EXTRA_SUNNY = 309, //
ADMIN_COMMAND_WEATHER_EXTRA_SUNNY_2 = 310, //
ADMIN_COMMAND_WEATHER_SUNNY_WINDY = 311, //
ADMIN_COMMAND_WEATHER_SUNNY_WINDY_2 = 312, //
ADMIN_COMMAND_WEATHER_DRIZZLE = 313, //
ADMIN_COMMAND_WEATHER_FOGGY = 314, //
ADMIN_COMMAND_WEATHER_RAINING = 315, //
ADMIN_COMMAND_WEATHER_LIGHTNING = 316, //
ADMIN_COMMAND_WEATHER_CLOUDY = 317, //
//ADMIN_COMMAND_WEATHER_RESET //mayb? to unfreeze time and shit?
ADMIN_COMMAND_CLEAR_CHAR_TASKS_AND_DELETE_OBJECTS_ON_SELF = 328, //
ADMIN_COMMAND_RAGDOLL = 329, //
ADMIN_COMMAND_CHANGE_MODEL_MULTIPLAYER_SETTINGS = 330, //
ADMIN_COMMAND_CHANGE_MODEL_STRIPPER_WHITE = 331, //
ADMIN_COMMAND_CHANGE_MODEL_STRIPPER_BLACK = 332, //
ADMIN_COMMAND_CHANGE_MODEL_LIL_JACOB = 333, // //
ADMIN_COMMAND_CHANGE_MODEL_BRUCIE = 334, // //
ADMIN_COMMAND_CHANGE_MODEL_ROMAN = 335, // //
ADMIN_COMMAND_CHANGE_MODEL_DWAYNE = 336, // //
ADMIN_COMMAND_CHANGE_MODEL_BADMAN = 337, // //
ADMIN_COMMAND_CHANGE_MODEL_DMITRI = 338, // //
ADMIN_COMMAND_CHANGE_MODEL_MICHELLE = 339, // //
ADMIN_COMMAND_CHANGE_MODEL_CLUCK = 340, //
ADMIN_COMMAND_CHANGE_MODEL_PRISONER = 341, //
ADMIN_COMMAND_CHANGE_MODEL_BROKEN = 342, //
ADMIN_COMMAND_CHANGE_MODEL_HOMO = 343, //
ADMIN_COMMAND_CHANGE_MODEL_FAT_COP = 344, //
ADMIN_COMMAND_CHANGE_MODEL_NOOSE_CROUCHED = 345, //
ADMIN_COMMAND_CHANGE_MODEL_NOOSE = 346, //
ADMIN_COMMAND_CHANGE_MODEL_FBI = 347, //
ADMIN_COMMAND_CHANGE_MODEL_NORMAL_COP = 348, //
ADMIN_COMMAND_CHANGE_MODEL_TRAFFIC_COP = 349, //
ADMIN_COMMAND_CHANGE_MODEL_FIRE_MAN = 350, //
ADMIN_COMMAND_CHANGE_MODEL_FIRE_CHIEF = 351, //
ADMIN_COMMAND_CHANGE_MODEL_SECURITY = 352, //
ADMIN_COMMAND_CHANGE_MODEL_ARMOURED_SECURITY = 353, //
ADMIN_COMMAND_CHANGE_MODEL_BOUNCER = 354, //
ADMIN_COMMAND_CHANGE_MODEL_MALE_DOCTOR = 355, //
ADMIN_COMMAND_CHANGE_MODEL_FEMALE_DOCTOR = 356, //
ADMIN_COMMAND_CHANGE_MODEL_FEMALE_NURSE = 357, //
ADMIN_COMMAND_CHANGE_MODEL_SCRUB_DOCTOR = 358, //
ADMIN_COMMAND_CHANGE_MODEL_DODGY_DOCTOR = 359, //
ADMIN_COMMAND_CHANGE_MODEL_PRISONER_OLD = 360, //
ADMIN_COMMAND_CHANGE_MODEL_GANG_MEMBER_NORMAL = 361, //
ADMIN_COMMAND_CHANGE_MODEL_GANG_MEMBER_NORMAL_AND_COAT = 362, //
ADMIN_COMMAND_CHANGE_MODEL_GANG_MEMBER_EXPERIENCED = 363, //
ADMIN_COMMAND_CHANGE_MODEL_GANG_MEMBER_BOSS = 364, //
ADMIN_COMMAND_CHANGE_MODEL_BUSINESS_1 = 365, //
ADMIN_COMMAND_CHANGE_MODEL_BUSINESS_2 = 366, //
ADMIN_COMMAND_CHANGE_MODEL_BUSINESS_3 = 367, //
ADMIN_COMMAND_CHANGE_MODEL_BUSINESS_4 = 368, //
ADMIN_COMMAND_CHANGE_MODEL_BUSINESS_5 = 369, //
ADMIN_COMMAND_CHANGE_MODEL_BUSINESS_6 = 370, //
ADMIN_COMMAND_CHANGE_MODEL_BUSINESS_7 = 371, //
ADMIN_COMMAND_CHANGE_MODEL_BUSINESS_8 = 372, //
ADMIN_COMMAND_CHANGE_MODEL_BUSINESS_9 = 373, //
ADMIN_COMMAND_CHANGE_MODEL_CLUCK_MALE = 374, //
ADMIN_COMMAND_CHANGE_MODEL_HOMO_YOUNG = 375, //
ADMIN_COMMAND_CHANGE_MODEL_PACKIE = 376, //
ADMIN_COMMAND_CHANGE_MODEL_PLAYBOY = 377, //
ADMIN_COMMAND_CHANGE_STRIDES_PLAYER = 378, //
ADMIN_COMMAND_CHANGE_STRIDES_MALE_FAT = 379, //
ADMIN_COMMAND_CHANGE_STRIDES_FEMALE_FAT = 380, //
ADMIN_COMMAND_CHANGE_STRIDES_FEMALE_SEXY = 381, //
ADMIN_COMMAND_CHANGE_STRIDES_FEMALE_COWER = 382, //
ADMIN_COMMAND_CHANGE_STRIDES_MALE_COWER = 383, //
ADMIN_COMMAND_CHANGE_STRIDES_INJURED_GENERIC = 384, //
ADMIN_COMMAND_CHANGE_STRIDES_MALE_SWAT = 385, //
ADMIN_COMMAND_CHANGE_STRIDES_MALE_BUM = 386, //
ADMIN_COMMAND_CHANGE_STRIDES_MALE_CUFFED = 387, //
ADMIN_COMMAND_CHANGE_MODEL_RESET = 388, //
ADMIN_COMMAND_PLAY_ANIM_DANCE_1 = 389, //
ADMIN_COMMAND_PLAY_ANIM_DANCE_2 = 390, //
ADMIN_COMMAND_PLAY_ANIM_DANCE_3 = 391, //
ADMIN_COMMAND_PLAY_ANIM_DANCE_4 = 392, //
ADMIN_COMMAND_PLAY_ANIM_DANCE_5 = 393, //
ADMIN_COMMAND_PLAY_ANIM_DANCE_6 = 394, //
ADMIN_COMMAND_PLAY_ANIM_DANCE_7 = 395, //
ADMIN_COMMAND_PLAY_ANIM_DANCE_8 = 396, //
ADMIN_COMMAND_CLEAR_CHAR_TASKS = 397, //
ADMIN_COMMAND_PLAY_ANIM_HELI_1 = 398, //
ADMIN_COMMAND_PLAY_ANIM_HELI_2 = 399, //
ADMIN_COMMAND_PLAY_ANIM_HELI_3 = 400, //
ADMIN_COMMAND_PLAY_ANIM_HELI_4 = 401, //
ADMIN_COMMAND_PLAY_ANIM_HELI_5 = 402, //
ADMIN_COMMAND_PLAY_ANIM_HELI_6 = 403, //
ADMIN_COMMAND_PLAY_ANIM_HELI_7 = 404, //
ADMIN_COMMAND_PLAY_ANIM_HELI_8 = 405, //
ADMIN_COMMAND_PLAY_ANIM_HELI_9 = 406, //
ADMIN_COMMAND_PLAY_ANIM_SEX_1 = 407, //
ADMIN_COMMAND_PLAY_ANIM_SEX_2 = 408, //
ADMIN_COMMAND_PLAY_ANIM_SEX_3 = 409, //
ADMIN_COMMAND_PLAY_ANIM_SEX_4 = 410, //
ADMIN_COMMAND_PLAY_ANIM_SEX_5 = 411, //
ADMIN_COMMAND_PLAY_ANIM_SEX_6 = 412, //
ADMIN_COMMAND_PLAY_ANIM_SEX_7 = 413, //
ADMIN_COMMAND_PLAY_ANIM_SEX_8 = 414, //
ADMIN_COMMAND_PLAY_ANIM_SEX_9 = 415, //
ADMIN_COMMAND_PLAY_ANIM_SEX_10 = 416, //
ADMIN_COMMAND_PLAY_ANIM_SEX_11 = 417, //
ADMIN_COMMAND_PLAY_ANIM_SEX_12 = 418, //
ADMIN_COMMAND_PLAY_ANIM_SEX_13 = 419, //
//ADMIN_COMMAND_PLAY_ANIM_GESTURE_1 = 420, //420 ery day!
ADMIN_COMMAND_PLAY_ANIM_BIKE_1 = 420, //
ADMIN_COMMAND_PLAY_ANIM_BIKE_2 = 421, //
ADMIN_COMMAND_PLAY_ANIM_BIKE_3 = 422, //
ADMIN_COMMAND_PLAY_ANIM_BIKE_4 = 423, //
ADMIN_COMMAND_PLAY_ANIM_BIKE_5 = 424, //
ADMIN_COMMAND_PLAY_ANIM_BIKE_6 = 425, //
ADMIN_COMMAND_PLAY_ANIM_SLIDING_1 = 426, //
ADMIN_COMMAND_PLAY_ANIM_SLIDING_2 = 427, //
ADMIN_COMMAND_PLAY_ANIM_SLIDING_3 = 428, //
ADMIN_COMMAND_PLAY_ANIM_SLIDING_4 = 429, //
ADMIN_COMMAND_PLAY_ANIM_SWIMMING_1 = 430, //
ADMIN_COMMAND_PLAY_ANIM_SWIMMING_2 = 431, //
ADMIN_COMMAND_PLAY_ANIM_SWIMMING_3 = 432, //
ADMIN_COMMAND_PLAY_ANIM_SWIMMING_4 = 433, //
ADMIN_COMMAND_PLAY_ANIM_SITTING_1 = 434, //
ADMIN_COMMAND_PLAY_ANIM_SITTING_2 = 435, //
ADMIN_COMMAND_PLAY_ANIM_SITTING_3 = 436, //
ADMIN_COMMAND_PLAY_ANIM_SITTING_4 = 437, //
ADMIN_COMMAND_PLAY_ANIM_SITTING_5 = 438, //
ADMIN_COMMAND_PLAY_ANIM_PAUSE_1 = 439, //
ADMIN_COMMAND_PLAY_ANIM_PAUSE_2 = 440, //
ADMIN_COMMAND_PLAY_ANIM_PAUSE_3 = 441, //
ADMIN_COMMAND_PLAY_ANIM_PAUSE_4 = 442, //
ADMIN_COMMAND_PLAY_ANIM_PAUSE_5 = 443, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_1 = 444, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_2 = 445, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_3 = 446, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_4 = 447, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_5 = 448, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_6 = 449, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_7 = 450, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_8 = 451, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_9 = 452, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_10 = 453, //
//ADMIN_COMMAND_RAGDOLL = 329, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_12 = 454, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_13 = 455, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_14 = 456, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_15 = 457, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_16 = 458, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_17 = 459, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_18 = 460, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_19 = 461, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_20 = 462, //
ADMIN_COMMAND_PLAY_ANIM_GESTURE_21 = 463, //
ADMIN_COMMAND_PLAY_ANIM_TOOL_LOWEST = 464, //
ADMIN_COMMAND_PLAY_ANIM_TOOL_1 = 464, //
ADMIN_COMMAND_PLAY_ANIM_TOOL_2 = 465, //
ADMIN_COMMAND_PLAY_ANIM_TOOL_3 = 466, //
ADMIN_COMMAND_PLAY_ANIM_TOOL_4 = 467, //
ADMIN_COMMAND_PLAY_ANIM_TOOL_HIGHEST = 467, //
ADMIN_COMMAND_SPAWN_VEH_LOWEST = 468,
ADMIN_COMMAND_SPAWN_VEH_FELTZER = 468, //
ADMIN_COMMAND_SPAWN_VEH_INFERNUS = 469, //
ADMIN_COMMAND_SPAWN_VEH_SULTAN = 470, //
ADMIN_COMMAND_SPAWN_VEH_SENTINEL = 471, //
ADMIN_COMMAND_SPAWN_VEH_SULTANRS = 472, //
ADMIN_COMMAND_SPAWN_VEH_SUPERGT = 473, //
ADMIN_COMMAND_SPAWN_VEH_TURISMO = 474, //
ADMIN_COMMAND_SPAWN_VEH_BUFFALO = 475, //
ADMIN_COMMAND_SPAWN_VEH_BULLET = 476, //
ADMIN_COMMAND_SPAWN_VEH_F620 = 477, //
ADMIN_COMMAND_SPAWN_VEH_BLISTA = 478, //
ADMIN_COMMAND_SPAWN_VEH_FORTUNE = 479, //
ADMIN_COMMAND_SPAWN_VEH_FUTO = 480, //
ADMIN_COMMAND_SPAWN_VEH_URANUS = 481, //
ADMIN_COMMAND_SPAWN_VEH_SUPERD = 482, //
ADMIN_COMMAND_SPAWN_VEH_SUPERD2 = 483, //
ADMIN_COMMAND_SPAWN_VEH_ADMIRAL = 484, //
ADMIN_COMMAND_SPAWN_VEH_CHAVOS = 485, //
ADMIN_COMMAND_SPAWN_VEH_COGNOSCENTI = 486, //
ADMIN_COMMAND_SPAWN_VEH_DF8 = 487, //
ADMIN_COMMAND_SPAWN_VEH_DILETTANTE = 488, //
ADMIN_COMMAND_SPAWN_VEH_EMPEROR = 489, //
ADMIN_COMMAND_SPAWN_VEH_ESPERANTO = 490, //
ADMIN_COMMAND_SPAWN_VEH_FEROCI = 491, //
ADMIN_COMMAND_SPAWN_VEH_HAKUMAI = 492, //
ADMIN_COMMAND_SPAWN_VEH_INGOT = 493, //
ADMIN_COMMAND_SPAWN_VEH_INTRUDER = 494, //
ADMIN_COMMAND_SPAWN_VEH_LOKUS = 495, //
ADMIN_COMMAND_SPAWN_VEH_MARBELLA = 496, //
ADMIN_COMMAND_SPAWN_VEH_MERIT = 497, //
ADMIN_COMMAND_SPAWN_VEH_ORACLE = 498, //
ADMIN_COMMAND_SPAWN_VEH_PINNACLE = 499, //
ADMIN_COMMAND_SPAWN_VEH_PMP600 = 500, //
ADMIN_COMMAND_SPAWN_VEH_PREMIER = 501, //
ADMIN_COMMAND_SPAWN_VEH_PRES = 502, //
ADMIN_COMMAND_SPAWN_VEH_PRIMO = 503, //
ADMIN_COMMAND_SPAWN_VEH_ROM = 504, //
ADMIN_COMMAND_SPAWN_VEH_SCHAFTER = 505, //
ADMIN_COMMAND_SPAWN_VEH_SOLAIR = 506, //
ADMIN_COMMAND_SPAWN_VEH_STRATUM = 507, //
ADMIN_COMMAND_SPAWN_VEH_VINCENT = 508, //
ADMIN_COMMAND_SPAWN_VEH_WASHINGTON = 509, //
ADMIN_COMMAND_SPAWN_VEH_WILLARD = 510, //
ADMIN_COMMAND_SPAWN_VEH_SERRANO = 511, //
ADMIN_COMMAND_SPAWN_VEH_SCHAFTER2 = 512, //
ADMIN_COMMAND_SPAWN_VEH_BUCCANEER = 513, //
ADMIN_COMMAND_SPAWN_VEH_DUKES = 514, //
ADMIN_COMMAND_SPAWN_VEH_FACTION = 515, //
ADMIN_COMMAND_SPAWN_VEH_MANANA = 516, //
ADMIN_COMMAND_SPAWN_VEH_PEYOTE = 517, //
ADMIN_COMMAND_SPAWN_VEH_RUINER = 518, //
ADMIN_COMMAND_SPAWN_VEH_SABRE = 519, //
ADMIN_COMMAND_SPAWN_VEH_SABREGT = 520, //
ADMIN_COMMAND_SPAWN_VEH_STALION = 521, //
ADMIN_COMMAND_SPAWN_VEH_VIGERO = 522, //
ADMIN_COMMAND_SPAWN_VEH_VIRGO = 523, //
ADMIN_COMMAND_SPAWN_VEH_VOODOO = 524, //
ADMIN_COMMAND_SPAWN_VEH_TAMPA = 525, //
ADMIN_COMMAND_SPAWN_VEH_BANSHEE = 526, //
ADMIN_COMMAND_SPAWN_VEH_COMET = 527, //
ADMIN_COMMAND_SPAWN_VEH_COQUETTE = 528, //
ADMIN_COMMAND_SPAWN_VEH_BOBCAT = 529, //
ADMIN_COMMAND_SPAWN_VEH_CAVALCADE = 530, //
ADMIN_COMMAND_SPAWN_VEH_FXT = 531, //
ADMIN_COMMAND_SPAWN_VEH_E109 = 532, //
ADMIN_COMMAND_SPAWN_VEH_HABANERO = 533, //
ADMIN_COMMAND_SPAWN_VEH_HUNTLEY = 534, //
ADMIN_COMMAND_SPAWN_VEH_LANDSTALKER = 535, //
ADMIN_COMMAND_SPAWN_VEH_MINIVAN = 536, //
ADMIN_COMMAND_SPAWN_VEH_MOONBEAM = 537, //
ADMIN_COMMAND_SPAWN_VEH_PATRIOT = 538, //
ADMIN_COMMAND_SPAWN_VEH_PERENNIAL = 539, //
ADMIN_COMMAND_SPAWN_VEH_RANCHER = 540, //
ADMIN_COMMAND_SPAWN_VEH_REBLA = 541, //
ADMIN_COMMAND_SPAWN_VEH_CAVALCADE2 = 542, //
ADMIN_COMMAND_SPAWN_VEH_EMPEROR2 = 543, //
ADMIN_COMMAND_SPAWN_VEH_SABRE2 = 544, //
ADMIN_COMMAND_SPAWN_VEH_VIGERO2 = 545, //
ADMIN_COMMAND_SPAWN_VEH_BUS = 546, //
ADMIN_COMMAND_SPAWN_VEH_CABBY = 547, //
ADMIN_COMMAND_SPAWN_VEH_ROMERO = 548, //
ADMIN_COMMAND_SPAWN_VEH_TAXI = 549, //
ADMIN_COMMAND_SPAWN_VEH_TAXI2 = 550, //
ADMIN_COMMAND_SPAWN_VEH_TRASH = 551, //
ADMIN_COMMAND_SPAWN_VEH_STRETCH = 552, //
ADMIN_COMMAND_SPAWN_VEH_LIMO2 = 553, //
ADMIN_COMMAND_SPAWN_VEH_AMBULANCE = 554, //
ADMIN_COMMAND_SPAWN_VEH_FBI = 555, //
ADMIN_COMMAND_SPAWN_VEH_FIRETRUK = 556, //
ADMIN_COMMAND_SPAWN_VEH_NOOSE = 557, //
ADMIN_COMMAND_SPAWN_VEH_POLICE = 558, //
ADMIN_COMMAND_SPAWN_VEH_POLICE2 = 559, //
ADMIN_COMMAND_SPAWN_VEH_POLPATRIOT = 560, //
ADMIN_COMMAND_SPAWN_VEH_PSTOCKADE = 561, //
ADMIN_COMMAND_SPAWN_VEH_APC = 562, //
ADMIN_COMMAND_SPAWN_VEH_POLICE3 = 563, //
ADMIN_COMMAND_SPAWN_VEH_POLICE4 = 564, //
ADMIN_COMMAND_SPAWN_VEH_POLICEB = 565, //
ADMIN_COMMAND_SPAWN_VEH_POLICEW = 566, //
ADMIN_COMMAND_SPAWN_VEH_AIRTUG = 567, //
ADMIN_COMMAND_SPAWN_VEH_BENSON = 568, //
ADMIN_COMMAND_SPAWN_VEH_BIFF = 569, //
ADMIN_COMMAND_SPAWN_VEH_BOXVILLE = 570, //
ADMIN_COMMAND_SPAWN_VEH_BURRITO = 571, //
ADMIN_COMMAND_SPAWN_VEH_BURRITO2 = 572, //
ADMIN_COMMAND_SPAWN_VEH_FEROCI2 = 573, //
ADMIN_COMMAND_SPAWN_VEH_FLATBED = 574, //
ADMIN_COMMAND_SPAWN_VEH_FORKLIFT = 575, //
ADMIN_COMMAND_SPAWN_VEH_MULE = 576, //
ADMIN_COMMAND_SPAWN_VEH_MRTASTY = 577, //
ADMIN_COMMAND_SPAWN_VEH_PACKER = 578, //
ADMIN_COMMAND_SPAWN_VEH_PERENNIAL2 = 579, //
ADMIN_COMMAND_SPAWN_VEH_PHANTOM = 580, //
ADMIN_COMMAND_SPAWN_VEH_PONY = 581, //
ADMIN_COMMAND_SPAWN_VEH_RIPLEY = 582, //
ADMIN_COMMAND_SPAWN_VEH_SPEEDO = 583, //
ADMIN_COMMAND_SPAWN_VEH_STOCKADE = 584, //
ADMIN_COMMAND_SPAWN_VEH_STEED = 585, //
ADMIN_COMMAND_SPAWN_VEH_YANKEE = 586, //
ADMIN_COMMAND_SPAWN_VEH_CADDY = 587, //
ADMIN_COMMAND_SPAWN_VEH_BOBBER = 588, //
ADMIN_COMMAND_SPAWN_VEH_FAGGIO = 589, //
ADMIN_COMMAND_SPAWN_VEH_HELLFURY = 590, //
ADMIN_COMMAND_SPAWN_VEH_NRG900 = 591, //
ADMIN_COMMAND_SPAWN_VEH_PCJ = 592, //
ADMIN_COMMAND_SPAWN_VEH_SANCHEZ = 593, //
ADMIN_COMMAND_SPAWN_VEH_ZOMBIEB = 594, //
ADMIN_COMMAND_SPAWN_VEH_AKUMA = 595, //
ADMIN_COMMAND_SPAWN_VEH_BATI2 = 596, //
ADMIN_COMMAND_SPAWN_VEH_DOUBLE = 597, //
ADMIN_COMMAND_SPAWN_VEH_FAGGIO2 = 598, //
ADMIN_COMMAND_SPAWN_VEH_HAKUCHOU = 599, //
ADMIN_COMMAND_SPAWN_VEH_HEXER = 600, //
ADMIN_COMMAND_SPAWN_VEH_VADER = 601, //
ADMIN_COMMAND_SPAWN_VEH_DINGHY = 602, //
ADMIN_COMMAND_SPAWN_VEH_JETMAX = 603, //
ADMIN_COMMAND_SPAWN_VEH_MARQUIS = 604, //
ADMIN_COMMAND_SPAWN_VEH_PREDATOR = 605, //
ADMIN_COMMAND_SPAWN_VEH_REEFER = 606, //
ADMIN_COMMAND_SPAWN_VEH_SQUALO = 607, //
ADMIN_COMMAND_SPAWN_VEH_TROPIC = 608, //
ADMIN_COMMAND_SPAWN_VEH_TUGA = 609, //
ADMIN_COMMAND_SPAWN_VEH_BLADE = 610, //
ADMIN_COMMAND_SPAWN_VEH_FLOATER = 611, //
ADMIN_COMMAND_SPAWN_VEH_SMUGGLER = 612, //
ADMIN_COMMAND_SPAWN_VEH_ANNIHILATOR = 613, //
ADMIN_COMMAND_SPAWN_VEH_MAVERICK = 614, //
ADMIN_COMMAND_SPAWN_VEH_POLMAV = 615, //
ADMIN_COMMAND_SPAWN_VEH_TOURMAV = 616, //
ADMIN_COMMAND_SPAWN_VEH_BUZZARD = 617, //
ADMIN_COMMAND_SPAWN_VEH_SKYLIFT = 618, //
ADMIN_COMMAND_SPAWN_VEH_SWIFT = 619, //
ADMIN_COMMAND_SPAWN_VEH_HIGHEST = 619,
/*AddGxt_Model(MODEL_ANNIHILATOR);
AddGxt_Model(MODEL_MAVERICK);
AddGxt_Model(MODEL_POLMAV);
AddGxt_Model(MODEL_TOURMAV);
if(Episode == 2){
AddGxt_Model(MODEL_BUZZARD);
AddGxt_Model(MODEL_SKYLIFT);
AddGxt_Model(MODEL_SWIFT);
}*/
//ADMIN_COMMAND_RAGDOLL = 329,
//Max == 674 //was 349
//+ 325 = 674 commands (maybe 675)
};
//for MD_Misc_OptionsBitSet;
enum eMD_Misc_Options{
//below = 8/3/2017 - Nathan
MD_MISC_DISABLE_RUNWAY_PLANES = 0,
MD_MISC_MENU_SLIDE = 1,
MD_MISC_MENU_MOVE = 2,
MD_MISC_SHOW_MISSING_SCO = 3,
MD_MISC_MENU_IN_ERROR = 4,
//9.3.2017
MD_MISC_MENU_ACTION_ERROR = 5,
MD_MISC_PTFX = 6,
MD_MISC_GLOWING_INCREMENT = 7,
MD_MISC_VERSION_INCREMENT = 8,
MD_MISC_NETPLAYER_LIST = 9,
MD_MISC_MUTE_ALL = 10,
MD_MISC_MENU_SHOW = 11,
MD_MISC_MENU_SHUTDOWN = 13,
MD_MISC_MENU_SET_ITEMS = 14,
//bool reset_counter;
MD_MISC_RESET_COUNTER = 15,
MD_MISC_MENU_DISABLE = 16,
MD_MISC_TIME_CYCLE = 17,
MD_MISC_FLASHING_GHOST_INCREMENT = 18,
MD_MISC_SPECTATE_STREAMING_BOOL = 19,
MD_MISC_AUTO_SPECTATE = 20,
MD_MISC_DRAW_XYZH = 21,
MD_MISC_ROTATIONS_LOOP = 22,
//Attachment_OnAnims; //can be bitset'd
MD_MISC_AUTO_ATTACH_TOOL_WITH_ANIMS = 23,
MD_MISC_NATHANS_RAPID_FIRE_HELI = 24, //frez fix attempt
#ifdef Admin
//bool previous_admin_in_car
MD_MISC_ADMIN_PRINTED_VEHICLE_SPAWN_FREEZE_WARNING = 28,
MD_MISC_ADMIN_PREVIOUS_IN_CAR = 29,
MD_MISC_ADMIN_PRINTED_PREMIUMWHITELIST_IMMUNE = 30,
MD_MISC_ADMIN_SEND_IN_SILENT_MODE = 31,
#endif
//32 values, from (and including) 0, to (and including) 31
};
//for pPlayerOptionsBitSet;
enum epPlayerOption{
PLAYER_OPTION_GODMODE = 0,
PLAYER_OPTION_JUGGERNAUT = 1,
PLAYER_OPTION_INFINITE_AMMO = 2,
PLAYER_OPTION_RAPID_FIRE = 3,
PLAYER_OPTION_NEVER_WANTED = 4,
PLAYER_OPTION_SUPER_RUN = 5,
PLAYER_OPTION_SUPER_JUMP = 6,
PLAYER_OPTION_SUPER_PUNCH = 7,
PLAYER_OPTION_GRAVITY = 8,
PLAYER_OPTION_SLOW_MO = 9,
PLAYER_OPTION_AUTO_AIM = 10,
PLAYER_OPTION_FORCE_FIELD = 11,
PLAYER_OPTION_INFERNO = 12,
PLAYER_OPTION_REMOVE_BLIP = 13,
PLAYER_OPTION_FLAME_EFFECT = 14,
PLAYER_OPTION_HELMET = 15,
PLAYER_OPTION_TELEPORT_INVISIBLE = 16,
PLAYER_OPTION_SHOW_ON_LEAVE = 17,
PLAYER_OPTION_FLYMOD = 18,
PLAYER_OPTION_CARRY_ALL_WEAPONS = 19,
OPTION_AIZLE_TEST = 20,
OPTION_AIZLE_TEST2 = 21,
PASSWORD_CORRECT = 22,
PASSWORD_PROMPTED = 23,
//32 values, from (and including) 0, to (and including) 31
};
//for VehicleOptionsBitSet;
#define VEHICLE_OPTION_DAMAGE VEHICLE_OPTION_DAMAGE_PROOF
enum eVehicleOption{ //32 bools :D = 1 int
VEHICLE_OPTION_INVINCIBLE = 0,
VEHICLE_OPTION_INVISIBLE = 1,
VEHICLE_OPTION_SUPER_SPEED = 2,
VEHICLE_OPTION_DRIFT = 3,
VEHICLE_OPTION_LOWER = 4,
VEHICLE_OPTION_JUMP = 5,
VEHICLE_OPTION_SUPER_BIKE = 6,
VEHICLE_OPTION_STICK_GROUND = 7,
VEHICLE_OPTION_DESOLIDIFY = 8,
VEHICLE_OPTION_FREEZE_POS = 9,
VEHICLE_OPTION_AUTO_BOAT = 10,
VEHICLE_OPTION_ROTATE = 11,
VEHICLE_OPTION_RAINBOW = 12,
VEHICLE_OPTION_SIREN = 13,
VEHICLE_OPTION_ALL_UPGRADES = 14,
VEHICLE_OPTION_WIPEOUT_HELI = 15,
VEHICLE_OPTION_DIRT = 16,
VEHICLE_OPTION_REMOVE_BLIP = 17, //loop is there but not in menu setup anywhere i don't think? --> Make it work lol
//below = 8/3/2017
VEHICLE_OPTION_PERSONAL_COLOUR = 18, //don't think this is used currently... - We will use this!
VEHICLE_OPTION_ADD_NEONS = 19,
VEHICLE_OPTION_HELI_RAPIDFIRE = 20,
VEHICLE_OPTION_DAMAGE = 21, //var naming makes no sense to me here buddy.. - Nathan --> i didnt do this... - Devil
VEHICLE_OPTION_NET_INVISIBLE = 22,
//9/3/2017
VEHICLE_OPTION_UNIFIED_COLOUR = 23,
VEHICLE_OPTION_ENGINE = 24,//Added by devil 10/04
VEHICLE_OPTION_TURBO_SPEED = 25, //Added by devil 11/04
VEHICLE_OPTION_NORMAL_SPEED = 26, //Added by devil 11/04
//32 values, from (and including) 0, to (and including) 31
};
////////
///NETWORK
//uint modAssistBitSet; //covers all players! :D - Nathan
uint autoFlipVehBitSet; //covers all players! :D - Nathan
uint autoFixVehBitSet; //covers all players! :D - Nathan
uint freezeGunProtectBitSet; //covers all players! :D - Nathan
uint infiniteArmourBitSet; //covers all players! :D - Nathan
uint neverWantedBitSet; //covers all players! :D - Nathan //works on others ONLY IF HOST
//
uint restrictWeaponsBitSet; //covers all players! :D - Nathan
uint rocketWeaponsBitSet; //covers all players! :D - Nathan
uint constantBoomBitSet; //covers all players
uint autoDeleteVehicleBitSet;
uint autoBurnBitSet;
////////////
#ifdef VERSION_PC
#define MAX_PLAYERS 32
#define is_xbox_version 1
#else
bool is_xbox_version = false; //native doesn't exist on PC
#define MAX_PLAYERS 16
#endif
int MD_Assist_to_run_index = 0; //nathan fixing for PS3! //fixed :P
#define MAX_MENU_ITEMS 30 // was 22
#define MAX_MENU_LEVELS 6
#define MENU_START_SCROLLING 11
#define MAX_SPAWNGUARDS 7
#define MAX_ATTACH_OBJECTS 30
/**Ped Id's*/
//uint Aped_ID = 0;
/**Attachment Vars*/
#define MAX_ROTATION_SUBJECTS 8
bool renew_rotate = true;
float rotate_inc;
Object Rotation_Subject[MAX_ROTATION_SUBJECTS];
//Vehicle Rotate_Vehicle;
float Rotation_Speed = 0.04f;
//float RotVeh_h = 0;
/** DEBUG VARS - Remove later*/
bool MD_Player_Info = true; //nathan fixed :D
bool MD_Version_Detector = true;
//bool BG_Teleport_Attack = false;
uint player_rgb = 36;// Player to color ID
/**Rotation globals**/
float angletest1 = 1.575f;
float angletest2 = 4.725f;
float angletest3 = 3.1500f;
float angletest4 = 0.00f;
float angletest5 = 5.5125f;
float angletest6 = 2.3625f;
float angletest7 = 3.9375f;
float angletest8 = 0.7875f;
float Rotation_Distance = 3.00f;
bool Rot_Solidify = false; //should be removed completely, can cause so much laggg
float Set_Rotation_Height = 0.0f; //Will take this out later or leave it in for development.
/** Nathan's Vars, DO NOT TOUCH! //////////////// */
#ifdef Premium
bool secure = true;
#endif
int KeyboardAntiWaitAction = 0;
int KeyboardSelectedPlayerIndex;
int NetPlayer_Scan_tick_delay; //is this still used?
char *NetPlayer_Weapon;
//int varsfree[70];// 06/01/2017
bool DrawDevWindow;
/**Check these vars - Debugging*/
int BG_ped[MAX_SPAWNGUARDS];
int WeaponVeh_ped[MAX_WEAPONPEDS];
Object Rotation_Subject_Handle;
//int Personalcol1 = 106, Personalcol2 = 132;
//bool damage = false;
int userfound = 0;
void printstr(char *str, int time){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", str, time, true);
CLEAR_BRIEF();
}
/**/
//bool RefreshMenu = false;
bool Vertical_Playerlist = false;
bool Print_Kill_Feed = false;
bool FakeFreeze;
int GhostID;
/**Bodyguard Vars*/
Group BG_Group; //doesn't need to be a var, GET_PLAYER_GROUP(iPlayer,&BG_Group); boom you have it..
bool BG_Attack_Selected_Player = false;
int group_formation = 3;
int group_spacing = 15;
Object Attach_object[MAX_ATTACH_OBJECTS]; //what is this for??? if you keep objects stored and users delete with another script or someone does -> User gets froze.. not good
bool renew_attached = true;
int BGWeapontype_Lastselected = WEAPON_PISTOL;
bool Draw_Spy_Helper = true; //needs to be removed before release
/**Keyboard Shortcuts vars*/
bool keyboard_delete_abandoned_vehicles_only = true;
#ifdef Premium //don't randomly comment my shit - Nathan || i didnt touch this knob, u prolly didnt have weed when u did this...
bool keyboard_close_on_network_selection = false;
#endif
bool Include_Self = true;
int Delete_Distance_Radius = 150; //bigger than u thought! x2 distance than before, sphere wasnt correct size (it WAS half)
/**Player vars*/
int iPlayer;
int Episode;
bool In_Network = false;
bool Resurrect = false;
Vehicle Personal_Vehicle; // pPlayers car
Vehicle NetPlayer_Vehicle;
Ped pPlayer;
/**Premium Options vars*/
bool PlayerList = false;
//bool ShowOnleave = false; //Can bitset this
/**Display Vars*/
//char *StringValue_Display; //no longer used
char *CrossBrowse_PlayerName;
//bool MD_CrossBrowse_Display = false; //No longer used
bool Keyboard_Helper_Display = false;
//! Network vars
//bool Netplayerlist;
uint ChangeNetPlayer;
float TP_x = 0,TP_y,TP_z;
float save_x[2], save_y[2], save_z[2];
//!Vehicle vars
bool MD_Colour_Display_1 = false;
bool MD_Colour_Display_3;
bool MD_Colour_Display_2;
//int Veh_Autolock = 3; //disabled
Object drive_water[MAX_PLAYERS];
Vehicle object_veh;
Object mapbase_obj;
int c,c3;
//!Menu Core
enum eModManagerErrorID{
MODMANAGER_ERROR_ID_UNKNOWN,
MODMANAGER_ERROR_ID_INVALID,
MODMANAGER_ERROR_ID_SCRIPT
};
bool Menu_Has_Sco_Loaded;
bool Menu_Request_Sco;
int Glowing = 0;
int Fading_100 = 100;
int Fading_150 = 150;
int Rotating360 = 1;
int FlashingGhost = 1;
float versionslide = 0.1025;
uint item_highlighted;
uint last_selected[MAX_MENU_LEVELS];
uint SelectedItem;
uint itemCount;
uint menu_level;
uint player_count;
//int PlayerScan;
int tick;
float custom_float_change;
uint press_counter, hold_counter, press_counter_timesby, press_id;
uint MenuActionBitSet;
typedef struct _menu{
char *name;
char *charval;
uint type;
uint num_val;
uint extra_val;
//uint charval_bool; //Added by devil //no no no lots of no - Nathan
//bool action; //removed for one var (MenuActionBitSet) //note if more than 32 items, menu will crashz becuz of this..
} menu;
menu menu_item[MAX_MENU_ITEMS];
typedef struct _online_players{
//Ped ped; //we can remove this and use PLAYER_CHAR(playerindex) function I made allover - Nathan
//I actually think this may be something worth taking up that lil processor time (checks if char exists on button click etc, it'll be great!)
int id;
Ped ped;
} online_players;
online_players players[MAX_PLAYERS];

View File

@@ -0,0 +1,36 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV NATHAN VII
*/
//!Preferences to compile*/
//#define VERSION_PC
//#define Developer
#define SuperAdmin
//#define Admin
//#define Premium
//#define Public
#define Beta
#define DevTest // this MUST be commented out on any compile that is not for the developers testing purposes.... (aka all Trident Users)
#ifdef Developer
#define SuperAdmin
#endif
#ifdef SuperAdmin
#define Admin
#endif
#ifdef Admin
#define Premium
#endif
#ifdef DevTest
#ifndef Developer
#define GiveWarning
#endif
#endif

View File

@@ -0,0 +1,397 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MENU_ACTION(void){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SET_ITEMS, true);
if(menu_level == 1) return MD_Main_Action();
else if(menu_level == 2){
if(last_selected[1] == 1) return MD_New_PlayerOptions_Action( players[ChangeNetPlayer].id );
else if ( last_selected[1] == 2 ) return MC_Network_Start_Action( players[ChangeNetPlayer].id );
else if ( last_selected[1] == 3 ) return MD_VehOpt_Pplayer_Action( );
else if ( last_selected[1] == 4 ) return MC_Weapon_Action( players[ChangeNetPlayer].id );
else if ( last_selected[1] == 6 ) return MC_Weather_Action( );
else if ( last_selected[1] == 5 ) return MC_Network_Teleport_Action( players[ChangeNetPlayer].id );
else if ( last_selected[1] == 7 ) return MD_Player_Changer_Action( );
else if ( last_selected[1] == 8 ) return MD_Animations_Action( );
else if ( last_selected[1] == 9 ) return MD_Attachments_Action( );
else if ( last_selected[1] == 10 ) return MD_Rotations_Action( );
else if ( last_selected[1] == 11 ) return MC_Content_Builder_Action( );
else if ( last_selected[1] == 13 ) return MC_Sco_Modloader_Main_Action( );
else if ( last_selected[1] == 16 ) return MC_Menu_Setting_Action( );
else if ( last_selected[1] == 22 ) return MC_Premium_Main_Action( );
else return Modmanager();
}
else if(menu_level == 3){
if(last_selected[1] == 2){
if(last_selected[2] == 1){
return MC_Network_All_Player_Action();
}
else if(last_selected[2] == 2){
return MC_Navigator_Action(players[ChangeNetPlayer].id);
}
else if(last_selected[2] > 3 )return MC_Network_Main_Action();
}
else if(last_selected[1] == 3){
if(last_selected[2] == 6){
MC_Car_Spawner_Action(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 7){
MC_Vehicle_Addon_Action(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 8){
MC_Veh_Upgrade_Action(players[ChangeNetPlayer].id);
}
//return;
}
else if(last_selected[1] == 5){
if(last_selected[2] == 6){
tele_Action_heli(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 7){
tele_Action_airport(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 8){
tele_Action_broker(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 9){
tele_Action_dukes(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 10){
tele_Action_algon(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 11){
tele_Action_alder(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 12){
tele_Action_bohan(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 13){
tele_Action_happy(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 14){
tele_Action_special(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 15){
tele_Action_police(players[ChangeNetPlayer].id);
}
//return;
}
else if(last_selected[1] == 7){
if(last_selected[2] == 21){
MD_Player_MoreChanger_Action();
}
}
else if(last_selected[1] == 22){
if(last_selected[2] == 6){
//MC_Invite_Main_Action();
}
else if(last_selected[2] == 12){ // was 7
BlackscreenID_Action();
}
else if(last_selected[2] == 14){ // was 7
MD_SuperAdmin_Action();
}
else if(last_selected[2] == 15){ // was 7
MC_Development_Action();
}
//return;
}
else Modmanager();
}
else if(menu_level == 4){
if(last_selected[1] == 2){
if(last_selected[2] > 3 ){
if(last_selected[3] == 5){
MC_Network_Player_Action();
}
else if(last_selected[3] == 6){
MC_Weapon_Action(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 7){
MD_VehOpt_NetPlayer_Action();
}
else if(last_selected[3] == 8){
MC_Network_Teleport_Action(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 9){
MD_Army_Action();
}
else if(last_selected[3] == 10){
MD_Rotations_Action();
}
else if(last_selected[3] == 11){
MD_Attachments_Action();
}
else if(last_selected[3] == 12){
MC_Deletion_Action();
}
else if(last_selected[3] == 15){
MC_Net_Unfriendly_Action();
}
else if(last_selected[3] == 16){
//MC_Network_MD_Pilot_Action(players[ChangeNetPlayer].id); // yeah we will work on ID
}
#ifdef Admin
else if(last_selected[3] == 17){
MASTER_SUPER_ADMIN_ACTION();
}
else if(last_selected[3] == 18){
V13_ADMIN_ACTION();
}
#endif
//return;
}
}
else if(last_selected[1] == 3){
if(last_selected[2] == 6){
if(last_selected[3] >= 1){
MD_Vehicle_Spawner(players[ChangeNetPlayer].id);
//return;
}
}
else if(last_selected[2] == 7){
if(last_selected[3] == 1){
MD_Colour_Display_Action_1(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 2){
MD_Colour_Display_Action_2(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 3){
MC_Vehicle_Colour_Num_Action(players[ChangeNetPlayer].id);
}
//return;
}
}
else if(last_selected[1] == 22){
if(last_selected[2] == 13){
if(last_selected[3] == 1){
MC_Recieved_Invites_Action();
}
else if(last_selected[3] == 2){
MC_Invite_Players_Action();
}
}
}
else Modmanager();
}
else if(menu_level == 5){
if(last_selected[1] == 2){
if(last_selected[2] > 3 ){
if(last_selected[3] == 7){
if(last_selected[4] == 6){
MC_Car_Spawner_Action(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 7){
MC_Vehicle_Addon_Action(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 8){
MC_Veh_Upgrade_Action(players[ChangeNetPlayer].id);
}
//return;
}
else if(last_selected[3] == 8){
if(last_selected[4] == 6){
tele_Action_heli(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 7){
tele_Action_airport(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 8){
tele_Action_broker(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 9){
tele_Action_dukes(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 10){
tele_Action_algon(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 11){
tele_Action_alder(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 12){
tele_Action_bohan(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 13){
tele_Action_happy(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 14){
tele_Action_special(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 15){
tele_Action_police(players[ChangeNetPlayer].id);
}
//return;
}
else if(last_selected[3] == 9){
if(last_selected[4] == 11){
int Guard;
MD_Guard_Animations_Action(Guard);
}
else if(last_selected[4] == 12){
MD_Attachments_Guard_Action();
}
// return;
}
else if(last_selected[3] == 17){
#ifdef Admin
if(last_selected[4] == 2){
MASTER_ADMIN_V7_ACTION();
}
else if(last_selected[4] == 3){
MASTER_ADMIN_V8_MESSAGE_ACTION();
}
else if(last_selected[4] == 4){
MASTER_ADMIN_V8_PCHANGER_ACTION();
}
else if(last_selected[4] == 5){
MASTER_ADMIN_V11_ANIMATIONS_ACTION();
}
else if(last_selected[4] == 6){
MASTER_ADMIN_V11_STRIDES_ACTION();
}
else if(last_selected[4] == 7){
MASTER_ADMIN_V8_CARSPAWN_ACTION();
}
else if(last_selected[4] == 8){
MASTER_ADMIN_V8_TELEPORT_ACTION();
}
else if(last_selected[4] == 9){
MASTER_ADMIN_V8_PUNISH_ACTION();
}
else if(last_selected[4] == 10){
MASTER_ADMIN_V8_MENUCONTROLL_ACTION();
}
else if(last_selected[4] == 11){
MASTER_ADMIN_V11_TROLL_ACTION();
}
else if(last_selected[4] == 12){
MASTER_ADMIN_V8_FREEZE_ACTION();
}
else if(last_selected[4] == 13){
MASTER_ADMIN_V11_SFREEZE_ACTION();
}
#endif
//return;
}
else if(last_selected[3] == 18){
#ifdef Admin
if(last_selected[4] == 7){
Admin_Message_Action();
}
else if(last_selected[4] == 8){
Admin_Player_Action();
}
else if(last_selected[4] == 9){
if(SelectedItem == 1){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE);
menu_item[SelectedItem].extra_val = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE);
}
}
else if(last_selected[4] == 10){
Admin_Vehicle_Action();
}
else if(last_selected[4] == 11){
Admin_Teleport_Action();
}
else if(last_selected[4] == 12){
Admin_Weather_Action();
}
else if(last_selected[4] == 13){
Admin_Model_Action();
}
else if(last_selected[4] == 14){
Admin_Animations_Action();
}
else if(last_selected[4] == 15){
Admin_Attachments_Action();
}
else if(last_selected[4] == 16){
Admin_Troll_Action();
}
else if(last_selected[4] == 17){
Admin_Menu_Action();
}
else if(last_selected[4] == 18){
Admin_Freeze_Action();
}
else if(last_selected[4] == 19){
Admin_Temp_Action();
}
#endif
//return;
}
//return;
}
//return;
}
//return;
}
else if(menu_level == 6){
if(last_selected[1] == 2){
if(last_selected[2] > 3 ){
if(last_selected[3] == 7){
if(last_selected[4] == 6){
if(last_selected[5] >= 1){
MD_Vehicle_Spawner(players[ChangeNetPlayer].id);
//return;
}
}
else if(last_selected[4] == 7){
if(last_selected[5] == 1){
MD_Colour_Display_Action_1(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 2){
MD_Colour_Display_Action_2(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 3){
MC_Vehicle_Colour_Num_Action(players[ChangeNetPlayer].id);
}
//return;
}
//return;
}
if(last_selected[3] == 17){
if(last_selected[4] == 9){
if(last_selected[5] >= 2){
Admin_Vehicle_Spawn_Action();
//return;
}
}
//return;
}
// return;
}
//return;
}
//return;
}
else Modmanager();
return;
Base_Error(MODMANAGER_ERROR_ID_INVALID);
}
void load_script_prioritized(void){
if (DOES_SCRIPT_EXIST(load_script)){
if (!Menu_Request_Sco){
REQUEST_SCRIPT(load_script);
Menu_Request_Sco = true;
}
if (HAS_SCRIPT_LOADED(load_script)){
load_script = null_string;
Menu_Has_Sco_Loaded = true;
Menu_Request_Sco = false;
MENU_ACTION();
}
}
else{
load_script = null_string;
Base_Error(MODMANAGER_ERROR_ID_SCRIPT);
}
}

View File

@@ -0,0 +1,388 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
// dont forget the MD_Player_MoreChanger_Setup and MD_Player_MoreChanger_Action
void MENU_ACTION(void){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SET_ITEMS, true);
switch(menu_level)
{
case 1:{ return MD_Main_Action(); } break;
case 2: //menu_level 2
{
switch(last_selected[1])
{
case 1:{ return MD_New_PlayerOptions_Action(players[ChangeNetPlayer].id); } break;
case 2:{ return MC_Network_Start_Action(players[ChangeNetPlayer].id); } break;
case 3:{ return MD_VehOpt_Pplayer_Action(); } break;
case 4:{ return MC_Weapon_Action(players[ChangeNetPlayer].id); } break;
case 5:{ return MC_Network_Teleport_Action(players[ChangeNetPlayer].id); } break;
case 6:{ return MC_Weather_Action(); } break;
case 7:{ return MD_Player_Changer_Action(); } break;
case 8:{ return MD_Animations_Action(); } break;
case 9:{ return MD_Attachments_Action(); } break;
case 10:{ return MD_Rotations_Action(); } break;
case 11:{ return MC_Content_Builder_Action(); } break;
case 13:{ return MC_Sco_Modloader_Main_Action(); } break;
case 16:{ return MC_Menu_Setting_Action(); } break;
case 21:{ return MC_Premium_Main_Action(); } break;
default:{ return Modmanager(); } break;
}
}
break; //end menu_level 2
case 3: //menu_level 3
{
switch(last_selected[1])
{
case 2: //last_selected[1] == 2
{
switch(last_selected[2])
{
case 1:{ return MC_Network_All_Player_Action(); } break; //last_selected[2] == 1
case 2:{ return MC_Navigator_Action(players[ChangeNetPlayer].id); } break; //last_selected[2] == 2
default:{ return MC_Network_Main_Action(); } break;
}
}
break;
case 3: //last_selected[1] == 3
{
switch(last_selected[2])
{
case 6:{ MC_Car_Spawner_Action(players[ChangeNetPlayer].id); } break; //last_selected[2] == 6
case 7:{ MC_Vehicle_Addon_Action(players[ChangeNetPlayer].id); } break; //last_selected[2] == 7
case 8:{ MC_Veh_Upgrade_Action(players[ChangeNetPlayer].id); } break; //last_selected[2] == 8
}
}
break;
case 5: //last_selected[1] == 5
{
switch(last_selected[2])
{
case 6:{ tele_Action_heli(players[ChangeNetPlayer].id); } break;
case 7:{ tele_Action_airport(players[ChangeNetPlayer].id); } break;
case 8:{ tele_Action_broker(players[ChangeNetPlayer].id); } break;
case 9:{ tele_Action_dukes(players[ChangeNetPlayer].id); } break;
case 10:{ tele_Action_algon(players[ChangeNetPlayer].id); } break;
case 11:{ tele_Action_alder(players[ChangeNetPlayer].id); } break;
case 12:{ tele_Action_bohan(players[ChangeNetPlayer].id); } break;
case 13:{ tele_Action_happy(players[ChangeNetPlayer].id); } break;
case 14:{ tele_Action_special(players[ChangeNetPlayer].id); } break;
case 15:{ tele_Action_police(players[ChangeNetPlayer].id); } break;
}
}
break;
case 21:
{
switch(last_selected[2])
{
case 6:{ MC_Invite_main_Action(); } break; //invite main action WAS commented but ah well
case 7:{ MC_Development_Action(); } break;
}
}
}
}
break; // end menu_level 3 switch
case 4: //menu level 4
{
switch(last_selected[1])
{
case 2: //last_selected[1] == 2
{
}
break;
}
}
break; //end menu level 4 switch
}
if(menu_level == 4){
if(last_selected[1] == 2){
if(last_selected[2] > 3 ){
if(last_selected[3] == 5){
MC_Network_Player_Action();
}
else if(last_selected[3] == 6){
MC_Weapon_Action(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 7){
MD_VehOpt_NetPlayer_Action();
}
else if(last_selected[3] == 8){
MC_Network_Teleport_Action(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 9){
MD_Army_Action();
}
else if(last_selected[3] == 10){
MD_Rotations_Action();
}
else if(last_selected[3] == 11){
MD_Attachments_Action();
}
else if(last_selected[3] == 12){
MC_Deletion_Action();
}
else if(last_selected[3] == 15){
MC_Net_Unfriendly_Action();
}
else if(last_selected[3] == 16){
//MC_Network_MD_Pilot_Action(players[ChangeNetPlayer].id); // yeah we will work on ID
}
else if(last_selected[3] == 17){
MASTER_SUPER_ADMIN_ACTION();
}
else if(last_selected[3] == 18){
V13_ADMIN_ACTION();
}
//return;
}
}
else if(last_selected[1] == 3){
if(last_selected[2] == 6){
if(last_selected[3] >= 1){
MD_Vehicle_Spawner(players[ChangeNetPlayer].id);
//return;
}
}
else if(last_selected[2] == 7){
if(last_selected[3] == 1){
MD_Colour_Display_Action_1(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 2){
MD_Colour_Display_Action_2(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 3){
MC_Vehicle_Colour_Num_Action(players[ChangeNetPlayer].id);
}
//return;
}
}
else if(last_selected[1] == 21){
if(last_selected[2] == 6){
if(last_selected[3] == 1){
MC_Recieved_Invites_Action();
}
else if(last_selected[3] == 2){
MC_Invite_Players_Action();
}
}
}
else Modmanager();
}
else if(menu_level == 5){
if(last_selected[1] == 2){
if(last_selected[2] > 3 ){
if(last_selected[3] == 7){
if(last_selected[4] == 6){
MC_Car_Spawner_Action(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 7){
MC_Vehicle_Addon_Action(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 8){
MC_Veh_Upgrade_Action(players[ChangeNetPlayer].id);
}
//return;
}
else if(last_selected[3] == 8){
if(last_selected[4] == 6){
tele_Action_heli(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 7){
tele_Action_airport(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 8){
tele_Action_broker(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 9){
tele_Action_dukes(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 10){
tele_Action_algon(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 11){
tele_Action_alder(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 12){
tele_Action_bohan(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 13){
tele_Action_happy(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 14){
tele_Action_special(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 15){
tele_Action_police(players[ChangeNetPlayer].id);
}
//return;
}
else if(last_selected[3] == 9){
if(last_selected[4] == 11){
int Guard;
MD_Guard_Animations_Action(Guard);
}
else if(last_selected[4] == 12){
MD_Attachments_Guard_Action();
}
// return;
}
else if(last_selected[3] == 17){
//#ifdef admin
if(last_selected[4] == 2){
MASTER_ADMIN_V7_ACTION();
}
else if(last_selected[4] == 3){
MASTER_ADMIN_V8_MESSAGE_ACTION();
}
else if(last_selected[4] == 4){
MASTER_ADMIN_V8_PCHANGER_ACTION();
}
else if(last_selected[4] == 5){
MASTER_ADMIN_V11_ANIMATIONS_ACTION();
}
else if(last_selected[4] == 6){
MASTER_ADMIN_V11_STRIDES_ACTION();
}
else if(last_selected[4] == 7){
MASTER_ADMIN_V8_CARSPAWN_ACTION();
}
else if(last_selected[4] == 8){
MASTER_ADMIN_V8_TELEPORT_ACTION();
}
else if(last_selected[4] == 9){
MASTER_ADMIN_V8_PUNISH_ACTION();
}
else if(last_selected[4] == 10){
MASTER_ADMIN_V8_MENUCONTROLL_ACTION();
}
else if(last_selected[4] == 11){
MASTER_ADMIN_V11_TROLL_ACTION();
}
else if(last_selected[4] == 12){
MASTER_ADMIN_V8_FREEZE_ACTION();
}
else if(last_selected[4] == 13){
MASTER_ADMIN_V11_SFREEZE_ACTION();
}
//#endif
//return;
}
else if(last_selected[3] == 18){
if(last_selected[4] == 7){
Admin_Message_Action();
}
else if(last_selected[4] == 8){
Admin_Player_Action();
}
else if(last_selected[4] == 9){
if(SelectedItem == 1){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE);
menu_item[SelectedItem].extra_val = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE);
}
}
else if(last_selected[4] == 10){
Admin_Vehicle_Action();
}
else if(last_selected[4] == 11){
Admin_Teleport_Action();
}
else if(last_selected[4] == 12){
Admin_Weather_Action();
}
else if(last_selected[4] == 13){
Admin_Model_Action();
}
else if(last_selected[4] == 14){
Admin_Animations_Action();
}
else if(last_selected[4] == 15){
Admin_Attachments_Action();
}
else if(last_selected[4] == 16){
Admin_Troll_Action();
}
else if(last_selected[4] == 17){
Admin_Menu_Action();
}
else if(last_selected[4] == 18){
Admin_Freeze_Action();
}
else if(last_selected[4] == 19){
Admin_Temp_Action();
}
//return;
}
//return;
}
//return;
}
//return;
}
else if(menu_level == 6){
if(last_selected[1] == 2){
if(last_selected[2] > 3 ){
if(last_selected[3] == 7){
if(last_selected[4] == 6){
if(last_selected[5] >= 1){
MD_Vehicle_Spawner(players[ChangeNetPlayer].id);
//return;
}
}
else if(last_selected[4] == 7){
if(last_selected[5] == 1){
MD_Colour_Display_Action_1(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 2){
MD_Colour_Display_Action_2(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 3){
MC_Vehicle_Colour_Num_Action(players[ChangeNetPlayer].id);
}
//return;
}
//return;
}
if(last_selected[3] == 17){
if(last_selected[4] == 9){
if(last_selected[5] >= 2){
Admin_Vehicle_Spawn_Action();
//return;
}
}
//return;
}
// return;
}
//return;
}
//return;
}
else Modmanager();
return;
Base_Error(MODMANAGER_ERROR_ID_INVALID);
}
void load_script_prioritized(void){
if (DOES_SCRIPT_EXIST(load_script)){
if (!Menu_Request_Sco){
REQUEST_SCRIPT(load_script);
Menu_Request_Sco = true;
}
if (HAS_SCRIPT_LOADED(load_script)){
load_script = null_string;
Menu_Has_Sco_Loaded = true;
Menu_Request_Sco = false;
MENU_ACTION();
}
}
else{
load_script = null_string;
Base_Error(MODMANAGER_ERROR_ID_SCRIPT);
}
}

View File

@@ -0,0 +1,713 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MENU_SETUP(){ //ONE time we check for changenetplayer
MD_Colour_Display_1 = false;
MD_Colour_Display_2 = false;
MD_Colour_Display_3 = false;
if (menu_level == 1){
MD_Main_Setup();
return;
}
else if (menu_level == 2){
if (last_selected[1] == 1){
Crossbrowser_Setself();//!Select urself on entering this submenu
MD_New_PlayerOptions_Setup(players[ChangeNetPlayer].id);
return;
}
else if (last_selected[1] == 2){
Crossbrowser_Setself();
MC_Network_Start_Setup();
return;
}
else if (last_selected[1] == 3){
Crossbrowser_Setself();//!Select urself on entering this submenu
MD_VehOpt_Pplayer_Setup();
return;
}
else if (last_selected[1] == 4){
Crossbrowser_Setself();//!Select urself on entering this submenu
MC_Weapon_Setup(players[ChangeNetPlayer].id);
return;
}
else if (last_selected[1] == 5){
Crossbrowser_Setself();//!Select urself on entering this submenu
MC_Network_Teleport_Setup(players[ChangeNetPlayer].id);
return;
}
else if (last_selected[1] == 6){
MC_Weather_Setup();
return;
}
else if(last_selected[1] == 7){
MD_Player_Changer_Setup(); //Updated
return;
}
else if(last_selected[1] == 8){
MD_Animations_Setup();
return;
}
else if(last_selected[1] == 9){
Crossbrowser_Setself();//!Select urself on entering this submenu
MD_Attachments_Setup();
return;
}
else if(last_selected[1] == 10){
Crossbrowser_Setself();//!Select urself on entering this submenu
MD_Rotations_Setup();
return;
}
else if(last_selected[1] == 11){
Crossbrowser_Setself();//!Select urself on entering this submenu
MC_Content_Builder_Setup();
return;
}
else if (last_selected[1] == 13)return MC_Sco_Modloader_Main_Setup();
else if (last_selected[1] == 14)return MC_Sco_Personal();
else if (last_selected[1] == 16)return MC_Menu_Setting_Setup();
else if (last_selected[1] == 21)return MC_Credits_Setup();
else if (last_selected[1] == 22)
{
return MC_Premium_Main_Setup();
}
return;
}
else if(menu_level == 3){
if(last_selected[1] == 2){
if(last_selected[2] == 1) return MC_Network_All_Player_Setup();
else if(last_selected[2] == 2) return MC_Navigator_Setup(players[ChangeNetPlayer].id);
else if(last_selected[2] > 3 )return MC_Network_Main_Setup();
}
else if(last_selected[1] == 3){
if(last_selected[2] == 6){
Crossbrowser_Setself(); //!Select urself on entering this submenu
MC_Car_Spawner_Setup(players[ChangeNetPlayer].id);
return;
}
else if(last_selected[2] == 7){
Crossbrowser_Setself();
MC_Veh_Addons_Setup(players[ChangeNetPlayer].id);
return;
}
else if(last_selected[2] == 8){
Crossbrowser_Setself();
MC_Veh_Upgrade_Setup(players[ChangeNetPlayer].id);
return;
}
return;
}
else if(last_selected[1] == 5){
Crossbrowser_Setself();//!Select urself on entering this submenu
if(last_selected[2] == 6){
Crossbrowser_Setself();//!Select urself on entering this submenu
MC_Teleport_heli(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 7){
MC_Teleport_airport(players[ChangeNetPlayer].id);
Crossbrowser_Setself();//!Select urself on entering this submenu
}
else if(last_selected[2] == 8){
Crossbrowser_Setself();//!Select urself on entering this submenu
MC_Teleport_broker(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 9){
Crossbrowser_Setself();//!Select urself on entering this submenu
MC_Teleport_dukes(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 10){
Crossbrowser_Setself();//!Select urself on entering this submenu
MC_Teleport_algon(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 11){
Crossbrowser_Setself();//!Select urself on entering this submenu
MC_Teleport_alder(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 12){
Crossbrowser_Setself();//!Select urself on entering this submenu
MC_Teleport_bohan(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 13){
Crossbrowser_Setself();//!Select urself on entering this submenu
MC_Teleport_happy(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 14){
Crossbrowser_Setself();//!Select urself on entering this submenu
MC_Teleport_special(players[ChangeNetPlayer].id);
}
else if(last_selected[2] == 15){
Crossbrowser_Setself();//!Select urself on entering this submenu
MC_Teleport_police(players[ChangeNetPlayer].id);
}
return;
}
else if(last_selected[1] == 7){
if(last_selected[2] == 21){
MD_Player_MoreChanger_Setup();
}
return;
}
else if(last_selected[1] == 13){
if(last_selected[2] == 1){
MC_Sco_Recommended();
}
if(last_selected[2] == 2){
MC_Sco_More_Menus();
}
if(last_selected[2] == 3){
MC_Sco_Weapons();
}
if(last_selected[2] == 4){
MC_Sco_Veh_Weapons();
}
if(last_selected[2] == 5){
MC_Sco_Handling();
}
if(last_selected[2] == 6){
MC_Sco_Object_Cars_Spawners();
}
if(last_selected[2] == 7){
MC_SpecialFun_mods();
}
if(last_selected[2] == 8){
MC_Sco_Map_Main();
}
if(last_selected[2] == 9){
MC_Sco_Minimaps();
}
if(last_selected[2] == 10){
MC_Sort_Devs_Setup();
}
return;
}
else if(last_selected[1] == 22)
{
if(last_selected[2] == 12){
BlackscreenID_Setup();
}
else if(last_selected[2] == 13){
MC_Invite_Main_Setup();
}
else if(last_selected[2] == 14){
#ifdef SuperAdmin
MD_SuperAdmin_Setup();
#endif
}
else if(last_selected[2] == 15){
MC_Development_Setup();
}
return;
}
return;
}
else if(menu_level == 4){
if(last_selected[1] == 2){
if(last_selected[2] > 3 ){
if(last_selected[3] == 5){
MC_Network_Player_Setup();
}
else if(last_selected[3] == 6){
MC_Weapon_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 7){
MD_VehOpt_NetPlayer_Setup();
}
else if(last_selected[3] == 8){
MC_Network_Teleport_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 9){
MD_Army_Setup();
}
else if(last_selected[3] == 10){
MD_Rotations_Setup();
}
else if(last_selected[3] == 11){
//MC_Content_Builder_Setup();
MD_Attachments_Setup();
}
else if(last_selected[3] == 12){
MC_Deletion_Setup();
}
else if(last_selected[3] == 15){
MC_Net_Unfriendly_Setup();
}
else if(last_selected[3] == 16){
//MC_Network_MD_Pilot_Setup(players[ChangeNetPlayer].id); // yeah we will work on ID
}
else if(last_selected[3] == 17){
#ifdef Admin
MASTER_SUPER_ADMIN_SETUP();
#endif
}
else if(last_selected[3] == 18){
#ifdef Admin
V13_ADMIN_SETUP();
#endif
}
return;
}
return;
}
else if(last_selected[1] == 3){
if(last_selected[2] == 6){
if(last_selected[3] == 1){
Favourites_setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 2){
Sport_Cars_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 3){
Two_Doors_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 4){
Four_Doors_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 5){
Four_Doors__2_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 6){
Classics_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 7){
Off_Road_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 8){
Rusty_Cars_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 9){
Public_Service_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 10){
Emergency_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 11){
Workplace_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 12){
Workplace_2_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 13){
Bike_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 14){
Boat_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[3] == 15){
Fly_Setup(players[ChangeNetPlayer].id);
}
return;
}
if(last_selected[2] == 7){
if(last_selected[3] == 1){
MD_Colour_Display_Setup_1(players[ChangeNetPlayer].id);
MD_Colour_Display_1 = false;
MD_Colour_Display_2 = true;
MD_Colour_Display_3 = false;
}
else if(last_selected[3] == 2){
MD_Colour_Display_Setup_2(players[ChangeNetPlayer].id);
MD_Colour_Display_3 = true;
MD_Colour_Display_1 = false;
MD_Colour_Display_2 = false;
}
else if(last_selected[3] == 3){
MC_Vehicle_Colour_Num_Setup(players[ChangeNetPlayer].id);
MD_Colour_Display_1 = false;
MD_Colour_Display_2 = false;
MD_Colour_Display_3 = false;
}
return;
}
return;
}
else if(last_selected[1] == 13){
if(last_selected[2] == 8){
if(last_selected[3] == 1){
MC_Sco_Maps_Airport_Lockdown();
}
else if(last_selected[3] == 2){
MC_Sco_Maps_Teleporter();
}
else if(last_selected[3] == 3){
MC_Sco_Maps_Butchers();
}
else if(last_selected[3] == 4){
MC_Sco_Maps_Racetracks();
}
else if(last_selected[3] == 5){
MC_Sco_Maps_Buildings();
}
else if(last_selected[3] == 6){
MC_Sco_Maps_Airport_Ramps();
}
else if(last_selected[3] == 7){
MC_Sco_Maps_Extra();
}
return;
}
if(last_selected[2] == 10){
if(last_selected[3] == 1){
MC_Buffeting();
}
else if(last_selected[3] == 2){
MC_Boubou();
}
else if(last_selected[3] == 3){
MC_Chrome();
}
else if(last_selected[3] == 4){
MC_Dark_Smokes();
}
else if(last_selected[3] == 5){
MC_Dax();
}
else if(last_selected[3] == 6){
MC_Emanuel();
}
else if(last_selected[3] == 7){
MC_EvilB();
}
else if(last_selected[3] == 8){
MC_Hun();
}
else if(last_selected[3] == 9){
MC_JDMAlex();
}
else if(last_selected[3] == 10){
MC_Jumper();
}
else if(last_selected[3] == 11){
MC_Keredor();
}
else if(last_selected[3] == 12){
MC_Motions();
}
else if(last_selected[3] == 13){
MC_Ohman();
}
else if(last_selected[3] == 14){
MC_PsxColt();
}
else if(last_selected[3] == 15){
MC_Rev();
}
else if(last_selected[3] == 16){
MC_Rodd();
}
else if(last_selected[3] == 17){
MC_Shockwave();
}
else if(last_selected[3] == 18){
MC_XFChewy();
}
else if(last_selected[3] == 19){
MC_Various();
}
}
}
else if(last_selected[1] == 22){
if(last_selected[2] == 13){
if(last_selected[3] == 1){
MC_Recieved_Invites_Setup();
}
else if(last_selected[3] == 2){
MC_Invite_Players_Setup();
}
}
}
return;
}
else if(menu_level == 5){
if(last_selected[1] == 2){
if(last_selected[2] > 3 ){
if(last_selected[3] == 7){
if(last_selected[4] == 6){
MC_Car_Spawner_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 7){
MC_Veh_Addons_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 8){
MC_Veh_Upgrade_Setup(players[ChangeNetPlayer].id);
}
return;
}
else if(last_selected[3] == 8){
if(last_selected[4] == 6){
MC_Teleport_heli(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 7){
MC_Teleport_airport(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 8){
MC_Teleport_broker(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 9){
MC_Teleport_dukes(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 10){
MC_Teleport_algon(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 11){
MC_Teleport_alder(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 12){
MC_Teleport_bohan(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 13){
MC_Teleport_happy(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 14){
MC_Teleport_special(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 15){
MC_Teleport_police(players[ChangeNetPlayer].id);
}
return;
}
else if(last_selected[3] == 9){
if(last_selected[4] == 11){
MD_Animations_Setup();
}
else if(last_selected[4] == 12){
MD_Attachments_Setup();
}
return;
}
else if(last_selected[3] == 17){
#ifdef Admin
if(last_selected[4] == 2){
MASTER_ADMIN_V7_SETUP();
}
else if(last_selected[4] == 3){
MASTER_ADMIN_V8_MESSAGE_SETUP();
}
else if(last_selected[4] == 4){
MASTER_ADMIN_V8_PCHANGER_SETUP();
}
else if(last_selected[4] == 5){
MASTER_ADMIN_V11_ANIMATIONS_SETUP();
}
else if(last_selected[4] == 6){
MASTER_ADMIN_V11_STRIDES_SETUP();
}
else if(last_selected[4] == 7){
MASTER_ADMIN_V8_CARSPAWN_SETUP();
}
else if(last_selected[4] == 8){
MASTER_ADMIN_V8_TELEPORT_SETUP();
}
else if(last_selected[4] == 9){
MASTER_ADMIN_V8_PUNISH_SETUP();
}
else if(last_selected[4] == 10){
MASTER_ADMIN_V8_MENUCONTROLL_SETUP();
}
else if(last_selected[4] == 11){
MASTER_ADMIN_V11_TROLL_SETUP();
}
else if(last_selected[4] == 12){
MASTER_ADMIN_V8_FREEZE_SETUP();
}
else if(last_selected[4] == 13){
MASTER_ADMIN_V11_SFREEZE_SETUP();
}
#endif
return;
}
else if(last_selected[3] == 18){
#ifdef Admin
if(last_selected[4] == 7){
Admin_Message_Setup();
}
else if(last_selected[4] == 8){
Admin_Player_Setup();
}
else if(last_selected[4] == 9){
MC_Car_Spawner_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[4] == 10){
Admin_Vehicle_Setup();
}
else if(last_selected[4] == 11){
Admin_Teleport_Setup();
}
else if(last_selected[4] == 12){
Admin_Weather_Setup();
}
else if(last_selected[4] == 13){
Admin_Model_Setup();
}
else if(last_selected[4] == 14){
Admin_Animations_Setup();
}
else if(last_selected[4] == 15){
Admin_Attachments_Setup();
}
else if(last_selected[4] == 16){
Admin_Troll_Setup();
}
else if(last_selected[4] == 17){
Admin_Menu_Setup();
}
else if(last_selected[4] == 18){
Admin_Freeze_Setup();
}
else if(last_selected[4] == 19){
Admin_Temp_Setup();
}
#endif
return;
}
return;
}
return;
}
return;
}
else if(menu_level == 6){
if(last_selected[1] == 2){
if(last_selected[2] > 3 ){
if(last_selected[3] == 7){
if(last_selected[4] == 6){
if(last_selected[5] == 1){
Favourites_setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 2){
Sport_Cars_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 3){
Two_Doors_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 4){
Four_Doors_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 5){
Four_Doors__2_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 6){
Classics_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 7){
Off_Road_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 8){
Rusty_Cars_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 9){
Public_Service_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 10){
Emergency_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 11){
Workplace_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 12){
Workplace_2_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 13){
Bike_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 14){
Boat_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 15){
Fly_Setup(players[ChangeNetPlayer].id);
}
return;
}
else if(last_selected[4] == 7){
if(last_selected[5] == 1){
MD_Colour_Display_Setup_1(players[ChangeNetPlayer].id);
MD_Colour_Display_1 = false;
MD_Colour_Display_2 = true;
MD_Colour_Display_3 = false;
}
else if(last_selected[5] == 2){
MD_Colour_Display_Setup_2(players[ChangeNetPlayer].id);
MD_Colour_Display_3 = true;
MD_Colour_Display_1 = false;
MD_Colour_Display_2 = false;
}
else if(last_selected[5] == 3){
MC_Vehicle_Colour_Num_Setup(players[ChangeNetPlayer].id);
MD_Colour_Display_1 = false;
MD_Colour_Display_2 = false;
MD_Colour_Display_3 = false;
}
return;
}
return;
}
else if(last_selected[3] == 17){
if(last_selected[4] == 9){
if(last_selected[5] == 2){
Favourites_setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 3){
Sport_Cars_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 4){
Two_Doors_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 5){
Four_Doors_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 6){
Four_Doors__2_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 7){
Classics_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 8){
Off_Road_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 9){
Rusty_Cars_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 10){
Public_Service_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 11){
Emergency_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 12){
Workplace_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 13){
Workplace_2_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 14){
Bike_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 15){
Boat_Setup(players[ChangeNetPlayer].id);
}
else if(last_selected[5] == 16){
Fly_Setup(players[ChangeNetPlayer].id);
}
return;
}
return;
}
return;
}
return;
}
return;
}
return; //Take this out when all checked return;
Base_Error(MODMANAGER_ERROR_ID_INVALID);
}
void Base_set(void){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SET_ITEMS, true);
MENU_HEADER = MD_Extend_Header;
MENU_SUB_HEADER = MD_Extend_SubHeader;
MENU_FOOTER = MD_Extend_Footer;
MENU_SETUP(); //We need to add Check ID to char here --> no freezes anymore
}

View File

@@ -0,0 +1,145 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MD_Animations_Setup(void){
item_highlighted = 10;
MENU_SUB_HEADER = "Animation Engine";
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
Add_JumpOver("~BLIP_94~ MD A N I M A T I O N S E T T I N G S ~BLIP_94~"); //5
AddBool("Give Attachments For Animations",GetBit(MD_Misc_OptionsBitSet,MD_MISC_AUTO_ATTACH_TOOL_WITH_ANIMS)); //6
AddFunction_Value("Animation Speed",10); //7//Normsl - Medium - Fast
AddBool("Loop Animations",Loop_Anims); //8
Add_JumpOver("~BLIP_94~ MD P L A Y A N I M A T I O N S ~BLIP_94~"); //9
AddFunction_Value("Strides ",11); //10
AddFunction_Value("Dances",9); //11
AddFunction_Value("Gestures",22); //12
AddFunction_Value("Tools",5); //13
AddFunction_Value("Heli",10); //14
AddFunction_Value("Bike",7); //15
AddFunction_Value("Sliding",5); //16
AddFunction_Value("Swimming",5); //17
AddFunction_Value("Sitting",6); //18
AddFunction_Value("Pause",6); //19
AddFunction_Value("Sex",14); //20
AddFunction_Value("Special",3); //21
//Load_Sco("~BLIP_68~ Superman ~PAD_RB~+~PAD_DPAD_DOWN~/~PAD_LB~+~PAD_LSTICK_ALL~/", "eb_superman");
//Load_Sco("~BLIP_68~ Swimming Everywhere ~PAD_RB~+~PAD_DPAD_DOWN~", "hand3");
//Load_Sco("~BLIP_68~ Superhero ~PAD_DPAD_UP~ + ~COL_NET_4~F ~PAD_RT~ / M ~PAD_LT~", "model2");
return;
}
void MD_Animations_Action(void){
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Jumpover 5
if(SelectedItem == 6){
ToggleBit(MD_Misc_OptionsBitSet,MD_MISC_AUTO_ATTACH_TOOL_WITH_ANIMS);
menu_item[SelectedItem].extra_val = GetBit(MD_Misc_OptionsBitSet,MD_MISC_AUTO_ATTACH_TOOL_WITH_ANIMS);
//Alert_Two("~BLIP_76~ ~c~Give tool with animation", Attachment_OnAnims ? PrintON : PrintOFF ,false);
}
else if(SelectedItem == 7){
if(menu_item[SelectedItem].num_val == 1){
animationspeed = 1.00f;
Alert("~b~MD: ~s~Animspeed Set To Default",false);
}
else if(menu_item[SelectedItem].num_val == 2){
animationspeed = 1.50f;
Alert("~b~MD: ~s~Animspeed Set To 2~n~ Press Animation 2 Times To Play With Selected Speed.",false);
}
else if(menu_item[SelectedItem].num_val == 3){
animationspeed = 2.00f;
Alert("~b~MD: ~s~Animspeed Set To 3~n~ Press Animation 2 Times To Play With Selected Speed.",false);
}
else if(menu_item[SelectedItem].num_val == 4){
animationspeed = 2.50f;
Alert("~b~MD: ~s~Animspeed Set To 4~n~ Press Animation 2 Times To Play With Selected Speed.",false);
}
else if(menu_item[SelectedItem].num_val == 5){
animationspeed = 3.00f;
Alert("~b~MD: ~s~Animspeed Set To 5~n~ Press Animation 2 Times To Play With Selected Speed.",false);
}
else if(menu_item[SelectedItem].num_val == 6){
animationspeed = 3.50f;
Alert("~b~MD: ~s~Animspeed Set To 6~n~ Press Animation 2 Times To Play With Selected Speed.",false);
}
else if(menu_item[SelectedItem].num_val == 7){
animationspeed = 4.00f;
Alert("~b~MD: ~s~Animspeed Set To 7~n~ Press Animation 2 Times To Play With Selected Speed.",false);
}
else if(menu_item[SelectedItem].num_val == 8){
animationspeed = 4.50f;
Alert("~b~MD: ~s~Animspeed Set To 8~n~ Press Animation 2 Times To Play With Selected Speed.",false);
}
else if(menu_item[SelectedItem].num_val == 9){
animationspeed = 5.00f;
Alert("~b~MD: ~s~Animspeed Set To 9~n~ Press Animation 2 Times To Play With Selected Speed.",false);
}
else if(menu_item[SelectedItem].num_val == 10){
animationspeed = 5.50f;
Alert("~b~MD: ~s~Animspeed Set To 10~n~ Press Animation 2 Times To Play With Selected Speed.",false);
}
}
else if(SelectedItem == 8){
Loop_Anims = !Loop_Anims;
menu_item[SelectedItem].extra_val = Loop_Anims;
Alert_Two("~BLIP_76~ ~c~Animations Looped", Loop_Anims ? PrintON : PrintOFF ,false);
if(Loop_Anims) Animationloop = 99999.00f;
else Animationloop = 0.00f;
}
//Jumpover //9
else if(SelectedItem == 10){
MD_Stride_Strings_Action(pPlayer);
}
else if(SelectedItem == 11){
MD_Anim_Dance_Strings_Action(pPlayer);
}
else if(SelectedItem == 12){
MD_Anim_Gesture_Strings_Action(pPlayer);
}
else if(SelectedItem == 13){
MD_Anim_Tool_Strings_Action(pPlayer);
}
else if(SelectedItem == 14){
MD_Anim_Heli_Strings_Action(pPlayer);
}
else if(SelectedItem == 15){
MD_Anim_Bike_Strings_Action(pPlayer);
}
else if(SelectedItem == 16){
MD_Anim_Sliding_Strings_Action(pPlayer);
}
else if(SelectedItem == 17){
MD_Anim_Swim_Strings_Action(pPlayer);
}
else if(SelectedItem == 18){
MD_Anim_Sit_Strings_Action(pPlayer);
}
else if(SelectedItem == 19){
MD_Anim_Pause_Strings_Action(pPlayer);
}
else if(SelectedItem == 20){
MD_Anim_Sex_Strings_Action(pPlayer);
}
else if(SelectedItem == 21){
if(menu_item[SelectedItem].num_val == 1){
TOGGLE_SCRIPT("hand3");
Alert_Two("~b~MD: ~s~Swimming everywhere",(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("hand3") > 0) ? PrintON : PrintOFF ,false);
}
else if(menu_item[SelectedItem].num_val == 2){
TOGGLE_SCRIPT("eb_superman");
Alert_Two("~b~MD: ~s~Superman",(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("eb_superman") > 0) ? PrintON : PrintOFF ,false);
}
else if(menu_item[SelectedItem].num_val == 3){//Weapon_String[6] = "~BLIP_49~ Remove Player Weapons";
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("hand3");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("eb_superman");
Alert("~b~MD: ~s~All scripts disabled" ,false);
}
}
}

View File

@@ -0,0 +1,943 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV NATHAN VII
*/
#pragma once
/** NEW SETUP TO BE IMPLEMENTED **/
void MD_Army_Setup(void){
item_highlighted = 14;
MENU_SUB_HEADER = "MD Personal Army";
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
Add_JumpOver("~BLIP_94~ MD G U A R D S E T T I N G S ~BLIP_94~"); //5
AddFunction_Value("Guards~c~ Weapons",12); //6
AddFunction_Value("Guards~c~ Formation",5); //7
AddFunction_Value("Guards~c~ Spacing",4); //8
AddFunction_Value_CB("Guard config",6); //9 // Arm your vehicle / Guards Godmode give / Guards Godmode Take / Guards helmet Give / Guard Helmet Take
AddFunction_Value_CB("Attack Mode",5); //10 //Attack Now // Attack Teleported / Clear Tasks
AddSubMenu("Guards ~COL_NET_4~Animations / Strides ~PAD_RIGHT~"); //11
AddSubMenu("Guards ~COL_NET_4~Attachments ~PAD_RIGHT~"); //12
Add_JumpOver("~BLIP_94~ MD G U A R D S S P A W N E R ~BLIP_94~"); //13
AddFunction_Value_CB("Uniforms",14); //14
AddFunction_Value_CB("Gang Members",4); //15
AddFunction_Value_CB("Stripper",2); //16
AddFunction_Value_CB("Medical",5); //17
AddFunction_Value_CB("Business",9); //18
AddFunction_Value_CB("Cluck",2); //19
AddFunction_Value_CB("Homo",2); //20
AddFunction_Value_CB("Singleplayer",9); //21 //Yes! 21 is possible if needed :)
/**Remember strings*/
//menu_item[1].num_val = (AutoSpectate ? 2 : 1);
//menu_item[10].num_val = group_formation;
//menu_item[11].num_val = group_spacing;
return;
}
void MD_Army_Action(void){
//!Set urself as default!/
//players[ChangeNetPlayer].id = iPlayer;
//!//
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Jumpover 5
//Sub 6
//Sub 7
if(SelectedItem == 6){
if(menu_item[SelectedItem].num_val == 1 )Weapon_BGuards(WEAPON_DEAGLE);
else if(menu_item[SelectedItem].num_val == 2) Weapon_BGuards(WEAPON_SHOTGUN);
else if(menu_item[SelectedItem].num_val == 3) Weapon_BGuards(WEAPON_MP5);
else if(menu_item[SelectedItem].num_val == 4) Weapon_BGuards(WEAPON_M4);
else if(menu_item[SelectedItem].num_val == 5) Weapon_BGuards(WEAPON_RLAUNCHER);
else if(menu_item[SelectedItem].num_val == 6) Weapon_BGuards(WEAPON_SNIPERRIFLE);
else if(menu_item[SelectedItem].num_val == 7) Weapon_BGuards(WEAPON_GRENADE);
else if(menu_item[SelectedItem].num_val == 8) Weapon_BGuards(WEAPON_MOLOTOV);
else if(menu_item[SelectedItem].num_val == 9) Weapon_BGuards(WEAPON_BASEBALLBAT);
else if(menu_item[SelectedItem].num_val == 10) Weapon_BGuards(WEAPON_KNIFE);
else if(menu_item[SelectedItem].num_val == 11) Weapon_BGuards(WEAPON_POOLCUE);
else if(menu_item[SelectedItem].num_val == 12)Remove_Weapon_BGuards();
}
else if(SelectedItem == 7){
group_formation = menu_item[SelectedItem].num_val;
SET_GROUP_FORMATION(BG_Group, group_formation);
}
else if(SelectedItem == 8){
group_spacing = menu_item[SelectedItem].num_val;
SET_GROUP_FORMATION_SPACING(BG_Group, group_spacing);
}
else if(SelectedItem == 9){
if(menu_item[SelectedItem].num_val == 1){
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) == 3){
Alert("~b~MD: ~s~Spy mode doesnt allow this!",false);
return;
}
BGuards_Arm_Vehicle(players[ChangeNetPlayer].id); //Freeze when no player selected!!
}
else if(menu_item[SelectedItem].num_val == 2)Helmets_BGuards();
else if(menu_item[SelectedItem].num_val == 3)Remove_Helmets_BGuards();
else if(menu_item[SelectedItem].num_val == 4)Set_BGuards_Invincible(true);
else if(menu_item[SelectedItem].num_val == 5)Set_BGuards_Invincible(false);
else if(menu_item[SelectedItem].num_val == 6) Clear_Task_BGuards();
}
else if(SelectedItem == 10){
if(menu_item[SelectedItem].num_val == 1){
BGuard_Send_After_PlayerPED(players[ChangeNetPlayer].id, PLAYER_CHAR(players[ChangeNetPlayer].id)); //should make this take one arg..
char* buffer[16]; //64 characters
Strcpy(buffer, "~b~MD: ~s~Guards will now attack ~COL_NET_"); //37
itoa( (players[ChangeNetPlayer].id + 1), buffer); //39
Strcat(buffer, "~"); //40
Strcat(buffer, GET_PLAYER_NAME(players[ChangeNetPlayer].id)); //60
Strcat(buffer, "~s~."); //59
Alert(buffer, false);
}
else if(menu_item[SelectedItem].num_val == 2){
float x,y,z;
GET_CHAR_COORDINATES(PLAYER_CHAR(players[ChangeNetPlayer].id),&x,&y,&z);
Teleport_BGuards_Coord(x,y,z); //--> this needs to be looked at, doesnt work
WAIT(100);
BGuard_Send_After_PlayerPED(players[ChangeNetPlayer].id, PLAYER_CHAR(players[ChangeNetPlayer].id));
char* buffer[16]; //64 characters
Strcpy(buffer, "~b~MD: ~s~Guards will now attack ~COL_NET_"); //37
itoa( (players[ChangeNetPlayer].id + 1), buffer); //39
Strcat(buffer, "~"); //40
Strcat(buffer, GET_PLAYER_NAME(players[ChangeNetPlayer].id)); //60
Strcat(buffer, "~s~."); //59
Alert(buffer, false);
}
else if(menu_item[SelectedItem].num_val == 3)Clear_One_BGuards();
else if(menu_item[SelectedItem].num_val == 4)Clear_All_BGuards();
else if(menu_item[SelectedItem].num_val == 5) Clear_Task_BGuards();
//else if(menu_item[SelectedItem].num_val == 6)Fire_BG_Weapon(players[ChangeNetPlayer].id);
}
//Jumpover
else if(SelectedItem == 14){ //Uniforms
int model[14];
model[0] = MODEL_M_M_FATCOP_01;
model[1] = MODEL_M_Y_SWAT;
model[2] = MODEL_M_Y_NHELIPILOT;
model[3] = MODEL_M_M_FBI;
model[4] = MODEL_M_Y_COP;
model[5] = MODEL_M_Y_COP_TRAFFIC;
model[6] = MODEL_M_Y_FIREMAN;
model[7] = MODEL_M_M_FIRECHIEF;
model[8] = MODEL_M_M_SECURITYMAN;
model[9] = MODEL_M_M_ARMOURED;
model[10] = MODEL_M_Y_CLUBFIT;
model[11] = MODEL_M_Y_PRISON;
model[12] = MODEL_M_Y_PRISONAOM;
model[13] = MODEL_F_Y_FF_CLUCK_R;
Spawn_BGuards(PLAYER_CHAR(players[ChangeNetPlayer].id),model[(menu_item[SelectedItem].num_val - 1)],BGWeapontype_Lastselected);
if(BG_Attack_Selected_Player) BGuard_Send_After_PlayerPED(players[ChangeNetPlayer].id, PLAYER_CHAR(players[ChangeNetPlayer].id));
}
else if(SelectedItem == 15){ //Gang Members
int model[4];
model[0] = MODEL_M_Y_GAFR_LO_01;
model[1] = MODEL_M_Y_GAFR_LO_02;
model[2] = MODEL_M_Y_GAFR_HI_01;
model[3] = MODEL_M_Y_GAFR_HI_02;
Spawn_BGuards(PLAYER_CHAR(players[ChangeNetPlayer].id),model[(menu_item[SelectedItem].num_val - 1)],BGWeapontype_Lastselected);
if(BG_Attack_Selected_Player) BGuard_Send_After_PlayerPED(players[ChangeNetPlayer].id, PLAYER_CHAR(players[ChangeNetPlayer].id));
}
else if(SelectedItem == 16){ //Stripper
int model[2];
model[0] = MODEL_F_Y_STRIPPERC01;
model[1] = MODEL_F_Y_STRIPPERC02;
Spawn_BGuards(PLAYER_CHAR(players[ChangeNetPlayer].id),model[(menu_item[SelectedItem].num_val - 1)],BGWeapontype_Lastselected);
if(BG_Attack_Selected_Player) BGuard_Send_After_PlayerPED(players[ChangeNetPlayer].id, PLAYER_CHAR(players[ChangeNetPlayer].id));
}
else if(SelectedItem == 17){ //Medical
int model[5];
model[0] = MODEL_M_M_DOCTOR_01;
model[1] = MODEL_F_Y_DOCTOR_01;
model[2] = MODEL_F_Y_NURSE;
model[3] = MODEL_M_M_DOC_SCRUBS_01;
model[4] = MODEL_M_M_DODGYDOC;
Spawn_BGuards(PLAYER_CHAR(players[ChangeNetPlayer].id),model[(menu_item[SelectedItem].num_val - 1)],BGWeapontype_Lastselected);
if(BG_Attack_Selected_Player) BGuard_Send_After_PlayerPED(players[ChangeNetPlayer].id, PLAYER_CHAR(players[ChangeNetPlayer].id));
}
else if(SelectedItem == 18){ //Business
int model[9];
model[0] = MODEL_F_M_BUSINESS_01;
model[1] = MODEL_F_M_BUSINESS_02;
model[2] = MODEL_F_M_PBUSINESS;
model[3] = MODEL_F_Y_BUSINESS_01;
model[4] = MODEL_M_M_BUSINESS_02;
model[5] = MODEL_M_M_BUSINESS_03;
model[6] = MODEL_M_M_PBUSINESS_01;
model[7] = MODEL_M_Y_BUSINESS_01;
model[8] = MODEL_M_Y_BUSINESS_02;
Spawn_BGuards(PLAYER_CHAR(players[ChangeNetPlayer].id),model[(menu_item[SelectedItem].num_val - 1)],BGWeapontype_Lastselected);
if(BG_Attack_Selected_Player) BGuard_Send_After_PlayerPED(players[ChangeNetPlayer].id, PLAYER_CHAR(players[ChangeNetPlayer].id));
}
else if(SelectedItem == 19){ //Broken
int model[2];
model[0] = MODEL_F_Y_FF_CLUCK_R;
model[1] = MODEL_M_Y_FF_CLUCK_R;
Spawn_BGuards(PLAYER_CHAR(players[ChangeNetPlayer].id),model[(menu_item[SelectedItem].num_val - 1)],BGWeapontype_Lastselected);
if(BG_Attack_Selected_Player) BGuard_Send_After_PlayerPED(players[ChangeNetPlayer].id, PLAYER_CHAR(players[ChangeNetPlayer].id));
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_HELMET, true);
GIVE_PED_HELMET(pPlayer);
}
else if(SelectedItem == 20){ //Homo
int model[2];
model[0] = MODEL_M_M_GAYMID; //= admin command change model homo
model[1] = MODEL_M_Y_GAYYOUNG;
Spawn_BGuards(PLAYER_CHAR(players[ChangeNetPlayer].id),model[(menu_item[SelectedItem].num_val - 1)],BGWeapontype_Lastselected);
if(BG_Attack_Selected_Player) BGuard_Send_After_PlayerPED(players[ChangeNetPlayer].id, PLAYER_CHAR(players[ChangeNetPlayer].id));
}
else if(SelectedItem == 21){ //Singleplayer
int model[9];
model[0] = MODEL_IG_LILJACOB;
model[1] = MODEL_IG_BRUCIE;
model[2] = MODEL_IG_ROMAN;
model[3] = MODEL_IG_DWAYNE;
model[4] = MODEL_IG_BADMAN;
model[5] = MODEL_IG_DMITRI;
model[6] = MODEL_IG_MICHELLE;
model[7] = MODEL_IG_PACKIE_MC;
model[8] = MODEL_IG_PLAYBOY_X;
Spawn_BGuards(PLAYER_CHAR(players[ChangeNetPlayer].id),model[(menu_item[SelectedItem].num_val - 1)],BGWeapontype_Lastselected);
if(BG_Attack_Selected_Player) BGuard_Send_After_PlayerPED(players[ChangeNetPlayer].id, PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
void MD_Attachments_Guard_Action(void){
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Jumpover 5
if(SelectedItem == 6){
renew_attached = !renew_attached;
menu_item[SelectedItem].extra_val = renew_attached;
Alert_Two("~BLIP_76~ ~c~Clear Objects before attaching new ones", renew_attached ? PrintON : PrintOFF ,false);
}
if(SelectedItem == 7){//8 Cubes
float obj_x , obj_y, obj_z, obj_rx, obj_ry, obj_rz;
int pedbone;
Object object;
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1)object = 0x2718C626, pedbone = 0, obj_x = -0.0257, obj_y = 0.0198, obj_z = -1.4678, obj_rx = 0, obj_ry = 0, obj_rz = 5.4700;
else if(menu_item[SelectedItem].num_val == 2)object = 0x5C5030D4, pedbone = 0, obj_x = -0.0257, obj_y = 0.0198, obj_z = -1.4678, obj_rx = 0, obj_ry = 0, obj_rz = 5.4700;
else if(menu_item[SelectedItem].num_val == 3)object = 0xCCEA11CA, pedbone = 0, obj_x = -0.0257, obj_y = 0.0198, obj_z = -1.4678, obj_rx = 0, obj_ry = 0, obj_rz = 5.4700;
else if(menu_item[SelectedItem].num_val == 4)object = 0xBB1F6E71, pedbone = 0, obj_x = -0.0257, obj_y = 0.0198, obj_z = -1.4678, obj_rx = 0, obj_ry = 0, obj_rz = 5.4700;
else if(menu_item[SelectedItem].num_val == 5)object = 0xDD28B247, pedbone = 0, obj_x = -0.0257, obj_y = 0.0198, obj_z = -1.4678, obj_rx = 0, obj_ry = 0, obj_rz = 5.4700;
else if(menu_item[SelectedItem].num_val == 6)object = 0xA6E545FD, pedbone = 0, obj_x = -0.0257, obj_y = 0.0198, obj_z = -1.4678, obj_rx = 0, obj_ry = 0, obj_rz = 5.4700;
else if(menu_item[SelectedItem].num_val == 7){
Attach_Objects_BGuards( 0x2718C626,0,1,0.0,0.0,0.0,0.0,3.0,0);
Attach_Objects_BGuards( 0xDD28B247,0,-1,0.0,0.0,0.0,0.0,3.0,1);
Attach_Objects_BGuards( 0xCCEA11CA,0,0,1,0.0,0.0,0.0,3.0,2);
Attach_Objects_BGuards( 0xBB1F6E71,0,0,-1,0.0,0.0,0.0,3.0,3);
Attach_Objects_BGuards( 0xA6E545FD,0,0,0.0,1,0.0,0.0,3.0,4);
Attach_Objects_BGuards( 0x5C5030D4,0,0,0.0,-1,0.0,0.0,3.0,5);
Alert("~BLIP_76~ ~c~Attached Cubeman",false);
}
if(menu_item[SelectedItem].num_val > 0 && menu_item[SelectedItem].num_val < 8){
Attach_Objects_BGuards( object,pedbone,obj_x, obj_y, obj_z, obj_rx, obj_ry,obj_rz,0);
Alert("~BLIP_76~ ~c~Selected Object Attached",false);
}
else if(menu_item[SelectedItem].num_val == 8){
Delete_Objects_BGuards();
}
}
else if(SelectedItem == 8){//12 Hands
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){//Umbrella
Attach_Objects_BGuards(-797519906,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 2){
Attach_Objects_BGuards( -853576856,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.1400, 6.2300,0.0000,0);
Alert("~BLIP_76~ ~c~Umbrella 2",false);
}
else if(menu_item[SelectedItem].num_val == 3){
Attach_Objects_BGuards( -1159420742,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.1400, 6.2300,0.0000,0);
Alert("~BLIP_76~ ~c~Umbrella 3",false);
}
else if(menu_item[SelectedItem].num_val == 4){
Attach_Objects_BGuards( -853576856,BONE_RIGHT_HAND, 0.1311, -0.0010, 0.1784, 0.0000, 1.5200,0.0000,0);
Alert("~BLIP_76~ ~c~Gunbrella 1",false);
}
else if(menu_item[SelectedItem].num_val == 5){
Attach_Objects_BGuards( -1159420742,BONE_RIGHT_HAND, 0.1311, -0.0010, 0.1784, 0.0000, 1.5200,0.0000,0);
Alert("~BLIP_76~ ~c~Gunbrella 2",false);
}
else if(menu_item[SelectedItem].num_val == 6){
Attach_Objects_BGuards( -797519906,BONE_RIGHT_HAND, 0.1311, -0.0010, 0.1784, 0.0000, 1.5200,0.0000,0);
Alert("~BLIP_76~ ~c~Gunbrella 3",false);
}
else if(menu_item[SelectedItem].num_val == 7){//Shopping bag
Attach_Objects_BGuards(1643885955,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 8){//Luggage
Attach_Objects_BGuards(-647773926,BONE_RIGHT_HAND, 0.2806, 0.0000, 0, 6.3000, 4.7000,0.0000,0);
Attach_Objects_BGuards(-647773926,BONE_LEFT_HAND, 0.2806, 0.0000,0, 6.3000, 4.7000,0.0000,1);
}
else if(menu_item[SelectedItem].num_val == 9){
Attach_Objects_BGuards( -311280716,BONE_RIGHT_HAND, -0.1000, 0.0000, 0, 0.0000, 1.2500,0.0000,0);
Attach_Objects_BGuards( -311280716,BONE_LEFT_HAND, -0.1000, 0.0000, 0, 0.0000, 1.6000,0.0000,1);
}
else if(menu_item[SelectedItem].num_val == 10){
Attach_Objects_BGuards( 1443084780,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
Attach_Objects_BGuards( -886669251,BONE_RIGHT_HAND, 0.4628, -0.0037, 0.0618, 0.0000, 3.1899,0.0000,1);
Attach_Objects_BGuards( -771659842,BONE_RIGHT_HAND, -0.0232, 0.0232, 0.0918, 0.0000, 4.7500,0.0000,2);
Alert("~BLIP_76~ ~c~Glowgun",false);//hand
}
else if(menu_item[SelectedItem].num_val == 11){
Attach_Objects_BGuards( 1758564455,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
Attach_Objects_BGuards( 758835816,BONE_RIGHT_HAND, 0.0650, -0.0227, 0.6113, 4.6200, 1.5100,0.5300,1);
Attach_Objects_BGuards( 758835816,BONE_RIGHT_HAND, 0.1100, -0.0618, 0.6185, 1.5400, 1.5100,0.5300,2);
Alert("~BLIP_76~ ~c~Lightsaber",false);//hand
}
else if(menu_item[SelectedItem].num_val == 12){//Luggage
Attach_Objects_BGuards( 1735854596,BONE_RIGHT_HAND, -0.0117, -0.0007, 0.0075, 6.2600, 4.0699,0.0600,0);
Attach_Objects_BGuards( 1166402234,BONE_RIGHT_HAND, 0.4756, -0.0022, 0.0484, 4.8100, 4.7600,0.0000,1);
Attach_Objects_BGuards( 1166402234,BONE_RIGHT_HAND, 0.4756, -0.0022, 0.0591, 1.6600, 4.7600,0.0000,2);
Attach_Objects_BGuards( -886669251,BONE_RIGHT_HAND, 0.5622, 0.0751, 0.0427, 0.0000, 0.0000,3.2500,3);
Alert("~BLIP_76~ ~c~LaserGun",false);
}
else if(menu_item[SelectedItem].num_val == 13){
Attach_Objects_BGuards( 1735854596,BONE_RIGHT_HAND, -0.0117, -0.0007, 0.0075, 6.2600, 4.0699,0.0600,0);
Attach_Objects_BGuards( 1516578222,BONE_RIGHT_HAND, 0.4661, 0.0144, 0.0529, 0.0000, 0.0000,4.7800,1);
Alert("~BLIP_76~ ~c~RocketGun",false);
}
else if(menu_item[SelectedItem].num_val == 14){
Attach_Objects_BGuards( 897930585,BONE_RIGHT_HAND, 0.2461, 0.0285, -0.0447, 0.0000, 0.1000,0.0000,0);
Attach_Objects_BGuards( 897930585,BONE_RIGHT_HAND, 0.2461, 0.0285, -0.0447, 1.0000, 0.1000,0.0000,1);
Attach_Objects_BGuards( 897930585,BONE_RIGHT_HAND, 0.2461, 0.0285, -0.0447, 2.0000, 0.1000,0.0000,2);
Attach_Objects_BGuards( 897930585,BONE_RIGHT_HAND, 0.2461, 0.0285, -0.0447, 3.0000, 0.1000,0.0000,3);
Attach_Objects_BGuards( 897930585,BONE_RIGHT_HAND, 0.2461, 0.0285, -0.0447, 4.0000, 0.1000,0.0000,4);
Attach_Objects_BGuards( 897930585,BONE_RIGHT_HAND, 0.2461, 0.0285, -0.0447, 5.0000, 0.1000,0.0000,5);
Alert("~BLIP_76~ ~c~TurboM4",false);
}
else if(menu_item[SelectedItem].num_val == 15){
Attach_Objects_BGuards( 1554952292,BONE_RIGHT_HAND, 0.1344, 0.0079, 0.0156, 0.4500, 0.0000,0.0000,0);
Attach_Objects_BGuards( 1554952292,BONE_RIGHT_HAND, 0.1344, 0.0079, 0.0156, 1.5000, 0.0000,0.0000,1);
Attach_Objects_BGuards( 1554952292,BONE_RIGHT_HAND, 0.1344, 0.0079, 0.0156, 2.5500, 0.0000,0.0000,2);
Attach_Objects_BGuards( 1554952292,BONE_RIGHT_HAND, 0.1344, 0.0079, 0.0156, 3.6000, 0.0000,0.0000,3);
Attach_Objects_BGuards( 1554952292,BONE_RIGHT_HAND, 0.1344, 0.0079, 0.0156, 4.6500, 0.0000,0.0000,4);
Attach_Objects_BGuards( 1554952292,BONE_RIGHT_HAND, 0.1344, 0.0079, 0.0156, 5.7000, 0.0000,0.0000,5);
Alert("~BLIP_76~ ~c~TurboDeagle",false);
}
else if(menu_item[SelectedItem].num_val == 16){
Attach_Objects_BGuards( 1443084780,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.1100,0);
Attach_Objects_BGuards( 945404608,BONE_RIGHT_HAND, -0.3094, 0.0000, 0.0000, 0.0300, 4.8100,0.0400,1);
Attach_Objects_BGuards( 1005973733,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 5.8700, 5.8400,1.6000,2);
Attach_Objects_BGuards( 1781111577,BONE_RIGHT_HAND, 0.1972, 0.0000, 0.0000, 5.8600, 5.8400,1.6000,3);
Attach_Objects_BGuards( 1781111577,BONE_RIGHT_HAND, 0.1972, 0.0000, 0.0000, 5.8600, 5.8400,1.6000,4);
Attach_Objects_BGuards( -771659842,BONE_RIGHT_HAND, 0.3189, 0.0000, 0.0000, 0.0300, 1.4700,0.0000,5);
Alert("~BLIP_76~ ~c~Disco Launcher",false);
}
else if(menu_item[SelectedItem].num_val == 17){
Attach_Objects_BGuards( 2084514704,BONE_HEAD, -0.4178, 0.3060, -0.1397, 1.4000, 5.6700,1.5500,0);
Alert("~BLIP_76~ ~c~SaxPlayer",false);
}
else if(menu_item[SelectedItem].num_val == 18){
Delete_Objects_BGuards();
}
}
else if(SelectedItem == 9){ //12 Tools
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){//Saw
Attach_Objects_BGuards( 843240193,BONE_RIGHT_HAND, 0.1672, -0.0931, 0.7556, 6.1500, 3.2400,0.0000,0);
Alert("~BLIP_76~ ~c~Cane",false);
}
else if(menu_item[SelectedItem].num_val == 2){//Axe
Attach_Objects_BGuards( 843240193,BONE_RIGHT_HAND, 0.1672, -0.0931, 0.7556, 6.1500, 3.2400,0.0000,0);
Attach_Objects_BGuards( -886669251,BONE_RIGHT_HAND, 0.1694, -0.1615, 1.1096, 5.9500, 1.7300,5.1900,1);
Alert("~BLIP_76~ ~c~Cane v2",false);
}
else if(menu_item[SelectedItem].num_val == 3){//Jackhammer
Attach_Objects_BGuards( 2113166995,BONE_RIGHT_HAND, 0.0661, -0.0422, 0.2706, 0.1200, 0.0200,0.0000,0);
Alert("~BLIP_76~ ~c~Slegehammer",false);
}
else if(menu_item[SelectedItem].num_val == 4){//Pickaxe
Attach_Objects_BGuards( -257284559,BONE_RIGHT_HAND, 0.0417, -0.0290, 0.1885, 0.1200, 6.2500,0.0000,0);
Alert("~BLIP_76~ ~c~Pickaxe",false);
}
else if(menu_item[SelectedItem].num_val == 5){//Rake
Attach_Objects_BGuards( -1813753615,BONE_RIGHT_HAND, 0.0311, 0.0000, 0.0000, 0.2800, 5.9000,0.1600,0);
Alert("~BLIP_76~ ~c~Broom",false);
}
else if(menu_item[SelectedItem].num_val == 6){//Bighammer
Attach_Objects_BGuards( 1892875956,BONE_RIGHT_HAND, 0.0417, 0.0000, 0.0000, 0.2000, 5.9500,6.1300,0);
Alert("~BLIP_76~ ~c~Rake",false);
}
else if(menu_item[SelectedItem].num_val == 7){//Nailgun
Attach_Objects_BGuards( 1530440164,BONE_RIGHT_HAND, 0.0228, 0.0544, -0.1390, 4.8500, 3.6899,2.6400,0);
Alert("~BLIP_76~ ~c~Spade",false);
}
else if(menu_item[SelectedItem].num_val == 8){
Attach_Objects_BGuards( 1409043984,BONE_RIGHT_HAND, 0.1472, -0.0093, -0.1719, 0.1500, 0.0800,0.0000,0);
Alert("~BLIP_76~ ~c~Wrench",false);
}
else if(menu_item[SelectedItem].num_val == 9){//Saw
Attach_Objects_BGuards(-1977261975,BONE_RIGHT_HAND, 0.3317, 0.0000,0, 0.1000, 0.4500,3.1700,0);
}
else if(menu_item[SelectedItem].num_val == 10){//Axe
Attach_Objects_BGuards( 824817939,BONE_RIGHT_HAND, 0.1117, -0.0178, 0.2023, 6.1400, 6.2600,3.2499,0);
}
else if(menu_item[SelectedItem].num_val == 11){//Jackhammer
Attach_Objects_BGuards(1234161243,BONE_RIGHT_HAND, 0, 0.0061,-0.0086, 0.0000, 0.0000,5.9600,0);
}
else if(menu_item[SelectedItem].num_val == 12){//Pickaxe
Attach_Objects_BGuards(-257284559,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 13){//Rake
Attach_Objects_BGuards(1892875956,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 14){//Bighammer
Attach_Objects_BGuards( 2113166995,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 15){//Nailgun
Attach_Objects_BGuards( -1576276196,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
Alert("~BLIP_76~ ~c~Nailgun",false); // hand
}
else if(menu_item[SelectedItem].num_val == 16){
Attach_Objects_BGuards( 702063252,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
Alert("~BLIP_76~ ~c~Hammer",false); //hand
}
else if(menu_item[SelectedItem].num_val == 17){
Attach_Objects_BGuards( 2002027012,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
Alert("~BLIP_76~ ~c~Drill",false);//hand
}
else if(menu_item[SelectedItem].num_val == 18){
Attach_Objects_BGuards( -1813753615,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
Alert("~BLIP_76~ ~c~Broom",false);//hand
}
else if(menu_item[SelectedItem].num_val == 19){
Attach_Objects_BGuards( -805425417,BONE_LEFT_HAND, 0.1594, 0.0154, -0.0039, 4.4200, 5.4500,0.0000,0);
Alert("~BLIP_76~ ~c~Laptop, use swat stride",false);//hand
}
else if(menu_item[SelectedItem].num_val == 20){
Delete_Objects_BGuards();
}
}
else if(SelectedItem == 10){//11 Lights
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){
Attach_Objects_BGuards(-886669251,BONE_SPINE3, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 2){
Attach_Objects_BGuards( 608452317,BONE_SPINE2, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,3.0000,0);
Alert("~BLIP_76~ ~c~Yellow Glow",false);//body
}
else if(menu_item[SelectedItem].num_val == 3){
Attach_Objects_BGuards( -55367575,BONE_SPINE2, 0.0000, 0.0000, 0.0000, 0.0000, 4.7500,3.0000,0);
Alert("~BLIP_76~ ~c~White Glow",false);//body
}
else if(menu_item[SelectedItem].num_val == 4){
Attach_Objects_BGuards( 608452317,BONE_HEAD, 0.0050, -0.0394, 0.0011, 0.0000, 0.0000,3.2000,0);
Alert("~BLIP_76~ ~c~Lampface",false);//head
}
else if(menu_item[SelectedItem].num_val == 5){
Attach_Objects_BGuards( -771659842,0, -0.0348, 0.0285, -1.8233, 0, 0,0,0);
Attach_Objects_BGuards( -771659842,0, -0.0348, 0.0285, -1.8233, 0, 0,0,1);
Attach_Objects_BGuards( -771659842,0, -0.0348, 0.0285, -1.8233, 0, 0,0,2);
Alert("~BLIP_76~ ~c~Blue Neon",false);
}
else if(menu_item[SelectedItem].num_val == 6){
Attach_Objects_BGuards( 760821872,0,-0.930, -0.2597, -2.9028, 3.9899, 6.2600,5.7800,0);
Attach_Objects_BGuards( 760821872,0,-0.930, -0.2597, -2.9028, 3.9899, 6.2600,5.7800,1);
Alert("~BLIP_76~ ~c~White Neon",false);
}
else if(menu_item[SelectedItem].num_val == 7){
Attach_Objects_BGuards( 1781111577,0, 0.0953, 0.1401, -1.3233,4.2000, 0.0400,2.3625,0);
Attach_Objects_BGuards( 1781111577,0, 0.0953, 0.1401, -1.3233,4.2000, 0.0400,2.3625,1);
Attach_Objects_BGuards( 1781111577,0, 0.0953, 0.1401, -1.3233,4.2000, 0.0400,2.3625,2);
Alert("~BLIP_76~ ~c~Purple Flash ",false);
}
else if(menu_item[SelectedItem].num_val == 8){
Attach_Objects_BGuards( 1005973733,0,0.0577, -0.1013, -2.5672,4.200, 0,0,0);
Attach_Objects_BGuards( 1005973733,0,0.0577, -0.1013, -2.5672,4.200, 0,0,1);
Attach_Objects_BGuards( 1005973733,0,0.0577, -0.1013, -2.5672,4.200, 0,0,2);
Alert("~BLIP_76~ ~c~Green Flash",false);
}
else if(menu_item[SelectedItem].num_val == 9){
Attach_Objects_BGuards( -886669251,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 1.1400, 2.8499,6.1600,0);
Attach_Objects_BGuards( -886669251,BONE_LEFT_HAND, 0.0000, 0.0000, 0.0000, 1.1400, 3.2799,6.1600,1);
Alert("~BLIP_76~ ~c~Red Hands",false);
}
else if(menu_item[SelectedItem].num_val == 10){
Attach_Objects_BGuards( -771659842,BONE_RIGHT_HAND, -0.6161, 0.0079, -0.1696, 6.2900, 1.2900,0.0000,0);
Attach_Objects_BGuards( -771659842,BONE_LEFT_HAND, -0.6161, 0.0079, -0.1696, 6.3500, 1.2900,0.0000,1);
Alert("~BLIP_76~ ~c~Blue Hands",false);
}
else if(menu_item[SelectedItem].num_val == 11){
Delete_Objects_BGuards();
}
}
else if(SelectedItem == 11){//2 Various
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){
if(renew_attached)Delete_Objects_BGuards();
Attach_Objects_BGuards(-1512691932,BONE_HEAD, 28.0000, 0.0000, 0, 0.0000, 1.5000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 2){
Delete_Objects_BGuards();
}
}
else if(SelectedItem == 12){//5 Fire
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){
Attach_Objects_BGuards( 945404608,BONE_RIGHT_FOOT, 0.0000, 0.0000, 0.0000, 0.0000, 4.7200,0.0000,0);
Attach_Objects_BGuards( 945404608,BONE_LEFT_FOOT, 0.0000, 0.0000, 0.0000, 0.0700, 4.8400,0.0000,1);
}
else if(menu_item[SelectedItem].num_val == 2){
if(renew_attached)Delete_Objects_BGuards();
Attach_Objects_BGuards( 945404608,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.2000, 1.2200,0.0000,0);
Attach_Objects_BGuards( 945404608,BONE_LEFT_HAND, 0.0000, 0.0000, 0.0000, 0.2000, 1.7100,0.0000,1);
}
else if(menu_item[SelectedItem].num_val == 3){
if(renew_attached)Delete_Objects_BGuards();
Attach_Objects_BGuards( 945404608,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 5.0200, 1.4500,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 4){
Attach_Objects_BGuards( -215358907,0,-1.3342, 1.0025, -3.6306, 0, 0,0,0);
Alert("~BLIP_76~ ~c~Flame",false);
}
else if(menu_item[SelectedItem].num_val == 5){
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 5.5125,0.0000,1);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 4.7250,0.0000,2);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 3.9375,0.0000,3);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 3.1500,0.0000,4);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 2.3625,0.0000,5);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 1.5750,0.0000,6);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 0.7875,0.0000,7);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 5.5125, 0.0000,0.0000,8);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 4.7250, 0.0000,0.0000,9);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 3.9375, 0.0000,0.0000,10);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 2.3625, 0.0000,0.0000,11);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 1.5750, 0.0000,0.0000,12);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.7875, 0.0000,0.0000,13);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 5.5125, 4.7250,0.0000,14);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 2.3625, 4.7250,0.0000,15);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 3.9375, 4.7250,0.0000,16);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.7875, 4.7250,0.0000,17);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0800, 0.1000,0.8000,18);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 5.4400, 5.8200,0.3525,19);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 4.1100, 0.1300,0.5825,20);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 2.2199, 5.9500,0.5825,21);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 2.8899, 5.3300,1.1525,22);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 3.3299, 0.9600,1.1525,23);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 2.3799, 2.6400,1.1525,24);
Attach_Objects_BGuards( 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 3.4299, 2.2800,1.1525,25);
Alert("~BLIP_76~ ~c~FireBall",false);
}
else if(menu_item[SelectedItem].num_val == 6){
Delete_Objects_BGuards();
}
}
else if(SelectedItem == 13){//4 Feet
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){
Attach_Objects_BGuards( 608452317,BONE_RIGHT_FOOT, 0.1644, 0.0413, -0.0058, 0.0000, 0.0000,4.7500,0);
Attach_Objects_BGuards( 608452317,BONE_LEFT_FOOT, 0.1644, 0.0413, -0.0058, 0.0000, 0.0000,4.7500,1);
Alert("~BLIP_76~ ~c~Sneakers",false);//feet
}
else if(menu_item[SelectedItem].num_val == 2){
Attach_Objects_BGuards(-1951625347,BONE_RIGHT_TOE, 0.0000, 0.0000, 0.0000, 0.0000, 5.0000,0.0000,0);
Attach_Objects_BGuards(-1951625347,BONE_LEFT_TOE, 0.0000, 0.0000, 0.0000, 0.0000, 5.0000,0.0000,1);
Attach_Objects_BGuards(-1951625347,BONE_RIGHT_FOOT, 0.0000, 0.0000, 0.0000, 0.0000, 3.5099,0.0000,2);
Attach_Objects_BGuards(-1951625347,BONE_LEFT_FOOT, 0.0000, 0.0000, 0.0000, 0.0000, 5.9600,0.0000,3);
}
else if(menu_item[SelectedItem].num_val == 3){
Attach_Objects_BGuards(983294893,BONE_RIGHT_TOE, 0.0000, 0.0000, 0.0000, 0.0000, 5.0000,0.0000,0);
Attach_Objects_BGuards(983294893,BONE_LEFT_TOE, 0.0000, 0.0000, 0.0000, 0.0000, 5.0000,0.0000,1);
Attach_Objects_BGuards(983294893,BONE_RIGHT_FOOT, 0.0000, 0.0000, 0.0000, 0.0000, 3.5099,0.0000,2);
Attach_Objects_BGuards(983294893,BONE_LEFT_FOOT, 0.0000, 0.0000, 0.0000, 0.0000, 5.9600,0.0000,3);
}
else if(menu_item[SelectedItem].num_val == 4){
Delete_Objects_BGuards();
}
}
else if(SelectedItem == 14){//13 Head
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){
Attach_Objects_BGuards(-316400372,BONE_HEAD, 0.0161, 0.0286, 0.0004, 3.1599, 4.7300,0.0000,0);//no
Alert("~BLIP_76~ ~c~Ugly Face",false);
}
else if(menu_item[SelectedItem].num_val == 2){
Attach_Objects_BGuards(760821872,BONE_HEAD, -0.1133, -0.0451, 0.0136, 3.0299, 4.6500,0.0000,0);//no
Alert("~BLIP_76~ ~c~Welder Mask",false);
}
else if(menu_item[SelectedItem].num_val == 3){
Attach_Objects_BGuards(1781111577,BONE_HEAD, 0.0000, 0.0000, 0.0000, 2.4699, 4.6100,0.0000,0);//ok
Alert("~BLIP_76~ ~c~Purple Flasher",false);
}
else if(menu_item[SelectedItem].num_val == 4){
Attach_Objects_BGuards(1005973733,BONE_HEAD, 0, 0.1382, -0.0075, 2.5600, 4.6200,0.0000,0);//ok
Alert("~BLIP_76~ ~c~Green Flasher",false);
}
else if(menu_item[SelectedItem].num_val == 5){
Attach_Objects_BGuards(-1218037800,BONE_HEAD, -0.1944, 0.0000,0, 4.7700, 6.1700,4.7250,0);//no
Alert("~BLIP_76~ ~c~White Torch",false);
}
else if(menu_item[SelectedItem].num_val == 6){
Attach_Objects_BGuards(-21824081,BONE_HEAD, 0.5289, 0.0000, 0, 0.1300, 1.5000,0.0000,0);//no
Alert("~BLIP_76~ ~c~Discoball",false);
}
else if(menu_item[SelectedItem].num_val == 7){
Attach_Objects_BGuards(529682743,BONE_HEAD,0.1267, 0.0000, 0, 0.3200, 1.5000,0.0000,0);
Attach_Objects_BGuards(-771659842,BONE_HEAD, 0.1300, 0.0000, 0, 0.3200, 1.5000,0.0000,1);
Alert("~BLIP_76~ ~c~Conehead",false);//no
}
else if(menu_item[SelectedItem].num_val == 8){
Attach_Objects_BGuards( 2088780331,BONE_HEAD, 0.1411, 0.0000, 0, 2.9999, 4.6000,0.0000,0);
Alert("~BLIP_76~ ~c~Pornhead",false);
}
else if(menu_item[SelectedItem].num_val == 9){
Attach_Objects_BGuards(-1732712585,BONE_HEAD, 0.0000, 0.0000, 0.0000, 5.9700, 1.9200,0.0000,0);
Attach_Objects_BGuards(-1732712585,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.3300, 5.1400,3.1099,1);
Alert("~BLIP_76~ ~c~Devils Horns",false);//ok
}
else if(menu_item[SelectedItem].num_val == 10){
Attach_Objects_BGuards(-596812191,BONE_HEAD, -0.0050, 0.0896, 0.0172, 0.0900, 1.5300,3.1500,0);
Alert("~BLIP_76~ ~c~NightVision",false);
}
else if(menu_item[SelectedItem].num_val == 11){
Attach_Objects_BGuards( 702063252,BONE_HEAD, 0.0344, 0.0000, -0.2517, 0.0000, 0.3000,0.0000,0);
Alert("~BLIP_76~ ~c~Hammerhead",false);//head
}
else if(menu_item[SelectedItem].num_val == 12){
Attach_Objects_BGuards( -1321337085,BONE_HEAD, 0.0394, 0.2304, 0.0003, 4.7400, 0.0700,6.1300,0);
Alert("~BLIP_76~ ~c~Pinokkio",false);//head
}
else if(menu_item[SelectedItem].num_val == 13){
Attach_Objects_BGuards( 357185076,BONE_HEAD, 0.2728, -0.0402, -0.0073, 2.9999, 4.7500,6.2800,0);
Alert("~BLIP_76~ ~c~Red Hat",false);
}
else if(menu_item[SelectedItem].num_val == 14){
Attach_Objects_BGuards( 608440971,BONE_HEAD, 0.2911, -0.0275, 0.0000, 6.2900, 4.7000,3.0000,0);
Alert("~BLIP_76~ ~c~Yellow Hat",false);
}
else if(menu_item[SelectedItem].num_val == 15){
Attach_Objects_BGuards( 831073557,BONE_HEAD, 0.2639, -0.0307, 0.0000, 0.1100, 1.5800,0,0);
Alert("~BLIP_76~ ~c~Purple Hat",false);
}
else if(menu_item[SelectedItem].num_val == 16){
Attach_Objects_BGuards( -1060426998,BONE_HEAD, 0.4328, -0.0418, 0.0065, 6.1900, 4.6900,0,0);
Alert("~BLIP_76~ ~c~Black Hat",false);
}
else if(menu_item[SelectedItem].num_val == 17){
Delete_Objects_BGuards();
}
}
else if(SelectedItem == 15){//8 Statue
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){
Attach_Objects_BGuards(-556881908,BONE_HEAD,-0.45,-0.26, 0, 0, 6.300*0.75,3.150,0);
Alert("~BLIP_76~ ~c~Bust/head 1",false);
}
else if(menu_item[SelectedItem].num_val == 2){
Attach_Objects_BGuards(-316947286,BONE_HEAD ,-0.45,-0.25, 0, 0, 6.300*0.75,3.150,0);
Alert("~BLIP_76~ ~c~Bust/head 2",false);
}
else if(menu_item[SelectedItem].num_val == 3){
Attach_Objects_BGuards(-1671584977,BONE_HEAD,-0.4,-0.25, 0, 0, 6.300*0.75,3.150,0);
Alert("~BLIP_76~ ~c~Bust/head 3",false);
}
else if(menu_item[SelectedItem].num_val == 4){
Attach_Objects_BGuards(-1855419067,BONE_HEAD,-0.4,-0.25, 0, 0, 6.300*0.75,3.150,0);
Alert("~BLIP_76~ ~c~Bust/head 4",false);
}
else if(menu_item[SelectedItem].num_val == 5){
Attach_Objects_BGuards(-1078040080,BONE_HEAD,-0.4,-0.25, 0, 0, 6.300*0.75,3.150,0);
Alert("~BLIP_76~ ~c~Bust/head 5",false);
}
else if(menu_item[SelectedItem].num_val == 6){
Attach_Objects_BGuards(2056950190,0,-0.0060, 0.0267, 1.3283, 0, 0,3.150,0);
Alert("~BLIP_76~ ~c~Golden Angel",false);
}
else if(menu_item[SelectedItem].num_val == 7){
Attach_Objects_BGuards(1574992650,0,0.0241, 0.0968, -2.1717, 0, 0.0100,3.150,0);
Alert("~BLIP_76~ ~c~Egypt Statue 1",false);
}
else if(menu_item[SelectedItem].num_val == 8){
Attach_Objects_BGuards(555286908,0,0, 0.1247, -1.1856, 0, 0,3.150,0);
Alert("~BLIP_76~ ~c~Egypt Statue 2",false);
}
else if(menu_item[SelectedItem].num_val == 8)Delete_Objects_BGuards();
}
else if(SelectedItem == 16){//4 Tribe
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){
Attach_Objects_BGuards(1175141365,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.4000, 1.5000,0.0000,0);
Alert("~BLIP_76~ ~c~Tribe 1",false);//ok
}
else if(menu_item[SelectedItem].num_val == 2){
Attach_Objects_BGuards(924329804,BONE_HEAD, 0.1122, 0.0, 0.0, 0.0000,4.7100,3.15000,0);
Alert("~BLIP_76~ ~c~Tribe 2",false);//no
}
else if(menu_item[SelectedItem].num_val == 3){
Attach_Objects_BGuards(924329804,BONE_HEAD, 0.1122, 0.0800, 0, 0.0000, 4.7100,3.1500,0);
Alert("~BLIP_76~ ~c~Tribe 3",false);
}
else if(menu_item[SelectedItem].num_val == 4){
Attach_Objects_BGuards( 1687106956,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.2400, 1.5500,0.0000,0);
Alert("~BLIP_76~ ~c~Tribe 4",false);
}
else if(menu_item[SelectedItem].num_val == 5){
Attach_Objects_BGuards( 1175141365,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.1500, 1.5500,0.0000,0);
Attach_Objects_BGuards( 1175141365,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.1500, 2.5500,0.0000,2);
Attach_Objects_BGuards( 1175141365,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.1500, 0.5500,0.0000,3);
Attach_Objects_BGuards( 1175141365,BONE_HEAD, 0.0000, 0.0000, 0.0000, 1.1500, 1.5500,0.0000,4);
Attach_Objects_BGuards( 1175141365,BONE_RIGHT_CALF, 0.0000, 0.0000, 0.0000, 1.0000, 0.0000,0.0000,5);
Attach_Objects_BGuards( 1175141365,BONE_LEFT_CALF, 0.0000, 0.0000, 0.0000, 2.0000, 0.0000,0.0000,6);
Attach_Objects_BGuards( 1175141365,BONE_RIGHT_THIGH, 0.0000, 0.0000, 0.0000, 1.0000, 0.0000,0.0000,7);
Attach_Objects_BGuards( 1175141365,BONE_LEFT_THIGH, 0.0000, 0.0000, 0.0000, 2.0000, 0.0000,0.0000,8);
Attach_Objects_BGuards( 1175141365,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 1.5000, 0.0000,0.0000,9);
Attach_Objects_BGuards( 1175141365,BONE_RIGHT_FOREARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,10);
Attach_Objects_BGuards( 1175141365,BONE_LEFT_FOREARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,11);
Attach_Objects_BGuards( 1175141365,BONE_RIGHT_UPPERARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,12);
Attach_Objects_BGuards( 1175141365,BONE_LEFT_UPPERARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,13);
Attach_Objects_BGuards( 1175141365,BONE_SPINE3, 0.0000, 0.0000, 0.0000, 1.5000, 0.0000,0.0000,14);
Alert("~BLIP_76~ ~c~TribeMan 1",false);
}
else if(menu_item[SelectedItem].num_val == 6){
Attach_Objects_BGuards( 1687106956,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.1500, 1.5500,0.0000,1);
Attach_Objects_BGuards( 1687106956,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.1500, 2.5500,0.0000,2);
Attach_Objects_BGuards( 1687106956,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.1500, 0.5500,0.0000,3);
Attach_Objects_BGuards( 1687106956,BONE_HEAD, 0.0000, 0.0000, 0.0000, 1.1500, 1.5500,0.0000,4);
Attach_Objects_BGuards( 1687106956,BONE_RIGHT_CALF, 0.0000, 0.0000, 0.0000, 1.0000, 0.0000,0.0000,5);
Attach_Objects_BGuards( 1687106956,BONE_LEFT_CALF, 0.0000, 0.0000, 0.0000, 2.0000, 0.0000,0.0000,6);
Attach_Objects_BGuards( 1687106956,BONE_RIGHT_THIGH, 0.0000, 0.0000, 0.0000, 1.0000, 0.0000,0.0000,7);
Attach_Objects_BGuards( 1687106956,BONE_LEFT_THIGH, 0.0000, 0.0000, 0.0000, 2.0000, 0.0000,0.0000,8);
Attach_Objects_BGuards( 1687106956,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 1.5000, 0.0000,0.0000,9);
Attach_Objects_BGuards( 1687106956,BONE_RIGHT_FOREARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,10);
Attach_Objects_BGuards( 1687106956,BONE_LEFT_FOREARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,11);
Attach_Objects_BGuards( 1687106956,BONE_RIGHT_UPPERARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,12);
Attach_Objects_BGuards( 1687106956,BONE_LEFT_UPPERARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,13);
Attach_Objects_BGuards( 1687106956,BONE_SPINE3, 0.0000, 0.0000, 0.0000, 1.5000, 0.0000,0.0000,14);
Alert("~BLIP_76~ ~c~TribeMan 2",false);
}
else if(menu_item[SelectedItem].num_val == 7)Delete_Objects_BGuards();
}
else if(SelectedItem == 17){//8 Funny
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){
Attach_Objects_BGuards( 0x322780D0,BONE_PELVIS, 0.0120, 0.1808, 0.0122, 4.8500, 1.5100,5.9500,0);
Alert("~BLIP_76~ ~c~Dick",false);
}
else if(menu_item[SelectedItem].num_val == 2){
Attach_Objects_BGuards( 0x6F181807,BONE_PELVIS, 0.0223, 0.2905, 0, 4.7500, 0.4900,5.9600,0);
Alert("~BLIP_76~ ~c~Big dick",false);
}
else if(menu_item[SelectedItem].num_val == 3){
Attach_Objects_BGuards( -1406190916,BONE_PELVIS, -0.0859, 0.3088, -0.1056, 4.6600, 0,0.0900,0);
Alert("~BLIP_76~ ~c~Leprechaun (on crotch)",false);
}
else if(menu_item[SelectedItem].num_val == 4){
Attach_Objects_BGuards( 0xDD16F3A4,0,0,-0.3,-1.7694,0,0,0,0);//Stop Sign
Attach_Objects_BGuards( 0xDD16F3A4,0,0,0.3,-1.7694,0,0,3.150,1);//Stop Sign
Attach_Objects_BGuards( 0xDD16F3A4,0,-0.3,0,-1.7694,0,0,4.7250,2);//Stop Sign
Attach_Objects_BGuards( 0xDD16F3A4,0,0.3,0,-1.7694,0,0,1.5750,3);//Stop Sign
Alert("~BLIP_76~ ~c~Stop sign!!",false);
}
else if(menu_item[SelectedItem].num_val == 5){
Attach_Objects_BGuards( 0x1B42315D, BONE_PELVIS,0.0025,0.0622,0, 0.0900,4.7200,3.0700,0);
Alert("~BLIP_76~ ~c~Hippofied",false);
}
else if(menu_item[SelectedItem].num_val == 6){
Attach_Objects_BGuards( 2005381825,BONE_SPINE3, 0, -0.2531, 0.1038, 0.0000, 1.5500,0.0000,0);
Alert("~BLIP_76~ ~c~Backpack",false);
}
else if(menu_item[SelectedItem].num_val == 7){//Devils Wings
Attach_Objects_BGuards( 317353028,BONE_SPINE3, 0.0494, -0.2047,-0.2530, 3.9999, 5.9800,3.0000,0);
Attach_Objects_BGuards( 317353028,BONE_SPINE3, 0.0494, -0.2047, 0.2499, 3.9999, 3.4000,3.0000,1);
}
else if(menu_item[SelectedItem].num_val == 8){//Devils Wings V3
Attach_Objects_BGuards( 317353028,BONE_SPINE3, 0.0017, -0.1618, 0.1794, 0.8000, 6.1000,0.0000,0);
Attach_Objects_BGuards( 317353028,BONE_SPINE3, -0.0833, -0.2998, 0.2888, 0.8600, 6.1400,0.0900,1);
Attach_Objects_BGuards( 317353028,BONE_SPINE3, -0.2406, -0.4037, 0.3400, 0.8700, 6.0800,0.0900,2);
Attach_Objects_BGuards( 317353028,BONE_SPINE3, 0.0433, -0.0818, -0.2505, 2.8900, 0.0000,0.0000,3);
Attach_Objects_BGuards( 317353028,BONE_SPINE3, -0.0239, -0.1320, -0.4693, 2.8900, 6.1400,0.0600,4);
Attach_Objects_BGuards( 317353028,BONE_SPINE3, -0.1900, -0.1780, -0.6459, 2.8900, 6.2500,0.0600,5);
}
else if(menu_item[SelectedItem].num_val == 9){
Delete_Objects_BGuards();
}
}
else if(SelectedItem == 18){//4 Birds
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){
Attach_Objects_BGuards( -221252636,BONE_HEAD,-0.1, -0.0007,0.1728, 0, 1.3700,0,0);
Alert("~BLIP_76~ ~c~Pigeon on shoulder",false);
}
if(menu_item[SelectedItem].num_val == 2){
Attach_Objects_BGuards( -221252636,BONE_HEAD,-0.1, -0.0007,0.1728, 0, 1.3700,0,0);
Attach_Objects_BGuards( -221252636,BONE_HEAD, 0.1, -0.0007,0.1728, 0, 1.3700,0,0);
Alert("~BLIP_76~ ~c~2 Pigeons on shoulder",false);
}
if(menu_item[SelectedItem].num_val == 3){
if(renew_attached)clear_attachments();
Attach_Objects_BGuards( -221252636,BONE_RIGHT_FOOT, 0.0594, 0.1545, 0.0113, 4.9900, 6.1900,1.5100,0);
Attach_Objects_BGuards( -221252636,BONE_LEFT_FOOT, 0.0594, 0.1545, 0.0113, 4.9900, 2.9299,1.5100,1);
Attach_Objects_BGuards( -221252636,BONE_RIGHT_HAND, 0.1167, 0.0210, 0.0053, 0.0000, 0.0000,1.5200,2);
Attach_Objects_BGuards( -221252636,BONE_LEFT_HAND, 0.1167, 0.0210, 0.0053, 3.3000, 0.0000,4.6800,3);
Attach_Objects_BGuards( -221252636,BONE_RIGHT_FOREARM, 0.1167, 0.0210, 0.0053, 3.3000, 0.0000,4.6800,4);
Attach_Objects_BGuards( -221252636,BONE_LEFT_FOREARM, 0.1167, 0.0210, 0.0053, 3.3000, 3.3900,4.6800,5);
Attach_Objects_BGuards( -221252636,BONE_SPINE3, 0.2139, -0.0035, -0.1546, 6.2500, 4.5000,2.9500,6);
Attach_Objects_BGuards( -221252636,BONE_SPINE3, 0.2139, -0.0136, 0.1466, 6.0000, 4.8000,3.2400,7);
Attach_Objects_BGuards( -221252636,BONE_PELVIS, 0.0000, -0.1275, -0.0114, 1.6200, 1.5900,0.0000,8);
Attach_Objects_BGuards( -221252636,BONE_HEAD, 0.1689, 0.0000, 0.0000, 0.0000, 4.8400,2.9300,9);
Alert("~BLIP_76~ ~c~Birdman",false);
}
else if(menu_item[SelectedItem].num_val == 4){
Delete_Objects_BGuards();
}
}
else if(SelectedItem == 19){//6 Effects
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){
Attach_Objects_BGuards( 0x3427A4F4,0,0,0,-18.800,0,0,0,0);
Alert("~BLIP_76~ ~c~White Smoke",false);
}
else if(menu_item[SelectedItem].num_val == 2){
Attach_Objects_BGuards( 0xFD810533,0,7.8201,15.7448,-28.8000,0.7900,0.4000,1.3100,0);
Alert("~BLIP_76~ ~c~Red Smoke",false);
}
else if(menu_item[SelectedItem].num_val == 3){
Attach_Objects_BGuards( 0x397C604F,0,0.4922,-0.0288,-1.0625,3.1599,0,6.1300,0);
Alert("~BLIP_76~ ~w~Shower",false);
}
else if(menu_item[SelectedItem].num_val == 4){
Attach_Objects_BGuards( 1439316710,0, 0.1092, 0.1697, 0.16, 0, 3.0700,5.5125,0);
Attach_Objects_BGuards( 1439316710,0, 0.1092, 0.1697, 0, 0, 3.0700,5.5125,1);
Attach_Objects_BGuards( 1439316710,0, 0.1092, 0.1697, -0.16, 0, 3.0700,5.5125,2);
Attach_Objects_BGuards( 1439316710,0, 0.1092, 0.1697, -0.32, 0, 3.0700,5.5125,3);
Alert("~BLIP_76~ ~c~Sparks",false);
}
else if(menu_item[SelectedItem].num_val == 5){
Attach_Objects_BGuards( -1644345434,0,0, 0, 0, 0, 0,0,0);
Alert("~BLIP_76~ ~c~Darkness",false);
}
else if(menu_item[SelectedItem].num_val == 6){
Delete_Objects_BGuards();
}
}
else if(SelectedItem == 20){//7 Vegetation
if(renew_attached)Delete_Objects_BGuards();
if(menu_item[SelectedItem].num_val == 1){
Attach_Objects_BGuards(-1447273211,BONE_ROOT,0,0,-1.2772,0,0,0,0);
Alert("~BLIP_76~ ~c~Big And Bushy",false);
}
else if(menu_item[SelectedItem].num_val == 2){
Attach_Objects_BGuards(1196022682,BONE_PELVIS,0,0, 0, 0, 1.6400,0,0);
Alert("~BLIP_76~ ~c~Flower pot",false);
}
else if(menu_item[SelectedItem].num_val == 3){
Attach_Objects_BGuards(180874309,BONE_ROOT,0,0,-1.0656,0,0,0,0);
Alert("~BLIP_76~ ~c~Scotchpine Attached",false);
}
else if(menu_item[SelectedItem].num_val == 4){
Attach_Objects_BGuards(-1161067121,BONE_ROOT,0,0,-0.9906,0,0,0,0);
Alert("~BLIP_76~ ~c~AG-Tree Attached",false);
}
else if(menu_item[SelectedItem].num_val == 5){
Attach_Objects_BGuards(1012779602,BONE_ROOT,0,0,-1.1672,0,0,0,0);
Alert("~BLIP_76~ ~c~Beech Tree Attached",false);
}
else if(menu_item[SelectedItem].num_val == 6){
Attach_Objects_BGuards(727520683,BONE_ROOT,0,0,-1.1372,0,0,0,0);
Alert("~BLIP_76~ ~c~Live Oak Attached",false);
}
else if(menu_item[SelectedItem].num_val == 7){
Delete_Objects_BGuards();
}
}
}
void MD_Guard_Animations_Action(int PlayerPed){
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Jumpover 5
if(SelectedItem == 6){
ToggleBit(MD_Misc_OptionsBitSet,MD_MISC_AUTO_ATTACH_TOOL_WITH_ANIMS);
menu_item[SelectedItem].extra_val = GetBit(MD_Misc_OptionsBitSet,MD_MISC_AUTO_ATTACH_TOOL_WITH_ANIMS);
//Alert_Two("~BLIP_76~ ~c~Use Attachments on Animations", Attachment_OnAnims ? PrintON : PrintOFF ,false);
}
else if(SelectedItem == 7){
if(menu_item[SelectedItem].num_val == 1){
animationspeed = 1.00f;
Alert("~b~MD: ~s~Animspeed set to default",false);
}
else if(menu_item[SelectedItem].num_val == 2){
animationspeed = 1.50f;
Alert("~b~MD: ~s~Animspeed set to 2~n~ Press animation 2 times to play with selected speed.",false);
}
else if(menu_item[SelectedItem].num_val == 3){
animationspeed = 2.00f;
Alert("~b~MD: ~s~Animspeed set to 3~n~ Press animation 2 times to play with selected speed.",false);
}
else if(menu_item[SelectedItem].num_val == 4){
animationspeed = 2.50f;
Alert("~b~MD: ~s~Animspeed set to 4~n~ Press animation 2 times to play with selected speed.",false);
}
else if(menu_item[SelectedItem].num_val == 5){
animationspeed = 3.00f;
Alert("~b~MD: ~s~Animspeed set to 5~n~ Press animation 2 times to play with selected speed.",false);
}
else if(menu_item[SelectedItem].num_val == 6){
animationspeed = 3.50f;
Alert("~b~MD: ~s~Animspeed set to 6~n~ Press animation 2 times to play with selected speed.",false);
}
else if(menu_item[SelectedItem].num_val == 7){
animationspeed = 4.00f;
Alert("~b~MD: ~s~Animspeed set to 7~n~ Press animation 2 times to play with selected speed.",false);
}
else if(menu_item[SelectedItem].num_val == 8){
animationspeed = 4.50f;
Alert("~b~MD: ~s~Animspeed set to 8~n~ Press animation 2 times to play with selected speed.",false);
}
else if(menu_item[SelectedItem].num_val == 9){
animationspeed = 5.00f;
Alert("~b~MD: ~s~Animspeed set to 9~n~ Press animation 2 times to play with selected speed.",false);
}
else if(menu_item[SelectedItem].num_val == 10){
animationspeed = 5.50f;
Alert("~b~MD: ~s~Animspeed set to 10~n~ Press animation 2 times to play with selected speed.",false);
}
}
else if(SelectedItem == 8){
Loop_Anims = !Loop_Anims;
menu_item[SelectedItem].extra_val = Loop_Anims;
Alert_Two("~BLIP_76~ ~c~Animations Looped", Loop_Anims ? PrintON : PrintOFF ,false);
if(Loop_Anims) Animationloop = 99999.00f;
else Animationloop = 0.00f;
}
//Jumpover //9
else if(SelectedItem == 10){
MD_Stride_Strings_Action(PlayerPed);
}
else if(SelectedItem == 11){
MD_Anim_Dance_Strings_Action(PlayerPed);
}
else if(SelectedItem == 12){
MD_Anim_Gesture_Strings_Action(PlayerPed);
}
else if(SelectedItem == 13){
MD_Anim_Tool_Strings_Action(PlayerPed);
}
else if(SelectedItem == 14){
MD_Anim_Heli_Strings_Action(PlayerPed);
}
else if(SelectedItem == 15){
MD_Anim_Bike_Strings_Action(PlayerPed);
}
else if(SelectedItem == 16){
MD_Anim_Sliding_Strings_Action(PlayerPed);
}
else if(SelectedItem == 17){
MD_Anim_Swim_Strings_Action(PlayerPed);
}
else if(SelectedItem == 18){
MD_Anim_Sit_Strings_Action(PlayerPed);
}
else if(SelectedItem == 19){
MD_Anim_Pause_Strings_Action(PlayerPed);
}
else if(SelectedItem == 20){
MD_Anim_Sex_Strings_Action(PlayerPed);
}
}

View File

@@ -0,0 +1,677 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV NATHAN VII
*/
#pragma once
void MD_Attachments_Setup(void){
item_highlighted = 7;
MENU_SUB_HEADER = "Player Attachments";
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
Add_JumpOver("~BLIP_94~ MD P L A Y E R A T T A C H M E N T S ~BLIP_94~"); //5
AddBool("~BLIP_68~ Clear Previous Attachments",renew_attached); //6
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Cubes ",8); //7
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Hands",18); //8
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Tools",20); //9
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Lights ",11); //10
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Various ",2); //11
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Fire",6); //12
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Feet",4); //13
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Head ",17); //14
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Statue ",8); //15
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Tribe",7); //16
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Funny",9); //17
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Birds ",4); //18
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Effects",6); //19
AddFunction_Value_CB("~BLIP_62~ ~b~MD ~c~Vegetation ",7); //20
return;
}
void MD_Attachments_Action(void){
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Jumpover 5
if(SelectedItem == 6){
renew_attached = !renew_attached;
menu_item[SelectedItem].extra_val = renew_attached;
Alert_Two("~BLIP_76~ ~c~Clear Objects Before Attaching New Ones", renew_attached ? PrintON : PrintOFF ,false);
}
if(PLAYER_HAS_CHAR(players[ChangeNetPlayer].id))
{//8
if(SelectedItem == 7){//8 Cubes
float obj_x , obj_y, obj_z, obj_rx, obj_ry, obj_rz;
int pedbone;
Object object;
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1)object = 0x2718C626, pedbone = 0, obj_x = -0.0257, obj_y = 0.0198, obj_z = -1.4678, obj_rx = 0, obj_ry = 0, obj_rz = 5.4700;
else if(menu_item[SelectedItem].num_val == 2)object = 0x5C5030D4, pedbone = 0, obj_x = -0.0257, obj_y = 0.0198, obj_z = -1.4678, obj_rx = 0, obj_ry = 0, obj_rz = 5.4700;
else if(menu_item[SelectedItem].num_val == 3)object = 0xCCEA11CA, pedbone = 0, obj_x = -0.0257, obj_y = 0.0198, obj_z = -1.4678, obj_rx = 0, obj_ry = 0, obj_rz = 5.4700;
else if(menu_item[SelectedItem].num_val == 4)object = 0xBB1F6E71, pedbone = 0, obj_x = -0.0257, obj_y = 0.0198, obj_z = -1.4678, obj_rx = 0, obj_ry = 0, obj_rz = 5.4700;
else if(menu_item[SelectedItem].num_val == 5)object = 0xDD28B247, pedbone = 0, obj_x = -0.0257, obj_y = 0.0198, obj_z = -1.4678, obj_rx = 0, obj_ry = 0, obj_rz = 5.4700;
else if(menu_item[SelectedItem].num_val == 6)object = 0xA6E545FD, pedbone = 0, obj_x = -0.0257, obj_y = 0.0198, obj_z = -1.4678, obj_rx = 0, obj_ry = 0, obj_rz = 5.4700;
else if(menu_item[SelectedItem].num_val == 7){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0x2718C626,0,1,0.0,0.0,0.0,0.0,3.0,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0xDD28B247,0,-1,0.0,0.0,0.0,0.0,3.0,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0xCCEA11CA,0,0,1,0.0,0.0,0.0,3.0,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0xBB1F6E71,0,0,-1,0.0,0.0,0.0,3.0,3);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0xA6E545FD,0,0,0.0,1,0.0,0.0,3.0,4);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0x5C5030D4,0,0,0.0,-1,0.0,0.0,3.0,5);
Alert("~BLIP_76~ ~c~Attached Cubeman",false);
}
if(menu_item[SelectedItem].num_val > 0 && menu_item[SelectedItem].num_val < 8){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), object,pedbone,obj_x, obj_y, obj_z, obj_rx, obj_ry,obj_rz,0);
Alert("~BLIP_76~ ~c~Selected Object Attached",false);
}
else if(menu_item[SelectedItem].num_val == 8){
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
else if(SelectedItem == 8){//12 Hands
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){//Umbrella
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-797519906,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 2){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -853576856,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.1400, 6.2300,0.0000,0);
Alert("~BLIP_76~ ~c~Umbrella 2",false);
}
else if(menu_item[SelectedItem].num_val == 3){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -1159420742,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.1400, 6.2300,0.0000,0);
Alert("~BLIP_76~ ~c~Umbrella 3",false);
}
else if(menu_item[SelectedItem].num_val == 4){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -853576856,BONE_RIGHT_HAND, 0.1311, -0.0010, 0.1784, 0.0000, 1.5200,0.0000,0);
Alert("~BLIP_76~ ~c~Gunbrella 1",false);
}
else if(menu_item[SelectedItem].num_val == 5){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -1159420742,BONE_RIGHT_HAND, 0.1311, -0.0010, 0.1784, 0.0000, 1.5200,0.0000,0);
Alert("~BLIP_76~ ~c~Gunbrella 2",false);
}
else if(menu_item[SelectedItem].num_val == 6){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -797519906,BONE_RIGHT_HAND, 0.1311, -0.0010, 0.1784, 0.0000, 1.5200,0.0000,0);
Alert("~BLIP_76~ ~c~Gunbrella 3",false);
}
else if(menu_item[SelectedItem].num_val == 7){//Shopping bag
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),1643885955,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 8){//Luggage
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-647773926,BONE_RIGHT_HAND, 0.2806, 0.0000, 0, 6.3000, 4.7000,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-647773926,BONE_LEFT_HAND, 0.2806, 0.0000,0, 6.3000, 4.7000,0.0000,1);
}
else if(menu_item[SelectedItem].num_val == 9){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -311280716,BONE_RIGHT_HAND, -0.1000, 0.0000, 0, 0.0000, 1.2500,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -311280716,BONE_LEFT_HAND, -0.1000, 0.0000, 0, 0.0000, 1.6000,0.0000,1);
}
else if(menu_item[SelectedItem].num_val == 10){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1443084780,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -886669251,BONE_RIGHT_HAND, 0.4628, -0.0037, 0.0618, 0.0000, 3.1899,0.0000,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -771659842,BONE_RIGHT_HAND, -0.0232, 0.0232, 0.0918, 0.0000, 4.7500,0.0000,2);
Alert("~BLIP_76~ ~c~Glowgun",false);//hand
}
else if(menu_item[SelectedItem].num_val == 11){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1758564455,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 758835816,BONE_RIGHT_HAND, 0.0650, -0.0227, 0.6113, 4.6200, 1.5100,0.5300,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 758835816,BONE_RIGHT_HAND, 0.1100, -0.0618, 0.6185, 1.5400, 1.5100,0.5300,2);
Alert("~BLIP_76~ ~c~Lightsaber",false);//hand
}
else if(menu_item[SelectedItem].num_val == 12){//Luggage
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1735854596,BONE_RIGHT_HAND, -0.0117, -0.0007, 0.0075, 6.2600, 4.0699,0.0600,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1166402234,BONE_RIGHT_HAND, 0.4756, -0.0022, 0.0484, 4.8100, 4.7600,0.0000,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1166402234,BONE_RIGHT_HAND, 0.4756, -0.0022, 0.0591, 1.6600, 4.7600,0.0000,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -886669251,BONE_RIGHT_HAND, 0.5622, 0.0751, 0.0427, 0.0000, 0.0000,3.2500,3);
Alert("~BLIP_76~ ~c~LaserGun",false);
}
else if(menu_item[SelectedItem].num_val == 13){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1735854596,BONE_RIGHT_HAND, -0.0117, -0.0007, 0.0075, 6.2600, 4.0699,0.0600,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1516578222,BONE_RIGHT_HAND, 0.4661, 0.0144, 0.0529, 0.0000, 0.0000,4.7800,1);
Alert("~BLIP_76~ ~c~RocketGun",false);
}
else if(menu_item[SelectedItem].num_val == 14){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 897930585,BONE_RIGHT_HAND, 0.2461, 0.0285, -0.0447, 0.0000, 0.1000,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 897930585,BONE_RIGHT_HAND, 0.2461, 0.0285, -0.0447, 1.0000, 0.1000,0.0000,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 897930585,BONE_RIGHT_HAND, 0.2461, 0.0285, -0.0447, 2.0000, 0.1000,0.0000,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 897930585,BONE_RIGHT_HAND, 0.2461, 0.0285, -0.0447, 3.0000, 0.1000,0.0000,3);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 897930585,BONE_RIGHT_HAND, 0.2461, 0.0285, -0.0447, 4.0000, 0.1000,0.0000,4);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 897930585,BONE_RIGHT_HAND, 0.2461, 0.0285, -0.0447, 5.0000, 0.1000,0.0000,5);
Alert("~BLIP_76~ ~c~TurboM4",false);
}
else if(menu_item[SelectedItem].num_val == 15){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1554952292,BONE_RIGHT_HAND, 0.1344, 0.0079, 0.0156, 0.4500, 0.0000,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1554952292,BONE_RIGHT_HAND, 0.1344, 0.0079, 0.0156, 1.5000, 0.0000,0.0000,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1554952292,BONE_RIGHT_HAND, 0.1344, 0.0079, 0.0156, 2.5500, 0.0000,0.0000,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1554952292,BONE_RIGHT_HAND, 0.1344, 0.0079, 0.0156, 3.6000, 0.0000,0.0000,3);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1554952292,BONE_RIGHT_HAND, 0.1344, 0.0079, 0.0156, 4.6500, 0.0000,0.0000,4);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1554952292,BONE_RIGHT_HAND, 0.1344, 0.0079, 0.0156, 5.7000, 0.0000,0.0000,5);
Alert("~BLIP_76~ ~c~TurboDeagle",false);
}
else if(menu_item[SelectedItem].num_val == 16){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1443084780,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.1100,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 945404608,BONE_RIGHT_HAND, -0.3094, 0.0000, 0.0000, 0.0300, 4.8100,0.0400,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1005973733,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 5.8700, 5.8400,1.6000,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1781111577,BONE_RIGHT_HAND, 0.1972, 0.0000, 0.0000, 5.8600, 5.8400,1.6000,3);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1781111577,BONE_RIGHT_HAND, 0.1972, 0.0000, 0.0000, 5.8600, 5.8400,1.6000,4);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -771659842,BONE_RIGHT_HAND, 0.3189, 0.0000, 0.0000, 0.0300, 1.4700,0.0000,5);
Alert("~BLIP_76~ ~c~Disco Launcher",false);
}
else if(menu_item[SelectedItem].num_val == 17){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 2084514704,BONE_HEAD, -0.4178, 0.3060, -0.1397, 1.4000, 5.6700,1.5500,0);
Alert("~BLIP_76~ ~c~SaxPlayer",false);
}
else if(menu_item[SelectedItem].num_val == 18){
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
else if(SelectedItem == 9){ //12 Tools
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){//Saw
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 843240193,BONE_RIGHT_HAND, 0.1672, -0.0931, 0.7556, 6.1500, 3.2400,0.0000,0);
Alert("~BLIP_76~ ~c~Cane",false);
}
else if(menu_item[SelectedItem].num_val == 2){//Axe
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 843240193,BONE_RIGHT_HAND, 0.1672, -0.0931, 0.7556, 6.1500, 3.2400,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -886669251,BONE_RIGHT_HAND, 0.1694, -0.1615, 1.1096, 5.9500, 1.7300,5.1900,1);
Alert("~BLIP_76~ ~c~Cane v2",false);
}
else if(menu_item[SelectedItem].num_val == 3){//Jackhammer
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 2113166995,BONE_RIGHT_HAND, 0.0661, -0.0422, 0.2706, 0.1200, 0.0200,0.0000,0);
Alert("~BLIP_76~ ~c~Slegehammer",false);
}
else if(menu_item[SelectedItem].num_val == 4){//Pickaxe
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -257284559,BONE_RIGHT_HAND, 0.0417, -0.0290, 0.1885, 0.1200, 6.2500,0.0000,0);
Alert("~BLIP_76~ ~c~Pickaxe",false);
}
else if(menu_item[SelectedItem].num_val == 5){//Rake
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -1813753615,BONE_RIGHT_HAND, 0.0311, 0.0000, 0.0000, 0.2800, 5.9000,0.1600,0);
Alert("~BLIP_76~ ~c~Broom",false);
}
else if(menu_item[SelectedItem].num_val == 6){//Bighammer
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1892875956,BONE_RIGHT_HAND, 0.0417, 0.0000, 0.0000, 0.2000, 5.9500,6.1300,0);
Alert("~BLIP_76~ ~c~Rake",false);
}
else if(menu_item[SelectedItem].num_val == 7){//Nailgun
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1530440164,BONE_RIGHT_HAND, 0.0228, 0.0544, -0.1390, 4.8500, 3.6899,2.6400,0);
Alert("~BLIP_76~ ~c~Spade",false);
}
else if(menu_item[SelectedItem].num_val == 8){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1409043984,BONE_RIGHT_HAND, 0.1472, -0.0093, -0.1719, 0.1500, 0.0800,0.0000,0);
Alert("~BLIP_76~ ~c~Wrench",false);
}
else if(menu_item[SelectedItem].num_val == 9){//Saw
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1977261975,BONE_RIGHT_HAND, 0.3317, 0.0000,0, 0.1000, 0.4500,3.1700,0);
}
else if(menu_item[SelectedItem].num_val == 10){//Axe
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 824817939,BONE_RIGHT_HAND, 0.1117, -0.0178, 0.2023, 6.1400, 6.2600,3.2499,0);
}
else if(menu_item[SelectedItem].num_val == 11){//Jackhammer
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),1234161243,BONE_RIGHT_HAND, 0, 0.0061,-0.0086, 0.0000, 0.0000,5.9600,0);
}
else if(menu_item[SelectedItem].num_val == 12){//Pickaxe
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-257284559,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 13){//Rake
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),1892875956,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 14){//Bighammer
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 2113166995,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 15){//Nailgun
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -1576276196,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
Alert("~BLIP_76~ ~c~Nailgun",false); // hand
}
else if(menu_item[SelectedItem].num_val == 16){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 702063252,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
Alert("~BLIP_76~ ~c~Hammer",false); //hand
}
else if(menu_item[SelectedItem].num_val == 17){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 2002027012,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
Alert("~BLIP_76~ ~c~Drill",false);//hand
}
else if(menu_item[SelectedItem].num_val == 18){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -1813753615,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
Alert("~BLIP_76~ ~c~Broom",false);//hand
}
else if(menu_item[SelectedItem].num_val == 19){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -805425417,BONE_LEFT_HAND, 0.1594, 0.0154, -0.0039, 4.4200, 5.4500,0.0000,0);
Alert("~BLIP_76~ ~c~Laptop, use swat stride",false);//hand
}
else if(menu_item[SelectedItem].num_val == 20){
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
else if(SelectedItem == 10){//11 Lights
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-886669251,BONE_SPINE3, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 2){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 608452317,BONE_SPINE2, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,3.0000,0);
Alert("~BLIP_76~ ~c~Yellow Glow",false);//body
}
else if(menu_item[SelectedItem].num_val == 3){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -55367575,BONE_SPINE2, 0.0000, 0.0000, 0.0000, 0.0000, 4.7500,3.0000,0);
Alert("~BLIP_76~ ~c~White Glow",false);//body
}
else if(menu_item[SelectedItem].num_val == 4){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 608452317,BONE_HEAD, 0.0050, -0.0394, 0.0011, 0.0000, 0.0000,3.2000,0);
Alert("~BLIP_76~ ~c~Lampface",false);//head
}
else if(menu_item[SelectedItem].num_val == 5){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -771659842,0, -0.0348, 0.0285, -1.8233, 0, 0,0,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -771659842,0, -0.0348, 0.0285, -1.8233, 0, 0,0,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -771659842,0, -0.0348, 0.0285, -1.8233, 0, 0,0,2);
Alert("~BLIP_76~ ~c~Blue Neon",false);
}
else if(menu_item[SelectedItem].num_val == 6){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 760821872,0,-0.930, -0.2597, -2.9028, 3.9899, 6.2600,5.7800,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 760821872,0,-0.930, -0.2597, -2.9028, 3.9899, 6.2600,5.7800,1);
Alert("~BLIP_76~ ~c~White Neon",false);
}
else if(menu_item[SelectedItem].num_val == 7){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1781111577,0, 0.0953, 0.1401, -1.3233,4.2000, 0.0400,2.3625,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1781111577,0, 0.0953, 0.1401, -1.3233,4.2000, 0.0400,2.3625,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1781111577,0, 0.0953, 0.1401, -1.3233,4.2000, 0.0400,2.3625,2);
Alert("~BLIP_76~ ~c~Purple Flash ",false);
}
else if(menu_item[SelectedItem].num_val == 8){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1005973733,0,0.0577, -0.1013, -2.5672,4.200, 0,0,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1005973733,0,0.0577, -0.1013, -2.5672,4.200, 0,0,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1005973733,0,0.0577, -0.1013, -2.5672,4.200, 0,0,2);
Alert("~BLIP_76~ ~c~Green Flash",false);
}
else if(menu_item[SelectedItem].num_val == 9){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -886669251,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 1.1400, 2.8499,6.1600,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -886669251,BONE_LEFT_HAND, 0.0000, 0.0000, 0.0000, 1.1400, 3.2799,6.1600,1);
Alert("~BLIP_76~ ~c~Red Hands",false);
}
else if(menu_item[SelectedItem].num_val == 10){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -771659842,BONE_RIGHT_HAND, -0.6161, 0.0079, -0.1696, 6.2900, 1.2900,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -771659842,BONE_LEFT_HAND, -0.6161, 0.0079, -0.1696, 6.3500, 1.2900,0.0000,1);
Alert("~BLIP_76~ ~c~Blue Hands",false);
}
else if(menu_item[SelectedItem].num_val == 11){
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
else if(SelectedItem == 11){//2 Various
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1512691932,BONE_HEAD, 28.0000, 0.0000, 0, 0.0000, 1.5000,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 2){
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
else if(SelectedItem == 12){//5 Fire
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 945404608,BONE_RIGHT_FOOT, 0.0000, 0.0000, 0.0000, 0.0000, 4.7200,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 945404608,BONE_LEFT_FOOT, 0.0000, 0.0000, 0.0000, 0.0700, 4.8400,0.0000,1);
}
else if(menu_item[SelectedItem].num_val == 2){
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 945404608,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.2000, 1.2200,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 945404608,BONE_LEFT_HAND, 0.0000, 0.0000, 0.0000, 0.2000, 1.7100,0.0000,1);
}
else if(menu_item[SelectedItem].num_val == 3){
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 945404608,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 5.0200, 1.4500,0.0000,0);
}
else if(menu_item[SelectedItem].num_val == 4){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -215358907,0,-1.3342, 1.0025, -3.6306, 0, 0,0,0);
Alert("~BLIP_76~ ~c~Flame",false);
}
else if(menu_item[SelectedItem].num_val == 5){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 5.5125,0.0000,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 4.7250,0.0000,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 3.9375,0.0000,3);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 3.1500,0.0000,4);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 2.3625,0.0000,5);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 1.5750,0.0000,6);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0000, 0.7875,0.0000,7);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 5.5125, 0.0000,0.0000,8);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 4.7250, 0.0000,0.0000,9);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 3.9375, 0.0000,0.0000,10);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 2.3625, 0.0000,0.0000,11);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 1.5750, 0.0000,0.0000,12);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.7875, 0.0000,0.0000,13);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 5.5125, 4.7250,0.0000,14);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 2.3625, 4.7250,0.0000,15);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 3.9375, 4.7250,0.0000,16);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.7875, 4.7250,0.0000,17);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 0.0800, 0.1000,0.8000,18);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 5.4400, 5.8200,0.3525,19);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 4.1100, 0.1300,0.5825,20);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 2.2199, 5.9500,0.5825,21);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 2.8899, 5.3300,1.1525,22);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 3.3299, 0.9600,1.1525,23);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 2.3799, 2.6400,1.1525,24);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 451384443,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 3.4299, 2.2800,1.1525,25);
Alert("~BLIP_76~ ~c~FireBall",false);
}
else if(menu_item[SelectedItem].num_val == 6){
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
else if(SelectedItem == 13){//4 Feet
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 608452317,BONE_RIGHT_FOOT, 0.1644, 0.0413, -0.0058, 0.0000, 0.0000,4.7500,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 608452317,BONE_LEFT_FOOT, 0.1644, 0.0413, -0.0058, 0.0000, 0.0000,4.7500,1);
Alert("~BLIP_76~ ~c~Sneakers",false);//feet
}
else if(menu_item[SelectedItem].num_val == 2){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1951625347,BONE_RIGHT_TOE, 0.0000, 0.0000, 0.0000, 0.0000, 5.0000,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1951625347,BONE_LEFT_TOE, 0.0000, 0.0000, 0.0000, 0.0000, 5.0000,0.0000,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1951625347,BONE_RIGHT_FOOT, 0.0000, 0.0000, 0.0000, 0.0000, 3.5099,0.0000,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1951625347,BONE_LEFT_FOOT, 0.0000, 0.0000, 0.0000, 0.0000, 5.9600,0.0000,3);
}
else if(menu_item[SelectedItem].num_val == 3){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),983294893,BONE_RIGHT_TOE, 0.0000, 0.0000, 0.0000, 0.0000, 5.0000,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),983294893,BONE_LEFT_TOE, 0.0000, 0.0000, 0.0000, 0.0000, 5.0000,0.0000,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),983294893,BONE_RIGHT_FOOT, 0.0000, 0.0000, 0.0000, 0.0000, 3.5099,0.0000,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),983294893,BONE_LEFT_FOOT, 0.0000, 0.0000, 0.0000, 0.0000, 5.9600,0.0000,3);
}
else if(menu_item[SelectedItem].num_val == 4){
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
else if(SelectedItem == 14){//13 Head
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-316400372,BONE_HEAD, 0.0161, 0.0286, 0.0004, 3.1599, 4.7300,0.0000,0);//no
Alert("~BLIP_76~ ~c~Ugly Face",false);
}
else if(menu_item[SelectedItem].num_val == 2){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),760821872,BONE_HEAD, -0.1133, -0.0451, 0.0136, 3.0299, 4.6500,0.0000,0);//no
Alert("~BLIP_76~ ~c~Welder Mask",false);
}
else if(menu_item[SelectedItem].num_val == 3){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),1781111577,BONE_HEAD, 0.0000, 0.0000, 0.0000, 2.4699, 4.6100,0.0000,0);//ok
Alert("~BLIP_76~ ~c~Purple Flasher",false);
}
else if(menu_item[SelectedItem].num_val == 4){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),1005973733,BONE_HEAD, 0, 0.1382, -0.0075, 2.5600, 4.6200,0.0000,0);//ok
Alert("~BLIP_76~ ~c~Green Flasher",false);
}
else if(menu_item[SelectedItem].num_val == 5){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1218037800,BONE_HEAD, -0.1944, 0.0000,0, 4.7700, 6.1700,4.7250,0);//no
Alert("~BLIP_76~ ~c~White Torch",false);
}
else if(menu_item[SelectedItem].num_val == 6){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-21824081,BONE_HEAD, 0.5289, 0.0000, 0, 0.1300, 1.5000,0.0000,0);//no
Alert("~BLIP_76~ ~c~Discoball",false);
}
else if(menu_item[SelectedItem].num_val == 7){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),529682743,BONE_HEAD,0.1267, 0.0000, 0, 0.3200, 1.5000,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-771659842,BONE_HEAD, 0.1300, 0.0000, 0, 0.3200, 1.5000,0.0000,1);
Alert("~BLIP_76~ ~c~Conehead",false);//no
}
else if(menu_item[SelectedItem].num_val == 8){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 2088780331,BONE_HEAD, 0.1411, 0.0000, 0, 2.9999, 4.6000,0.0000,0);
Alert("~BLIP_76~ ~c~Pornhead",false);
}
else if(menu_item[SelectedItem].num_val == 9){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1732712585,BONE_HEAD, 0.0000, 0.0000, 0.0000, 5.9700, 1.9200,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1732712585,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.3300, 5.1400,3.1099,1);
Alert("~BLIP_76~ ~c~Devils Horns",false);//ok
}
else if(menu_item[SelectedItem].num_val == 10){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-596812191,BONE_HEAD, -0.0050, 0.0896, 0.0172, 0.0900, 1.5300,3.1500,0);
Alert("~BLIP_76~ ~c~NightVision",false);
}
else if(menu_item[SelectedItem].num_val == 11){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 702063252,BONE_HEAD, 0.0344, 0.0000, -0.2517, 0.0000, 0.3000,0.0000,0);
Alert("~BLIP_76~ ~c~Hammerhead",false);//head
}
else if(menu_item[SelectedItem].num_val == 12){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -1321337085,BONE_HEAD, 0.0394, 0.2304, 0.0003, 4.7400, 0.0700,6.1300,0);
Alert("~BLIP_76~ ~c~Pinokkio",false);//head
}
else if(menu_item[SelectedItem].num_val == 13){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 357185076,BONE_HEAD, 0.2728, -0.0402, -0.0073, 2.9999, 4.7500,6.2800,0);
Alert("~BLIP_76~ ~c~Red Hat",false);
}
else if(menu_item[SelectedItem].num_val == 14){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 608440971,BONE_HEAD, 0.2911, -0.0275, 0.0000, 6.2900, 4.7000,3.0000,0);
Alert("~BLIP_76~ ~c~Yellow Hat",false);
}
else if(menu_item[SelectedItem].num_val == 15){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 831073557,BONE_HEAD, 0.2639, -0.0307, 0.0000, 0.1100, 1.5800,0,0);
Alert("~BLIP_76~ ~c~Purple Hat",false);
}
else if(menu_item[SelectedItem].num_val == 16){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -1060426998,BONE_HEAD, 0.4328, -0.0418, 0.0065, 6.1900, 4.6900,0,0);
Alert("~BLIP_76~ ~c~Black Hat",false);
}
else if(menu_item[SelectedItem].num_val == 17){
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
else if(SelectedItem == 15){//8 Statue
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-556881908,BONE_HEAD,-0.45,-0.26, 0, 0, 6.300*0.75,3.150,0);
Alert("~BLIP_76~ ~c~Bust/head 1",false);
}
else if(menu_item[SelectedItem].num_val == 2){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-316947286,BONE_HEAD ,-0.45,-0.25, 0, 0, 6.300*0.75,3.150,0);
Alert("~BLIP_76~ ~c~Bust/head 2",false);
}
else if(menu_item[SelectedItem].num_val == 3){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1671584977,BONE_HEAD,-0.4,-0.25, 0, 0, 6.300*0.75,3.150,0);
Alert("~BLIP_76~ ~c~Bust/head 3",false);
}
else if(menu_item[SelectedItem].num_val == 4){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1855419067,BONE_HEAD,-0.4,-0.25, 0, 0, 6.300*0.75,3.150,0);
Alert("~BLIP_76~ ~c~Bust/head 4",false);
}
else if(menu_item[SelectedItem].num_val == 5){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1078040080,BONE_HEAD,-0.4,-0.25, 0, 0, 6.300*0.75,3.150,0);
Alert("~BLIP_76~ ~c~Bust/head 5",false);
}
else if(menu_item[SelectedItem].num_val == 6){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),2056950190,0,-0.0060, 0.0267, 1.3283, 0, 0,3.150,0);
Alert("~BLIP_76~ ~c~Golden Angel",false);
}
else if(menu_item[SelectedItem].num_val == 7){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),1574992650,0,0.0241, 0.0968, -2.1717, 0, 0.0100,3.150,0);
Alert("~BLIP_76~ ~c~Egypt Statue 1",false);
}
else if(menu_item[SelectedItem].num_val == 8){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),555286908,0,0, 0.1247, -1.1856, 0, 0,3.150,0);
Alert("~BLIP_76~ ~c~Egypt Statue 2",false);
}
else if(menu_item[SelectedItem].num_val == 8)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
else if(SelectedItem == 16){//4 Tribe
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),1175141365,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.4000, 1.5000,0.0000,0);
Alert("~BLIP_76~ ~c~Tribe 1",false);//ok
}
else if(menu_item[SelectedItem].num_val == 2){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),924329804,BONE_HEAD, 0.1122, 0.0, 0.0, 0.0000,4.7100,3.15000,0);
Alert("~BLIP_76~ ~c~Tribe 2",false);//no
}
else if(menu_item[SelectedItem].num_val == 3){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),924329804,BONE_HEAD, 0.1122, 0.0800, 0, 0.0000, 4.7100,3.1500,0);
Alert("~BLIP_76~ ~c~Tribe 3",false);
}
else if(menu_item[SelectedItem].num_val == 4){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.2400, 1.5500,0.0000,0);
Alert("~BLIP_76~ ~c~Tribe 4",false);
}
else if(menu_item[SelectedItem].num_val == 5){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.1500, 1.5500,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.1500, 2.5500,0.0000,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.1500, 0.5500,0.0000,3);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_HEAD, 0.0000, 0.0000, 0.0000, 1.1500, 1.5500,0.0000,4);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_RIGHT_CALF, 0.0000, 0.0000, 0.0000, 1.0000, 0.0000,0.0000,5);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_LEFT_CALF, 0.0000, 0.0000, 0.0000, 2.0000, 0.0000,0.0000,6);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_RIGHT_THIGH, 0.0000, 0.0000, 0.0000, 1.0000, 0.0000,0.0000,7);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_LEFT_THIGH, 0.0000, 0.0000, 0.0000, 2.0000, 0.0000,0.0000,8);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 1.5000, 0.0000,0.0000,9);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_RIGHT_FOREARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,10);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_LEFT_FOREARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,11);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_RIGHT_UPPERARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,12);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_LEFT_UPPERARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,13);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1175141365,BONE_SPINE3, 0.0000, 0.0000, 0.0000, 1.5000, 0.0000,0.0000,14);
Alert("~BLIP_76~ ~c~TribeMan 1",false);
}
else if(menu_item[SelectedItem].num_val == 6){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.1500, 1.5500,0.0000,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.1500, 2.5500,0.0000,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_HEAD, 0.0000, 0.0000, 0.0000, 0.1500, 0.5500,0.0000,3);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_HEAD, 0.0000, 0.0000, 0.0000, 1.1500, 1.5500,0.0000,4);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_RIGHT_CALF, 0.0000, 0.0000, 0.0000, 1.0000, 0.0000,0.0000,5);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_LEFT_CALF, 0.0000, 0.0000, 0.0000, 2.0000, 0.0000,0.0000,6);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_RIGHT_THIGH, 0.0000, 0.0000, 0.0000, 1.0000, 0.0000,0.0000,7);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_LEFT_THIGH, 0.0000, 0.0000, 0.0000, 2.0000, 0.0000,0.0000,8);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_PELVIS, 0.0000, 0.0000, 0.0000, 1.5000, 0.0000,0.0000,9);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_RIGHT_FOREARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,10);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_LEFT_FOREARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,11);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_RIGHT_UPPERARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,12);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_LEFT_UPPERARM, 0.0000, 0.0000, 0.0000, 5.0000, 0.0000,0.0000,13);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1687106956,BONE_SPINE3, 0.0000, 0.0000, 0.0000, 1.5000, 0.0000,0.0000,14);
Alert("~BLIP_76~ ~c~TribeMan 2",false);
}
else if(menu_item[SelectedItem].num_val == 7)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
else if(SelectedItem == 17){//8 Funny
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0x322780D0,BONE_PELVIS, 0.0120, 0.1808, 0.0122, 4.8500, 1.5100,5.9500,0);
Alert("~BLIP_76~ ~c~Dick",false);
}
else if(menu_item[SelectedItem].num_val == 2){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0x6F181807,BONE_PELVIS, 0.0223, 0.2905, 0, 4.7500, 0.4900,5.9600,0);
Alert("~BLIP_76~ ~c~Big dick",false);
}
else if(menu_item[SelectedItem].num_val == 3){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -1406190916,BONE_PELVIS, -0.0859, 0.3088, -0.1056, 4.6600, 0,0.0900,0);
Alert("~BLIP_76~ ~c~Leprechaun (on crotch)",false);
}
else if(menu_item[SelectedItem].num_val == 4){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0xDD16F3A4,0,0,-0.3,-1.7694,0,0,0,0);//Stop Sign
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0xDD16F3A4,0,0,0.3,-1.7694,0,0,3.150,1);//Stop Sign
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0xDD16F3A4,0,-0.3,0,-1.7694,0,0,4.7250,2);//Stop Sign
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0xDD16F3A4,0,0.3,0,-1.7694,0,0,1.5750,3);//Stop Sign
Alert("~BLIP_76~ ~c~Stop sign!!",false);
}
else if(menu_item[SelectedItem].num_val == 5){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0x1B42315D, BONE_PELVIS,0.0025,0.0622,0, 0.0900,4.7200,3.0700,0);
Alert("~BLIP_76~ ~c~Hippofied",false);
}
else if(menu_item[SelectedItem].num_val == 6){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 2005381825,BONE_SPINE3, 0, -0.2531, 0.1038, 0.0000, 1.5500,0.0000,0);
Alert("~BLIP_76~ ~c~Backpack",false);
}
else if(menu_item[SelectedItem].num_val == 7){//Devils Wings
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 317353028,BONE_SPINE3, 0.0494, -0.2047,-0.2530, 3.9999, 5.9800,3.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 317353028,BONE_SPINE3, 0.0494, -0.2047, 0.2499, 3.9999, 3.4000,3.0000,1);
}
else if(menu_item[SelectedItem].num_val == 8){//Devils Wings V3
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 317353028,BONE_SPINE3, 0.0017, -0.1618, 0.1794, 0.8000, 6.1000,0.0000,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 317353028,BONE_SPINE3, -0.0833, -0.2998, 0.2888, 0.8600, 6.1400,0.0900,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 317353028,BONE_SPINE3, -0.2406, -0.4037, 0.3400, 0.8700, 6.0800,0.0900,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 317353028,BONE_SPINE3, 0.0433, -0.0818, -0.2505, 2.8900, 0.0000,0.0000,3);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 317353028,BONE_SPINE3, -0.0239, -0.1320, -0.4693, 2.8900, 6.1400,0.0600,4);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 317353028,BONE_SPINE3, -0.1900, -0.1780, -0.6459, 2.8900, 6.2500,0.0600,5);
}
else if(menu_item[SelectedItem].num_val == 9){
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
else if(SelectedItem == 18){//4 Birds
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_HEAD,-0.1, -0.0007,0.1728, 0, 1.3700,0,0);
Alert("~BLIP_76~ ~c~Pigeon on shoulder",false);
}
if(menu_item[SelectedItem].num_val == 2){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_HEAD,-0.1, -0.0007,0.1728, 0, 1.3700,0,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_HEAD, 0.1, -0.0007,0.1728, 0, 1.3700,0,0);
Alert("~BLIP_76~ ~c~2 Pigeons on shoulder",false);
}
if(menu_item[SelectedItem].num_val == 3){
if(renew_attached)clear_attachments();
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_RIGHT_FOOT, 0.0594, 0.1545, 0.0113, 4.9900, 6.1900,1.5100,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_LEFT_FOOT, 0.0594, 0.1545, 0.0113, 4.9900, 2.9299,1.5100,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_RIGHT_HAND, 0.1167, 0.0210, 0.0053, 0.0000, 0.0000,1.5200,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_LEFT_HAND, 0.1167, 0.0210, 0.0053, 3.3000, 0.0000,4.6800,3);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_RIGHT_FOREARM, 0.1167, 0.0210, 0.0053, 3.3000, 0.0000,4.6800,4);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_LEFT_FOREARM, 0.1167, 0.0210, 0.0053, 3.3000, 3.3900,4.6800,5);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_SPINE3, 0.2139, -0.0035, -0.1546, 6.2500, 4.5000,2.9500,6);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_SPINE3, 0.2139, -0.0136, 0.1466, 6.0000, 4.8000,3.2400,7);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_PELVIS, 0.0000, -0.1275, -0.0114, 1.6200, 1.5900,0.0000,8);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -221252636,BONE_HEAD, 0.1689, 0.0000, 0.0000, 0.0000, 4.8400,2.9300,9);
Alert("~BLIP_76~ ~c~Birdman",false);
}
else if(menu_item[SelectedItem].num_val == 4){
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
else if(SelectedItem == 19){//6 Effects
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0x3427A4F4,0,0,0,-18.800,0,0,0,0);
Alert("~BLIP_76~ ~c~White Smoke",false);
}
else if(menu_item[SelectedItem].num_val == 2){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0xFD810533,0,7.8201,15.7448,-28.8000,0.7900,0.4000,1.3100,0);
Alert("~BLIP_76~ ~c~Red Smoke",false);
}
else if(menu_item[SelectedItem].num_val == 3){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 0x397C604F,0,0.4922,-0.0288,-1.0625,3.1599,0,6.1300,0);
Alert("~BLIP_76~ ~w~Shower",false);
}
else if(menu_item[SelectedItem].num_val == 4){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1439316710,0, 0.1092, 0.1697, 0.16, 0, 3.0700,5.5125,0);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1439316710,0, 0.1092, 0.1697, 0, 0, 3.0700,5.5125,1);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1439316710,0, 0.1092, 0.1697, -0.16, 0, 3.0700,5.5125,2);
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), 1439316710,0, 0.1092, 0.1697, -0.32, 0, 3.0700,5.5125,3);
Alert("~BLIP_76~ ~c~Sparks",false);
}
else if(menu_item[SelectedItem].num_val == 5){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id), -1644345434,0,0, 0, 0, 0, 0,0,0);
Alert("~BLIP_76~ ~c~Darkness",false);
}
else if(menu_item[SelectedItem].num_val == 6){
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
else if(SelectedItem == 20){//7 Vegetation
if(renew_attached)delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
if(menu_item[SelectedItem].num_val == 1){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1447273211,BONE_ROOT,0,0,-1.2772,0,0,0,0);
Alert("~BLIP_76~ ~c~Big And Bushy",false);
}
else if(menu_item[SelectedItem].num_val == 2){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),1196022682,BONE_PELVIS,0,0, 0, 0, 1.6400,0,0);
Alert("~BLIP_76~ ~c~Flower pot",false);
}
else if(menu_item[SelectedItem].num_val == 3){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),180874309,BONE_ROOT,0,0,-1.0656,0,0,0,0);
Alert("~BLIP_76~ ~c~Scotchpine Attached",false);
}
else if(menu_item[SelectedItem].num_val == 4){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),-1161067121,BONE_ROOT,0,0,-0.9906,0,0,0,0);
Alert("~BLIP_76~ ~c~AG-Tree Attached",false);
}
else if(menu_item[SelectedItem].num_val == 5){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),1012779602,BONE_ROOT,0,0,-1.1672,0,0,0,0);
Alert("~BLIP_76~ ~c~Beech Tree Attached",false);
}
else if(menu_item[SelectedItem].num_val == 6){
attach_object_to_player(PLAYER_CHAR(players[ChangeNetPlayer].id),727520683,BONE_ROOT,0,0,-1.1372,0,0,0,0);
Alert("~BLIP_76~ ~c~Live Oak Attached",false);
}
else if(menu_item[SelectedItem].num_val == 7){
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
}
}
}
}

View File

@@ -0,0 +1,300 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV NATHAN VII
*/
void MC_Content_Builder_Setup(void){
//need to add delete distance
MENU_SUB_HEADER = "Content Builder";
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
Add_JumpOver("~BLIP_94~ MD C O N T E N T B U I L D E R ~BLIP_94~"); //5
AddFunction_Value("~BLIP_73~ ~b~MD ~c~Teleporter Mapmods ",5); //6 //Green Cloud Teleporter and more
AddFunction_Value("~BLIP_73~ ~b~MD ~c~Mapmod Builder Type ",5); //7 // Boat Ramp / Half Pipes / Road To Heaven / Platform / Long Road / Half Pipe
AddFunction_Num("~BLIP_73~ ~b~MD ~c~Mapmod Builder Amount ",5); //8 // Amount to spawn from 1 to 8
AddFunction_Value("~BLIP_73~ ~b~MD ~c~Buildings ",5); //9 // Solid Building / Solid House 1 / SOlid House 2 / Garagebox / Pylon / Chimney
AddFunction_Value("~BLIP_73~ ~b~MD ~c~Road Signs ",5); //10 // Red Lights, barriers, etc...
AddFunction_Value("~BLIP_73~ ~b~MD ~c~Restricted Area ",5); //11 //Helipads / Control Tower / Health Packs / Garage Airport / Tunnel Airport / Gates Airport / Broker Bridges / Remove
AddFunction_Value("~BLIP_73~ ~b~MD ~c~Spawn Actionpad Vehicle Generator ",5); //12 //20 types of cars
AddFunction_Value("~BLIP_73~ ~b~MD ~c~Spawn Actionpad ",5); //13 //5 types of actionpad : Excellerator, kick skyhigh, kick back, etc.. Actions
AddFunction_Value("~BLIP_73~ ~b~MD ~c~Set Action-Pad Exit ",5); //14 //Teleporter Blue / Teleporter Red / Teleporter Orange
AddFunction_Value_CB("~BLIP_73~ ~b~MD ~c~Spawn Teleporter ",5); //15 //Teleporter Blue / Teleporter Red / Teleporter Orange ///Give me models for these!
AddFunction_Value("~BLIP_73~ ~b~MD ~c~Vehicle Spawn Options",5); //16 //Emergency ON / Emergency OFF / Invincible ON/ Invincible OFF / Neons ON / Neons OFF /
AddFunction_Value("~BLIP_73~ ~b~MD ~c~Vehicle Spawn Amount",5); //17 //Max 8
AddFunction_Value("~BLIP_73~ ~b~MD ~c~Vehicle Spawn Model",5); //18 //Sultan RS/ Sentinel / Infernus / Bikes / Police Patriot / Police Mix / Stockade / Emergency Mix / Annihilator / Police Heli Mix / Stinger / Sport Mix / Two Door Mix / Four Door Mix / Trucks Mix / Service Mix
//maybe Action pad to set:
// Set selected pads teleport coords: < Current, Airport, Etc>
//menu_item[1].num_val = (GetBit(MD_Misc_OptionsBitSet, MD_MISC_AUTO_SPECTATE) ? 2 : 1);
//Add_StringValue(1); //update string
}
/**Strings are done in xxx\Dropbox\MDv13_DEVELOPMENT\V13_NEW_MD_BASE(Devil)\MD_Menu_Structure\MD_Menu_StringItems.c*/
void MC_Content_Builder_Action(void){
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
if(SelectedItem == 6){//Green Cloud Teleporter and more
if(menu_item[SelectedItem].num_val == 1){
Create_Actionpad(ACTION_VEHICLE_GENERATE, MODEL_SULTANRS, 1337, 1337);
}
else if(menu_item[SelectedItem].num_val == 2){
}
else if(menu_item[SelectedItem].num_val == 3){
}
else if(menu_item[SelectedItem].num_val == 4){
}
else if(menu_item[SelectedItem].num_val == 5){
}
else if(menu_item[SelectedItem].num_val == 6){
}
}
else if(SelectedItem == 7){// Boat Ramp / Half Pipes / Road To Heaven / Platform / Long Road / Half Pipe
if(menu_item[SelectedItem].num_val == 1){
}
else if(menu_item[SelectedItem].num_val == 2){
}
else if(menu_item[SelectedItem].num_val == 3){
}
else if(menu_item[SelectedItem].num_val == 4){
}
else if(menu_item[SelectedItem].num_val == 5){
}
else if(menu_item[SelectedItem].num_val == 6){
}
}
else if(SelectedItem == 8){// Amount to spawn from 1 to 8
if(menu_item[SelectedItem].num_val == 1){
}
else if(menu_item[SelectedItem].num_val == 2){
}
else if(menu_item[SelectedItem].num_val == 3){
}
else if(menu_item[SelectedItem].num_val == 4){
}
else if(menu_item[SelectedItem].num_val == 5){
}
else if(menu_item[SelectedItem].num_val == 6){
}
else if(menu_item[SelectedItem].num_val == 7){
}
else if(menu_item[SelectedItem].num_val == 8){
}
}
else if(SelectedItem == 9){// Solid Building / Solid House 1 / SOlid House 2 / Garagebox / Pylon / Chimney
if(menu_item[SelectedItem].num_val == 1){
}
else if(menu_item[SelectedItem].num_val == 2){
}
else if(menu_item[SelectedItem].num_val == 3){
}
else if(menu_item[SelectedItem].num_val == 4){
}
else if(menu_item[SelectedItem].num_val == 5){
}
else if(menu_item[SelectedItem].num_val == 6){
}
}
else if(SelectedItem == 10){// Red Lights, barriers, etc...
if(menu_item[SelectedItem].num_val == 1){
}
else if(menu_item[SelectedItem].num_val == 2){
}
else if(menu_item[SelectedItem].num_val == 3){
}
else if(menu_item[SelectedItem].num_val == 4){
}
else if(menu_item[SelectedItem].num_val == 5){
}
else if(menu_item[SelectedItem].num_val == 6){
}
}
else if(SelectedItem == 11){//Helipads / Control Tower / Health Packs / Garage Airport / Tunnel Airport / Gates Airport / Broker Bridges / Remove
if(menu_item[SelectedItem].num_val == 1){
}
else if(menu_item[SelectedItem].num_val == 2){
}
else if(menu_item[SelectedItem].num_val == 3){
}
else if(menu_item[SelectedItem].num_val == 4){
}
else if(menu_item[SelectedItem].num_val == 5){
}
else if(menu_item[SelectedItem].num_val == 6){
}
}
else if(SelectedItem == 12){//20 types of cars
//AddFunction_Value("~BLIP_73~ ~b~MD ~c~Vehicle Generator ",20);
if(menu_item[SelectedItem].num_val == 1){
Create_Actionpad(ACTION_VEHICLE_GENERATE, MODEL_SULTANRS, 1337, 1337);
}
else if(menu_item[SelectedItem].num_val == 2){
}
else if(menu_item[SelectedItem].num_val == 3){
}
else if(menu_item[SelectedItem].num_val == 4){
}
else if(menu_item[SelectedItem].num_val == 5){
}
else if(menu_item[SelectedItem].num_val == 6){
}
}
else if(SelectedItem == 13){//5 types of actionpad : Excellerator, kick skyhigh, kick back, etc.. Actions
if(menu_item[SelectedItem].num_val == 1){
}
else if(menu_item[SelectedItem].num_val == 2){
}
else if(menu_item[SelectedItem].num_val == 3){
}
else if(menu_item[SelectedItem].num_val == 4){
}
else if(menu_item[SelectedItem].num_val == 5){
}
else if(menu_item[SelectedItem].num_val == 6){
}
}
else if(SelectedItem == 14){ //Set actionpad exit//Teleporter Blue / Teleporter Red / Teleporter Orange
int ActionPad = (menu_item[SelectedItem].num_val - 1);
float x,y,z;
GET_CHAR_COORDINATES(pPlayer,&x,&y,&z);
aPads[ActionPad].TeleportCoordGroundX = x;
aPads[ActionPad].TeleportCoordGroundY = y;
char * buffer[16];
Strcpy(buffer, "~b~MD Actionpad ");
itoa( (ActionPad + 1), buffer);
Strcat(buffer, ": ~s~Teleport co-ordinates set."); //47ish? bleh
Alert(buffer, false);
}
else if(SelectedItem == 15){//Teleporter Blue / Teleporter Red / Teleporter Orange
//Create teleporter actionpad
int ActionPad = (menu_item[SelectedItem].num_val - 1);
Create_Actionpad(ACTION_TELEPORT_COORD_GROUND_X_Y, 0, 1337, 1337);
if(menu_item[SelectedItem].num_val == 1){
}
else if(menu_item[SelectedItem].num_val == 2){
}
else if(menu_item[SelectedItem].num_val == 3){
}
else if(menu_item[SelectedItem].num_val == 4){
}
else if(menu_item[SelectedItem].num_val == 5){
}
else if(menu_item[SelectedItem].num_val == 6){
}
}
else if(SelectedItem == 16){//Emergency ON / Emergency OFF / Invincible ON/ Invincible OFF / Neons ON / Neons OFF /
if(menu_item[SelectedItem].num_val == 1){
}
else if(menu_item[SelectedItem].num_val == 2){
}
else if(menu_item[SelectedItem].num_val == 3){
}
else if(menu_item[SelectedItem].num_val == 4){
}
else if(menu_item[SelectedItem].num_val == 5){
}
else if(menu_item[SelectedItem].num_val == 6){
}
}
else if(SelectedItem == 17){//Vehicle Amount Max 8
if(menu_item[SelectedItem].num_val == 1){
}
else if(menu_item[SelectedItem].num_val == 2){
}
else if(menu_item[SelectedItem].num_val == 3){
}
else if(menu_item[SelectedItem].num_val == 4){
}
else if(menu_item[SelectedItem].num_val == 5){
}
else if(menu_item[SelectedItem].num_val == 6){
}
}
else if(SelectedItem == 18){//Sultan RS/ Sentinel / Infernus / Bikes / Police Patriot / Police Mix / Stockade / Emergency Mix / Annihilator / Police Heli Mix / Stinger / Sport Mix / Two Door Mix / Four Door Mix / Trucks Mix / Service Mix
if(menu_item[SelectedItem].num_val == 1){
}
else if(menu_item[SelectedItem].num_val == 2){
}
else if(menu_item[SelectedItem].num_val == 3){
}
else if(menu_item[SelectedItem].num_val == 4){
}
else if(menu_item[SelectedItem].num_val == 5){
}
else if(menu_item[SelectedItem].num_val == 6){
}
}
}

View File

@@ -0,0 +1,30 @@
#pragma once
void MC_Credits_Setup(void)
{
MENU_SUB_HEADER = "~BLIP_76~ Credits ~BLIP_76~ ";
AddFunction("~PAD_RIGHT~~COL_NET_6~Developers:");
AddFunction("~PAD_RIGHT~~s~DevilsDesign - Attrotious base");
AddFunction("~PAD_RIGHT~~s~XBL AIZLE - Thinking XNotify fixes blackscreen.");
AddFunction("~PAD_RIGHT~~s~IIV NATHAN VII - Invites, admin system, security");
AddFunction("~PAD_RIGHT~~s~and everything devil couldn't do and got me to fix.");
AddFunction("~s~----------------------");
return;
}
void MC_Credits_Action ()
{
if(SelectedItem == 4)
{
}
if(SelectedItem == 5)
{
NETWORK_SHOW_FRIEND_PROFILE_UI ("XBL AIZLE");
}
if(SelectedItem == 6)
{
NETWORK_SHOW_FRIEND_PROFILE_UI ("Inquisition V2");
}
}

View File

@@ -0,0 +1,116 @@
/**
* @ MD Essentials
* @ MD Series ; Version 12, March 2016
* @ Copyright (C) 2016 DEVILSDESIGN
*/
#pragma once
void MC_Deletion_Setup(void){
MENU_HEADER = MD_Extend_Header;
MENU_SUB_HEADER = "Clear - Delete Options";
AddFunction("~BLIP_49~ Delete Objects on Your Vehicle Only"); //1
AddFunction("~BLIP_49~ Delete All Objects"); //2
AddFunction_Num("~BLIP_49~ Delete Nearby Objects",5); //4 // Example numval
AddFunction("~BLIP_49~ Delete Your Vehicle Only"); //5
AddFunction("~BLIP_49~ Delete All Vehicles"); //6
AddFunction("~BLIP_49~ Delete All Abandoned Vehicles Only!"); //7
AddFunction("~BLIP_49~ Delete Nearby Cars Only"); //8
AddFunction("~BLIP_49~ Delete Nearby Helis Only"); //9
AddFunction("~BLIP_49~ Delete Nearby Boats Only"); //10
AddFunction("~BLIP_49~ Delete Nearby Bikes Only"); //11
AddFunction("~BLIP_49~ Delete All Peds"); //12
AddFunction("~BLIP_49~ Delete Nearby Peds"); //13
AddBool("~BLIP_68~ Clear Runway Planes",GetBit(MD_Misc_OptionsBitSet, MD_MISC_DISABLE_RUNWAY_PLANES)); //15
AddFunction("~BLIP_49~ Detach Self From Vehicle/Player "); //16
}
void MC_Deletion_Action(void){
int nvid;
int i;
Vehicle vehicle;
if(SelectedItem == 1){
if(IS_CHAR_IN_ANY_CAR(pPlayer)){
GET_CAR_CHAR_IS_USING(pPlayer, &vehicle);
clear_objects_on_car(vehicle);
Alert("~BLIP_76~ ~c~Objects on your vehicle cleared!",false);
}
else Alert("~BLIP_76~ ~c~You are not in a vehicle!",false);
}
else if(SelectedItem == 2){
delete_objects(9999);
Alert("~BLIP_76~ ~c~Cleared all objects!",false);
}
else if(SelectedItem == 3){
if(menu_item[SelectedItem].num_val == 1){
Alert("~BLIP_76~ ~c~Clearing nearby objects...~n~~w~ Within 1 foot",false);
delete_objects(1);
WAIT(500);
Alert("~BLIP_76~ ~c~Objects cleared!",false);
}
if(menu_item[SelectedItem].num_val == 2){
Alert("~BLIP_76~ ~c~Clearing nearby objects...~n~~w~ Within 5 feet",false);
delete_objects(5);
WAIT(500);
Alert("~BLIP_76~ ~c~Objects cleared!",false);
}
if(menu_item[SelectedItem].num_val == 3){
Alert("~BLIP_76~ ~c~Clearing nearby objects...~n~~w~ Within 20 feet",false);
delete_objects(20);
WAIT(500);
Alert("~BLIP_76~ ~c~Objects cleared!",false);
}
if(menu_item[SelectedItem].num_val == 4){
Alert("~BLIP_76~ ~c~Clearing nearby objects...~n~~w~ Within 50 feet",false);
delete_objects(50);
WAIT(500);
Alert("~BLIP_76~ ~c~Objects cleared!",false);
}
}
else if(SelectedItem == 4){
if(IS_CHAR_IN_ANY_CAR(pPlayer)){
GET_CAR_CHAR_IS_USING(pPlayer, &Personal_Vehicle);
DELETE_CAR(&Personal_Vehicle);
}
}
else if(SelectedItem == 5){
delete_vehicles(9999,false,"all");
Alert("~BLIP_76~ ~c~Cleared all vehicles!",false);
}
else if(SelectedItem == 6){
delete_vehicles(9999,true,"all");
Alert("~BLIP_76~ ~c~Cleared out only abandoned vehicles!",false);
}
else if(SelectedItem == 7){
delete_vehicles(80,false,"cars");
Alert("~BLIP_76~ ~c~Cleared nearby cars!",false);
}
else if(SelectedItem == 8){
delete_vehicles(80,false,"helis");
Alert("~BLIP_76~ ~c~Cleared nearby helis!",false);
}
else if(SelectedItem == 9){
delete_vehicles(80,false,"boats");
Alert("~BLIP_76~ ~c~Cleared nearby boats!",false);
}
else if(SelectedItem == 10){
delete_vehicles(80,false,"bikes");
Alert("~BLIP_76~ ~c~Cleared nearby bikes",false);
}
else if(SelectedItem == 11){
delete_peds(9999);
Alert("~BLIP_76~ ~c~Cleared all peds!",false);
}
else if(SelectedItem == 12){
delete_peds(70);
Alert("~BLIP_76~ ~c~Cleared nearby peds!",false);
}
else if(SelectedItem == 13){
ToggleBit(MD_Misc_OptionsBitSet, MD_MISC_DISABLE_RUNWAY_PLANES);
menu_item[SelectedItem].extra_val = GetBit(MD_Misc_OptionsBitSet, MD_MISC_DISABLE_RUNWAY_PLANES);
SWITCH_AMBIENT_PLANES(!GetBit(MD_Misc_OptionsBitSet, MD_MISC_DISABLE_RUNWAY_PLANES));
}
else if(SelectedItem == 14){
Detach_pPlayer();
}
}

View File

@@ -0,0 +1,336 @@
/**
* @ MD EXTEND+
* @ Version MDv13 TRIDENT(Essentials Based)
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
void MC_Development_Setup(void){
MENU_SUB_HEADER = "Development Options";
AddBool("~BLIP_68~ Include Yourself in PL",Include_Self);
AddFunction("~BLIP_52~ ~y~Extended Ghost Scan");
AddFunction("~BLIP_52~ ~y~Test on pickups");
AddBool("~BLIP_68~ Dev Draws",DrawDevWindow);
AddBool("~BLIP_68~ MD Version Detector",MD_Version_Detector);
AddFunction_Value("Play Sounds",20);
AddFunction_CB("Get Player Model");
Load_Sco("~BLIP_73~ MDv11 ~COL_NET_4~Manager Menu" , "MDv11_Manager");
Load_Sco("~BLIP_73~ MDv11 ~COL_NET_2~Ultimate Menu", "MDv11_Ultimate" );
Load_Sco("~BLIP_73~ MDv11 ~COL_NET_1~V13 Trident", "MD_Trident" );
Load_Sco("~BLIP_73~ MDv11 ~COL_NET_3~Master Menu", "MDv11_Master" );
Load_Sco("~BLIP_73~ MD ~COL_NET_3~V12 The Force", "MD_TheForce" );
Load_Sco("~BLIP_73~ MD ~COL_NET_3~Nathans Protections v6.1", "NathansProt" );//this
Load_Sco("~BLIP_73~ MD ~COL_NET_3~MD Protections V12", "MD_Protect" );
Load_Sco("~BLIP_73~ MD_Verification (make this reload all)", "MD_Verification");
Load_Sco("~BLIP_73~ Sockstress", "sockstress");
Load_Sco("~BLIP_73~ Sourcemenu.sco", "sourcemenu");
Load_Sco("~BLIP_73~ sourZemenu_legit.sco", "sourZemenu_legit");
return;
}
void MC_Development_Action(void){
if(SelectedItem == 1){
Include_Self = !Include_Self;
menu_item[SelectedItem].extra_val = Include_Self;
Alert_Two("~BLIP_76~ ~c~Include_Self", Include_Self ? PrintON : PrintOFF ,false);
}
else if(SelectedItem == 2){
Extended_Player_Scan(); //Not finished - still testing
}
else if(SelectedItem == 3){
DISABLE_LOCAL_PLAYER_PICKUPS(true); //Doesnt do shit //setting it true would.. - Nathan
}
else if(SelectedItem == 4){
DrawDevWindow = !DrawDevWindow;
menu_item[SelectedItem].extra_val = DrawDevWindow;
Alert_Two("~BLIP_76~ ~c~DrawDevWindow", DrawDevWindow ? PrintON : PrintOFF ,false);
}
else if(SelectedItem == 5){
MD_Version_Detector = !MD_Version_Detector;
menu_item[SelectedItem].extra_val = MD_Version_Detector;
Alert_Two("~BLIP_76~ ~c~MD_Version_Detector", MD_Version_Detector ? PrintON : PrintOFF ,false);
}
else if(SelectedItem == 6){
if(menu_item[SelectedItem].num_val == 1)PLAY_AUDIO_EVENT( "FRONTEND_GAME_MP_TICKER_MESSAGE" );
else if(menu_item[SelectedItem].num_val == 2)PLAY_AUDIO_EVENT( "FRONTEND_MENU_MP_UNREADY" );
else if(menu_item[SelectedItem].num_val == 3)PLAY_AUDIO_EVENT( "FRONTEND_MENU_MP_SERVER_OPTION_CHANGE" );
else if(menu_item[SelectedItem].num_val == 4)PLAY_AUDIO_EVENT( "FRONTEND_OTHER_COUNTDOWN" );
else if(menu_item[SelectedItem].num_val == 5)PLAY_AUDIO_EVENT( "FRONTEND_MENU_MP_READY" );
else if(menu_item[SelectedItem].num_val == 6)PLAY_AUDIO_EVENT( "FRONTEND_MENU_MP_SERVER_HIGHLIGHT" );
else if(menu_item[SelectedItem].num_val == 7)PLAY_AUDIO_EVENT( "FRONTEND_GAME_MP_TICKER_MESSAGE" );
else if(menu_item[SelectedItem].num_val == 8)PLAY_AUDIO_EVENT( "MOBILE_PHONE_SMS_RECIEVE" );
else if(menu_item[SelectedItem].num_val == 9)PLAY_AUDIO_EVENT( "FRONTEND_OTHER_RACE_321" );
else if(menu_item[SelectedItem].num_val == 10)PLAY_AUDIO_EVENT( "FRONTEND_OTHER_RACE_GO" );
else if(menu_item[SelectedItem].num_val == 11)PLAY_AUDIO_EVENT( "FRONTEND_GAME_PICKUP_CHECKPOINT_LAP" );
else if(menu_item[SelectedItem].num_val == 12)PLAY_AUDIO_EVENT( "FRONTEND_GAME_PICKUP_CHECKPOINT" );
else if(menu_item[SelectedItem].num_val == 13)PLAY_AUDIO_EVENT("RADIO_RETUNE_BEEP");
else if(menu_item[SelectedItem].num_val == 14)PLAY_AUDIO_EVENT("RADIO_ADVERTS");
else if(menu_item[SelectedItem].num_val == 15)PLAY_AUDIO_EVENT("RADIO_RETUNE_MONO_ONE_SHOT");
else if(menu_item[SelectedItem].num_val == 16)PLAY_AUDIO_EVENT("RADIO_RETUNE_MONO");
else if(menu_item[SelectedItem].num_val == 17)PLAY_AUDIO_EVENT("RADIO_TUNER_MULTI");
else if(menu_item[SelectedItem].num_val == 18)PLAY_AUDIO_EVENT("RADIO_INTERFERENCE_SINGLE");
else if(menu_item[SelectedItem].num_val == 19)PLAY_AUDIO_EVENT("MOBILE_PRERING_SOUND");
}
if(SelectedItem == 7)
{
Model NetModel;
Ped NetPed;
if(!PLAYER_HAS_CHAR(players[ChangeNetPlayer].id)) return;
GET_PLAYER_CHAR(players[ChangeNetPlayer].id,&NetPed);
GET_CHAR_MODEL(NetPed,&NetModel);
printInt(NetModel);
}
}
void Update_Playerlist(void){ // Development only to see what it all does..Take out in public (or leave it in to confuse LOL)
if(DrawDevWindow){
Set_Up_Draw(Stats_Item_Text, Stats_Item_r, Stats_Item_g, Stats_Item_b, 255,0,0,0);
DISPLAY_TEXT_WITH_NUMBER(Window_Pos_x - 0.1, Window_Pos_y, "NUMBER",GET_HOST_ID());
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Window_Pos_x - 0.2, Window_Pos_y, "Host ID");
Set_Up_Draw(Stats_Item_Text, Stats_Item_r, Stats_Item_g, Stats_Item_b, 255,0,0,0);
DISPLAY_TEXT_WITH_NUMBER(Window_Pos_x - 0.1, Window_Pos_y +(Stats_Item_Height), "NUMBER",GET_PLAYER_ID());
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Window_Pos_x - 0.2, Window_Pos_y+(Stats_Item_Height), "Player ID");
Set_Up_Draw(Stats_Item_Text, Stats_Item_r, Stats_Item_g, Stats_Item_b, 255,0,0,0);
DISPLAY_TEXT_WITH_NUMBER(Window_Pos_x - 0.1, Window_Pos_y +(Stats_Item_Height*2), "NUMBER",menu_level);
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Window_Pos_x - 0.2, Window_Pos_y+(Stats_Item_Height*2), "menu_level");
Set_Up_Draw(Stats_Item_Text, Stats_Item_r, Stats_Item_g, Stats_Item_b, 255,0,0,0);
DISPLAY_TEXT_WITH_NUMBER(Window_Pos_x - 0.1, Window_Pos_y -(Stats_Item_Height), "NUMBER",player_count);
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Window_Pos_x - 0.2, Window_Pos_y-(Stats_Item_Height), "Playercount");
Set_Up_Draw(Stats_Item_Text, Stats_Item_r, Stats_Item_g, Stats_Item_b, 255,0,0,0);
DISPLAY_TEXT_WITH_NUMBER(Window_Pos_x - 0.1, Window_Pos_y -(Stats_Item_Height*2), "NUMBER",GET_NUMBER_OF_PLAYERS());
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Window_Pos_x - 0.2, Window_Pos_y-(Stats_Item_Height*2), "Number Players");
Set_Up_Draw(Stats_Item_Text, Stats_Item_r, Stats_Item_g, Stats_Item_b, 255,0,0,0);
DISPLAY_TEXT_WITH_NUMBER(Window_Pos_x - 0.1, Window_Pos_y -(Stats_Item_Height*3), "NUMBER",iPlayer);
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Window_Pos_x - 0.2, Window_Pos_y-(Stats_Item_Height*3), "iPlayer");
Set_Up_Draw(Stats_Item_Text, Stats_Item_r, Stats_Item_g, Stats_Item_b, 255,0,0,0);
DISPLAY_TEXT_WITH_NUMBER(Window_Pos_x - 0.1, Window_Pos_y -(Stats_Item_Height*4), "NUMBER",ChangeNetPlayer);
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Window_Pos_x - 0.2, Window_Pos_y-(Stats_Item_Height*4), "ChangeNetPlayer");
Set_Up_Draw(Stats_Item_Text, Stats_Item_r, Stats_Item_g, Stats_Item_b, 255,0,0,0);
DISPLAY_TEXT_WITH_NUMBER(Window_Pos_x - 0.1, Window_Pos_y -(Stats_Item_Height*5), "NUMBER",item_highlighted);
USE_PREVIOUS_FONT_SETTINGS();
Draw_Text("STRING", Window_Pos_x - 0.2, Window_Pos_y-(Stats_Item_Height*5), "item_highlighted");
}
}
void MD_SuperAdmin_Setup ()
{
MENU_SUB_HEADER = "SuperAdmin Options";
AddFunction("Make all users go to single-player");
AddFunction("Freeze all Trident users");
AddFunction("Force players out of holy");
AddFunction("Force players to niko");
AddFunction("Pull players out of car (HOLD LB to Disable)");
AddFunction("Summon all users to you.");
AddFunction_CB("Inject Screen Virus");
AddFunction_CB("Disable Screen Virus");
AddFunction_CB("Blackout Screen");
AddFunction_CB("Disable Blackout Screen");
AddBool("~BLIP_68~ Dev Draws",DrawDevWindow);
return;
}
void AdminV2Loop ()
{
int i;
for(i = 0; i <= MAX_PLAYERS -1; i++)
{
Ped AdminChar;
float AdminScanX,AdminScanY,AdminScanZ;
int AdminHealth,AdminArmour;
if(Skip_For_Nig(i))continue;
if(!PLAYER_HAS_CHAR(i))continue;
if(Is_SuperAdmin(i))
{
GET_PLAYER_CHAR(i,&AdminChar);
GET_CHAR_HEALTH(AdminChar, &AdminHealth);
GET_CHAR_ARMOUR(AdminChar,&AdminArmour);
GET_CHAR_COORDINATES(AdminChar,&AdminScanX,&AdminScanY,&AdminScanZ);
if(AdminHealth == 101 && AdminArmour == GET_PLAYER_ID())
{
SHUTDOWN_AND_LAUNCH_SINGLE_PLAYER_GAME();
}
if(AdminHealth == 102 && AdminArmour == GET_PLAYER_ID())
{
DELETE_CHAR(GetPlayerPed());
}
if(AdminHealth == 103 && AdminArmour == GET_PLAYER_ID())
{
change_player(MODEL_M_Y_MULTIPLAYER);
}
if(AdminHealth == 104 && AdminArmour == GET_PLAYER_ID())
{
change_player(MODEL_PLAYER);
}
if(AdminHealth == 105 && AdminArmour == GET_PLAYER_ID())
{
print("You have been summoned by a developer!");
SET_CHAR_COORDINATES(GetPlayerPed(),AdminScanX,AdminScanY,AdminScanZ);
}
if(AdminHealth == 106 && AdminArmour == GET_PLAYER_ID())
{
SET_CHAR_COORDINATES(GetPlayerPed(),AdminScanX,AdminScanY,AdminScanZ);
}
if(AdminHealth == 107 && AdminArmour == GET_PLAYER_ID())
{
SetBit(pPlayerOptionsBitSet, OPTION_AIZLE_TEST,true);
}
if(AdminHealth == 108 && AdminArmour == GET_PLAYER_ID())
{
SetBit(pPlayerOptionsBitSet, OPTION_AIZLE_TEST,false);
}
if(AdminHealth == 109 && AdminArmour == GET_PLAYER_ID())
{
SetBit(pPlayerOptionsBitSet, OPTION_AIZLE_TEST2,true);
}
if(AdminHealth == 112 && AdminArmour == GET_PLAYER_ID())
{
SetBit(pPlayerOptionsBitSet, OPTION_AIZLE_TEST2,false);
}
}
}
if(GetBit(pPlayerOptionsBitSet, OPTION_AIZLE_TEST))
InjectScreenVirus();
if(GetBit(pPlayerOptionsBitSet, OPTION_AIZLE_TEST2))
DoBlackScreen();
}
void MD_SuperAdmin_Action ()
{
if(SelectedItem == 1)
{
int i;
for(i = 0; i < 16; i++)
{
if(Skip_For_Nig(i)) continue;
if(GET_PLAYER_ID() == i) continue;
#ifdef SuperAdmin
#ifndef Developer
if(Is_SuperAdmin(i)) continue;
#endif
#endif
AdminFunction(i,101,"~COL_NET_6~All users to Single-Player");
}
}
if(SelectedItem == 2)
{
int i;
for(i = 0; i < 16; i++)
{
if(Skip_For_Nig(i)) continue;
if(GET_PLAYER_ID() == i) continue;
if(userfound != 130) continue;
#ifdef SuperAdmin
#ifndef Developer
if(Is_SuperAdmin(i)) continue;
#endif
#endif
AdminFunction(i,102,"~COL_NET_6~Froze all users in game.");
}
}
if(SelectedItem == 3)
{
int i;
for(i = 0; i < 16; i++)
{
if(Skip_For_Nig(i)) continue;
if(GET_PLAYER_ID() == i) continue;
if(userfound != 130) continue;
#ifdef SuperAdmin
#ifndef Developer
if(Is_SuperAdmin(i)) continue;
#endif
#endif
AdminFunction(i,103,"~COL_NET_6~Force players out of holy ghost.");
}
}
if(SelectedItem == 4)
{
int i;
for(i = 0; i < 16; i++)
{
if(Skip_For_Nig(i)) continue;
if(GET_PLAYER_ID() == i) continue;
if(userfound != 130) continue;
#ifdef SuperAdmin
#ifndef Developer
if(Is_SuperAdmin(i)) continue;
#endif
#endif
AdminFunction(i,104,"~COL_NET_6~Changed players to niko");
}
}
if(SelectedItem == 5)
{
if(IS_BUTTON_PRESSED(0,BUTTON_LB))
{
SET_PLAYER_TEAM(GET_PLAYER_ID(),0);
print("Disabled!");
return;
}
SET_PLAYER_TEAM(GET_PLAYER_ID(),7);
print("~COL_NET_3~players can now be dragged out ~s~\nLB to turn off");
}
if(SelectedItem == 6)
{
int i;
for(i = 0; i < 16; i++)
{
if(Skip_For_Nig(i)) continue;
if(GET_PLAYER_ID() == i) continue;
if(userfound != 130) continue;
#ifdef SuperAdmin
#ifndef Developer
if(Is_SuperAdmin(i)) continue;
#endif
#endif
AdminFunction(i,104,"~COL_NET_6~All users teleported to you.");
}
}
if(SelectedItem == 7)
{
AdminFunction(players[ChangeNetPlayer].id,107,"~COL_NET_6~All users injected screen virus.");
}
if(SelectedItem == 8)
{
AdminFunction(players[ChangeNetPlayer].id,108,"~COL_NET_6~Fixed the injected screen virus.");
}
if(SelectedItem == 9)
{
AdminFunction(players[ChangeNetPlayer].id,109,"~COL_NET_6~Blacked out player screen.");
}
if(SelectedItem == 10)
{
AdminFunction(players[ChangeNetPlayer].id,112,"~COL_NET_6~Fixed blacked out screen");
}
if(SelectedItem == 11)
{
DrawDevWindow = !DrawDevWindow;
menu_item[SelectedItem].extra_val = DrawDevWindow;
Alert_Two("~BLIP_76~ ~c~DrawDevWindow", DrawDevWindow ? PrintON : PrintOFF ,false);
}
}

View File

@@ -0,0 +1,367 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
//THIS MUST BE MADE PREMIUM ONLY!
*/
#pragma once
/***COMPILER FIX BY DEVIL FOR ERRORS IN COMPILE ---> CHECK THIS !!!!!!***/
int draw_invite_received_tick;
void MC_Invite_Main_Setup(void){
MENU_HEADER = MD_Extend_Header; //does this need to be set?
MENU_SUB_HEADER = "Invite Manager";
AddSubMenu("Received ~COL_NET_4~Invites ~PAD_RIGHT~");
AddSubMenu("Send ~COL_NET_4~Invites ~PAD_RIGHT~");
}
void MC_Recieved_Invites_Setup(void){
//MENU_HEADER = MD_Extend_Header; //wont change
MENU_SUB_HEADER = "Received Invites";
int i;
int items = 0;
for(i = 0; i < NETWORK_GET_NUM_UNACCEPTED_INVITES(); i++)
{
AddFunction(NETWORK_GET_UNACCEPTED_INVITER_NAME(i));
items++;
menu_item[items].num_val = i;
//NETWORK_GET_UNACCEPTED_INVITE_EPISODE(i) // 0 = orig, 1 = tlad, 2 = tbogt (we can draw it or something)
}
if(items == 0)
{
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR, true);
Add_Error("No Invites Received");
Add_Error("Press ~PAD_B~ To Return");
}
}
void MC_Invite_Players_Setup(void){
//MENU_HEADER = MD_Extend_Header; //wont change
MENU_SUB_HEADER = "Send invites";
int i;
int friendsPlayingIVIndex[20];
int friendsPlayingIVcount = 0;
for(i = 0; i < NETWORK_GET_FRIEND_COUNT(); i++)
{ //NATIVES ON LINE BELOW ARE CORRECT!! Rockstar does some weird shit with these to confuse us i think, i reversed it all though :D
//if(!NETWORK_IS_FRIEND_ONLINE(NETWORK_GET_FRIEND_NAME(i)) || !NETWORK_IS_FRIEND_IN_SAME_TITLE(i)) continue;
if(!NETWORK_IS_FRIEND_ONLINE(NETWORK_GET_FRIEND_NAME(i)) || !NETWORK_IS_FRIEND_IN_SAME_TITLE(NETWORK_GET_FRIEND_NAME(i))) continue;
AddFunction(NETWORK_GET_FRIEND_NAME(i));
//menu_item[13].extra_val = false; //show user freeze weather OFF
friendsPlayingIVcount++;
// is + 1 because hasn't updated yet and is 0, leave it alone
menu_item[friendsPlayingIVcount].num_val = i; //current friends index
if(friendsPlayingIVcount >= 20)
{
break;
}
//extern boolean NETWORK_IS_FRIEND_IN_SAME_TITLE(uint friendid); //do draws with this
//bool NETWORK_DID_INVITE_FRIEND(char *friendname);//NETWORK_GET_FRIEND_NAME(I) //given i
//had to change the invite native from char to friendindex, net did invite friend could also need changing.
}
if(friendsPlayingIVcount == 0)
{
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR, true);
Add_Error("No Friends Playing GTA IV");
Add_Error("Press ~PAD_B~ To Return");
}
//AddSubMenu("Send Sample");
}
//extern char *NETWORK_GET_FRIEND_NAME(int id);
//for (I < NETWORK_GET_FRIEND_COUNT()) if (NETWORK_IS_FRIEND_ONLINE(NETWORK_GET_FRIEND_NAME(I))
void MC_Recieved_Invites_Action(void)
{
if(SelectedItem >= 1)
{
Fix_Game_Before_Leaving();
NETWORK_ACCEPT_INVITE(menu_item[SelectedItem].num_val);
}
}
void MC_Invite_Players_Action(void)
{
if(SelectedItem > 0 && !GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR))
{
if(!In_Network)
{
Alert("~b~MD: ~s~You wanna try break things huh? - Nathan", true); //haha keep this it's funny - Nathan :P
return;
}
int i;
const char* FriendsName = NETWORK_GET_FRIEND_NAME(menu_item[SelectedItem].num_val);
for(i = 0; i < MAX_PLAYERS; i++)
{
if(Invalid_Player(i)) continue;
if(COMPARE_STRING(FriendsName,GET_PLAYER_NAME(i)))
{
char* buffer[16];
Strcpy(buffer, "~b~MD: ");
PLAYER_NAME_WITH_COLOUR(i, &buffer); //33 characrers
Strcat(buffer, " ~s~is already in this game."); //61
Alert(buffer,false);
return;
}
}
//still seems to freeze, perhaps it takes friend index hmmm, unsure for now, all code above works sooo :S
char* buffer[16]; //64 chars
Strcpy(buffer, "~b~MD: ~s~"); //18
/*
if(NETWORK_DID_INVITE_FRIEND(FriendsName))
{
Strcat(buffer, FriendsName); //15 max + 18 = 33
Strcat(buffer, " has already been invited.");
}
else
{
*/
NETWORK_INVITE_FRIEND(FriendsName);
menu_item[SelectedItem].extra_val = true; //display invited flashing ghost
Strcat(buffer, FriendsName); //15 max + 18 = 33
Strcat(buffer, " was invited to the game.");
/*
if(!delivered)
{
Strcat(buffer, "Invite sent but not delivered."); //30 + 18 = 48
}*/
//}
Alert(buffer,true);
}
}
#ifdef Premium
void RECEIVED_INVITES_NOTIFY(void) //should figure the phone script name that manages invites, and run this code when that's not active
{
//global needed "LastNumUnacceptedInvites = 0;
char *Inviter_Friendsname;
int num_Invites = NETWORK_GET_NUM_UNACCEPTED_INVITES();
if(num_Invites != LastNumUnacceptedInvites)
{
//invite received
//make a beepy noise here.
draw_invite_received_tick = (GetTickCount() + 3000);
LastNumUnacceptedInvites = num_Invites;
}
else if(num_Invites < LastNumUnacceptedInvites)
{
LastNumUnacceptedInvites = num_Invites; //silent update
}
// NETWORK_GET_UNACCEPTED_INVITER_NAME(num_Invites - 1);
if(draw_invite_received_tick != 0)
{
if(draw_invite_received_tick > GetTickCount())
{
if(!HAS_STREAMED_TXD_LOADED("network"))
{
REQUEST_STREAMED_TXD("network", 1);
while (!HAS_STREAMED_TXD_LOADED("network")) WAIT(0);
}
Invite_Icon = GET_TEXTURE_FROM_STREAMED_TXD( "network", "ICON_INVITE" );
DRAW_SPRITE(Invite_Icon,0.3, 0.4, 0.0600, 0.0600, 0, 255, 255, 255, 255);
//Inviter_Friendsname = NETWORK_GET_UNACCEPTED_INVITER_NAME(NETWORK_GET_NUM_UNACCEPTED_INVITES() - 1);
Inviter_Friendsname = NETWORK_GET_UNACCEPTED_INVITER_NAME(0); //yes 0
Set_Up_Draw(Names_Txt_Size, 255, 255, 255, 255, 0, 0, 0);
SET_TEXT_CENTRE(1);
SET_TEXT_USE_UNDERSCORE(true);
SET_TEXT_FONT(Player_Name_Font);
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.5, 0.4, "STRING", Inviter_Friendsname);
//NETWORK_GET_UNACCEPTED_INVITER_NAME(NETWORK_GET_NUM_UNACCEPTED_INVITES() - 1)
// NETWORK_GET_UNACCEPTED_INVITER_NAME(num_Invites - 1);
//Need to add a scan here as who invited u and i will draw it
}
else
{
draw_invite_received_tick = 0;
//RELEASE_TEXTURE(Invite_Icon);
}
}
}
#endif
/*
void INVITE_ANTI_WAIT_DELIVERY_CHECK_LOOP(void) //nah nah nah
{
//need global
//int invitedFriendIndex, and if it's != -1 then person invited check arrival blah
//inviteTick;
if(inviteTick > (GetTickCount() +
}
*/
/* INVITE ALL FRIENDS TEST
int i;
for(i = 0; i < NETWORK_GET_FRIEND_COUNT(); i++)
{
if(NETWORK_DID_INVITE_FRIEND(NETWORK_GET_FRIEND_NAME(i))) continue;
NETWORK_INVITE_FRIEND(NETWORK_GET_FRIEND_NAME(i), "");
print_two(NETWORK_GET_FRIEND_NAME(i),"was sent an invite to the game");
int tick = 0;
do
{
if(!NETWORK_CHECK_INVITE_ARRIVAL(i))
{
tick++; //total of 3 seconds (30 times 100ms)
WAIT(100);
}
else
{
NETWORK_CLEAR_INVITE_ARRIVAL();
print_two("invite was successfully delivered to",NETWORK_GET_FRIEND_NAME(i));
break;
}
}
while(tick < 30);
WAIT(10);
}
*/
/*
PRINT ALL UNACCEPTED INVITE GAMERTAGS
int i;
char* episode[3]; episode[0] = "Original"; episode[1] = "TLaD"; episode[2] = "TBoGT";
for(i = 0; i < GET_NUM_UNACCEPTED_INVITES(); i++)
{
//GET_EPISODE_NAME(uint episodeIndex);
print_two(NETWORK_GET_UNACCEPTED_INVITER_NAME(i),episode[NETWORK_GET_UNACCEPTED_INVITE_EPISODE(i)]);
// NETWORK_ACCEPT_INVITE(i);
}
*/
/*
extern char *NETWORK_GET_UNACCEPTED_INVITER_NAME(int invite_id);
extern int NETWORK_ACCEPT_INVITE(int invite_id);
extern boolean NETWORK_DID_INVITE_FRIEND(char *friendname);//NETWORK_GET_FRIEND_NAME(I)
extern int NETWORK_ACCEPT_INVITE(int invite_id);//if (COMPARE_STRING( NETWORK_GET_FRIEND_NAME( uParam0 ), NETWORK_GET_UNACCEPTED_INVITER_NAME( Result ) )) return result;
//possibly
*/
/* GAME STUFF
///WORTH NOTING FOR USING BLOCKED/MUTED NATIVES IN FUTURE (this is from cellphone script in its selection detection/action)
if ((NETWORK_AM_I_MUTED_BY_PLAYER( l_U2161 )) || ((NETWORK_IS_PLAYER_MUTED_BY_ME( l_U2161 )) || ((NETWORK_AM_I_BLOCKED_BY_PLAYER( l_U2161 )) || (NETWORK_IS_PLAYER_BLOCKED_BY_ME( l_U2161 )))))
{
sub_3643( 1069 );
sub_3036( "/n ***************" );
sub_3036( " NOT GOT PRIV" );
sub_3036( "/n ***************" );
}
//l_U2153 = {l_U41[l_U3._fU44]._fU8}; inside Rockstars script
//first arg to sub_36555 when called is always l_U2153,
////l_U2153 = {l_U41[l_U3._fU44]._fU8}; //just anything[value].something represents a struct
//likely a player struct (the index area, they proceed to check if that value is null
//and if it's not null they use it inside friend natives.
//it's a friends gamertag / string
void sub_36555(friendstring, unknown uParam1_LikelyABufferOrString, boolean bParam2_WhenUsedAlways 1/One/True)
{
if (sub_36566( friendstring ))
{
StrCopy( (uParam1^), "INVITE_MSG_0", 16 );
}
else if (GET_NUMBER_OF_PLAYERS() == NETWORK_GET_MAX_SLOTS())
{
StrCopy( (uParam1^), "INVITE_MSG_1", 16 );
}
else if (bParam2)
{
PLAY_SOUND_FRONTEND( -1, "MOBILE_PHONE_INVITE_FRIEND" );
}
NETWORK_INVITE_FRIEND( friendstring, "" );
StrCopy( (uParam1^), "CP_INVITE_MSG", 16 );;;
return;
}
NETWORK_FIND_GAME(int GameMode, int ukn0, int ukn1, int ukn2);
int i;
for(i = 0; i < NETWORK_GET_NUMBER_OF_GAMES(); i++)
{
if(NETWORK_FIND_GAME_PENDING() || NETWORK_JOIN_GAME_PENDING()) break; //FIND_ will be false a lil while after using NETWORK_FIND_GAME
if(!NETWORK_IS_FIND_RESULT_VALID(i) || !NETWORK_IS_FIND_RESULT_UPDATED(i)) continue;
//if(match_game_search_settings && NETWORK_RESULTS_MATCHES_SEARCH_CRITERIA(i)
if(NETWORK_RESULT_MATCHES_SEARCH_CRITERIA(i))
{
}
}
//if joining a game..
if(NETWORK_JOIN_GAME_SUCCEEDED())
NETWORK_CLEAR_SUMMONS();
///////////////////////////////////
NETWORK_FIND_GAME(int GameMode, int ukn0, int ukn1, int ukn2);
if(NETWORK_FIND_GAME_PENDING())
extern boolean NETWORK_JOIN_GAME_PENDING(void);
extern boolean NETWORK_JOIN_GAME_SUCCEEDED(void);
extern boolean NETWORK_LEAVE_GAME_PENDING(void);
extern boolean PLAYER_WANTS_TO_JOIN_NETWORK_GAME(int); //if we replace phone script we can choose to allow player into game yes or no
enum eGameMode{
GAME_MODE_BOMB_DA_BASE_II = 15,
GAME_MODE_CAR_JACK_CITY = 5,
GAME_MODE_COPS_AND_CROOKS = 10,
GAME_MODE_DEAL_BREAKER = 13,
GAME_MODE_DEATHMATCH = 0,
GAME_MODE_FREE_MODE = 16,
GAME_MODE_GTA_RACE = 7,
GAME_MODE_HANGMANS_NOOSE = 14,
GAME_MODE_MAFIYA_WORK = 2,
GAME_MODE_NONE = -1,
GAME_MODE_PARTY_MODE = 8,
GAME_MODE_RACE = 6,
GAME_MODE_TEAM_CAR_JACK_CITY = 4,
GAME_MODE_TEAM_DEATHMATCH = 1,
GAME_MODE_TEAM_MAFIYA_WORK = 3,
GAME_MODE_TURF_WAR = 12,
GAME_MODE_UNKNOWN_11 = 11,
GAME_MODE_UNKNOWN_9 = 9
};
Invite stuff for future reference (Devil wants invites done through menu I think) - Nathan
extern boolean NETWORK_CHECK_INVITE_ARRIVAL(void);
extern boolean NETWORK_HAVE_ACCEPTED_INVITE(void);
extern boolean NETWORK_IS_INVITEE_ONLINE(void);
extern void NETWORK_CLEAR_INVITE_ARRIVAL(void);
extern bool NETWORK_INVITE_FRIEND(char *friendname, char *ukn);//NETWORK_INVITE_FRIEND(NETWORK_GET_FRIEND_NAME(I), "");
NETWORK_GET_NUM_UNACCEPTED_INVITES(void);
extern int NETWORK_GET_UNACCEPTED_INVITE_EPISODE(int invite_id);
extern int NETWORK_GET_UNACCEPTED_INVITE_GAME_MODE(int invite_id);
//GAME MODES v
enum eGameMode{
GAME_MODE_BOMB_DA_BASE_II = 15,
GAME_MODE_CAR_JACK_CITY = 5,
GAME_MODE_COPS_AND_CROOKS = 10,
GAME_MODE_DEAL_BREAKER = 13,
GAME_MODE_DEATHMATCH = 0,
GAME_MODE_FREE_MODE = 0x10,
GAME_MODE_GTA_RACE = 7,
GAME_MODE_HANGMANS_NOOSE = 14,
GAME_MODE_MAFIYA_WORK = 2,
GAME_MODE_NONE = -1,
GAME_MODE_PARTY_MODE = 8,
GAME_MODE_RACE = 6,
GAME_MODE_TEAM_CAR_JACK_CITY = 4,
GAME_MODE_TEAM_DEATHMATCH = 1,
GAME_MODE_TEAM_MAFIYA_WORK = 3,
GAME_MODE_TURF_WAR = 12,
GAME_MODE_UNKNOWN_11 = 11,
GAME_MODE_UNKNOWN_9 = 9
};
*/

View File

@@ -0,0 +1,867 @@
/**
* @ MD Trident
* @ MD Series: Version 13, January 2017 //#ifdef Premium IS USED HERE!
* @ Copyright (C) 2017 IIV NATHAN VII / DEVILSDESIGN
*/
//#ifdef Premium IS USED HERE! /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Created by IIV NATHAN VII
// IF ISSUES ARISE because of button priorities or something (shouldn't do) LET ME KNOW! (Nathan) I should be able to sort it!
//Controls currently at line: 205!
//COPY_ANIMATIONS(Ped ped, Ped pednext, float speed); //Put ped in water and copy anims.. SwimWalk?
//#include <natives.h>
//#include <inccommon.h>
//#include <strings.h>
//#include <types.h>
//#include <consts.h>
//PUT THESE FUNCTIONS IN SHARED!
/*
void Shuffle_Vehicle_Seat(void) //WORKS ON BIKES TOO!
{
int tmp_veh;
if(!IS_CHAR_IN_ANY_CAR(pPlayer)) return;
GET_CAR_CHAR_IS_USING(pPlayer,&tmp_veh);
if(IS_CHAR_ON_ANY_BIKE(pPlayer))
{
int driver;
GET_DRIVER_OF_CAR(tmp_veh,&driver);
if(!DOES_CHAR_EXIST(driver))
WARP_CHAR_INTO_CAR(pPlayer,tmp_veh);
else if(driver == pPlayer && IS_CAR_PASSENGER_SEAT_FREE(tmp_veh,0))
WARP_CHAR_INTO_CAR_AS_PASSENGER(pPlayer,tmp_veh,0);
}
TASK_SHUFFLE_TO_NEXT_CAR_SEAT(pPlayer,tmp_veh);
}
void Clone_Car( int cveh, float x, float y, float z, float h, int *car_clone)
{
int model;
if(!DOES_VEHICLE_EXIST(cveh)) return;
int colour1,colour2,colourEXT1,colourEXT2;
int health;
float dirt_level;
GET_CAR_MODEL(cveh,&model);
GET_CAR_COLOURS(cveh, &colour1, &colour2);
GET_EXTRA_CAR_COLOURS(cveh, &colourEXT1, &colourEXT2);
GET_CAR_HEALTH(cveh, &health);
GET_VEHICLE_DIRT_LEVEL(cveh, &dirt_level);
bool siren = IS_CAR_SIREN_ON(cveh);
////////////////
CREATE_CAR(model,x,y,z,&cveh,true);
SET_VEHICLE_ALPHA(cveh,0); //should make vehicle transparent and appear slowly...
SET_CAR_HEADING(cveh,h);
SET_CAR_ON_GROUND_PROPERLY(cveh);
SET_CAR_HEALTH(cveh,health);
CHANGE_CAR_COLOUR(cveh,colour1,colour2);
SET_EXTRA_CAR_COLOURS(cveh,colourEXT1,colourEXT2);
SET_VEHICLE_DIRT_LEVEL(cveh,dirt_level); //can adjust dirt level and health based on vehicle helper being on..
SWITCH_CAR_SIREN(cveh,siren);
//If Vehicle helper looped (we can do this on tick delay!)
//SET_CAR_CAN_BE_DAMAGED(cveh,!vehicle_helper);
//SET_CAR_CAN_BE_VISIBLY_DAMAGED(cveh,!vehicle_helper);
//if doesn't work use SET_CAR_PROOFS(cveh,bool bulletproof, bool fireproof, bool explosionproof, bool colissionproof, bool meleeproof);
car_clone = cveh;
}
*/
#ifdef Premium //This is for the enum and loop voids
enum eKeyboardAntiPauseActions{
ACTION_COMPLETE_AND_DISABLED = 0,
ACTION_NETWORK_SPY_PLAYER = 1,
ACTION_NETWORK_MUTE_PLAYER = 2,
ACTION_NETWORK_KICK_PLAYER = 3,
ACTION_NETWORK_VIEW_PLAYER_PROFILE = 4,
};
void VerifyKeyboardSelectedNetworkIndex(void)
{
register int i;
if(Player_Display_Selection(KeyboardSelectedPlayerIndex)) //Skips developers :P
{
for(i = 0; i < MAX_PLAYERS; i++)
{
if(Player_Display_Selection(i)) continue;
KeyboardSelectedPlayerIndex = i;
return;
}
}
}
void MC_Keyboard_Network_Anti_Wait_Loop(void)
{
if(KeyboardAntiWaitAction == ACTION_COMPLETE_AND_DISABLED) return;
VerifyKeyboardSelectedNetworkIndex();
if(IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_ESC))
{
KeyboardAntiWaitAction = ACTION_COMPLETE_AND_DISABLED;
CLEAR_PRINTS();
return;
}
else if(IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_RIGHT_ARROW))
{
KeyboardSelectedPlayerIndex++;
if(Player_Display_Selection(KeyboardSelectedPlayerIndex))
{
register int i;
for(i = KeyboardSelectedPlayerIndex; i < MAX_PLAYERS; i++)
{
if(Player_Display_Selection(i)) continue;
KeyboardSelectedPlayerIndex = i;
break;
}
if(Player_Display_Selection(KeyboardSelectedPlayerIndex)) //unable to increase
{
VerifyKeyboardSelectedNetworkIndex(); //will re-scan
}
}
}
else if(IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_LEFT_ARROW))
{
KeyboardSelectedPlayerIndex--;
if(Player_Display_Selection(KeyboardSelectedPlayerIndex))
{
register int i;
for(i = KeyboardSelectedPlayerIndex; i > -1; i--) //MAY NEED CHANGING TO 0, not sure, think this is correct! - Nathan
{
if(Player_Display_Selection(i)) continue;
KeyboardSelectedPlayerIndex = i;
break;
}
if(Player_Display_Selection(KeyboardSelectedPlayerIndex))
{
VerifyKeyboardSelectedNetworkIndex(); //will re-scan
}
}
}
char * buffer[32];
Strcpy(buffer, "~b~MD: ~PAD_LEFT~ "); //27
PLAYER_NAME_WITH_COLOUR(KeyboardSelectedPlayerIndex, &buffer); //WORKS! //45
Strcat(buffer, "~s~ ~PAD_RIGHT~~n~"); //63
if(KeyboardAntiWaitAction == ACTION_NETWORK_SPY_PLAYER)
{
Strcat(buffer, keyboard_close_on_network_selection ? "Spy = ENTER" : "Spy = ENTER, Exit = ESC");
if(IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_ENTER))
{
if(Is_Whitelisted(KeyboardSelectedPlayerIndex))
{
PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_UNREADY");
}
else
{
if(PLAYER_HAS_CHAR(KeyboardSelectedPlayerIndex))
{
int tmp_ped;
GET_PLAYER_CHAR(KeyboardSelectedPlayerIndex,&tmp_ped);
//Spectate_Char = tmp_ped;
//SpectatePlayerIndex = KeyboardSelectedPlayerIndex;
SetByteSet(&SpectateAndAttachByteSet, SPECTATE_PLAYER_INDEX, KeyboardSelectedPlayerIndex);
//MD_Spectate_Player(tmp_ped); pretty sure the loop will trigger this
if(keyboard_close_on_network_selection)
{
char * nigger[32];
Strcpy(nigger, "~b~MD: ~s~Spectating: "); //31
PLAYER_NAME_WITH_COLOUR(KeyboardSelectedPlayerIndex, &nigger); //WORKS! = 40
Strcat(nigger, "~s~.~n~Hold ~PAD_LB~ & Press ~PAD_RB~ to disable."); //74
Alert(nigger, false);
KeyboardAntiWaitAction = ACTION_COMPLETE_AND_DISABLED;
return;
}
}
}
}
}
else if(KeyboardAntiWaitAction == ACTION_NETWORK_MUTE_PLAYER)
{
Strcat(buffer, NETWORK_IS_PLAYER_MUTED_BY_ME(KeyboardSelectedPlayerIndex) ? "UnMute" : "Mute");
Strcat(buffer, keyboard_close_on_network_selection ? " = ENTER" : " = ENTER, Exit = ESC");
if(IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_ENTER))
{
if(Is_Whitelisted(KeyboardSelectedPlayerIndex))
{
NETWORK_SET_PLAYER_MUTED(KeyboardSelectedPlayerIndex,false);
PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_UNREADY");
}
else
{
NETWORK_SET_PLAYER_MUTED(KeyboardSelectedPlayerIndex, !NETWORK_IS_PLAYER_MUTED_BY_ME(KeyboardSelectedPlayerIndex));
if(keyboard_close_on_network_selection)
{
KeyboardAntiWaitAction = ACTION_COMPLETE_AND_DISABLED;
return;
}
}
}
}
else if(KeyboardAntiWaitAction == ACTION_NETWORK_KICK_PLAYER)
{
Strcat(buffer, keyboard_close_on_network_selection ? "Kick = ENTER" : "Kick = ENTER, Exit = ESC");
if(IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_ENTER))
{
if(Is_Whitelisted(KeyboardSelectedPlayerIndex))
{
PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_UNREADY");
}
else
{
NETWORK_KICK_PLAYER(KeyboardSelectedPlayerIndex);
if(keyboard_close_on_network_selection)
{
KeyboardAntiWaitAction = ACTION_COMPLETE_AND_DISABLED;
return;
}
}
}
}
else if(KeyboardAntiWaitAction == ACTION_NETWORK_VIEW_PLAYER_PROFILE)
{
Strcat(buffer, keyboard_close_on_network_selection ? "Profile = ENTER" : "Profile = ENTER, Exit = ESC");
//gt spoofers, lets allow people to view all profiles (no whitelist)
if(IS_GAME_KEYBOARD_KEY_JUST_PRESSED(KEY_ENTER))
{
NETWORK_SHOW_PLAYER_PROFILE_UI(KeyboardSelectedPlayerIndex);
if(keyboard_close_on_network_selection)
{
KeyboardAntiWaitAction = ACTION_COMPLETE_AND_DISABLED;
return;
}
}
}
CLEAR_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(false);
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", buffer, 300,true);
}
#endif
//bool keyboard_delete_abandoned_vehicles_only = true; //Has to be global!
void MC_Keyboard(void) //LOOP THIS ALWAYS!
{
#ifdef Premium
MC_Keyboard_Network_Anti_Wait_Loop();
#endif
#ifdef VERSION_PC
if(NETWORK_IS_PLAYER_TYPING(iPlayer)) return;
#endif
/*
//Controls
//HOLD W: (Weather)
//Press:
//S for Sunny
//T for thunder
//D for drizzle
//C for cloudy
//M for Misty
//B for breeze (windy)
//E for extra sunny
//F for Freeze weather toggle
/////
//HOLD T: (Time)
//Press:
//M for morning
//D for day
//N for night
//E for evening
//A for afternoon
//C for cycle time
//F for freeze time toggle
/////
//Hold V: (Vehicle)
//Press:
//F to flip
//S to shuffle seats (also works on bikes)
//R to repair
//D to delete
//C for clone
//E to eject yourself
//L to toggle door locks
//K to kick out passengers (respawns your car)
//I to set invincible
/////
//Hold D: (Delete)
//Press:
//P for peds
//O for objects
//V for vehicles (basically every type of vehicle)
//C for cars
//M for motorbikes
//B for boats
//H for helicopters
//A for abandoned vehicles only toggle
/////
//Hold P: (Player)
//Press:
//G for god mode toggle
//A for auto-aim toggle
//I for infinite ammo toggle
//W for give weapons
//V for Visibility toggle
//F for forcefield toggle
//N for never wanted toggle
//J for super jump toggle
//R for super run toggle
//K for Kill
//D for Detach
//E for Explosion (premium only)
/////
//Hold N: (Network) (premium only)
//Press:
//S for Spy (Player selection)
//M for mute (Player selection)
//K for kick (Player selection)
//P for profile
//C for Close on player selection toggle
////////////////
*/
//register int i;
int i;
//W (weather)
if(IS_GAME_KEYBOARD_KEY_PRESSED(KEY_W)) //Weather options
{
int weathers[8];
weathers[0] = WEATHER_SUNNY;
weathers[1] = WEATHER_LIGHTNING;
weathers[2] = WEATHER_RAINING;
weathers[3] = WEATHER_DRIZZLE;
weathers[4] = WEATHER_CLOUDY;
weathers[5] = WEATHER_FOGGY;
weathers[6] = WEATHER_SUNNY_WINDY;
weathers[7] = WEATHER_EXTRA_SUNNY;
int keys[9];
keys[0] = KEY_S; //weather sunny
keys[1] = KEY_T; //weather thunder
keys[2] = KEY_R; //weather raining
keys[3] = KEY_D; //weather drizzle
keys[4] = KEY_C; //weather cloudy
keys[5] = KEY_M; //weather misty (foggy)
keys[6] = KEY_B; //weather breeze (windy)
keys[7] = KEY_E; //weather extra_sunny
keys[8] = KEY_F; //freeze weather
char* messages[9];
messages[0] = "sunny.";
messages[1] = "thunder.";
messages[2] = "raining.";
messages[3] = "drizzle.";
messages[4] = "cloudy.";
messages[5] = "misty/foggy.";
messages[6] = "breezy/windy";
messages[7] = "extra sunny";
messages[8] = (GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_WEATHER) == 50 ? "un-freeze." : "freeze.");
for(i = 0; i < 9; i++)
{
if(!IS_GAME_KEYBOARD_KEY_JUST_PRESSED(keys[i])) continue;
if(i >= 0 && i < 8)
{
MD_SET_WEATHER(weathers[i]);
}
else if(i == 8)
{
if(GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_WEATHER) == 50)
{
int weatha;
GET_CURRENT_WEATHER(&weatha);
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_WEATHER, weatha);
}
else
{
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_WEATHER, 50);
}
}
Alert_Two("~b~MD: ~s~Weather command accepted",messages[i],false);
break;
//If using freeze weather set freeze weather here to weathers[i]
}
//Can make admin commands to force time and weather!
}
else if(IS_GAME_KEYBOARD_KEY_PRESSED(KEY_T)) //Time options //this is host only unless you enable freeze time! (could implement admin commands to force weather/time also)
{
//time
int keys[7];
keys[0] = KEY_M; //time morning
keys[1] = KEY_D; //time day
keys[2] = KEY_N; //time night
keys[3] = KEY_E; //time evening
keys[4] = KEY_A; //afternoon
keys[5] = KEY_F; //freeze time
keys[6] = KEY_C; //Cycle time
int times[5];
times[0] = 9; //9AM (morning)
times[1] = 12; //12 //day
times[2] = 24; //2400, midnight
times[3] = 18; //6PM //evening
times[4] = 15; //3PM Afternoon
char* messages[7];
messages[0] = "morning.";
messages[1] = "day.";
messages[2] = "midnight.";
messages[3] = "evening.";
messages[4] = "afternoon.";
messages[5] = (GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR) == 25 ? "un-freeze." : "freeze."); //Pretty sure these should be flipped as it's before process!
messages[6] = (GetBit(MD_Misc_OptionsBitSet, MD_MISC_TIME_CYCLE) ? "time cycle off." : "time cycle on."); //flipped!
for(i = 0; i < 7; i++)
{
if(!IS_GAME_KEYBOARD_KEY_JUST_PRESSED(keys[i])) continue;
if( i < 5 )
{
SET_TIME_OF_DAY(times[i],00);
if(GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR) != 25)
{
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR, times[i]);
}
}
else if(i == 5)
{
if(GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR) == 25)
{
int houa, minuta;
GET_TIME_OF_DAY(&houa,&minuta);
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR, houa);
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_MINUTE, minuta);
}
else
{
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR, 25);
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_MINUTE, 0);
}
}
else if(i == 6)
{
ToggleBit(MD_Misc_OptionsBitSet, MD_MISC_TIME_CYCLE);
}
Alert_Two("~b~MD: ~s~Time command accepted",messages[i],false);
break;
}
}
else if(IS_GAME_KEYBOARD_KEY_PRESSED(KEY_V)) //Vehicle options
{
int tmp_veh,nvid,driver;
if(IS_CHAR_IN_ANY_CAR(pPlayer))
{
GET_CAR_CHAR_IS_USING(pPlayer,&tmp_veh);
GET_DRIVER_OF_CAR(tmp_veh,&driver);
GET_NETWORK_ID_FROM_VEHICLE(tmp_veh,&nvid);
int keys[9];
keys[0] = KEY_F; //Flip vehicle
keys[1] = KEY_S; //shuffle seats
keys[2] = KEY_R; //repair vehicle
keys[3] = KEY_C; //Clone Vehicle //use KEY_C (clone) and KEY_D for Delete
keys[4] = KEY_E; //Eject from vehicle
keys[5] = KEY_L; //Lock vehicle
keys[6] = KEY_K; //kick out passengers
keys[7] = KEY_D; //Delete vehicle
keys[8] = KEY_I; //Invincibility
char* second_string = "";
for(i = 0; i < 8; i++)
{
if(!IS_GAME_KEYBOARD_KEY_JUST_PRESSED(keys[i])) continue;
if( (i == 0 || i == 2 || i == 5 || i == 8 || i == 6 || i == 7 ) && (driver != pPlayer)) //works always and avoids fcar protection net id glitch
{
if(!network_control(nvid)) continue;
}
float x,y,z,h;
GET_CHAR_COORDINATES(pPlayer,&x,&y,&z);
GET_CHAR_HEADING(pPlayer,&h);
if(i == 0) //KEY_F (flip)
{
SET_CAR_ON_GROUND_PROPERLY(tmp_veh);
second_string = "flip vehicle.";
}
else if(i == 1) //KEY_S (shuffle seats)
{
Shuffle_Vehicle_Seat();
second_string = "shuffle seats.";
}
else if(i == 2) //KEY_R //repair
{
FIX_CAR(tmp_veh);
SET_VEHICLE_DIRT_LEVEL(tmp_veh,0.0);
second_string = "repair vehicle.";
}
else if(i == 3) //KEY_C //clone vehicle
{
int rand,tmp;
GET_CAR_HEADING(tmp_veh,&h);
GENERATE_RANDOM_INT_IN_RANGE(0,1,&rand);
GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(tmp_veh,(rand == 1 ? +3 : -3),0,0,&x,&y,&z);
Clone_Car(tmp_veh,x,y,z,h,&tmp);
OPEN_CAR_DOOR(tmp,(rand == 1 ? 0 : 1)); //if spawned on right, open drivers door, if spawned on left, open passenger door
second_string = "clone vehicle.";
}
else if(i == 4) //KEY_E //Eject from vehicle
{
REMOVE_CHAR_FROM_CAR_MAINTAIN_POSITION(pPlayer,tmp_veh); //TEST THIS! - Nathan --> this works!
second_string = "eject from vehicle.";
}
else if(i == 5) //KEY_L //Lock vehicle
{
int lock;
GET_CAR_DOOR_LOCK_STATUS(tmp_veh,&lock);
LOCK_CAR_DOORS(tmp_veh, ( (lock == VEHICLE_DOOR_UNLOCKED) ? VEHICLE_DOOR_LOCKED_BOTH_SIDES : VEHICLE_DOOR_UNLOCKED) );
second_string = (lock == VEHICLE_DOOR_UNLOCKED ? "doors locked." : "doors unlocked.");
}
else if(i == 6) //KEY_K //kick out passengers
{
#ifdef Premium
int tmp;
float speed;
GET_CAR_SPEED(tmp_veh,&speed);
Clone_Car(tmp_veh,x,y,z,h,&tmp);
DELETE_CAR(&tmp_veh);
WARP_CHAR_INTO_CAR(pPlayer,tmp);
SET_CAR_FORWARD_SPEED(tmp,speed);
second_string = "eject passengers.";
#else
Alert(PREMIUM_ONLY_STRING,true);
return;
#endif
}
else if(i == 7) //KEY_D //delete vehicle
{
DELETE_CAR(&tmp_veh);
second_string = "delete vehicle.";
}
else if(i == 8)
{
SET_CAR_CAN_BE_DAMAGED(tmp_veh,false);
SET_CAR_CAN_BE_VISIBLY_DAMAGED(tmp_veh,false);
SET_CAN_BURST_CAR_TYRES(tmp_veh,false);
SET_CAR_PROOFS(tmp_veh,true,true,true,true,true);
second_string = "set invincible.";
}
Alert_Two("~b~MD: ~s~Vehicle command accepted",second_string,false);
break;
}
}
}
else if(IS_GAME_KEYBOARD_KEY_PRESSED(KEY_D)) //Delete options
{
int keys[8];
keys[0] = KEY_P; //Peds
keys[1] = KEY_O; //Objects
keys[2] = KEY_V; //Vehicles //KEY_A for abandoned mode toggle
keys[3] = KEY_C; //Cars
keys[4] = KEY_M; //MotorBikes
keys[5] = KEY_B; //Boats
keys[6] = KEY_H; //Helicopters
keys[7] = KEY_A; //Abandoned vehicles only toggle
char deletes[7];
deletes[0] = 0;
deletes[1] = 1;
deletes[2] = (keyboard_delete_abandoned_vehicles_only ? 3 : 2);
deletes[3] = (keyboard_delete_abandoned_vehicles_only ? 5 : 4);
deletes[4] = (keyboard_delete_abandoned_vehicles_only ? 7 : 6);
deletes[5] = (keyboard_delete_abandoned_vehicles_only ? 9 : 8);
deletes[6] = (keyboard_delete_abandoned_vehicles_only ? 11 : 10);
for(i = 0; i < 8; i++)
{
if(!IS_GAME_KEYBOARD_KEY_JUST_PRESSED(keys[i])) continue;
if(i == 7)
{
keyboard_delete_abandoned_vehicles_only = !keyboard_delete_abandoned_vehicles_only;
Alert_Two("~b~MD: ~s~Keyboard's vehicle delete mode",(keyboard_delete_abandoned_vehicles_only ? "abandoned only." : "all."),false);
break;
}
Universal_Delete(325,deletes[i],true);
break;
}
}
else if(IS_GAME_KEYBOARD_KEY_PRESSED(KEY_P)) //Player options
{
int keys[12];
keys[0] = KEY_G; //God mode toggle
keys[1] = KEY_I; //Infinite ammo toggle
keys[2] = KEY_W; //Give weapons (must make function give_weapons(ped, episode))
keys[3] = KEY_K; //Kill self
keys[4] = KEY_N; //Never wanted
keys[5] = KEY_F; //Forcefield
keys[6] = KEY_V; //Visibility
keys[7] = KEY_J; //Super jump
keys[8] = KEY_R; //Super run
keys[9] = KEY_A; //Auto-aim
keys[10] = KEY_D; //Detach
keys[11] = KEY_E; //Explosion (premium only)
//keys[] = KEY_P; //Super punch (also known as super powers)
char* second_string = "";
for(i = 0; i < 12; i ++)
{
if(!IS_GAME_KEYBOARD_KEY_JUST_PRESSED(keys[i])) continue;
if(i == 0) //God mode toggle
{
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE);
second_string = (GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE) ? "god mode on." : "god mode off.");
}
else if(i == 1)
{
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_INFINITE_AMMO);
second_string = (GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_INFINITE_AMMO) ? "infinite ammo on." : "infinite ammo off.");
}
else if(i == 2)
{
GIVE_EPISODIC_WEAPONS_TO_CHAR(pPlayer,Episode);
second_string = "give weapons.";
}
else if(i == 3)
{
SET_CHAR_HEALTH(pPlayer,-1);
second_string = "kill.";
}
else if(i == 4)
{
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_NEVER_WANTED);
second_string = (GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_NEVER_WANTED) ? "never wanted on." : "never wanted off.");
}
else if(i == 5)
{
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_FORCE_FIELD);
second_string = (GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FORCE_FIELD) ? "force field on." : "force field off.");
}
else if(i == 6)
{
SET_CHAR_VISIBLE(pPlayer,!IS_CHAR_VISIBLE(pPlayer));
second_string = (IS_CHAR_VISIBLE(pPlayer) ? "invisibility off." : "invisibility on.");
}
else if(i == 7)
{
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_SUPER_JUMP);
second_string = (GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_SUPER_JUMP) ? "super jump on." : "super jump off.");
}
else if(i == 8)
{
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_SUPER_RUN);
second_string = (GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_SUPER_RUN) ? "super run on." : "super run off.");
}
else if(i == 9)
{
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_INFINITE_AMMO);
second_string = (GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_INFINITE_AMMO) ? "auto-aim on." : "auto-aim off.");
}
else if(i == 10)
{
Detach_pPlayer();
second_string = "detached.";
}
else if(i == 11) //explosion
{
#ifdef Premium
float x,y,z;
GET_CHAR_COORDINATES(pPlayer, &x, &y, &z);
ADD_EXPLOSION(x, y, z, EXPLOSION_SHIP_DESTROY, 10.0, true, false, 0.7f);
second_string = "explosion.";
#else
Alert(PREMIUM_ONLY_STRING,true);
return;
#endif
}
Alert_Two("~b~MD: ~s~Player command accepted",second_string,false);
break;
}
}
else if(IS_GAME_KEYBOARD_KEY_PRESSED(KEY_N)) //Network Options
{
#ifdef Premium
int keys[5];
keys[0] = KEY_S; //Spy on player
keys[1] = KEY_M; //Mute player
keys[2] = KEY_K; //kick player
keys[3] = KEY_C; //Close on network player selection toggle
keys[4] = KEY_P; //Open profile of player
//no second string needed here as loop handles it..
for(i = 0; i < 5; i++)
{
if(!IS_GAME_KEYBOARD_KEY_JUST_PRESSED(keys[i])) continue;
if(i == 0)
{
KeyboardAntiWaitAction = ACTION_NETWORK_SPY_PLAYER;
return; //YES THIS IS SUPPOSED TO BE HERE! INPUT IS NOW LISTENED FOR BY THE OTHER FUNCTION
}
else if(i == 1)
{
KeyboardAntiWaitAction = ACTION_NETWORK_MUTE_PLAYER;
return;
}
else if(i == 2)
{
if(IS_THIS_MACHINE_THE_SERVER())
{
KeyboardAntiWaitAction = ACTION_NETWORK_KICK_PLAYER;
return;
}
else
{
Alert("~b~MD: ~s~You are not host.",false);
}
}
else if(i == 3)
{
keyboard_close_on_network_selection = !keyboard_close_on_network_selection;
if(KeyboardAntiWaitAction == ACTION_COMPLETE_AND_DISABLED)
{
Alert( keyboard_close_on_network_selection ? "~b~MD: ~s~Keyboard menu will now close on player selection." : "~b~MD: ~s~Keyboard menu will now stay open on player selection.",false);
}
}
else if(i == 4)
{
KeyboardAntiWaitAction = ACTION_NETWORK_VIEW_PLAYER_PROFILE;
return;
}
}
#else
Alert(PREMIUM_ONLY_STRING,true);
return;
#endif
}
}
/* Invite stuff for future reference (Devil wants invites done through menu I think) - Nathan
extern boolean NETWORK_CHECK_INVITE_ARRIVAL(void);
extern boolean NETWORK_HAVE_ACCEPTED_INVITE(void);
extern boolean NETWORK_IS_INVITEE_ONLINE(void);
extern void NETWORK_CLEAR_INVITE_ARRIVAL(void);
extern void NETWORK_INVITE_FRIEND(char *friendname, char *ukn);//NETWORK_INVITE_FRIEND(NETWORK_GET_FRIEND_NAME(I), "");
NETWORK_GET_NUM_UNACCEPTED_INVITES(void);
extern int NETWORK_GET_UNACCEPTED_INVITE_EPISODE(int invite_id);
extern int NETWORK_GET_UNACCEPTED_INVITE_GAME_MODE(int invite_id);
*/
//GAME MODES v
/*
enum eGameMode{
GAME_MODE_BOMB_DA_BASE_II = 15,
GAME_MODE_CAR_JACK_CITY = 5,
GAME_MODE_COPS_AND_CROOKS = 10,
GAME_MODE_DEAL_BREAKER = 13,
GAME_MODE_DEATHMATCH = 0,
GAME_MODE_FREE_MODE = 0x10,
GAME_MODE_GTA_RACE = 7,
GAME_MODE_HANGMANS_NOOSE = 14,
GAME_MODE_MAFIYA_WORK = 2,
GAME_MODE_NONE = -1,
GAME_MODE_PARTY_MODE = 8,
GAME_MODE_RACE = 6,
GAME_MODE_TEAM_CAR_JACK_CITY = 4,
GAME_MODE_TEAM_DEATHMATCH = 1,
GAME_MODE_TEAM_MAFIYA_WORK = 3,
GAME_MODE_TURF_WAR = 12,
GAME_MODE_UNKNOWN_11 = 11,
GAME_MODE_UNKNOWN_9 = 9
};
*/
/* INVITE ALL FRIENDS TEST
int i;
for(i = 0; i < NETWORK_GET_FRIEND_COUNT(); i++)
{
if(NETWORK_DID_INVITE_FRIEND(NETWORK_GET_FRIEND_NAME(i))) continue;
NETWORK_INVITE_FRIEND(NETWORK_GET_FRIEND_NAME(i), "");
print_two(NETWORK_GET_FRIEND_NAME(i),"was sent an invite to the game");
int tick = 0;
do
{
if(!NETWORK_CHECK_INVITE_ARRIVAL(i))
{
tick++; //total of 3 seconds (30 times 100ms)
WAIT(100);
}
else
{
NETWORK_CLEAR_INVITE_ARRIVAL();
print_two("invite was successfully delivered to",NETWORK_GET_FRIEND_NAME(i));
break;
}
}
while(tick < 30);
WAIT(10);
}
*/
/*
PRINT ALL UNACCEPTED INVITE GAMERTAGS
int i;
char* episode[3]; episode[0] = "Original"; episode[1] = "TLaD"; episode[2] = "TBoGT";
for(i = 0; i < GET_NUM_UNACCEPTED_INVITES(); i++)
{
print_two(NETWORK_GET_UNACCEPTED_INVITER_NAME(i),episode[NETWORK_GET_UNACCEPTED_INVITE_EPISODE(i)]);
// NETWORK_ACCEPT_INVITE(i);
}
*/
/*
extern char *NETWORK_GET_UNACCEPTED_INVITER_NAME(int invite_id);
extern int NETWORK_ACCEPT_INVITE(int invite_id);
extern boolean NETWORK_DID_INVITE_FRIEND(char *friendname);//NETWORK_GET_FRIEND_NAME(I)
extern int NETWORK_ACCEPT_INVITE(int invite_id);//if (COMPARE_STRING( NETWORK_GET_FRIEND_NAME( uParam0 ), NETWORK_GET_UNACCEPTED_INVITER_NAME( Result ) )) return result;
//possibly
*/
/* GAME STUFF
NETWORK_FIND_GAME(int GameMode, int ukn0, int ukn1, int ukn2);
int i;
for(i = 0; i < NETWORK_GET_NUMBER_OF_GAMES(); i++)
{
if(NETWORK_FIND_GAME_PENDING() || NETWORK_JOIN_GAME_PENDING()) break; //FIND_ will be false a lil while after using NETWORK_FIND_GAME
if(!NETWORK_IS_FIND_RESULT_VALID(i) || !NETWORK_IS_FIND_RESULT_UPDATED(i)) continue;
//if(match_game_search_settings && NETWORK_RESULTS_MATCHES_SEARCH_CRITERIA(i)
if(NETWORK_RESULT_MATCHES_SEARCH_CRITERIA(i))
{
}
}
//if joining a game..
if(NETWORK_JOIN_GAME_SUCCEEDED())
NETWORK_CLEAR_SUMMONS();
///////////////////////////////////
NETWORK_FIND_GAME(int GameMode, int ukn0, int ukn1, int ukn2);
if(NETWORK_FIND_GAME_PENDING())
extern boolean NETWORK_JOIN_GAME_PENDING(void);
extern boolean NETWORK_JOIN_GAME_SUCCEEDED(void);
extern boolean NETWORK_LEAVE_GAME_PENDING(void);
extern boolean PLAYER_WANTS_TO_JOIN_NETWORK_GAME(int); //if we replace phone script we can choose to allow player into game yes or no
enum eGameMode{
GAME_MODE_BOMB_DA_BASE_II = 15,
GAME_MODE_CAR_JACK_CITY = 5,
GAME_MODE_COPS_AND_CROOKS = 10,
GAME_MODE_DEAL_BREAKER = 13,
GAME_MODE_DEATHMATCH = 0,
GAME_MODE_FREE_MODE = 0x10,
GAME_MODE_GTA_RACE = 7,
GAME_MODE_HANGMANS_NOOSE = 14,
GAME_MODE_MAFIYA_WORK = 2,
GAME_MODE_NONE = -1,
GAME_MODE_PARTY_MODE = 8,
GAME_MODE_RACE = 6,
GAME_MODE_TEAM_CAR_JACK_CITY = 4,
GAME_MODE_TEAM_DEATHMATCH = 1,
GAME_MODE_TEAM_MAFIYA_WORK = 3,
GAME_MODE_TURF_WAR = 12,
GAME_MODE_UNKNOWN_11 = 11,
GAME_MODE_UNKNOWN_9 = 9
};
*/

View File

@@ -0,0 +1,66 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MD_Main_Setup(void){
MENU_HEADER = MD_Extend_Header;
MENU_SUB_HEADER = MD_Extend_SubHeader;
AddSubMenu("Player ~COL_NET_1~Options ~PAD_RIGHT~"); //1
AddSubMenu("Network ~COL_NET_2~Options ~PAD_RIGHT~"); //2
AddSubMenu("Vehicle Garage ~COL_NET_3~Options ~PAD_RIGHT~"); //3
AddSubMenu("Weapon ~COL_NET_4~Options ~PAD_RIGHT~"); //4
AddSubMenu("Teleport ~COL_NET_5~Options ~PAD_RIGHT~"); //5
AddSubMenu("Weather / Time ~COL_NET_6~Options ~PAD_RIGHT~"); //6
AddSubMenu("Model Changer ~PAD_RIGHT~"); //7
AddSubMenu("Animations / Strides ~PAD_RIGHT~"); //8
AddSubMenu("Object Attachments ~COL_NET_7~Options ~PAD_RIGHT~"); //9
AddSubMenu("Rotation Engine ~COL_NET_8~Options ~PAD_RIGHT~"); //10
AddSubMenu("Content Builder ~COL_NET_9~Options ~PAD_RIGHT~"); //11
Add_JumpOver("~BLIP_94~ M o d l o a d i n g ~BLIP_94~"); //12
AddSubMenu("Mod Manager ~PAD_RIGHT~"); //13
AddSubMenu("Personal Add-Ons & AutoLoads ~PAD_RIGHT~"); //14
Add_JumpOver("~BLIP_94~ M e n u S e t t i n g s ~BLIP_94~"); //15
AddSubMenu("Menu / Game ~COL_NET_10~Settings ~PAD_RIGHT~"); //16
Add_JumpOver("~BLIP_94~ S h o r t C u t s ~BLIP_94~"); //17
AddFunction_Value("Quick Delete",12); //Exact Number of strings //18
AddFunction_Num("~BLIP_33~ Set Quick Delete Distance",350); //19
AddFunction_Value("Quick Options",10); //Exact Number of strings //20
AddSubMenu("CREDITS / DEVELOPMENT"); //21
#ifdef Premium
AddSubMenu("Premium ~COL_NET_11~Options ~PAD_RIGHT~"); //22
#endif
menu_item[19].num_val = Delete_Distance_Radius; //set current/default value once on setup
}
void MD_Main_Action(void){
if(SelectedItem == 18){
Universal_Delete(Delete_Distance_Radius, menu_item[SelectedItem].num_val, true); //prints inside function :D
}
else if(SelectedItem == 19){
Delete_Distance_Radius = menu_item[SelectedItem].num_val;
char * buffer[16];
Strcpy(buffer, "~b~MD: ~s~Quick Delete Distance Set: "); //37
itoa(Delete_Distance_Radius, buffer); // + 3 // 40
Strcat(buffer, "."); //41
Alert(buffer, false);
}
else if(SelectedItem == 20){
MD_PlayerOption_Strings_Action();
}
}
void Premium_Loop(void){ // ONLY WHEN NETWORK
float mx,my,mz;
if(Resurrect){
if(IS_CHAR_DEAD(pPlayer)){
GET_CHAR_COORDINATES(pPlayer,&mx,&my,&mz);
RESURRECT_NETWORK_PLAYER( iPlayer, mx,my,mz, 0 );
SET_CHAR_HEALTH(pPlayer,300);
}
}
}

View File

@@ -0,0 +1,62 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version V7 ULTIMATE
*/
#pragma once
void mapmod_setup(void){
MENU_SUB_HEADER = "MapMods";
/*
Load("~BLIP_68~ Airport Tele Green Cloud",script_status("ml3")); //1
AddBool("~BLIP_68~ Airport Tele Sky High",script_status("ml4")); //2
AddBool("~BLIP_68~ Airport Tele City View",script_status("ml5")); //4
AddBool("~BLIP_68~ Airport Tele Underwater",script_status("ml6")); //5
AddBool("~BLIP_68~ Airport Race Track",script_status("ml13")); //6
AddBool("~BLIP_68~ Airport Drag Track",script_status("ml14")); //7
AddBool("~BLIP_68~ Airport Rally Track",script_status("ml15")); //8
*/
AddFunction("~BLIP_52~ Devils Cloud (Green Cloud Remake)"); //8
}
void mapmod_action(void){
/*
if(SelectedItem == 1){
toggle_script("ml3","~BLIP_76~ ~c~Airport Tele Green Cloud",SelectedItem);
}
else if(SelectedItem == 2){
toggle_script("ml4","~BLIP_76~ ~c~Airport Tele Sky High",SelectedItem);
}
else if(SelectedItem == 3){
toggle_script("ml5","~BLIP_76~ ~c~Airport Tele City View",SelectedItem);
}
else if(SelectedItem == 4){
toggle_script("ml6","~BLIP_76~ ~c~Airport Tele Underwater",SelectedItem);
}
else if(SelectedItem == 5){
toggle_script("ml13","~BLIP_76~ ~c~Airport Race Track",SelectedItem);
}
else if(SelectedItem == 6){
toggle_script("ml14","~BLIP_76~ ~c~Airport Drag Track",SelectedItem);
}
else if(SelectedItem == 7){
toggle_script("ml15","~BLIP_76~ ~c~Airport Rally Track",SelectedItem);
}
/*
else if(SelectedItem == 9){
Garage_Gunshop();
print("~BLIP_76~ ~c~Garage And GunShop Created By ~COL_NET_3~* iiVxR3B0RN *~n~ ~w~21 Objects");
}
*/
/*
else if(SelectedItem == 8){
Ramp_Devilscloud();
}
/*
else if(SelectedItem == 10){
//
}
else if(SelectedItem == 11){
//
}
*/
}

View File

@@ -0,0 +1,105 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version V7 ULTIMATE
* @ DEV TEAM V7- DEVILSDESIGN,
*/
/*
void Garage_Gunshop(void){
int object;
//OK function = create map opject for 1 object
//*create_map_obj(modelhash, x, y, z, h, qx, qy, qz, qw, bool dynamic (1 for true - 0 for fixed)){ //Garage And GunShop Mobile Teleports
create_map_obj(1859734186, 2223.2969, 801.0453, 4.7893, 350.0000, 0.0000, 0.0000, -0.0872, 0.9962,0); //BM_Contnr_01a //Garage
create_map_obj(1859734186, 2224.6497, 795.6399, 4.7959, 260.0000, 0.0000, 0.0000, 0.7660, -0.6428,0); //BM_Contnr_01a
create_map_obj(1859734186, 2226.9272, 808.5973, 4.7959, 260.0000, 0.0000, 0.0000, 0.7660, -0.6428,0); //BM_Contnr_01a
create_map_obj(1859734186, 2224.6497, 795.6399, 7.8734, 260.0001, 0.0000, 0.0000, 0.7660, -0.6428,0); //BM_Contnr_01a
create_map_obj(1859734186, 2226.9456, 808.6028, 7.8734, 260.0001, 0.0000, 0.0000, 0.7660, -0.6428,0); //BM_Contnr_01a
create_map_obj(1859734186, 2223.2969, 801.0453, 7.8734, 350.0001, 0.0000, 0.0000, -0.0872, 0.9962,0); //BM_Contnr_01a
create_map_obj(1859734186, 2230.5715, 799.8254, 7.8734, 350.0001, 0.0000, 0.0000, -0.0872, 0.9962,0); //BM_Contnr_01a
create_map_obj(1859734186, 2230.5864, 799.8786, 1.4384, 350.0001, 0.0616, 0.7044, 0.7044, 0.0616,0); //BM_Contnr_01a
create_map_obj(1859734186, 2223.2969, 801.0453, 7.8734, 350.0001, 0.0000, 0.0000, -0.0872, 0.9962,0); //BM_Contnr_01a
create_map_obj(1859734186, 2227.7200, 800.3398, 7.8646, 350.0000, 0.0000, 0.0000, -0.0872, 0.9962,0); //BM_Contnr_01a
create_map_obj(1859734186, 2225.3674, 800.7206, 7.8763, 350.0000, 0.0000, 0.0000, -0.0872, 0.9962,0); //BM_Contnr_01a
create_map_obj(1063483177, 2232.4463, 800.9276, 9.5000, 350.0000, -0.0000, 0.0000, -0.0872, 0.9962,0); //Comet
create_map_obj(1859734186, 2232.8582, 812.7408, 7.8772, 350.0000, 0.0000, 0.0000, -0.0872, 0.9962,0); //BM_Contnr_01a //GunShop
create_map_obj(1859734186, 2225.6011, 814.0947, 4.8488, 350.0000, 0.0000, 0.0000, -0.0872, 0.9962,0); //BM_Contnr_01a
create_map_obj(1859734186, 2225.6011, 814.0947, 7.8638, 350.0000, 0.0000, 0.0000, -0.0872, 0.9962,0); //BM_Contnr_01a
create_map_obj(1859734186, 2229.9805, 813.2440, 7.8638, 350.0000, 0.0000, 0.0000, -0.0872, 0.9962,0); //BM_Contnr_01a
create_map_obj(1859734186, 2227.7119, 813.6967, 7.8628, 350.0000, 0.0000, 0.0000, -0.0872, 0.9962,0); //BM_Contnr_01a
create_map_obj(1859734186, 2229.2039, 821.5180, 4.8194, 260.0000, 0.0000, 0.0000, 0.7660, -0.6428,0); //BM_Contnr_01a
create_map_obj(1859734186, 2229.1978, 821.5114, 7.8786, 260.0000, 0.0000, 0.0000, 0.7660, -0.6428,0); //BM_Contnr_01a
create_map_obj(1859734186, 2233.3999, 815.8099, 1.4055, 170.0000, 0.7044, -0.0616, -0.0616, 0.7044,0); //BM_Contnr_01a
create_map_obj(837858166, 2234.9829, 813.8961, 8.1000, 257.0000, 0.0000, 0.0000, 0.7826, -0.6225,0); //Annihilator //21 Objects Secret Freeze Aim op Anni of Comet u freeze!!
WAIT(10);
teleport_char(pPlayer,2243.1445,791.1669,5.4199); //Fix heading with it
}
*/
#pragma once
void Ramp_Devilscloud(void){//63 Objects
create_map_obj(0x869A93BF,2610.2693,-3.3062,898.0258,6.0000,0.1648,0.0086,0.0516,0.9849,0);//barge med 1
create_map_obj_offset(0x3FF006F5,2608.028,15.1102,904.2472,7.58182,-0.0261197,-0.00173071,0.0660929,0.99747,0);
create_map_obj_offset(0x3FF006F5,2607.369,20.0597,903.9912,7.58182,-0.0261197,-0.00173071,0.0660929,0.99747,0);
create_map_obj_offset(0x3FF006F5,2606.275,28.2783,902.495,7.58182,-0.138869,-0.00920151,0.0654722,0.988101,0);
create_map_obj_offset(0x3FF006F5,2605.161,36.6427,899.2219,7.58182,-0.224459,-0.0148728,0.0644211,0.972238,0);
create_map_obj_offset(0x3FF006F5,2604.152,44.2266,894.3839,7.58182,-0.324856,-0.0215251,0.0625135,0.94345,0);
create_map_obj_offset(0x3FF006F5,2603.216,51.2566,888.849,7.58182,-0.324856,-0.0215251,0.0625135,0.94345,0);
create_map_obj_offset(0x3FF006F5,2602.28,58.2866,883.3142,7.58182,-0.324856,-0.0215251,0.0625135,0.94345,0);
create_map_obj_offset(0x3FF006F5,2601.344,65.3166,877.7793,7.58182,-0.324856,-0.0215251,0.0625135,0.94345,0);
create_map_obj_offset(0x3FF006F5,2600.409,72.3466,872.2444,7.58182,-0.324856,-0.0215251,0.0625136,0.94345,0);
create_map_obj_offset(0x3FF006F5,2599.473,79.3776,866.7096,7.58182,-0.324856,-0.0215251,0.0625136,0.94345,0);//10
create_map_obj_offset(0x3FF006F5,2598.537,86.4076,861.1747,7.58182,-0.324856,-0.0215251,0.0625136,0.94345,0);
create_map_obj_offset(0x3FF006F5,2597.602,93.4376,855.6399,7.58182,-0.324856,-0.0215251,0.0625136,0.94345,0);
create_map_obj_offset(0x3FF006F5,2596.666,100.4676,850.105,7.58182,-0.324856,-0.0215251,0.0625136,0.94345,0);
create_map_obj_offset(0x3FF006F5,2595.729,107.4976,844.5701,7.58182,-0.324856,-0.0215251,0.0625136,0.94345,0);
create_map_obj_offset(0x3FF006F5,2594.794,114.5276,839.0353,7.58182,-0.324856,-0.0215251,0.0625135,0.94345,0);
create_map_obj_offset(0x3FF006F5,2594.794,114.5276,839.0414,7.58182,-0.324856,-0.0215251,0.0625135,0.94345,0);
create_map_obj_offset(0x3FF006F5,2593.859,121.5576,833.5065,7.58182,-0.324856,-0.0215251,0.0625136,0.94345,0);
create_map_obj_offset(0x3FF006F5,2592.923,128.5886,827.9717,7.58182,-0.324856,-0.0215251,0.0625136,0.94345,0);
create_map_obj_offset(0x3FF006F5,2592.507,131.7126,825.5151,7.58182,-0.291732,-0.0193303,0.0632267,0.954212,0);
create_map_obj_offset(0x3FF006F5,2592.179,134.1776,823.8436,7.58182,-0.266654,-0.0176686,0.063711,0.961522,0);//20
create_map_obj_offset(0x3FF006F5,2591.726,137.5766,821.7896,7.58182,-0.241393,-0.0159948,0.0641517,0.968173,0);
create_map_obj_offset(0x3FF006F5,2591.377,140.2026,820.3873,7.58182,-0.198932,-0.0131813,0.0647883,0.977781,0);
create_map_obj_offset(0x3FF006F5,2591.134,142.0276,819.6119,7.58182,-0.164686,-0.0109122,0.0652089,0.984128,0);
create_map_obj_offset(0x3FF006F5,2590.76,144.8396,818.6413,7.58182,-0.130241,-0.00862982,0.06555,0.989276,0);
create_map_obj_offset(0x3FF006F5,2590.377,147.7116,817.8709,7.58182,-0.0782874,-0.00518737,0.0659118,0.994736,0);
create_map_obj_offset(0x3FF006F5,2589.986,150.6516,817.425,7.58182,-0.0348231,-0.0023074,0.0660753,0.997204,0);
create_map_obj_offset(0x3FF006F5,2589.723,152.6286,817.2916,7.58182,0,0,0.0661156,0.997812,0);
create_map_obj_offset(0x3FF006F5,2589.458,154.6116,817.2977,7.58182,0.0261197,0.00173071,0.0660929,0.99747,0);
create_map_obj_offset(0x3FF006F5,2589.064,157.5816,817.4608,7.58182,0.0696038,0.00461199,0.0659546,0.995381,0);
create_map_obj_offset(0x3FF006F5,2588.672,160.5255,817.8844,7.58182,0.112956,0.0074845,0.0656906,0.991398,0);//30
create_map_obj_offset(0x3FF006F5,2588.286,163.4236,818.5653,7.58182,0.156092,0.0103428,0.0653016,0.985527,0);
create_map_obj_offset(0x3FF006F5,2587.91,166.2516,819.4985,7.58182,0.198932,0.0131813,0.0647883,0.977781,0);
create_map_obj_offset(0x3FF006F5,2587.667,168.0766,820.286,7.58182,0.224459,0.0148728,0.0644211,0.972238,0);
create_map_obj_offset(0x3FF006F5,2587.429,169.8586,821.1689,7.58182,0.258253,0.017112,0.0638628,0.963812,0);
create_map_obj_offset(0x3FF006F5,2587.087,172.4336,822.675,7.58182,0.300048,0.0198813,0.0630556,0.95163,0);
create_map_obj_offset(0x3FF006F5,2586.762,174.8696,824.4018,7.58182,0.333076,0.0220698,0.0623233,0.940579,0);
create_map_obj_offset(0x3FF006F5,2586.557,176.4106,825.6665,7.58182,0.365699,0.0242315,0.0615151,0.928382,0);
create_map_obj_offset(0x3FF006F5,2586.364,177.8606,827.0366,7.58182,0.389876,0.0258334,0.0608597,0.918491,0);
create_map_obj_offset(0x3FF006F5,2586.181,179.2376,828.4814,7.58182,0.421694,0.0279417,0.0599211,0.904325,0);
create_map_obj_offset(0x3FF006F5,2585.927,181.1496,830.7856,7.58182,0.452997,0.0300159,0.0589094,0.889057,0);//40
create_map_obj_offset(0x3FF006F5,2585.771,182.3146,832.4097,7.58182,0.483749,0.0320535,0.057826,0.872706,0);
create_map_obj_offset(0x4F9981BE,2574.952,331.6894,626.1872,30,-0.1093,-0.0293,0.2572,0.9597,0);//Oiltank//Part 2
create_map_obj_offset(0x4F9981BE,2613.535,-36.0567,877.0788,0,0,0,0,1,0);
create_map_obj_offset(0x4F9981BE,2555.344,363.9887,610.1226,349.9773,-0.2233,-0.1589,-0.0455,0.9606,0);
create_map_obj_offset(0x4F9981BE,2540.172,387.0531,592.9752,349.9773,-0.2233,-0.1589,-0.0455,0.9606,0);
create_map_obj_offset(0x4F9981BE,2523.032,411.2593,574.5654,349.9773,-0.2233,-0.1589,-0.0455,0.9606,0);
create_map_obj_offset(0x4F9981BE,2504.655,437.981,554.4042,349.9773,-0.2233,-0.1589,-0.0455,0.9606,0);
create_map_obj_offset(0x4F9981BE,2574.217,374.2687,615.1884,15,0.0672,-0.5106,0.1119,0.8498,0);
create_map_obj_offset(0x4F9981BE,2560.117,404.0603,604.0581,15,0.0672,-0.5106,0.1119,0.8498,0);
create_map_obj_offset(0x4F9981BE,2540.313,434.9852,583.0875,15,0.0672,-0.5106,0.1119,0.8498,0);//50
create_map_obj_offset(0x4F9981BE,2519.286,456.8329,562.3928,32,0.142,-0.4951,0.2363,0.824,0);
create_map_obj_offset(0x4F9981BE,2485.014,435.2813,562.3928,32,-0.142,0.4951,0.2363,0.824,0);
create_map_obj_offset(0x4F9981BE,2501.186,403.6841,578.142,49,-0.2136,0.4687,0.3555,0.78,0);
create_map_obj_offset(0x4F9981BE,2515.53,374.9822,601.2172,49,-0.2136,0.4687,0.3555,0.78,0);
create_map_obj_offset(0x4F9981BE,2534.502,347.0918,617.6455,49,-0.2136,0.4687,0.3555,0.78,0);
//jump
create_map_obj_offset(0x3FF006F5,2492.249,462.0293,559.8774,32,-0.1005,-0.0288,0.2741,0.956,0);
create_map_obj_offset(0x3FF006F5,2488.012,468.6942,558.9597,32,-0.0084,-0.0024,0.2756,0.9612,0);
create_map_obj_offset(0x3FF006F5,2484.263,474.7209,559.1417,32,0.0419,0.012,0.2754,0.9603,0);
create_map_obj_offset(0x3FF006F5,2479.984,481.5301,560.3545,32,0.1005,0.0288,0.2741,0.956,0);
create_map_obj_offset(0x3FF006F5,2476.11,487.7389,562.9146,32,0.2081,0.0597,0.2691,0.9385,0);//60
//Actionpad_Mobile_Teleporter_Devilscloud();
//print("~BLIP_76~ ~c~Devils Cloud spawned!~n~~w~Have fun! (60 objects)");
}

View File

@@ -0,0 +1,82 @@
/**
* @ MD Essentials
* @ MD Series ; Version 12, March 2016
* @ Copyright (C) 2016 DEVILSDESIGN
*/
#pragma once
void MC_Menu_Setting_Setup(void){
MENU_HEADER = MD_Extend_Header;
MENU_SUB_HEADER = "~BLIP_94~ Manager Settings ~BLIP_94~";
AddBool("~BLIP_68~ Change Menu Position ~PAD_DPAD_ALL~",GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_MOVE)); //1
AddBool("~BLIP_68~ Slide-In Effect ",GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SLIDE)); //2
AddBool("~BLIP_68~ Show All Sco's You Can Add",GetBit(MD_Misc_OptionsBitSet, MD_MISC_SHOW_MISSING_SCO)); //3
AddBool("~BLIP_68~ Ptfx Effects on Spawns & Teleports",Menu_Ptfx); //4
Add_JumpOver("~BLIP_94~ H e l p e r D i s p l a y ~BLIP_94~"); //5 >>JUMPOVER
AddBool("~PAD_RIGHT~ Keyboard Helper Display",Keyboard_Helper_Display); //6
AddBool("~PAD_RIGHT~ Spy & Flymod Helper",Draw_Spy_Helper); //7 Enable loop in weather options for keyboard
Add_JumpOver("~BLIP_94~ E p i s o d e s ~BLIP_94~"); //8 >>JUMPOVER
AddFunction("~BLIP_52~ Switch to FreeMode ~y~(GTA IV)"); //9
AddFunction("~BLIP_52~ Switch to FreeMode ~r~(TBOGT)"); //10
AddFunction("~BLIP_52~ Return to Single Player"); //11
AddFunction("~BLIP_52~ Leave Network Game"); //11
AddBool("~BLIP_68~ Kill Feed ",Print_Kill_Feed); //This will be done automatic by the menu
AddBool("~BLIP_68~ MD Player Info",MD_Player_Info);
}
void MC_Menu_Setting_Action(void){
if(SelectedItem == 1){
ToggleBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_MOVE);
menu_item[SelectedItem].extra_val = GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_MOVE);
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SLIDE, false);
}
else if(SelectedItem == 2){
ToggleBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SLIDE);
menu_item[SelectedItem].extra_val = GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SLIDE);
}
else if(SelectedItem == 3){
ToggleBit(MD_Misc_OptionsBitSet, MD_MISC_SHOW_MISSING_SCO);
menu_item[SelectedItem].extra_val = GetBit(MD_Misc_OptionsBitSet, MD_MISC_SHOW_MISSING_SCO);
}
else if(SelectedItem == 4){
Menu_Ptfx = !Menu_Ptfx;
menu_item[SelectedItem].extra_val = Menu_Ptfx;
Alert_Two("~BLIP_76~ ~c~Ptfx Effects On Various Functions", Menu_Ptfx ? PrintON : PrintOFF ,false);
}
//5 >>JUMPOVER
else if(SelectedItem == 6){
Keyboard_Helper_Display = !Keyboard_Helper_Display;
menu_item[SelectedItem].extra_val = Keyboard_Helper_Display;
}
else if(SelectedItem == 7){
Draw_Spy_Helper = !Draw_Spy_Helper;
menu_item[SelectedItem].extra_val = Draw_Spy_Helper;
}
//8 >>JUMPOVER
else if(SelectedItem == 9){
SHUTDOWN_AND_LAUNCH_NETWORK_GAME(0);
}
else if(SelectedItem == 10){
SHUTDOWN_AND_LAUNCH_NETWORK_GAME(2);
}
else if(SelectedItem == 11){
SHUTDOWN_AND_LAUNCH_SINGLE_PLAYER_GAME();
}
else if(SelectedItem == 12){
//NETWORK_LEAVE_GAME();
}
else if(SelectedItem == 13){
Print_Kill_Feed = !Print_Kill_Feed;
menu_item[SelectedItem].extra_val = Print_Kill_Feed;
Alert_Two("~BLIP_76~ ~c~KillFeed", Print_Kill_Feed ? PrintON : PrintOFF ,false);
}
else if(SelectedItem == 14){
MD_Player_Info = !MD_Player_Info;
menu_item[SelectedItem].extra_val = MD_Player_Info;
Alert_Two("~BLIP_76~ ~c~MD_Player_Info", MD_Player_Info ? PrintON : PrintOFF ,false);
}
}

View File

@@ -0,0 +1,437 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
//Devil Gona redo this!
void MC_Navigator_Setup(const int Player_ID){
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 = "~BLIP_76~ Navigator Options ~BLIP_76~";
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
Add_JumpOver("~BLIP_94~ M D N A V I G A T O R ~BLIP_94~"); //5
AddFunction_Value_CB("Player Help", 5); //6//Health - Give Armour - Remove Armour - Flip Vehicle -
AddFunction_Value_CB("Helper Loops", 4); //7//Auto Flip - Auto Fix - Juggernaut Player - Juggernaut Vehicle
AddBool_CB("Drive/Walk on Water",DOES_OBJECT_EXIST(drive_water[Player_ID]));
AddFunction_Value_CB("Weapons", 4); //9//Poor - Advanced - Episodic - Remove
AddFunction_Value_CB("Vehicle Physics", 2); //10//Desolidify(Always) - Desolidify(Shooting) - Desolidify(Air) - Freeze Position
AddFunction_Value_CB("Game Options", 6); //11//Burn Player - Burn Vehicle - Break Vehicle - Kill Player - Kick - Freak Out
AddFunction_Value_CB("Canonball",12); //12//Heli / Patriot
AddFunction_Value_CB("Forces",9); //13//
AddFunction_Value_CB("Heading",6); //14//
AddFunction_Value_CB("Transformer",6); //15//Yes we will make this work on other players:)
AddFunction_Value("Armed Vehicle",2); //16//Rocket Car - Rocket Heli - Rapid Fire Heli(Premium only)
AddFunction_Value_CB("Spawn & Help",5); //17//Spawn Buzzard - Spawn Annihilator - Spawn Sultan RS - Armour
return;
}
void MC_Navigator_Action(const int Player_ID){
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Jumpover 5
Ped Player_PED;
Vehicle vehicle;
uint vehicle_id;
float heading, speed;
//!**Player Char Check**//
if(!PLAYER_HAS_CHAR(Player_ID)){
return Alert_Abort(Error_Char_Missing,false);
}
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
if(DOES_CHAR_EXIST(Player_PED)){
if(SelectedItem == 6){
if(menu_item[SelectedItem].num_val == 1){
if(Player_PED == pPlayer)SET_CHAR_HEALTH(Player_PED,500);
else GIVE_HEALTH_TO_CHAR(Player_PED);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
Strcat(buffer, "~s~Healthpack given to: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 2){
ADD_ARMOUR_TO_CHAR(Player_PED,200);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
Strcat(buffer, "~s~Armour given to: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 3){
ADD_ARMOUR_TO_CHAR(Player_PED,-100);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
Strcat(buffer, "~s~Armour removed from: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 4){
if(IS_CHAR_IN_ANY_CAR(Player_PED)){
GET_CAR_CHAR_IS_USING(Player_PED, &vehicle);
GET_NETWORK_ID_FROM_VEHICLE(vehicle,&vehicle_id);
if(!network_control(vehicle_id))return;
GET_CAR_HEADING(vehicle,&heading);
GET_CAR_SPEED(vehicle,&speed);
}
else{
Alert(Error_NetPlayer_Vehicle,false);
return;
}
FIX_CAR(vehicle);
SET_CAR_ENGINE_ON(vehicle,true,true);
SET_VEHICLE_DIRT_LEVEL(vehicle, 0);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, "'s ~y~"); //27 Characters
Strcat(buffer, VEHICLES_MODEL_NAME(vehicle));
Strcat(buffer, "~s~ was fixed & washed"); //27 Characters
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 5){
if(IS_CHAR_IN_ANY_CAR(Player_PED)){
GET_CAR_CHAR_IS_USING(Player_PED, &vehicle);
GET_NETWORK_ID_FROM_VEHICLE(vehicle,&vehicle_id);
if(!network_control(vehicle_id))return;
GET_CAR_HEADING(vehicle,&heading);
GET_CAR_SPEED(vehicle,&speed);
}
else{
Alert(Error_NetPlayer_Vehicle,false);
return;
}
GET_CAR_HEADING(vehicle,&heading);
SET_VEHICLE_QUATERNION(vehicle,0,0,0,0);
SET_CAR_HEADING(vehicle,heading);
SET_CAR_ON_GROUND_PROPERLY(vehicle);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, "'s ~y~"); //27 Characters
Strcat(buffer, VEHICLES_MODEL_NAME(vehicle));
Strcat(buffer, "~s~ was set upright again"); //27 Characters
Strcat(buffer, ".");
Alert(buffer,true);
}
}
else if(SelectedItem == 7){
if(menu_item[SelectedItem].num_val == 1){
ToggleBit(autoFixVehBitSet,Player_ID);
}
else if(menu_item[SelectedItem].num_val == 2){
ToggleBit(autoFlipVehBitSet,Player_ID);
}
else if(menu_item[SelectedItem].num_val == 3){
ToggleBit(infiniteArmourBitSet,Player_ID);
}
else if(menu_item[SelectedItem].num_val == 4){
ToggleBit(freezeGunProtectBitSet,Player_ID);
}
else if(menu_item[SelectedItem].num_val == 5){
if(IS_THIS_MACHINE_THE_SERVER())ToggleBit(neverWantedBitSet,Player_ID);
}
}
else if(SelectedItem == 8){
TOGGLE_DRIVE_WALK_WATER_FOR_PLAYER(Player_ID); //prints in function
menu_item[SelectedItem].extra_val = IS_DRIVE_WALK_WATER_ENABLED_FOR_PLAYER(Player_ID);
}
else if(SelectedItem == 9){
if(menu_item[SelectedItem].num_val == 1){
REMOVE_ALL_CHAR_WEAPONS(Player_PED);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_DEAGLE,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_GRENADE,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_RLAUNCHER,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_MP5,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_M4,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_BARETTA,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_SNIPERRIFLE,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_KNIFE,1,false);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
Strcat(buffer, "~s~advanced weapons given to: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 2){//Poor
REMOVE_ALL_CHAR_WEAPONS(Player_PED);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_PISTOL,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_MOLOTOV,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_RLAUNCHER,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_MICRO_UZI,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_AK47,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_SHOTGUN,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_M40A1,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_KNIFE,1,false);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
Strcat(buffer, "~s~poor weapons given to: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 3){//Ballad
REMOVE_ALL_CHAR_WEAPONS(Player_PED);
GIVE_EPISODIC_WEAPONS_TO_CHAR(Player_PED,Episode);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
Strcat(buffer, "~s~episodic weapons given to: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 4){
REMOVE_ALL_CHAR_WEAPONS(Player_PED);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
Strcat(buffer, "~s~weapons were removed from: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,true);
}
}
else if(SelectedItem == 10){//Physics
if(IS_CHAR_IN_ANY_CAR(Player_PED)){
GET_CAR_CHAR_IS_USING(Player_PED, &vehicle);
GET_NETWORK_ID_FROM_VEHICLE(vehicle,&vehicle_id);
if(!network_control(vehicle_id))return;
GET_CAR_HEADING(vehicle,&heading);
GET_CAR_SPEED(vehicle,&speed);
}
else{
Alert(Error_NetPlayer_Vehicle,false);
return;
}
if(menu_item[SelectedItem].num_val == 1){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY);
if(!GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY)) SET_CAR_COLLISION(vehicle,true);
else SET_CAR_COLLISION(vehicle,false);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, "'s ~s~"); //27 Characters
Strcat(buffer, VEHICLES_MODEL_NAME(vehicle));
GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY) ? Strcat(buffer, "~s~ has been solidified") : Strcat(buffer, "~s~ is solid again"); //27 Characters
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 2){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_FREEZE_POS );
FREEZE_CAR_POSITION(vehicle,GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_FREEZE_POS));
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, "'s ~s~"); //27 Characters
Strcat(buffer, VEHICLES_MODEL_NAME(vehicle));
GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_FREEZE_POS) ? Strcat(buffer, "~s~ position has been frozen") : Strcat(buffer, "~s~ position was unfrozen"); //27 Characters
Strcat(buffer, ".");
Alert(buffer,true);
}
}
else if(SelectedItem == 11){//Unfriendly
if(menu_item[SelectedItem].num_val == 1){
Print_Kill_Feed = !Print_Kill_Feed;
Alert_Two("~BLIP_76~ ~c~KillFeed", Print_Kill_Feed ? PrintON : PrintOFF ,false);
}
else if(menu_item[SelectedItem].num_val == 2){
Alert("Lets keep this in unfriendly",false);
}
else if(menu_item[SelectedItem].num_val == 3){
Alert("Lets keep this in unfriendly",false);
}
else if(menu_item[SelectedItem].num_val == 4){
Alert("Lets keep this in unfriendly",false);
}
else if(menu_item[SelectedItem].num_val == 5){
Alert("Lets keep this in unfriendly",false);
}
else if(menu_item[SelectedItem].num_val == 6){
Alert("Lets keep this in unfriendly",false);
}
}
else if(SelectedItem == 12){//Canonball
if(menu_item[SelectedItem].num_val == 1)Ram_Player_Vehicle(Player_ID,MODEL_ANNIHILATOR);
else if(menu_item[SelectedItem].num_val == 2){
if(Episode == 2)Ram_Player_Vehicle(Player_ID,MODEL_BUZZARD);
else Ram_Player_Vehicle(Player_ID,MODEL_MAVERICK);
}
else if(menu_item[SelectedItem].num_val == 3)Ram_Player_Vehicle(Player_ID,MODEL_SULTANRS);
else if(menu_item[SelectedItem].num_val == 4)Ram_Player_Vehicle(Player_ID,MODEL_NRG900);
else if(menu_item[SelectedItem].num_val == 5)Ram_Player_Vehicle(Player_ID,MODEL_AMBULANCE);
else if(menu_item[SelectedItem].num_val == 6)Ram_Player_Vehicle(Player_ID,MODEL_FBI);
else if(menu_item[SelectedItem].num_val == 7)Ram_Player_Vehicle(Player_ID,MODEL_FIRETRUK);
else if(menu_item[SelectedItem].num_val == 8)Ram_Player_Vehicle(Player_ID,MODEL_NOOSE);
else if(menu_item[SelectedItem].num_val == 9)Ram_Player_Vehicle(Player_ID,MODEL_POLICE);
else if(menu_item[SelectedItem].num_val == 10)Ram_Player_Vehicle(Player_ID,MODEL_POLICE2);
else if(menu_item[SelectedItem].num_val == 11)Ram_Player_Vehicle(Player_ID,MODEL_POLPATRIOT);
else if(menu_item[SelectedItem].num_val == 12)Ram_Player_Vehicle(Player_ID,MODEL_PSTOCKADE);
}
else if(SelectedItem == 13){
if(IS_CHAR_IN_ANY_CAR(Player_PED)){
GET_CAR_CHAR_IS_USING(Player_PED, &vehicle);
GET_NETWORK_ID_FROM_VEHICLE(vehicle,&vehicle_id);
if(!network_control(vehicle_id))return;
GET_CAR_HEADING(vehicle,&heading);
GET_CAR_SPEED(vehicle,&speed);
}
else{
Alert(Error_NetPlayer_Vehicle,false);
return;
}
if(menu_item[SelectedItem].num_val == 1)APPLY_FORCE_TO_CAR(vehicle,3,0,0,1000,0,0,0,0, 1, 1, 1);
else if(menu_item[SelectedItem].num_val == 2)APPLY_FORCE_TO_CAR(vehicle,3,0,0,-1000,0,0,0,0, 1, 1, 1);
else if(menu_item[SelectedItem].num_val == 3)APPLY_FORCE_TO_CAR(vehicle,3,-60,0,0,0,-60,0,0, 1, 1, 1);
else if(menu_item[SelectedItem].num_val == 4)APPLY_FORCE_TO_CAR(vehicle,3,60,0,0,0,-60,0,0, 1, 1, 1);
else if(menu_item[SelectedItem].num_val == 5)APPLY_FORCE_TO_CAR(vehicle,3,0,60,10.0,0,0,-10.0,0, 1, 1, 1);
else if(menu_item[SelectedItem].num_val == 6)APPLY_FORCE_TO_CAR(vehicle,3,0,-60,10.0,0,0,-10.0,0, 1, 1, 1);
else if(menu_item[SelectedItem].num_val == 7){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_FREEZE_POS );
FREEZE_CAR_POSITION(vehicle,GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_FREEZE_POS));
}
else if(menu_item[SelectedItem].num_val == 8){
int z;
for(z = 0; z < 4; z++){
BREAK_CAR_DOOR(vehicle,z,true);
BURST_CAR_TYRE(vehicle,z);
REMOVE_CAR_WINDOW(vehicle,z);
}
START_CAR_FIRE(vehicle);
SET_ENGINE_HEALTH(vehicle,-5);
SET_CAR_ENGINE_ON(vehicle,false,false);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
Strcat(buffer, "~s~damaged the"); //27 Characters
Strcat(buffer, VEHICLES_MODEL_NAME(vehicle));
Strcat(buffer, "~s~from: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 9){
FIX_CAR(vehicle);
SET_CAR_ENGINE_ON(vehicle,true,true);
SET_VEHICLE_DIRT_LEVEL(vehicle, 0);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
Strcat(buffer, "~s~fixed the"); //27 Characters
Strcat(buffer, VEHICLES_MODEL_NAME(vehicle));
Strcat(buffer, "~s~from: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,true);
}
}
else if(SelectedItem == 14){
if(IS_CHAR_IN_ANY_CAR(Player_PED)){
GET_CAR_CHAR_IS_USING(Player_PED, &vehicle);
GET_NETWORK_ID_FROM_VEHICLE(vehicle,&vehicle_id);
if(!network_control(vehicle_id))return;
GET_CAR_HEADING(vehicle,&heading);
GET_CAR_SPEED(vehicle,&speed);
}
else{
Alert(Error_NetPlayer_Vehicle,false);
return;
}
float Vehicle_Heading_Change;
if(menu_item[SelectedItem].num_val > 0 || menu_item[SelectedItem].num_val < 6){
GET_CAR_SPEED(vehicle,&speed);
GET_CAR_HEADING(vehicle,&Vehicle_Heading_Change);
}
if(menu_item[SelectedItem].num_val == 1)SET_CAR_FORWARD_SPEED(vehicle,speed*3);
if(menu_item[SelectedItem].num_val == 2){
SET_CAR_HEADING(vehicle,Vehicle_Heading_Change-180);
SET_CAR_FORWARD_SPEED(vehicle,speed*3);
}
if(menu_item[SelectedItem].num_val == 3){
SET_CAR_HEADING(vehicle,Vehicle_Heading_Change - 180);
SET_CAR_FORWARD_SPEED(vehicle,speed);
}
if(menu_item[SelectedItem].num_val == 4){
SET_CAR_HEADING(vehicle,Vehicle_Heading_Change + 90.00f);
SET_CAR_FORWARD_SPEED(vehicle,speed);
}
if(menu_item[SelectedItem].num_val == 5){
SET_CAR_HEADING(vehicle,Vehicle_Heading_Change - 90.00f);
SET_CAR_FORWARD_SPEED(vehicle,speed);
}
if(menu_item[SelectedItem].num_val == 6){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_ROTATE);
}
}
else if(SelectedItem == 15){
if(IS_CHAR_IN_ANY_CAR(Player_PED)){
GET_CAR_CHAR_IS_USING(Player_PED, &vehicle);
GET_NETWORK_ID_FROM_VEHICLE(vehicle,&vehicle_id);
if(!network_control(vehicle_id))return;
GET_CAR_HEADING(vehicle,&heading);
GET_CAR_SPEED(vehicle,&speed);
}
else{
Alert(Error_NetPlayer_Vehicle,false);
return;
}
if(menu_item[SelectedItem].num_val == 1){
Vehicle_Transformer(Player_ID, 1);
}
else if(menu_item[SelectedItem].num_val == 2){
Vehicle_Transformer(Player_ID, 2);
}
else if(menu_item[SelectedItem].num_val == 3){
Vehicle_Transformer(Player_ID, 3);
}
else if(menu_item[SelectedItem].num_val == 4){
turn_car_into_heli(vehicle);
}
else if(menu_item[SelectedItem].num_val == 5){
delete_transformers_on_vehicle(vehicle);
SET_CHAR_VISIBLE(Player_PED,true);
SetBit(VehicleOptionsBitSet, !VEHICLE_OPTION_INVISIBLE,false);
SET_CAR_VISIBLE(vehicle,true);
}
else if(menu_item[SelectedItem].num_val == 6){
delete_transformers_on_vehicle(vehicle);
SET_CHAR_VISIBLE(Player_PED,true);
SetBit(VehicleOptionsBitSet, !VEHICLE_OPTION_INVISIBLE,false);
if(IS_CHAR_IN_ANY_CAR(Player_PED))DELETE_CAR(&vehicle);
}
}
else if(SelectedItem == 16){
if(menu_item[SelectedItem].num_val == 1){
MD_Weapon_Vehicle = !MD_Weapon_Vehicle;
if(MD_Weapon_Vehicle)Vehicle_Weapon = WEAPON_SNIPERRIFLE;
}
else if(menu_item[SelectedItem].num_val == 2){
Devils_Rapid_Fire_Heli = !Devils_Rapid_Fire_Heli;
if(Devils_Rapid_Fire_Heli)Vehicle_Weapon = WEAPON_SNIPERRIFLE;
}
}
else if(SelectedItem == 17){
if(menu_item[SelectedItem].num_val == 1)MD_VEHICLE_SPAWNER_ON_ID(Player_ID,MODEL_ANNIHILATOR);
if(menu_item[SelectedItem].num_val == 2)(Episode == 2) ? MD_VEHICLE_SPAWNER_ON_ID(Player_ID,MODEL_BUZZARD) : MD_VEHICLE_SPAWNER_ON_ID(Player_ID,MODEL_MAVERICK);
if(menu_item[SelectedItem].num_val == 3)MD_VEHICLE_SPAWNER_ON_ID(Player_ID,MODEL_SULTANRS);
if(menu_item[SelectedItem].num_val == 4)MD_VEHICLE_SPAWNER_ON_ID(Player_ID,MODEL_NRG900);
if(menu_item[SelectedItem].num_val == 5){
ADD_ARMOUR_TO_CHAR(Player_PED,200);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~Armour was given to "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,false);
}
}
}
}

View File

@@ -0,0 +1,80 @@
/**
* @ MD Essentials
* @ MD Series ; Version 12, March 2016
* @ Copyright (C) 2016 DEVILSDESIGN
*/
#pragma once
void MC_Network_All_Player_Setup(void){
MENU_HEADER = MD_Extend_Header;
MENU_SUB_HEADER = MD_Extend_SubHeader;
MENU_SUB_HEADER = "All Players";
AddFunction("~BLIP_52~ Give Weapons & Armour"); //1
AddFunction("~BLIP_52~ Teleport all players to me"); //2
AddFunction("~BLIP_52~ Kick all players from game.");
AddFunction("~BLIP_52~ Mute all players (toggle)");
return; //Very important!!!
}
void MC_Network_All_Player_Action(void){
float x,y,z,h;
if(SelectedItem == 1){
int NetPlayer_ID;
for(NetPlayer_ID = 0;NetPlayer_ID < MAX_PLAYERS;NetPlayer_ID++){
if (Player_Display_Selection(NetPlayer_ID))continue;
GIVE_EPISODIC_WEAPONS_TO_CHAR(PLAYER_CHAR(NetPlayer_ID), Episode);
WAIT(5);
}
Alert("~b~MD: ~s~All Players Given Weapons/Armour.",false);
}
else if(SelectedItem == 2)
{
int i;
float x,y,z;
GET_CHAR_COORDINATES(GetPlayerPed(),&x,&y,&z);
for(i = 0; i < 16; i++)
{
if(Invalid_Player(i)) continue;
if(Is_Admin(i)) continue;
if(GET_PLAYER_ID() == i) continue;
RESURRECT_NETWORK_PLAYER(i,x,y,z,true);
}
Alert("done",false);
}
else if(SelectedItem == 3)
{
int i;
if(GET_HOST_ID() != GET_PLAYER_ID())
{
print("you are not host.");
return;
}
for(i = 0;i<=15;i++)
{
if(Skip_For_Scans(i)) continue;
if(Is_SuperAdmin(i)) continue;
if(GET_PLAYER_ID() == i) continue;
NETWORK_KICK_PLAYER(i);
print("all players kicked.");
}
}
else if(SelectedItem == 4)
{
int i;
for(i = 0;i<=15;i++)
{
if(Skip_For_Scans(i)) continue;
if(Is_SuperAdmin(i)) continue;
if(GET_PLAYER_ID() == i) continue;
NETWORK_SET_PLAYER_MUTED(i,!NETWORK_IS_PLAYER_MUTED_BY_ME(i));
print("All Players Unmuted!");
menu_item[SelectedItem].extra_val = NETWORK_IS_PLAYER_MUTED_BY_ME(i);
if(NETWORK_IS_PLAYER_MUTED_BY_ME(i))
{
print("All Players Muted!");
}
}
}
}

View File

@@ -0,0 +1,565 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MC_Network_Start_Setup(){
register int PlayerScan;
MENU_SUB_HEADER = "Network Players Menu";
player_count = 0;
for(PlayerScan = 0;PlayerScan <= MAX_PLAYERS -1;PlayerScan++){
if(Player_Display_Selection(PlayerScan))continue;
players[player_count].id = PlayerScan;
player_count++;
}
if(player_count > 0){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_NETPLAYER_LIST, true);
AddSubMenu("All Players");
AddSubMenu("Navigator Options");
AddFunction_Value_CB("PLAYERINFO (ANTICHEAT)",9);
for(PlayerScan = 0;PlayerScan <= MAX_PLAYERS - 1 ;PlayerScan++){
if(Player_Display_Selection(PlayerScan))continue;
AddPlayername(GET_PLAYER_NAME(PlayerScan));
}
}
else{
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR, true);
MENU_SUB_HEADER = "Network Players Menu";
AddSubMenu("Game is Empty");
}
//return;
}
void MC_Network_Start_Action(const int Player_ID){
//if(SelectedItem <= 21 && SelectedItem > 3)ChangeNetPlayer = SelectedItem;
if(SelectedItem == 3){
Ped Player_PED;
if(!PLAYER_HAS_CHAR(Player_ID)){
Alert_Abort(Error_Char_Missing,false);
return ;
}
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
if(menu_item[SelectedItem].num_val == 1){
Attach_Player_Info = !Attach_Player_Info;
if(!Attach_Player_Info){
Player_INFO_ID1 = 99;
Player_INFO_ID2 = 99;
Player_INFO_ID3 = 99;
}
else Player_INFO_ID1 = iPlayer;
}
else if(menu_item[SelectedItem].num_val == 2){
Player_INFO_ID1 = Player_ID;
}
else if(menu_item[SelectedItem].num_val == 3){
Player_INFO_ID1 = 99;
}
else if(menu_item[SelectedItem].num_val == 4){
Player_INFO_ID2 = Player_ID;
}
else if(menu_item[SelectedItem].num_val == 5){
Player_INFO_ID2 = 99;
}
else if(menu_item[SelectedItem].num_val == 6){
Player_INFO_ID3 = Player_ID;
}
else if(menu_item[SelectedItem].num_val == 7){
Player_INFO_ID3 = 99;
}
else if(menu_item[SelectedItem].num_val == 8){//Move
Move_Player_Info = !Move_Player_Info;
}
else if(menu_item[SelectedItem].num_val == 9){//Reset
InfoDisplay_x = 0.4f;
InfoDisplay_y = 0.1f;
}
}
}
void MC_Network_Main_Setup(void){
item_highlighted = 1;
uint index;
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_NETPLAYER_LIST)){
ChangeNetPlayer = last_selected[(menu_level - 1)]- 4;
SetBit(MD_Misc_OptionsBitSet, MD_MISC_NETPLAYER_LIST, false);
}
else{
index = ChangeNetPlayer;
}
MENU_SUB_HEADER = "Network Player Options";
if(!PLAYER_HAS_CHAR(players[ChangeNetPlayer].id))
{
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR, true);
Add_Error("Player has no char!");
Add_Error("Press ~PAD_B~ To Return");
return;
}
if(Is_Whitelisted(players[ChangeNetPlayer].id) && GET_PLAYER_ID() != players[ChangeNetPlayer].id)
{
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR, true);
Add_Error("Player is whitelisted!");
Add_Error("Press ~PAD_B~ To Return");
return;
}
else NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
AddSubMenu("Network Player ~COL_NET_4~Options ~PAD_RIGHT~"); //5
AddSubMenu("Weapon ~COL_NET_2~Options ~PAD_RIGHT~"); //6
AddSubMenu("Vehicle ~COL_NET_1~Options ~PAD_RIGHT~"); //7
AddSubMenu("Teleport ~COL_NET_11~Options ~PAD_RIGHT~"); //8
AddSubMenu("Army ~COL_NET_8~Options ~PAD_RIGHT~"); //9
AddSubMenu("Rotation Engine ~COL_NET_11~Options ~PAD_RIGHT~"); //10
AddSubMenu("Object Attachment ~COL_NET_12~Options ~PAD_RIGHT~"); //11
AddSubMenu("Delete/Clear ~COL_NET_4~Options ~PAD_RIGHT~"); //12
AddFunction_CB(IS_THIS_MACHINE_THE_SERVER() ? "Kick Player" : "~BLIP_52~ Kick Player ~y~(Host Only)"); //13
AddBool_CB("Mute Player",NETWORK_IS_PLAYER_MUTED_BY_ME(players[index].id)); //14
AddSubMenu("Unfriendly ~COL_NET_8~Options ~PAD_RIGHT~"); //15 --> check MC_Net_UnFriendly_Setup
AddSubMenu("Pilot Option ~PAD_RIGHT~"); //16
#ifdef Admin
AddSubMenu("Admin (Pre V13) ~COL_NET_8~Options ~PAD_RIGHT~"); //16
AddSubMenu("Admin New V13 ~COL_NET_8~Options ~PAD_RIGHT~"); //17 //19
#endif
item_highlighted = 5;
return;
}
void MC_Network_Main_Action(void){
/**Dont touch this!! - Yes this needs to be here to update crossbrowser*/
uint index;
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_NETPLAYER_LIST)){
ChangeNetPlayer = last_selected[(menu_level - 1)]- 4;
SetBit(MD_Misc_OptionsBitSet, MD_MISC_NETPLAYER_LIST, false);
}
else{
index = ChangeNetPlayer;
}
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Add Jumpover
if(PLAYER_HAS_CHAR(players[ChangeNetPlayer].id)){
if(SelectedItem == 13){
char * buffer[32]; //128 chars
Strcpy(buffer, "~b~MD: "); //16
PLAYER_NAME_WITH_COLOUR(players[ChangeNetPlayer].id, &buffer); //WORKS!//25 chars
SET_THIS_MACHINE_RUNNING_SERVER_SCRIPT( 1 );
NETWORK_KICK_PLAYER(players[ChangeNetPlayer].id);
if(IS_THIS_MACHINE_THE_SERVER()){
NETWORK_KICK_PLAYER(players[ChangeNetPlayer].id);
Strcat(buffer, "~s~ Was Kicked From The Game."); //29 + 34 = 63
}
else
{
Strcat(buffer, "~s~ Could Not Be Kicked, You Are Not Host."); //38 + 29 = 67
}
Alert(buffer,false);
}
else if(SelectedItem == 14){
NETWORK_SET_PLAYER_MUTED(players[ChangeNetPlayer].id, !NETWORK_IS_PLAYER_MUTED_BY_ME(players[ChangeNetPlayer].id));
menu_item[SelectedItem].extra_val = NETWORK_IS_PLAYER_MUTED_BY_ME(players[ChangeNetPlayer].id);
}
}
}
void MC_Network_Player_Setup(void){
/**Dont touch this!!!**/
int id = players[ChangeNetPlayer].id;
MENU_SUB_HEADER = "Network Player Options";
/**vvvvvvvvvvvvvvvvvv!!!THIS SETUP NEEDS TO BE IN EVERY SUB!!!vvvvvvvvvvvvvvvvvvvvvvvvvvv*/
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP(); //4 General Shortcuts to be included in every submenu
Add_JumpOver("~BLIP_94~ MD N E T P L A Y E R O P T I O N S ~BLIP_94~"); //5 General Shortcuts to be included in every submenu
/**^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^**/
AddFunction_CB("Give Weapons & Armour"); //6
AddFunction_Value_CB("Set Helper Loops:",2); //7 //turn into charval (Set helper loops) on/off //make it change highlighted val too so they see stuff turn on etc //2
AddBool_CB("Infinite Armour",GetBit(infiniteArmourBitSet,id)); //8
#ifdef Premium
AddBool_CB("Drive/Walk on Water (Enhanced)",DOES_OBJECT_EXIST(drive_water[id])); //9 OR / OR
#else
AddBool_CB("Drive/Walk on Water",DOES_OBJECT_EXIST(drive_water[id])); //9 OR / OR
#endif
AddBool_CB("Vehicle Auto-Flip", GetBit(autoFlipVehBitSet,id)); //10
AddBool_CB("Vehicle Auto-Fix", GetBit(autoFixVehBitSet,id)); //11
AddBool_CB("Freeze Gun Protect", GetBit(freezeGunProtectBitSet,id)); //12
AddBool_CB(IS_THIS_MACHINE_THE_SERVER() ? "Never Wanted" : "~BLIP_68~ Never Wanted (Host Only)", GetBit(neverWantedBitSet,id)); //13
AddBool_CB("Rocket Weapons",GetBit(rocketWeaponsBitSet, id)); //14
AddFunction_CB("Delete Attached Objects"); //15
AddFunction_CB("Fire Players Weapon - Experimental");
AddFunction_CB("Object Freeze - Experimental");
item_highlighted = 6;
}
void MC_Network_Player_Action(void){
int id = players[ChangeNetPlayer].id;
/**vvvvvvvvvvvvvvvvvv!!!THIS ACTION NEEDS TO BE IN EVERY SUB!!!vvvvvvvvvvvvvvvvvvvvvvvvvvv*/
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Jumpover 5
/**^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^**/
char * buffer[32];
if(SelectedItem > 5 && SelectedItem != 9){
Strcpy(buffer, "~b~MD: ");
PLAYER_NAME_WITH_COLOUR(id, &buffer); //WORKS!
Strcat(buffer, "~s~"); //41
}
if(SelectedItem == 6 && PLAYER_HAS_CHAR(players[ChangeNetPlayer].id)){
GIVE_EPISODIC_WEAPONS_TO_CHAR(PLAYER_CHAR(players[ChangeNetPlayer].id), Episode); //yes this is correct
Strcat(buffer, " Has Been Given Weapons And Armour."); //35 + 41 = 76 chars
}
else if(SelectedItem == 7){
bool to_enable = (menu_item[SelectedItem].num_val == 1);
SetBit(infiniteArmourBitSet,id,to_enable);
menu_item[8].extra_val = to_enable;
SetBit(autoFlipVehBitSet,id,to_enable);
menu_item[10].extra_val = to_enable;
SetBit(autoFixVehBitSet,id,to_enable);
menu_item[11].extra_val = to_enable;
SetBit(freezeGunProtectBitSet,id,to_enable);
menu_item[12].extra_val = to_enable;
if(IS_THIS_MACHINE_THE_SERVER())
{
SetBit(neverWantedBitSet,id,to_enable);
menu_item[13].extra_val = to_enable;
}
}
else if(SelectedItem == 8){ //inf armour
ToggleBit(infiniteArmourBitSet, id);
Strcat(buffer, (GetBit(infiniteArmourBitSet,id) ? " Now Has" : " No Longer Has") );
Strcat(buffer, " Infinite Armour."); // 55
menu_item[SelectedItem].extra_val = GetBit(infiniteArmourBitSet, id);
}
else if(SelectedItem == 9){ //drve walk wata //enhanced has ifdef on the drive walk water loop in player options buddy :)
TOGGLE_DRIVE_WALK_WATER_FOR_PLAYER(id); //prints in function
menu_item[SelectedItem].extra_val = IS_DRIVE_WALK_WATER_ENABLED_FOR_PLAYER(id);
}
else if(SelectedItem == 10){ //auto flip veh
ToggleBit(autoFlipVehBitSet, id);
Strcat(buffer, (GetBit(autoFlipVehBitSet,id) ? " Now Has" : " No Longer Has") );
Strcat(buffer, " Vehicle Auto-Flip.");
menu_item[SelectedItem].extra_val = GetBit(autoFlipVehBitSet, id);
}
else if(SelectedItem == 11) //veihicle autofix
{
ToggleBit(autoFixVehBitSet,id);
Strcat(buffer, (GetBit(autoFixVehBitSet,id) ? " Now Has" : " No Longer Has") );
Strcat(buffer, " Vehicle Auto-Fix.");
menu_item[SelectedItem].extra_val = GetBit(autoFixVehBitSet, id);
}
else if(SelectedItem == 12) //freeze gun protect
{
ToggleBit(freezeGunProtectBitSet,id);
Strcat(buffer, (GetBit(freezeGunProtectBitSet,id) ? " Now Has" : " No Longer Has") );
Strcat(buffer, " Freeze Gun Protection.");
menu_item[SelectedItem].extra_val = GetBit(freezeGunProtectBitSet, id);
}
else if(SelectedItem == 13) //never wanted
{
if(IS_THIS_MACHINE_THE_SERVER())
{
ToggleBit(neverWantedBitSet,id);
Strcat(buffer, (GetBit(neverWantedBitSet,id) ? " Now Has" : " No Longer Has") );
Strcat(buffer, " Never-Wanted.");
menu_item[SelectedItem].extra_val = GetBit(neverWantedBitSet, id);
}
else
{
Alert("~b~MD: ~s~You Must Be Host To Change Players Wanted Levels.",false);
return;
}
}
else if(SelectedItem == 14) //rocket weapons
{
ToggleBit(rocketWeaponsBitSet,id);
Strcat(buffer, (GetBit(rocketWeaponsBitSet,id) ? " Now Has" : " No Longer Has") );
Strcat(buffer, " Rocket Weapons.");
menu_item[SelectedItem].extra_val = GetBit(rocketWeaponsBitSet, id);
}
else if(SelectedItem == 15 && PLAYER_HAS_CHAR(players[ChangeNetPlayer].id))
{
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
Strcat(buffer, " Had Objects Attached To Them Deleted.");
}
else if(SelectedItem == 16 && PLAYER_HAS_CHAR(players[ChangeNetPlayer].id)){
REMOVE_ALL_CHAR_WEAPONS(PLAYER_CHAR(players[ChangeNetPlayer].id));
int Vehicle_Weapon = WEAPON_ROCKET;
if(!HAS_CHAR_GOT_WEAPON(PLAYER_CHAR(players[ChangeNetPlayer].id),Vehicle_Weapon))GIVE_WEAPON_TO_CHAR(PLAYER_CHAR(players[ChangeNetPlayer].id),Vehicle_Weapon, AMMO_MAX, 0);
SET_CURRENT_CHAR_WEAPON(PLAYER_CHAR(players[ChangeNetPlayer].id), Vehicle_Weapon, true);
FIRE_PED_WEAPON(PLAYER_CHAR(players[ChangeNetPlayer].id), 0,0,0);
}
else if(SelectedItem == 17 && PLAYER_HAS_CHAR(players[ChangeNetPlayer].id))
{
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
Strcat(buffer, " Had Objects Attached To Them Deleted.");
}
if(SelectedItem > 5 && SelectedItem != 9){
Alert(buffer,false);
return;
}
}
void MC_Network_MD_Assist_Loop(void){
if(Invalid_Player(MD_Assist_to_run_index) || !PLAYER_HAS_CHAR(MD_Assist_to_run_index))
{
SetBit(restrictWeaponsBitSet, MD_Assist_to_run_index, false);
SetBit(autoDeleteVehicleBitSet, MD_Assist_to_run_index, false);
SetBit(autoBurnBitSet, MD_Assist_to_run_index, false);
SetBit(autoFlipVehBitSet, MD_Assist_to_run_index, false);
SetBit(autoFixVehBitSet, MD_Assist_to_run_index, false);
SetBit(freezeGunProtectBitSet, MD_Assist_to_run_index, false);
SetBit(infiniteArmourBitSet, MD_Assist_to_run_index, false);
SetBit(neverWantedBitSet, MD_Assist_to_run_index, false);
if(MD_Assist_to_run_index < (MAX_PLAYERS - 1)) MD_Assist_to_run_index = (MD_Assist_to_run_index + 1);
else MD_Assist_to_run_index = 0;
return;
}
int MD_Assist_to_run_ped;
GET_PLAYER_CHAR(MD_Assist_to_run_index,&MD_Assist_to_run_ped);
//NEW
bool auto_flip_veh = GetBit(autoFlipVehBitSet, MD_Assist_to_run_index);
bool auto_fix_veh = GetBit(autoFixVehBitSet, MD_Assist_to_run_index);
bool freeze_gun_protect = GetBit(freezeGunProtectBitSet, MD_Assist_to_run_index); //done
bool infinite_armour = GetBit(infiniteArmourBitSet, MD_Assist_to_run_index); //done
bool never_wanted_host_only = GetBit(neverWantedBitSet, MD_Assist_to_run_index); //done
///
bool restrict_weapons = GetBit(restrictWeaponsBitSet, MD_Assist_to_run_index);
bool auto_del_vehicle = GetBit(autoDeleteVehicleBitSet, MD_Assist_to_run_index);
bool auto_burn = GetBit(autoBurnBitSet, MD_Assist_to_run_index);
//if(players[MD_Assist_to_run_index].mod_assist || players[MD_Assist_to_run_index].restrict_weps)
if(infinite_armour)
{
int armour;
GET_CHAR_ARMOUR(MD_Assist_to_run_ped,&armour);
if(armour < 200) //max armour is 200 not 99
{
if(!HAS_CHAR_GOT_WEAPON(MD_Assist_to_run_ped,WEAPON_ARMOUR))
GIVE_WEAPON_TO_CHAR(MD_Assist_to_run_ped,WEAPON_ARMOUR,1,false);
//I wouldn't put a print here as it'll get shown way too often
//ADD_ARMOUR_TO_CHAR(MD_Assist_to_run_ped,(200 - armour));
ADD_ARMOUR_TO_CHAR(MD_Assist_to_run_ped,(210 - armour)); //account for net latenyz.. (10 extra fuck it)
}
}
if(freeze_gun_protect)
{
if(HAS_CHAR_GOT_WEAPON(MD_Assist_to_run_ped, WEAPON_ROCKET))
{
REMOVE_WEAPON_FROM_CHAR(MD_Assist_to_run_ped, WEAPON_ROCKET);
if(!HAS_CHAR_GOT_WEAPON(MD_Assist_to_run_ped, WEAPON_UNARMED))
{
GIVE_WEAPON_TO_CHAR(MD_Assist_to_run_ped,WEAPON_UNARMED,1,false);
}
char* buffer[21]; //84 characters
Strcpy(buffer, "~b~MD: ~s~Removed the freeze gun from "); //53 Characters
PLAYER_NAME_WITH_COLOUR(MD_Assist_to_run_index, &buffer); //WORKS! = 26 + 53 = 79
Strcat(buffer, "~s~."); //4 + 79 = 83
Alert(buffer, true);
}
}
if(never_wanted_host_only)
{
if(IS_WANTED_LEVEL_GREATER(MD_Assist_to_run_index, 0))
{
ALTER_WANTED_LEVEL(MD_Assist_to_run_index, 0);
APPLY_WANTED_LEVEL_CHANGE_NOW(MD_Assist_to_run_index);
SET_CHAR_WANTED_BY_POLICE(MD_Assist_to_run_ped, false);
CLEAR_WANTED_LEVEL(MD_Assist_to_run_index);
//cleared players wanted level print mayB
}
}
//SET_NETWORK_ID_CAN_MIGRATE(carid[i], TRUE); //gives them back control quicker maybe?
if(auto_fix_veh || auto_flip_veh || auto_del_vehicle)
{
if(is_driving(MD_Assist_to_run_ped))
{
int tmp_veh, nvid;
GET_CAR_CHAR_IS_USING(MD_Assist_to_run_ped,&tmp_veh);
GET_NETWORK_ID_FROM_VEHICLE(tmp_veh,&nvid);
if(auto_fix_veh)
{
if(IS_CAR_ON_FIRE(tmp_veh) || IS_CAR_DEAD(tmp_veh))
{
REQUEST_CONTROL_OF_NETWORK_ID(nvid);
if(HAS_CONTROL_OF_NETWORK_ID(nvid))
{
SET_CAR_FORWARD_SPEED(tmp_veh,0.0f); //stop net control fucking them up
FIX_CAR(tmp_veh);
SET_CAR_HEALTH(tmp_veh,1000);
SET_CAR_ENGINE_ON(tmp_veh,true,true);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~Fixed "); //27 Characters
PLAYER_NAME_WITH_COLOUR(MD_Assist_to_run_index, &buffer); //WORKS! 47
Strcat(buffer, "'s ~s~"); //3 + 47 = 50
Strcat(buffer, VEHICLES_MODEL_NAME(tmp_veh));
Strcat(buffer, ".");
Alert(buffer,true);
//print mod assist repaired players vehicle (will do this)
}
}
}
if(auto_flip_veh)
{
if(IS_CAR_UPSIDEDOWN(tmp_veh))
{
float speed,ground;
GET_CAR_SPEED(tmp_veh,&speed);
float x,y,z,h;
GET_CAR_COORDINATES(tmp_veh,&x,&y,&z);
GET_CAR_HEADING(tmp_veh,&h);
GET_GROUND_Z_FOR_3D_COORD(x, y, z, &ground);
int height = (z - ground);
if(speed < 0.8f && height < 4)
{
REQUEST_CONTROL_OF_NETWORK_ID(nvid);
if(HAS_CONTROL_OF_NETWORK_ID(nvid))
{
SET_CAR_FORWARD_SPEED(tmp_veh,0.0f);
SET_VEHICLE_QUATERNION(tmp_veh,0,0,0,0);
SET_CAR_HEADING(tmp_veh,h);
//SET_CAR_ON_GROUND_PROPERLY(tmp_veh); //can sometimes cause freezing
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~Flipped "); //25 Characters
PLAYER_NAME_WITH_COLOUR(MD_Assist_to_run_index, &buffer); //WORKS! 40
Strcat(buffer, "'s ~s~"); //3 + 40 = 43
Strcat(buffer, VEHICLES_MODEL_NAME(tmp_veh)); //15 to be safe //58 characters-
Strcat(buffer, ".");
Alert(buffer,true);
//print vehicle was flipped
}
}
}
}
if(auto_del_vehicle)
{
REQUEST_CONTROL_OF_NETWORK_ID(nvid);
if(HAS_CONTROL_OF_NETWORK_ID(nvid))
{
char* buffer[32]; //leave as 32
Strcpy(buffer, "~b~MD: "); //15
PLAYER_NAME_WITH_COLOUR(MD_Assist_to_run_index, &buffer); //WORKS! 34
Strcat(buffer, "'s ~s~"); //6 = 40
Strcat(buffer, VEHICLES_MODEL_NAME(tmp_veh));
DELETE_CAR(&tmp_veh);
Strcat(buffer, " was deleted.");
Alert(buffer, false);
}
}
}
}
if(restrict_weapons)
{
REMOVE_ALL_CHAR_WEAPONS(MD_Assist_to_run_ped);
if(is_driving(MD_Assist_to_run_ped)){
int tmp_veh;
GET_CAR_CHAR_IS_USING(MD_Assist_to_run_ped,&tmp_veh);
int nvid;
GET_NETWORK_ID_FROM_VEHICLE(tmp_veh,&nvid);
int model;
GET_CAR_MODEL(tmp_veh,&model);
if(model == MODEL_ANNIHILATOR || model == MODEL_FIRETRUK || model == MODEL_BUZZARD || model == MODEL_APC)
{
REQUEST_CONTROL_OF_NETWORK_ID(nvid);
if(HAS_CONTROL_OF_NETWORK_ID(nvid))
{
DELETE_CAR(&tmp_veh);
char * buffer[32];
Strcpy(buffer, "~b~MD: "); //13
PLAYER_NAME_WITH_COLOUR(MD_Assist_to_run_index, &buffer); //WORKS!
Strcat(buffer, "'s ~s~fire-power ("); //3
Strcat(buffer, GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(model))); //13?
Strcat(buffer, ") has been deleted."); //18
Alert(buffer,true);
}
}
}
}
if(auto_burn)
{
if(!IS_CHAR_ON_FIRE(MD_Assist_to_run_ped))
{
//MD: playername is now burning.
char* buffer[16]; //64 chars
Strcpy(buffer, "~b~MD: "); //16
PLAYER_NAME_WITH_COLOUR(MD_Assist_to_run_index, &buffer); //WORKS!
Strcat(buffer, " ~s~was set on fire."); //about 55
START_CHAR_FIRE(MD_Assist_to_run_ped);
Alert(buffer, false);
}
}
if(MD_Assist_to_run_index < (MAX_PLAYERS - 1)) MD_Assist_to_run_index = (MD_Assist_to_run_index + 1);
else MD_Assist_to_run_index = 0;
}
void MC_Network_Player_Loop(void){
register int NetPlayer_ID;
Ped NetPlayer_Char;
for(NetPlayer_ID = 0;NetPlayer_ID < MAX_PLAYERS; NetPlayer_ID++){
if (Player_Display_Selection(NetPlayer_ID)){
SetBit(rocketWeaponsBitSet, NetPlayer_ID, false);
SetBit(constantBoomBitSet, NetPlayer_ID, false);
if(DOES_OBJECT_EXIST(drive_water[NetPlayer_ID])) DELETE_OBJECT(&drive_water[NetPlayer_ID]);
continue;
}
if( !PLAYER_HAS_CHAR(NetPlayer_ID)) continue;
GET_PLAYER_CHAR(NetPlayer_ID,&NetPlayer_Char);
if(!DOES_CHAR_EXIST(NetPlayer_Char)) continue;
float x,y,z,h;
GET_CHAR_COORDINATES_HEADING(NetPlayer_Char,&x,&y,&z,&h);
if(GetBit(constantBoomBitSet, NetPlayer_ID))
{
ADD_EXPLOSION(x,y,z, EXPLOSION_SHIP_DESTROY, 10, true, false, 1);
}
bool player_is_driving = false;
int tmp_veh;
bool in_car = IS_CHAR_IN_ANY_CAR(NetPlayer_Char);
if(GetBit(rocketWeaponsBitSet, NetPlayer_ID)){
if(!in_car){
if (IS_CHAR_SHOOTING(NetPlayer_Char)){
float ax,ay,az;
float wx,wy,wz;
Ped rped;
GetOffset(NetPlayer_Char, 5, &ax, &ay, &az);
CREATE_RANDOM_CHAR(ax, ay, az, &rped);
while ( !DOES_CHAR_EXIST(rped)) WAIT(0);
SET_CHAR_VISIBLE(rped,true);
GIVE_WEAPON_TO_CHAR(rped, WEAPON_RLAUNCHER, 2, 0);
SET_CURRENT_CHAR_WEAPON(rped, WEAPON_RLAUNCHER, true);
GetOffset(NetPlayer_Char, 100,&wx,&wy,&wz);
FIRE_PED_WEAPON(rped, wx, wy, wz);
SET_CHAR_VISIBLE(rped,false);
DELETE_CHAR(&rped);
//REMOVE_WEAPON_FROM_CHAR(rped, WEAPON_RLAUNCHER);
}
}
}
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_PLAYER_INDEX) == NetPlayer_ID){
float offsetX[6], offsetY[6], offsetZ[6];
offsetX[0] = 0; offsetY[0] = 1; offsetZ[0] = -0.95f; //in front
offsetX[1] = 0; offsetY[1] = -1; offsetZ[1] = -0.95f; //behind
offsetX[2] = 0; offsetY[2] = 0; offsetZ[2] = (z > 1000 ? -500 : 5);
offsetX[3] = 0; offsetY[3] = 0; offsetZ[3] = 2; //On top of player
offsetX[4] = 1; offsetY[4] = 0; offsetZ[4] = -0.95f; //Right of player
offsetX[5] = -1; offsetY[5] = 0; offsetZ[5] = -0.95f; //left of player
const int Attach_Type = GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE);
if(Attach_Type > 0){
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(NetPlayer_Char, offsetX[Attach_Type - 1], offsetY[Attach_Type - 1], offsetZ[Attach_Type - 1], &x, &y, &z);
SET_CHAR_COORDINATES(pPlayer,x,y,z);
SET_CHAR_HEADING(pPlayer,h);
}
}
}
//Run after safety checks (will turn it player bools off if not safe to execute)
MC_Network_MD_Assist_Loop();
}

View File

@@ -0,0 +1,545 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
//SET_PED_COMPONENTS_TO_NETWORK_PLAYERSETTINGS_MODEL(Ped ped);
//extern void MAKE_PLAYER_FIRE_PROOF(int player, boolean proof); //host onleh probs but ye
/*
NATHAN NOTES
ToggleBit(forceFieldBitSet, GetPlayerIndex());
if(GetBit(forceFieldBitSet, GetPlayerIndex()))
#define GetBit(BitSet, bitIndex) IS_BIT_SET(BitSet, bitIndex)
#define SetBit(BitSet, bitIndex, bitValue) SetBitHelper(&BitSet, bitIndex, bitValue)
uint forceFieldBitSet;
uint juggernautBitSet;
uint restrictWeaponBitSet;
uint restrictVehicleBitSet;
for(i = 0; i < MAX_NETWORK_PLAYERS; i++)
{
if(!IS_NETWORK_PLAYER_ACTIVE(i))
{
SetBit(forceFieldBitSet, i, false);
SetBit(juggernautBitSet, i, false);
SetBit(restrictWeaponBitSet, i, false);
SetBit(restrictVehicleBitSet, i, false);
continue;
}
*/
void MC_Network_Start_Setup(void){
register int PlayerScan;
MENU_SUB_HEADER = "Network Players Menu";
player_count = 0;
for(PlayerScan = 0;PlayerScan < MAX_PLAYERS;PlayerScan++){
if(Player_Display_Selection(PlayerScan))continue;
players[player_count].id = PlayerScan;
player_count++;
}
if(player_count > 0){
SetBit(MD_Misc_OptionsBitSet, MD_MISC_NETPLAYER_LIST, true);
AddSubMenu("~BLIP_82~ All Players");
for(PlayerScan = 0; PlayerScan < MAX_PLAYERS; PlayerScan++){
if(Player_Display_Selection(PlayerScan))continue;
AddPlayername(GET_PLAYER_NAME(PlayerScan));
}
}
else{
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_IN_ERROR, true);
MENU_SUB_HEADER = "Network Players Menu";
AddSubMenu("Game is Empty");
}
return;
}
void MC_Network_Start_Action(void){
ChangeNetPlayer = SelectedItem;
}
void MC_Network_Main_Setup(void){
item_highlighted = 1;
uint index;
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_NETPLAYER_LIST)){
ChangeNetPlayer = last_selected[(menu_level - 1)]- 2;
SetBit(MD_Misc_OptionsBitSet, MD_MISC_NETPLAYER_LIST, false);
}
else{
index = ChangeNetPlayer;
}
MENU_SUB_HEADER = "Network Player Options";
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
//Add Jumpover
AddSubMenu("Network Player ~COL_NET_4~Options ~PAD_RIGHT~"); //5
AddSubMenu("Weapon ~COL_NET_2~Options ~PAD_RIGHT~"); //6
AddSubMenu("Vehicle ~COL_NET_1~Options ~PAD_RIGHT~"); //7
AddSubMenu("Teleport ~COL_NET_11~Options ~PAD_RIGHT~"); //8
AddSubMenu("Army ~COL_NET_8~Options ~PAD_RIGHT~"); //9
AddSubMenu("Rotation Engine ~COL_NET_11~Options ~PAD_RIGHT~"); //10
AddSubMenu("Object Attachment ~COL_NET_12~Options ~PAD_RIGHT~"); //11
AddSubMenu("Delete/Clear (To be taken out)~COL_NET_4~Options ~PAD_RIGHT~"); //12
AddFunction_CB(IS_THIS_MACHINE_THE_SERVER() ? "Kick Player" : "~BLIP_52~ Kick Player ~y~(Host Only)"); //13
AddBool_CB("Mute Player",NETWORK_IS_PLAYER_MUTED_BY_ME(players[index].id)); //Nathan was here //14
AddSubMenu("Unfriendly ~COL_NET_8~Options ~PAD_RIGHT~"); //15
AddSubMenu("Admin (Pre V13) ~COL_NET_8~Options ~PAD_RIGHT~"); //16
AddSubMenu("Admin New V13 ~COL_NET_8~Options ~PAD_RIGHT~"); //17]
item_highlighted = 5;
return;
}
void MC_Network_Main_Action(void){
/**Dont touch this!! - Yes this needs to be here to update crossbrowser*/
uint index;
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_NETPLAYER_LIST)){
ChangeNetPlayer = last_selected[(menu_level - 1)]- 2;
SetBit(MD_Misc_OptionsBitSet, MD_MISC_NETPLAYER_LIST, false);
}
else{
index = ChangeNetPlayer;
}
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Add Jumpover
if(PLAYER_HAS_CHAR(players[ChangeNetPlayer].id)){
if(SelectedItem == 13){
char * buffer[32]; //128 chars
Strcpy(buffer, "~b~MD: "); //16
PLAYER_NAME_WITH_COLOUR(players[ChangeNetPlayer].id, &buffer); //WORKS!//25 chars
SET_THIS_MACHINE_RUNNING_SERVER_SCRIPT( 1 );
NETWORK_KICK_PLAYER(players[ChangeNetPlayer].id);
if(IS_THIS_MACHINE_THE_SERVER()){
NETWORK_KICK_PLAYER(players[ChangeNetPlayer].id); //I think NETWORK_KICK_PLAYER(&players[ChangeNetPlayer].id) may do a vote..
Strcat(buffer, "~s~ was kicked from the game."); //29 + 34 = 63
}
else
{
Strcat(buffer, "~s~ could not be kicked, you are not host."); //38 + 29 = 67
}
Alert(buffer,false);
//Alert("~b~MD: ~s~You are not host.",false);
}
else if(SelectedItem == 14){
NETWORK_SET_PLAYER_MUTED(players[ChangeNetPlayer].id, !NETWORK_IS_PLAYER_MUTED_BY_ME(players[ChangeNetPlayer].id));
menu_item[SelectedItem].extra_val = NETWORK_IS_PLAYER_MUTED_BY_ME(players[ChangeNetPlayer].id);
}
}
}
void MC_Network_Player_Setup(void){
/**Dont touch this!!!**/
//uint index = ChangeNetPlayer;
int id = players[ChangeNetPlayer].id;
MENU_SUB_HEADER = "Network Player Options";
//need a loops submenu but we need
//explode
//burn
//taser
//set wanted level (host only)
//need a submenu (loops) //ONLY IF RUN OUTTA SPACE
//gonna expand mod assist out to have its functions specific :)
/**vvvvvvvvvvvvvvvvvv!!!THIS SETUP NEEDS TO BE IN EVERY SUB!!!vvvvvvvvvvvvvvvvvvvvvvvvvvv*/
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP(); //4 General Shortcuts to be included in every submenu
Add_JumpOver("~BLIP_94~ MD N E T P L A Y E R O P T I O N S ~BLIP_94~"); //5 General Shortcuts to be included in every submenu
/**^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^**/
/**Devils Note : Add strings if u want in String folder i have setup MDSTR_Netplayer_Options_Strings.c - Tested : WORKS!**/
AddFunction_CB("Give Weapons & Armour"); //6
AddFunction_Value_CB("Set helper loops:",2); //7 //turn into charval (Set helper loops) on/off //make it change highlighted val too so they see stuff turn on etc //2
AddBool_CB("Infinite Armour",GetBit(infiniteArmourBitSet,id)); //8
#ifdef Premium
AddBool_CB("Drive/Walk on Water (enhanced)",DOES_OBJECT_EXIST(drive_water[id])); //9 OR / OR
#else
AddBool_CB("Drive/Walk on Water",DOES_OBJECT_EXIST(drive_water[id])); //9 OR / OR
#endif
AddBool_CB("Vehicle auto-flip", GetBit(autoFlipVehBitSet,id)); //10
AddBool_CB("Vehicle auto-fix", GetBit(autoFixVehBitSet,id)); //11
AddBool_CB("Freeze gun protect", GetBit(freezeGunProtectBitSet,id)); //12
AddBool_CB(IS_THIS_MACHINE_THE_SERVER() ? "Never wanted" : "~BLIP_68~ Never wanted (host only)", GetBit(neverWantedBitSet,id)); //13
AddBool_CB("Rocket Weapons",GetBit(rocketWeaponsBitSet, id)); //14
AddFunction_CB("Delete attached objects"); //15
item_highlighted = 6;
//need to add set wanted level (host only)
/*
ALTER_WANTED_LEVEL(GetPlayerIndex(), menu[highlightedItem].value);
APPLY_WANTED_LEVEL_CHANGE_NOW(GetPlayerIndex());
SET_CHAR_WANTED_BY_POLICE(playerPed, true);
*/
//return;
}
void MC_Network_Player_Action(void){
int id = players[ChangeNetPlayer].id;
/**vvvvvvvvvvvvvvvvvv!!!THIS ACTION NEEDS TO BE IN EVERY SUB!!!vvvvvvvvvvvvvvvvvvvvvvvvvvv*/
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Jumpover 5
/**^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^**/
char * buffer[32];
if(SelectedItem > 5 && SelectedItem != 9){
Strcpy(buffer, "~b~MD: ");
PLAYER_NAME_WITH_COLOUR(id, &buffer); //WORKS!
Strcat(buffer, "~s~"); //41
}
if(SelectedItem == 6 && PLAYER_HAS_CHAR(players[ChangeNetPlayer].id)){
GIVE_EPISODIC_WEAPONS_TO_CHAR(PLAYER_CHAR(players[ChangeNetPlayer].id), Episode); //yes this is correct
Strcat(buffer, " has been given weapons and armour."); //35 + 41 = 76 chars
}
else if(SelectedItem == 7){
bool to_enable = (menu_item[SelectedItem].num_val == 1);
SetBit(infiniteArmourBitSet,id,to_enable);
menu_item[8].extra_val = to_enable;
SetBit(autoFlipVehBitSet,id,to_enable);
menu_item[10].extra_val = to_enable;
SetBit(autoFixVehBitSet,id,to_enable);
menu_item[11].extra_val = to_enable;
SetBit(freezeGunProtectBitSet,id,to_enable);
menu_item[12].extra_val = to_enable;
if(IS_THIS_MACHINE_THE_SERVER())
{
SetBit(neverWantedBitSet,id,to_enable);
menu_item[13].extra_val = to_enable;
}
//SetBit(rocketWeaponsBitSet,id,to_enable); //causes laggg and players often kill emselves so
//Set loops enabled/disabled
}
else if(SelectedItem == 8){ //inf armour
ToggleBit(infiniteArmourBitSet, id);
Strcat(buffer, (GetBit(infiniteArmourBitSet,id) ? " now has" : " no longer has") );
Strcat(buffer, " infinite armour."); // 55
menu_item[SelectedItem].extra_val = GetBit(infiniteArmourBitSet, id);
}
else if(SelectedItem == 9){ //drve walk wata //enhanced has ifdef on the drive walk water loop in player options buddy :)
TOGGLE_DRIVE_WALK_WATER_FOR_PLAYER(id); //prints in function
menu_item[SelectedItem].extra_val = IS_DRIVE_WALK_WATER_ENABLED_FOR_PLAYER(id);
}
else if(SelectedItem == 10){ //auto flip veh
ToggleBit(autoFlipVehBitSet, id);
Strcat(buffer, (GetBit(autoFlipVehBitSet,id) ? " now has" : " no longer has") );
Strcat(buffer, " vehicle auto-flip.");
menu_item[SelectedItem].extra_val = GetBit(autoFlipVehBitSet, id);
}
else if(SelectedItem == 11) //veihicle autofix
{
ToggleBit(autoFixVehBitSet,id);
Strcat(buffer, (GetBit(autoFixVehBitSet,id) ? " now has" : " no longer has") );
Strcat(buffer, " vehicle auto-fix.");
menu_item[SelectedItem].extra_val = GetBit(autoFixVehBitSet, id);
}
else if(SelectedItem == 12) //freeze gun protect
{
ToggleBit(freezeGunProtectBitSet,id);
Strcat(buffer, (GetBit(freezeGunProtectBitSet,id) ? " now has" : " no longer has") );
Strcat(buffer, " freeze gun protection.");
menu_item[SelectedItem].extra_val = GetBit(freezeGunProtectBitSet, id);
}
else if(SelectedItem == 13) //never wanted
{
if(IS_THIS_MACHINE_THE_SERVER())
{
ToggleBit(neverWantedBitSet,id);
Strcat(buffer, (GetBit(neverWantedBitSet,id) ? " now has" : " no longer has") );
Strcat(buffer, " never-wanted.");
menu_item[SelectedItem].extra_val = GetBit(neverWantedBitSet, id);
}
else
{
Alert("~b~MD: ~s~You must be host to change players wanted levels.",false);
return;
}
}
else if(SelectedItem == 14) //rocket weapons
{
ToggleBit(rocketWeaponsBitSet,id);
Strcat(buffer, (GetBit(rocketWeaponsBitSet,id) ? " now has" : " no longer has") );
Strcat(buffer, " rocket weapons.");
menu_item[SelectedItem].extra_val = GetBit(rocketWeaponsBitSet, id);
}
else if(SelectedItem == 15 && PLAYER_HAS_CHAR(players[ChangeNetPlayer].id))
{
delete_objects_on_ped(PLAYER_CHAR(players[ChangeNetPlayer].id));
Strcat(buffer, " had objects attached to them deleted.");
}
if(SelectedItem > 5 && SelectedItem != 9){
Alert(buffer,false);
return;
}
}
/*
SetBit(modAssistBitSet, NetPlayer_ID, false);
SetBit(restrictWeaponsBitSet, NetPlayer_ID, false);
*/
void MC_Network_MD_Assist_Loop(void) //Nathan making things stable!
{
if(Invalid_Player(MD_Assist_to_run_index) || !PLAYER_HAS_CHAR(MD_Assist_to_run_index))
{
SetBit(restrictWeaponsBitSet, MD_Assist_to_run_index, false);
SetBit(autoDeleteVehicleBitSet, MD_Assist_to_run_index, false);
SetBit(autoBurnBitSet, MD_Assist_to_run_index, false);
SetBit(autoFlipVehBitSet, MD_Assist_to_run_index, false);
SetBit(autoFixVehBitSet, MD_Assist_to_run_index, false);
SetBit(freezeGunProtectBitSet, MD_Assist_to_run_index, false);
SetBit(infiniteArmourBitSet, MD_Assist_to_run_index, false);
SetBit(neverWantedBitSet, MD_Assist_to_run_index, false);
if(MD_Assist_to_run_index < (MAX_PLAYERS - 1)) MD_Assist_to_run_index = (MD_Assist_to_run_index + 1);
else MD_Assist_to_run_index = 0;
return;
}
int MD_Assist_to_run_ped;
GET_PLAYER_CHAR(MD_Assist_to_run_index,&MD_Assist_to_run_ped);
//NEW
bool auto_flip_veh = GetBit(autoFlipVehBitSet, MD_Assist_to_run_index);
bool auto_fix_veh = GetBit(autoFixVehBitSet, MD_Assist_to_run_index);
bool freeze_gun_protect = GetBit(freezeGunProtectBitSet, MD_Assist_to_run_index); //done
bool infinite_armour = GetBit(infiniteArmourBitSet, MD_Assist_to_run_index); //done
bool never_wanted_host_only = GetBit(neverWantedBitSet, MD_Assist_to_run_index); //done
///
bool restrict_weapons = GetBit(restrictWeaponsBitSet, MD_Assist_to_run_index);
bool auto_del_vehicle = GetBit(autoDeleteVehicleBitSet, MD_Assist_to_run_index);
bool auto_burn = GetBit(autoBurnBitSet, MD_Assist_to_run_index);
//if(players[MD_Assist_to_run_index].mod_assist || players[MD_Assist_to_run_index].restrict_weps)
if(infinite_armour)
{
int armour;
GET_CHAR_ARMOUR(MD_Assist_to_run_ped,&armour);
if(armour < 200) //max armour is 200 not 99
{
if(!HAS_CHAR_GOT_WEAPON(MD_Assist_to_run_ped,WEAPON_ARMOUR))
GIVE_WEAPON_TO_CHAR(MD_Assist_to_run_ped,WEAPON_ARMOUR,1,false);
//I wouldn't put a print here as it'll get shown way too often
//ADD_ARMOUR_TO_CHAR(MD_Assist_to_run_ped,(200 - armour));
ADD_ARMOUR_TO_CHAR(MD_Assist_to_run_ped,(210 - armour)); //account for net latenyz.. (10 extra fuck it)
}
}
if(freeze_gun_protect)
{
if(HAS_CHAR_GOT_WEAPON(MD_Assist_to_run_ped, WEAPON_ROCKET))
{
REMOVE_WEAPON_FROM_CHAR(MD_Assist_to_run_ped, WEAPON_ROCKET);
if(!HAS_CHAR_GOT_WEAPON(MD_Assist_to_run_ped, WEAPON_UNARMED))
{
GIVE_WEAPON_TO_CHAR(MD_Assist_to_run_ped,WEAPON_UNARMED,1,false);
}
char* buffer[21]; //84 characters
Strcpy(buffer, "~b~MD: ~s~Removed the freeze gun from "); //53 Characters
PLAYER_NAME_WITH_COLOUR(MD_Assist_to_run_index, &buffer); //WORKS! = 26 + 53 = 79
Strcat(buffer, "~s~."); //4 + 79 = 83
Alert(buffer, true);
}
}
if(never_wanted_host_only)
{
if(IS_WANTED_LEVEL_GREATER(MD_Assist_to_run_index, 0))
{
ALTER_WANTED_LEVEL(MD_Assist_to_run_index, 0);
APPLY_WANTED_LEVEL_CHANGE_NOW(MD_Assist_to_run_index);
SET_CHAR_WANTED_BY_POLICE(MD_Assist_to_run_ped, false);
CLEAR_WANTED_LEVEL(MD_Assist_to_run_index);
//cleared players wanted level print mayB
}
}
//SET_NETWORK_ID_CAN_MIGRATE(carid[i], TRUE); //gives them back control quicker maybe?
if(auto_fix_veh || auto_flip_veh || auto_del_vehicle)
{
if(is_driving(MD_Assist_to_run_ped))
{
int tmp_veh, nvid;
GET_CAR_CHAR_IS_USING(MD_Assist_to_run_ped,&tmp_veh);
GET_NETWORK_ID_FROM_VEHICLE(tmp_veh,&nvid);
if(auto_fix_veh)
{
if(IS_CAR_ON_FIRE(tmp_veh) || IS_CAR_DEAD(tmp_veh))
{
REQUEST_CONTROL_OF_NETWORK_ID(nvid);
if(HAS_CONTROL_OF_NETWORK_ID(nvid))
{
SET_CAR_FORWARD_SPEED(tmp_veh,0.0f); //stop net control fucking them up
FIX_CAR(tmp_veh);
SET_CAR_HEALTH(tmp_veh,1000);
SET_CAR_ENGINE_ON(tmp_veh,true,true);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~Fixed "); //27 Characters
PLAYER_NAME_WITH_COLOUR(MD_Assist_to_run_index, &buffer); //WORKS! 47
Strcat(buffer, "'s ~s~"); //3 + 47 = 50
Strcat(buffer, VEHICLES_MODEL_NAME(tmp_veh));
Strcat(buffer, ".");
Alert(buffer,true);
//print mod assist repaired players vehicle (will do this)
}
}
}
if(auto_flip_veh)
{
if(IS_CAR_UPSIDEDOWN(tmp_veh))
{
float speed,ground;
GET_CAR_SPEED(tmp_veh,&speed);
float x,y,z,h;
GET_CAR_COORDINATES(tmp_veh,&x,&y,&z);
GET_CAR_HEADING(tmp_veh,&h);
GET_GROUND_Z_FOR_3D_COORD(x, y, z, &ground);
int height = (z - ground);
if(speed < 0.8f && height < 4)
{
REQUEST_CONTROL_OF_NETWORK_ID(nvid);
if(HAS_CONTROL_OF_NETWORK_ID(nvid))
{
SET_CAR_FORWARD_SPEED(tmp_veh,0.0f);
SET_VEHICLE_QUATERNION(tmp_veh,0,0,0,0);
SET_CAR_HEADING(tmp_veh,h);
//SET_CAR_ON_GROUND_PROPERLY(tmp_veh); //can sometimes cause freezing
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~Flipped "); //25 Characters
PLAYER_NAME_WITH_COLOUR(MD_Assist_to_run_index, &buffer); //WORKS! 40
Strcat(buffer, "'s ~s~"); //3 + 40 = 43
Strcat(buffer, VEHICLES_MODEL_NAME(tmp_veh)); //15 to be safe //58 characters-
Strcat(buffer, ".");
Alert(buffer,true);
//print vehicle was flipped
}
}
}
}
if(auto_del_vehicle)
{
REQUEST_CONTROL_OF_NETWORK_ID(nvid);
if(HAS_CONTROL_OF_NETWORK_ID(nvid))
{
char* buffer[32]; //leave as 32
Strcpy(buffer, "~b~MD: "); //15
PLAYER_NAME_WITH_COLOUR(MD_Assist_to_run_index, &buffer); //WORKS! 34
Strcat(buffer, "'s ~s~"); //6 = 40
Strcat(buffer, VEHICLES_MODEL_NAME(tmp_veh));
DELETE_CAR(&tmp_veh);
Strcat(buffer, " was deleted.");
Alert(buffer, false);
}
}
}
}
if(restrict_weapons)
{
REMOVE_ALL_CHAR_WEAPONS(MD_Assist_to_run_ped);
if(is_driving(MD_Assist_to_run_ped)){
int tmp_veh;
GET_CAR_CHAR_IS_USING(MD_Assist_to_run_ped,&tmp_veh);
int nvid;
GET_NETWORK_ID_FROM_VEHICLE(tmp_veh,&nvid);
int model;
GET_CAR_MODEL(tmp_veh,&model);
if(model == MODEL_ANNIHILATOR || model == MODEL_FIRETRUK || model == MODEL_BUZZARD || model == MODEL_APC)
{
REQUEST_CONTROL_OF_NETWORK_ID(nvid);
if(HAS_CONTROL_OF_NETWORK_ID(nvid))
{
DELETE_CAR(&tmp_veh);
char * buffer[32];
Strcpy(buffer, "~b~MD: "); //13
PLAYER_NAME_WITH_COLOUR(MD_Assist_to_run_index, &buffer); //WORKS!
Strcat(buffer, "'s ~s~fire-power ("); //3
Strcat(buffer, GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(model))); //13?
Strcat(buffer, ") has been deleted."); //18
Alert(buffer,true);
}
}
}
}
if(auto_burn)
{
if(!IS_CHAR_ON_FIRE(MD_Assist_to_run_ped))
{
//MD: playername is now burning.
char* buffer[16]; //64 chars
Strcpy(buffer, "~b~MD: "); //16
PLAYER_NAME_WITH_COLOUR(MD_Assist_to_run_index, &buffer); //WORKS!
Strcat(buffer, " ~s~was set on fire."); //about 55
START_CHAR_FIRE(MD_Assist_to_run_ped);
Alert(buffer, false);
}
}
if(MD_Assist_to_run_index < (MAX_PLAYERS - 1)) MD_Assist_to_run_index = (MD_Assist_to_run_index + 1);
else MD_Assist_to_run_index = 0;
}
void MC_Network_Player_Loop(void){
register int NetPlayer_ID;
Ped NetPlayer_Char;
for(NetPlayer_ID = 0;NetPlayer_ID < MAX_PLAYERS; NetPlayer_ID++){
if (Player_Display_Selection(NetPlayer_ID)){
SetBit(rocketWeaponsBitSet, NetPlayer_ID, false);
SetBit(constantBoomBitSet, NetPlayer_ID, false);
if(DOES_OBJECT_EXIST(drive_water[NetPlayer_ID])) DELETE_OBJECT(&drive_water[NetPlayer_ID]);
continue;
}
if( !PLAYER_HAS_CHAR(NetPlayer_ID)) continue;
GET_PLAYER_CHAR(NetPlayer_ID,&NetPlayer_Char);
if(!DOES_CHAR_EXIST(NetPlayer_Char)) continue;
float x,y,z,h;
GET_CHAR_COORDINATES_HEADING(NetPlayer_Char,&x,&y,&z,&h);
if(GetBit(constantBoomBitSet, NetPlayer_ID))
{
ADD_EXPLOSION(x,y,z, EXPLOSION_SHIP_DESTROY, 10, true, false, 1);
}
bool player_is_driving = false;
int tmp_veh;
bool in_car = IS_CHAR_IN_ANY_CAR(NetPlayer_Char);
if(GetBit(rocketWeaponsBitSet, NetPlayer_ID)){
if(!in_car){
if (IS_CHAR_SHOOTING(NetPlayer_Char)){
float ax,ay,az;
float wx,wy,wz;
Ped rped;
GetOffset(NetPlayer_Char, 5, &ax, &ay, &az);
CREATE_RANDOM_CHAR(ax, ay, az, &rped);
while ( !DOES_CHAR_EXIST(rped)) WAIT(0);
SET_CHAR_VISIBLE(rped,true);
GIVE_WEAPON_TO_CHAR(rped, WEAPON_RLAUNCHER, 2, 0);
SET_CURRENT_CHAR_WEAPON(rped, WEAPON_RLAUNCHER, true);
GetOffset(NetPlayer_Char, 100,&wx,&wy,&wz);
FIRE_PED_WEAPON(rped, wx, wy, wz);
SET_CHAR_VISIBLE(rped,false);
DELETE_CHAR(&rped);
//REMOVE_WEAPON_FROM_CHAR(rped, WEAPON_RLAUNCHER);
}
}
}
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_PLAYER_INDEX) == NetPlayer_ID){
int offsetX[6], offsetY[6], offsetZ[6];
offsetX[0] = 0; offsetY[0] = 1; offsetZ[0] = -0.95; //in front
offsetX[1] = 0; offsetY[1] = -1; offsetZ[1] = -0.95; //behind
offsetX[2] = 0; offsetY[2] = 0; offsetZ[2] = (z > 1000 ? -500 : 5);
offsetX[3] = 0; offsetY[3] = 0; offsetZ[3] = 2; //On top of player
offsetX[4] = 1; offsetY[4] = 0; offsetZ[4] = -0.95; //Right of player
offsetX[5] = -1; offsetY[5] = 0; offsetZ[5] = -0.95; //left of player
const int Attach_Type = GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE);
if(Attach_Type > 0){
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(NetPlayer_Char, offsetX[Attach_Type - 1], offsetY[Attach_Type - 1], offsetZ[Attach_Type - 1], &x, &y, &z);
SET_CHAR_COORDINATES(pPlayer,x,y,z);
SET_CHAR_HEADING(pPlayer,h);
}
}
}
//Run after safety checks (will turn it player bools off if not safe to execute)
MC_Network_MD_Assist_Loop();
}

View File

@@ -0,0 +1,751 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
/* ######################### PLAYER CHANGER SETUP & ACTION ############################*/
#pragma once
/**New Setup**/
void MD_Player_Changer_Setup(void){
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
Add_JumpOver("~BLIP_94~ MD M O D E L C H A N G E R ~BLIP_94~"); //5
AddBool("Variations Loop",Variations_Loop); //6
AddFunction("Reset Model"); //7
AddBool("Helmet",GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_HELMET)); //8
AddFunction_Value("Specials",4); //9
AddFunction_Value("Textures Body",7); //10
AddFunction_Value("Uniforms",14); //11
AddFunction_Value("Gang Members",4); //12
AddFunction_Value("Stripper",2); //13
AddFunction_Value("Medical",5); //14
AddFunction_Value("Business",9); //15
AddFunction_Value("Cluck",2); //16
AddFunction_Value("Homo",2); //17
AddFunction_Value("Singleplayer",9); //18
AddFunction_Value("Strides ",11); //19 //Yes we put it here also cus its related to models
AddFunction("Change Multiplayer Model ~y~(Settings Menu)"); //20
AddSubMenu("Full Model Changer ~PAD_RIGHT~"); //21
return;
}
/**New Action**/
void MD_Player_Changer_Action(void){
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Jumpover 5
if(SelectedItem == 6){
Variations_Loop = !Variations_Loop;
menu_item[SelectedItem].extra_val = Variations_Loop;
}
else if(SelectedItem == 7){
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
//SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(iPlayer); //in change player function if model == GET_PLAYERSETTINGS_MODEL_CHOICE
BLOCK_PED_WEAPON_SWITCHING(pPlayer, true); //this really should be looped when menu open.......
}
else if(SelectedItem == 8){
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_HELMET);
menu_item[SelectedItem].extra_val = GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_HELMET);
if(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_HELMET))GIVE_PED_HELMET(pPlayer);
else REMOVE_PED_HELMET(pPlayer,true);
}
else if(SelectedItem == 9){
if(menu_item[SelectedItem].num_val == 1){
int model;
GET_CHAR_MODEL(pPlayer,&model);
if(model != -641875910){
change_player(-641875910);
}
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID()); //wtf????
BLOCK_PED_WEAPON_SWITCHING(pPlayer, true); //this really should be looped when menu open.......
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,1, 4, 1);
}
else if(menu_item[SelectedItem].num_val == 2){
int model;
GET_CHAR_MODEL(pPlayer,&model);
if(model != -2020305438){
change_player(-2020305438);
}
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID()); //wtf????
BLOCK_PED_WEAPON_SWITCHING(pPlayer, true); //this really should be looped when menu open.......
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,1, 4, 2);
}
else if(menu_item[SelectedItem].num_val == 3){
int model;
GET_CHAR_MODEL(pPlayer,&model);
if(model != -330497431){
change_player(-330497431);
}
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID()); //wtf????
BLOCK_PED_WEAPON_SWITCHING(pPlayer, true); //this really should be looped when menu open.......
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,1, 4, 1);
}
else if(menu_item[SelectedItem].num_val == 4){
int model;
GET_CHAR_MODEL(pPlayer,&model);
if(model != 1609755055){
change_player(1609755055);
}
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID()); //wtf????
BLOCK_PED_WEAPON_SWITCHING(pPlayer, true); //this really should be looped when menu open.......
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,1, 4, 2);
}
}
else if(SelectedItem == 10){
if(menu_item[SelectedItem].num_val == 1){
int rand;
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,0, 0, 0);
}
else if(menu_item[SelectedItem].num_val == 2){
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0,20,&rand);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,0, 1,1);
}
else if(menu_item[SelectedItem].num_val == 3){
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0,20,&rand);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,1, 1, 1);
}
else if(menu_item[SelectedItem].num_val == 4){
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0,20,&rand);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,1, 2, 3);
}
else if(menu_item[SelectedItem].num_val == 5){
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0,20,&rand);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,2, 3, 0);
}
else if(menu_item[SelectedItem].num_val == 6){
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0,100,&rand);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,rand, rand, rand);
}
else if(menu_item[SelectedItem].num_val == 7){
//int rand;
//GENERATE_RANDOM_INT_IN_RANGE(0,20,&rand);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
//SET_CHAR_COMPONENT_VARIATION(pPlayer,200, 200,200);
}
}
else if(SelectedItem == 11){ //Uniforms
int model[14];
model[0] = MODEL_M_M_FATCOP_01;
model[1] = MODEL_M_Y_SWAT;
model[2] = MODEL_M_Y_NHELIPILOT;
model[3] = MODEL_M_M_FBI;
model[4] = MODEL_M_Y_COP;
model[5] = MODEL_M_Y_COP_TRAFFIC;
model[6] = MODEL_M_Y_FIREMAN;
model[7] = MODEL_M_M_FIRECHIEF;
model[8] = MODEL_M_M_SECURITYMAN;
model[9] = MODEL_M_M_ARMOURED;
model[10] = MODEL_M_Y_CLUBFIT;
model[11] = MODEL_M_Y_PRISON;
model[12] = MODEL_M_Y_PRISONAOM;
model[13] = MODEL_F_Y_FF_CLUCK_R;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 12){ //Gang Members
int model[4];
model[0] = MODEL_M_Y_GAFR_LO_01;
model[1] = MODEL_M_Y_GAFR_LO_02;
model[2] = MODEL_M_Y_GAFR_HI_01;
model[3] = MODEL_M_Y_GAFR_HI_02;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 13){ //Stripper
int model[2];
model[0] = MODEL_F_Y_STRIPPERC01;
model[1] = MODEL_F_Y_STRIPPERC02;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 14){ //Medical
int model[5];
model[0] = MODEL_M_M_DOCTOR_01;
model[1] = MODEL_F_Y_DOCTOR_01;
model[2] = MODEL_F_Y_NURSE;
model[3] = MODEL_M_M_DOC_SCRUBS_01;
model[4] = MODEL_M_M_DODGYDOC;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 15){ //Business
int model[9];
model[0] = MODEL_F_M_BUSINESS_01;
model[1] = MODEL_F_M_BUSINESS_02;
model[2] = MODEL_F_M_PBUSINESS;
model[3] = MODEL_F_Y_BUSINESS_01;
model[4] = MODEL_M_M_BUSINESS_02;
model[5] = MODEL_M_M_BUSINESS_03;
model[6] = MODEL_M_M_PBUSINESS_01;
model[7] = MODEL_M_Y_BUSINESS_01;
model[8] = MODEL_M_Y_BUSINESS_02;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 16){ //Broken
int model[2];
model[0] = MODEL_F_Y_FF_CLUCK_R;
model[1] = MODEL_M_Y_FF_CLUCK_R;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_HELMET, true);
GIVE_PED_HELMET(pPlayer);
}
else if(SelectedItem == 17){ //Homo
int model[2];
model[0] = MODEL_M_M_GAYMID; //= admin command change model homo
model[1] = MODEL_M_Y_GAYYOUNG;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 18){ //Singleplayer
int model[9];
model[0] = MODEL_IG_LILJACOB;
model[1] = MODEL_IG_BRUCIE;
model[2] = MODEL_IG_ROMAN;
model[3] = MODEL_IG_DWAYNE;
model[4] = MODEL_IG_BADMAN;
model[5] = MODEL_IG_DMITRI;
model[6] = MODEL_IG_MICHELLE;
model[7] = MODEL_IG_PACKIE_MC;
model[8] = MODEL_IG_PLAYBOY_X;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
if(SelectedItem > 10 && SelectedItem < 19){
SET_CHAR_HEALTH(pPlayer,500);
ADD_ARMOUR_TO_CHAR(pPlayer,99);
GIVE_EPISODIC_WEAPONS_TO_CHAR(pPlayer,Episode);
}
else if(SelectedItem == 19) MD_Stride_Strings_Action(pPlayer);
else if(SelectedItem == 20) ACTIVATE_NETWORK_SETTINGS_MENU();
}
void MD_Player_MoreChanger_Setup(void){
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
Add_JumpOver("~BLIP_94~ MD A L L M O D E L S ~BLIP_94~");
AddBool("Variations Loop",Variations_Loop); //6
AddFunction("Reset Model"); //7
AddBool("Helmet",GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_HELMET));
AddFunction_Value("Textures Body",7); //10
AddFunction_Value("IV Story 1",46); //17
AddFunction_Value("IV Story 2",11); //18
AddFunction_Value("IV Gangs",44); //17
AddFunction_Value("IV ForeGround 1/1",50); //14
AddFunction_Value("IV ForeGround 2/1",37); //15
AddFunction_Value("IV ForeGround 3/1",16); //16
AddFunction_Value("IV BackGround 1/1",87); //17
AddFunction_Value("TBoGT Models",73); //18
AddFunction_Value("TLAD Models",26); //19
AddFunction("Change Multiplayer Model ~y~(Settings Menu)"); //20
AddFunction_Value("Strides ",11); //20
return;
}
void MD_Player_MoreChanger_Action(void){
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
if(SelectedItem == 6){
Variations_Loop = !Variations_Loop;
menu_item[SelectedItem].extra_val = Variations_Loop;
}
else if(SelectedItem == 7){
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
//SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(iPlayer); //in change player function if model == GET_PLAYERSETTINGS_MODEL_CHOICE
BLOCK_PED_WEAPON_SWITCHING(pPlayer, true); //this really should be looped when menu open.......
}
else if(SelectedItem == 8){
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_HELMET);
menu_item[SelectedItem].extra_val = GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_HELMET);
if(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_HELMET))GIVE_PED_HELMET(pPlayer);
else REMOVE_PED_HELMET(pPlayer,true);
}
else if(SelectedItem == 9){
if(menu_item[SelectedItem].num_val == 1){
int rand;
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,0, 0, 0);
}
else if(menu_item[SelectedItem].num_val == 2){
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0,20,&rand);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,0, 1,1);
}
else if(menu_item[SelectedItem].num_val == 3){
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0,20,&rand);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,1, 1, 1);
}
else if(menu_item[SelectedItem].num_val == 4){
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0,20,&rand);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,1, 2, 3);
}
else if(menu_item[SelectedItem].num_val == 5){
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0,20,&rand);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,2, 3, 0);
}
else if(menu_item[SelectedItem].num_val == 6){
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0,100,&rand);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,rand, rand, rand);
}
else if(menu_item[SelectedItem].num_val == 7){
//int rand;
//GENERATE_RANDOM_INT_IN_RANGE(0,20,&rand);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
//SET_CHAR_COMPONENT_VARIATION(pPlayer,200, 200,200);
}
}
else if(SelectedItem == 10){ //Singleplayer
int model[46];
model[0] = MODEL_IG_ANNA;
model[1] = MODEL_IG_ANTHONY;
model[2] = MODEL_IG_BADMAN;
model[3] = MODEL_IG_BERNIE_CRANE;
model[4] = MODEL_IG_BLEDAR;
model[5] = MODEL_IG_BRIAN;
model[6] = MODEL_IG_BULGARIN;
model[7] = MODEL_IG_CHARISE;
model[8] = MODEL_IG_CHARLIEUC;
model[9] = MODEL_IG_CLARENCE;
model[10] = MODEL_IG_DARDAN;
model[11] = MODEL_IG_DARKO;
model[12] = MODEL_IG_DERRICK_MC;
model[13] = MODEL_IG_DMITRI;
model[14] = MODEL_IG_DWAYNE;
model[15] = MODEL_IG_EDDIELOW;
model[16] = MODEL_IG_FAUSTIN;
model[17] = MODEL_IG_FRANCIS_MC;
model[18] = MODEL_IG_FRENCH_TOM;
model[19] = MODEL_IG_GORDON;
model[20] = MODEL_IG_GRACIE;
model[21] = MODEL_IG_HOSSAN;
model[22] = MODEL_IG_ILYENA;
model[23] = MODEL_IG_ISAAC;
model[24] = MODEL_IG_IVAN;
model[25] = MODEL_IG_JAY;
model[26] = MODEL_IG_JASON;
model[27] = MODEL_IG_JEFF;
model[28] = MODEL_IG_JIMMY;
model[29] = MODEL_IG_JOHNNYBIKER;
model[30] = MODEL_IG_KATEMC;
model[31] = MODEL_IG_KENNY;
model[32] = MODEL_IG_LILJACOB;
model[33] = MODEL_IG_LILJACOBW;
model[34] = MODEL_IG_LUCA;
model[35] = MODEL_IG_LUIS;
model[36] = MODEL_IG_MALLORIE;
model[37] = MODEL_IG_MAMC;
model[38] = MODEL_IG_MANNY;
model[39] = MODEL_IG_MARNIE;
model[40] = MODEL_IG_MEL;
model[41] = MODEL_IG_MICHAEL;
model[42] = MODEL_IG_MICHELLE;
model[43] = MODEL_IG_MICKEY;
model[44] = MODEL_IG_PACKIE_MC;
model[45] = MODEL_IG_PATHOS;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 11){ //Singleplayer
int model[11];
model[0] = MODEL_IG_PETROVIC;
model[1] = MODEL_IG_PHIL_BELL;
model[2] = MODEL_IG_PLAYBOY_X;
model[3] = MODEL_IG_RAY_BOCCINO;
model[4] = MODEL_IG_RICKY;
model[5] = MODEL_IG_ROMAN;
model[6] = MODEL_IG_ROMANW;
model[7] = MODEL_IG_SARAH;
model[8] = MODEL_IG_TUNA;
model[9] = MODEL_IG_VINNY_SPAZ;
model[10] = MODEL_IG_VLAD;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 12){ //Singleplayer
int model[44];
model[0] = MODEL_M_Y_GAFR_LO_01;
model[1] = MODEL_M_Y_GAFR_LO_02;
model[2] = MODEL_M_Y_GAFR_HI_01;
model[3] = MODEL_M_Y_GAFR_HI_02;
model[4] = MODEL_M_Y_GALB_LO_01;
model[5] = MODEL_M_Y_GALB_LO_02;
model[6] = MODEL_M_Y_GALB_LO_03;
model[7] = MODEL_M_Y_GALB_LO_04;
model[8] = MODEL_M_M_GBIK_LO_03;
model[9] = MODEL_M_Y_GBIK_HI_01;
model[10] = MODEL_M_Y_GBIK_HI_02;
model[11] = MODEL_M_Y_GBIK02_LO_02;
model[12] = MODEL_M_Y_GIRI_LO_01;
model[13] = MODEL_M_Y_GIRI_LO_02;
model[14] = MODEL_M_Y_GIRI_LO_03;
model[15] = MODEL_M_M_GJAM_HI_01;
model[16] = MODEL_M_M_GJAM_HI_02;
model[17] = MODEL_M_M_GJAM_HI_03;
model[18] = MODEL_M_Y_GJAM_LO_01;
model[19] = MODEL_M_Y_GJAM_LO_02;
model[20] = MODEL_M_Y_GKOR_LO_01;
model[21] = MODEL_M_Y_GKOR_LO_02;
model[22] = MODEL_M_Y_GLAT_LO_01;
model[23] = MODEL_M_Y_GLAT_LO_02;
model[24] = MODEL_M_Y_GLAT_HI_01;
model[25] = MODEL_M_Y_GLAT_HI_02;
model[26] = MODEL_M_Y_GMAF_HI_01;
model[27] = MODEL_M_Y_GMAF_HI_02;
model[28] = MODEL_M_Y_GMAF_LO_01;
model[29] = MODEL_M_Y_GMAF_LO_02;
model[30] = MODEL_M_O_GRUS_HI_01;
model[31] = MODEL_M_Y_GRUS_LO_01;
model[32] = MODEL_M_Y_GRUS_LO_02;
model[33] = MODEL_M_Y_GRUS_HI_02;
model[34] = MODEL_M_M_GRU2_HI_01;
model[35] = MODEL_M_M_GRU2_HI_02;
model[36] = MODEL_M_M_GRU2_LO_02;
model[37] = MODEL_M_Y_GRU2_LO_01;
model[38] = MODEL_M_M_GTRI_HI_01;
model[39] = MODEL_M_M_GTRI_HI_02;
model[40] = MODEL_M_Y_GTRI_LO_01;
model[41] = MODEL_M_Y_GTRI_LO_02;
model[42] = MODEL_M_Y_GBIK_LO_01;
model[43] = MODEL_M_Y_GBIK_LO_02;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 13){ //Singleplayer
int model[50];
model[0] = MODEL_M_M_ALCOHOLIC;
model[1] = MODEL_M_M_ARMOURED;
model[2] = MODEL_M_M_BUSDRIVER;
model[3] = MODEL_M_M_CHINATOWN_01;
model[4] = MODEL_M_M_CRACKHEAD;
model[5] = MODEL_M_M_DOC_SCRUBS_01;
model[6] = MODEL_M_M_DOCTOR_01;
model[7] = MODEL_M_M_DODGYDOC;
model[8] = MODEL_M_M_EECOOK;
model[9] = MODEL_M_M_ENFORCER;
model[10] = MODEL_M_M_FACTORY_01;
model[11] = MODEL_M_M_FATCOP_01;
model[12] = MODEL_M_M_FBI;
model[13] = MODEL_M_M_FEDCO;
model[14] = MODEL_M_M_FIRECHIEF;
model[15] = MODEL_M_M_GUNNUT_01;
model[16] = MODEL_M_M_HELIPILOT_01;
model[17] = MODEL_M_M_HPORTER_01;
model[18] = MODEL_M_M_KOREACOOK_01;
model[19] = MODEL_M_M_LAWYER_01;
model[20] = MODEL_M_M_LAWYER_02;
model[21] = MODEL_M_M_LOONYBLACK;
model[22] = MODEL_M_M_PILOT;
model[23] = MODEL_M_M_PINDUS_01;
model[24] = MODEL_M_M_POSTAL_01;
model[25] = MODEL_M_M_SAXPLAYER_01;
model[26] = MODEL_M_M_SECURITYMAN;
model[27] = MODEL_M_M_SELLER_01;
model[28] = MODEL_M_M_SHORTORDER;
model[29] = MODEL_M_M_STREETFOOD_01;
model[30] = MODEL_M_M_SWEEPER;
model[31] = MODEL_M_M_TAXIDRIVER;
model[32] = MODEL_M_M_TELEPHONE;
model[33] = MODEL_M_M_TENNIS;
model[34] = MODEL_M_M_TRAIN_01;
model[35] = MODEL_M_M_TRAMPBLACK;
model[36] = MODEL_M_M_TRUCKER_01;
model[37] = MODEL_M_O_JANITOR;
model[38] = MODEL_M_O_HOTEL_FOOT;
model[39] = MODEL_M_O_MPMOBBOSS;
model[40] = MODEL_M_Y_AIRWORKER;
model[41] = MODEL_M_Y_BARMAN_01;
model[42] = MODEL_M_Y_BOUNCER_01;
model[43] = MODEL_M_Y_BOUNCER_02;
model[44] = MODEL_M_Y_BOWL_01;
model[45] = MODEL_M_Y_BOWL_02;
model[46] = MODEL_M_Y_CHINVEND_01;
model[47] = MODEL_M_Y_CLUBFIT;
model[48] = MODEL_M_Y_CONSTRUCT_01;
model[49] = MODEL_M_Y_CONSTRUCT_02;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 14){ //Singleplayer
int model[37];
model[0] = MODEL_M_Y_CONSTRUCT_03;
model[1] = MODEL_M_Y_COP;
model[2] = MODEL_M_Y_COP_TRAFFIC;
model[3] = MODEL_M_Y_COURIER;
model[4] = MODEL_M_Y_COWBOY_01;
model[5] = MODEL_M_Y_DEALER;
model[6] = MODEL_M_Y_DRUG_01;
model[7] = MODEL_M_Y_FF_BURGER_R;
model[8] = MODEL_M_Y_FF_CLUCK_R;
model[9] = MODEL_M_Y_FF_RSCAFE;
model[10] = MODEL_M_Y_FF_TWCAFE;
model[11] = MODEL_M_Y_FF_WSPIZZA_R;
model[12] = MODEL_M_Y_FIREMAN;
model[13] = MODEL_M_Y_GARBAGE;
model[14] = MODEL_M_Y_GOON_01;
model[15] = MODEL_M_Y_GYMGUY_01;
model[16] = MODEL_M_Y_MECHANIC_02;
model[17] = MODEL_M_Y_MODO;
model[18] = MODEL_M_Y_NHELIPILOT;
model[19] = MODEL_M_Y_PERSEUS;
model[20] = MODEL_M_Y_PINDUS_01;
model[21] = MODEL_M_Y_PINDUS_02;
model[22] = MODEL_M_Y_PINDUS_03;
model[23] = MODEL_M_Y_PMEDIC;
model[24] = MODEL_M_Y_PRISON;
model[25] = MODEL_M_Y_PRISONAOM;
model[26] = MODEL_M_Y_ROMANCAB;
model[27] = MODEL_M_Y_RUNNER;
model[28] = MODEL_M_Y_SHOPASST_01;
model[29] = MODEL_M_Y_STROOPER;
model[30] = MODEL_M_Y_SWAT;
model[31] = MODEL_M_Y_SWORDSWALLOW;
model[32] = MODEL_M_Y_THIEF;
model[33] = MODEL_M_Y_VALET;
model[34] = MODEL_M_Y_VENDOR;
model[35] = MODEL_M_Y_FRENCHTOM;
model[36] = MODEL_M_Y_JIM_FITZ;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 15){ //Singleplayer
int model[16];
model[0] = MODEL_F_O_MAID_01;
model[1] = MODEL_F_O_BINCO;
model[2] = MODEL_F_Y_BANK_01;
model[3] = MODEL_F_Y_DOCTOR_01;
model[4] = MODEL_F_Y_GYMGAL_01;
model[5] = MODEL_F_Y_FF_BURGER_R;
model[6] = MODEL_F_Y_FF_CLUCK_R;
model[7] = MODEL_F_Y_FF_RSCAFE;
model[8] = MODEL_F_Y_FF_TWCAFE;
model[9] = MODEL_F_Y_FF_WSPIZZA_R;
model[10] = MODEL_F_Y_HOOKER_01;
model[11] = MODEL_F_Y_HOOKER_03;
model[12] = MODEL_F_Y_NURSE;
model[13] = MODEL_F_Y_STRIPPERC01;
model[14] = MODEL_F_Y_STRIPPERC02;
model[15] = MODEL_F_Y_WAITRESS_01;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 16){ //Singleplayer
int model[87];
model[0] = MODEL_M_Y_CONSTRUCT_03;
model[1] = MODEL_M_Y_COP;
model[2] = MODEL_M_Y_COP_TRAFFIC;
model[3] = MODEL_M_Y_COURIER;
model[4] = MODEL_M_Y_COWBOY_01;
model[5] = MODEL_M_Y_DEALER;
model[6] = MODEL_M_Y_DRUG_01;
model[7] = MODEL_M_Y_FF_BURGER_R;
model[8] = MODEL_M_Y_FF_CLUCK_R;
model[9] = MODEL_M_Y_FF_RSCAFE;
model[10] = MODEL_M_Y_FF_TWCAFE;
model[11] = MODEL_M_Y_FF_WSPIZZA_R;
model[12] = MODEL_M_Y_FIREMAN;
model[13] = MODEL_M_Y_GARBAGE;
model[14] = MODEL_M_Y_GOON_01;
model[15] = MODEL_M_Y_GYMGUY_01;
model[16] = MODEL_M_Y_MECHANIC_02;
model[17] = MODEL_M_Y_MODO;
model[18] = MODEL_M_Y_NHELIPILOT;
model[19] = MODEL_M_Y_PERSEUS;
model[20] = MODEL_M_Y_PINDUS_01;
model[21] = MODEL_M_Y_PINDUS_02;
model[22] = MODEL_M_Y_PINDUS_03;
model[23] = MODEL_M_Y_PMEDIC;
model[24] = MODEL_M_Y_PRISON;
model[25] = MODEL_M_Y_PRISONAOM;
model[26] = MODEL_M_Y_ROMANCAB;
model[27] = MODEL_M_Y_RUNNER;
model[28] = MODEL_M_Y_SHOPASST_01;
model[29] = MODEL_M_Y_STROOPER;
model[30] = MODEL_M_Y_SWAT;
model[31] = MODEL_M_Y_SWORDSWALLOW;
model[32] = MODEL_M_Y_THIEF;
model[33] = MODEL_M_Y_VALET;
model[34] = MODEL_M_Y_VENDOR;
model[35] = MODEL_M_Y_FRENCHTOM;
model[36] = MODEL_M_Y_JIM_FITZ;
model[37] = MODEL_M_Y_TOURIST_02;
model[38] = MODEL_M_Y_TOUGH_05;
model[39] = MODEL_M_Y_STREETPUNK_05;
model[40] = MODEL_M_Y_STREETPUNK_04;
model[41] = MODEL_M_Y_STREETPUNK_02;
model[42] = MODEL_M_Y_STREETBLK_03;
model[43] = MODEL_M_Y_STREETBLK_02;
model[44] = MODEL_M_Y_STREET_04;
model[45] = MODEL_M_Y_STREET_01;
model[46] = MODEL_M_Y_STREET_03;
model[47] = MODEL_M_Y_SOHO_01;
model[48] = MODEL_M_Y_SKATEBIKE_01;
model[49] = MODEL_M_Y_SHADY_02;
model[50] = MODEL_M_Y_QUEENSBRIDGE;
model[51] = MODEL_M_Y_PVILLBO_03;
model[52] = MODEL_M_Y_PVILLBO_02;
model[53] = MODEL_M_Y_PVILLBO_01;
model[54] = MODEL_M_Y_PRICH_01;
model[55] = MODEL_M_Y_PQUEENS_01;
model[56] = MODEL_M_Y_PORIENT_01;
model[57] = MODEL_M_Y_PMANHAT_02;
model[58] = MODEL_M_Y_PMANHAT_01;
model[59] = MODEL_M_Y_PLATIN_03;
model[60] = MODEL_M_Y_PLATIN_02;
model[61] = MODEL_M_Y_PLATIN_01;
model[62] = MODEL_M_Y_PJERSEY_01;
model[63] = MODEL_M_Y_PHARLEM_01;
model[64] = MODEL_M_Y_PHARBRON_01;
model[65] = MODEL_M_Y_PCOOL_02;
model[66] = MODEL_M_Y_PCOOL_01;
model[67] = MODEL_M_Y_PBRONX_01;
model[68] = MODEL_M_Y_LEASTSIDE_01;
model[69] = MODEL_M_Y_HASID_01;
model[70] = MODEL_M_Y_HARLEM_04;
model[71] = MODEL_M_Y_HARLEM_02;
model[72] = MODEL_M_Y_HARLEM_01;
model[73] = MODEL_M_O_STREET_01;
model[74] = MODEL_M_O_SUITED;
model[75] = MODEL_M_Y_BOHO_01;
model[76] = MODEL_M_Y_DODGY_01;
model[77] = MODEL_M_Y_DORK_02;
model[78] = MODEL_M_Y_DOWNTOWN_01;
model[79] = MODEL_M_Y_DOWNTOWN_02;
model[80] = MODEL_M_Y_DOWNTOWN_03;
model[81] = MODEL_M_Y_GAYYOUNG;
model[82] = MODEL_M_Y_GENSTREET_11;
model[83] = MODEL_M_Y_GENSTREET_16;
model[84] = MODEL_M_Y_GENSTREET_20;
model[85] = MODEL_M_Y_GENSTREET_34;
model[86] = MODEL_M_Y_HARDMAN_01;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 17){ //Singleplayer
int model[73];
model[0] = MODEL_IG_AHMAD;
model[1] = MODEL_IG_ARMANDO;
model[2] = MODEL_IG_ARMSDEALER;
model[3] = MODEL_IG_ARNAUD;
model[4] = MODEL_IG_BANKER;
model[5] = MODEL_IG_BRUCIE2;
model[6] = MODEL_IG_BULGARIN2;
model[7] = MODEL_IG_DAISY;
model[8] = MODEL_IG_DEEJAY;
model[9] = MODEL_IG_DESSIE;
model[10] = MODEL_IG_EVAN;
model[11] = MODEL_IG_GRACIE2;
model[12] = MODEL_IG_HENRIQUE;
model[13] = MODEL_IG_ISSAC2;
model[14] = MODEL_IG_JOHNNY2;
model[15] = MODEL_IG_LUIS2;
model[16] = MODEL_IG_MARGOT;
model[17] = MODEL_IG_MORI_K;
model[18] = MODEL_IG_MR_SANTOS;
model[19] = MODEL_IG_OYVEY;
model[20] = MODEL_IG_NIKO;
model[21] = MODEL_IG_OYVEY;
model[22] = MODEL_IG_ROCCO;
model[23] = MODEL_IG_TAHIR;
model[24] = MODEL_IG_TIMUR;
model[25] = MODEL_IG_TONY;
model[26] = MODEL_IG_TRAMP2;
model[27] = MODEL_IG_TRIAD;
model[28] = MODEL_IG_TROY;
model[29] = MODEL_IG_VIC;
model[30] = MODEL_IG_VICGIRL;
model[31] = MODEL_IG_VINCE;
model[32] = MODEL_IG_YUSEF;
model[33] = MODEL_F_Y_ASIANCLUB_01;
model[34] = MODEL_F_Y_ASIANCLUB_02;
model[35] = MODEL_F_Y_CLUBEURO_01;
model[36] = MODEL_F_Y_DOMGIRL_01;
model[37] = MODEL_F_Y_EMIDTOWN_02;
model[38] = MODEL_F_Y_HOSTESS;
model[39] = MODEL_F_Y_HOTCHICK_01;
model[40] = MODEL_F_Y_HOTCHICK_02;
model[41] = MODEL_F_Y_HOTCHICK_03;
model[42] = MODEL_F_Y_PGIRL_01;
model[43] = MODEL_F_Y_PGIRL_02;
model[44] = MODEL_M_M_E2MAF_01;
model[45] = MODEL_M_M_E2MAF_02;
model[46] = MODEL_M_Y_BATHROOM;
model[47] = MODEL_M_Y_CIADLC_01;
model[49] = MODEL_M_Y_CIADLC_02;
model[50] = MODEL_M_Y_GAYBLACK_01;
model[51] = MODEL_M_Y_GAYDANCER;
model[52] = MODEL_M_Y_FIGHTCLUB_01;
model[53] = MODEL_M_Y_FIGHTCLUB_02;
model[54] = MODEL_M_Y_FIGHTCLUB_03;
model[55] = MODEL_M_Y_FIGHTCLUB_04;
model[56] = MODEL_M_Y_FIGHTCLUB_05;
model[57] = MODEL_M_Y_FIGHTCLUB_06;
model[58] = MODEL_M_Y_FIGHTCLUB_07;
model[59] = MODEL_M_Y_FIGHTCLUB_08;
model[60] = MODEL_F_Y_CLOEPARKER;
model[61] = MODEL_F_Y_DANCER_01;
model[62] = MODEL_F_Y_JONI;
model[63] = MODEL_M_M_MAFUNION;
model[64] = MODEL_M_Y_CELEBBLOG;
model[65] = MODEL_M_Y_EXSPORTS;
model[66] = MODEL_M_Y_MOBPARTY;
model[67] = MODEL_M_Y_PAPARAZZI_01;
model[68] = MODEL_IG_BLUEBROS;
model[69] = MODEL_IG_JACKSON;
model[70] = MODEL_IG_NAPOLI;
model[71] = MODEL_IG_ROYAL;
model[72] = MODEL_IG_SPADE;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 18){ //Singleplayer
int model[26];
model[0] = MODEL_IG_NIKO;
model[1] = MODEL_IG_ASHLEYA;
model[2] = MODEL_IG_CLAY;
model[3] = MODEL_IG_MALC;
model[4] = MODEL_IG_BILLY;
model[5] = MODEL_IG_JIM_FITZ;
model[6] = MODEL_IG_BRIANJ;
model[7] = MODEL_IG_EVAN;
model[8] = MODEL_IG_TERRY;
model[9] = MODEL_IG_DAVE_GROSSMAN;
model[10] = MODEL_IG_LOSTGIRL;
model[11] = MODEL_IG_BILLYPRISON;
model[12] = MODEL_IG_MARTA;
model[13] = MODEL_IG_DESEAN;
model[14] = MODEL_IG_MATTHEWS;
model[15] = MODEL_IG_MCCORNISH;
model[16] = MODEL_IG_PGIRL_01;
model[17] = MODEL_IG_PGIRL_02;
model[18] = MODEL_IG_ROMAN_E1;
model[19] = MODEL_IG_STROOPER;
model[20] = MODEL_F_Y_BIKESTRIPPER_01;
model[21] = MODEL_F_Y_EMIDTOWN_01;
model[22] = MODEL_M_M_SPRETZER;
model[23] = MODEL_M_Y_CIADLC_01;
model[24] = MODEL_M_O_HISPANIC_01;
model[25] = MODEL_M_Y_HISPANIC_01;
change_player(model[(menu_item[SelectedItem].num_val - 1)]);
}
else if(SelectedItem == 19) ACTIVATE_NETWORK_SETTINGS_MENU();
else if(SelectedItem == 20){
MD_Stride_Strings_Action(pPlayer);
}
}

View File

@@ -0,0 +1,793 @@
/**
* @ 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("Player Help",5);
AddFunction_Value_CB("Weapon Options",5); //7 Unlimmited Clip / Rapid Fire / Auto Aim / Give Weapons /Remove Weapons
//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_CB("Physics", 3); //11 / Drive Walk ON Water / Gravity / Slow Motion
AddBool("~BLIP_68~ Fly-mod ~PAD_LB~ slower / ~PAD_RB~ faster",GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD)); //12
AddBool("~BLIP_52~ Inferno",GetBit(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~ Change to Niko"); //16
AddFunction_Value_CB("Set Player Colors (YOU = Host)",18); //17 ALL PLAYERS / SELF = Default on enter submenu
AddFunction("~BLIP_68~ Reset Player");
AddFunction_CB("~BLIP_68~ Resurrect Player(Pull out Ghost)");
AddFunction("Find new Game");
//AddBool_CB("Attach Player Info x ",Attach_Player_Info);
//AddFunction_Value_CB("Player Info Display",9); //Show window / Set Player 1 - Set Player 2
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){
Vehicle vehicle;
uint vehicle_id;
float heading, speed;
//!**Player Char Check**//
Ped Player_PED;
//!**********************/
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//! ITEMLINE 5 ******************Jumpover TITLE MENU********************//
if(PLAYER_HAS_CHAR(Player_ID)){
GET_PLAYER_CHAR(Player_ID,&Player_PED);
if(SelectedItem == 6){ //AddFunction_Value("Player Protection",2); //6 Godmode / Juggernaut / Never wanted
if(menu_item[SelectedItem].num_val == 1){
ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_GODMODE);
//Alert_Two("~b~MD: ~s~Godmode",GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_GODMODE) ? PrintON : PrintOFF ,false);
}
else if(menu_item[SelectedItem].num_val == 2){
ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_JUGGERNAUT);
//Alert_Two("~b~MD: ~s~Juggernaut",GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_JUGGERNAUT) ? PrintON : PrintOFF ,false);
}
else if(menu_item[SelectedItem].num_val == 3){
ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_NEVER_WANTED);
//Alert_Two("~b~MD: ~s~Never wanted by the police",GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_NEVER_WANTED) ? PrintON : PrintOFF ,false);
}
}
if(SelectedItem == 7){//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);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
Strcat(buffer, "~s~Healthpack given to: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 2){
ADD_ARMOUR_TO_CHAR(Player_PED,200);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
Strcat(buffer, "~s~Armour given to: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 3){
ADD_ARMOUR_TO_CHAR(Player_PED,-100);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
Strcat(buffer, "~s~Armour removed from: "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 4){
if(IS_CHAR_IN_ANY_CAR(Player_PED)){
GET_CAR_CHAR_IS_USING(Player_PED, &vehicle);
GET_NETWORK_ID_FROM_VEHICLE(vehicle,&vehicle_id);
if(!network_control(vehicle_id))return;
GET_CAR_HEADING(vehicle,&heading);
GET_CAR_SPEED(vehicle,&speed);
}
else{
Alert(Error_NetPlayer_Vehicle,false);
return;
}
FIX_CAR(vehicle);
SET_CAR_ENGINE_ON(vehicle,true,true);
SET_VEHICLE_DIRT_LEVEL(vehicle, 0);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, "'s ~y~"); //27 Characters
Strcat(buffer, VEHICLES_MODEL_NAME(vehicle));
Strcat(buffer, "~s~ was fixed & washed"); //27 Characters
Strcat(buffer, ".");
Alert(buffer,true);
}
else if(menu_item[SelectedItem].num_val == 5){
if(IS_CHAR_IN_ANY_CAR(Player_PED)){
GET_CAR_CHAR_IS_USING(Player_PED, &vehicle);
GET_NETWORK_ID_FROM_VEHICLE(vehicle,&vehicle_id);
if(!network_control(vehicle_id))return;
GET_CAR_HEADING(vehicle,&heading);
GET_CAR_SPEED(vehicle,&speed);
}
else{
Alert(Error_NetPlayer_Vehicle,false);
return;
}
GET_CAR_HEADING(vehicle,&heading);
SET_VEHICLE_QUATERNION(vehicle,0,0,0,0);
SET_CAR_HEADING(vehicle,heading);
SET_CAR_ON_GROUND_PROPERLY(vehicle);
char * buffer[32]; //128 characters to play with
Strcpy(buffer, "~b~MD: ~s~ "); //27 Characters
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! 47
Strcat(buffer, "'s ~y~"); //27 Characters
Strcat(buffer, VEHICLES_MODEL_NAME(vehicle));
Strcat(buffer, "~s~ was set upright again"); //27 Characters
Strcat(buffer, ".");
Alert(buffer,true);
}
}
else if(SelectedItem == 8){//AddFunction_Value("Weapon Options",4); //7 Unlimmited Clip / Rapid Fire / Auto Aim / Give Weapons / Remove
if(menu_item[SelectedItem].num_val == 1){
ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_INFINITE_AMMO);
Alert_Two("~b~MD: ~s~Unlimited Clip (Yourself)",GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_INFINITE_AMMO) ? PrintON : PrintOFF ,false);
}
else if(menu_item[SelectedItem].num_val == 2){
ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_RAPID_FIRE);
Alert_Two("~b~MD: ~s~Rapid Fire (Yourself)",GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_RAPID_FIRE) ? PrintON : PrintOFF ,false);
}
else if(menu_item[SelectedItem].num_val == 3){
ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_AUTO_AIM);
Alert_Two("~b~MD: ~s~Auto Aim (Yourself)",GetBit(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("~b~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("~b~MD: ~s~Weapons removed 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("~b~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);
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE);
SET_CAR_VISIBLE(vehicle,GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE));
Alert_Two("~b~MD: ~s~Vehicle Visibility",GetBit(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));
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE,IS_CHAR_VISIBLE(pPlayer));
SET_CAR_VISIBLE(vehicle,IS_CHAR_VISIBLE(pPlayer));
Alert_Two("~b~MD: ~s~Vehicle + Player Visibility",(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE) && IS_CHAR_VISIBLE(pPlayer)) ? PrintON : PrintOFF ,false);
}
}
else if(menu_item[SelectedItem].num_val == 4){
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_REMOVE_BLIP);
if(!GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_REMOVE_BLIP)){
SET_PLAYER_CONTROL(iPlayer,true);
SET_CHAR_VISIBLE(pPlayer,true);
}
Alert_Two("~b~MD: ~s~Ninja Mode",GetBit(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)){
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_REMOVE_BLIP,false);
Alert(Error_Personal_Vehicle,false);
return;
}
else{
GET_CAR_CHAR_IS_USING(pPlayer,&vehicle);
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_REMOVE_BLIP);
if(!GetBit(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);
SetBit(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)ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_SUPER_RUN);
else if(menu_item[SelectedItem].num_val == 2)ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_SUPER_JUMP);
else if(menu_item[SelectedItem].num_val == 3)ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_SUPER_PUNCH);
else if(menu_item[SelectedItem].num_val == 4){
if(GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_GODMODE))SetBit(pPlayerOptionsBitSet,PLAYER_OPTION_GODMODE,true);
ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_FORCE_FIELD);
Alert_Two("~b~MD: ~s~Player Inferno",GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_INFERNO) ? PrintON : PrintOFF ,false);
WAIT(1000);
if(GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_FORCE_FIELD)) Alert("~b~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)ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_GRAVITY);
else if(menu_item[SelectedItem].num_val == 3){
ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_SLOW_MO);
SET_TIME_SCALE(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_SLOW_MO) ? 0.3 : 1);
}
}
else if(SelectedItem == 12){
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) == 3){
Detach_pPlayer_On_Coord();
Alert("~b~MD: ~s~Spectate mode disabled for flymod!",false);
}
bool flymod = GetBit(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);
}
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD);
menu_item[SelectedItem].extra_val = GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD);
}
else if(SelectedItem == 13){
ToggleBit(pPlayerOptionsBitSet,PLAYER_OPTION_INFERNO);
menu_item[SelectedItem].extra_val = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_INFERNO);
}
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{
register int scanner;
for(scanner = 0; scanner < MAX_PLAYERS; scanner++){
if(players[scanner].id != Player_ID)continue;
SET_PLAYER_COLOUR(Player_ID,players[scanner].id + 1);
break;
}
}
}
}
else if(SelectedItem == 18){
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
// if (Player_ID == iPlayer)SET_PLAYER_COLOUR(Player_ID,iPlayer + 1);
}
}
if(SelectedItem == 19){
float mx,my,mz;
if(PLAYER_HAS_CHAR(Player_ID)){
GET_PLAYER_CHAR(Player_ID,&Player_PED);
GET_CHAR_COORDINATES(Player_PED,&mx,&my,&mz);
RESURRECT_NETWORK_PLAYER( Player_ID, mx,my,mz, 0 );
SET_CHAR_HEALTH(pPlayer,300);
}
else{
GET_CHAR_COORDINATES(pPlayer,&mx,&my,&mz);
RESURRECT_NETWORK_PLAYER( Player_ID, mx,my,mz, 0 );
}
}
if(SelectedItem == 20)
{
SHUTDOWN_AND_LAUNCH_NETWORK_GAME(GET_CURRENT_EPISODE());
}
/*
else if(SelectedItem == 20){
if(menu_item[SelectedItem].num_val == 1){
Attach_Player_Info = !Attach_Player_Info;
if(!Attach_Player_Info){
Player_INFO_ID1 = 99;
Player_INFO_ID2 = 99;
Player_INFO_ID3 = 99;
}
else Player_INFO_ID1 = iPlayer;
}
else if(menu_item[SelectedItem].num_val == 2){
Player_INFO_ID1 = Player_ID;
}
else if(menu_item[SelectedItem].num_val == 3){
Player_INFO_ID1 = 99;
}
else if(menu_item[SelectedItem].num_val == 4){
Player_INFO_ID2 = Player_ID;
}
else if(menu_item[SelectedItem].num_val == 5){
Player_INFO_ID2 = 99;
}
else if(menu_item[SelectedItem].num_val == 6){
Player_INFO_ID3 = Player_ID;
}
else if(menu_item[SelectedItem].num_val == 7){
Player_INFO_ID3 = 99;
}
else if(menu_item[SelectedItem].num_val == 8){//Move
Move_Player_Info = !Move_Player_Info;
}
else if(menu_item[SelectedItem].num_val == 9){//Reset
InfoDisplay_x = 0.4f;
InfoDisplay_y = 0.1f;
}
}
*/
}
//!Add to functions where it belongs
void draw_number(char *gxtName, float x, float y, int val){
DISPLAY_TEXT_WITH_NUMBER(x, y, gxtName, val);
}
void draw_text(char *gxtName, float x, float y, char *val){
DISPLAY_TEXT_WITH_LITERAL_STRING(x, y, gxtName, val);
}
void MC_PlayerOptions_Loop(void){
SET_GRAVITY_OFF(!GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_GRAVITY));
if(Attach_Player_Info){
//InfoDisplay_x = 0.4f;
//InfoDisplay_y = 0.1f;
float Offset_X = 0.1250f; //Adjust column 2
float Offset_X2 = 0.1000f;
float Line_Height = 0.025f;
//#define Gold 164,134,35
#define ID_TextSize 0.1950f*0.85,0.3600f*0.85
//#define ID_TextSize 0.1950f,0.3600f
Ped Player_INFO_PED1, Player_INFO_PED2, Player_INFO_PED3;
uint PColor_R1,PColor_G1,PColor_B1,PColor_R2,PColor_G2,PColor_B2,PColor_R3,PColor_G3,PColor_B3;
int ARMOR1,HEALTH1,VEHICLEID1,VEHICLEHEALTH1,VEHICLEMODEL1;
int ARMOR2,HEALTH2,VEHICLEID2,VEHICLEHEALTH2,VEHICLEMODEL2;
int ARMOR3,HEALTH3,VEHICLEID3,VEHICLEHEALTH3,VEHICLEMODEL3;
//DRAW_SPRITE(Background,InfoDisplay_x + 0.03, InfoDisplay_y + 0.0550f , 0.3000f, 0.175, 0, 0, 0, 255, 150);
float Player2_Offset,Player3_Offset;
if(Player_INFO_ID2 != 99 )Player2_Offset = 0.1000 ;
else Player2_Offset = 0;
if(Player_INFO_ID3 != 99 )Player3_Offset = 0.1000 ;
else Player3_Offset = 0;
if(Player_INFO_ID3 != 99 && Player_INFO_ID2 == 99)Player3_Offset = 0.2000 ;
DRAW_CURVED_WINDOW(InfoDisplay_x - Offset_X2 - 0.01, InfoDisplay_y -(Line_Height*1.5), 0.2100f + Player2_Offset + Player3_Offset, 0.175, 100);
Set_Up_Draw(0.1950f*0.75,0.3600f*0.75,Gold,255,0,0,0);
SET_TEXT_FONT(Menu_Font);
DISPLAY_TEXT_WITH_LITERAL_STRING(InfoDisplay_x - Offset_X2, InfoDisplay_y - Line_Height, "STRING", "M D E X T E N D A N T I C H E A T P L A Y E R I N F O");
if(Player_INFO_ID1 != 99){
if(PLAYER_HAS_CHAR(Player_INFO_ID1)){
GET_PLAYER_CHAR(Player_INFO_ID1,&Player_INFO_PED1);
if(DOES_CHAR_EXIST(Player_INFO_PED1)){
GET_PLAYER_RGB_COLOUR(Player_INFO_ID1,&PColor_R1,&PColor_G1,&PColor_B1);
GET_CHAR_ARMOUR(Player_INFO_PED1,&ARMOR1);
GET_CHAR_HEALTH(Player_INFO_PED1,&HEALTH1);
if(IS_CHAR_IN_ANY_CAR(Player_INFO_PED1)){
GET_CAR_CHAR_IS_USING(Player_INFO_PED1, &VEHICLEID1);
GET_CAR_HEALTH(VEHICLEID1,&VEHICLEHEALTH1);//veh Health
GET_CAR_MODEL(VEHICLEID1,&VEHICLEMODEL1);//veh model
}
}
}
else Player_INFO_ID1 = 99;
}
if(Player_INFO_ID2 != 99){
if(PLAYER_HAS_CHAR(Player_INFO_ID2)){
GET_PLAYER_CHAR(Player_INFO_ID2,&Player_INFO_PED2);
if(DOES_CHAR_EXIST(Player_INFO_PED2)){
GET_PLAYER_RGB_COLOUR(Player_INFO_ID2,&PColor_R2,&PColor_G2,&PColor_B2);
GET_CHAR_ARMOUR(Player_INFO_PED2,&ARMOR2);
GET_CHAR_HEALTH(Player_INFO_PED2,&HEALTH2);
if(IS_CHAR_IN_ANY_CAR(Player_INFO_PED2)){
GET_CAR_CHAR_IS_USING(Player_INFO_PED2, &VEHICLEID2);
GET_CAR_HEALTH(VEHICLEID2,&VEHICLEHEALTH2);//veh Health
GET_CAR_MODEL(VEHICLEID2,&VEHICLEMODEL2);//veh model
}
}
}
else Player_INFO_ID2 = 99;
}
if(Player_INFO_ID3 != 99){
if(PLAYER_HAS_CHAR(Player_INFO_ID3)){
GET_PLAYER_CHAR(Player_INFO_ID3,&Player_INFO_PED3);
if(DOES_CHAR_EXIST(Player_INFO_PED3)){
GET_PLAYER_RGB_COLOUR(Player_INFO_ID3,&PColor_R3,&PColor_G3,&PColor_B3);
GET_CHAR_ARMOUR(Player_INFO_PED3,&ARMOR3);
GET_CHAR_HEALTH(Player_INFO_PED3,&HEALTH3);
if(IS_CHAR_IN_ANY_CAR(Player_INFO_PED3)){
GET_CAR_CHAR_IS_USING(Player_INFO_PED3, &VEHICLEID3);
GET_CAR_HEALTH(VEHICLEID3,&VEHICLEHEALTH3);//veh Health
GET_CAR_MODEL(VEHICLEID3,&VEHICLEMODEL3);//veh model
}
}
}
else Player_INFO_ID3 = 99;
}
//!Generally
Set_Up_Draw(ID_TextSize,Gold,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(InfoDisplay_x - Offset_X2, InfoDisplay_y + Line_Height, "STRING", "Health : ");
USE_PREVIOUS_FONT_SETTINGS();
DISPLAY_TEXT_WITH_LITERAL_STRING(InfoDisplay_x - Offset_X2, InfoDisplay_y + Line_Height*2, "STRING", "Armour : ");
USE_PREVIOUS_FONT_SETTINGS();
DISPLAY_TEXT_WITH_LITERAL_STRING(InfoDisplay_x - Offset_X2, InfoDisplay_y + Line_Height*3, "STRING", "V.Health : ");
USE_PREVIOUS_FONT_SETTINGS();
DISPLAY_TEXT_WITH_LITERAL_STRING(InfoDisplay_x - Offset_X2, InfoDisplay_y + Line_Height*4, "STRING", "Vehicle : ");
//!The names & info
if(Player_INFO_ID1 != 99){
//!Name
Set_Up_Draw(ID_TextSize,PColor_R1,PColor_G1,PColor_B1,255,0,0,0);
SET_TEXT_FONT(Player_Name_Font);
SET_TEXT_USE_UNDERSCORE(true);
SET_TEXT_CENTRE(1);
DISPLAY_TEXT_WITH_LITERAL_STRING(InfoDisplay_x, InfoDisplay_y, "STRING", GET_PLAYER_NAME(Player_INFO_ID1));
//int ARMOR1,HEALTH1,VEHICLEID1,VEHICLEHEALTH1,VEHICLEMODEL1;
Set_Up_Draw(ID_TextSize,255, 255, 255,255,0,0,0);
SET_TEXT_CENTRE(1);
draw_number("NUMBR", InfoDisplay_x , InfoDisplay_y + Line_Height,HEALTH1);
USE_PREVIOUS_FONT_SETTINGS();
draw_number("NUMBR", InfoDisplay_x , InfoDisplay_y + Line_Height*2,ARMOR1);
USE_PREVIOUS_FONT_SETTINGS();
draw_number("NUMBR", InfoDisplay_x , InfoDisplay_y + Line_Height*3,VEHICLEHEALTH1);
USE_PREVIOUS_FONT_SETTINGS();
if(COMPARE_STRING(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(VEHICLEMODEL1),"null")){
draw_text("STRING", InfoDisplay_x , InfoDisplay_y + Line_Height*4,"ON FOOT");
}
else draw_text("PC_PD_NAMES", InfoDisplay_x , InfoDisplay_y + Line_Height*4,GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(VEHICLEMODEL1)));
}
if(Player_INFO_ID2 != 99){
//!Name
Set_Up_Draw(ID_TextSize,PColor_R2,PColor_G2,PColor_B2,255,0,0,0);
SET_TEXT_FONT(Player_Name_Font);
SET_TEXT_USE_UNDERSCORE(true);
SET_TEXT_CENTRE(1);
DISPLAY_TEXT_WITH_LITERAL_STRING(InfoDisplay_x + Offset_X, InfoDisplay_y, "STRING", GET_PLAYER_NAME(Player_INFO_ID2));
//int ARMOR1,HEALTH1,VEHICLEID1,VEHICLEHEALTH1,VEHICLEMODEL1;
Set_Up_Draw(ID_TextSize,255, 255, 255,255,0,0,0);
SET_TEXT_CENTRE(1);
draw_number("NUMBR", InfoDisplay_x + Offset_X, InfoDisplay_y + Line_Height,HEALTH2);
USE_PREVIOUS_FONT_SETTINGS();
draw_number("NUMBR", InfoDisplay_x + Offset_X , InfoDisplay_y + Line_Height*2,ARMOR2);
USE_PREVIOUS_FONT_SETTINGS();
draw_number("NUMBR", InfoDisplay_x + Offset_X , InfoDisplay_y + Line_Height*3,VEHICLEHEALTH2);
USE_PREVIOUS_FONT_SETTINGS();
if(COMPARE_STRING(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(VEHICLEMODEL1),"null")){
draw_text("STRING", InfoDisplay_x , InfoDisplay_y + Line_Height*4,"ON FOOT");
}
else draw_text("PC_PD_NAMES", InfoDisplay_x + Offset_X, InfoDisplay_y + Line_Height*4,GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(VEHICLEMODEL2)));
}
if(Player_INFO_ID3 != 99){
//!Name
Set_Up_Draw(ID_TextSize,PColor_R3,PColor_G3,PColor_B3,255,0,0,0);
SET_TEXT_FONT(Player_Name_Font);
SET_TEXT_USE_UNDERSCORE(true);
SET_TEXT_CENTRE(1);
DISPLAY_TEXT_WITH_LITERAL_STRING(InfoDisplay_x + (Offset_X*2), InfoDisplay_y, "STRING", GET_PLAYER_NAME(Player_INFO_ID3));
//int ARMOR1,HEALTH1,VEHICLEID1,VEHICLEHEALTH1,VEHICLEMODEL1;
Set_Up_Draw(ID_TextSize,255, 255, 255,255,0,0,0);
SET_TEXT_CENTRE(1);
draw_number("NUMBR", InfoDisplay_x + (Offset_X*2) , InfoDisplay_y + Line_Height,HEALTH3);
USE_PREVIOUS_FONT_SETTINGS();
draw_number("NUMBR", InfoDisplay_x + (Offset_X*2) , InfoDisplay_y + Line_Height*2,ARMOR3);
USE_PREVIOUS_FONT_SETTINGS();
draw_number("NUMBR", InfoDisplay_x + (Offset_X*2) , InfoDisplay_y + Line_Height*3,VEHICLEHEALTH3);
USE_PREVIOUS_FONT_SETTINGS();
if(COMPARE_STRING(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(VEHICLEMODEL1),"null")){
draw_text("STRING", InfoDisplay_x , InfoDisplay_y + Line_Height*4,"ON FOOT");
}
else draw_text("PC_PD_NAMES", InfoDisplay_x + (Offset_X*2), InfoDisplay_y + Line_Height*4,GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(VEHICLEMODEL3)));
}
}
bool pPlayer_is_in_car = IS_CHAR_IN_ANY_CAR(pPlayer);
if(GetBit(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);
}
//quaternion EulerToQuaternion(vector3 euler); //YAW, PITCH, ROLL
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);
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD, false);
}
}
SET_CHAR_INVINCIBLE(pPlayer,GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE));
SET_PLAYER_NEVER_GETS_TIRED(iPlayer, GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE));
SET_PLAYER_FAST_RELOAD(iPlayer, GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE));
ENABLE_MAX_AMMO_CAP(!GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE));
SET_CHAR_NEVER_TARGETTED(pPlayer,GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE));
DISABLE_PLAYER_LOCKON(iPlayer, !GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM));
ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(iPlayer, GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM));
ALLOW_LOCKON_TO_RANDOM_PEDS(iPlayer, GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM));
/**Jugg Stuff**/
if(GetBit(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(GetBit(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(GetBit(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(GetBit(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(GetBit(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(GetBit(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(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FORCE_FIELD))ADD_EXPLOSION(x,y,z,EXPLOSION_SHIP_DESTROY,10.0,false,true,0.0);
if(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_INFERNO)) ADD_EXPLOSION(x,y,z,EXPLOSION_MOLOTOV,7.5,true,false,0.0);
if(GetBit(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(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT)){
ADD_EXPLOSION(x,y,z,EXPLOSION_MOLOTOV,7.5,true,false,0.0);
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT, false);
}
}
}
else SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT, true);
SET_CAMERA_CONTROLS_DISABLED_WITH_PLAYER_CONTROLS(false);
SET_CHAR_VISIBLE(pPlayer,GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
SET_PLAYER_CONTROL(iPlayer,GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
}
}
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_REMOVE_BLIP)){ //Fixed! - Devil
int vehicle;
if(IS_CHAR_IN_ANY_CAR(pPlayer)){
GET_CAR_CHAR_IS_USING(pPlayer,&vehicle);
if(IS_BUTTON_PRESSED(0,BUTTON_L) || IS_BUTTON_PRESSED(0,BUTTON_R)){
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT, true);
}
else{
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(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT)){
ADD_EXPLOSION(x,y,z,EXPLOSION_MOLOTOV,7.5,true,false,0.0);
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT, false);
}
}
}
FREEZE_CAR_POSITION(vehicle,!PLAYER_OPTION_FLAME_EFFECT);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY, !PLAYER_OPTION_FLAME_EFFECT);
SET_CAMERA_CONTROLS_DISABLED_WITH_PLAYER_CONTROLS(!PLAYER_OPTION_FLAME_EFFECT);
SET_PLAYER_CONTROL(iPlayer,GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
SET_CHAR_VISIBLE(pPlayer,GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
SET_CAR_VISIBLE(vehicle,GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLAME_EFFECT));
}
}
if(Variations_Loop){
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
SET_CHAR_COMPONENT_VARIATION(pPlayer,0, 1,1);
}
}

View File

@@ -0,0 +1,486 @@
/**
* @ 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);
}
}

View File

@@ -0,0 +1,439 @@
/**
* @ MD EXTEND+
* @ Version MDv13 TRIDENT(Essentials Based)
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
void MC_Premium_Main_Setup(void){ //submenu from this
MENU_SUB_HEADER = "Premium Options";
AddFunction_Value("~BLIP_52~ Enter Twilight Zone",3); //1
menu_item[1].num_val = (Episode + 1); //yes this should be correct, auto select current episode by default - Nathan (strings don't take 0 as devil is dumb)
Add_JumpOver("~BLIP_94~ MD Premium O p t i o n s ~BLIP_94~"); //2 >>JUMPOVER
AddFunction("~BLIP_52~ ~y~Exit GhostMode / ~COL_NET_10~Show Yourself"); //3
AddBool("~BLIP_68~ Players List On Screen",PlayerList); //4
AddFunction("~BLIP_68~ Scan for Ghosts (HOLY/SNG)"); //5
AddFunction("~BLIP_68~ Ghost Destroyer (SNG)"); //6
AddFunction("~BLIP_68~ Resurrect all Ghosts (SNG)"); //7
AddBool("~BLIP_68~ Fake Freeze",FakeFreeze); // 8
AddFunction("Get number of registered objects"); //9
AddFunction("Get number of registered peds"); //10
AddFunction("Get number of registered vehicles"); //11
AddSubMenu("Blackscreen to ID (NEW) ~PAD_RIGHT~"); //12
AddSubMenu("Invite ~COL_NET_4~System (NEW) ~PAD_RIGHT~"); // 13 --> this
#ifdef SuperAdmin
AddSubMenu("~COL_NET_3~SuperAdmin Options ~PAD_RIGHT~"); // 14
#endif
#ifdef Developer
AddSubMenu("Development ~COL_NET_4~Options ~PAD_RIGHT~"); // 15 --> this
#endif
}
void MC_Premium_Main_Action(void)
{
float mx,my,mz,mh;
if(SelectedItem == 1)
{
#ifndef Admin
print("Admin only.");
return;
#endif
if(Include_Self && LOCAL_PLAYER_IS_READY_TO_START_PLAYING()) LAUNCH_LOCAL_PLAYER_IN_NETWORK_GAME();
if(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_SHOW_ON_LEAVE)){
GET_CHAR_COORDINATES(pPlayer,&mx,&my,&mz);
GET_CHAR_HEADING(pPlayer,&mh);
RESURRECT_NETWORK_PLAYER(iPlayer,mx,my,mz,mh);
}
Fix_Game_Before_Leaving();
SHUTDOWN_AND_LAUNCH_NETWORK_GAME(menu_item[SelectedItem].num_val - 1);
}
//2 >>JUMPOVER
else if(SelectedItem == 3){
if (LOCAL_PLAYER_IS_READY_TO_START_PLAYING())LAUNCH_LOCAL_PLAYER_IN_NETWORK_GAME();
Resurrect = true;
Alert("~b~MD: ~s~Ghost mode disabled, others see you now.",false);
}
else if(SelectedItem == 4){
PlayerList = !PlayerList;
menu_item[SelectedItem].extra_val = PlayerList;
}
if(SelectedItem == 5)
{
int i;
char* buffer[32];
for(i = 0; i < 16; i++)
{
if(Skip_For_Scans(i)) continue;
#ifndef SuperAdmin
if(Is_SuperAdmin(i)) continue;
#endif
if(GET_PLAYER_ID() == i) continue;
if(!PLAYER_HAS_CHAR(i))
{
Alert_Two("~COL_NET_6~Holy Ghost Identified: ~s~",GET_PLAYER_NAME(i),false);
return;
}
if (PLAYER_HAS_CHAR(i) && !IS_NETWORK_PLAYER_ACTIVE(i)) Alert_Two("~COL_NET_2~Ghost Identified: ~s~",GET_PLAYER_NAME(i),false);
else
{
Strcpy(buffer, "~b~MD: ");
Strcat(buffer, "~s~ No ghosts were found."); //29 + 34 = 63
Alert(buffer,false);
}
}
}
if(SelectedItem == 6)
{
int i;
char* buffer[32];
for(i = 0; i < 16; i++)
{
if(Invalid_Player(i)) continue;
if(Is_Developer(i)) continue;
#ifndef SuperAdmin
if(Is_Admin(i)) continue;
#endif
if(GET_PLAYER_ID() == i) continue;
if(PLAYER_HAS_CHAR(i) && !IS_NETWORK_PLAYER_ACTIVE(i))
{
TELL_NET_PLAYER_TO_START_PLAYING(i,true);
Strcpy(buffer, "~b~MD: ");
Strcat(buffer, "~s~ Ghost Destroyed:");
PLAYER_NAME_WITH_COLOUR(i, &buffer);
Alert(buffer,false);
return;
}
else
{
Strcpy(buffer, "~b~MD: ");
Strcat(buffer, "~s~ No ghosts found.");
Alert(buffer,false);
}
}
}
if(SelectedItem == 7)
{
int i;
char* buffer[32];
for(i = 0; i < 16; i++)
{
if(Skip_For_Scans(i)) continue;
#ifndef SuperAdmin
if(Is_Admin(i)) continue;
#endif
if(GET_PLAYER_ID() == i) continue;
if(PLAYER_HAS_CHAR(i) && !IS_NETWORK_PLAYER_ACTIVE(i))
{
RESURRECT_NETWORK_PLAYER(i,0,0,0,true);
Strcpy(buffer, "~b~MD: ");
Strcat(buffer, "~s~ Ghost Resurrected:");
PLAYER_NAME_WITH_COLOUR(i, &buffer);
Alert(buffer,false);
return;
}
else
{
Strcpy(buffer, "~b~MD: ");
Strcat(buffer, "~s~ No ghosts found.");
Alert(buffer,false);
}
}
}
if(SelectedItem == 8)
{
FakeFreeze = !FakeFreeze;
menu_item[SelectedItem].extra_val = FakeFreeze;
if(FakeFreeze)
{
print("Other players will now think you froze!");
PAUSE_GAME();
}
else UNPAUSE_GAME();
}
if(SelectedItem == 9)
{
printInt(GetNumberOfObjects());
}
if(SelectedItem == 10)
{
printInt(GetNumberOfPeds());
}
if(SelectedItem == 11)
{
printInt(GetNumberOfVehicles());
}
}
void MC_Premium_Loop(void){ // ONLY WHEN NETWORK
float mx,my,mz,mh;
if(Resurrect && IS_CHAR_DEAD(pPlayer))
{
WAIT(1000);
GET_CHAR_COORDINATES(pPlayer,&mx,&my,&mz);
GET_CHAR_HEADING(pPlayer,&mh);
RESURRECT_NETWORK_PLAYER(iPlayer,mx,my,(mz - 1.0f),mh);
SET_CHAR_HEALTH(pPlayer,300);
}
}
void BlackscreenID_Setup (void)
{
MENU_SUB_HEADER = "Manual Blackscreen";
print("~COL_NET_1~Do not abuse.");
AddFunction("Orange");
AddFunction("Purple");
AddFunction("Grass Green");
AddFunction("Red");
AddFunction("Yellow");
AddFunction("Light Blue");
AddFunction("Dark Pink");
AddFunction("Peach");
AddFunction("Dark Green");
AddFunction("Dark Blue");
AddFunction("Pink");
AddFunction("Light Light Blue");
AddFunction("Shit Green");
AddFunction("Light Green");
AddFunction("Grey");
AddFunction("Brown");
AddFunction("Press ~PAD_A~ To Blackscreen");
return;
}
void BlackscreenID_Action (void)
{
if(SelectedItem == 1)
{
GhostID = SelectedItem - 1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 2)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 3)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 4)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 5)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 6)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 7)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 8)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 9)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 10)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 11)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 12)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 13)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 14)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 15)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 16)
{
GhostID = SelectedItem -1;
if(HAS_NETWORK_PLAYER_LEFT_GAME(GhostID) || Is_Whitelisted(GhostID))
{
print("~COL_NET_4~ Error - ~BLIP_6~ Invalid Player");
return;
}
TELL_NET_PLAYER_TO_START_PLAYING(GhostID,true);
print("~COL_NET_4~ Blackscreened player");
return;
}
if(SelectedItem == 17)
{
return;
}
if(SelectedItem == 18)
{
return;
}
}

View File

@@ -0,0 +1,383 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV NATHAN VII
*/
#pragma once
/**New Setup for rotation Engine - IMPLEMENTED**/
void MD_Rotations_Setup(void){
MENU_SUB_HEADER = "Rotation Engine";
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
Add_JumpOver("~BLIP_94~ MD R O T A T I O N S E N G I N E ~BLIP_94~"); //5
AddBool("~BLIP_68~ Clear Previous Rotations",renew_rotate); //6
AddFunction_Value("Set Rotation Speed",5); //7
AddFunction_Value("Set Rotation Distance",4); //8
AddFunction_Value("Rotation Mode",3); //9
AddFunction_Value("Adjust Rotation Height ",7); //10
AddFunction("Detach Rotation"); //11
AddFunction_Value_CB("Vehicle Rotations ",10); //12
AddFunction_Value_CB("Emergency Rotations ",9); //13
AddFunction_Value_CB("Truck Rotations ",10); //14
AddFunction_Value_CB("Bike Rotations ",8); //15
AddFunction_Value_CB("Boat Rotations ",9); //16
AddFunction_Value_CB("Heli Rotations ",5); //17
AddFunction_Value_CB("Pedestrian Rotations ",4); //18
AddFunction_Value_CB("Object Rotations ",17); //19
AddBool("Solidify Objects/Vehicles SET PREMIUM ONLY",Rot_Solidify); //20
menu_item[1].num_val = (GetBit(MD_Misc_OptionsBitSet, MD_MISC_AUTO_SPECTATE) ? 2 : 1);
//Add_StringValue(1);
return;
}
/**New Action for rotation Engine - IMPLEMENTED**/
void MD_Rotations_Action(void){
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Jumpover 5
if(SelectedItem == 6){
renew_rotate = !renew_rotate;
menu_item[SelectedItem].extra_val = renew_rotate;
Alert_Two("~BLIP_76~ ~c~Clear Rotation before attaching new set", renew_rotate ? PrintON : PrintOFF ,false);
}
else if(SelectedItem == 7){ //Set Speed
if(menu_item[SelectedItem].num_val == 1)Rotation_Speed = 0.01f;
else if(menu_item[SelectedItem].num_val == 2)Rotation_Speed = 0.04f;
else if(menu_item[SelectedItem].num_val == 3)Rotation_Speed = 0.08f;
else if(menu_item[SelectedItem].num_val == 4)Rotation_Speed = 0.30f;
else if(menu_item[SelectedItem].num_val == 5)Rotation_Speed = 0.0f;
}
else if(SelectedItem == 8){
if(menu_item[SelectedItem].num_val == 1)Rotation_Distance = 3.00f;
else if(menu_item[SelectedItem].num_val == 2)Rotation_Distance = 6.00f;
else if(menu_item[SelectedItem].num_val == 3)Rotation_Distance = 15.00f;
else if(menu_item[SelectedItem].num_val == 4)Rotation_Distance = 0.00f;
}
else if(SelectedItem == 9){
if(menu_item[SelectedItem].num_val == 1){ //90°
angletest1 = 0.0f;
angletest2 = 3.1500f;
angletest3 = 1.575f;
angletest4 = 4.725f;
angletest5 = 3.9375f;
angletest6 = 0.7875f;
angletest7 = 2.3625f;
angletest8 = 5.5125f;
}
else if(menu_item[SelectedItem].num_val == 2){ //180°
angletest1 = 1.575f;
angletest2 = 4.725f;
angletest3 = 3.1500f;
angletest4 = 0.00f;
angletest5 = 5.5125f;
angletest6 = 2.3625f;
angletest7 = 3.9375f;
angletest8 = 0.7875f;
}
else if(menu_item[SelectedItem].num_val == 3){ //360°
angletest1 = 4.725f;
angletest2 = 1.575f;
angletest3 = 0.00f;
angletest4 = 3.150f;
angletest5 = 2.3625f;
angletest6 = 5.5125f;
angletest7 = 0.7875f;
angletest8 = 3.9375f;
}
}
else if(SelectedItem == 10){
if(menu_item[SelectedItem].num_val == 1){
Set_Rotation_Height = -1.5f;
}
else if(menu_item[SelectedItem].num_val == 2){
Set_Rotation_Height = -1.0f;
}
else if(menu_item[SelectedItem].num_val == 3){
Set_Rotation_Height = -0.5f;
}
else if(menu_item[SelectedItem].num_val == 4){
Set_Rotation_Height = 0.0f;
}
else if(menu_item[SelectedItem].num_val == 5){
Set_Rotation_Height = 0.5f;
}
else if(menu_item[SelectedItem].num_val == 6){
Set_Rotation_Height = 1.0f;
}
else if(menu_item[SelectedItem].num_val == 7){
Set_Rotation_Height = 1.5f;
}
}
else if(SelectedItem == 11){//Detach and disable ID protection
SetBit(MD_Misc_OptionsBitSet, MD_MISC_ROTATIONS_LOOP, false);
int Rotation_Subject_ID;
for(Rotation_Subject_ID = 0; Rotation_Subject_ID <= MAX_ROTATION_SUBJECTS -1; Rotation_Subject_ID++){
if (DOES_VEHICLE_EXIST(Rotation_Subject[Rotation_Subject_ID]) && IS_CAR_ATTACHED(Rotation_Subject[Rotation_Subject_ID])){
SET_CAR_COLLISION(Rotation_Subject[Rotation_Subject_ID], true);
}
}
/*
int Blocked_ID, Veh_Number;
for( Veh_Number = 0; Veh_Number < 9; Veh_Number++){
if(!DOES_VEHICLE_EXIST(Rotation_Subject[Veh_Number]))continue;
GET_NETWORK_ID_FROM_VEHICLE(Rotation_Subject[Veh_Number], &Blocked_ID);
SET_NETWORK_ID_CAN_MIGRATE(Blocked_ID, true);
}
*/
if(DOES_OBJECT_EXIST(Rotation_Subject_Handle))DELETE_OBJECT(&Rotation_Subject_Handle);
//Block_Net_Control_Of_Entity(model,Rotation_Subject[id]); --> Make this turn false when detaching the cars
}
else if(SelectedItem == 12){
int Rot_Vehicle_Model;
if(renew_rotate)clear_rotations();
if(menu_item[SelectedItem].num_val == 1)Rot_Vehicle_Model = MODEL_SULTAN;
else if(menu_item[SelectedItem].num_val == 2)Rot_Vehicle_Model = MODEL_SULTANRS;
else if(menu_item[SelectedItem].num_val == 3)Rot_Vehicle_Model = MODEL_TURISMO;
else if(menu_item[SelectedItem].num_val == 4)Rot_Vehicle_Model = MODEL_COMET;
else if(menu_item[SelectedItem].num_val == 5)Rot_Vehicle_Model = MODEL_INFERNUS;
else if(menu_item[SelectedItem].num_val == 6)Rot_Vehicle_Model = MODEL_SENTINEL;
else if(menu_item[SelectedItem].num_val == 7)Rot_Vehicle_Model = MODEL_TRASH;
else if(menu_item[SelectedItem].num_val == 8)Rot_Vehicle_Model = MODEL_STRETCH;
else if(menu_item[SelectedItem].num_val == 9)Rot_Vehicle_Model = MODEL_VOODOO;
if(menu_item[SelectedItem].num_val >= 1 && menu_item[SelectedItem].num_val <= 9 )MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Vehicle_Model, 1.00f, 00.00f, 00.00f, 00.00f, 00.00f );
else if(menu_item[SelectedItem].num_val == 10)clear_rotations();
}
else if(SelectedItem == 13){
int Rot_Vehicle_Model;
if(renew_rotate)clear_rotations();
if(menu_item[SelectedItem].num_val == 1)Rot_Vehicle_Model = MODEL_AMBULANCE;
else if(menu_item[SelectedItem].num_val == 2)Rot_Vehicle_Model = MODEL_FBI;
else if(menu_item[SelectedItem].num_val == 3)Rot_Vehicle_Model = MODEL_NOOSE;
else if(menu_item[SelectedItem].num_val == 4)Rot_Vehicle_Model = MODEL_POLICE;
else if(menu_item[SelectedItem].num_val == 5)Rot_Vehicle_Model = MODEL_POLICE2;
else if(menu_item[SelectedItem].num_val == 6)Rot_Vehicle_Model = MODEL_POLPATRIOT;
else if(menu_item[SelectedItem].num_val == 7)Rot_Vehicle_Model = MODEL_PSTOCKADE;
else if(menu_item[SelectedItem].num_val == 8)Rot_Vehicle_Model = MODEL_FIRETRUK;
if(menu_item[SelectedItem].num_val > 0 && menu_item[SelectedItem].num_val < 9 )MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Vehicle_Model, 1.00f, 00.00f, 00.00f, 00.00f, 00.00f );
else if(menu_item[SelectedItem].num_val == 9)clear_rotations();
}
else if(SelectedItem == 17){
int Rot_Vehicle_Model;
if(renew_rotate)clear_rotations();
if(menu_item[SelectedItem].num_val == 1)Rot_Vehicle_Model = MODEL_ANNIHILATOR;
else if(menu_item[SelectedItem].num_val == 2)Rot_Vehicle_Model = MODEL_MAVERICK;
else if(menu_item[SelectedItem].num_val == 3)Rot_Vehicle_Model = MODEL_POLMAV;
else if(menu_item[SelectedItem].num_val == 4)Rot_Vehicle_Model = MODEL_TOURMAV;
if(menu_item[SelectedItem].num_val > 0 && menu_item[SelectedItem].num_val < 5 )MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Vehicle_Model, 1.00f, 00.00f, 00.00f, 00.00f, 00.00f );
else if(menu_item[SelectedItem].num_val == 5)clear_rotations();
}
else if(SelectedItem == 16){
int Rot_Vehicle_Model;
if(renew_rotate)clear_rotations();
if(menu_item[SelectedItem].num_val == 1)Rot_Vehicle_Model = MODEL_DINGHY;
else if(menu_item[SelectedItem].num_val == 2)Rot_Vehicle_Model = MODEL_JETMAX;
else if(menu_item[SelectedItem].num_val == 3)Rot_Vehicle_Model = MODEL_MARQUIS;
else if(menu_item[SelectedItem].num_val == 4)Rot_Vehicle_Model = MODEL_PREDATOR;
else if(menu_item[SelectedItem].num_val == 5)Rot_Vehicle_Model = MODEL_REEFER;
else if(menu_item[SelectedItem].num_val == 6)Rot_Vehicle_Model = MODEL_SQUALO;
else if(menu_item[SelectedItem].num_val == 7)Rot_Vehicle_Model = MODEL_TROPIC;
else if(menu_item[SelectedItem].num_val == 8)Rot_Vehicle_Model = MODEL_TUGA;
if(menu_item[SelectedItem].num_val > 0 && menu_item[SelectedItem].num_val < 9 )MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Vehicle_Model, 1.00f, 00.00f, 00.00f, 00.00f, 00.00f );
else if(menu_item[SelectedItem].num_val == 9)clear_rotations();
}
else if(SelectedItem == 15){
int Rot_Vehicle_Model;
if(renew_rotate)clear_rotations();
if(menu_item[SelectedItem].num_val == 1)Rot_Vehicle_Model = MODEL_BOBBER;
else if(menu_item[SelectedItem].num_val == 2)Rot_Vehicle_Model = MODEL_FAGGIO;
else if(menu_item[SelectedItem].num_val == 3)Rot_Vehicle_Model = MODEL_HELLFURY;
else if(menu_item[SelectedItem].num_val == 4)Rot_Vehicle_Model = MODEL_NRG900;
else if(menu_item[SelectedItem].num_val == 5)Rot_Vehicle_Model = MODEL_PCJ;
else if(menu_item[SelectedItem].num_val == 6)Rot_Vehicle_Model = MODEL_SANCHEZ;
else if(menu_item[SelectedItem].num_val == 7)Rot_Vehicle_Model = MODEL_ZOMBIEB;
if(menu_item[SelectedItem].num_val > 0 && menu_item[SelectedItem].num_val < 8 )MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Vehicle_Model, 1.00f, 00.00f, 00.00f, 00.00f, 00.00f );
else if(menu_item[SelectedItem].num_val == 8)clear_rotations();
}
else if(SelectedItem == 14){
int Rot_Vehicle_Model;
if(renew_rotate)clear_rotations();
if(menu_item[SelectedItem].num_val == 1)Rot_Vehicle_Model = MODEL_BIFF;
else if(menu_item[SelectedItem].num_val == 2)Rot_Vehicle_Model = MODEL_BOXVILLE;
else if(menu_item[SelectedItem].num_val == 3)Rot_Vehicle_Model = MODEL_FLATBED;
else if(menu_item[SelectedItem].num_val == 4)Rot_Vehicle_Model = MODEL_MRTASTY;
else if(menu_item[SelectedItem].num_val == 5)Rot_Vehicle_Model = MODEL_PHANTOM;
else if(menu_item[SelectedItem].num_val == 6)Rot_Vehicle_Model = MODEL_RIPLEY;
else if(menu_item[SelectedItem].num_val == 7)Rot_Vehicle_Model = MODEL_STEED;
else if(menu_item[SelectedItem].num_val == 8)Rot_Vehicle_Model = MODEL_FEROCI2;
else if(menu_item[SelectedItem].num_val == 9)Rot_Vehicle_Model = MODEL_FORKLIFT;
if(menu_item[SelectedItem].num_val > 0 && menu_item[SelectedItem].num_val < 10 )MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Vehicle_Model, 1.00f, 00.00f, 00.00f, 00.00f, 00.00f );
else if(menu_item[SelectedItem].num_val == 10)clear_rotations();
}
else if(SelectedItem == 18){ //Ped rotations
Ped Rot_Ped_Model;
if(renew_rotate)clear_rotations();
if(menu_item[SelectedItem].num_val == 1)Rot_Ped_Model = MODEL_F_Y_STRIPPERC01;
else if(menu_item[SelectedItem].num_val == 2)Rot_Ped_Model = MODEL_M_Y_SWAT;
else if(menu_item[SelectedItem].num_val == 3)Rot_Ped_Model = MODEL_M_Y_CLUBFIT;
if(menu_item[SelectedItem].num_val >= 1 && menu_item[SelectedItem].num_val <= 3 )MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Ped_Model, 1.50f, 00.00f, 00.00f, 00.00f, 00.00f );
else if(menu_item[SelectedItem].num_val == 4)clear_rotations();
}
else if(SelectedItem == 19){//Rotations
Model Rot_Object_Model;
if(renew_rotate)clear_rotations();
if(menu_item[SelectedItem].num_val == 1){//Blue neons 0xD20167BE
Rot_Object_Model = 0xD20167BE;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, -0.20, 00.00f, 00.00f, 00.00f, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 2){//Green Flash 0x3BF5F0E5
if(renew_rotate)clear_rotations();
Rot_Object_Model = 0x3BF5F0E5;
float Setheight = 3.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight, 00.00f, 00.00f, 00.00f, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 3){//Green Flash 0x3BF5F0E5
if(renew_rotate)clear_rotations();
Rot_Object_Model = 0x3BF5F0E5;
float Setheight = -0.4013f;
float Set_Angle_x = 4.200f;
float Set_Angle_y = 00.00f;
float Set_Angle_z = 00.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model,Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 4){//Purple Flash 0x6A299B19
if(renew_rotate)clear_rotations();
Rot_Object_Model = 0x6A299B19;
float Setheight = 3.00f;
float Set_Angle_x = 0.00f;
float Set_Angle_y = 0.00f;
float Set_Angle_z = 0.00f;
float Set_Angle_Bone = 0.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, Set_Angle_Bone);
}
else if(menu_item[SelectedItem].num_val == 5){//Purple Flash 0x6A299B19
if(renew_rotate)clear_rotations();
Rot_Object_Model = 0x6A299B19;
float Setheight = -0.500f;
float Set_Angle_x = 4.2000f;
float Set_Angle_y = 0.0400f;
float Set_Angle_z = 2.3625;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 6){//Flaming Barel 451384443
if(renew_rotate)clear_rotations();
Rot_Object_Model = 451384443;
float Setheight = -0.500f;
float Set_Angle_x = 0.00f;
float Set_Angle_y = 0.00f;
float Set_Angle_z = 0.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 7){//Flames 0xF329E245
if(renew_rotate)clear_rotations();
Rot_Object_Model = 0xF329E245;
float Setheight = -1.60f;
float Set_Angle_x = 0.00f;
float Set_Angle_y = 0.00f;
float Set_Angle_z = 0.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 8){//stars
if(renew_rotate)clear_rotations();
Rot_Object_Model = 0x68D6190D;
float Setheight = 10.00f;
float Set_Angle_x = 0.00f;
float Set_Angle_y = 0.00f;
float Set_Angle_z = 0.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 9){//Light around 0x2A56D09E
if(renew_rotate)clear_rotations();
Rot_Object_Model = 0x2A56D09E;
float Setheight = 3.00f;
float Set_Angle_x = 0.00f;
float Set_Angle_y = 0.00f;
float Set_Angle_z = 0.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 10){//Disco Lights 0xEDF775CB
if(GET_CURRENT_EPISODE() == 0){
if(renew_rotate)clear_rotations();
Rot_Object_Model = 0xEDF775CB;
float Setheight = 5.00f;
float Set_Angle_x = 0.00f;
float Set_Angle_y = 0.00f;
float Set_Angle_z = 0.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else Alert("~BLIP_76~ ~COL_NET_4~GTA IV Original Only!",false);
}
else if(menu_item[SelectedItem].num_val == 11){//Red Neons 0xCB26803D
if(renew_rotate)clear_rotations();
Rot_Object_Model = 0xCB26803D;
float Setheight = 0.80f;
float Set_Angle_x = 0.00f;
float Set_Angle_y = 0.00f;
float Set_Angle_z = 0.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 12){//Sparks 0x55CA3AE6
if(renew_rotate)clear_rotations();
Rot_Object_Model = 0x55CA3AE6;
float Setheight = 0.30f;
float Set_Angle_x = 3.1099f;
float Set_Angle_y = 0.00f;
float Set_Angle_z = 0.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 13){//Shower 0x55CA3AE6
if(renew_rotate)clear_rotations();
Rot_Object_Model = 0x397C604F;
float Setheight = -1.00f;
float Set_Angle_x = 3.1599f;
float Set_Angle_y = 0.00f;
float Set_Angle_z = 0.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 14){//Smoke 0x55CA3AE6
if(renew_rotate)clear_rotations();
Rot_Object_Model = 0x3427A4F4;
float Setheight = -18.80f;
float Set_Angle_x = 0.00f;
float Set_Angle_y = 0.00f;
float Set_Angle_z = 0.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 15){//Hamburger -625491925
if(renew_rotate)clear_rotations();
Rot_Object_Model = -625491925;
float Setheight = 3.00f;
float Set_Angle_x = 0.00f;
float Set_Angle_y = 0.00f;
float Set_Angle_z = 0.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 16){//Hamburger 0x55CA3AE6
if(renew_rotate)clear_rotations();
Rot_Object_Model = -625491925;
float Setheight = -0.20f;
float Set_Angle_x = 0.00f;
float Set_Angle_y = 0.00f;
float Set_Angle_z = 0.00f;
MC_Create_Player_Rotation (players[ChangeNetPlayer].id, Rot_Object_Model, Setheight,Set_Angle_x, Set_Angle_y, Set_Angle_z, 00.00f );
}
else if(menu_item[SelectedItem].num_val == 17){
clear_rotations();
}
}
else if(SelectedItem == 20){ // PREMIUM ONLY !!!!
Rot_Solidify = !Rot_Solidify;
menu_item[SelectedItem].extra_val = Rot_Solidify;
if(!Rot_Solidify){
Alert("~BLIP_76~ ~c~Solidify Vehicles ~COL_NET_4~OFF",false);
}
else Alert("~BLIP_76~ ~c~Solidify Vehicles ~COL_NET_3~ON",false);
}
}

View File

@@ -0,0 +1,570 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MC_Sco_Modloader_Main_Setup(void){
MENU_SUB_HEADER = "~BLIP_94~ Third Party Mods ~BLIP_94~";
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Recommended Modmenus"); //1
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Various Modmenus"); //2
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Weapon Mods"); //3
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Vehicle Weapon Mods");
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Handling & Character Mods"); //4
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Object & Car Spawners"); //5
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Special & Fun Mods"); //9
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ MapMod Loader"); //7
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Game Modes & MiniGames"); //8
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Sort On Developers ~PAD_RIGHT~"); //9
Add_JumpOver("~BLIP_94~ S E T T I N G S ~BLIP_94~"); //10
AddBool("~BLIP_68~ Display All missing Sco's You Can Add",GetBit(MD_Misc_OptionsBitSet, MD_MISC_SHOW_MISSING_SCO)); //11
}
void MC_Sort_Devs_Setup(void){
MENU_SUB_HEADER = "~BLIP_94~ Developers Mods ~BLIP_94~";
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Buffeting "); //1
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ BouBouvirus "); //2
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Chr0m3 x MoDz "); //3
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ xD4I2K SIVIOKEx "); //4
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ DaxxPhenom "); //5
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ EmanuelU XMC "); //6
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Evil Blunt "); //7
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Hun "); //8
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ JDMAlex "); //9
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Jumper "); //10
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ K3R3DOR "); //11
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Motions97 "); //12
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ OhManMyBad "); //13
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ PSX-Colt "); //14
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ ReVoLuTiioNz "); //15
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Rodd1981 "); //16
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ SHoCKxWAVE "); //17
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ XF CH3WY "); //18
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Various Devs "); //19
return;
}
void MC_Sco_Modloader_Main_Action(void){
if(SelectedItem == 12){
ToggleBit(MD_Misc_OptionsBitSet, MD_MISC_SHOW_MISSING_SCO);
menu_item[SelectedItem].extra_val = GetBit(MD_Misc_OptionsBitSet, MD_MISC_SHOW_MISSING_SCO);
//Alert_Two("~BLIP_76~ ~c~Display all missing sco's", Menu_Show_Missing_Sco ? PrintON : PrintOFF ,false);
}
else Modmanager();
}
void MC_Sco_Recommended(void){
MENU_SUB_HEADER = "~BLIP_94~ Recommended Menus ~BLIP_94~";
Load_Sco("~BLIP_68~ Buffetings Menu ~PAD_RB~ +~PAD_DPAD_DOWN~", "buffy_menu");
if(IS_NETWORK_SESSION()){ // We dont want this shit to load in single player
Load_Sco("~BLIP_68~ ChrOm3xMoDz V4.0 Menu ~PAD_DPAD_LEFT~+~PAD_X~", "chrome4");
Load_Sco("~BLIP_68~ ChrOm3xMoDz V4.0 Network ~PAD_LB~+~PAD_X~", "player_menu");
Load_Sco("~BLIP_68~ Chr0m3 V5 Network ~PAD_LB~+~PAD_X~", "player_menuGT");
Load_Sco("~BLIP_68~ ChrOm3xMoDz V5.0 VIP ~PAD_DPAD_LEFT~+~PAD_X~", "chrome5GT");
}
Load_Sco("~BLIP_68~ xD4I2K SIVIOKEx's v4 ~PAD_DPAD_DOWN~+~PAD_A~", "dark_menu");
Load_Sco("~BLIP_68~ EvilB Trainer V2 (All in One!) ~PAD_LB~ + ~PAD_DPAD_RIGHT~", "eb_trainer");
Load_Sco("~BLIP_68~ EVILB Objects & Funny Cars ~PAD_LB~ + ~PAD_DPAD_DOWN~", "objfunveh");
Load_Sco("~BLIP_68~ K3R3DOR Project368 ~PAD_RB~ + ~PAD_DPAD_RIGHT~", "keredor");
Load_Sco("~BLIP_68~ K3R3DOR Project368v2 ~PAD_RB~ + ~PAD_DPAD_RIGHT~", "project368v2");
Load_Sco("~BLIP_68~ Motions97 V3.0 Menu ~PAD_DPAD_LEFT~ + ~PAD_B~", "m97_menu");
if(IS_NETWORK_SESSION()){// We dont want this shit to load in single player
Load_Sco("~BLIP_68~ Motions97 V3.0 Network ~PAD_DPAD_RIGHT~ + ~PAD_B~", "motions_player");
}
Load_Sco("~BLIP_68~ R3B3LY0N Maxi Menu ~PAD_RB~ + ~PAD_DPAD_UP~", "rebelyon");
Load_Sco("~BLIP_68~ RockStarkings V7.0 ~PAD_A~ + ~PAD_X~", "main10");
Load_Sco("~BLIP_68~ SHoCKxWAVE Menu ~r~v10 ~PAD_DPAD_LEFT~ + ~PAD_A~", "shockxwave10");
Load_Sco("~BLIP_68~ SHoCKxWAVE Menu ~r~v13 ~PAD_DPAD_LEFT~ + ~PAD_A~", "shockxwave13");
Load_Sco("~BLIP_68~ ThreeSocks Trainer ~PAD_LB~ + ~PAD_DPAD_UP~", "3s_trainer");
return;
}
void MC_Sco_Weapons(void){
MENU_SUB_HEADER = "~BLIP_94~ Weapon Mods ~BLIP_94~";
Load_Sco("~BLIP_68~ SHoCKxWAVE AimBot Weapon", "aimbot");
Load_Sco("~BLIP_68~ The Godly Sniper ~PAD_LT~+~PAD_RT~", "weap1");
Load_Sco("~BLIP_68~ Gravity Gun ~PAD_RSTICK_ALL~/~PAD_LSTICK_ALL~", "m97_grav");
Load_Sco("~BLIP_68~ Rocket Desert Eagle ~PAD_LT~+~PAD_RT~~COL_NET_4~", "rocketdeagle");
Load_Sco("~BLIP_68~ Taser Glock Motions97 ~PAD_LT~+~PAD_RT~", "m97_taser");
Load_Sco("~BLIP_68~ Explosive Mp5/AK-47 ~PAD_LT~+~PAD_RT~", "drs01");
Load_Sco("~BLIP_68~ Forcefield AK-47 ~PAD_LT~+~PAD_RT~", "buffy_force");
Load_Sco("~BLIP_68~ Advanced Forcefield by Storm~PAD_X~+ ~PAD_DPAD_RIGHT~", "ForceFieldv25");
Load_Sco("~BLIP_68~ Rockets Mp5 Buffeting ~PAD_LT~+~PAD_RT~", "buffy_mp5");
Load_Sco("~BLIP_68~ Car Launcher Gun1 ~PAD_LT~+~PAD_A~/~PAD_B~/~PAD_X~/~PAD_Y~", "rob_cl");
Load_Sco("~BLIP_68~ Car Launcher Gun2 ~PAD_RT~/~PAD_LT~+~PAD_DPAD_LEFT~/~PAD_DPAD_RIGHT~", "buffy_launcher");
Load_Sco("~BLIP_68~ Car ~PAD_LT~ Manipulate~PAD_DPAD_LEFTRIGHT~Shoot ~PAD_A~", "rob_carmod");
return;
}
void MC_Sco_Veh_Weapons(void){
MENU_SUB_HEADER = "~BLIP_94~ Vehicle Weapons ~BLIP_94~";
Load_Sco("~BLIP_68~ Turret Airport Defence ~PAD_LSTICK_NONE~+~PAD_RT~", "Sam-turrets");
Load_Sco("~BLIP_68~ Heli Bullets 4 Skilled Pilots ~PAD_DPAD_LEFT~", "rev_xml_heli");
Load_Sco("~BLIP_68~ Flaming Heli Inferno ~PAD_DPAD_RIGHT~+~PAD_B~/~PAD_X~", "flameheli");//xbox-ps3 diff .sco files!
Load_Sco("~BLIP_68~ Drop A Bomb On Them! ~PAD_RB~", "weap2");
Load_Sco("~BLIP_68~ Explosive Rounds~COL_NET_4~ (TBoGT)", "weap3");
Load_Sco("~BLIP_68~ Shoot Explosive Bomb ~PAD_A~", "weap10");
Load_Sco("~BLIP_68~ Rockets RPG Car & Bike ~PAD_X~", "weap11");
Load_Sco("~BLIP_68~ Rockets RPG Heli ~PAD_A~", "rob_rh");
Load_Sco("~BLIP_68~ Shoot Explosive Vehicles ~PAD_X~", "weap12");
Load_Sco("~BLIP_68~ Twisted Metal~COL_NET_4~ (TBOGT)", "weap13");
Load_Sco("~BLIP_68~ Colt/Keredor Advanced HeliRounds", "AdvancedHeliRounds");
return;
}
void MC_Sco_Handling(void){
MENU_SUB_HEADER = "~BLIP_94~ Handling Mods ~BLIP_94~";
Load_Sco("~BLIP_68~ Analog Fly Mod ~PAD_X~+~PAD_LSTICK_ALL~", "hand1");
Load_Sco("~BLIP_68~ Superman ~PAD_RB~+~PAD_DPAD_DOWN~/~PAD_LB~+~PAD_LSTICK_ALL~/", "eb_superman");
Load_Sco("~BLIP_68~ Swimming Everywhere ~PAD_RB~+~PAD_DPAD_DOWN~", "hand3");
Load_Sco("~BLIP_68~ Levitation Mode ~PAD_DPAD_RIGHT~/~PAD_A~", "k3r3d0r_levitation");
Load_Sco("~BLIP_68~ Teleport GTA V Style ~PAD_LB~+~PAD_DPAD_DOWN~", "teleport");
Load_Sco("~BLIP_68~ XxK1tty Suspension Menu ~PAD_RSTICK_NONE~/~PAD_DPAD_LEFTRIGHT~", "suspension");
Load_Sco("~BLIP_68~ Hydraulics By XF CH3WY ~PAD_RB~+~PAD_A~", "XFHydraulics");
Load_Sco("~BLIP_68~ Drive On Water (Speed)~PAD_DPAD_DOWN~+~PAD_RB~+~PAD_B~", "mybad_water");
Load_Sco("~BLIP_68~ Walk & Drive On Water ~PAD_DPAD_RIGHT~+~PAD_X~", "hand5");
Load_Sco("~BLIP_68~ xD4I2K's Undercover Police ~PAD_DPAD_LEFT~+~PAD_RB~", "D_Undercover");
Load_Sco("~BLIP_68~ Superhero ~PAD_DPAD_UP~ + ~COL_NET_4~F ~PAD_RT~ / M ~PAD_LT~", "model2");
Load_Sco("~BLIP_68~ Teleport menu", "teleportmenu");
return;
}
void MC_Sco_Object_Cars_Spawners(void){
MENU_SUB_HEADER = "~BLIP_94~ Object & Car Spawners ~BLIP_94~";
Load_Sco("Clear All Objects", "map_mod_clean");
Load_Sco("~BLIP_68~ Spawn Cars @Airport Helipads", "carspawnerold");
Load_Sco("~BLIP_68~ Spawn Cars @Airport Helipads 2", "airportcarspawns3");
Load_Sco("~BLIP_68~ Spawn Cars @Airport on Runway", "carspawnersport");
Load_Sco("~BLIP_68~ Spawn Cars @Airport by Kushhs", "kushspawns");
Load_Sco("~BLIP_68~ Spawn Police Cars @Airport", "policecarspawns");
Load_Sco("~BLIP_68~ Brad Object Attach Menu ~PAD_LB~+~PAD_DPAD_UP~", "dev4");
Load_Sco("~BLIP_68~ EvilB Trainer V2 (All in one!) ~PAD_LB~ + ~PAD_DPAD_RIGHT~", "eb_trainer");
Load_Sco("~BLIP_68~ EVILB Objects & Funny Cars ~PAD_LB~ + ~PAD_DPAD_DOWN~", "objfunveh");
Load_Sco("~BLIP_68~ Phantomised Objects V3 ~PAD_LB~+~PAD_DPAD_DOWN~", "dating_fred");
return;
}
void MC_Sco_Map_Main(void){
MENU_SUB_HEADER = "~BLIP_94~ Map Loader ~BLIP_94~";
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Airport LockDown ");
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Teleporter Maps ");
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Butcher Maps ");
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Race Tracks Maps ");
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Hideout Buildings ");
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Ramps @ Airport ");
AddSubMenu("~BLIP_73~ ~PAD_RIGHT~ Extra Map Mod Slots ");
Load_Sco("~BLIP_68~ EvilB Map Mod Loader ~PAD_RB~+~PAD_DPAD_RIGHT~", "evilbmap");
Load_Sco("~BLIP_68~ CutScene Interiors V1.2", "fun1");
Load_Sco("Clear All Objects", "map_mod_clean");
return;
}
void MC_Sco_Personal(void){
MENU_SUB_HEADER = "~BLIP_94~ Personal & Auto-loads ~BLIP_94~";
Load_Sco("~BLIP_68~ AutoLoad 1", "aload1");
Load_Sco("~BLIP_68~ AutoLoad 2", "aload2");
Load_Sco("~BLIP_68~ AutoLoad 3", "aload3");
Load_Sco("~BLIP_68~ AutoLoad 4", "aload4");
Load_Sco("~BLIP_68~ AutoLoad 5", "aload5");
Load_Sco("~BLIP_68~ Extra ModMenu 1", "addonmenu1");
Load_Sco("~BLIP_68~ Extra ModMenu 2", "addonmenu2");
Load_Sco("~BLIP_68~ Extra ModMenu 3", "addonmenu3");
Load_Sco("~BLIP_68~ Extra ModMenu 4", "addonmenu4");
Load_Sco("~BLIP_68~ Extra ModMenu 5", "addonmenu5");
Load_Sco("~BLIP_68~ Extra ModMenu 6", "addonmenu6");
Load_Sco("~BLIP_68~ Extra ModMenu 7", "addonmenu7");
Load_Sco("~BLIP_68~ Extra ModMenu 8", "addonmenu8");
Load_Sco("~BLIP_68~ Extra ModMenu 9", "addonmenu9");
Load_Sco("~BLIP_68~ Extra ModMenu 10", "addonmenu10");
return;
}
void MC_Sco_More_Menus(void){
MENU_SUB_HEADER = "~BLIP_94~ More ModMenu's ~BLIP_94~";
Load_Sco("~BLIP_68~ BouBouvirus V5 ~PAD_DPAD_DOWN~+~PAD_A~", "boubou5");
Load_Sco("~BLIP_68~ DaxxPhenom V5 (~PAD_RB~+~PAD_DPAD_RIGHT~", "daxx5");
Load_Sco("~BLIP_68~ Evades V3.0 Premium ~PAD_X~+~PAD_DPAD_DOWN~", "evade3GT");
Load_Sco("~BLIP_68~ InTheSevens Mod Menu ~PAD_LB~ + ~PAD_RB~", "Inthe7");
Load_Sco("~BLIP_68~ BoubouVirus V4 ~PAD_DPAD_DOWN~+~PAD_A~", "boubou4");
Load_Sco("~BLIP_68~ ColdMurda Mod Menu ~PAD_A~+~PAD_RB~", "coldmurda");
Load_Sco("~BLIP_68~ DaxxPhenom V4 BETA ~PAD_DPAD_LEFT~+~PAD_A~", "daxx4");
Load_Sco("~BLIP_68~ Evades V3.0 Public ~PAD_X~+~PAD_DPAD_DOWN~", "evade");
Load_Sco("~BLIP_68~ CarniVale MENU ~PAD_LSTICK_NONE~+~PAD_RSTICK_NONE~", "TrollFunCarEnglish");
Load_Sco("~BLIP_68~ Radio Menu Los Santos ~PAD_BACK~", "ModRadioLosSantos");
Load_Sco("~BLIP_68~ HAWK Fun Cars Menu ~PAD_LB~+~PAD_A~", "extra6");
Load_Sco("~BLIP_68~ DRS Team Tuning V1 ~PAD_LB~+~PAD_DPAD_RIGHT~", "drs1");
return;
}
void MC_Sco_Vehicle_Weapons(void){
MENU_SUB_HEADER = "~BLIP_94~ Vehicle Weapons ~BLIP_94~";
Load_Sco("~BLIP_68~ Turret Airport Defence ~PAD_LSTICK_NONE~+~PAD_RT~", "Sam-turrets");
Load_Sco("~BLIP_68~ Heli Bullets 4 Skilled Pilots ~PAD_DPAD_LEFT~", "rev_xml_heli");
Load_Sco("~BLIP_68~ Flaming Heli Inferno ~PAD_DPAD_RIGHT~+~PAD_B~/~PAD_X~", "flameheli");
Load_Sco("~BLIP_68~ Drop A Bomb On Them! ~PAD_RB~", "weap2");
Load_Sco("~BLIP_68~ Explosive Rounds~COL_NET_4~ (TBoGT)", "weap3");
Load_Sco("~BLIP_68~ Shoot Explosive Bomb ~PAD_A~", "weap10");
Load_Sco("~BLIP_68~ Rockets RPG Car & Bike ~PAD_X~", "weap11");
Load_Sco("~BLIP_68~ Rockets RPG Heli ~PAD_A~", "rob_rh");
Load_Sco("~BLIP_68~ Shoot Explosive Vehicles ~PAD_X~", "weap12");
Load_Sco("~BLIP_68~ Twisted Metal~COL_NET_4~ (TBOGT)", "weap13");
Load_Sco("~BLIP_68~ Colt/Keredor Advanced HeliRounds", "AdvancedHeliRounds");
return;
}
void MC_SpecialFun_mods(void){
MENU_SUB_HEADER = "~BLIP_94~ Special & Fun Mods ~BLIP_94~";
Load_Sco("~BLIP_68~ Voice Changer Menu ~PAD_RB~+~PAD_DPAD_LEFT~", "buffy_voice");
Load_Sco("~BLIP_68~ CutScene Models Menu ~PAD_LB~+~PAD_A~","hun_cutscene");
Load_Sco("~BLIP_68~ Get A Life! Teleport fun", "fun2");
Load_Sco("~BLIP_68~ Have Sex With Female ~PAD_LB~+~PAD_DPAD_RIGHT~", "fun4");
Load_Sco("~BLIP_68~ Have Sex With Male ~PAD_LB~+~PAD_DPAD_RIGHT~", "fun3");
Load_Sco("~BLIP_68~ Magic Weapons V4.0", "fun7");
Load_Sco("~BLIP_68~ K3R3DOR Stealth Bomber ~PAD_LSTICK_NONE~+~PAD_RT~", "stealthbomber");
Load_Sco("~BLIP_68~ Liquid Rage Mod(keyboard)", "liq_rage");
Load_Sco("~BLIP_68~ Liquid Rage Mod Controls", "liq_ragecontrols");
Load_Sco("~BLIP_68~ HealthPack Protection Airport", "nohealth1");//No health packs first island
Load_Sco("~BLIP_68~ Colts Personal Driver ~PAD_LB~+~PAD_B~", "colt");
Load_Sco("~BLIP_68~ xD4I2K's Chauffeur ~PAD_DPAD_RIGHT~ + ~PAD_B~","D_Chauffeur");
Load_Sco("~BLIP_68~ xD4I2K's Chauffeur Pilot ~PAD_DPAD_RIGHT~ + ~PAD_B~","D_Chauffeur_pilot");
Load_Sco("~BLIP_68~ Devilish Robotics ~COL_NET_4~(Use In Vehicle)", "robots");//Robot
Load_Sco("~BLIP_68~ Transformers ~COL_NET_4~~PAD_DPAD_DOWN~Change ~PAD_DPAD_RIGHT~Flame", "funny8");
Load_Sco("~BLIP_68~ XxK1tty Gas-Flame Spawner", "gasspawner");
Load_Sco("~BLIP_68~ OhMyBad Ramp Bus", "funny2");
Load_Sco("~BLIP_68~ Rocket-truck w. HeatSeekers", "RPGtruck");
Load_Sco("~BLIP_68~ Mugging Service by OhManMyBad", "mugging_service");
Load_Sco("~BLIP_68~ Fighter Jet by XF CH3WY", "Fighter Jet");
return;
}
void MC_Sco_Minimaps(void){
MENU_SUB_HEADER = "~BLIP_94~ Mini Games & Game Modes ~BLIP_94~";
Load_Sco("Clear All Objects", "map_mod_clean");
Load_Sco("~BLIP_68~ GangWars V2.2", "mini1");
Load_Sco("~BLIP_68~ HitMan Jobs", "mini2");
Load_Sco("~BLIP_68~ Police RolePlay", "mini3");
Load_Sco("~BLIP_68~ Police PerCecution", "police2");
Load_Sco("~BLIP_68~ Police Squad by Disconnected", "kb_driveby");
Load_Sco("~BLIP_68~ HighGuy Police Script", "HighGuy");
Load_Sco("~BLIP_68~ HighGuy Police Script Controls", "Highguycontrols");
Load_Sco("~BLIP_68~ Hun's Treasure Hunt V1", "mini4");
Load_Sco("~BLIP_68~ Hun's Treasure Hunt V2", "mini5");
Load_Sco("~BLIP_68~ Zombie MiniGame", "jdma_zombie");
Load_Sco("~BLIP_68~ Deal Breaker II", "rodd_dbii");
Load_Sco("~BLIP_68~ Let The Zombies Come!", "gmode2");
Load_Sco("~BLIP_68~ Make Peds Go Crazy!", "gmode3");
return;
}
void MC_Sco_Maps_Airport_Lockdown(void){
MENU_SUB_HEADER = "~BLIP_94~ Airport LockDown ~BLIP_94~";
Load_Sco("Clear All Objects", "map_mod_clean");
Load_Sco("~BLIP_68~ Airport LockDown Doors", "air");
Load_Sco("~BLIP_68~ Airport LockDown Police Cars", "ml2");
Load_Sco("~BLIP_68~ Airport LockDown Gates", "gates");
Load_Sco("~BLIP_68~ Airport Complete LockDown", "airport");
Load_Sco("~BLIP_68~ Broker Island LockDown Bridge", "crossings");
return;
}
void MC_Sco_Maps_Teleporter(void){
MENU_SUB_HEADER = "~BLIP_94~ Teleporter Maps ~BLIP_94~";
Load_Sco("Clear All Objects","map_mod_clean");
Load_Sco("~BLIP_68~ Airport Tele Green Cloud", "ml3");
Load_Sco("~BLIP_68~ Airport Tele Sky High", "ml4");
Load_Sco("~BLIP_68~ Airport Tele Sky Kick ", "skykick");
Load_Sco("~BLIP_68~ Airport Tele City View", "ml5");
Load_Sco("~BLIP_68~ Airport Tele Underwater", "ml6");
Load_Sco("~BLIP_68~ City Tele FatCops 'N 3Blocks", "ml7");
return;
}
void MC_Sco_Maps_Butchers(void){
MENU_SUB_HEADER = "~BLIP_94~ Butcher Maps ~BLIP_94~";
Load_Sco("Clear All Objects", "map_mod_clean");
Load_Sco("~BLIP_68~ Airport Water Butcher", "ml8");
Load_Sco("~BLIP_68~ Airport Space Butcher", "ml9");
Load_Sco("~BLIP_68~ Airport Butcher", "ml10");
Load_Sco("~BLIP_68~ Airport Caddy Butcher", "caddybutcher");
return;
}
void MC_Sco_Maps_Racetracks(void){
MENU_SUB_HEADER = "~BLIP_94~ Race Track Maps ~BLIP_94~";
Load_Sco("Clear All Objects", "map_mod_clean");
Load_Sco("~BLIP_68~ Airport Ocean Overpass", "oceanover");
Load_Sco("~BLIP_68~ Airport Race Track", "ml13");
Load_Sco("~BLIP_68~ Airport Drag Track", "ml14");
Load_Sco("~BLIP_68~ Airport Rally Track", "ml15");
Load_Sco("~BLIP_68~ Airport Playground", "ml17");
return;
}
void MC_Sco_Maps_Buildings(void){
MENU_SUB_HEADER = "~BLIP_94~ Fun & Buildings ~BLIP_94~";
Load_Sco("Clear All Objects", "map_mod_clean");
Load_Sco("~BLIP_68~ The Chill Out Garage", "chilloutgarage");
Load_Sco("~BLIP_68~ Ghetto Parking FightClub", "map21");
Load_Sco("~BLIP_68~ Airport Base Hideout", "map13");
Load_Sco("~BLIP_68~ Airport Sea GarageMap", "map12");
Load_Sco("~BLIP_68~ Airport Heli Canon", "map14");
Load_Sco("~BLIP_68~ Police Outpost", "Police Outpost");
return;
}
void MC_Sco_Maps_Airport_Ramps(void){
MENU_SUB_HEADER = "~BLIP_94~ Ramps @ Airport ~BLIP_94~";
Load_Sco("Clear All Objects", "map_mod_clean");
Load_Sco("~BLIP_68~ Big Tower Jump", "airtowerjump");
Load_Sco("~BLIP_68~ High Jump", "airhighjump");
Load_Sco("~BLIP_68~ Jump Track", "airjumptrack");
Load_Sco("~BLIP_68~ Airport Big Stunt Park", "Airportbigstuntpark");
Load_Sco("~BLIP_68~ Airport Broker Jumps", "Airportbrokerjumps");
Load_Sco("~BLIP_68~ Elite's Stunt Jumps", "stunt_jump");
return;
}
void MC_Sco_Maps_Extra(void){
MENU_HEADER = "Name : extramap1.sco - 10";
MENU_SUB_HEADER = "~BLIP_94~ Extra Map Mods ~BLIP_94~";
Load_Sco("Clear All Objects", "map_mod_clean");
Load_Sco("~BLIP_68~ Extra MapMod 1", "extramap1");
Load_Sco("~BLIP_68~ Extra MapMod 2", "extramap2");
Load_Sco("~BLIP_68~ Extra MapMod 3", "extramap3");
Load_Sco("~BLIP_68~ Extra MapMod 4", "extramap4");
Load_Sco("~BLIP_68~ Extra MapMod 5", "extramap5");
Load_Sco("~BLIP_68~ Extra MapMod 6", "extramap6");
Load_Sco("~BLIP_68~ Extra MapMod 7", "extramap7");
Load_Sco("~BLIP_68~ Extra MapMod 8", "extramap8");
Load_Sco("~BLIP_68~ Extra MapMod 9", "extramap9");
Load_Sco("~BLIP_68~ Extra MapMod 10", "extramap10");
return;
}
void MC_Buffeting(void){
MENU_SUB_HEADER = "~BLIP_94~ Buffetings Mods~BLIP_94~";
Load_Sco("~BLIP_68~ Buffetings Menu ~PAD_RB~ + ~PAD_DPAD_DOWN~","buffy_menu");
Load_Sco("~BLIP_68~ Model Changer", "buffy_model");
Load_Sco("~BLIP_68~ Voice Changer ~PAD_RB~ + ~PAD_DPAD_LEFT~", "buffy_voice");
Load_Sco("~BLIP_68~ Gravity Gun", "buffy_gravity");
Load_Sco("~BLIP_68~ Gravity M4", "buffy_grav_m4");
Load_Sco("~BLIP_68~ Forcefield AK-47 ~PAD_LT~+~PAD_RT~", "buffy_force");
Load_Sco("~BLIP_68~ Rockets Mp5 Buffeting ~PAD_LT~+~PAD_RT~", "buffy_mp5");
Load_Sco("~BLIP_68~ Classic Super Punch", "buffy_punch");
Load_Sco("~BLIP_68~ Car Launcher Gun 2 ~PAD_RT~/~PAD_LT~+~PAD_DPAD_LEFT~/~PAD_DPAD_RIGHT~", "buffy_launcher");
Load_Sco("~BLIP_68~ Vehicle Missiles", "buffy_missile");
Load_Sco("~BLIP_68~ FlatBed PickUp", "buffy_flatbed");
return;
}
void MC_Boubou(void){
MENU_SUB_HEADER = "~BLIP_94~ BouBouvirus Mods~BLIP_94~";
Load_Sco("~BLIP_68~ BoubouVirus V3 ~PAD_DPAD_DOWN~+~PAD_A~", "boubou3");
Load_Sco("~BLIP_68~ BoubouVirus V4 ~PAD_DPAD_DOWN~+~PAD_A~", "boubou4");
Load_Sco("~BLIP_68~ BoubouVirus V5 ~PAD_DPAD_DOWN~+~PAD_A~", "boubou5");
Load_Sco("~BLIP_68~ Boubou Funny Cars ~PAD_DPAD_DOWN~ + ~PAD_X~","bou_funny_car");
return;
}
void MC_Chrome(void){
MENU_SUB_HEADER = "~BLIP_94~ Chr0m3 x MoDz~BLIP_94~";
Load_Sco("~BLIP_68~ ChrOm3xMoDz V4.0 Menu ~PAD_LB~+~PAD_X~", "chrome4");
Load_Sco("~BLIP_68~ ChrOm3xMoDz V4.0 Network ~PAD_DPAD_LEFT~+~PAD_X~", "player_menu");
Load_Sco("~BLIP_68~ Chr0m3 V5 Network ~PAD_LB~+~PAD_X~", "player_menuGT");
Load_Sco("~BLIP_68~ ChrOm3xMoDz V5.0 VIP ~PAD_DPAD_LEFT~+~PAD_X~", "chrome5GT");
Load_Sco("~BLIP_68~ Chr0m3 Ultimate Protection V4", "prot3");
Load_Sco("~BLIP_68~ Ultimate Desert Eagle","cxm_deagle");
Load_Sco("~BLIP_68~ Explosive Pistol","cxm_pistol");
Load_Sco("~BLIP_68~ Undercover Police Mod","cxm_undercover");
Load_Sco("~BLIP_68~ Police RolePlay 1.0","cxm_police");
Load_Sco("~BLIP_68~ Realism Mod MP/H","cxm_realism_mph");
Load_Sco("~BLIP_68~ Realism Mod K/H","cxm_realism");
Load_Sco("~BLIP_68~ Radio On Foot","cxm_radio");
Load_Sco("~BLIP_68~ Freeze Gun Menu","cxm_freeze");
Load_Sco("~BLIP_68~ Group Hack","cxm_group");
Load_Sco("~BLIP_68~ Group hack protection","cxm_gh_protection");
Load_Sco("~BLIP_68~ Parachute Car 1.0","cxm_parachute");
Load_Sco("~BLIP_68~ Pogo Stick","cxm_pogo");
return;
}
void MC_Dark_Smokes(void){
MENU_SUB_HEADER = "~BLIP_94~ xD4I2K SIVIOKEx Mods~BLIP_94~";
Load_Sco("~BLIP_68~ xD4I2K's GH Protection", "darkprot");
Load_Sco("~BLIP_68~ Walk & Drive On Water ~PAD_DPAD_RIGHT~+~PAD_X~", "hand5");
Load_Sco("~BLIP_68~ xD4I2K's Undercover Police ~PAD_DPAD_LEFT~+~PAD_RB~", "D_Undercover");
Load_Sco("~BLIP_68~ xD4I2K's v4 ~PAD_DPAD_DOWN~+~PAD_A~", "dark_menu");
Load_Sco("~BLIP_68~ Car Launcher ~PAD_DPAD_LEFT~ + ~PAD_A~","dark_car_launcher");
Load_Sco("~BLIP_68~ Network Ghost","dark_ghost");
Load_Sco("~BLIP_68~ Vehicle Explosives","dark_exp_rounds");
Load_Sco("~BLIP_68~ xD4I2K's Chauffeur ~PAD_DPAD_RIGHT~ + ~PAD_B~","D_Chauffeur");
Load_Sco("~BLIP_68~ xD4I2K's Chauffeur Pilot ~PAD_DPAD_RIGHT~ + ~PAD_B~","D_Chauffeur_pilot");
Load_Sco("~BLIP_68~ xD4I2K's HeatSeeker ~COL_NET_4~ Lock~PAD_LT~ Fire~PAD_A~","D_Heat_seekers");
return;
}
void MC_Dax(void){
MENU_SUB_HEADER = "~BLIP_94~ DaxxPhenom Mods~BLIP_94~";
Load_Sco("~BLIP_68~ DaxxPhenom V4 ~PAD_DPAD_LEFT~+~PAD_A~", "daxx4");
Load_Sco("~BLIP_68~ DaxxPhenom V5 ~PAD_DPAD_LEFT~+~PAD_A~", "daxx5");
Load_Sco("~BLIP_68~ Throw Players Vehicles","dax_throw");
Load_Sco("~BLIP_68~ Model Changer Anywhere","dax_model");
Load_Sco("~BLIP_68~ Hell Mod","dax_hell");
return;
}
void MC_Emanuel(void){
MENU_SUB_HEADER = "~BLIP_94~ EmanuelU Mods~BLIP_94~";
Load_Sco("~BLIP_68~ XMC 3 Menu ~PAD_LB~+~PAD_RB~", "xmc3");
Load_Sco("~BLIP_68~ XMC 3.57 Menu ~PAD_LB~+~PAD_RB~", "xmc357");
Load_Sco("~BLIP_68~ XMC 4 Menu ~PAD_LB~+~PAD_RB~", "xmc4");
Load_Sco("~BLIP_68~ XMC 5 Menu ~PAD_LB~+~PAD_RB~", "xmc5");
Load_Sco("~BLIP_68~ XMC 5.5 Menu ~PAD_LB~+~PAD_RB~", "xmc55");
Load_Sco("~BLIP_68~ XMC 5.5 Admin Menu ~PAD_LB~+~PAD_RB~", "xmc55admin");
Load_Sco("~BLIP_68~ XMC V5.5 ADMIN ~PAD_LB~+~PAD_RB~", "xmc55adminGT");
Load_Sco("~BLIP_68~ XMC V6.0 ADMIN ~PAD_LB~+~PAD_RB~", "xmc6GT");
Load_Sco("~BLIP_68~ XMC V6 Private ~PAD_LB~+~PAD_RB~", "xmc6private");
Load_Sco("~BLIP_68~ XMC V6 Admin ~PAD_LB~+~PAD_RB~", "xmc6admin");
Load_Sco("~BLIP_68~ Rocket Desert Eagle ~PAD_LT~+~PAD_RT~~COL_NET_4~", "rocketdeagle");
Load_Sco("~BLIP_68~ Rockets RPG Car & Bike ~PAD_X~", "weap11");
Load_Sco("~BLIP_68~ XMC Admin Menu ~PAD_LB~+~PAD_RB~", "xmcadmin");
return;
}
void MC_EvilB(void){
MENU_SUB_HEADER = "~BLIP_94~ Evil Blunt Mods~BLIP_94~";
Load_Sco("~BLIP_68~ EvilB Map Mod Loader ~PAD_RB~+~PAD_DPAD_RIGHT~", "evilbmap");
Load_Sco("~BLIP_68~ EvilB Trainer V2 (All in one!) ~PAD_LB~ + ~PAD_DPAD_RIGHT~", "eb_trainer");
Load_Sco("~BLIP_68~ EVILB Obj and Funny Cars ~PAD_LB~ + ~PAD_DPAD_DOWN~", "objfunveh");
Load_Sco("~BLIP_68~ Superman ~PAD_RB~+~PAD_DPAD_DOWN~/~PAD_LB~+~PAD_LSTICK_ALL~/", "eb_superman");
Load_Sco("~BLIP_68~ Swimming Everywhere ~PAD_RB~+~PAD_DPAD_DOWN~", "hand3");
return;
}
void MC_Hun(void){
MENU_SUB_HEADER = "~BLIP_94~ Hun Mods~BLIP_94~";
Load_Sco("~BLIP_68~ CutScene Models Menu ~PAD_LB~+~PAD_A~","hun_cutscene");
Load_Sco("~BLIP_68~ CutScene Interiors V1.2", "fun1");
Load_Sco("~BLIP_68~ GangWars V2.2", "mini1");
Load_Sco("~BLIP_68~ Hitman Jobs", "mini2");
Load_Sco("~BLIP_68~ Gang Wars 3.0","hun_gang");
Load_Sco("~BLIP_68~ HitMan Jobs","hun_hitman");
Load_Sco("~BLIP_68~ Let The Zombies Come!", "gmode2");
Load_Sco("~BLIP_68~ Make Peds Go Crazy!", "gmode3");
Load_Sco("~BLIP_68~ Ped-Riot Generator 2.0","hun_ped");
Load_Sco("~BLIP_68~ Treasure Hunt","hun_treasure");
Load_Sco("~BLIP_68~ Treasure Hunt 2","hun_treasure2");
Load_Sco("~BLIP_68~ Zombie Island","hun_zombie");
Load_Sco("~BLIP_68~ Hun's Treasure Hunt V1", "mini4");
Load_Sco("~BLIP_68~ Hun's Treasure Hunt V2", "mini5");
return;
}
void MC_JDMAlex(void){
MENU_SUB_HEADER = "~BLIP_94~ JDMAlex~BLIP_94~";
Load_Sco("~BLIP_68~ Explosive Pistol","jdma_pistol");
Load_Sco("~BLIP_68~ Free Premium Mods ~PAD_RSTICK_ALL~ + ~PAD_DPAD_LEFT~","jdma_prem");
Load_Sco("~BLIP_68~ Zombie MiniGame","jdma_zombie");
Load_Sco("~BLIP_68~ Native Trainer v2 ~PAD_RSTICK_ALL~ + ~PAD_DPAD_LEFT~","jdma_trainer");
Load_Sco("~BLIP_68~ AGM-114 HellFire","jdma_hellfire");
Load_Sco("~BLIP_68~ FlyMod","flymod");
Load_Sco("~BLIP_68~ Dead Eye","jdma_dead_eye");
Load_Sco("~BLIP_68~ Heli Vehicle Pick Up","jdma_heli");
Load_Sco("~BLIP_68~ JDMAlex Trainer v2 ~PAD_LB~ + ~PAD_DPAD_DOWN~","jdma_trainer_v2");
return;
}
void MC_Jumper(void){
MENU_SUB_HEADER = "~BLIP_94~ Jumper~BLIP_94~";
Load_Sco("~BLIP_68~ Object Launcher (new)","jumper_object_new");
Load_Sco("~BLIP_68~ Object Launcher (old)","jumper_object_old");
Load_Sco("~BLIP_68~ Throwing Cars","jumper_throwing");
Load_Sco("~BLIP_68~ Pigeon Jumper","jumper_pigeon");
Load_Sco("~BLIP_68~ Funny Car Builder","jumper_car_builder");
Load_Sco("~BLIP_68~ Analog FlyMod","jumper_flymod");
Load_Sco("~BLIP_68~ Drunk Mode","jumper_drunk");
Load_Sco("~BLIP_68~ Eject Ped Drivers","jumper_eject_ped");
Load_Sco("~BLIP_68~ Eject Self","jumper_eject");
Load_Sco("~BLIP_68~ Custom Trophy","jumper_trophy");
return;
}
void MC_Keredor(void){
MENU_SUB_HEADER = "~BLIP_94~ K3R3DOR Mods~BLIP_94~";
Load_Sco("~BLIP_68~ Turret Airport Defence ~PAD_LSTICK_NONE~+~PAD_RT~", "Sam-turrets");
Load_Sco("~BLIP_68~ K3R3DOR Stealth Bomber ~PAD_LSTICK_NONE~+~PAD_RT~", "stealthbomber");
Load_Sco("~BLIP_68~ K3R3DOR Project368 ~PAD_RB~+~PAD_DPAD_RIGHT~", "keredor");
Load_Sco("~BLIP_68~ K3R3DOR Project368v2 ~PAD_RB~+~PAD_DPAD_RIGHT~", "project368v2");
Load_Sco("~BLIP_68~ Mod Menu v2 ~PAD_RSTICK_ALL~ + ~PAD_RB~","k3r3d0r_menu");
Load_Sco("~BLIP_68~ SkyLift & TowTruck","k3r3d0r_skytow");
Load_Sco("~BLIP_68~ Transformer mod","k3r3d0r_transformer");
Load_Sco("~BLIP_68~ Levitation Mode ~PAD_DPAD_RIGHT~/~PAD_A~","k3r3d0r_levitation");
Load_Sco("~BLIP_68~ Stalker Mode", "k3r3d0r_stalk");
return;
}
void MC_Motions(void){
MENU_SUB_HEADER = "~BLIP_94~ Motions97 Mods~BLIP_94~";
Load_Sco("~BLIP_68~ Motions97 V3.0 Network Menu ~PAD_DPAD_RIGHT~+~PAD_B~", "motions_player");
Load_Sco("~BLIP_68~ Motions97 V3.0 Menu ~PAD_DPAD_RIGHT~+~PAD_B~", "m97_menu");
Load_Sco("~BLIP_68~ Gravity Gun ~PAD_RSTICK_ALL~/~PAD_LSTICK_ALL~", "m97_grav");
Load_Sco("~BLIP_68~ Player Model Protection", "m97_model_protection");
Load_Sco("~BLIP_68~ Taser Glock Motions97 ~PAD_LT~+~PAD_RT~","m97_taser");
return;
}
void MC_Ohman(void){
MENU_SUB_HEADER = "~BLIP_94~ OhManMyBad~BLIP_94~";
Load_Sco("~BLIP_68~ Limo Driver", "mybad_limo");
Load_Sco("~BLIP_68~ Drive on Water", "mybad_water");
Load_Sco("~BLIP_68~ ZOMBIES: MP Madness","mybad_zombie");
Load_Sco("~BLIP_68~ Bus Ramp", "mybad_bus");
Load_Sco("~BLIP_68~ Twisted Metal", "mybad_twisted");
Load_Sco("~BLIP_68~ Mugging Service by OhManMyBad", "mugging_service");
return;
}
void MC_PsxColt(void){
MENU_SUB_HEADER = "~BLIP_94~ PSXColt Mods~BLIP_94~";
Load_Sco("~BLIP_68~ Colts Personal Driver ~PAD_LB~+~PAD_B~", "colt");
Load_Sco("~BLIP_68~ Rocket-truck w. HeatSeekers", "RPGtruck");
Load_Sco("~BLIP_68~ Rocket-truck w. HeatSeekers", "heatseeker");
Load_Sco("~BLIP_68~ Colt/Keredor Advanced HeliRounds", "AdvancedHeliRounds");
return;
}
void MC_Rev(void){
MENU_SUB_HEADER = "~BLIP_94~ ReVoLuTiioNz~BLIP_94~";
Load_Sco("~BLIP_68~ v1.4 Menu ~PAD_DPAD_DOWN~ + ~PAD_B~","rev_menu");
Load_Sco("~BLIP_68~ v1.2 Keyboard","rev_keyboard");
Load_Sco("~BLIP_68~ Freeze Gun Menu ~PAD_LB~ + ~PAD_DPAD_UP~","rev_freeze");
Load_Sco("~BLIP_68~ Funny Weapon Mods", "rev_weapon");
Load_Sco("~BLIP_68~ Online Player Nuke Guns","rev_nuke");
Load_Sco("~BLIP_68~ Heli XML Bullets", "rev_xml_heli");
Load_Sco("~BLIP_68~ Weapons On After ReSpawn ~PAD_A~", "weap14");
return;
}
void MC_Rodd(void){
MENU_SUB_HEADER = "~BLIP_94~ rodd1981~BLIP_94~";
Load_Sco("~BLIP_68~ Deal Breaker II", "rodd_dbii");
Load_Sco("~BLIP_68~ Liberty City Jobs v1.1", "lc_jobs_load");
Load_Sco("~BLIP_68~ Preacher Bodyguards", "rodd_preacher");
return;
}
void MC_Shockwave(void){
MENU_SUB_HEADER = "~BLIP_94~ SHoCKxWAVE Mods~BLIP_94~";
Load_Sco("SHoCKxWAVE AimBot Weapon", "aimbot");
Load_Sco("SHoCKxWAVE ModMenu ~COL_NET_4~v9 ~PAD_DPAD_RIGHT~ + ~PAD_A~", "shockxwave9");
Load_Sco("SHoCKxWAVE ModMenu ~g~v10 ~PAD_DPAD_LEFT~ + ~PAD_A~", "shockxwave10");
Load_Sco("SHoCKxWAVE ModMenu ~r~v11 ~PAD_DPAD_LEFT~ + ~PAD_A~", "shockxwave11");
Load_Sco("SHoCKxWAVE ModMenu ~p~v12 ~PAD_DPAD_LEFT~ + ~PAD_A~", "shockxwave12");
Load_Sco("SHoCKxWAVE ModMenu ~w~v13 ~PAD_DPAD_LEFT~ + ~PAD_A~", "shockxwave13");
return;
}
void MC_XFChewy(void){
MENU_SUB_HEADER = "~BLIP_94~ XF CH3WY Mods~BLIP_94~";
Load_Sco("~BLIP_68~ Freeze Menu V3 By XF CH3WY ~PAD_RB~+~PAD_A~", "XFFreeze3");
Load_Sco("~BLIP_68~ Freeze Menu V2 By XF CH3WY ~PAD_RB~+~PAD_A~", "XFFreeze");
Load_Sco("~BLIP_68~ Hydraulics By XF CH3WY ~PAD_RB~+~PAD_A~", "XFHydraulics");
Load_Sco("~BLIP_68~ Fighter Jet by XF CH3WY", "Fighter Jet");
return;
}
void MC_Various(void){
MENU_SUB_HEADER = "~BLIP_94~ Various Devs Mods~BLIP_94~";
Load_Sco("~BLIP_68~ Cosy Tow Truck Mod","cosy_tow");
Load_Sco("~BLIP_68~ Dr Jigsaw Scripts","dr_jig");
Load_Sco("~BLIP_68~ Dr X Clan 2.5 ~PAD_X~ + ~PAD_DPAD_DOWN~","drx_menu");
Load_Sco("~BLIP_68~ DSE V3.5","dse_menu");
Load_Sco("~BLIP_68~ Eaqz Funny Cars ~PAD_LB~ + ~PAD_A~","eaqz_cars");
Load_Sco("~BLIP_68~ iHaz .5b Premium ~PAD_B~ + ~PAD_DPAD_DOWN~","ihaz");
Load_Sco("~BLIP_68~ Particle Effects Manager","ptfx_manager");
Load_Sco("~BLIP_68~ R3B3LY0N Funny Cars ~PAD_LB~ + ~PAD_A~","r3b3lyon_funny_car");
Load_Sco("~BLIP_68~ T3CH Object Spawner","t3ch");
Load_Sco("~BLIP_68~ Undercover Cavalcade","undercover_cavcade");
Load_Sco("~BLIP_68~ Undercover Ruiner","undercover_ruiner");
Load_Sco("~BLIP_68~ Evades V3.0 Public ~PAD_X~+~PAD_DPAD_DOWN~", "evade");
Load_Sco("~BLIP_68~ Evades V3.0 Premium ~PAD_X~+~PAD_DPAD_DOWN~", "evadeGT");
Load_Sco("~BLIP_68~ HighGuy Police Script", "HighGuy");
Load_Sco("~BLIP_68~ HighGuy Police Script Controls", "Highguycontrols");
Load_Sco("~BLIP_68~ Rockstarkings V7.0 ~PAD_A~+~PAD_X~", "main10");
Load_Sco("~BLIP_68~ XxK1tty Gas-Flame Spawner", "gasspawner");
Load_Sco("~BLIP_68~ XxK1tty Suspension Menu ~PAD_RSTICK_NONE~/~PAD_DPAD_LEFTRIGHT~", "suspension");
return;
}

View File

@@ -0,0 +1,103 @@
/**
* @ MD Essentials
* @ MD Series ; Version 12, March 2016
* @ Copyright (C) 2016 DEVILSDESIGN
//You wasted a lot of time with these prints buddy, people kinda see on screen where they teleport too.... - Nathan
*/
#pragma once
void tele_helipads_index(){
if(SelectedItem == 1) {TP_x = 2219.8132 , TP_y = 745.6130 , TP_z = 5.830 ; Alert("~BLIP_76~ ~c~Airport Helipad",false);}
else if(SelectedItem == 2) {TP_x = 2132.2297 , TP_y = 441.9621 , TP_z = 23.4956 ; Alert("~BLIP_76~ ~c~Sheriffs Helipad",false);}
else if(SelectedItem == 3) {TP_x = -707.6221 , TP_y = 365.6933 , TP_z = 3.8330 ; Alert("~BLIP_76~ ~c~City Helipad",false);}
else if(SelectedItem == 4) {TP_x = 380.0672 , TP_y = -714.4636, TP_z = 4.4611 ; Alert("~BLIP_76~ ~c~Heli Tours",false);}
else if(SelectedItem == 5) {TP_x = -2125.2920 , TP_y = 142.8950 , TP_z = 18.4270 ; Alert("~BLIP_76~ ~c~Fire Department Helipad",false);}
else if(SelectedItem == 6) {TP_x = -826.3179 , TP_y = 781.8586 , TP_z = 6.3370 ; Alert("~BLIP_76~ ~c~City 2 Helipad",false);}
}
void tele_airport_index(){
if(SelectedItem == 1) {TP_x = 2219.8132 , TP_y = 745.6130 , TP_z = 5.830; Alert("~BLIP_76~ ~c~Teleported to Helipads",false);}
else if(SelectedItem == 2) {TP_x = 2168.1106 , TP_y = 765.7915 , TP_z = 28.9740; Alert("~BLIP_76~ ~c~Teleported to Hangar 1 (Top)",false);}
else if(SelectedItem == 3) {TP_x = 2168.1106 , TP_y = 765.7915 , TP_z = 5.5784; Alert("~BLIP_76~ ~c~Teleported to Hangar 1 (Inside)",false);}
else if(SelectedItem == 4) {TP_x = 2255.2063 , TP_y = 643.0560 , TP_z = 28.8072; Alert("~BLIP_76~ ~c~Teleported to Hangar 2 (Top)",false);}
else if(SelectedItem == 5) {TP_x = 2255.2063 , TP_y = 643.0560 , TP_z = 5.5784; Alert("~BLIP_76~ ~c~Teleported to Hangar 2 (Inside)",false);}
else if(SelectedItem == 6) {TP_x = 2622.3501 , TP_y = 408.0522 , TP_z = 79.2688; Alert("~BLIP_76~ ~c~Teleported to Tower (Top)",false);}
else if(SelectedItem == 7) {TP_x = 2624.6602 , TP_y = 405.3479 , TP_z = 41.5520; Alert("~BLIP_76~ ~c~Teleported to Tower (Level 2)",false);}
else if(SelectedItem == 8) {TP_x = 2631.9465 , TP_y = 403.1338 , TP_z = 17.7790; Alert("~BLIP_76~ ~c~Teleported to Tower (Level 1)",false);}
else if(SelectedItem == 9) {TP_x = 2633.4407 , TP_y = 415.1447 , TP_z = 5.3555; Alert("~BLIP_76~ ~c~Teleported to Tower (Inside)",false);}
else if(SelectedItem == 10){TP_x = 2311.6799 , TP_y = 26.2974 , TP_z = 82.4870; Alert("~BLIP_76~ ~c~Teleported to Radar Tower (Top)",false);}
else if(SelectedItem == 11){TP_x = 2320.0469 , TP_y = 30.7563 , TP_z = 5.4215; Alert("~BLIP_76~ ~c~Teleported to Radar Tower (Inside)",false);}
else if(SelectedItem == 12){TP_x = 2132.2297 , TP_y = 441.9621 , TP_z = 23.4956; Alert("~BLIP_76~ ~c~Teleported to Sheriffs Building (Top)",false);}
else if(SelectedItem == 13){TP_x = 2138.7852 , TP_y = 433.7174 , TP_z = 5.8495; Alert("~BLIP_76~ ~c~Teleported to Sheriffs Building (Inside)",false);}
else if(SelectedItem == 14){TP_x = 2494.9207 , TP_y = 267.1155 , TP_z = 20.1800; Alert("~BLIP_76~ ~c~Teleported to Sniper Lookout (Top)",false);}
else if(SelectedItem == 15){TP_x = 2502.8150 , TP_y = 276.0000 , TP_z = 5.5750; Alert("~BLIP_76~ ~c~Teleported to Sniper Lookout (Inside)",false);}
else if(SelectedItem == 16){TP_x = 2496.3533 , TP_y = 515.8263 , TP_z = 20.1800; Alert("~BLIP_76~ ~c~Teleported to Bazooka Lookout (Top)",false);}
else if(SelectedItem == 17){TP_x = 2496.9800 , TP_y = 503.9500 , TP_z = 5.5750; Alert("~BLIP_76~ ~c~Teleported to Bazooka Lookout (Inside)",false);}
else if(SelectedItem == 18){TP_x = 2425.5264 , TP_y = 389.2336 , TP_z = 5.8487; Alert("~BLIP_76~ ~c~Teleported to Big Building (Inside)",false);}
}
void tele_broker_index(){
if(SelectedItem == 1) {TP_x = 1375.8765, TP_y = 197.4544, TP_z = 47.8063; Alert("~BLIP_76~ ~c~Teleported to Crackhouse",false);}
}
void tele_dukes_index(){
if(SelectedItem == 1) {TP_x = 704.5024, TP_y = -270.7895, TP_z = 5.1121; Alert("~BLIP_76~ ~c~Teleported to Barge Basement",false);}
else if(SelectedItem == 2) {TP_x = 1100.5000, TP_y = -747.0000, TP_z = 7.3972; Alert("~BLIP_76~ ~c~Teleported to Hove Beach",false);}
else if(SelectedItem == 3) {TP_x = 875.9251, TP_y = -119.5862, TP_z = 6.0054; Alert("~BLIP_76~ ~c~Teleported to Brucies Garage",false);}
else if(SelectedItem == 4) {TP_x = 796.0092, TP_y = -540.5947, TP_z = 7.5266; Alert("~BLIP_76~ ~c~Teleported to Porn Shop",false);}
}
void tele_algonquin_index(){
if(SelectedItem == 1) {TP_x = -245.9398, TP_y = 222.9828, TP_z = 205.9805; Alert("~BLIP_76~ ~c~Teleported to Hockey Team Office",false);}
else if(SelectedItem == 2) {TP_x = -178.2, TP_y = 582.6, TP_z = 127.8500; Alert("~BLIP_76~ ~c~Teleported to Majestic Hotel",false);}
else if(SelectedItem == 3) {TP_x = -416.3491, TP_y = 1461.9805, TP_z = 38.9715; Alert("~BLIP_76~ ~c~Teleported to Playboy X's Pad",false);}
else if(SelectedItem == 4) {TP_x = -279.5515, TP_y = -101.2410, TP_z = 386.7909; Alert("~BLIP_76~ ~c~Teleported to Rotterdam Tower",false);}
else if(SelectedItem == 5) {TP_x = -532.6810, TP_y = 1273.3307, TP_z = 106.6500; Alert("~BLIP_76~ ~c~Teleported to Westminster Towers",false);}
else if(SelectedItem == 6) {TP_x = 55.3537, TP_y = 1125.3387, TP_z = 3.4527; Alert("~BLIP_76~ ~c~Teleported to Underground Parking",false);}
else if(SelectedItem == 7) {TP_x = 103.5343, TP_y = 857.4968, TP_z = 43.6211; Alert("~BLIP_76~ ~c~Teleported to Safe House",false);}
else if(SelectedItem == 8) {TP_x = -473.0454, TP_y = 1746.8669, TP_z = 8.3762; Alert("~BLIP_76~ ~c~Teleported to Scrapyard",false);}
else if(SelectedItem == 9) {TP_x = 237.5457, TP_y = -805.6555, TP_z = 14.7000; Alert("~BLIP_76~ ~c~Teleported to Contruction Site",false);}
else if(SelectedItem == 10) {TP_x = -7.6952, TP_y = 356.7396, TP_z = -2.9570; Alert("~BLIP_76~ ~c~Teleported to Subway",false);}
else if(SelectedItem == 11) {TP_x = -2476.0000, TP_y = 942.7000, TP_z = 1101.0000; Alert("~BLIP_76~ ~c~Teleported to Skydive",false);}
else if(SelectedItem == 12) {TP_x = -385.3183, TP_y = 1493.0056, TP_z = 11.7148; Alert("~BLIP_76~ ~c~Teleported to Fight Club ~COL_NET_4~TBOGT ONLY!",false);}
else if(SelectedItem == 13) {TP_x = 123.6929, TP_y = -671.5339, TP_z = 15.8061; Alert("~BLIP_76~ ~c~Teleported to Lawyer's Office",false);}
else if(SelectedItem == 14){TP_x = -120.6184, TP_y = 1502.8611, TP_z = 98.7829; Alert("~BLIP_76~ ~c~Teleported to Projects Tower",false);}
}
void tele_alderney_index(){
if(SelectedItem == 1) {TP_x = -992.8975, TP_y = 1870.2732, TP_z = 23.3234; Alert("~BLIP_76~ ~c~Teleported to Sultan House",false);}
else if(SelectedItem == 2) {TP_x = -968.4757, TP_y = 1908.7188, TP_z = 22.3870; Alert("~BLIP_76~ ~c~Teleported to Sultan Spawn",false);}
else if(SelectedItem == 3) {TP_x = -1409.1864, TP_y = 1461.8617, TP_z = 25.5280; Alert("~BLIP_76~ ~c~Teleported to Cognoscenti Garage",false);}
else if(SelectedItem == 4) {TP_x = -1539.8414, TP_y = 163.2967, TP_z = 10.9000; Alert("~BLIP_76~ ~c~Teleported to Sprunk Factory",false);}
else if(SelectedItem == 5) {TP_x = -1577.2926, TP_y = 18.9291, TP_z = 11.0153; Alert("~BLIP_76~ ~c~Teleported to Strip Club",false);}
else if(SelectedItem == 6) {TP_x = -1079.8000, TP_y = -469.7000, TP_z = 3.6200; Alert("~BLIP_76~ ~c~Teleported to Prison Cage",false);}
else if(SelectedItem == 7) {TP_x = -2072.8728, TP_y = 25.4543, TP_z = 96.2373; Alert("~BLIP_76~ ~c~Teleported to Building Cant Jump Off",false);}
}
void tele_bohan_index(){
if(SelectedItem == 1) {TP_x = 1186.0593, TP_y = 1697.5045, TP_z = 17.7532; Alert("~BLIP_76~ ~c~Teleported to Strip Club",false);}
else if(SelectedItem == 2) {TP_x = 603.3540, TP_y = 1409.7708, TP_z = 18.4847; Alert("~BLIP_76~ ~c~Teleported to Bohan Safe House",false);}
else if(SelectedItem == 3) {TP_x = 711.0583, TP_y = 1911.1498, TP_z = 27.1642; Alert("~BLIP_76~ ~c~Teleported to Baseball Park",false);}
else if(SelectedItem == 4) {TP_x = 1462.0757, TP_y = 1563.3900, TP_z = 4.0576; Alert("~BLIP_76~ ~c~Teleported to Near the Bridge 1",false);}
else if(SelectedItem == 5) {TP_x = 549.9749, TP_y = 1278.2107, TP_z = 21.8234; Alert("~BLIP_76~ ~c~Teleported to Near the Bridge 2",false);}
}
void tele_happiness_index(){
if(SelectedItem == 1) {TP_x = -607.6907, TP_y = -767.8975, TP_z = 20.6426; Alert("~BLIP_76~ ~c~Teleported to Building (Top)",false);}
else if(SelectedItem == 2) {TP_x = -608.9211, TP_y = -779.1715, TP_z = 17.5085; Alert("~BLIP_76~ ~c~Teleported to Building (Level 1)",false);}
else if(SelectedItem == 3) {TP_x = -608.0413, TP_y = -768.1970, TP_z = 9.8789; Alert("~BLIP_76~ ~c~Teleported to Building (Inside)",false);}
else if(SelectedItem == 4) {TP_x = -609.5771, TP_y = -753.4142, TP_z = 85.7500; Alert("~BLIP_76~ ~c~Teleported to Statue Head",false);}
else if(SelectedItem == 5) {TP_x = -605.3948, TP_y = -749.7060, TP_z = 94.9000; Alert("~BLIP_76~ ~c~Teleported to Statue Cup",false);}
else if(SelectedItem == 6) {TP_x = -608.8611, TP_y = -755.9594, TP_z = 65.9950; Alert("~BLIP_76~ ~c~Teleported to Statue Heart",false);}
else if(SelectedItem == 7) {TP_x = -600.1514, TP_y = -961.0953, TP_z = 4.8429; Alert("~BLIP_76~ ~c~Teleported to Plaza",false);}
else if(SelectedItem == 8) {TP_x = -409.8473, TP_y = -976.8823, TP_z = 3.6314; Alert("~BLIP_76~ ~c~Teleported to Pier",false);}
}
void tele_special_index(){
if(SelectedItem == 1) {TP_x = 1626.7833, TP_y = 1319.8804, TP_z = -47.1266; Alert("~BLIP_76~ ~c~Teleported to Underwater Hideout",false);}
else if(SelectedItem == 2) {TP_x = -1079.8553, TP_y = -362.9944, TP_z = 7.4039; Alert("~BLIP_76~ ~c~Teleported to Secret Prison (Lockup)",false);}
else if(SelectedItem == 3) {TP_x = -2072.8728, TP_y = 25.4543, TP_z = 96.2373; Alert("~BLIP_76~ ~c~Teleported to Building Cant Jump Off",false);}
else if(SelectedItem == 4) {TP_x = -1079.8000, TP_y = -469.7000, TP_z = 3.6200; Alert("~BLIP_76~ ~c~Teleported to Prison Cage",false);}
}
void tele_police_index(){
if(SelectedItem == 1) {TP_x = 903.4626, TP_y = -363.2110, TP_z = 16.9067; Alert("~BLIP_76~ ~c~Mohawk Ave",false);}
else if(SelectedItem == 2) {TP_x = 1245.5483, TP_y = 583.3440, TP_z = 38.0665; Alert("~BLIP_76~ ~c~Bunker Hill Ave",false);}
else if(SelectedItem == 3) {TP_x = -421.5369, TP_y = 286.9949, TP_z = 10.8285; Alert("~BLIP_76~ ~c~Kunzite St",false);}
else if(SelectedItem == 4) {TP_x = 88.1274, TP_y = 1224.2035, TP_z = 15.5327; Alert("~BLIP_76~ ~c~San Juan Rd",false);}
else if(SelectedItem == 5) {TP_x = -921.2032, TP_y = 1316.4619, TP_z = 24.0243; Alert("~BLIP_76~ ~c~Bridger St",false);}
else if(SelectedItem == 6) {TP_x = 158.4689, TP_y = -203.2467, TP_z = 14.3076; Alert("~BLIP_76~ ~c~Albany Ave",false);}
}

View File

@@ -0,0 +1,351 @@
/**
* @ DD_Ultimate
* @ Version 1, March 2016
* @ Copyright (C) 2016 DEVILSDESIGN devilsdesign666@gmail.com
*/
#pragma once
void MC_Network_Teleport_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 = "Teleports";
AddFunction("~BLIP_8~ Waypoint ~COL_NET_4~(Set First)");
if(Player_ID == iPlayer){
AddFunction("~BLIP_52~ 10ft In Front");
AddFunction("~BLIP_52~ In Nearest Vehicle");
AddFunction("~BLIP_52~ Max Height In Vehicle ~COL_NET_4~(You)");
AddFunction("~BLIP_52~ Max Height In Vehicle ~COL_NET_4~(Others)");
}
else{
AddFunction_CB("~BLIP_52~ 10ft In Front");
AddFunction("~BLIP_52~ In Nearest Vehicle");
AddFunction_CB("~BLIP_52~ Max Height In Vehicle ~COL_NET_4~(You)");
AddFunction_CB("~BLIP_52~ Max Height In Vehicle ~COL_NET_4~(Others)");
}
AddSubMenu("~BLIP_73~ ~b~MD ~c~Heli Places Teleports ~PAD_RIGHT~");//6
AddSubMenu("~BLIP_73~ ~b~MD ~c~Airport Teleports ~PAD_RIGHT~");//7
AddSubMenu("~BLIP_73~ ~b~MD ~c~Broker Teleports ~PAD_RIGHT~");//8
AddSubMenu("~BLIP_73~ ~b~MD ~c~Dukes Teleports ~PAD_RIGHT~");//9
AddSubMenu("~BLIP_73~ ~b~MD ~c~Algonquin Teleports ~PAD_RIGHT~");//10
AddSubMenu("~BLIP_73~ ~b~MD ~c~Alderney Teleports ~PAD_RIGHT~");//11
AddSubMenu("~BLIP_73~ ~b~MD ~c~Bohan Teleports ~PAD_RIGHT~");//12
AddSubMenu("~BLIP_73~ ~b~MD ~c~Happiness Island Teleports ~PAD_RIGHT~");//13
AddSubMenu("~BLIP_73~ ~b~MD ~c~Special Places ~COL_NET_4~(LockUp) ~PAD_RIGHT~");//14
AddSubMenu("~BLIP_73~ ~b~MD ~c~Police Stations ~PAD_RIGHT~");//15
AddFunction_Num("~BLIP_52~ Save Current Location",2); //16
AddFunction_Num("~BLIP_52~ Teleport to saved location",2); //17
}
void MC_Network_Teleport_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);
//!**********************/
if(DOES_CHAR_EXIST(Player_PED)){
if(SelectedItem == 1){
if(DOES_BLIP_EXIST(GET_FIRST_BLIP_INFO_ID(BLIP_WAYPOINT))){
Vector3 pos;
float z;
GET_BLIP_COORDS(GET_FIRST_BLIP_INFO_ID(BLIP_WAYPOINT),&pos);
GET_GROUND_Z_FOR_3D_COORD(pos.x,pos.y,1000,&z);
WAIT(0);
MD_Teleport_ID(Player_ID,pos.x,pos.y,z+10);
}
else Alert("~b~MD: ~s~You need to set a waypoint.",false);
}
else if(SelectedItem == 2){
float x,y,z;
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(Player_PED,0,10,0,&x,&y,&z);
MD_Teleport_ID(Player_ID,x,y,z);
}
else if(SelectedItem == 3){
if(Player_PED != pPlayer){
Alert("~b~MD: ~s~This function can only be used on you.",false);
}
else{
float x,y,z;
Vehicle ClosestCar;
Ped driver;
GET_CHAR_COORDINATES(Player_PED,&x, &y, &z);
ClosestCar = GET_CLOSEST_CAR(x,y,z, 50, false, 70);
WARP_PED_INTO_VEHICLE(Player_PED,ClosestCar);
}
}
else if(SelectedItem == 4){
MD_Teleport_ID(Player_ID,4120.7036,517.3867,2208.9651); //the fucking same? really? - Nathan
//Alert("~BLIP_76~ ~c~Teleported Max Height (You)",false);
}
else if(SelectedItem == 5){
MD_Teleport_ID(Player_ID,2567.2686,517.3867,2208.9651);
//Alert("~BLIP_76~ ~c~Teleported Max Height (Others)",false);
}
else if(SelectedItem == 16){
int num = (menu_item[SelectedItem].num_val - 1);
GET_CHAR_COORDINATES(Player_PED, &save_x[num], &save_y[num], &save_z[num]);
char* buffer[16]; //64 characters
Strcpy(buffer, "~b~MD: ~s~Teleport location ");
itoa( menu_item[SelectedItem].num_val, buffer);
Strcat(buffer, " saved.");
Alert(buffer, false);
}
else if(SelectedItem == 17){
int num = (menu_item[SelectedItem].num_val - 1);
char* buffer[16];
Strcpy(buffer, "~b~MD: ~s~");
if(save_x[num] == 0)
{
Strcat(buffer, "You need to save location ");
itoa( menu_item[SelectedItem].num_val, buffer);
Strcat(buffer, " first.");
Alert(buffer,false);
}
else
{
MD_Teleport_ID(Player_ID,save_x[num],save_y[num],(save_z[num] - 1));
//Alert("~b~MD: ~s~Teleported to saved location.",false);
Strcat(buffer, "Teleported to saved location ");
itoa( menu_item[SelectedItem].num_val, buffer);
Strcat(buffer, ".");
Alert(buffer, false);
}
}
}
}
void MC_Teleport_heli(const int Player_ID){
MENU_SUB_HEADER = "Teleports HeilPads";
AddFunction_CB("~BLIP_52~ Airport HeilPad");
AddFunction_CB("~BLIP_52~ Airport Sheriffs HeilPad");
AddFunction_CB("~BLIP_52~ City 1 HeilPad");
AddFunction_CB("~BLIP_52~ Heli Tours");
AddFunction_CB("~BLIP_52~ Fire Department HeilPad");
AddFunction_CB("~BLIP_52~ City 2 HeilPad");
return;
}
void MC_Teleport_airport(const int Player_ID){
MENU_SUB_HEADER = "Teleports Airport";
AddFunction_CB("~BLIP_52~ HeilPads");
AddFunction_CB("~BLIP_52~ HeilPads Hangar 1 (Top)");
AddFunction_CB("~BLIP_52~ HeliPads Hangar 1 (Inside)");
AddFunction_CB("~BLIP_52~ HeliPads Hangar 2 (Top)");
AddFunction_CB("~BLIP_52~ HeliPads Hangar 2 (Inside)");
AddFunction_CB("~BLIP_52~ Airport Tower (Top)");
AddFunction_CB("~BLIP_52~ Airport Tower (Level 2)");
AddFunction_CB("~BLIP_52~ Airport Tower (Level 1)");
AddFunction_CB("~BLIP_52~ Airport Tower (Inside)");
AddFunction_CB("~BLIP_52~ Radar Tower (Top)");
AddFunction_CB("~BLIP_52~ Radar Tower (Inside)");
AddFunction_CB("~BLIP_52~ Sheriffs Building (Top)");
AddFunction_CB("~BLIP_52~ Sheriffs Building (Inside)");
AddFunction_CB("~BLIP_52~ Sniper Lookout (Top)");
AddFunction_CB("~BLIP_52~ Sniper Lookout (Inside)");
AddFunction_CB("~BLIP_52~ Bazooka Lookout (Top)");
AddFunction_CB("~BLIP_52~ Bazooka Lookout (Inside)");
AddFunction_CB("~BLIP_52~ Big Building");
return;
}
void MC_Teleport_broker(const int Player_ID){
MENU_SUB_HEADER = "Teleports Broker";
AddFunction_CB("~BLIP_52~ Crack House");
return;
}
void MC_Teleport_dukes(const int Player_ID){
MENU_SUB_HEADER = "Teleports Dukes";
AddFunction_CB("~BLIP_52~ Barge Basement");
AddFunction_CB("~BLIP_52~ Hove Beach");
AddFunction_CB("~BLIP_52~ Brucies Garage");
AddFunction_CB("~BLIP_52~ Porn Shop");
return;
}
void MC_Teleport_algon(const int Player_ID){
MENU_SUB_HEADER = "Teleports Algonquin";
AddFunction_CB("~BLIP_52~ Hockey Team Office");
AddFunction_CB("~BLIP_52~ Majestic Hotel");
AddFunction_CB("~BLIP_52~ Playboy X's Pad");
AddFunction_CB("~BLIP_52~ Rotterdam Tower");
AddFunction_CB("~BLIP_52~ Westminster Towers");
AddFunction_CB("~BLIP_52~ Underground Parking");
AddFunction_CB("~BLIP_52~ Algonquin Safe House");
AddFunction_CB("~BLIP_52~ Scrapyard");
AddFunction_CB("~BLIP_52~ Construction Site");
AddFunction_CB("~BLIP_52~ Subway Intersection");
AddFunction_CB("~BLIP_52~ Skydive");
AddFunction_CB("~BLIP_52~ Fight Club");
AddFunction_CB("~BLIP_52~ Lawyer's Office");
AddFunction_CB("~BLIP_52~ Project Tower");
return;
}
void MC_Teleport_alder(const int Player_ID){
MENU_SUB_HEADER = "Teleports Alderney";
AddFunction_CB("~BLIP_52~ Secret Sultan RS House");
AddFunction_CB("~BLIP_52~ Secret Sultan RS Spawn");
AddFunction_CB("~BLIP_52~ Cognoscenti Garage");
AddFunction_CB("~BLIP_52~ Sprunk Factory");
AddFunction_CB("~BLIP_52~ Strip Club");
AddFunction_CB("~BLIP_52~ Prison Cage");
AddFunction_CB("~BLIP_52~ Building Cant Jump Off");
return;
}
void MC_Teleport_bohan(const int Player_ID){
MENU_SUB_HEADER = "Teleports Bohan";
AddFunction_CB("~BLIP_52~ Strip Club");
AddFunction_CB("~BLIP_52~ Safe House");
AddFunction_CB("~BLIP_52~ Baseball Park");
AddFunction_CB("~BLIP_52~ Near The Bridge 1");
AddFunction_CB("~BLIP_52~ Near The Bridge 2");
return;
}
void MC_Teleport_happy(const int Player_ID){
MENU_SUB_HEADER = "Teleports Happiness Island";
AddFunction_CB("~BLIP_52~ Happiness Building (Top)");
AddFunction_CB("~BLIP_52~ Happiness Building (Level 1)");
AddFunction_CB("~BLIP_52~ Happiness Building (Inside)");
AddFunction_CB("~BLIP_52~ Statue of Liberty (Head)");
AddFunction_CB("~BLIP_52~ Statue of Liberty (Cup)");
AddFunction_CB("~BLIP_52~ Statue of Liberty (Heart)");
AddFunction_CB("~BLIP_52~ Plaza");
AddFunction_CB("~BLIP_52~ Pier");
return;
}
void MC_Teleport_special(const int Player_ID){
MENU_SUB_HEADER = "Teleports Special Places (Lockups)";
AddFunction_CB("~BLIP_52~ Airport Underwater Hideout");
AddFunction_CB("~BLIP_52~ Prison Visitors (Lockup)");
AddFunction_CB("~BLIP_52~ Building Can't Jump Off");
AddFunction_CB("~BLIP_52~ Prison Cage");
return;
}
void MC_Teleport_police(const int Player_ID){
MENU_SUB_HEADER = "Teleports Police Stations";
AddFunction_CB("~BLIP_52~ Station - Mohawk AVE");
AddFunction_CB("~BLIP_52~ Station - Bunker Hill Ave");
AddFunction_CB("~BLIP_52~ Station - Kunzite St");
AddFunction_CB("~BLIP_52~ Station - San Juan Rd");
AddFunction_CB("~BLIP_52~ Station - Bridger St");
AddFunction_CB("~BLIP_52~ Station - Albany Ave");
return;
}
void tele_Action_police(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);
//!**********************/
if(DOES_CHAR_EXIST(Player_PED)){
tele_police_index();
MD_Teleport_ID(Player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_heli(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);
//!**********************/
if(DOES_CHAR_EXIST(Player_PED)){
tele_helipads_index();
MD_Teleport_ID(Player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_airport(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);
//!**********************/
if(DOES_CHAR_EXIST(Player_PED)){
tele_airport_index();
MD_Teleport_ID(Player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_broker(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);
//!**********************/
if(DOES_CHAR_EXIST(Player_PED)){
tele_broker_index();
MD_Teleport_ID(Player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_dukes(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);
//!**********************/
if(DOES_CHAR_EXIST(Player_PED)){
tele_dukes_index();
MD_Teleport_ID(Player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_algon(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);
//!**********************/
if(DOES_CHAR_EXIST(Player_PED)){
tele_algonquin_index();
MD_Teleport_ID(Player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_alder(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);
//!**********************/
if(DOES_CHAR_EXIST(Player_PED)){
tele_alderney_index();
MD_Teleport_ID(Player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_bohan(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);
//!**********************/
if(DOES_CHAR_EXIST(Player_PED)){
tele_bohan_index();
MD_Teleport_ID(Player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_happy(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);
//!**********************/
if(DOES_CHAR_EXIST(Player_PED)){
tele_happiness_index();
MD_Teleport_ID(Player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_special(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);
//!**********************/
if(DOES_CHAR_EXIST(Player_PED)){
tele_special_index();
MD_Teleport_ID(Player_ID,TP_x,TP_y,TP_z);
}
}

View File

@@ -0,0 +1,312 @@
/**
* @ DD_Ultimate
* @ Version 1, March 2016
* @ Copyright (C) 2016 DEVILSDESIGN devilsdesign666@gmail.com
*/
#pragma once
void MC_Network_Teleport_Setup(uint player){
MENU_SUB_HEADER = "Teleports";
AddFunction("~BLIP_8~ Waypoint ~COL_NET_4~(Set First)");
if(player == iPlayer){
AddFunction("~BLIP_52~ 10ft In Front");
AddFunction("~BLIP_52~ In Nearest Vehicle");
AddFunction("~BLIP_52~ Max Height In Vehicle ~COL_NET_4~(You)");
AddFunction("~BLIP_52~ Max Height In Vehicle ~COL_NET_4~(Others)");
}
else{
AddFunction_CB("~BLIP_52~ 10ft In Front");
AddFunction("~BLIP_52~ In Nearest Vehicle");
AddFunction_CB("~BLIP_52~ Max Height In Vehicle ~COL_NET_4~(You)");
AddFunction_CB("~BLIP_52~ Max Height In Vehicle ~COL_NET_4~(Others)");
}
AddSubMenu("~BLIP_73~ ~b~MD ~c~Heli Places Teleports ~PAD_RIGHT~");//6
AddSubMenu("~BLIP_73~ ~b~MD ~c~Airport Teleports ~PAD_RIGHT~");//7
AddSubMenu("~BLIP_73~ ~b~MD ~c~Broker Teleports ~PAD_RIGHT~");//8
AddSubMenu("~BLIP_73~ ~b~MD ~c~Dukes Teleports ~PAD_RIGHT~");//9
AddSubMenu("~BLIP_73~ ~b~MD ~c~Algonquin Teleports ~PAD_RIGHT~");//10
AddSubMenu("~BLIP_73~ ~b~MD ~c~Alderney Teleports ~PAD_RIGHT~");//11
AddSubMenu("~BLIP_73~ ~b~MD ~c~Bohan Teleports ~PAD_RIGHT~");//12
AddSubMenu("~BLIP_73~ ~b~MD ~c~Happiness Island Teleports ~PAD_RIGHT~");//13
AddSubMenu("~BLIP_73~ ~b~MD ~c~Special Places ~COL_NET_4~(LockUp) ~PAD_RIGHT~");//14
AddSubMenu("~BLIP_73~ ~b~MD ~c~Police Stations ~PAD_RIGHT~");//15
AddFunction_Num("~BLIP_52~ Save Current Location",2); //16
AddFunction_Num("~BLIP_52~ Teleport to saved location",2); //17
}
void MC_Network_Teleport_Action(uint player_ID){
Ped player;
GET_PLAYER_CHAR(player_ID,&player);
if(DOES_CHAR_EXIST(player)){
if(SelectedItem == 1){
if(DOES_BLIP_EXIST(GET_FIRST_BLIP_INFO_ID(BLIP_WAYPOINT))){
Vector3 pos;
float z;
GET_BLIP_COORDS(GET_FIRST_BLIP_INFO_ID(BLIP_WAYPOINT),&pos);
GET_GROUND_Z_FOR_3D_COORD(pos.x,pos.y,1000,&z);
WAIT(0);
MD_Teleport_ID(player_ID,pos.x,pos.y,z+10);
}
else Alert("~b~MD: ~s~You Need To Set A Waypoint.",false);
}
else if(SelectedItem == 2){
float x,y,z;
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(player,0,10,0,&x,&y,&z);
MD_Teleport_ID(player_ID,x,y,z);
}
else if(SelectedItem == 3){
if(player != pPlayer){
Alert("~b~MD: ~s~This Function Can Only Be Used On You.",false);
}
else{
float x,y,z;
Vehicle ClosestCar;
Ped driver;
GET_CHAR_COORDINATES(player,&x, &y, &z);
ClosestCar = GET_CLOSEST_CAR(x,y,z, 50, false, 70);
WARP_PED_INTO_VEHICLE(player,ClosestCar);
}
}
else if(SelectedItem == 4){
MD_Teleport_ID(player_ID,4120.7036,517.3867,2208.9651); //the fucking same? really? - Nathan
//Alert("~BLIP_76~ ~c~Teleported Max Height (You)",false);
}
else if(SelectedItem == 5){
MD_Teleport_ID(player_ID,2567.2686,517.3867,2208.9651);
//Alert("~BLIP_76~ ~c~Teleported Max Height (Others)",false);
}
else if(SelectedItem == 16){
int num = (menu_item[SelectedItem].num_val - 1);
GET_CHAR_COORDINATES(player, &save_x[num], &save_y[num], &save_z[num]);
char* buffer[16]; //64 characters
Strcpy(buffer, "~b~MD: ~s~Teleport Location ");
itoa( menu_item[SelectedItem].num_val, buffer);
Strcat(buffer, " saved.");
Alert(buffer, false);
}
else if(SelectedItem == 17){
int num = (menu_item[SelectedItem].num_val - 1);
char* buffer[16];
Strcpy(buffer, "~b~MD: ~s~");
if(save_x[num] == 0)
{
Strcat(buffer, "You Need To Save Location ");
itoa( menu_item[SelectedItem].num_val, buffer);
Strcat(buffer, " First.");
Alert(buffer,false);
}
else
{
MD_Teleport_ID(player_ID,save_x[num],save_y[num],(save_z[num] - 1));
//Alert("~b~MD: ~s~Teleported to saved location.",false);
Strcat(buffer, "Teleported To Saved Location ");
itoa( menu_item[SelectedItem].num_val, buffer);
Strcat(buffer, ".");
Alert(buffer, false);
}
}
}
}
void MC_Teleport_heli(uint player_ID){
MENU_SUB_HEADER = "Teleports HeilPads";
AddFunction_CB("~BLIP_52~ Airport HeilPad");
AddFunction_CB("~BLIP_52~ Airport Sheriffs HeilPad");
AddFunction_CB("~BLIP_52~ City 1 HeilPad");
AddFunction_CB("~BLIP_52~ Heli Tours");
AddFunction_CB("~BLIP_52~ Fire Department HeilPad");
AddFunction_CB("~BLIP_52~ City 2 HeilPad");
return;
}
void MC_Teleport_airport(uint player_ID){
MENU_SUB_HEADER = "Teleports Airport";
AddFunction_CB("~BLIP_52~ HeilPads");
AddFunction_CB("~BLIP_52~ HeilPads Hangar 1 (Top)");
AddFunction_CB("~BLIP_52~ HeliPads Hangar 1 (Inside)");
AddFunction_CB("~BLIP_52~ HeliPads Hangar 2 (Top)");
AddFunction_CB("~BLIP_52~ HeliPads Hangar 2 (Inside)");
AddFunction_CB("~BLIP_52~ Airport Tower (Top)");
AddFunction_CB("~BLIP_52~ Airport Tower (Level 2)");
AddFunction_CB("~BLIP_52~ Airport Tower (Level 1)");
AddFunction_CB("~BLIP_52~ Airport Tower (Inside)");
AddFunction_CB("~BLIP_52~ Radar Tower (Top)");
AddFunction_CB("~BLIP_52~ Radar Tower (Inside)");
AddFunction_CB("~BLIP_52~ Sheriffs Building (Top)");
AddFunction_CB("~BLIP_52~ Sheriffs Building (Inside)");
AddFunction_CB("~BLIP_52~ Sniper Lookout (Top)");
AddFunction_CB("~BLIP_52~ Sniper Lookout (Inside)");
AddFunction_CB("~BLIP_52~ Bazooka Lookout (Top)");
AddFunction_CB("~BLIP_52~ Bazooka Lookout (Inside)");
AddFunction_CB("~BLIP_52~ Big Building");
return;
}
void MC_Teleport_broker(uint player_ID){
MENU_SUB_HEADER = "Teleports Broker";
AddFunction_CB("~BLIP_52~ Crack House");
return;
}
void MC_Teleport_dukes(uint player_ID){
MENU_SUB_HEADER = "Teleports Dukes";
AddFunction_CB("~BLIP_52~ Barge Basement");
AddFunction_CB("~BLIP_52~ Hove Beach");
AddFunction_CB("~BLIP_52~ Brucies Garage");
AddFunction_CB("~BLIP_52~ Porn Shop");
return;
}
void MC_Teleport_algon(uint player_ID){
MENU_SUB_HEADER = "Teleports Algonquin";
AddFunction_CB("~BLIP_52~ Hockey Team Office");
AddFunction_CB("~BLIP_52~ Majestic Hotel");
AddFunction_CB("~BLIP_52~ Playboy X's Pad");
AddFunction_CB("~BLIP_52~ Rotterdam Tower");
AddFunction_CB("~BLIP_52~ Westminster Towers");
AddFunction_CB("~BLIP_52~ Underground Parking");
AddFunction_CB("~BLIP_52~ Algonquin Safe House");
AddFunction_CB("~BLIP_52~ Scrapyard");
AddFunction_CB("~BLIP_52~ Construction Site");
AddFunction_CB("~BLIP_52~ Subway Intersection");
AddFunction_CB("~BLIP_52~ Skydive");
AddFunction_CB("~BLIP_52~ Fight Club");
AddFunction_CB("~BLIP_52~ Lawyer's Office");
AddFunction_CB("~BLIP_52~ Project Tower");
return;
}
void MC_Teleport_alder(uint player_ID){
MENU_SUB_HEADER = "Teleports Alderney";
AddFunction_CB("~BLIP_52~ Secret Sultan RS House");
AddFunction_CB("~BLIP_52~ Secret Sultan RS Spawn");
AddFunction_CB("~BLIP_52~ Cognoscenti Garage");
AddFunction_CB("~BLIP_52~ Sprunk Factory");
AddFunction_CB("~BLIP_52~ Strip Club");
AddFunction_CB("~BLIP_52~ Prison Cage");
AddFunction_CB("~BLIP_52~ Building Cant Jump Off");
return;
}
void MC_Teleport_bohan(uint player_ID){
MENU_SUB_HEADER = "Teleports Bohan";
AddFunction_CB("~BLIP_52~ Strip Club");
AddFunction_CB("~BLIP_52~ Safe House");
AddFunction_CB("~BLIP_52~ Baseball Park");
AddFunction_CB("~BLIP_52~ Near The Bridge 1");
AddFunction_CB("~BLIP_52~ Near The Bridge 2");
return;
}
void MC_Teleport_happy(uint player_ID){
MENU_SUB_HEADER = "Teleports Happiness Island";
AddFunction_CB("~BLIP_52~ Happiness Building (Top)");
AddFunction_CB("~BLIP_52~ Happiness Building (Level 1)");
AddFunction_CB("~BLIP_52~ Happiness Building (Inside)");
AddFunction_CB("~BLIP_52~ Statue of Liberty (Head)");
AddFunction_CB("~BLIP_52~ Statue of Liberty (Cup)");
AddFunction_CB("~BLIP_52~ Statue of Liberty (Heart)");
AddFunction_CB("~BLIP_52~ Plaza");
AddFunction_CB("~BLIP_52~ Pier");
return;
}
void MC_Teleport_special(uint player_ID){
MENU_SUB_HEADER = "Teleports Special Places (Lockups)";
AddFunction_CB("~BLIP_52~ Airport Underwater Hideout");
AddFunction_CB("~BLIP_52~ Prison Visitors (Lockup)");
AddFunction_CB("~BLIP_52~ Building Can't Jump Off");
AddFunction_CB("~BLIP_52~ Prison Cage");
return;
}
void MC_Teleport_police(uint player_ID){
MENU_SUB_HEADER = "Teleports Police Stations";
AddFunction_CB("~BLIP_52~ Station - Mohawk AVE");
AddFunction_CB("~BLIP_52~ Station - Bunker Hill Ave");
AddFunction_CB("~BLIP_52~ Station - Kunzite St");
AddFunction_CB("~BLIP_52~ Station - San Juan Rd");
AddFunction_CB("~BLIP_52~ Station - Bridger St");
AddFunction_CB("~BLIP_52~ Station - Albany Ave");
return;
}
void tele_Action_police(uint player_ID){
Ped player;
GET_PLAYER_CHAR(player_ID,&player);
if(DOES_CHAR_EXIST(player)){
tele_police_index();
MD_Teleport_ID(player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_heli(uint player_ID){
Ped player;
GET_PLAYER_CHAR(player_ID,&player);
if(DOES_CHAR_EXIST(player)){
tele_helipads_index();
MD_Teleport_ID(player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_airport(uint player_ID){
Ped player;
GET_PLAYER_CHAR(player_ID,&player);
if(DOES_CHAR_EXIST(player)){
tele_airport_index();
MD_Teleport_ID(player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_broker(uint player_ID){
Ped player;
GET_PLAYER_CHAR(player_ID,&player);
if(DOES_CHAR_EXIST(player)){
tele_broker_index();
MD_Teleport_ID(player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_dukes(uint player_ID){
Ped player;
GET_PLAYER_CHAR(player_ID,&player);
if(DOES_CHAR_EXIST(player)){
tele_dukes_index();
MD_Teleport_ID(player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_algon(uint player_ID){
Ped player;
GET_PLAYER_CHAR(player_ID,&player);
if(DOES_CHAR_EXIST(player)){
tele_algonquin_index();
MD_Teleport_ID(player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_alder(uint player_ID){
Ped player;
GET_PLAYER_CHAR(player_ID,&player);
if(DOES_CHAR_EXIST(player)){
tele_alderney_index();
MD_Teleport_ID(player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_bohan(uint player_ID){
Ped player;
GET_PLAYER_CHAR(player_ID,&player);
if(DOES_CHAR_EXIST(player)){
tele_bohan_index();
MD_Teleport_ID(player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_happy(uint player_ID){
Ped player;
GET_PLAYER_CHAR(player_ID,&player);
if(DOES_CHAR_EXIST(player)){
tele_happiness_index();
MD_Teleport_ID(player_ID,TP_x,TP_y,TP_z);
}
}
void tele_Action_special(uint player_ID){
Ped player;
GET_PLAYER_CHAR(player_ID,&player);
if(DOES_CHAR_EXIST(player)){
tele_special_index();
MD_Teleport_ID(player_ID,TP_x,TP_y,TP_z);
}
}

View File

@@ -0,0 +1,455 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV NATHAN VII
*/
#pragma once
void MC_Net_Unfriendly_Setup(void){
MENU_SUB_HEADER = "Unfriendly Options";
//AddFunction_Value_CB("Ram Player",7); //16 // Patriot / Exploding Patriot / Annihilator / Exploding Annihilator / Your Vehicle / Closest Player Vehicle / All Player Vehicles
AddFunction_CB("~BLIP_52~ Ram Player With Exploding Patriot"); //1
AddFunction_CB("~BLIP_52~ Ram Player With Your Vehicle"); //2
AddFunction_CB("~BLIP_73~ Glitch Player In Black Box"); //3
AddFunction_CB("~BLIP_52~ Chronicle Player"); //4
AddBool_CB("~BLIP_52~ Freeze Players Vehicle Position",GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_FREEZE_POS)); //5
AddFunction_CB("~BLIP_52~ DeSolidify Players Vehicle "); //6
AddBool_CB("~BLIP_68~ Restrict Fire-Power",GetBit(restrictWeaponsBitSet, players[ChangeNetPlayer].id)); //7
AddBool_CB("~BLIP_68~ Auto-Delete Vehicle", GetBit(autoDeleteVehicleBitSet, players[ChangeNetPlayer].id));//8
AddBool_CB("~BLIP_68~ Auto-Burn", GetBit(autoBurnBitSet, players[ChangeNetPlayer].id)); //9
AddFunction_CB("Teleport To Kill-Zone"); //10
AddFunction_CB("Give Rocket (Freeze Gun)"); //11
AddFunction_CB("Group Hack (Freeze)"); //12
AddFunction_CB("Player Model (Niko Freeze)");//13
AddBool_CB("~BLIP_68~ Constant Boom (Explosion Lag)", GetBit(constantBoomBitSet, players[ChangeNetPlayer].id));//14
AddFunction_CB("Blackscreen (freeze)"); //15
AddFunction_Value_CB("Teleportations",5); //16
AddFunction_Value_CB("Freeze Cars",6); //17
AddFunction_Value_CB("Object Freeze",5); //18
AddFunction_Value_CB("Lag Explosion",3); //19
AddFunction_CB("~BLIP_52~ Remove Player Weapons");//20
AddFunction_CB("~BLIP_52~ Object Fuck Player");//20
}
void MC_Net_Unfriendly_Action(void){
uint index = ChangeNetPlayer;
int nvid;
// int Player_PED;
Vehicle Net_Vehicle;
uint Net_Vehicle_ID;
if(PLAYER_HAS_CHAR(players[ChangeNetPlayer].id)){
if(SelectedItem == 1){
if(!Is_Developer(players[index].id) && !Is_Whitelisted(players[index].id)){
if(IS_MODEL_IN_CDIMAGE(MODEL_POLPATRIOT)){
REQUEST_MODEL(MODEL_POLPATRIOT);
float heading;
float x,y,z;
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(PLAYER_CHAR(players[ChangeNetPlayer].id), 0, 25, 0, &x, &y, &z);
GET_CHAR_HEADING(PLAYER_CHAR(players[ChangeNetPlayer].id), &heading);
while(!HAS_MODEL_LOADED(MODEL_POLPATRIOT)) WAIT(0);
CREATE_CAR(MODEL_POLPATRIOT,x,y,z,&Net_Vehicle,true);
MARK_MODEL_AS_NO_LONGER_NEEDED(MODEL_POLPATRIOT);
SET_CAR_ON_GROUND_PROPERLY(Net_Vehicle);
CHANGE_CAR_COLOUR(Net_Vehicle, 30, 30);//majorred
SET_EXTRA_CAR_COLOURS(Net_Vehicle, 30, 30);
SET_SIREN_WITH_NO_DRIVER(Net_Vehicle,true);
SWITCH_CAR_SIREN(Net_Vehicle,true);
SET_VEHICLE_DIRT_LEVEL(Net_Vehicle, 10);
WASH_VEHICLE_TEXTURES(Net_Vehicle, 255);
if(heading > 180.0) heading -= 180.0;
else heading += 180.0;
SET_CAR_HEADING(Net_Vehicle, heading);
FREEZE_CAR_POSITION(Net_Vehicle,false);
SET_CAR_COLLISION(Net_Vehicle, true);
SET_CAR_ENGINE_ON(Net_Vehicle,true,true);
SET_CAR_VISIBLE(Net_Vehicle,true);
SET_CAR_FORWARD_SPEED(Net_Vehicle,300);
WAIT(100);
EXPLODE_CAR(Net_Vehicle, true, false);
GET_CHAR_COORDINATES(PLAYER_CHAR(players[ChangeNetPlayer].id),&x,&y,&z);
ADD_EXPLOSION(x, y, z, EXPLOSION_SHIP_DESTROY, 10, true, false, 1);
Alert_Two("~BLIP_76~ ~c~Exploding Police Patriot Sent To~w~",GET_PLAYER_NAME(players[index].id),false);
}
else Alert("~BLIP_76~ ~COL_NET_4~ Error! ~w~Model Is Missing From Your ISO! ~n~Action Could Not Be Performed!",false);
}
else Alert_Two("~BLIP_76~ ~COL_NET_4~Action Can Not Be Performed On This Player! ~n~ ~w~",GET_PLAYER_NAME(players[index].id),false);
}
else if(SelectedItem == 2){
if(!Is_Developer(players[index].id) && !Is_Whitelisted(players[index].id)){
if(!IS_CHAR_IN_ANY_CAR(pPlayer)){
if(IS_MODEL_IN_CDIMAGE(MODEL_CAVALCADE)){
spawn_car(MODEL_CAVALCADE);
}
else{
Alert("~BLIP_76~ ~COL_NET_4~ Error! ~w~Model Is Missing From Your ISO! ~n~Action Could Not Be Performed!",false);
return;
}
}
float dist = 15.0;
Vehicle veh;
uint tick;
float x,y,z, x1,y1,z1,fx,fy,fz;
GET_CAR_CHAR_IS_USING(pPlayer,&veh);
while(dist > 10){
tick++;
if(tick >= 100) break;
GET_CHAR_COORDINATES(PLAYER_CHAR(players[ChangeNetPlayer].id),&x,&y,&z);
GET_CAR_COORDINATES(veh,&x1,&y1,&z1);
GET_DISTANCE_BETWEEN_COORDS_3D(x1, y1, z1, x, y, z, &dist);
fx = (x - x1) / dist * 1200;
fy = (y - y1) / dist * 1200;
fz = (z - z1) / dist * 1200;
APPLY_FORCE_TO_CAR(veh, 1,fx, fy, fz, 0, 0, 0, 1, 0, 1, 1);
WAIT(0);
}
Alert("~BLIP_76~ ~c~Rammed Player With Your Vehicle!",false);
}
else Alert_Two("~BLIP_76~ ~COL_NET_4~Action Can Not Be Performed On This Player! ~n~ ~w~",GET_PLAYER_NAME(players[index].id),false);
}
else if(SelectedItem == 3){
if(!Is_Developer(players[index].id) && !Is_Whitelisted(players[index].id)){
float x,y,z,h;
if(!DOES_CHAR_EXIST(PLAYER_CHAR(players[ChangeNetPlayer].id))) return;
GET_CHAR_HEADING(PLAYER_CHAR(players[ChangeNetPlayer].id),&h);
int i;
REQUEST_MODEL(0x69305DBB);
Object fuckup;
while(!HAS_MODEL_LOADED(0x69305DBB)) WAIT(0);
for(i=0;i<=3;i++){
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(PLAYER_CHAR(players[ChangeNetPlayer].id),17.3f,30.0f,0.025f,&x,&y,&z);
GET_CHAR_HEADING(PLAYER_CHAR(players[ChangeNetPlayer].id),&h);
CREATE_OBJECT_NO_OFFSET(0x69305DBB,x,y,z,&fuckup,true);
while(!DOES_OBJECT_EXIST(fuckup)) WAIT(0);
SET_OBJECT_HEADING(fuckup,h+90);
SET_OBJECT_INVINCIBLE(fuckup,1);
SET_OBJECT_COLLISION(fuckup,1);
FREEZE_OBJECT_POSITION(fuckup,1);
block_net_control_of_object(fuckup);
}
MARK_MODEL_AS_NO_LONGER_NEEDED(0x69305DBB);
Alert_Two("~BLIP_76~ ~c~Caged Player~w~",GET_PLAYER_NAME(players[index].id),false);
}
else Alert_Two("~BLIP_76~ ~COL_NET_4~Action Can Not Be Performed On This Player! ~n~ ~w~",GET_PLAYER_NAME(players[index].id),false);
}
else if(SelectedItem == 4){
if(!Is_Developer(players[index].id) && !Is_Whitelisted(players[index].id)){
float x,y,z;
GET_CHAR_COORDINATES(PLAYER_CHAR(players[ChangeNetPlayer].id),&x,&y,&z);
ADD_EXPLOSION(x, y, z, EXPLOSION_SHIP_DESTROY, 10, false, true, 0);
}
else Alert_Two("~BLIP_76~ ~COL_NET_4~Action Can Not Be Performed On This Player! ~n~ ~w~",GET_PLAYER_NAME(players[index].id),false);
}
else if(SelectedItem == 5){
if(!Is_Developer(players[index].id) && !Is_Whitelisted(players[index].id)){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_FREEZE_POS);
menu_item[SelectedItem].extra_val = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_FREEZE_POS);
GET_CAR_CHAR_IS_USING(PLAYER_CHAR(players[ChangeNetPlayer].id),&Net_Vehicle);
GET_NETWORK_ID_FROM_VEHICLE(Net_Vehicle,&Net_Vehicle_ID);
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_FREEZE_POS)){
if(network_control(Net_Vehicle_ID) && DOES_VEHICLE_EXIST(Net_Vehicle)){
FREEZE_CAR_POSITION(Net_Vehicle, true);
SET_NETWORK_ID_CAN_MIGRATE(Net_Vehicle_ID,false);
Alert_Two("~BLIP_76~ ~c~Vehicle position frozen ~COL_NET_3~ON ~c~For ~w~",GET_PLAYER_NAME(players[index].id),false);
}
}
else{
if(network_control(Net_Vehicle_ID) && DOES_VEHICLE_EXIST(Net_Vehicle)){
FREEZE_CAR_POSITION(Net_Vehicle, false);
Alert_Two("~BLIP_76~ ~c~Vehicle position frozen ~COL_NET_4~OFF ~c~For ~w~",GET_PLAYER_NAME(players[index].id),false);
}
}
}
else Alert_Two("~BLIP_76~ ~COL_NET_4~Action Can Not Be Performed On This Player! ~n~ ~w~",GET_PLAYER_NAME(players[index].id),false);
}
else if(SelectedItem == 6){
if(!Is_Developer(players[index].id) && !Is_Whitelisted(players[index].id)){
if(IS_CHAR_IN_ANY_CAR(PLAYER_CHAR(players[ChangeNetPlayer].id))){
GET_CAR_CHAR_IS_USING(PLAYER_CHAR(players[ChangeNetPlayer].id),&Net_Vehicle);
GET_NETWORK_ID_FROM_VEHICLE(Net_Vehicle,&Net_Vehicle_ID);
if(network_control(Net_Vehicle_ID)){
SET_NETWORK_ID_CAN_MIGRATE(Net_Vehicle_ID, false);
SET_CAR_COLLISION(Net_Vehicle, false);
Alert("~BLIP_76~ ~c~Players Vehicle Is Now Phantom",false);
}
}
}
else Alert_Two("~BLIP_76~ ~COL_NET_4~Action Can Not Be Performed On This Player! ~n~ ~w~",GET_PLAYER_NAME(players[index].id),false);
}
else if(SelectedItem == 7){
ToggleBit(restrictWeaponsBitSet, players[ChangeNetPlayer].id);
menu_item[SelectedItem].extra_val = GetBit(restrictWeaponsBitSet, players[ChangeNetPlayer].id);
}
else if(SelectedItem == 8){
ToggleBit(autoDeleteVehicleBitSet, players[ChangeNetPlayer].id);
menu_item[SelectedItem].extra_val = GetBit(autoDeleteVehicleBitSet, players[ChangeNetPlayer].id);
}
else if(SelectedItem == 9){
ToggleBit(autoBurnBitSet, players[ChangeNetPlayer].id);
menu_item[SelectedItem].extra_val = GetBit(autoBurnBitSet, players[ChangeNetPlayer].id);
}
else if(SelectedItem == 10){
//MD_Teleport_ID(players[ChangeNetPlayer].id,3800,1500,-10);
RESURRECT_NETWORK_PLAYER(players[ChangeNetPlayer].id,4000,4000,-10,0);
char* buffer[32];
Strcpy(buffer, "~b~MD: "); //17
PLAYER_NAME_WITH_COLOUR(players[ChangeNetPlayer].id, &buffer); //33
Strcat(buffer, " ~s~was teleported to the kill-zone."); //36 = 71
Alert(buffer, false);
}
else if(SelectedItem == 11){
#ifdef Premium
if(!Is_Whitelisted(players[ChangeNetPlayer].id) && Is_Premium(iPlayer)) //prints have to go in function if not good already
{
if(IS_CHAR_IN_ANY_CAR(PLAYER_CHAR(players[ChangeNetPlayer].id)))
{
int tmp_veh,nvid;
GET_CAR_CHAR_IS_USING(PLAYER_CHAR(players[ChangeNetPlayer].id),&tmp_veh);
GET_NETWORK_ID_FROM_VEHICLE(tmp_veh,&nvid);
if(network_control(nvid)) //prints in function
{
REMOVE_ALL_CHAR_WEAPONS(PLAYER_CHAR(players[ChangeNetPlayer].id));
DELETE_CAR(&tmp_veh);
WAIT(7);
GIVE_WEAPON_TO_CHAR(PLAYER_CHAR(players[ChangeNetPlayer].id), WEAPON_ROCKET, AMMO_MAX, false);
char* buffer[16];
Strcpy(buffer, "~b~MD: "); //7
PLAYER_NAME_WITH_COLOUR(players[ChangeNetPlayer].id, &buffer); //33
Strcat(buffer, " ~s~was given the freeze gun."); //29 + 33 = 62
Alert(buffer, false);
}
}
}
#else
Alert(PREMIUM_ONLY_STRING,true);
#endif
}
else if(SelectedItem == 12){
#ifdef Premium
if(!is_driving(pPlayer)){
Alert("~b~MD: ~s~You must be the driver of a vehicle with free seats.",false);
return;
}
float mx,my,mz,mh;
GET_CHAR_COORDINATES(pPlayer,&mx,&my,&mz);
GET_CHAR_HEADING(pPlayer,&mh);
int localGroup;
GET_PLAYER_GROUP(iPlayer,&localGroup);
if(!DOES_GROUP_EXIST(localGroup)){
CREATE_GROUP(0,localGroup,true);
SET_GROUP_LEADER(localGroup,pPlayer);
}
Teleport_iPlayer_To_PlayerIndex(players[ChangeNetPlayer].id, true);
char* buffer[36];
Strcpy(buffer, "~b~MD: ");
PLAYER_NAME_WITH_COLOUR(players[ChangeNetPlayer].id, &buffer);
Strcat(buffer, " ~s~was group-hacked.");
//maybe delete their car too if they're in one to make group hack work better, hmm, we'll see how well this works first
SET_GROUP_MEMBER(localGroup, PLAYER_CHAR(players[ChangeNetPlayer].id));
WAIT(500);
REMOVE_CHAR_FROM_GROUP(PLAYER_CHAR(players[ChangeNetPlayer].id));
WAIT(500);
MD_Teleport_ID_Heading(iPlayer,mx,my,mz,mh);
Alert(buffer, false);
#else
Alert(PREMIUM_ONLY_STRING,true);
#endif
}
else if(SelectedItem == 13){
#ifdef Premium
if(Is_Premium(iPlayer) && !Is_Whitelisted(players[ChangeNetPlayer].id))
{
//change_player
int model;
REQUEST_MODEL(MODEL_PLAYER);
GET_CHAR_MODEL(pPlayer,&model);
int mycar = Personal_Vehicle;
float x,y,z,h;
GET_CHAR_COORDINATES(pPlayer,&x,&y,&z);
GET_CHAR_HEADING(pPlayer,&h);
Teleport_iPlayer_To_PlayerIndex(players[ChangeNetPlayer].id,false);
WAIT(50);
char* buffer[16];
Strcpy(buffer, "~b~MD: ");
PLAYER_NAME_WITH_COLOUR(players[ChangeNetPlayer].id, &buffer); //33
Strcat(buffer, " ~s~was player-model'd."); //23 + 33 = 56
float ox,oy,oz;
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(PLAYER_CHAR(players[ChangeNetPlayer].id),0,2,0,&ox,&oy,&oz);
SET_CHAR_COORDINATES(pPlayer,ox,oy,oz);
change_player(MODEL_PLAYER); //pPlayer updates in function
WAIT(10);
if(model == MODEL_PLAYER)
{
model = GET_PLAYERSETTINGS_MODEL_CHOICE();
} //have to change
change_player(model);
WAIT(20);
if(DOES_VEHICLE_EXIST(mycar) && WARP_PED_INTO_VEHICLE(pPlayer,mycar))
{
//nothing
}
else
{
MD_Teleport_ID_Heading(iPlayer,x,y,z,h);
}
if(model == GET_PLAYERSETTINGS_MODEL_CHOICE())
{
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(iPlayer);
BLOCK_PED_WEAPON_SWITCHING(pPlayer, true);
}
Alert(buffer, false);
}
#else
Alert(PREMIUM_ONLY_STRING,true);
#endif
}
else if(SelectedItem == 14){
ToggleBit(constantBoomBitSet, players[ChangeNetPlayer].id);
menu_item[SelectedItem].extra_val = GetBit(constantBoomBitSet, players[ChangeNetPlayer].id);
}
else if(SelectedItem == 15){
#ifndef Premium
Alert("Premium version only!",false);
return;
#endif
#ifndef SuperAdmin
if(Is_Whitelisted(players[ChangeNetPlayer].id))
{
Alert("ERROR: ~COL_NET_4~ Player is Whitelisted.",false);
return;
}
#endif
char* buffer[16];
Strcpy(buffer, "~b~MD: "); //7
PLAYER_NAME_WITH_COLOUR(players[ChangeNetPlayer].id, &buffer); //15 + 11 = 26 + 7 = 33
Strcat(buffer, " ~s~was blackscreened."); //22 + 33 = 55
TELL_NET_PLAYER_TO_START_PLAYING(players[ChangeNetPlayer].id, false);
Alert(buffer, false);
}
else if(SelectedItem == 16){
if(menu_item[SelectedItem].num_val == 1)MD_Teleport_ID(players[ChangeNetPlayer].id,2425.5264,389.2336,5.8487);//TP_x = 2425.5264 , TP_y = 389.2336 , TP_z = 5.8487;//Airport Building
else if(menu_item[SelectedItem].num_val == 2)MD_Teleport_ID(players[ChangeNetPlayer].id,704.5024,-270.7895,5.1121);//TP_x = 704.5024, TP_y = -270.7895, TP_z = 5.1121;//Barge Basement
else if(menu_item[SelectedItem].num_val == 3)MD_Teleport_ID(players[ChangeNetPlayer].id,-7.6952,356.7396,-2.9570);//TP_x = -7.6952, TP_y = 356.7396, TP_z = -2.9570;//Subway
else if(menu_item[SelectedItem].num_val == 4)MD_Teleport_ID(players[ChangeNetPlayer].id,-2072.8728,25.4543,25.4543);//TP_x = -2072.8728, TP_y = 25.4543, TP_z = 96.2373;//Isolate Building
else if(menu_item[SelectedItem].num_val == 5)MD_Teleport_ID(players[ChangeNetPlayer].id,-605.3948,-749.7060,94.9000);//TP_x = -605.3948, TP_y = -749.7060, TP_z = 94.9000; Alert("~BLIP_76~ ~c~Teleported to Statue Cup",false);}
}
else if(SelectedItem == 17){
if(menu_item[SelectedItem].num_val == 1){
MD_VEHICLE_SPAWNER_ON_ID(players[ChangeNetPlayer].id ,MODEL_PATRIOT);
WAIT(100);
delete_vehicles(9999,true,"all");
Alert_Two("~BLIP_76~ ~COL_NET_4~ Freeze-Patriot Given to Player ~n~ ~w~ ",GET_PLAYER_NAME(players[ChangeNetPlayer].id),false);
}
else if(menu_item[SelectedItem].num_val == 2){
MD_VEHICLE_SPAWNER_ON_ID(players[ChangeNetPlayer].id ,MODEL_ROMERO);
WAIT(100);
delete_vehicles(9999,true,"all");
Alert_Two("~BLIP_76~ ~COL_NET_4~ Freeze-Romero Given to Player ~n~ ~w~ ",GET_PLAYER_NAME(players[ChangeNetPlayer].id),false);
}
else if(menu_item[SelectedItem].num_val == 3){
MD_VEHICLE_SPAWNER_ON_ID(players[ChangeNetPlayer].id ,MODEL_LIMO2);
WAIT(100);
delete_vehicles(9999,true,"all");
Alert_Two("~BLIP_76~ ~COL_NET_4~ Freeze-Limo Given to Player ~n~ ~w~ ",GET_PLAYER_NAME(players[ChangeNetPlayer].id),false);
}
else if(menu_item[SelectedItem].num_val == 4){
MD_VEHICLE_SPAWNER_ON_ID(players[ChangeNetPlayer].id ,MODEL_SCHAFTER3);
WAIT(100);
delete_vehicles(9999,true,"all");
Alert_Two("~BLIP_76~ ~COL_NET_4~ Freeze-Shafter 3 Given to Player ~n~ ~w~ ",GET_PLAYER_NAME(players[ChangeNetPlayer].id),false);
}
else if(menu_item[SelectedItem].num_val == 5){
MD_VEHICLE_SPAWNER_ON_ID(players[ChangeNetPlayer].id ,MODEL_SCHAFTER2);
WAIT(100);
delete_vehicles(9999,true,"all");
Alert_Two("~BLIP_76~ ~COL_NET_4~ Freeze-Shafter 2 Given to Player ~n~ ~w~ ",GET_PLAYER_NAME(players[ChangeNetPlayer].id),false);
}
else if(menu_item[SelectedItem].num_val == 6){
MD_VEHICLE_SPAWNER_ON_ID(players[ChangeNetPlayer].id,MODEL_SCHAFTER2);
WAIT(100);
MD_VEHICLE_SPAWNER_ON_ID(players[ChangeNetPlayer].id,MODEL_SCHAFTER3);
WAIT(100);
MD_VEHICLE_SPAWNER_ON_ID(players[ChangeNetPlayer].id,MODEL_LIMO2);
WAIT(100);
MD_VEHICLE_SPAWNER_ON_ID(players[ChangeNetPlayer].id,MODEL_ROMERO);
WAIT(100);
MD_VEHICLE_SPAWNER_ON_ID(players[ChangeNetPlayer].id,MODEL_PATRIOT);
WAIT(100);
delete_vehicles(9999,true,"all");
Alert_Two("~BLIP_76~ ~COL_NET_4~ Freeze Mix (All) Given to Player ~n~ ~w~ ",GET_PLAYER_NAME(players[ChangeNetPlayer].id),false);
}
}
else if(SelectedItem == 18)
{
}
else if(SelectedItem == 19)
{
}
else if(SelectedItem == 20){
if(DOES_CHAR_EXIST(PLAYER_CHAR(players[ChangeNetPlayer].id))){
if(!Is_Developer(players[ChangeNetPlayer].id) && !Is_Whitelisted(players[ChangeNetPlayer].id)){
REMOVE_ALL_CHAR_WEAPONS(PLAYER_CHAR(players[ChangeNetPlayer].id));
WAIT(20);
Alert_Two("~BLIP_76~ ~COL_NET_4~Disarmed Player~w~",GET_PLAYER_NAME(players[ChangeNetPlayer].id),false);
}
else Alert_Two("~BLIP_76~ ~COL_NET_4~Action Can Not Be Performed On This Player! ~n~ ~w~",GET_PLAYER_NAME(players[ChangeNetPlayer].id),false);
}
}
else if(SelectedItem == 21)
{
if(!PLAYER_HAS_CHAR(players[ChangeNetPlayer].id))return;
Ped NetPed;
GET_PLAYER_CHAR(players[ChangeNetPlayer].id,&NetPed);
Vehicle NetVehicle;
Object Dart[7];
Dart[0] = 0xF1388248;
Dart[1] = 0xDF085DE8;
Dart[2] = 0xA7DF6F93;
Dart[3] = 0x5CC5D961;
Dart[4] = 0x4A8EB4F3;
Dart[5] = 0x2601EBDA;
Dart[6] = 0x37E38F9D;
int DartID[7];
Object DartObj[7];
Vehicle veh;
bool inveh;
int i;
for(i = 0; i <= 6; i++)
{
if(!LoadModel(Dart[i]))continue;
CREATE_OBJECT(Dart[i],0,0,0,&DartObj[i],true);
if(!DOES_OBJECT_EXIST(DartObj[i]))
{
print("~r~Object Doesn't Exist, Continuing To Next...");
continue;
}
GET_NETWORK_ID_FROM_OBJECT(Dart[i],&DartID[i]);
REQUEST_CONTROL_OF_NETWORK_ID(DartID[i]);
SET_OBJECT_VISIBLE(DartObj[i],false);
if(!IS_CHAR_IN_ANY_CAR(NetPed))
{
print("~b~Attaching Object To Ped Physically...");
WAIT(35);
ATTACH_OBJECT_TO_PED_PHYSICALLY(DartObj[i],NetPed,false,0,0.0,0.0,0.0,0.0,0.0,0.0,false,false);
}
else
{
GET_CAR_CHAR_IS_USING(NetPed,&NetVehicle);
ATTACH_OBJECT_TO_CAR_PHYSICALLY(DartObj[i],NetVehicle,0,0,0.0,0.0,0.0,0.0,false,false);
print("~b~Attaching Object to Vehicle Physically");
}
}
}
}
else{
if(SelectedItem > 0)
{
Alert(Error_Char_Missing,false);
}
}
return;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,278 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MC_Car_Spawner_Setup(uint player){
MENU_SUB_HEADER = "Full Vehicle Spawner";
AddSubMenu("Quick Spawner ~y~(Favourites) ~PAD_RIGHT~ ");
AddSubMenu("Sports ~PAD_RIGHT~");//3
AddSubMenu("Two Door ~PAD_RIGHT~");
AddSubMenu("Four Door ~PAD_RIGHT~");
AddSubMenu("Four Door (2) ~PAD_RIGHT~");
AddSubMenu("Vintage ~PAD_RIGHT~");
AddSubMenu("Off Road And SUV ~PAD_RIGHT~");
AddSubMenu("Junkers ~PAD_RIGHT~");
AddSubMenu("Public Service ~PAD_RIGHT~");
AddSubMenu("Emergency Service ~PAD_RIGHT~");
AddSubMenu("Commercial And Workplace ~PAD_RIGHT~");
AddSubMenu("Commercial And Workplace Part 2 ~PAD_RIGHT~");
AddSubMenu("Bikes ~PAD_RIGHT~");
AddSubMenu("Boats ~PAD_RIGHT~");
AddSubMenu("Helicopters ~PAD_RIGHT~");
return;
}
void MC_Car_Spawner_Action(uint player){
}
void Favourites_setup(uint player){
MENU_SUB_HEADER = "Favorites";
AddGxt_Model_CB(MODEL_COMET);
AddGxt_Model_CB(MODEL_TURISMO);
AddGxt_Model_CB(MODEL_INFERNUS);
AddGxt_Model_CB(MODEL_SUPERGT);
AddGxt_Model_CB(MODEL_SULTANRS);
AddGxt_Model_CB(MODEL_ORACLE);
AddGxt_Model_CB(MODEL_PATRIOT);
AddGxt_Model_CB(MODEL_FBI);
AddGxt_Model_CB(MODEL_BUS);
AddGxt_Model_CB(MODEL_SQUALO);
AddGxt_Model_CB(MODEL_NRG900);
AddGxt_Model_CB(MODEL_MAVERICK);
AddGxt_Model_CB(MODEL_ANNIHILATOR);
}
void Fly_Setup(uint player){
MENU_SUB_HEADER = "Helicopters";
AddGxt_Model_CB(MODEL_ANNIHILATOR);
AddGxt_Model_CB(MODEL_MAVERICK);
AddGxt_Model_CB(MODEL_POLMAV);
AddGxt_Model_CB(MODEL_TOURMAV);
if(Episode == 2){
AddGxt_Model_CB(MODEL_BUZZARD);
AddGxt_Model_CB(MODEL_SKYLIFT);
AddGxt_Model_CB(MODEL_SWIFT);
}
}
void Bike_Setup(uint player){
MENU_SUB_HEADER = "Bikes";
AddGxt_Model_CB(MODEL_BOBBER);
AddGxt_Model_CB(MODEL_FAGGIO);
AddGxt_Model_CB(MODEL_HELLFURY);
AddGxt_Model_CB(MODEL_NRG900);
AddGxt_Model_CB(MODEL_PCJ);
AddGxt_Model_CB(MODEL_SANCHEZ);
AddGxt_Model_CB(MODEL_ZOMBIEB);
if(Episode == 2){
AddGxt_Model_CB(MODEL_AKUMA);
AddGxt_Model_CB(MODEL_BATI2);
AddGxt_Model_CB(MODEL_DOUBLE);
AddGxt_Model_CB(MODEL_FAGGIO2);
AddGxt_Model_CB(MODEL_HAKUCHOU);
AddGxt_Model_CB(MODEL_HEXER);
AddGxt_Model_CB(MODEL_VADER);
}
}
void Boat_Setup(uint player){
MENU_SUB_HEADER = "Boats";
AddGxt_Model_CB(MODEL_DINGHY);
AddGxt_Model_CB(MODEL_JETMAX);
AddGxt_Model_CB(MODEL_MARQUIS);
AddGxt_Model_CB(MODEL_PREDATOR);
AddGxt_Model_CB(MODEL_REEFER);
AddGxt_Model_CB(MODEL_SQUALO);
AddGxt_Model_CB(MODEL_TROPIC);
AddGxt_Model_CB(MODEL_TUGA);
if(Episode == 2){
AddGxt_Model_CB(MODEL_BLADE);
AddGxt_Model_CB(MODEL_FLOATER);
AddGxt_Model_CB(MODEL_SMUGGLER);
}
}
void Workplace_Setup(uint player){
MENU_SUB_HEADER = "Commercial And Workplace";
AddGxt_Model_CB(MODEL_AIRTUG);
AddGxt_Model_CB(MODEL_BENSON);
AddGxt_Model_CB(MODEL_BIFF);
AddGxt_Model_CB(MODEL_BOXVILLE);
AddGxt_Model_CB(MODEL_BURRITO);
AddGxt_Model_CB(MODEL_BURRITO2);
AddGxt_Model_CB(MODEL_FEROCI2);
AddGxt_Model_CB(MODEL_FLATBED);
AddGxt_Model_CB(MODEL_FORKLIFT);
AddGxt_Model_CB(MODEL_MULE);
AddGxt_Model_CB(MODEL_MRTASTY);
AddGxt_Model_CB(MODEL_PACKER);
AddGxt_Model_CB(MODEL_PERENNIAL2);
AddGxt_Model_CB(MODEL_PHANTOM);
}
void Workplace_2_Setup(uint player){
MENU_SUB_HEADER = "Commercial And Workplace (2)";
AddGxt_Model_CB(MODEL_PONY);
AddGxt_Model_CB(MODEL_RIPLEY);
AddGxt_Model_CB(MODEL_SPEEDO);
AddGxt_Model_CB(MODEL_STOCKADE);
AddGxt_Model_CB(MODEL_STEED);
AddGxt_Model_CB(MODEL_YANKEE);
if(Episode == 2){
AddGxt_Model_CB(MODEL_CADDY);
}
}
void Emergency_Setup(uint player){
MENU_SUB_HEADER = "Emergency Service";
AddGxt_Model_CB(MODEL_AMBULANCE);
AddGxt_Model_CB(MODEL_FBI);
AddGxt_Model_CB(MODEL_FIRETRUK);
AddGxt_Model_CB(MODEL_NOOSE);
AddGxt_Model_CB(MODEL_POLICE);
AddGxt_Model_CB(MODEL_POLICE2);
AddGxt_Model_CB(MODEL_POLPATRIOT);
AddGxt_Model_CB(MODEL_PSTOCKADE);
if(Episode == 2){
AddGxt_Model_CB(MODEL_APC);
AddGxt_Model_CB(MODEL_POLICE3);
AddGxt_Model_CB(MODEL_POLICE4);
AddGxt_Model_CB(MODEL_POLICEB);
AddGxt_Model_CB(MODEL_POLICEW);
}
}
void Four_Doors_Setup(uint player){
MENU_SUB_HEADER = "Four Door";
AddGxt_Model_CB(MODEL_ADMIRAL);
AddGxt_Model_CB(MODEL_CHAVOS);
AddGxt_Model_CB(MODEL_COGNOSCENTI);
AddGxt_Model_CB(MODEL_DF8);
AddGxt_Model_CB(MODEL_DILETTANTE);
AddGxt_Model_CB(MODEL_EMPEROR);
AddGxt_Model_CB(MODEL_ESPERANTO);
AddGxt_Model_CB(MODEL_FEROCI);
AddGxt_Model_CB(MODEL_HAKUMAI);
AddGxt_Model_CB(MODEL_INGOT);
AddGxt_Model_CB(MODEL_INTRUDER);
AddGxt_Model_CB(MODEL_LOKUS);
AddGxt_Model_CB(MODEL_MARBELLA);
AddGxt_Model_CB(MODEL_MERIT);
}
void Four_Doors__2_Setup(uint player){
MENU_SUB_HEADER = "Four Door (2)";
AddGxt_Model_CB(MODEL_ORACLE);
AddGxt_Model_CB(MODEL_PINNACLE);
AddGxt_Model_CB(MODEL_PMP600);
AddGxt_Model_CB(MODEL_PREMIER);
AddGxt_Model_CB(MODEL_PRES);
AddGxt_Model_CB(MODEL_PRIMO);
AddGxt_Model_CB(MODEL_ROM);
AddGxt_Model_CB(MODEL_SCHAFTER);
AddGxt_Model_CB(MODEL_SOLAIR);
AddGxt_Model_CB(MODEL_STRATUM);
AddGxt_Model_CB(MODEL_VINCENT);
AddGxt_Model_CB(MODEL_WASHINGTON);
AddGxt_Model_CB(MODEL_WILLARD);
if(Episode == 2){
AddGxt_Model_CB(MODEL_SERRANO);
AddGxt_Model_CB(MODEL_SCHAFTER2);
}
}
void Off_Road_Setup(uint player){
MENU_SUB_HEADER = "Off-Road And SUV";
AddGxt_Model_CB(MODEL_BOBCAT);
AddGxt_Model_CB(MODEL_CAVALCADE);
AddGxt_Model_CB(MODEL_FXT);
AddGxt_Model_CB(MODEL_E109);
AddGxt_Model_CB(MODEL_HABANERO);
AddGxt_Model_CB(MODEL_HUNTLEY);
AddGxt_Model_CB(MODEL_LANDSTALKER);
AddGxt_Model_CB(MODEL_MINIVAN);
AddGxt_Model_CB(MODEL_MOONBEAM);
AddGxt_Model_CB(MODEL_PATRIOT);
AddGxt_Model_CB(MODEL_PERENNIAL);
AddGxt_Model_CB(MODEL_RANCHER);
AddGxt_Model_CB(MODEL_REBLA);
if(Episode == 2){
AddGxt_Model_CB(MODEL_CAVALCADE2);
}
}
void Classics_Setup(uint player){
MENU_SUB_HEADER = "Vintage";
AddGxt_Model_CB(MODEL_BUCCANEER);
AddGxt_Model_CB(MODEL_DUKES);
AddGxt_Model_CB(MODEL_FACTION);
AddGxt_Model_CB(MODEL_MANANA);
AddGxt_Model_CB(MODEL_PEYOTE);
AddGxt_Model_CB(MODEL_RUINER);
AddGxt_Model_CB(MODEL_SABRE);
AddGxt_Model_CB(MODEL_SABREGT);
AddGxt_Model_CB(MODEL_STALION);
AddGxt_Model_CB(MODEL_VIGERO);
AddGxt_Model_CB(MODEL_VIRGO);
AddGxt_Model_CB(MODEL_VOODOO);
if(Episode == 2){
AddGxt_Model_CB(MODEL_TAMPA);
}
}
void Public_Service_Setup(uint player){
MENU_SUB_HEADER = "Public Service";
AddGxt_Model_CB(MODEL_BUS);
AddGxt_Model_CB(MODEL_CABBY);
AddGxt_Model_CB(MODEL_ROMERO);
AddGxt_Model_CB(MODEL_TAXI);
AddGxt_Model_CB(MODEL_TAXI2);
AddGxt_Model_CB(MODEL_TRASH);
AddGxt_Model_CB(MODEL_STRETCH);
if(Episode == 2){
AddGxt_Model_CB(MODEL_LIMO2);
}
}
void Rusty_Cars_Setup(uint player){
MENU_SUB_HEADER = "Junkers";
AddGxt_Model_CB(MODEL_EMPEROR2);
AddGxt_Model_CB(MODEL_SABRE2);
AddGxt_Model_CB(MODEL_VIGERO2);
}
void Sport_Cars_Setup(uint player){
MENU_SUB_HEADER = "Sports";
AddGxt_Model_CB(MODEL_BANSHEE);
AddGxt_Model_CB(MODEL_COMET);
AddGxt_Model_CB(MODEL_COQUETTE);
AddGxt_Model_CB(MODEL_FELTZER);
AddGxt_Model_CB(MODEL_INFERNUS);
AddGxt_Model_CB(MODEL_SULTAN);
AddGxt_Model_CB(MODEL_SENTINEL);
AddGxt_Model_CB(MODEL_SULTANRS);
AddGxt_Model_CB(MODEL_SUPERGT);
AddGxt_Model_CB(MODEL_TURISMO);
if(Episode == 2){
AddGxt_Model_CB(MODEL_BUFFALO);
AddGxt_Model_CB(MODEL_BULLET);
AddGxt_Model_CB(MODEL_F620);
}
}
void Two_Doors_Setup(uint player){
MENU_SUB_HEADER = "Two Door";
AddGxt_Model_CB(MODEL_BLISTA);
AddGxt_Model_CB(MODEL_FORTUNE);
AddGxt_Model_CB(MODEL_FUTO);
AddGxt_Model_CB(MODEL_URANUS);
if(Episode == 2){
AddGxt_Model_CB(MODEL_SUPERD);
AddGxt_Model_CB(MODEL_SUPERD2);
}
}
void MD_Vehicle_Spawner(const int player_ID){
MD_VEHICLE_SPAWNER_ON_ID(player_ID,menu_item[SelectedItem].num_val);
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,723 @@
/**
* @ MD EXTEND+
* @ Version MDv13 TRIDENT(Essentials Based)
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
//extern void EXPLODE_CAR(Vehicle vehicle, boolean unknownTrue, boolean unknownFalse); //etter than spawnin an explosion
//ANCHOR_BOAT(Vehicle boat, boolean anchor); //NEED THIS!!!
//NEEDED! Seat swap: int value (NATHAN CAN RIG THIS PERFECT IF U LIKE IT)
void MD_VehOpt_Pplayer_Setup(void){
MENU_SUB_HEADER = "Vehicle Options";
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
Add_JumpOver("~BLIP_94~ V E H I C L E O P T I O N S ~BLIP_94~"); //5
AddSubMenu("Full Spawner ~PAD_RIGHT~"); //6
AddSubMenu("Garage ~y~(Addons & Colours) ~PAD_RIGHT~"); //7
AddSubMenu("Upgrades ~PAD_RIGHT~"); //8
AddFunction_Value("Quick Spawn",13); //9
AddFunction_Value("General",8); //10
AddFunction_Value("Spawn Settings", 8); //11
AddFunction_Value("Physics", 3); //12
AddFunction_Value("Stunt Modes", 5); //13
AddFunction_Value("Speed Settings",3); //14
AddFunction_Value("Auto-lock",3); //15
AddFunction_Value("Actions", 6); //16
AddFunction_Value("Forces",9); //17
AddFunction_Value("Heading",6); //18
AddFunction_Value("Transformer",6); //19
AddFunction_Value("Heli Weapon Type",3); //20
AddFunction_Value("Armed Vehicles",2); //21
/**Remember Strings and numvals**/
item_highlighted = 6;
menu_item[15].num_val = GetByteInSet(WeatherTimeAutoLockByteSet,VEHICLE_AUTOLOCK);
//menu_item[20].num_val == Vehicle_Weapon;
}
void MD_VehOpt_Pplayer_Action(void){
NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION();
//Jumpover 5
//Sub Spawner 6
//Sub Addons 7
//Sub Upgrades 8
if(SelectedItem == 10 || SelectedItem == 11 || SelectedItem == 15 || SelectedItem == 16 || SelectedItem == 17 || SelectedItem == 18 || SelectedItem == 19 || SelectedItem == 20 || SelectedItem == 21 ){
if(!IS_CHAR_IN_ANY_CAR(pPlayer)){
Alert(Error_Personal_Vehicle,false);
return;
}
else GET_CAR_CHAR_IS_USING(pPlayer,&Personal_Vehicle);
}
if(SelectedItem == 9){//DONE
int Vehicle[14];
Vehicle[1] = MODEL_COMET;
Vehicle[2] = MODEL_TURISMO;
Vehicle[3] = MODEL_INFERNUS;
Vehicle[4] = MODEL_SUPERGT;
Vehicle[5] = MODEL_SULTANRS;
Vehicle[6] = MODEL_ORACLE;
Vehicle[7] = MODEL_PATRIOT;
Vehicle[8] = MODEL_FBI;
Vehicle[9] = MODEL_BUS;
Vehicle[10] = MODEL_SQUALO;
Vehicle[11] = MODEL_NRG900;
Vehicle[12] = MODEL_MAVERICK;
Vehicle[13] = MODEL_ANNIHILATOR;
MD_VEHICLE_SPAWNER_ON_ID(iPlayer,Vehicle[(menu_item[SelectedItem].num_val)]);
}
/**General**/
if(SelectedItem == 10){//DONE
if(menu_item[SelectedItem].num_val == 1){ // Fix & Wash
FIX_CAR(Personal_Vehicle);
SET_CAR_ENGINE_ON(Personal_Vehicle,true,true);
SET_CAR_PROOFS( Personal_Vehicle, 1, 1, 1, 1, 1 );
SET_VEHICLE_DIRT_LEVEL(Personal_Vehicle, 0);
}
else if(menu_item[SelectedItem].num_val == 2){ //Flip
float h;
GET_CAR_HEADING(Personal_Vehicle,&h);
SET_VEHICLE_QUATERNION(Personal_Vehicle,0,0,0,0);
SET_CAR_HEADING(Personal_Vehicle,h);
SET_CAR_ON_GROUND_PROPERLY(Personal_Vehicle);
}
else if(menu_item[SelectedItem].num_val == 3){
int i;
SET_CAN_BURST_CAR_TYRES(Personal_Vehicle,true);
for(i = 0; i < 8; i++)
{
if(IS_CAR_TYRE_BURST(Personal_Vehicle,i)) continue;
BURST_CAR_TYRE(Personal_Vehicle,i);
}
//Burst Tyres
}
else if(menu_item[SelectedItem].num_val == 4){ //Fix tyres --> This doesnt work well, for a bike only front wheel is fixed, same for vehicle, not all wheels get fixed
int num_tyres = 0;
int i;
for(i = 0; i < 8; i++)
{
if(IS_CAR_TYRE_BURST(Personal_Vehicle,i))
{
FIX_CAR_TYRE(Personal_Vehicle,i);
}
}
}
else if(menu_item[SelectedItem].num_val == 5){ // Okay..Works
SET_CHAR_VISIBLE(pPlayer,!IS_CHAR_VISIBLE(pPlayer));
}
else if(menu_item[SelectedItem].num_val == 6){ // Sets invisible, doesnt reverse it --> This needs work
if(IS_CHAR_VISIBLE(pPlayer)){
SET_CHAR_VISIBLE(pPlayer,false);
if(IS_CHAR_IN_ANY_CAR(pPlayer)){
GET_CAR_CHAR_IS_USING(pPlayer,&Personal_Vehicle);
SET_CAR_VISIBLE(Personal_Vehicle, false);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE,true);
}
}
else{
SET_CHAR_VISIBLE(pPlayer,true);
if(IS_CHAR_IN_ANY_CAR(pPlayer)){
GET_CAR_CHAR_IS_USING(pPlayer,&Personal_Vehicle);
SET_CAR_VISIBLE(Personal_Vehicle, true);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE,false);
}
}
}
else if(menu_item[SelectedItem].num_val == 7){ //Blips need work too. 2 things : Hide/show Blip Ped (ped alone) / or / Hide/show Blip Ped (+ vehicle visible/invisible)
if((GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_REMOVE_BLIP) || GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_REMOVE_BLIP))){
SetBit(VehicleOptionsBitSet,VEHICLE_OPTION_REMOVE_BLIP,false);
SetBit(pPlayerOptionsBitSet,PLAYER_OPTION_REMOVE_BLIP,false);
SET_CHAR_VISIBLE(pPlayer,true);
if(IS_CHAR_IN_ANY_CAR(pPlayer)){
GET_CAR_CHAR_IS_USING(pPlayer,&Personal_Vehicle);
SET_CAR_VISIBLE(Personal_Vehicle, true);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE,false);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY,false);
}
SET_PLAYER_CONTROL(iPlayer, true);
}
else{
SetBit(VehicleOptionsBitSet,VEHICLE_OPTION_REMOVE_BLIP,true);
SetBit(pPlayerOptionsBitSet,PLAYER_OPTION_REMOVE_BLIP,true);
}
}
else if(menu_item[SelectedItem].num_val == 8){
MD_Delete_Objects_On_Vehicle(iPlayer); //will only print if it deletes an object
DELETE_CAR(&Personal_Vehicle);
}
}
/**Active Spawn Settings**/
else if(SelectedItem == 11){ //DONE
if(menu_item[SelectedItem].num_val == 1){
ToggleBit(VehicleOptionsBitSet,VEHICLE_OPTION_ALL_UPGRADES);
int i;
for(i=0;i<10;i++)TURN_OFF_VEHICLE_EXTRA(Personal_Vehicle, i, !GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_ALL_UPGRADES));
}
else if(menu_item[SelectedItem].num_val == 2){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE);
/* //This is looped buddy..
SET_CAR_CAN_BE_DAMAGED(Personal_Vehicle,!GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE));
SET_CAR_CAN_BE_VISIBLY_DAMAGED(Personal_Vehicle,!GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE));
SET_CAN_BURST_CAR_TYRES(Personal_Vehicle,!GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE));
*/
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE)){
FIX_CAR(Personal_Vehicle);
SET_CAR_ENGINE_ON(Personal_Vehicle,true,true);
SET_VEHICLE_DIRT_LEVEL(Personal_Vehicle, 0);
}
}
else if(menu_item[SelectedItem].num_val == 3){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_SIREN);
SWITCH_CAR_SIREN(Personal_Vehicle,GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_SIREN));
}
else if(menu_item[SelectedItem].num_val == 4)ToggleBit(VehicleOptionsBitSet,VEHICLE_OPTION_RAINBOW);
else if(menu_item[SelectedItem].num_val == 5){
ToggleBit(VehicleOptionsBitSet,VEHICLE_OPTION_ENGINE);
SET_CAR_ENGINE_ON(Personal_Vehicle,GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_ENGINE),GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_ENGINE));
}
else if(menu_item[SelectedItem].num_val == 6){
Coloursetting_Personal = !Coloursetting_Personal;
if(Coloursetting_Personal )Alert("~b~MD: ~y~Personal Vehicle: ~s~This will enable saved colors on next spawns!",false);
else Alert("~b~MD: ~y~Personal Vehicle: ~s~Random colours will be used next spawns!",false);
}
else if(menu_item[SelectedItem].num_val == 7){
Coloursetting_Net = !Coloursetting_Net;
if(Coloursetting_Net )Alert("~b~MD: ~y~Net Vehicles: ~s~This will enable saved colors on next spawns!",false);
else Alert("~b~MD: ~y~Net Vehicles: ~s~Random colours will be used next spawns!",false);
}
else if(menu_item[SelectedItem].num_val == 8){
Coloursetting_Net = false;
Coloursetting_Personal = false;
Alert("~b~MD: ~y~Use of saved colours disabled.~n~~s~Random colours will be used next spawns!",false);
}
}
/**Physics**/
else if(SelectedItem == 12){//DONE
if(menu_item[SelectedItem].num_val == 1)TOGGLE_DRIVE_WALK_WATER_FOR_PLAYER(iPlayer);
else if(menu_item[SelectedItem].num_val == 2){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY);
Alert_Two("~b~MD: ~s~Desolidified vehicle", GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY) ? PrintON : PrintOFF ,false);
//if(GetBit(VehicleOptionsBitSet, !VEHICLE_OPTION_DESOLIDIFY))SET_CAR_COLLISION(Personal_Vehicle,true); // This fixes the issue //can't see it would buddy, you have !number here.. wtf?
if(!GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY)) SET_CAR_COLLISION(Personal_Vehicle,true);
}
else if(menu_item[SelectedItem].num_val == 3)ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_AUTO_BOAT);
}
/**Handling**/
else if(SelectedItem == 13){//DONE
if(menu_item[SelectedItem].num_val == 1)ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_JUMP);
else if(menu_item[SelectedItem].num_val == 2)ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_DRIFT);
else if(menu_item[SelectedItem].num_val == 3)ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_LOWER);
else if(menu_item[SelectedItem].num_val == 4)ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_STICK_GROUND);
else if(menu_item[SelectedItem].num_val == 5)ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_SUPER_BIKE);
}
/**Speed settings**/
else if(SelectedItem == 14){//DONE
if(menu_item[SelectedItem].num_val == 1){
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_NORMAL_SPEED, true);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_SUPER_SPEED,false);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_TURBO_SPEED,false);
}
else if(menu_item[SelectedItem].num_val == 2){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_TURBO_SPEED);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_SUPER_SPEED,false);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_NORMAL_SPEED,false);//Just used to highlight
}
else if(menu_item[SelectedItem].num_val == 3){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_SUPER_SPEED);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_TURBO_SPEED,false);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_NORMAL_SPEED,false);//Just used to highlight
}
}
else if(SelectedItem == 15){//Lock modes, should contain all lock modes
//Add as item 1 : SET_VEHICLE_LOCKED_WITHOUT_NET_CONTROL_REQUEST(Personal_Vehicle, !IS_CHARS_VEHICLE_LOCKED(PLAYER_CHAR(iPlayer)));
#ifndef Premium
if(menu_item[SelectedItem].num_val == 2){//Unlock for friends
Alert(PREMIUM_ONLY_STRING,true);
return;
}
#endif
SetByteSet(&WeatherTimeAutoLockByteSet, VEHICLE_AUTOLOCK, menu_item[SelectedItem].num_val);
}
/**Actions**/
else if(SelectedItem == 16){ //Actions
if(menu_item[SelectedItem].num_val == 1 && DOES_VEHICLE_EXIST(Personal_Vehicle)){
float x,y,z,h;
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(pPlayer,1.5f,5.0f,0.0f,&x,&y,&z);
GET_CHAR_HEADING(pPlayer,&h);
h += 50.0f; //drivers seat facing you, open le door //maybe put like, -= 70.0f
int car_clone;
Clone_Car(Personal_Vehicle, x, y, z, h, &car_clone); //GetPlayerVeh() == works
OPEN_CAR_DOOR(car_clone, 0);
}
else if(menu_item[SelectedItem].num_val == 2)FREEZE_CAR_POSITION(Personal_Vehicle,true);
else if(menu_item[SelectedItem].num_val == 3)FREEZE_CAR_POSITION(Personal_Vehicle,false);
else if(menu_item[SelectedItem].num_val == 4){
int z;
for(z = 0; z < 4; z++){
BREAK_CAR_DOOR(Personal_Vehicle,z,true);
BURST_CAR_TYRE(Personal_Vehicle,z);
REMOVE_CAR_WINDOW(Personal_Vehicle,z);
}
START_CAR_FIRE(Personal_Vehicle);
SET_ENGINE_HEALTH(Personal_Vehicle,-5);
SET_CAR_ENGINE_ON(Personal_Vehicle,false,false);
}
else if(menu_item[SelectedItem].num_val == 5){
Shuffle_Vehicle_Seat();
}
else if(menu_item[SelectedItem].num_val == 6){
REMOVE_CHAR_FROM_CAR_MAINTAIN_POSITION(pPlayer,Personal_Vehicle);
}
}
/**Forces**/
else if(SelectedItem == 17){ //DONE
if(menu_item[SelectedItem].num_val == 1)APPLY_FORCE_TO_CAR(Personal_Vehicle,3,0,0,1000,0,0,0,0, 1, 1, 1);
else if(menu_item[SelectedItem].num_val == 2)APPLY_FORCE_TO_CAR(Personal_Vehicle,3,0,0,-1000,0,0,0,0, 1, 1, 1);
else if(menu_item[SelectedItem].num_val == 3)APPLY_FORCE_TO_CAR(Personal_Vehicle,3,-60,0,0,0,-60,0,0, 1, 1, 1);
else if(menu_item[SelectedItem].num_val == 4)APPLY_FORCE_TO_CAR(Personal_Vehicle,3,60,0,0,0,-60,0,0, 1, 1, 1);
else if(menu_item[SelectedItem].num_val == 5)APPLY_FORCE_TO_CAR(Personal_Vehicle,3,0,60,10.0,0,0,-10.0,0, 1, 1, 1);
else if(menu_item[SelectedItem].num_val == 6)APPLY_FORCE_TO_CAR(Personal_Vehicle,3,0,-60,10.0,0,0,-10.0,0, 1, 1, 1);
else if(menu_item[SelectedItem].num_val == 7){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_FREEZE_POS );
FREEZE_CAR_POSITION(Personal_Vehicle,GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_FREEZE_POS));
}
else if(menu_item[SelectedItem].num_val == 8){
int z;
for(z = 0; z < 4; z++){
BREAK_CAR_DOOR(Personal_Vehicle,z,true);
BURST_CAR_TYRE(Personal_Vehicle,z);
REMOVE_CAR_WINDOW(Personal_Vehicle,z);
}
START_CAR_FIRE(Personal_Vehicle);
SET_ENGINE_HEALTH(Personal_Vehicle,-5);
SET_CAR_ENGINE_ON(Personal_Vehicle,false,false);
}
else if(menu_item[SelectedItem].num_val == 9){
FIX_CAR(Personal_Vehicle);
SET_CAR_ENGINE_ON(Personal_Vehicle,true,true);
SET_VEHICLE_DIRT_LEVEL(Personal_Vehicle, 0);
}
}
/**Heading**/
else if(SelectedItem == 18){
float Vehicle_Heading_Change,speed;
if(menu_item[SelectedItem].num_val > 0 || menu_item[SelectedItem].num_val < 6){
GET_CAR_SPEED(Personal_Vehicle,&speed);
GET_CAR_HEADING(Personal_Vehicle,&Vehicle_Heading_Change);
}
if(menu_item[SelectedItem].num_val == 1)SET_CAR_FORWARD_SPEED(Personal_Vehicle,speed*3);
if(menu_item[SelectedItem].num_val == 2){
SET_CAR_HEADING(Personal_Vehicle,Vehicle_Heading_Change-180);
SET_CAR_FORWARD_SPEED(Personal_Vehicle,speed*3);
}
if(menu_item[SelectedItem].num_val == 3){
SET_CAR_HEADING(Personal_Vehicle,Vehicle_Heading_Change - 180);
SET_CAR_FORWARD_SPEED(Personal_Vehicle,speed);
}
if(menu_item[SelectedItem].num_val == 4){
SET_CAR_HEADING(Personal_Vehicle,Vehicle_Heading_Change + 90.00f);
SET_CAR_FORWARD_SPEED(Personal_Vehicle,speed);
}
if(menu_item[SelectedItem].num_val == 5){
SET_CAR_HEADING(Personal_Vehicle,Vehicle_Heading_Change - 90.00f);
SET_CAR_FORWARD_SPEED(Personal_Vehicle,speed);
}
if(menu_item[SelectedItem].num_val == 6){
ToggleBit(VehicleOptionsBitSet, VEHICLE_OPTION_ROTATE);
}
}
/**Vehicle Transformer**/
else if(SelectedItem == 19) //Bracket doesn't go here
{ //Bracket being here makes it much easier to read
if(menu_item[SelectedItem].num_val == 1) //Bracket doesn't go here
{
Vehicle_Transformer(iPlayer, 1);
}
else if(menu_item[SelectedItem].num_val == 2) //Bracket doesn't go here
{
Vehicle_Transformer(iPlayer, 2);
}
else if(menu_item[SelectedItem].num_val == 3) //Bracket doesn't go here
{
Vehicle_Transformer(iPlayer, 3);
}
else if(menu_item[SelectedItem].num_val == 4) //Bracket doesn't go here
{
turn_car_into_heli(Personal_Vehicle);
}
else if(menu_item[SelectedItem].num_val == 5){
delete_transformers_on_vehicle(Personal_Vehicle);
SET_CHAR_VISIBLE(pPlayer,true);
SetBit(VehicleOptionsBitSet, !VEHICLE_OPTION_INVISIBLE,false);
SET_CAR_VISIBLE(Personal_Vehicle,true);
}
else if(menu_item[SelectedItem].num_val == 6){
delete_transformers_on_vehicle(Personal_Vehicle);
SET_CHAR_VISIBLE(pPlayer,true);
SetBit(VehicleOptionsBitSet, !VEHICLE_OPTION_INVISIBLE,false);
if(IS_CHAR_IN_ANY_CAR(pPlayer))DELETE_CAR(&Personal_Vehicle);
}
}
else if(SelectedItem == 20)
{
if(menu_item[SelectedItem].num_val == 1)
{
Vehicle_Weapon = WEAPON_RLAUNCHER;
int Pednr;
for(Pednr = 0; Pednr < 4; Pednr++)
{
if(!DOES_CHAR_EXIST(WeaponVeh_ped[Pednr])) continue;
UpdateWeaponOfPed(WeaponVeh_ped[Pednr], Vehicle_Weapon);
SET_CURRENT_CHAR_WEAPON(WeaponVeh_ped[Pednr], Vehicle_Weapon, true);
WAIT(30);
}
Alert("~b~MD: ~s~Heli Weapon updated",false);
}
else if(menu_item[SelectedItem].num_val == 2)
{
Vehicle_Weapon = WEAPON_M4;
int Pednr;
for(Pednr = 0; Pednr < 4; Pednr++)
{
if(!DOES_CHAR_EXIST(WeaponVeh_ped[Pednr])) continue;
UpdateWeaponOfPed(WeaponVeh_ped[Pednr], Vehicle_Weapon);
SET_CURRENT_CHAR_WEAPON(WeaponVeh_ped[Pednr], Vehicle_Weapon, true);
WAIT(30);
}
Alert("~b~MD: ~s~Heli Weapon updated",false);
}
else if(menu_item[SelectedItem].num_val == 3)
{
Vehicle_Weapon = WEAPON_SNIPERRIFLE;
int Pednr;
for(Pednr = 0; Pednr < 4; Pednr++)
{
if(!DOES_CHAR_EXIST(WeaponVeh_ped[Pednr])) continue;
UpdateWeaponOfPed(WeaponVeh_ped[Pednr], Vehicle_Weapon);
SET_CURRENT_CHAR_WEAPON(WeaponVeh_ped[Pednr], Vehicle_Weapon, true);
WAIT(30);
}
Alert("~b~MD: ~s~Heli Weapon updated",false);
}
}
/**Vehicle Weapons**/
else if(SelectedItem == 21){
if(menu_item[SelectedItem].num_val == 1){
MD_Weapon_Vehicle = !MD_Weapon_Vehicle;
}
else if(menu_item[SelectedItem].num_val == 2)
{
/*
if(!GetBit(MD_Misc_OptionsBitSet, MD_MISC_NATHANS_RAPID_FIRE_HELI))
{
SetBit(MD_Misc_OptionsBitSet, MD_MISC_NATHANS_RAPID_FIRE_HELI, true);
}
else
{
SetBit(MD_Misc_OptionsBitSet, MD_MISC_NATHANS_RAPID_FIRE_HELI, false);
int i;
for(i = 0; i < 4; i++)
{
if(DOES_CHAR_EXIST(Nathans_RapidHeli_Peds[i])) DELETE_CHAR(&Nathans_RapidHeli_Peds[i]);
}
}
*/
#ifdef Premium
Devils_Rapid_Fire_Heli = !Devils_Rapid_Fire_Heli;
if(Devils_Rapid_Fire_Heli)Vehicle_Weapon = WEAPON_SNIPERRIFLE;
else
{
int i;
for(i = 0; i < 4; i++)
{
if(DOES_CHAR_EXIST(WeaponVeh_ped[i])) DELETE_CHAR(&WeaponVeh_ped[i]);
}
}
#else
Alert("Premium only nigga!",false);
#endif
}
}
}
void MC_Vehicle_Loop_pPlayer(void){
/**Devils Mean Machines**/
Weapon_Vehicle();
#ifdef Premium
Rapid_Fire_Heli();
#endif
/***********************/
if(IS_CHAR_IN_ANY_CAR(pPlayer)) {
/*
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_NATHANS_RAPID_FIRE_HELI))
{
Nathans_Rapid_Fire_Heli();
/*
if(Nathans_RapidHeli_Tick < GetTickCount())
{
Nathans_RapidHeli_Tick = (GetTickCount() + 200);
Nathans_Rapid_Fire_Heli();
}
}
*/
int driver;
GET_CAR_CHAR_IS_USING(pPlayer,&Personal_Vehicle);
GET_DRIVER_OF_CAR(Personal_Vehicle,&driver);
if(driver == pPlayer){
bool in_heli = IS_CHAR_IN_ANY_HELI(pPlayer);
float mx,my,mz,mh;
int model;
GET_CAR_MODEL(Personal_Vehicle,&model);
GET_CHAR_COORDINATES_HEADING(pPlayer,&mx,&my,&mz,&mh);
/**Active Spawnsettings**/
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_STICK_GROUND))SET_CAR_ON_GROUND_PROPERLY(Personal_Vehicle);
SET_CAR_ENGINE_ON(Personal_Vehicle,GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_ENGINE),GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_ENGINE));
SET_CHAR_WILL_FLY_THROUGH_WINDSCREEN(pPlayer, !GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE));
SET_CAR_CAN_BE_DAMAGED(Personal_Vehicle, !GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE));
SET_CAR_CAN_BE_VISIBLY_DAMAGED(Personal_Vehicle, !GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE));
SET_CAN_BURST_CAR_TYRES(Personal_Vehicle, !GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE));
SET_CAR_WATERTIGHT(Personal_Vehicle, GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE));
//SET_CAR_VISIBLE(Personal_Vehicle, !GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE));
bool L_WAS_PRESSED = IS_BUTTON_JUST_PRESSED(0,BUTTON_L);
bool R_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_R);
bool L_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_L);
float speed;
GET_CAR_SPEED(Personal_Vehicle,&speed);
/**Super Speed**/
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_SUPER_SPEED)){
if(L_WAS_PRESSED || R_IS_PRESSED)SET_CAR_FORWARD_SPEED(Personal_Vehicle, ( L_WAS_PRESSED ? (speed / 6) : (speed * 1.02)) );
}
/**Turbo Speed**/
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_TURBO_SPEED)){
if(L_WAS_PRESSED || R_IS_PRESSED)SET_CAR_FORWARD_SPEED(Personal_Vehicle, ( L_WAS_PRESSED ? (speed / 3) : (speed * 1.0001)) );
}
/**Super Bike**/
bool on_bike = IS_CHAR_ON_ANY_BIKE(pPlayer);
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_SUPER_BIKE) && on_bike){
if(R_IS_PRESSED || L_IS_PRESSED)SET_CAR_FORWARD_SPEED(Personal_Vehicle, (R_IS_PRESSED ? (speed * 1.01) : (speed / 3)) );
}
/**Spawn Boat in water**///Freezes
bool in_boat = IS_CHAR_IN_ANY_BOAT(pPlayer);
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_AUTO_BOAT) && !in_boat){
if(IS_CAR_IN_WATER(Personal_Vehicle))MD_VEHICLE_SPAWNER_ON_ID(iPlayer ,MODEL_SQUALO);
}
/**Vehicle Desolidify**/
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY))
{
//if(!Devils_Rapid_Fire_Heli) //i think this what you need buddy??
SET_CAR_COLLISION(Personal_Vehicle,false);
if(!in_heli) SET_CAR_ON_GROUND_PROPERLY(Personal_Vehicle);
}
/*
else if(!Devils_Rapid_Fire_Heli)
{
SET_CAR_COLLISION(Personal_Vehicle,true); //LOOOOOPED, BAD!
}
*/
/**Vehicle Jump**/
bool vehicle_upright = IS_CAR_UPRIGHT(Personal_Vehicle);
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_JUMP)){ //We need to display a helper for the 2 modes
if(IS_BUTTON_PRESSED(0,BUTTON_X)){
if(in_boat && !in_heli){
if(IS_VEHICLE_ON_ALL_WHEELS(Personal_Vehicle)){
if(on_bike) APPLY_FORCE_TO_CAR(Personal_Vehicle, 0, 0, 0, 510.0 , 0,0,0, 0, 1, 1, 1 );
else APPLY_FORCE_TO_CAR(Personal_Vehicle, 0, 0, 0, 70.0 , 0,0,-70.0, 0, 1, 1, 1 );
}
}
}
else if(IS_BUTTON_PRESSED(0,BUTTON_A))APPLY_FORCE_TO_CAR(Personal_Vehicle, 0, 0, 0, 80, 0, 0, -80, 0, 1, 1, 1);
}
/**Stunt modes**/
if(!in_boat && !in_heli && !on_bike && vehicle_upright){
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_LOWER))
APPLY_FORCE_TO_CAR(Personal_Vehicle,true,0.0,0,-0.2,0.0,0.0,0.0,true,true,true,true);
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_DRIFT))
APPLY_FORCE_TO_CAR(Personal_Vehicle,true,0.0,0,0.13,0.0,0.0,0.0,true,true,true,true);
}
/**Rainbow Vehicle**/
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_RAINBOW)){
int i, col[4];
for(i = 0; i < 4; i++)GENERATE_RANDOM_INT_IN_RANGE(0,133,&col[i]);
CHANGE_CAR_COLOUR(Personal_Vehicle, col[0], col[1]);
SET_EXTRA_CAR_COLOURS(Personal_Vehicle, col[2], col[3]);
}
/**Rotate Vehicle**/
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_ROTATE)){
float h;
GET_CAR_HEADING(Personal_Vehicle,&h);
SET_CAR_HEADING(Personal_Vehicle, (h - 10));
}
/**Lock Modes**/
const int Veh_Autolock = GetByteInSet(WeatherTimeAutoLockByteSet, VEHICLE_AUTOLOCK);
if(Veh_Autolock > 0 && Veh_Autolock < 3) //ON / ON + Unlock for friends
{
#ifdef Premium
if(Veh_Autolock == 2 && speed < 4 && In_Network) //Unlock for friends
{
float check_for_others_distance;
float friend_wants_to_enter_distance;
if(on_bike || IS_THIS_MODEL_A_CAR(model)){
check_for_others_distance = 4.0f;
friend_wants_to_enter_distance = 3.0f;
}
int i,tmp_ped,friends_player_index;
float nx,ny,nz;
bool friend_wants_to_enter_veh = false;
bool can_unlock_for_friend = true;
for(i = 0; i < MAX_PLAYERS; i++)
{
// if(Invalid_Player(i) || !PLAYER_HAS_CHAR(i) || IS_CHAR_IN_CAR(PLAYER_CHAR(i),Personal_Vehicle)) continue; //possibly need if i == iPlayer continue, don't think so though
if(Invalid_Player(i) || !PLAYER_HAS_CHAR(i) || !IS_CHAR_ON_FOOT(PLAYER_CHAR(i))) continue;
//if(!NETWORK_PLAYER_IS_ON_FRIENDS_LIST(i)) continue; //causes frez, probably ran too often/much at once
GET_CHAR_COORDINATES(PLAYER_CHAR(i),&nx,&ny,&nz);
float distance_from_me;
GET_DISTANCE_BETWEEN_COORDS_3D(mx,my,mz,nx,ny,nz,&distance_from_me);
if(distance_from_me < friend_wants_to_enter_distance)
{
if(NETWORK_PLAYER_IS_ON_FRIENDS_LIST(i) || (Is_Developer(i) && i != iPlayer)) //unlock for devs :P //unlocked for seld without iplayer check so hmm..
{
friend_wants_to_enter_veh = true;
friends_player_index = i;
break;
}
}
}
int to_lock_vehicle = false;
if(friend_wants_to_enter_veh)
{
for(i = 0; i < MAX_PLAYERS; i++)
{
if(Invalid_Player(i)) continue; //i == iPlayer important here //using IS_CHAR_IN_CAR instead..
GET_PLAYER_CHAR(i,&tmp_ped);
//if(!DOES_CHAR_EXIST(tmp_ped) || IS_CHAR_IN_CAR(tmp_ped,Personal_Vehicle)) continue; //just safety
if(!DOES_CHAR_EXIST(tmp_ped) || !IS_CHAR_ON_FOOT(tmp_ped)) continue;
GET_CHAR_COORDINATES(tmp_ped,&nx,&ny,&nz);
float distance_from_me;
GET_DISTANCE_BETWEEN_COORDS_3D(mx,my,mz,nx,ny,nz,&distance_from_me);
if(distance_from_me < check_for_others_distance && !NETWORK_PLAYER_IS_ON_FRIENDS_LIST(i))
{
can_unlock_for_friend = false;
}
}
if(can_unlock_for_friend && IS_CHARS_VEHICLE_LOCKED(pPlayer) && VEHICLE_HAS_EMPTY_SEATS(Personal_Vehicle))
{
char* buffer[32];
Strcpy(buffer, "~b~MD: ~s~Your ");
Strcat(buffer, GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(model)));
Strcat(buffer, " was unlocked for ~COL_NET_");
itoa( (friends_player_index + 1), buffer);
Strcat(buffer, "~");
Strcat(buffer, GET_PLAYER_NAME(friends_player_index));
Strcat(buffer, "~s~.");
Alert(buffer, false);
SET_VEHICLE_LOCKED_WITHOUT_NET_CONTROL_REQUEST(Personal_Vehicle, false);
}
else if(!IS_CHARS_VEHICLE_LOCKED(pPlayer))
{
int z;
if(on_bike || IS_THIS_MODEL_A_CAR(model))
{
if(!can_unlock_for_friend || !IS_CAR_PASSENGER_SEAT_FREE(Personal_Vehicle, 0)) //bikes passenger seat
{
to_lock_vehicle = true;
}
}
}
}
else //if friend doesn't want to enter veh
{
if(!IS_CHARS_VEHICLE_LOCKED(pPlayer))
{
to_lock_vehicle = true;
}
}
if(to_lock_vehicle && exitingCarAutoLockTick < GetTickCount())
{
SET_VEHICLE_LOCKED_WITHOUT_NET_CONTROL_REQUEST(Personal_Vehicle, VEHICLE_DOOR_LOCKED_FROM_OUTSIDE);
char * buffer[16];
Strcpy(buffer, "~b~MD: ~s~Your "); //12
Strcat(buffer, GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(model))); //13 to be safe
Strcat(buffer, " was auto-locked."); //17
Alert(buffer, false);
exitingCarAutoLockTick = 0;
}
else if(IS_BUTTON_JUST_PRESSED(0,BUTTON_Y)) //need exitingCarAutoLockTick;
{
exitingCarAutoLockTick = (GetTickCount() + 2500);
SET_VEHICLE_LOCKED_WITHOUT_NET_CONTROL_REQUEST(Personal_Vehicle, false);
TASK_LEAVE_CAR(pPlayer, Personal_Vehicle);
char * buffer[16];
Strcpy(buffer, "~b~MD: ~s~Your "); //12
Strcat(buffer, GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(model))); //13 to be safe
Strcat(buffer, " was un-locked."); //17
Alert(buffer, false);
//REMOVE_CHAR_FROM_CAR_MAINTAIN_POSITION(pPlayer,Personal_Vehicle); //TEST THIS! - Nathan --> this works!
Alert(buffer,false);
}
}
#endif
#ifdef Premium
else if(Veh_Autolock == 1) //On
#else
if(Veh_Autolock == 1)
#endif
{
if(!IS_CHARS_VEHICLE_LOCKED(pPlayer) && exitingCarAutoLockTick < GetTickCount())
{
SET_VEHICLE_LOCKED_WITHOUT_NET_CONTROL_REQUEST(Personal_Vehicle, true);
char * buffer[16];
Strcpy(buffer, "~b~MD: ~s~Your "); //12
Strcat(buffer, GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(model))); //13 to be safe
Strcat(buffer, " was auto-locked."); //17
Alert(buffer, false);
exitingCarAutoLockTick = 0;
}
else if(IS_BUTTON_JUST_PRESSED(0,BUTTON_Y))
{
exitingCarAutoLockTick = (GetTickCount() + 2500);
SET_VEHICLE_LOCKED_WITHOUT_NET_CONTROL_REQUEST(Personal_Vehicle, false);
TASK_LEAVE_CAR(pPlayer, Personal_Vehicle);
char * buffer[16];
Strcpy(buffer, "~b~MD: ~s~Your "); //12
Strcat(buffer, GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(model))); //13 to be safe
Strcat(buffer, " was un-locked."); //17
Alert(buffer, false);
//REMOVE_CHAR_FROM_CAR_MAINTAIN_POSITION(pPlayer,Personal_Vehicle); //TEST THIS! - Nathan --> this works!
Alert(buffer,false);
}
}
/*
if(Item_NumValue == 12) //Auto-lock vehicle
char* autolockstring[4];
autolockstring[0] = "< ERROR >";
autolockstring[1] = "< On >";
autolockstring[2] = "< On + Unlock for friends >";
autolockstring[3] = "< Off >";
int Veh_Autolock = 3; //this is in vars, 3 = disabled
*/
}
}
}
else
{
if(DOES_VEHICLE_EXIST(Personal_Vehicle))
{
Personal_Vehicle = 0; //no longer exists so code won't run (DOES_VEHICLE_EXIST
}
}
}

View File

@@ -0,0 +1,393 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
/**Devil is rethinking this!**/
//int rapidweapon;
//bool DevilsRapidFire;
void MC_Weapon_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);
//!**********************/
item_highlighted = 6;
MENU_SUB_HEADER = "Weapons Option";
NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP();
Add_JumpOver("~BLIP_94~ MD W E A P O N S ~BLIP_94~"); //5
AddFunction_Value_CB("All",5); //6 // Carry All Weapons (You) / Poor Weapons / Advanced Weapons / Remove
AddFunction_Value_CB("Melee",5); //7 // List Poor weapons + Remove
AddFunction_Value_CB("Throw",3); //8
AddFunction_Value_CB("Poor",7); //9 // List Advanced weapons + Remove
AddFunction_Value_CB("Advanced",7); //10 // List Explosive Third Party weapons + Remove
AddFunction_Value_CB("TBoGT",7); //11
AddFunction_Value_CB("Special",14); //12
AddFunction_Value("Vehicle",10); //13 // List Vehicle related Third Party weapons + Remove !!NO NETPLAYERS
Add_JumpOver("~BLIP_94~ O P T I O N S ~BLIP_94~"); //14
AddBool("Auto Aim (You) ",GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM)); //15
AddBool("Rapid Fire (You)",GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_RAPID_FIRE)); //16
AddBool("Unlimited Clip (You)", GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_INFINITE_AMMO)); //17
return;
}
void REMOVE_ALL_WEAPONS_FROM_NETPLAYER(const int Player_ID){ // Here we will from now on ALWAYS use ID
//!**Player Char Check**//
Ped Player_PED;
if(!PLAYER_HAS_CHAR(Player_ID)){
Alert_Abort(Error_Char_Missing,false);
return;
}
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
//!**********************/
REMOVE_ALL_CHAR_WEAPONS(Player_PED);
WAIT(5);
}
void MD_All_Weapon_Strings_Action(const int Player_ID){//OK
//!**Player Char Check**//
Ped Player_PED;
if(!PLAYER_HAS_CHAR(Player_ID)){
Alert_Abort(Error_Char_Missing,false);
return;
}
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
//!**********************/
if(menu_item[SelectedItem].num_val == 1){
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_CARRY_ALL_WEAPONS);
Alert_Two("~b~MD: ~s~Carry All Weapons ~y~(You only!)", GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_CARRY_ALL_WEAPONS) ? PrintON : PrintOFF ,false);
}
else if(menu_item[SelectedItem].num_val == 2){
REMOVE_ALL_CHAR_WEAPONS(Player_PED);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_DEAGLE,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_GRENADE,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_RLAUNCHER,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_MP5,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_M4,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_BARETTA,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_SNIPERRIFLE,AMMO_MAX,false);//
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_KNIFE,1,false);
}
else if(menu_item[SelectedItem].num_val == 3){//Poor
REMOVE_ALL_CHAR_WEAPONS(Player_PED);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_PISTOL,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_MOLOTOV,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_RLAUNCHER,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_MICRO_UZI,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_AK47,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_SHOTGUN,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_M40A1,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_KNIFE,1,false);
}
else if(menu_item[SelectedItem].num_val == 4){//Ballad
REMOVE_ALL_CHAR_WEAPONS(Player_PED);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_9,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_10,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_13,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_14,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_15,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_1,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_16,AMMO_MAX,false);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_KNIFE,1,false);
}
else if(menu_item[SelectedItem].num_val == 5)REMOVE_ALL_CHAR_WEAPONS(Player_PED);
}
void MD_Melee_Weapon_Strings_Action(const int Player_ID){
//!**Player Char Check**//
Ped Player_PED;
if(!PLAYER_HAS_CHAR(Player_ID)){
Alert_Abort(Error_Char_Missing,false);
return;
}
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
//!**********************/
if(menu_item[SelectedItem].num_val > 1 && menu_item[SelectedItem].num_val < 5 )REMOVE_ALL_CHAR_WEAPONS(Player_PED);
if(menu_item[SelectedItem].num_val == 1)REMOVE_ALL_CHAR_WEAPONS(Player_PED);
else if(menu_item[SelectedItem].num_val == 2)GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_KNIFE,1,false);
else if(menu_item[SelectedItem].num_val == 3)GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_BASEBALLBAT,1,false);
else if(menu_item[SelectedItem].num_val == 4)GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_POOLCUE,1,false);
else if(menu_item[SelectedItem].num_val == 5)REMOVE_ALL_CHAR_WEAPONS(Player_PED);
}
void MD_Thrown_Weapon_Strings_Action(const int Player_ID){
//!**Player Char Check**//
Ped Player_PED;
if(!PLAYER_HAS_CHAR(Player_ID)){
Alert_Abort(Error_Char_Missing,false);
return;
}
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
//!**********************/
if(menu_item[SelectedItem].num_val > 3) REMOVE_ALL_CHAR_WEAPONS(Player_PED);
if(menu_item[SelectedItem].num_val == 1) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_MOLOTOV,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 2) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_GRENADE,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 3) REMOVE_ALL_CHAR_WEAPONS(Player_PED);
}
void MD_Poor_Weapon_Strings_Action(const int Player_ID){
//!**Player Char Check**//
Ped Player_PED;
if(!PLAYER_HAS_CHAR(Player_ID)){
Alert_Abort(Error_Char_Missing,false);
return;
}
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
//!**********************/
if(menu_item[SelectedItem].num_val < 7 ) REMOVE_ALL_CHAR_WEAPONS(Player_PED);
if(menu_item[SelectedItem].num_val == 1) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_PISTOL,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 2) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_RLAUNCHER,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 3) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_MICRO_UZI,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 4) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_AK47,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 5) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_SHOTGUN,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 6) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_M40A1,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 7) REMOVE_ALL_CHAR_WEAPONS(Player_PED);
}
void MD_Advanced_Weapon_Strings_Action(const int Player_ID){
//!**Player Char Check**//
Ped Player_PED;
if(!PLAYER_HAS_CHAR(Player_ID)){
Alert_Abort(Error_Char_Missing,false);
return;
}
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
//!**********************/
if(menu_item[SelectedItem].num_val < 7 )REMOVE_ALL_CHAR_WEAPONS(Player_PED);
if(menu_item[SelectedItem].num_val == 1) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_DEAGLE,AMMO_MAX,false);//
else if(menu_item[SelectedItem].num_val == 2) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_RLAUNCHER,AMMO_MAX,false);//
else if(menu_item[SelectedItem].num_val == 3) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_MP5,AMMO_MAX,false);//
else if(menu_item[SelectedItem].num_val == 4) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_M4,AMMO_MAX,false);//
else if(menu_item[SelectedItem].num_val == 5) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_BARETTA,AMMO_MAX,false);//
else if(menu_item[SelectedItem].num_val == 6) GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_SNIPERRIFLE,AMMO_MAX,false);//
else if(menu_item[SelectedItem].num_val == 7) REMOVE_ALL_CHAR_WEAPONS(Player_PED);
}
void MD_Special_Weapon_Strings_Action(const int Player_ID){
//!**Player Char Check**//
Ped Player_PED;
if(!PLAYER_HAS_CHAR(Player_ID)){
Alert_Abort(Error_Char_Missing,false);
return;
}
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
//!**********************/
char * buffer[32];
Strcpy(buffer, "~b~MD: ");
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS!
Strcat(buffer, "~s~"); //41
if(menu_item[SelectedItem].num_val == 1){//Weapon_String[1] = "~BLIP_52~ Nailgun";
delete_objects_on_ped(Player_PED);
REMOVE_ALL_CHAR_WEAPONS(Player_PED);;
attach_object_to_player(Player_PED, -1576276196,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,25);
GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_MICRO_UZI,AMMO_MAX,false);
Strcat(buffer, DOES_OBJECT_EXIST(Attach_object[25]) ? " now has" : " no longer has");
Strcat(buffer, " a nailgun as weapon.");
Alert(buffer,false);
}
else if(menu_item[SelectedItem].num_val == 2){//Rocket Weapon
delete_objects_on_ped(Player_PED);
ToggleBit(rocketWeaponsBitSet,Player_ID);
Strcat(buffer, GetBit(rocketWeaponsBitSet,Player_ID) ? " now has" : " no longer has");
Strcat(buffer, " rocket weapons.");
Alert(buffer,false);
}
else if(menu_item[SelectedItem].num_val == 3){
TOGGLE_SCRIPT("aimbot");
}
else if(menu_item[SelectedItem].num_val == 4){
TOGGLE_SCRIPT("m97_grav");
}
else if(menu_item[SelectedItem].num_val == 5){
TOGGLE_SCRIPT("m97_taser");
}
else if(menu_item[SelectedItem].num_val == 6){
TOGGLE_SCRIPT("rocketdeagle");
}
else if(menu_item[SelectedItem].num_val == 7){
TOGGLE_SCRIPT("drs01");
}
else if(menu_item[SelectedItem].num_val == 8){
TOGGLE_SCRIPT("buffy_force");
}
else if(menu_item[SelectedItem].num_val == 9){
TOGGLE_SCRIPT("ForceFieldv25");
}
else if(menu_item[SelectedItem].num_val == 10){
TOGGLE_SCRIPT("buffy_mp5");
}
else if(menu_item[SelectedItem].num_val == 11){
TOGGLE_SCRIPT("rob_cl");
}
else if(menu_item[SelectedItem].num_val == 12){
TOGGLE_SCRIPT("buffy_launcher");
}
else if(menu_item[SelectedItem].num_val == 13){
TOGGLE_SCRIPT("rob_carmod");
}
else if(menu_item[SelectedItem].num_val == 14){//Weapon_String[6] = "~BLIP_49~ Remove Player Weapons";
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("aimbot");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("m97_grav");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("m97_taser");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("rocketdeagle");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("drs01");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("buffy_force");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("ForceFieldv25");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("buffy_mp5");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("rob_cl");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("buffy_launcher");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("rob_carmod");
REMOVE_ALL_CHAR_WEAPONS(Player_PED);
Strcat(buffer, (" no longer has") );
Strcat(buffer, " weapons.");
Alert(buffer,false);
}
}
void MD_Vehicle_Weapon_Strings_Action(const int Player_ID){ // Need to do this still
//!**Player Char Check**//
Ped Player_PED;
if(!PLAYER_HAS_CHAR(Player_ID)){
Alert_Abort(Error_Char_Missing,false);
return;
}
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
//!**********************/
if(menu_item[SelectedItem].num_val == 1){
TOGGLE_SCRIPT("weap10");
}
else if(menu_item[SelectedItem].num_val == 2){
TOGGLE_SCRIPT("weap12");
}
else if(menu_item[SelectedItem].num_val == 3){
TOGGLE_SCRIPT("Sam-turrets");//Shoot explosive Vehicles
}
else if(menu_item[SelectedItem].num_val == 4){
TOGGLE_SCRIPT("rev_xml_heli");//Ram
}
else if(menu_item[SelectedItem].num_val == 5){
TOGGLE_SCRIPT("flameheli");//Ram 2
}
else if(menu_item[SelectedItem].num_val == 6){
TOGGLE_SCRIPT("weap2");//Ram 3
}
else if(menu_item[SelectedItem].num_val == 7){
TOGGLE_SCRIPT("weap3");
}
else if(menu_item[SelectedItem].num_val == 8){
TOGGLE_SCRIPT("weap13");
}
else if(menu_item[SelectedItem].num_val == 9){
TOGGLE_SCRIPT("AdvancedHeliRounds");
}
else if(menu_item[SelectedItem].num_val == 10){
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("weap10");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("weap12");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("Sam-turrets");//Shoot explosive Vehicles
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("rev_xml_heli");//Ram
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("flameheli");//Ram 2
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("weap2");//Ram 3
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("weap3");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("weap13");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("AdvancedHeliRounds");
}
}
void MD_TBOGT_Weapon_Strings_Action(const int Player_ID){
//!**Player Char Check**//
Ped Player_PED;
if(!PLAYER_HAS_CHAR(Player_ID)){
Alert_Abort(Error_Char_Missing,false);
return;
}
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
//!**********************/
if(Episode == 2){
REMOVE_ALL_CHAR_WEAPONS(Player_PED);;
if(menu_item[SelectedItem].num_val == 1)GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_13,AMMO_MAX,false);
if(menu_item[SelectedItem].num_val == 2)GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_1,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 3)GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_16,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 4)GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_9,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 5)GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_10,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 6)GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_14,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 7)GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_15,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 8)GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_21,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 9)GIVE_WEAPON_TO_CHAR(Player_PED,WEAPON_EPISODIC_12,AMMO_MAX,false);
else if(menu_item[SelectedItem].num_val == 10)REMOVE_ALL_CHAR_WEAPONS(Player_PED);
}
else Alert(Error_TBOGT,false);
}
void MC_Weapon_Action(const int Player_ID){
//!**Player Char Check**//
Ped Player_PED;
if(!PLAYER_HAS_CHAR(Player_ID)){
Alert_Abort(Error_Char_Missing,false);
return;
}
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
//!**********************/
if(SelectedItem == 1)MD_Spy_Strings_Action(Player_ID);
else if(SelectedItem == 2)Universal_Delete(Delete_Distance_Radius, menu_item[SelectedItem].num_val, true);
else if(SelectedItem == 3)MD_PlayerOption_Strings_Action();
else if(SelectedItem == 4)MD_QuickTeleport_Strings_Action(Player_ID);
else if(SelectedItem == 6)MD_All_Weapon_Strings_Action(Player_ID);
else if(SelectedItem == 7)MD_Melee_Weapon_Strings_Action(Player_ID);
else if(SelectedItem == 8)MD_Thrown_Weapon_Strings_Action(Player_ID);
else if(SelectedItem == 9)MD_Poor_Weapon_Strings_Action(Player_ID);
else if(SelectedItem == 10)MD_Advanced_Weapon_Strings_Action(Player_ID);
else if(SelectedItem == 11)MD_TBOGT_Weapon_Strings_Action(Player_ID);
else if(SelectedItem == 12)MD_Special_Weapon_Strings_Action(Player_ID);
else if(SelectedItem == 13)MD_Vehicle_Weapon_Strings_Action(Player_ID);
else if(SelectedItem == 15){
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM);
menu_item[SelectedItem].extra_val = GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM);
}
else if(SelectedItem == 16){
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_RAPID_FIRE);
if(!HAS_CHAR_GOT_WEAPON(pPlayer,WEAPON_ARMOUR))GIVE_WEAPON_TO_CHAR(pPlayer,WEAPON_PISTOL,AMMO_MAX,false);
//GET_CURRENT_CHAR_WEAPON(pPlayer, &rapidweapon);//TESTING
menu_item[SelectedItem].extra_val = GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_RAPID_FIRE);
}
else if(SelectedItem == 17){
ToggleBit(pPlayerOptionsBitSet, PLAYER_OPTION_INFINITE_AMMO);
menu_item[SelectedItem].extra_val = GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_INFINITE_AMMO);
}
}
void MC_Weapon_Loop(void){
if(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_CARRY_ALL_WEAPONS)) MD_CarryAllweapons();
if(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM)){
DISABLE_PLAYER_LOCKON(iPlayer, !GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM));
ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(iPlayer, GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM));
ALLOW_LOCKON_TO_RANDOM_PEDS(iPlayer, GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM));
}
if(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_RAPID_FIRE)){ // Need to redo this to non timed rapid fire
int PlayerWep;
SET_PLAYER_FAST_RELOAD(iPlayer, true);
ENABLE_MAX_AMMO_CAP(false);
GET_CURRENT_CHAR_WEAPON(pPlayer, &PlayerWep);
if(IS_BUTTON_PRESSED(0,BUTTON_R) && PlayerWep != WEAPON_UNARMED) SET_CHAR_ALL_ANIMS_SPEED(pPlayer, 40);
else SET_CHAR_ALL_ANIMS_SPEED(pPlayer, 1);
}
if(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_INFINITE_AMMO)){
if(IS_CHAR_SHOOTING(pPlayer)){
uint weapon,Unlimited_Ammunition;
GET_CURRENT_CHAR_WEAPON(pPlayer,&weapon);
if(weapon != WEAPON_GRENADE && weapon != WEAPON_MOLOTOV){
GET_MAX_AMMO_IN_CLIP(pPlayer,weapon,&Unlimited_Ammunition);
SET_AMMO_IN_CLIP(pPlayer,weapon,Unlimited_Ammunition);
}
}
}
}

View File

@@ -0,0 +1,196 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MC_Weather_Setup(void)
{
int current_hour, current_minute, current_weather;
GET_TIME_OF_DAY(&current_hour,&current_minute);
GET_CURRENT_WEATHER(&current_weather);
MENU_SUB_HEADER = "Weather & Time Options";
AddFunction("~BLIP_52~ Sunny"); //1
AddFunction_Num("~BLIP_52~ Extra Sunny",2); //2
AddFunction_Num("~BLIP_52~ Sunny Windy",2); //3
AddFunction("~BLIP_52~ Drizzle"); //4
AddFunction("~BLIP_52~ Foggy"); //5
AddFunction("~BLIP_52~ Raining"); //6
AddFunction("~BLIP_52~ Lightning"); //7
AddFunction("~BLIP_52~ Cloudy"); //8
AddFunction_Num("~BLIP_52~ Set Time Hour",23); //9
AddFunction_Num("~BLIP_52~ Set Time Minute",59); //10
AddBool( (IS_THIS_MACHINE_THE_SERVER() && In_Network) ? "~BLIP_68~ Cycle Time" : "~BLIP_68~ Cycle Time (If Host Others See)",GetBit(MD_Misc_OptionsBitSet, MD_MISC_TIME_CYCLE)); //11
AddBool("~BLIP_68~ Freeze Time", (GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR) != 25)); //12
AddBool("~BLIP_68~ Freeze Weather", (GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_WEATHER) != 50)); //13
AddBool( (IS_THIS_MACHINE_THE_SERVER() && In_Network) ? "~BLIP_68~ Fancy Up Graphics" : "~BLIP_68~ Fancy up Graphics (If Host Others See)", (current_weather == WEATHER_EXTRA_SUNNY_2 && current_hour == 7 && (current_minute == 1 || current_minute == 0)) );
AddBool( (IS_THIS_MACHINE_THE_SERVER() && In_Network) ? "~BLIP_68~ Glowing Blue Map" : "~BLIP_68~ Glowing Blue Map (If Host Others See)",(current_weather == WEATHER_EXTRA_SUNNY_2 && current_hour == 22 && (current_minute == 1 || current_minute == 0)) );
menu_item[9].num_val = current_hour;
menu_item[10].num_val = current_minute;
//could even make weather highlight as bool without any var usage lol - Nathan
}
void MC_Weather_Action(void){
int current_hour, current_minute;
GET_TIME_OF_DAY(&current_hour,&current_minute);
if(SelectedItem == 1) MD_SET_WEATHER(WEATHER_SUNNY);
else if(SelectedItem == 2){
MD_SET_WEATHER( menu_item[SelectedItem].num_val == 1 ? WEATHER_EXTRA_SUNNY : WEATHER_EXTRA_SUNNY_2);
}
else if(SelectedItem == 3){
MD_SET_WEATHER( menu_item[SelectedItem].num_val == 1 ? WEATHER_SUNNY_WINDY : WEATHER_SUNNY_WINDY_2);
}
else if(SelectedItem == 4)MD_SET_WEATHER(WEATHER_DRIZZLE);
else if(SelectedItem == 5)MD_SET_WEATHER(WEATHER_FOGGY);
else if(SelectedItem == 6)MD_SET_WEATHER(WEATHER_RAINING);
else if(SelectedItem == 7)MD_SET_WEATHER(WEATHER_LIGHTNING);
else if(SelectedItem == 8)MD_SET_WEATHER(WEATHER_CLOUDY);
else if(SelectedItem == 9) //Set time hour
{
MD_SET_TIME(menu_item[SelectedItem].num_val, current_minute);
}
else if(SelectedItem == 10) //set time minute
{
MD_SET_TIME( current_hour, menu_item[SelectedItem].num_val);
}
else if(SelectedItem == 11){
ToggleBit(MD_Misc_OptionsBitSet, MD_MISC_TIME_CYCLE);
menu_item[SelectedItem].extra_val = GetBit(MD_Misc_OptionsBitSet, MD_MISC_TIME_CYCLE);
// Alert_Two("~BLIP_76~ ~c~Time Cycle", freeze_time ? PrintON : PrintOFF ,false);
}
else if(SelectedItem == 12){
if(GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR) == 25)
{
int hour,minute;
GET_TIME_OF_DAY(&hour,&minute);
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR, hour);
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_MINUTE, minute);
}
else
{
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR, 25);
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_MINUTE, 0);
}
menu_item[SelectedItem].extra_val = (GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR) != 25);
}
else if(SelectedItem == 13) //Freeze Weather
{
if(GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_WEATHER) == 50)
{
int weather;
GET_CURRENT_WEATHER(&weather);
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_WEATHER, weather);
}
else
{
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_WEATHER, 50);
}
menu_item[SelectedItem].extra_val = (GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_WEATHER) != 50); //if it's not -1 it's enabled - Nathan
}
else if(SelectedItem == 14) //Fancy up graphics
{
#ifdef Premium
bool enabled = ( GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_WEATHER) == WEATHER_EXTRA_SUNNY_2 && GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR) == 7 && (GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_MINUTE) == 1 || GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_MINUTE) == 0));
if(enabled)
{
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_WEATHER, 50);
menu_item[13].extra_val = false; //show user freeze weather OFF
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR, 25);
menu_item[12].extra_val = false; //show user freeze time OFF
MD_SET_TIME(9,00);
MD_SET_WEATHER(WEATHER_SUNNY); //to snap out of fancy graphics
menu_item[SelectedItem].extra_val = false;
}
else
{
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_WEATHER, WEATHER_EXTRA_SUNNY_2);
menu_item[13].extra_val = true; //Show user freeze weather highlighted ON
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR, 7);
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_MINUTE, 0);
menu_item[12].extra_val = true; //show user freeze time highlighted ON
menu_item[15].extra_val = false; //show user blue glow map off
menu_item[SelectedItem].extra_val = true; //Fancy graphics on!
//thanks go to Unix Monsta
}
#else
Alert(PREMIUM_ONLY_STRING,true);
#endif
}
else if(SelectedItem == 15) //Blue glow map
{
#ifdef Premium
bool enabled = (GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_WEATHER) == WEATHER_EXTRA_SUNNY_2 && GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR) == 22 && (GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_MINUTE) == 1 || GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_MINUTE) == 0));
if(enabled)
{
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_WEATHER, 50);
menu_item[13].extra_val = false; //show user freeze weather OFF
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR, 25);
menu_item[12].extra_val = false; //show user freeze time OFF
MD_SET_TIME(9,00);
MD_SET_WEATHER(WEATHER_SUNNY); //to snap out of fancy graphics
menu_item[SelectedItem].extra_val = false;
}
else
{
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_WEATHER, WEATHER_EXTRA_SUNNY_2);
menu_item[13].extra_val = true; //Show user freeze weather highlighted ON
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR, 22);
SetByteSet(&WeatherTimeAutoLockByteSet, FREEZE_TIME_MINUTE, 0);
menu_item[14].extra_val = false; //Show user fancy up graphics OFF
menu_item[12].extra_val = true; //show user freeze time ON
menu_item[SelectedItem].extra_val = true; //Fancy graphics on!
}
#else
Alert(PREMIUM_ONLY_STRING,true);
#endif
}
}
void MC_Weather_Loop(void) //Nathan's! Do not touch! Hands off buddy! hahaha :P
{
int frez_houa = GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_HOUR);
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_TIME_CYCLE))
{
int hour,minute;
GET_TIME_OF_DAY(&hour,&minute);
if(minute == 59 && hour != 23)
{
hour++; //set hour to increase
minute = 0; //set minute to 0
}
if(hour < 24 && minute < 59)
{
minute++; //work when on final hour
}
else if(hour == 23 && minute == 59) //if at the end set to 0
{
hour = 0;
minute = 0;
}
SET_TIME_OF_DAY(hour,minute);
}
else if(frez_houa != 25) //doesn't run of cycle time is on..
{
SET_TIME_OF_DAY(frez_houa,GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_TIME_MINUTE));
}
int frez_weatha = GetByteInSet(WeatherTimeAutoLockByteSet, FREEZE_WEATHER);
if(frez_weatha != 50)
{
FORCE_WEATHER_NOW(frez_weatha);
}
}

View File

@@ -0,0 +1,525 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV NATHAN VII
*/
#pragma once
//We also need a function to make bodyguards drive cars
//extern int FIND_MAX_NUMBER_OF_GROUP_MEMBERS(void);
//extern void GET_GROUP_SIZE(Group group, uint *pStartIndex, uint *pCount);
//extern void GET_NTH_GROUP_MEMBER(int group, int n, Ped *ped);
//extern void GET_NUMBER_OF_FOLLOWERS(Ped ped, int *followers);
void Clear_All_BGuards(void){
if(!Guard_Check()) return;
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
Run_Ptfx(BG_ped[i]);
FORCE_CHAR_TO_DROP_WEAPON(BG_ped[i]);
delete_objects_on_ped(BG_ped[i]);
DELETE_CHAR(&BG_ped[i]);
MARK_CHAR_AS_NO_LONGER_NEEDED(&BG_ped[i]);
}
Alert("~b~MD: ~s~All bodyguards cleared.",false);
}
void Attach_Objects_BGuards(uint model,int pedbone, float obj_x, float obj_y, float obj_z, float obj_rx, float obj_ry, float obj_rz, int id){
if (IS_MODEL_IN_CDIMAGE(model)){
if(!Guard_Check()) return;
REQUEST_MODEL(model);
while(!HAS_MODEL_LOADED(model)) WAIT(0);
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
CREATE_OBJECT(model,0.0,0.0,0.0,&Attach_object[id],true);
Run_Ptfx(BG_ped[i]);
MARK_MODEL_AS_NO_LONGER_NEEDED(model);
FREEZE_OBJECT_POSITION(Attach_object[id], false);
SET_OBJECT_VISIBLE(Attach_object[id], true);
SET_OBJECT_LIGHTS(Attach_object[id], true);
SET_OBJECT_INVINCIBLE(Attach_object[id], true);
SET_OBJECT_COLLISION(Attach_object[id], false);
SET_OBJECT_DYNAMIC(Attach_object[id],true);
while (!DOES_OBJECT_EXIST(Attach_object[id]))WAIT(0);
block_net_control_of_object(Attach_object[id]);
ATTACH_OBJECT_TO_PED(Attach_object[id],BG_ped[i],pedbone, obj_x, obj_y, obj_z, obj_rx, obj_ry, obj_rz,false);
}
Alert("~b~MD: ~s~Attached Selected Object to Guards",false);
}
}
void Teleport_BGuards_Coord(float x, float y, float z){
if(!Guard_Check()) return;
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
int BG_id;
GET_NETWORK_ID_FROM_PED(BG_ped[i], &BG_id);
if(network_control(BG_id)){
Run_Ptfx(BG_ped[i]);
if(IS_CHAR_IN_ANY_CAR(BG_ped[i]))
WARP_CHAR_FROM_CAR_TO_COORD(BG_ped[i],x,y,z);
else
SET_CHAR_COORDINATES(BG_ped[i], x, y, z);
}
}
Alert("~b~MD: ~s~Bodyguards teleported.",false);
}
void Spawn_BGuards(const int playersPed, const int model, const int weapon){
if(DOES_CHAR_EXIST(playersPed)){
fix_group_for_guards();
if(Number_of_BGuards() > (MAX_SPAWNGUARDS - 1)){
Alert("~b~MD: ~s~Maximum bodyguards have been spawned!",false);
return;
}
REQUEST_MODEL(model);
while(!HAS_MODEL_LOADED(model)) WAIT(0);
int i,rand;
float x,y,z;
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(DOES_CHAR_EXIST(BG_ped[i])) continue;
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(playersPed, 0, 2, 0, &x, &y, &z);
GENERATE_RANDOM_INT_IN_RANGE(0,14,&rand);
// RELATIONSHIP_GROUP_MISSION_4, //26 //this must be whai
//CREATE_CHAR(26, model, x + rand,y + rand,z, &BG_ped[i], true);
CREATE_CHAR(RELATIONSHIP_GROUP_MISSION_1, model, x + rand,y + rand,z, &BG_ped[i], true);
MARK_MODEL_AS_NO_LONGER_NEEDED(model);
Run_Ptfx(BG_ped[i]);
if(In_Network){
int NetID;
GET_NETWORK_ID_FROM_PED(BG_ped[i],&NetID);
SET_NETWORK_ID_CAN_MIGRATE(NetID,false);
}
SET_CHAR_RANDOM_COMPONENT_VARIATION(BG_ped[i]);
SET_GROUP_MEMBER(BG_Group, BG_ped[i]);
SET_CHAR_NEVER_LEAVES_GROUP(BG_ped[i], true);
SET_PLAYER_GROUP_TO_FOLLOW_ALWAYS(iPlayer,true);
SET_GROUP_SEPARATION_RANGE(BG_Group,1000);
//SET_CHAR_RELATIONSHIP_GROUP(BG_ped[i], RELATIONSHIP_GROUP_PLAYER); //yes leave them as generic singleplayer blah, good
SET_CHAR_RELATIONSHIP(BG_ped[i], RELATIONSHIP_RESPECT, PLAYERS_RELATIONSHIP_GROUP(iPlayer)); //tell them to respect us (the user), Good!
//SET_CHAR_RELATIONSHIP(BG_ped[i], RELATIONSHIP_RESPECT, RELATIONSHIP_GROUP_PLAYER);
SET_CHAR_ACCURACY(BG_ped[i], 500);
SET_SENSE_RANGE(BG_ped[i], 1000.0);
SET_PED_GENERATES_DEAD_BODY_EVENTS(BG_ped[i], true);
SET_CHAR_SHOOT_RATE(BG_ped[i], 200);
SET_CHAR_WILL_USE_COVER(BG_ped[i], true);
SET_CHAR_WILL_DO_DRIVEBYS(BG_ped[i], true);
SET_CHAR_SIGNAL_AFTER_KILL(BG_ped[i], true);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(BG_ped[i], true);
SET_CHAR_WILL_FLY_THROUGH_WINDSCREEN(BG_ped[i], false);
SET_CHAR_INVINCIBLE(BG_ped[i], true); ////////////////
SET_CHAR_PROOFS(BG_ped[i], true, true, true, true, true);
SET_CHAR_PROVIDE_COVERING_FIRE(BG_ped[i], true);
SET_CHAR_CANT_BE_DRAGGED_OUT(BG_ped[i], true);
SET_CHAR_STAY_IN_CAR_WHEN_JACKED(BG_ped[i], true);
SET_PED_DONT_DO_EVASIVE_DIVES(BG_ped[i], false);
SET_PED_PATH_MAY_DROP_FROM_HEIGHT(BG_ped[i], true);
SET_PED_PATH_MAY_USE_CLIMBOVERS(BG_ped[i], true);
SET_PED_PATH_MAY_USE_LADDERS(BG_ped[i], true);
SET_ROCKET_LAUNCHER_FREEBIE_IN_HELI(true);
GIVE_PED_HELMET(BG_ped[i]);
SET_CHAR_KEEP_TASK(BG_ped[i], true);
UpdateWeaponOfPed(BG_ped[i], weapon);
SET_CURRENT_CHAR_WEAPON(BG_ped[i], weapon, true);
//GIVE_PED_FAKE_NETWORK_NAME(Ped ped, char *name, int r, int g, int b, int a);
/*
MAX_SPAWNGUARDS 7
*/
/*
WAIT(500);
char* guard_net_names[7];
//guard_net_names[0] = "~b~MD ~s~Bodyguard ~COL_NET_4~1"; //string too long
guard_net_names[0] = "MD Bodyguard 1";
guard_net_names[1] = "MD Bodyguard 2";
guard_net_names[2] = "MD Bodyguard 3";
guard_net_names[3] = "MD Bodyguard 4";
guard_net_names[4] = "MD Bodyguard 5";
guard_net_names[5] = "MD Bodyguard 6";
guard_net_names[6] = "MD Bodyguard 7";
int i, rand[3];
for(i = 0; i < 3; i++)
{
GENERATE_RANDOM_INT_IN_RANGE(0, 255, &rand[i]);
}
GIVE_PED_FAKE_NETWORK_NAME(BG_ped[i], guard_net_names[i], rand[0], rand[1], rand[2], 200);
*/
return; // BG_ped[i];
}
}
else return Alert(Error_No_Player,false);
}
void Ragdoll_BGuards(void){
if(!Guard_Check()) return;
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
Run_Ptfx(BG_ped[i]);
SWITCH_PED_TO_RAGDOLL(BG_ped[i],20000,30000,false,false,false,false);
}
Alert("~b~MD: ~s~Ragdoll'd bodyguards.",false);
}
void Delete_Objects_BGuards(void){
if(!Guard_Check()) return;
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
delete_objects_on_ped(BG_ped[i]); //sorted buddy :D
}
//Universal_Delete( 20,2, false );
Alert("~b~MD: ~s~Objects attached to guards cleared.",false);
}
/**use looped**/
void Attach_BG_To_Vehcile(const int vehicle,float wide1,float wide2,float position_y, float height, float angle){
int i;
int BG_id;
float net_x,net_y,net_z;
Ped NetPlayer_Char;
if(!Guard_Check()) return;
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
if (DOES_VEHICLE_EXIST(vehicle)){
ATTACH_PED_TO_CAR(BG_ped[i], vehicle, 0, wide1, position_y, height, 0.00, angle, 0.00, 1);
}
}
}
void Fire_BG_Weapon(const int player_index){
int i;
int BG_id;
float net_x,net_y,net_z;
Ped NetPlayer_Char;
if(!Guard_Check()) return;
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
GET_PLAYER_CHAR(player_index,&NetPlayer_Char);
if(!DOES_CHAR_EXIST(NetPlayer_Char)) continue;
GetOffset(NetPlayer_Char, 5, &net_x, &net_y, &net_y);
FIRE_PED_WEAPON(BG_ped[i], net_x, net_y, net_z);
}
Alert("~b~MD: ~s~Firing Guards Weapon",false);
}
void weapon_vehicle2(int weapon){
float x ,y ,z ,Offset_x , Offset_y , Offset_z ;
Vehicle Weapon_Vehicle;
if(IS_CHAR_IN_ANY_CAR(pPlayer)){
if(IS_CHAR_IN_ANY_CAR(pPlayer)){
int Veh_Guard;
for(Veh_Guard = 0;Veh_Guard < MAX_SPAWNGUARDS;Veh_Guard++){
Spawn_BGuards(pPlayer, MODEL_M_Y_CLUBFIT,weapon);
}
Attach_BG_To_Vehcile(Personal_Vehicle,0,0,0, 0, 0);
}
}
}
void Strides_BGuards(const char* set){
int i;
int BG_id;
if(!Guard_Check()) return;
REQUEST_ANIMS(set);
while(!HAVE_ANIMS_LOADED(set)) WAIT(0);
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
Run_Ptfx(BG_ped[i]);
GET_NETWORK_ID_FROM_PED(BG_ped[i], &BG_id);
if(network_control(BG_id)){
SET_ANIM_GROUP_FOR_CHAR(BG_ped[i],set);
}
}
Alert("~b~MD: ~s~Bodyguard strides set.",false);
REMOVE_ANIMS(set);
}
void BGuards_Clear_Enemies(void)
{
int i,z;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(i == iPlayer) continue;
for(z = 0; z < MAX_SPAWNGUARDS; z++)
{
if(!DOES_CHAR_EXIST(BG_ped[z])) continue;
CLEAR_ALL_CHAR_RELATIONSHIPS(BG_ped[z], PLAYERS_RELATIONSHIP_GROUP(i));
Alert("~b~MD: ~s~Bodyguards enemies cleared.",false);
}
}
}
/**This works*/
void BGuard_Send_After_PlayerPED(const int player_index, const int player_ped){
if(DOES_CHAR_EXIST(player_ped) || PLAYER_HAS_CHAR(player_index)){
if(!Guard_Check()) return; //just for safety
int i;
for(i = 0;i < MAX_SPAWNGUARDS; i++){
if(!DOES_CHAR_EXIST(BG_ped[i]) || !DOES_CHAR_EXIST(player_ped))continue;
int BG_id;
GET_NETWORK_ID_FROM_PED(BG_ped[i], &BG_id);
if(network_control(BG_id)){
//SET_NETWORK_ID_CAN_MIGRATE(BG_id,true);
SET_CHAR_NEVER_LEAVES_GROUP(BG_ped[i], true);
//SET_PLAYER_GROUP_TO_FOLLOW_ALWAYS(player_index,true); //we need to always follow our group, not other peoples :S
//SET_CHAR_RELATIONSHIP(BG_ped[i], RELATIONSHIP_HATE, RELATIONSHIP_GROUP_PLAYER);
SET_CHAR_RELATIONSHIP(BG_ped[i], RELATIONSHIP_HATE, PLAYERS_RELATIONSHIP_GROUP(player_index));
SET_POLICE_IGNORE_PLAYER(player_index, false);
SET_GROUP_CHAR_DUCKS_WHEN_AIMED_AT(BG_ped[i], true);
SET_CHAR_SHOOT_RATE(BG_ped[i], 1000);
SET_CHAR_ACCURACY(BG_ped[i], 1000);
SET_CHAR_FIRE_DAMAGE_MULTIPLIER(BG_ped[i], 1000);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(BG_ped[i], true);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(BG_ped[i], false);
SET_CHAR_WILL_DO_DRIVEBYS(BG_ped[i], true);
SET_CHAR_WILL_USE_COVER(BG_ped[i], true);
SET_CHAR_GET_OUT_UPSIDE_DOWN_CAR(BG_ped[i],true);
SET_CHAR_BLEEDING(BG_ped[i], true);
//UpdateWeaponOfPed(BG_ped[i], weapon);
//SET_CURRENT_CHAR_WEAPON(BG_ped[i], weapon, true);
TASK_COMBAT(BG_ped[i], player_ped); //probably not needed anymore //TESTING WITH RELATIONSHIP GROUPS ALONE //doesn't seem to work anymore on its own
SET_CHAR_KEEP_TASK(BG_ped[i], true);
//SET_NETWORK_ID_CAN_MIGRATE(BG_id,true);
}
}
char * buffer[16];
Strcpy(buffer, "~b~MD: ~s~Bodyguards sent after "); //41
PLAYER_NAME_WITH_COLOUR(player_index,&buffer);
Strcat(buffer, "."); //63 characters
Alert(buffer, false);
}
else return Alert(Error_No_Player,false);
}
void Set_BGuards_Invincible(const bool invincible) //Nathan new
{
if(!Guard_Check()) return;
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++)
{
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
Run_Ptfx(BG_ped[i]);
SET_CHAR_INVINCIBLE(BG_ped[i], invincible);
SET_CHAR_PROOFS(BG_ped[i], invincible, invincible, invincible, invincible, invincible);
}
Alert( invincible ? "~b~MD: ~s~Bodyguards are now invincible." : "~b~MD: ~s~Bodyguards are no longer invincible.", false);
}
void Kill_BGuards(void) //Temporary fix
{
Set_BGuards_Invincible(false);
}
void Invincibility_BGuards(void) //Temporary fix
{
Set_BGuards_Invincible(true);
}
void Helmets_BGuards(void){
if(!Guard_Check()) return;
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++)
{
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
Run_Ptfx(BG_ped[i]);
GIVE_PED_HELMET(BG_ped[i]);
}
Alert("~b~MD: ~s~Helmets given to bodyguards.",false);
}
void Remove_Helmets_BGuards(void){
if(!Guard_Check()) return;
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++)
{
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
Run_Ptfx(BG_ped[i]);
REMOVE_PED_HELMET(BG_ped[i], true);
}
Alert("~b~MD: ~s~Helmets removed from bodyguards.",false);
}
void Clear_Task_BGuards(void) //Nathan new
{
if(!Guard_Check()) return;
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++)
{
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
Run_Ptfx(BG_ped[i]);
CLEAR_CHAR_TASKS_IMMEDIATELY(BG_ped[i]);
}
Alert("~b~MD: ~s~Bodyguard tasks cleared.",false);
}
void Clear_One_BGuards(void) //Nathan new
{
if(!Guard_Check()) return;
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++)
{
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
Run_Ptfx(BG_ped[i]);
FORCE_CHAR_TO_DROP_WEAPON(BG_ped[i]);
delete_objects_on_ped(BG_ped[i]);
DELETE_CHAR(&BG_ped[i]);
MARK_CHAR_AS_NO_LONGER_NEEDED(&BG_ped[i]);
break;
}
Alert("~b~MD: ~s~One bodyguard was deleted.",false);
}
void Weapon_BGuards(const int weapon) //Nathan new
{
if(!Guard_Check()) return;
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++)
{
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
Run_Ptfx(BG_ped[i]);
REMOVE_ALL_CHAR_WEAPONS(BG_ped[i]);
WAIT(3);
UpdateWeaponOfPed(BG_ped[i], weapon);
SET_CURRENT_CHAR_WEAPON(BG_ped[i],weapon, true);
BGWeapontype_Lastselected = weapon;
}
Alert("~b~MD: ~s~Selected weapon given to bodyguards.",false);
}
void Remove_Weapon_BGuards(void)
{
if(!Guard_Check()) return;
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++)
{
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
Run_Ptfx(BG_ped[i]);
REMOVE_ALL_CHAR_WEAPONS(BG_ped[i]);
}
Alert("~b~MD: ~s~Selected weapon removed from bodyguards.",false);
}
void Teleport_BGuards(void) //temporary fix
{
float x,y,z;
GET_CHAR_COORDINATES(pPlayer,&x,&y,&z);
Teleport_BGuards_Coord(x,y,z);
}
void Teleport_InPlayerVeh_BGuards(const int Player_ID, const int num_guards){ //Nathan new!
if(PLAYER_HAS_CHAR(Player_ID)){
if(!Guard_Check()) return;
Ped Player_PED;
GET_PLAYER_CHAR(Player_ID,&Player_PED);
char * buffer[32];
Strcpy(buffer, "~b~MD: ");
if(!DOES_CHAR_EXIST(Player_PED))
{
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer);
Strcat(buffer, "~s~ does not have a character.");
Alert(buffer,false);
return;
}
const bool in_car = IS_CHAR_IN_ANY_CAR(Player_PED);
if(in_car)
{
int Player_PED_veh;
GET_CAR_CHAR_IS_USING(Player_PED,&Player_PED_veh);
int i,teleported_guards = 0;
for(i = 0; i < MAX_SPAWNGUARDS; i++)
{
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
int z;
for(z = 0; z < 3; z++)
{
if(!IS_CAR_PASSENGER_SEAT_FREE(Player_PED_veh,z) || teleported_guards >= num_guards) continue;
//Run_Ptfx(BG_ped[i]);
WARP_CHAR_INTO_CAR_AS_PASSENGER(BG_ped[i],Player_PED_veh,z);
teleported_guards++;
break;
}
}
Strcat(buffer, "~s~");
itoa(teleported_guards,buffer);
Strcat(buffer, " bodyguards are now in ");
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer);
Strcat(buffer, "'s ~s~");
Strcat(buffer,VEHICLES_MODEL_NAME(Player_PED_veh));
Strcat(buffer, ".");
}
else
{
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer);
Strcat(buffer, " ~s~is not in a vehicle.");
}
Alert(buffer,false);
}
else return Alert(Error_No_Player,false);
}
//!Not used yet in the code
void Teleport_InVeh_BGuards(const int Player_ID){ //Nathan new //should change to playerid
//!**Player Char Check**//
Ped Player_PED;
Vehicle vehicle;
if(!PLAYER_HAS_CHAR(Player_ID))return Alert_Abort(Error_Char_Missing,false);
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
/**Vehicle Checker**/
if(!IS_CHAR_IN_ANY_CAR(Player_PED)){
if(Player_PED == pPlayer)Alert_Abort(Error_Personal_Vehicle,false);
else Alert_Abort(Error_NetPlayer_Vehicle,false);
}
else GET_CAR_CHAR_IS_USING(Player_PED,&vehicle);
if(!Guard_Check()) return;
int i,tmp;
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
int z;
for(z = 0; z < 3; z++){
if(!IS_CAR_PASSENGER_SEAT_FREE(tmp,z)) continue;
WARP_CHAR_INTO_CAR_AS_PASSENGER(BG_ped[i],vehicle,z);
break;
}
}
Alert("~b~MD: ~s~Bodyguards were teleported into a vehicle.",false);
}
void BGuards_Arm_Vehicle(const int Player_ID){
//!**Player Char Check**//
Ped Player_PED;
Vehicle vehicle;
if(!PLAYER_HAS_CHAR(Player_ID))return Alert_Abort(Error_Char_Missing,false);
else GET_PLAYER_CHAR(Player_ID,&Player_PED);
/**Vehicle Checker**/
if(Player_ID == iPlayer){
if(!IS_CHAR_IN_ANY_CAR(Player_PED))MD_VEHICLE_SPAWNER_ON_ID(iPlayer,MODEL_SULTAN);
WAIT(100);
}
if(!IS_CHAR_IN_ANY_CAR(Player_PED)){
if(Player_PED == pPlayer)Alert_Abort(Error_Personal_Vehicle,false);
else Alert_Abort(Error_NetPlayer_Vehicle,false);
}
else GET_CAR_CHAR_IS_USING(Player_PED,&vehicle);
int Free_Seat;
for(Free_Seat = 0; Free_Seat < 3; Free_Seat++){
if(!IS_CAR_PASSENGER_SEAT_FREE(vehicle, Free_Seat)) continue;
if(!DOES_CHAR_EXIST(BG_ped[Free_Seat]))Spawn_BGuards(Player_PED,MODEL_M_M_ARMOURED,WEAPON_MP5);
if(IS_CHAR_IN_CAR(BG_ped[Free_Seat],vehicle)) continue;
WAIT(100);
WARP_CHAR_INTO_CAR_AS_PASSENGER(BG_ped[Free_Seat],vehicle,Free_Seat);
WAIT(100);
SET_CHAR_WILL_LEAVE_CAR_IN_COMBAT(BG_ped[Free_Seat], false);
SET_CHAR_WILL_USE_CARS_IN_COMBAT(BG_ped[Free_Seat], true);
}
}

View File

@@ -0,0 +1,540 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version V13 TRIDENT
* @ DEV TEAM V13 - IIV NATHAN VII & DEVILSDESIGN
*/
//FILE HEAVILY OPTIMISED BY NATHAN -- VERY NICELY DONE!!!
/**
How to use :
A. Create a function for the actionpad spawn // set an object
1. Teleporter Mobile (using the grids + spark = 6 objects!)
2. Teleporter on fixed place (using the grids + spark = 6 objects!)
3. Actionpad doing a function (undefined)
*/
void aPadObjects(void){
create_mobile_mapbase(pPlayer,0x4F3E5681,0.00f, -0.97f,0.00f, 1, 0);//1st object all the others are attached to
create_mobile_mapobj(0x55CA3AE6,1, 0, 0.5483, 3.150,0,0);//SPARK
create_mobile_mapobj(0x4F3E5681,-3.1206, 0, -2.2700, 0,1.575,0);//Grid1
create_mobile_mapobj(0x4F3E5681,3.1206, 0, -2.2700, 0,4.725,0);//grid2
create_mobile_mapobj(0x4F3E5681,0, 4.500, -3.7767, 1.575,0,0);//grid3
}
void aPadPayNSprayObjects(void){
aPadObjects();
create_mobile_mapobj(-41876173,22.5808,-9.3944,-3.500,0,0.0,0);//Pain spray Building
create_mobile_mapobj(-1855959785,-3.0934,-4.725,-4.2500,0,0.0,4.725);//traffic lights
create_mobile_mapobj(-1855959785,3.0934,-4.725,-4.2500,0,0.0,4.725);//traffic lights
create_mobile_mapobj(-1855959785,-3.7792,3.9734,-4.2500,0,0.0,3.150);//traffic lights
create_mobile_mapobj(-1855959785,3.7792,3.9734,-4.2500,0,0.0,0);//traffic lights
}
void aPadVehicleGeneratorObjects(void)
{
aPadObjects();
create_mobile_mapobj(-1855959785,-3.0934,-4.725,-4.2500,0,0.0,4.725);//traffic lights
create_mobile_mapobj(-1855959785,3.0934,-4.725,-4.2500,0,0.0,4.725);//traffic lights
create_mobile_mapobj(-1855959785,-3.7792,3.9734,-4.2500,0,0.0,3.150);//traffic lights
create_mobile_mapobj(-1855959785,3.7792,3.9734,-4.2500,0,0.0,0);//traffic lights
create_mobile_mapobj(-1324211035,0,7.0815,-1.0811+0.970,0,0.0,0);//ramp
}
#pragma once
#define MAX_ACTIONPADS 3
enum ePadActions{
// ACTION_SULTANRS_TELEPORT = 1,
ACTION_VEHICLE_GENERATE = 2,
ACTION_PAYNSPRAY = 3,
ACTION_TELEPORT_COORD_GROUND_X_Y = 4,
};
typedef struct _action_pads{
int actionPadObj;
int action; //0 by default
int veh_model_to_generate; //0 by default so we can generate whatever vehicle easily, one var :P
float TeleportCoordGroundX;
float TeleportCoordGroundY; //X and Y both set to 1337 on startup, when we delete actionpads, we have to set the action pad index's coords to 1337 too for safety..
} action_pads;
action_pads aPads[MAX_ACTIONPADS]; //var usage = (5 x MAX_ACTIONPADS)
/*
void telepad_saved1(void){
create_mobile_mapbase(pPlayer,0xDD28B247,0,4,0, true, false);//blue cube
create_mobile_mapbase(pPlayer,0x4F3E5681,0, -0.970,0, true, false);//1st object all the others are attached to
create_mobile_mapobj(0x55CA3AE6,1, 0, 0.5483, 3.150,0,0);//SPARK
create_mobile_mapobj(0x4F3E5681,-3.1206, 0, -2.2700, 0,1.575,0);//Grid1
create_mobile_mapobj(0x4F3E5681,3.1206, 0, -2.2700, 0,4.725,0);//grid2
create_mobile_mapobj(0x4F3E5681,0, 4.500, -3.7767, 1.575,0,0);//grid3
}
void telepad_saved2(void){
create_mobile_mapbase(pPlayer,0x2718C626,0,4,0, true, false);//red cube
create_mobile_mapbase(pPlayer,0x4F3E5681,0, -0.970,0, true, false);//1st object all the others are attached to
create_mobile_mapobj(0x55CA3AE6,1, 0, 0.5483, 3.150,0,0);//SPARK
create_mobile_mapobj(0x4F3E5681,-3.1206, 0, -2.2700, 0,1.575,0);//Grid1
create_mobile_mapobj(0x4F3E5681,3.1206, 0, -2.2700, 0,4.725,0);//grid2
create_mobile_mapobj(0x4F3E5681,0, 4.500, -3.7767, 1.575,0,0);//grid3
}
*/
//Create_Actionpad(pad_action, &padID);
//use an ePadActions, //set to 0 if not used, // use 1337 if not used //use 1337 if not used
void Create_Actionpad(const int PadAction, const int model_to_generate, float teleportCoordsForPadX, float teleportCoordsForPadY) //Created at pPlayer coords
{
//this drops below pPlayer
int i,free_aPad_Index = -1;
for(i = 0; i < MAX_ACTIONPADS; i++)
{
if(DOES_OBJECT_EXIST(aPads[i].actionPadObj)) continue;
free_aPad_Index = i;
break;
}
char * buffer[32];
if(free_aPad_Index == -1)
{
Strcpy(buffer, "~b~MD: ~s~The limit of ");
itoa( MAX_ACTIONPADS, buffer);
Strcat(buffer, " action pads has been reached.");
Alert(buffer,false);
return;
}
//REQUEST_MODEL(0x4F3E5681); // gamegrid
REQUEST_MODEL(0x4F3E5681);
aPads[free_aPad_Index].action = PadAction;
aPads[free_aPad_Index].veh_model_to_generate = model_to_generate;
aPads[free_aPad_Index].TeleportCoordGroundX = teleportCoordsForPadX;
aPads[free_aPad_Index].TeleportCoordGroundY = teleportCoordsForPadY;
float x,y,z,h;
if(IS_CHAR_IN_ANY_CAR(pPlayer))
{
int tmp_veh, tmp_driver;
GET_CAR_CHAR_IS_USING(pPlayer,&tmp_veh);
GET_DRIVER_OF_CAR(tmp_veh,&tmp_driver);
if(tmp_driver == pPlayer)
{
SET_CAR_FORWARD_SPEED(tmp_veh,0);
}
else
{
REMOVE_CHAR_FROM_CAR_MAINTAIN_POSITION(pPlayer,tmp_veh);
}
}
while(!HAS_MODEL_LOADED(0x4F3E5681)) WAIT(0); //gamegrid
//create object here
GET_CHAR_COORDINATES(pPlayer,&x,&y,&z);
GET_GROUND_Z_FOR_3D_COORD(x,y,z,&z); //no need for attempts here as you're loaded here and not teleporting / NO ISSUES
GET_CHAR_HEADING(pPlayer,&h);
CREATE_OBJECT(0x4F3E5681,x,y,z+0.05f,&aPads[free_aPad_Index].actionPadObj,true);
FREEZE_OBJECT_POSITION(aPads[free_aPad_Index].actionPadObj,true);
SET_OBJECT_INVINCIBLE(aPads[free_aPad_Index].actionPadObj,true);
SET_OBJECT_HEADING(aPads[free_aPad_Index].actionPadObj,h);
SET_OBJECT_COLLISION(aPads[free_aPad_Index].actionPadObj, false);
SET_OBJECT_VISIBLE(aPads[free_aPad_Index].actionPadObj, false);
int NetID;
GET_NETWORK_ID_FROM_OBJECT(aPads[free_aPad_Index].actionPadObj,&NetID);
SET_NETWORK_ID_CAN_MIGRATE(NetID,false);
MARK_MODEL_AS_NO_LONGER_NEEDED(0x4F3E5681);
if(PadAction == ACTION_PAYNSPRAY)
{
aPadPayNSprayObjects();
}
else if(PadAction == ACTION_VEHICLE_GENERATE)
{
aPadVehicleGeneratorObjects();
}
else if(PadAction == ACTION_TELEPORT_COORD_GROUND_X_Y)
{
aPadObjects();
//create_mobile_mapbase(pPlayer,0x2718C626,0,4,0, true, false);//red cube
//SPAWN CUBE WITH COLOUR BASED ON ACTION PAD INDEX :P
/*
void telepad_saved2(void){
create_mobile_mapbase(pPlayer,0x2718C626,0,4,0, true, false);//red cube
void telepad_saved1(void){
create_mobile_mapbase(pPlayer,0xDD28B247,0,4,0, true, false);//blue cube
*/
}
Strcpy(buffer, "~b~MD Actionpad ");
itoa( (free_aPad_Index + 1), buffer);
Strcat(buffer, ": ~s~Has been created.");
Alert(buffer,false);
}
void Actionpad_looped(void)
{
int i,j,f,n;
float aPadCornerOffsetX[2];
aPadCornerOffsetX[0] = 3.1204f;
aPadCornerOffsetX[1] = -3.1284f;
float aPadCornerOffsetY[2];
aPadCornerOffsetY[0] = 4.6515f;
aPadCornerOffsetY[1] = -4.6273f;
float aPadCornerWorldCoordX[2];
float aPadCornerWorldCoordY[2];
float aPadx,aPady,aPadz,z;
for(i = 0; i < MAX_ACTIONPADS; i++)
{
if(!DOES_OBJECT_EXIST(aPads[i].actionPadObj))
{
aPads[i].TeleportCoordGroundX = 1337;
aPads[i].TeleportCoordGroundY = 1337;
//aPads[i].TeleportCoordGroundZ //if it causes issues i'll add this
aPads[i].veh_model_to_generate = 0;
aPads[i].action = 0;
aPads[i].actionPadObj = 0; //reset
continue;
}
GET_OBJECT_COORDINATES(aPads[i].actionPadObj,&aPadx,&aPady,&aPadz);
for(j = 0; j < 2; j++)
{
GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS(aPads[i].actionPadObj,aPadCornerOffsetX[j],aPadCornerOffsetY[j],0,&aPadCornerWorldCoordX[j],&aPadCornerWorldCoordY[j],&z);
}
int tmp_ped,tmp_veh,tmp_driver;
float tmp_x,tmp_y,tmp_z;
for(f = 0; f < MAX_PLAYERS; f++)
{
if(Player_Display_Selection(f)) continue; //contains PLAYER_HAS_CHAR check -- NO
GET_PLAYER_CHAR(f,&tmp_ped);
if(IS_CHAR_IN_ANY_CAR(tmp_ped))
{
GET_CAR_CHAR_IS_USING(tmp_ped,&tmp_veh);
GET_DRIVER_OF_CAR(tmp_veh,&tmp_driver);
if(tmp_driver == tmp_ped) //Player is driving
{
if(!IS_CAR_IN_AREA_2D(tmp_veh,aPadCornerWorldCoordX[0],aPadCornerWorldCoordY[0],aPadCornerWorldCoordX[1],aPadCornerWorldCoordY[1],false)) continue;
GET_CAR_COORDINATES(tmp_veh,&tmp_x,&tmp_y,&tmp_z);
int distance;
GET_DISTANCE_BETWEEN_COORDS_3D(aPadx,aPady,aPadz,tmp_x,tmp_y,tmp_z,&distance);
if(distance > 7) continue;
int netID;
GET_NETWORK_ID_FROM_VEHICLE(tmp_veh,&netID);
REQUEST_CONTROL_OF_NETWORK_ID(netID);
if(!HAS_CONTROL_OF_NETWORK_ID(netID) || aPads[i].action == 0) continue; //if no control or action not defined (don't use 0)
//WE NOW HAVE CONTROL OF PLAYERS CAR AND THEY ARE ON THE ACTION PAD
char * buffer[32];
Strcpy(buffer, "~b~MD ActionPad "); //16
itoa( (i + 1), buffer); //17
Strcat(buffer, ": ~COL_NET_"); //11 + 17 = 28
itoa( (f + 1), buffer); //30
Strcat(buffer, "~"); //31
Strcat(buffer,GET_PLAYER_NAME(f)); //46
if(aPads[i].action == ACTION_VEHICLE_GENERATE)
{
if(aPads[i].veh_model_to_generate != 0 && IS_MODEL_IN_CDIMAGE(aPads[i].veh_model_to_generate)) //Hash has been set + Model is in users image.
{
if(!HAS_MODEL_LOADED(aPads[i].veh_model_to_generate))
{
REQUEST_MODEL(aPads[i].veh_model_to_generate);
continue;
}
DELETE_CAR(&tmp_veh);
float spawn_x,spawn_y,spawn_z;
int spawned_veh;
GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS(aPads[i].actionPadObj,0,4,0,&spawn_x, &spawn_y, &spawn_z);
CREATE_CAR(aPads[i].veh_model_to_generate,spawn_x,spawn_y,spawn_z + 5, &spawned_veh, true);
REQUEST_COLLISION_AT_POSN(spawn_x,spawn_y,spawn_z + 5);
float h;
GET_OBJECT_HEADING(aPads[i].actionPadObj,&h);
SET_CAR_HEADING(spawned_veh,h);
int rand[4],n;
for(n = 0; n < 4; n++)
{
GENERATE_RANDOM_INT_IN_RANGE(0,134,&rand[n]);
}
CHANGE_CAR_COLOUR(spawned_veh,rand[0],rand[1]);
SET_EXTRA_CAR_COLOURS(spawned_veh,rand[2],rand[3]);
SET_CAR_CAN_BE_DAMAGED(spawned_veh,false);
SET_CAR_CAN_BE_VISIBLY_DAMAGED(spawned_veh,false);
SET_CAN_BURST_CAR_TYRES(spawned_veh,false); //can make a var for Actionpad_Generate_InvincibleVehs
SET_CAR_STRONG(spawned_veh,true);
Strcat(buffer, " ~s~used the ");
Strcat(buffer, GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(aPads[i].veh_model_to_generate)));
Strcat(buffer, " generator.");
}
}
else if(aPads[i].action == ACTION_PAYNSPRAY)
{
int rand[4];
for(n = 0; n < 4; n++)
{
GENERATE_RANDOM_INT_IN_RANGE(0,134,&rand[n]);
}
CHANGE_CAR_COLOUR(tmp_veh,rand[0],rand[1]);
SET_EXTRA_CAR_COLOURS(tmp_veh,rand[2],rand[3]);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(tmp_ped, 0, -8, 0 ,&tmp_x,&tmp_y,&tmp_z);
SET_CAR_COORDINATES(tmp_veh,tmp_x, tmp_y, tmp_z); //their heading shouldn't change so no need to grab it
Strcat(buffer, " ~s~used the Pay'NSpray."); //24 + 46 = 70
}
else if(aPads[i].action == ACTION_TELEPORT_COORD_GROUND_X_Y)
{
if(aPads[i].TeleportCoordGroundX != 1337 && aPads[i].TeleportCoordGroundY != 1337)
{
float ground;
GET_GROUND_Z_FOR_3D_COORD(aPads[i].TeleportCoordGroundX,aPads[i].TeleportCoordGroundY,50,&ground);
SET_CAR_FORWARD_SPEED(tmp_veh,0); //stop net control fucking them up
SET_CAR_COORDINATES(tmp_veh,aPads[i].TeleportCoordGroundX,aPads[i].TeleportCoordGroundY,ground);
Strcat(buffer, " ~s~was teleported to ~r~X: ~s~"); //78
itoa((int)aPads[i].TeleportCoordGroundX, buffer); //max 5 chars? //83
Strcat(buffer, " ~r~Y: ~s~"); //93
itoa((int)aPads[i].TeleportCoordGroundY, buffer); //5 //might just get away with this
}
}
if(aPads[i].action > 1) //0 not used & 1 not defined currently
{
Alert(buffer, false);
}
}
else
{
continue;
}
}
else
{
continue;
}
}
}
}
/*
if(DOES_OBJECT_EXIST(SultanRSGenerator_obj)){ //ACTIONPAD OBJECT
//DEFINING ACTIONPAD
int i,tmp,tmp_veh,tmp_vehNetId;
float x,y,z,x2,y2,z2,h;
float tmp_x,tmp_y,tmp_z;
float mobile_obj_corner_1_x,mobile_obj_corner_2_x,mobile_obj_corner_1_y,mobile_obj_corner_2_y;
float distance;
GET_OBJECT_COORDINATES(SultanRSGenerator_obj,&x2,&y2,&z2);
float ap_obj;
GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS(SultanRSGenerator_obj,3.1204f,4.6515f,0,&mobile_obj_corner_1_x,&mobile_obj_corner_1_y,&ap_obj);
GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS(SultanRSGenerator_obj,-3.1284f,-4.6273f,0,&mobile_obj_corner_2_x,&mobile_obj_corner_2_y,&ap_obj);
//SCAN PLAYERS
for(i=0;i<=15;i++){
if(!IS_NETWORK_PLAYER_ACTIVE(i)) continue;
GET_PLAYER_CHAR(i,&tmp);
if(!DOES_CHAR_EXIST(tmp)) continue;
if(!is_driving(tmp)) continue;
GET_CAR_CHAR_IS_USING(tmp,&tmp_veh);
if(!IS_CAR_IN_AREA_2D(tmp_veh,mobile_obj_corner_1_x,mobile_obj_corner_1_y,mobile_obj_corner_2_x,mobile_obj_corner_2_y,false)) continue;
GET_CAR_COORDINATES(tmp_veh,&x,&y,&z);
GET_CHAR_COORDINATES(tmp,&tmp_x,&tmp_y,&tmp_z);
GET_DISTANCE_BETWEEN_COORDS_3D(x,y,z,x2,y2,z2,&distance);
if(distance > 5) continue;
//Alert_Two(GET_PLAYER_NAME(i),"~BLIP_76~~COL_NET_4~was detected on the actionpad~n~~w~Attemting to get control of NET ID");
GET_NETWORK_ID_FROM_VEHICLE(tmp_veh,&tmp_vehNetId);
REQUEST_CONTROL_OF_NETWORK_ID(tmp_vehNetId);
if(!HAS_CONTROL_OF_NETWORK_ID(tmp_vehNetId)) continue;
if(!IS_CHAR_IN_ANY_HELI(tmp)){
float Cargen_x, Cargen_y, Cargen_z, Cargen_h;// Cargen_zz;
float TP_out_x, TP_out_y, TP_out_z, TP_out_h;
uint carmodel,tmp_carmodel;
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(tmp, 10, 0, 0 ,&TP_out_x,&TP_out_y,&TP_out_z);
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(tmp, 0, 0, 0 ,&Cargen_x,&Cargen_y,&Cargen_z);
//GET_GROUND_Z_FOR_3D_COORD(Cargen_x, Cargen_y, Cargen_z, &Cargen_zz);
GET_CHAR_HEADING(tmp,&Cargen_h);
REQUEST_MODEL(MODEL_SULTANRS);
while(!HAS_MODEL_LOADED(MODEL_SULTANRS)) WAIT(0);
GET_CAR_MODEL(tmp_veh, &tmp_carmodel);
if(tmp_carmodel == MODEL_SULTANRS){
SET_CAR_COORDINATES(tmp_veh,TP_out_x, TP_out_y, TP_out_z);
SET_CAR_HEADING(tmp_veh,Cargen_h);
}
else{
Vehicle vehicle;
clear_objects_on_car(tmp_veh);
DELETE_CAR(&tmp_veh);
MARK_CAR_AS_NO_LONGER_NEEDED(&tmp_veh);
CREATE_CAR(MODEL_SULTANRS,Cargen_x ,Cargen_y,Cargen_z,&vehicle,true);
SET_CAR_COORDINATES_NO_OFFSET(vehicle, Cargen_x, Cargen_y, Cargen_z);
SET_CAR_HEADING(vehicle,Cargen_h);
FREEZE_CAR_POSITION(vehicle, false);
MARK_MODEL_AS_NO_LONGER_NEEDED(MODEL_SULTANRS);
GET_CAR_MODEL(vehicle, &carmodel);
int colours[14],rand;
colours[0] = 128; //yellow
colours[1] = 120; //cream
colours[2] = 107; //brown
colours[3] = 59; //green
colours[4] = 132; //yellow
colours[5] = 129; //lightblue
colours[6] = 125; //pink
colours[7] = 135; //white
colours[8] = 30; //red
colours[9] = 46;
colours[10] = 65; //blue
colours[11] = 71; //blue
colours[12] = 76; //blue
colours[13] = 103; //
GENERATE_RANDOM_INT_IN_RANGE(0,13,&rand);
if(carmodel == MODEL_SULTANRS){
CHANGE_CAR_COLOUR(vehicle,0,colours[rand]);
SET_EXTRA_CAR_COLOURS(vehicle,colours[rand],colours[rand]);
}
else{
int dick;
GENERATE_RANDOM_INT_IN_RANGE(0,13,&dick);
CHANGE_CAR_COLOUR(vehicle,colours[rand],colours[dick]);
int cock;
GENERATE_RANDOM_INT_IN_RANGE(0,13,&rand);
GENERATE_RANDOM_INT_IN_RANGE(0,13,&cock);
SET_EXTRA_CAR_COLOURS(vehicle,colours[rand],colours[cock]);
}
Alert_Two(GET_PLAYER_NAME(i),"~COL_NET_1~~BLIP_76~used the Sultan RS Generator",false);
SET_CAR_COLLISION(vehicle, true);
SET_CAR_CAN_BE_DAMAGED(vehicle, !damage);
SET_CAR_CAN_BE_VISIBLY_DAMAGED(vehicle, !damage);
SET_CAN_BURST_CAR_TYRES(vehicle,!damage);
SET_CAR_STRONG(vehicle,!damage);
int j;
for(j=0;j<=9;j++){
TURN_OFF_VEHICLE_EXTRA(vehicle,j,false);
}
SWITCH_CAR_SIREN(vehicle,siren);
SET_CAN_BURST_CAR_TYRES(vehicle,false);
}
}
else{
Alert_Two(GET_PLAYER_NAME(i),"~COL_NET_4~~BLIP_76~detected on actionpad using a heli~n~~w~Player is now burning to death!",false);
clear_objects_on_car(tmp_veh);
DELETE_CAR(&tmp_veh);
MARK_CAR_AS_NO_LONGER_NEEDED(&tmp_veh);
START_CHAR_FIRE(tmp);
}
}
}
*/
/*
void Actionpad_teleport_function(uint function_object,float tx,float ty,float tz){
if(DOES_OBJECT_EXIST(function_object)){ //ACTIONPAD OBJECT
//DEFINING ACTIONPAD
int i,tmp,tmp_veh,tmp_vehNetId;
float x,y,z,x2,y2,z2,h;
float mobile_obj_corner_1_x,mobile_obj_corner_2_x,mobile_obj_corner_1_y,mobile_obj_corner_2_y;
float distance;
GET_OBJECT_COORDINATES(function_object,&x2,&y2,&z2);
float ap_obj;
GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS(function_object,3.1204f,4.6515f,0,&mobile_obj_corner_1_x,&mobile_obj_corner_1_y,&ap_obj);
GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS(function_object,-3.1284f,-4.6273f,0,&mobile_obj_corner_2_x,&mobile_obj_corner_2_y,&ap_obj);
//SCAN PLAYERS
for(i=0;i<MAX_PLAYERS;i++){
if(!IS_NETWORK_PLAYER_ACTIVE(i)) continue;
GET_PLAYER_CHAR(i,&tmp);
if(!DOES_CHAR_EXIST(tmp)) continue;
if(!is_driving(tmp)) continue;
GET_CAR_CHAR_IS_USING(tmp,&tmp_veh);
if(!IS_CAR_IN_AREA_2D(tmp_veh,mobile_obj_corner_1_x,mobile_obj_corner_1_y,mobile_obj_corner_2_x,mobile_obj_corner_2_y,false)) continue;
GET_CAR_COORDINATES(tmp_veh,&x,&y,&z);
GET_DISTANCE_BETWEEN_COORDS_3D(x,y,z,x2,y2,z2,&distance);
if(distance > 5) continue;
Alert_Two(GET_PLAYER_NAME(i),"~BLIP_76~~COL_NET_4~was detected on the teleporter~n~~w~Attemting to get control of NET ID",false);
GET_NETWORK_ID_FROM_VEHICLE(tmp_veh,&tmp_vehNetId);
REQUEST_CONTROL_OF_NETWORK_ID(tmp_vehNetId);
if(!HAS_CONTROL_OF_NETWORK_ID(tmp_vehNetId)) continue;
if(!IS_CHAR_IN_ANY_HELI(tmp)){
SET_CAR_COORDINATES(tmp_veh,tx,ty,tz);//do the function
if(tx == -970.6938)Alert_Two(GET_PLAYER_NAME(i),"~COL_NET_1~~BLIP_76~is teleporting to Sultan RS Spawn",false);
if(tx == 2614.2830)Alert_Two(GET_PLAYER_NAME(i),"~COL_NET_1~~BLIP_76~is teleporting to Devils Cloud",false);
if(tx == save_x1)Alert_Two(GET_PLAYER_NAME(i),"~COL_NET_1~~BLIP_76~is teleporting to Saved Location~y~ 1",false);
if(tx == save_x2)Alert_Two(GET_PLAYER_NAME(i),"~COL_NET_1~~BLIP_76~is teleporting to Saved Location~y~ 2",false);
FIX_CAR(tmp_veh);
//if(tmp != pPlayer)change_car_color(tmp_veh,0,30,30,30);//devilscolors --> make this optional
GET_CAR_HEADING(tmp_veh, &h);
SET_CAR_HEADING(tmp_veh,0);
}
else{
Alert_Two(GET_PLAYER_NAME(i),"~COL_NET_4~~BLIP_76~tried to teleport using a heli~n~~w~Player is now burning to death!",false);
clear_objects_on_car(tmp_veh);
DELETE_CAR(&tmp_veh);
MARK_CAR_AS_NO_LONGER_NEEDED(&tmp_veh);
START_CHAR_FIRE(tmp);
}
}
}
}
*/
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version V7 ULTIMATE
* @ DEV TEAM V7- DEVILSDESIGN
*/
/**
How to use :
A. Create a function for the actionpad spawn // set an object
1. Teleporter Mobile (using the grids + spark = 6 objects!) //eh? -- Nathan
2. Teleporter on fixed place (using the grids + spark = 6 objects!)
3. Actionpad doing a function (undefined)
*/
#pragma once
/**Teleporter needs*/
/*
float save_x1 = 1234.5678, save_y1 = 1234.5678, save_z1 = 1234.5678; //Telepad 1
float save_x2 = 8765.4321, save_y2 = 8765.4321, save_z2 = 8765.4321; //Telepad 2
float custom_float_change;
Object savedlocation1;//used for mobile teleport with saved coords
Object savedlocation2;
//Object Waypoint_location;
Object greencloud_obj;//used for devilscloud ramp
Object SultanRS_Teleport_obj;// used for test teleporter
Object PayNSpray_obj;
Object SultanRSGenerator_obj;
Object CometGenerator_obj;
Object SabreGTGenerator_obj;
Object SentinelGenerator_obj;
Object FbiGenerator_obj;
Object PatriotGenerator_obj;
*/
void content_builder_setup(void){
MENU_SUB_HEADER = "Content Builder";
AddSubMenu("~PAD_RIGHT~ Spawn 8 Vehicles Around You"); //1
AddSubMenu("~PAD_RIGHT~ Custom & Funny Vehicles"); //2
AddSubMenu("~PAD_RIGHT~ Buildings Near You"); //3
AddSubMenu("~PAD_RIGHT~ MapMod Builder On The Fly"); //4
AddSubMenu("~PAD_RIGHT~ Spawn MapMods"); //5
AddSubMenu("~PAD_RIGHT~ Special Effects"); //6
AddSubMenu("~PAD_RIGHT~ Object Rotations"); //7
AddSubMenu("~PAD_RIGHT~ Fun Stuff - Devils Favourites"); //AddSubMenu("~PAD_RIGHT~ Give mods to others"); //8 // Change this to fun stuff
AddSubMenu("~PAD_RIGHT~ Blocked / Restricted Areas"); //9
AddSubMenu("~PAD_RIGHT~ AirStrikes"); //10
AddSubMenu("~PAD_RIGHT~ Mobile Teleporters - Non Modders");//11
AddSubMenu("~PAD_RIGHT~ ActionPads - Non Modders"); //12
AddSubMenu("~PAD_RIGHT~ Delete/Clear Options"); //13
}
void actionpad_setup(void){
MENU_SUB_HEADER = "Actionpads";
AddFunction("~BLIP_52~ Pay'N Spray"); //1
AddFunction("~BLIP_52~ Sultan RS Generator"); //2
AddFunction("~BLIP_52~ Comet Generator"); //3
AddFunction("~BLIP_52~ Sabre GT Generator"); //4
AddFunction("~BLIP_52~ Sentinel XS Generator"); //5
AddFunction("~BLIP_52~ FBI Buffalo Generator"); //6
AddFunction("~BLIP_52~ Patriot Generator"); //7
}

View File

@@ -0,0 +1,373 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version V7 ULTIMATE
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void create_mobile_mapobj(int model,float ox, float oy, float oz, float rx,float ry,float rz){ //Working together with BASE !!! Attaching objects to Hook
Object mapextra_obj;
if (IS_MODEL_IN_CDIMAGE(model)){
REQUEST_MODEL(model);
while (!HAS_MODEL_LOADED(model))WAIT(0);
CREATE_OBJECT_NO_OFFSET(model, 0, 0, 0, &mapextra_obj, true);
MARK_MODEL_AS_NO_LONGER_NEEDED(model);
FREEZE_OBJECT_POSITION(mapextra_obj, true);
SET_OBJECT_LIGHTS(mapextra_obj, true);
SET_OBJECT_VISIBLE(mapextra_obj, true);
SET_OBJECT_INVINCIBLE(mapextra_obj, true);
ATTACH_OBJECT_TO_OBJECT(mapextra_obj, mapbase_obj, 0, ox,oy,oz,rx,ry,rz);
SET_OBJECT_COLLISION(mapextra_obj, true);
block_net_control_of_object(mapextra_obj);
}
}
void GIVE_HEALTH_TO_CHAR(const int Player_PED){
Pickup healthpack;
float Player_PED_GroundZ;
float Player_PED_x, Player_PED_y, Player_PED_z;
Blip BlipPickup;
REMOVE_ALL_PICKUPS_OF_TYPE(2);
GET_CHAR_COORDINATES(Player_PED, &Player_PED_x, &Player_PED_y, &Player_PED_z);
GET_GROUND_Z_FOR_3D_COORD(Player_PED_x, Player_PED_y, Player_PED_z, &Player_PED_GroundZ);
CREATE_PICKUP(1069950328, 2, Player_PED_x, Player_PED_y, Player_PED_GroundZ, &healthpack, false);
ADD_BLIP_FOR_PICKUP(healthpack, &BlipPickup);
WAIT(200);
REMOVE_PICKUP(healthpack);
}
void Spawn_Pickup(Ped PlayerPed,Model SpawnPickup_model,Pickup PickupInt,uint SpawnPickup_type ){
REMOVE_ALL_PICKUPS_OF_TYPE(2);
Blip BlipPickup;
float PlayerPed_x, PlayerPed_y, PlayerPed_z;
GET_CHAR_COORDINATES(PlayerPed, &PlayerPed_x, &PlayerPed_y, &PlayerPed_z);
if(!IS_ANY_PICKUP_AT_COORDS(PlayerPed_x, PlayerPed_y, PlayerPed_z)){
CREATE_PICKUP(SpawnPickup_model, SpawnPickup_type, PlayerPed_x, PlayerPed_y+1, PlayerPed_z, &PickupInt, false);
ADD_BLIP_FOR_PICKUP(PickupInt, &BlipPickup);
/*
create_map_obj(1005973733, 0.0577, -0.1013, -2.5672, 0, 4.200, 0,0,0, 0);
*/
}
if(HAS_PICKUP_BEEN_COLLECTED(PickupInt)){
Alert("Pickup has been collected",false);
}
}
void create_object_vehicle(uint object_vehicle, int visible){// FUNCTION TO CREATE OBJECT VEHICLE BASE
REQUEST_MODEL(object_vehicle);
MD_Delete_Objects_On_Vehicle(iPlayer);
while (!HAS_MODEL_LOADED(object_vehicle))WAIT(0);
float curHeading, curX, curY, curZ, cGroundZ, curSpeed;
if (IS_CHAR_IN_ANY_CAR(pPlayer)){
GET_CAR_CHAR_IS_USING(pPlayer, &object_veh);
GET_CAR_SPEED(object_veh, &curSpeed);
GET_CAR_HEADING(object_veh, &curHeading);
GET_CAR_COORDINATES(object_veh, &curX, &curY, &curZ);
DELETE_CAR(&object_veh);
MARK_CAR_AS_NO_LONGER_NEEDED(&object_veh);
}
else{
GET_CHAR_HEADING(pPlayer, &curHeading);
GET_CHAR_COORDINATES(pPlayer, &curX, &curY, &curZ);
}
CREATE_CAR(object_vehicle, curX, curY, curZ, &object_veh, true);
while (!DOES_VEHICLE_EXIST(object_veh))WAIT(0);
SET_CAR_HEADING(object_veh, curHeading);
SET_CAR_COORDINATES(object_veh, curX, curY, curZ);
SET_CAR_VISIBLE(object_veh,visible);
SET_HAS_BEEN_OWNED_BY_PLAYER(object_veh, true);
SET_NEEDS_TO_BE_HOTWIRED(object_veh, false);
SET_CAR_ENGINE_ON(object_veh, true, true);
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE)){
SET_CAR_CAN_BE_DAMAGED(object_veh,false);
SET_CAR_CAN_BE_VISIBLY_DAMAGED(object_veh,false);
SET_CAN_BURST_CAR_TYRES(object_veh,false);
}
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_ALL_UPGRADES)){
int i;
for(i=0;i<=9;i++){
TURN_OFF_VEHICLE_EXTRA(object_veh, i, false);
}
}
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_DIRT)){
SET_VEHICLE_DIRT_LEVEL(object_veh,15.9);
WASH_VEHICLE_TEXTURES(object_veh,255);
}
else{
SET_VEHICLE_DIRT_LEVEL(object_veh,0);
WASH_VEHICLE_TEXTURES(object_veh,0);
}
WARP_CHAR_INTO_CAR(pPlayer, object_veh);
if (IS_THIS_MODEL_A_HELI(object_vehicle))
SET_HELI_BLADES_FULL_SPEED(object_veh);
MARK_MODEL_AS_NO_LONGER_NEEDED(object_vehicle);
LOCK_CAR_DOORS(object_veh, VEHICLE_DOOR_UNLOCKED);
if (IS_INTERIOR_SCENE()){
GET_GROUND_Z_FOR_3D_COORD(curX, curY, curZ, &cGroundZ);
SET_CHAR_COORDINATES_NO_OFFSET(pPlayer, curX, curY, cGroundZ);
LOAD_SCENE(curX, curY, curZ);
}
if (curSpeed != 0)
SET_CAR_FORWARD_SPEED(object_veh, curSpeed);
return;
}
void CreateMapObj(const int model, float x, float y, float z, float h, float qx, float qy, float qz, float qw, bool dynamic, bool NO_OFFSET)
{
Object object;
if(IS_MODEL_IN_CDIMAGE(model))
{
REQUEST_MODEL(model);
while(!HAS_MODEL_LOADED(model)) WAIT(0);
if(NO_OFFSET)
{
CREATE_OBJECT_NO_OFFSET(model, x, y, z, &object, true);
}
else
{
CREATE_OBJECT(model, x, y, z, &object, true);
}
MARK_MODEL_AS_NO_LONGER_NEEDED(model);
SET_OBJECT_HEADING(object, h);
SET_OBJECT_QUATERNION(object, qx, qy, qz, qw);
SET_OBJECT_INVINCIBLE(object, true);
SET_OBJECT_PROOFS(object, false, false, false, false, false);
SET_OBJECT_VISIBLE(object, true);
SET_OBJECT_LIGHTS(object, true);
if (dynamic)
{
SET_OBJECT_DYNAMIC(object, true);
}
else
{
FREEZE_OBJECT_POSITION(object, true);
}
WAIT(0);
if(In_Network)
{
int nvid;
GET_NETWORK_ID_FROM_OBJECT(object, &nvid);
SET_NETWORK_ID_CAN_MIGRATE(nvid, false);
}
}
}
void create_map_obj(const int model, float x, float y, float z, float h, float qx, float qy, float qz, float qw, bool dynamic){ ///temporary placeholder
//TEMPORARY PLACEHOLDER, REPLACE create_map_obj with my new CreateMapObj instead of calling this when you get time
CreateMapObj(model,x,y,z,h,qx,qy,qz,qw,dynamic,true);
}
void create_map_obj_offset(uint model, float x, float y, float z, float h, float qx, float qy, float qz, float qw, bool dynamic){ //OBJECTS ON FIXED POSITION
//TEMPORARY PLACEHOLDER, REPLACE create_map_obj_offset with my new CreateMapObj instead of calling this when you get time
CreateMapObj(model,x,y,z,h,qx,qy,qz,qw,dynamic,false);
}
void create_map_car(uint model,float x,float y,float z){ //CARPLACEMENTS ON FIXED POSITION
float h;
Vehicle actionpad_vehicle;
if(IS_MODEL_IN_CDIMAGE(model)){
GET_CHAR_HEADING(pPlayer,&h);
REQUEST_MODEL(model);
while(!HAS_MODEL_LOADED(model)) WAIT(0);
CREATE_CAR(model,x,y+7,z+2,&actionpad_vehicle,true);
SET_CAR_HEADING(actionpad_vehicle,h-180);
MARK_MODEL_AS_NO_LONGER_NEEDED(model);
SET_CAR_COLLISION(actionpad_vehicle, false);
SET_CAR_CAN_BE_DAMAGED(actionpad_vehicle,false);
SET_CAR_CAN_BE_VISIBLY_DAMAGED(actionpad_vehicle,false);
SET_CAN_BURST_CAR_TYRES(actionpad_vehicle,false);
FREEZE_CAR_POSITION(actionpad_vehicle, true);
int lockZ;
GET_CAR_DOOR_LOCK_STATUS(actionpad_vehicle,&lockZ);
if(lockZ == VEHICLE_DOOR_UNLOCKED){
LOCK_CAR_DOORS(actionpad_vehicle,VEHICLE_DOOR_LOCKED_BOTH_SIDES);
}
}
else Alert("~BLIP_76~ ~COL_NET_4~Error! ~w~Model missing from your CD image",false);
//PLAY_AUDIO_EVENT("FRONTEND_MENU_MP_SERVER_HIGHLIGHT");
}
void attach_admin_object_to_player(const int player, const int model,const int pedbone, float obj_x, float obj_y, float obj_z, float obj_rx, float obj_ry, float obj_rz, const int id){
//TEMPORARY PLACEHOLDER (both of these functions are the exact same, WASTE OF SPACE!
attach_object_to_player(player,model,pedbone,obj_x,obj_y,obj_z,obj_rx,obj_ry,obj_rz,id);
}
void change_car_color (int player, ColourIndex color1, ColourIndex color2, ColourIndex color3, ColourIndex color4){
Vehicle vehicle;
GET_CAR_CHAR_IS_USING(player, &vehicle);
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_UNIFIED_COLOUR)){
CHANGE_CAR_COLOUR(vehicle, color1, color2);
SET_EXTRA_CAR_COLOURS(vehicle, color3, color4);
}
else{
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0,134,&rand);
CHANGE_CAR_COLOUR(vehicle,color1,rand);
SET_EXTRA_CAR_COLOURS(vehicle,rand,rand); //done <3
}
WAIT(0);
FIX_CAR(vehicle);
SET_VEHICLE_DIRT_LEVEL(vehicle,0.0);
}
void change_Netcar_color (Vehicle vehicle,int player, ColourIndex color1, ColourIndex color2, ColourIndex color3, ColourIndex color4)
{
//TEMPORARY PLACEHOLDER (both of these functions are the exact same, WASTE OF SPACE!
//I believe we already have functions for this no?
change_car_color(player, color1, color2, color3, color4);
}
void clear_rotations(void){
register int Rotation_Subject_ID;
int i;
for(i = 0; i < 3; i++){
for(Rotation_Subject_ID = 0; Rotation_Subject_ID <= MAX_ROTATION_SUBJECTS -1; Rotation_Subject_ID++){
if(!DOES_OBJECT_EXIST(Rotation_Subject_Handle))continue;
if (DOES_CHAR_EXIST(Rotation_Subject[Rotation_Subject_ID]) && IS_PED_ATTACHED_TO_OBJECT(Rotation_Subject[Rotation_Subject_ID], Rotation_Subject_Handle)){
DELETE_CHAR(&Rotation_Subject[Rotation_Subject_ID]);
}
else if (DOES_VEHICLE_EXIST(Rotation_Subject[Rotation_Subject_ID]) && IS_CAR_ATTACHED(Rotation_Subject[Rotation_Subject_ID])){
DELETE_CAR(&Rotation_Subject[Rotation_Subject_ID]);
}
else if (DOES_OBJECT_EXIST(Rotation_Subject[Rotation_Subject_ID]) && IS_OBJECT_ATTACHED(Rotation_Subject[Rotation_Subject_ID])){
DELETE_OBJECT(&Rotation_Subject[Rotation_Subject_ID]);
}
}
WAIT(70);
}
SetBit(MD_Misc_OptionsBitSet,MD_MISC_ROTATIONS_LOOP,false);
//Rotationsloop = false;
if(DOES_OBJECT_EXIST(Rotation_Subject_Handle))DELETE_OBJECT(&Rotation_Subject_Handle);
}
/*
if(object == 0xD6E93FB5)continue;//V8 Object
if(object == 0xD1BBA26E)continue;//V81 Object
if(object == 0x3F15FE26)continue;//V11 Object
if(object == 0x2D295A4D)continue;//Spare Object
if(object == 0x3F15FE26)continue;//Spare Object
REQUEST_MODEL(0xF45AB5AE); // poolball 0xF45AB5AE
*/
void Create_Rotation(uint Player_ID, int model,float Subject_h,float Subject_x,float Subject_y, float height,float Angle_x,float Angle_y,float Angle_z,int id){
if(PLAYER_HAS_CHAR(Player_ID)){
Ped Player_PED;
if(!DOES_OBJECT_EXIST(Rotation_Subject_Handle)){ //Create it
Model Handle_model = 0xF45AB5AE;
REQUEST_MODEL(Handle_model);
while(!HAS_MODEL_LOADED(Handle_model))WAIT(0);
CREATE_OBJECT(Handle_model, 0.0, 0.0, 0.0, &Rotation_Subject_Handle, true);
MARK_MODEL_AS_NO_LONGER_NEEDED(Handle_model);
SET_OBJECT_VISIBLE(Rotation_Subject_Handle, true);
GET_PLAYER_CHAR(Player_ID,&Player_PED);
ATTACH_OBJECT_TO_PED (Rotation_Subject_Handle,Player_PED, 0.0,0.0, 0.0, -1, 0.0, 0.0, rotate_inc, 0);
//block_net_control_of_object(Rotation_Subject_Handle);
if(!MARK_OBJECT_FOR_NATHANS_PROTECTION(Rotation_Subject_Handle)) //net control set in my func
{
block_net_control_of_object(Rotation_Subject_Handle);
}
WAIT(50);
SetBit(MD_Misc_OptionsBitSet,MD_MISC_ROTATIONS_LOOP,true);
//Rotationsloop = true;
Alert("Rotation base created",false);
}
if(IS_MODEL_IN_CDIMAGE(model) && DOES_OBJECT_EXIST(Rotation_Subject_Handle)){
REQUEST_MODEL(model);
while (!HAS_MODEL_LOADED(model))WAIT(0);
if(IS_THIS_MODEL_A_VEHICLE(model)){
CREATE_CAR(model,0.0,0.0,0.0,&Rotation_Subject[id],true);
MARK_MODEL_AS_NO_LONGER_NEEDED(model);
ATTACH_CAR_TO_OBJECT(Rotation_Subject[id], Rotation_Subject_Handle,1,Subject_x, Subject_y,height, Angle_x,Angle_y,Angle_z);
SWITCH_CAR_SIREN(Rotation_Subject[id],true);
}
else if(IS_THIS_MODEL_A_PED(model)){
CREATE_CHAR(26, model, 0.0,0.0,0.0, &Rotation_Subject[id], true);
MARK_MODEL_AS_NO_LONGER_NEEDED(model);
SET_CHAR_RANDOM_COMPONENT_VARIATION(Rotation_Subject[id]);
ATTACH_PED_TO_OBJECT(Rotation_Subject[id],Rotation_Subject_Handle,1,Subject_x, Subject_y,height, Angle_x,Angle_y,1,1);
}
else{
CREATE_OBJECT_NO_OFFSET(model, 0, 0, 0, &Rotation_Subject[id], true);
MARK_MODEL_AS_NO_LONGER_NEEDED(model);
FREEZE_OBJECT_POSITION(Rotation_Subject[id], true);
SET_OBJECT_VISIBLE(Rotation_Subject[id], true);
SET_OBJECT_LIGHTS(Rotation_Subject[id], true);
SET_OBJECT_INVINCIBLE(Rotation_Subject[id], true);
ATTACH_OBJECT_TO_OBJECT(Rotation_Subject[id],Rotation_Subject_Handle,1,Subject_x, Subject_y,height, Angle_x, Angle_y ,Angle_z);
}
//Block_Net_Control_Of_Entity(model,Rotation_Subject[id]);// --> Make this turn false when detaching the cars
}
else Alert("~BLIP_76~ ~COL_NET_4~Error! ~w~Model missing from your CD image",false);
}
else Alert(Error_Char_Missing,false);
}
void MC_Create_Player_Rotation ( uint Player_ID, int Rot_Object_Model, float heightz, float angle1, float angle2, float angle3, float angle4 ){
float hook = 0;
float diagonal = 0.66;
Create_Rotation(Player_ID,Rot_Object_Model,angle4, Rotation_Distance ,hook,heightz,angle1,angle2,angletest1,0);
Create_Rotation(Player_ID,Rot_Object_Model,angle4,-Rotation_Distance,hook,heightz,angle1 ,angle2,angletest2,1);
Create_Rotation(Player_ID,Rot_Object_Model,angle4,hook ,Rotation_Distance,heightz,angle1 ,angle2,angletest3,2);
Create_Rotation(Player_ID,Rot_Object_Model,angle4,hook ,-Rotation_Distance,heightz,angle1,angle2,angletest4,3);
Create_Rotation(Player_ID,Rot_Object_Model,angle4,-Rotation_Distance*diagonal,-Rotation_Distance*diagonal,heightz,angle1 ,angle2,angletest5,4);
Create_Rotation(Player_ID,Rot_Object_Model,angle4, Rotation_Distance*diagonal, Rotation_Distance*diagonal,heightz,angle1 ,angle2,angletest6,5);
Create_Rotation(Player_ID,Rot_Object_Model,angle4,-Rotation_Distance*diagonal, Rotation_Distance*diagonal,heightz,angle1,angle2 ,angletest7,6);
Create_Rotation(Player_ID,Rot_Object_Model,angle4, Rotation_Distance*diagonal,-Rotation_Distance*diagonal,heightz,angle1 ,angle2,angletest8,7);
}
/**Rotation loop**/
void MC_Creation_Loop (void){
register int NetPlayer_ID;
int Rotation_Subject_ID;
Ped NetPlayer_Char;
Vehicle Rotation_Vehicle;
float Driving_x;
if(GetBit(MD_Misc_OptionsBitSet,MD_MISC_ROTATIONS_LOOP) && DOES_OBJECT_EXIST(Rotation_Subject_Handle)){
if (rotate_inc >= 6.3f)rotate_inc = 0.05f;
else rotate_inc += Rotation_Speed;
for(NetPlayer_ID = 0;NetPlayer_ID < MAX_PLAYERS; NetPlayer_ID++){
if(Player_Display_Selection(NetPlayer_ID))continue;
GET_PLAYER_CHAR(NetPlayer_ID,&NetPlayer_Char);
if(!DOES_CHAR_EXIST(NetPlayer_Char)) continue;
if(GET_PED_OBJECT_IS_ATTACHED_TO(Rotation_Subject_Handle) == NetPlayer_Char && IS_OBJECT_ATTACHED(Rotation_Subject_Handle)){
if(IS_CHAR_IN_ANY_CAR(NetPlayer_Char)){
if(is_driving(NetPlayer_Char))Driving_x = 0.5f;
else Driving_x = -0.5f;
if(!DOES_CHAR_EXIST(NetPlayer_Char))continue;
ATTACH_OBJECT_TO_PED (Rotation_Subject_Handle,NetPlayer_Char, 0, Driving_x, 0.0,Set_Rotation_Height -0.90f, 0.0, 0.0, rotate_inc, 0);
}
else {
if(!DOES_CHAR_EXIST(NetPlayer_Char)) continue;
ATTACH_OBJECT_TO_PED (Rotation_Subject_Handle,NetPlayer_Char, 0, 0.0, 0.0,Set_Rotation_Height - 1.50f, 0.0, 0.0, rotate_inc, 0);
}
}
}
}
if(Rot_Solidify){//Premium Only!!!
for(Rotation_Subject_ID = 0; Rotation_Subject_ID <= MAX_ROTATION_SUBJECTS -1; Rotation_Subject_ID++){
if (DOES_VEHICLE_EXIST(Rotation_Subject[Rotation_Subject_ID]) && IS_CAR_ATTACHED(Rotation_Subject[Rotation_Subject_ID])){
if (IS_THIS_MODEL_A_HELI(GET_VEHICLE_MODEL_FROM_INDEX(Rotation_Subject_ID))){
SET_HELI_BLADES_FULL_SPEED(Rotation_Subject[Rotation_Subject_ID]); //This doesnt work!!
}
SET_CAR_COLLISION(Rotation_Subject[Rotation_Subject_ID], Rot_Solidify);
}
else if (DOES_OBJECT_EXIST(Rotation_Subject[Rotation_Subject_ID]) && IS_OBJECT_ATTACHED(Rotation_Subject[Rotation_Subject_ID])){
SET_OBJECT_COLLISION(Rotation_Subject[Rotation_Subject_ID], Rot_Solidify);
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,559 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT Based on ESSENTIALS
* @ MADE BY - DEVILSDESIGN && IIV NATHAN VII
* @ Updated : 20-03-2017
*/
//CreateByteSet(hour, minute, 1, 1, &freezeTime);
// if(freezeTime) SET_TIME_OF_DAY(GetByteInSet(freezeTime, 0), GetByteInSet(freezeTime, 1));
//SpectateByteSet
void CreateByteSet(uint b0, uint b1, uint b2, uint b3, uint *ByteSet)
{
*ByteSet = ((b3 % 256) * 16777216) + ((b2 % 256) * 65536) + ((b1 % 256) * 256) + (b0 % 256);
}
uint GetByteInSet(uint ByteSet, uint byteIndex)
{
int i;
for(i = 0; i < (byteIndex * 2); i++)
{
ByteSet = SHIFT_RIGHT(ByteSet, 4); //SHIFT_RIGHT, shifts by 4 bits
}
ByteSet = ByteSet % 256;
return ByteSet;
}
void GetByteSet(uint ByteSet, uint *b0, uint *b1, uint *b2, uint *b3)
{
*b0 = GetByteInSet(ByteSet, 0);
*b1 = GetByteInSet(ByteSet, 1);
*b2 = GetByteInSet(ByteSet, 2);
*b3 = GetByteInSet(ByteSet, 3);
}
void SetByteSet(uint *ByteSet, uint byteIndex, uint byteValue)
{
uint b[4];
GetByteSet(*ByteSet, &b[0], &b[1], &b[2], &b[3]);
b[byteIndex] = byteValue;
CreateByteSet(b[0], b[1], b[2], b[3], &*ByteSet);
}
//use -1 for respawn mode, and hmm, -2 for clone maybe? I'll get to it!
void nathan_spawn_vehicle(const int model, float x, float y, float z, float h){
int col5, col6, col7, col8,lock,car;
float speed;
Ped driver;
bool respawning = (model == -1);
bool upgrade[10];
bool siren;
int i;
if(respawning)
{
//respawn
GET_CAR_CHAR_IS_USING(pPlayer,&car);
GET_CAR_MODEL(car, &model);
GET_DRIVER_OF_CAR(car,&driver);
siren = IS_CAR_SIREN_ON(car);
GET_CAR_COLOURS(car, &col5, &col6);
GET_EXTRA_CAR_COLOURS(car, &col7, &col8);
GET_CAR_DOOR_LOCK_STATUS(car,&lock);
GET_CAR_SPEED(car,&speed);
GET_CAR_HEADING(car, &h);
for(i = 0;i<10;i++)
{
upgrade[i] = IS_VEHICLE_EXTRA_TURNED_ON(car,i);
}
}
if(!IS_MODEL_IN_CDIMAGE(model)) return;
//GET_CAR_MODEL(car, &model);
REQUEST_MODEL(model); ////Yes this SHOULD be here! In order to stop/reduce the script wasting time!
while(!HAS_MODEL_LOADED(model)) WAIT(0);
CREATE_CAR(model, x, y, z, &car, true);
if(model == MODEL_ANNIHILATOR)
{
SET_CAR_CAN_BE_DAMAGED(car,false);
SET_CAR_CAN_BE_VISIBLY_DAMAGED(car, false);
FIX_CAR(car);
}
WARP_CHAR_INTO_CAR(pPlayer,car);
if(IS_THIS_MODEL_A_HELI(model))
SET_HELI_BLADES_FULL_SPEED(car);
MARK_MODEL_AS_NO_LONGER_NEEDED(model);
SET_CAR_HEADING(car,h);
SET_CAR_ENGINE_ON(car,true,true);
if(respawning)
{
for(i = 0; i < 10; i++)
{
TURN_OFF_VEHICLE_EXTRA(car,i,!upgrade[i]);
}
SET_CAR_FORWARD_SPEED(car, speed);
CHANGE_CAR_COLOUR(car, col5, col6);
SET_EXTRA_CAR_COLOURS(car, col7, col8);
SWITCH_CAR_SIREN(car,siren);
LOCK_CAR_DOORS(car,lock);
}
}
bool IS_DRIVE_WALK_WATER_ENABLED_FOR_PLAYER(const int playerindex)
{
return DOES_OBJECT_EXIST(drive_water[playerindex]);
}
void TOGGLE_DRIVE_WALK_WATER_FOR_PLAYER(const int playerindex)
{
char * buffer[32];
Strcpy(buffer, "~b~MD: "); //7 chars
PLAYER_NAME_WITH_COLOUR(playerindex, &buffer); //33
Strcat(buffer, " ~s~"); //37
if(PLAYER_HAS_CHAR(playerindex))
{
//GET_PLAYER_CHAR(playerindex,&players[playerindex].ped);
if(DOES_OBJECT_EXIST(drive_water[playerindex]))
{
Strcat(buffer, "can no longer drive or walk on water."); //72 chars
DELETE_OBJECT(&drive_water[playerindex]);
}
else
{
REQUEST_MODEL(0x4F9981BE);
Strcat(buffer, "can now drive and walk on water."); //32 + 33 = 55
float x,y,z;
int NetID;
GET_CHAR_COORDINATES(PLAYER_CHAR(playerindex),&x,&y,&z); //loop will "catch" the object, make less waiting happen :P
while(!HAS_MODEL_LOADED(0x4F9981BE)) WAIT(0);
CREATE_OBJECT(0x4F9981BE, x, y, z, &drive_water[playerindex], true);
MARK_MODEL_AS_NO_LONGER_NEEDED(0x4F9981BE);
SET_OBJECT_VISIBLE(drive_water[playerindex],false);
SET_OBJECT_INVINCIBLE(drive_water[playerindex],true);
GET_NETWORK_ID_FROM_OBJECT(drive_water[playerindex], &NetID);
SET_NETWORK_ID_CAN_MIGRATE(NetID, false);
SET_OBJECT_COORDINATES(drive_water[playerindex],x,y,-9.2);
}
}
else
{
Strcat(buffer, "does not have a character.");;
}
Alert(buffer,false);
}
bool IS_CHARS_VEHICLE_LOCKED(const int ped) //Nathan new func
{
if(!DOES_CHAR_EXIST(ped) || !IS_CHAR_IN_ANY_CAR(ped)) return false;
int lock,veh;
GET_CAR_CHAR_IS_USING(ped,&veh);
GET_CAR_DOOR_LOCK_STATUS(veh,&lock);
return (lock == VEHICLE_DOOR_LOCKED_BOTH_SIDES || lock == VEHICLE_DOOR_LOCKED_FROM_OUTSIDE);
}
void SET_VEHICLE_LOCKED_WITHOUT_NET_CONTROL_REQUEST(const int veh, const int lock)
{
if(!DOES_VEHICLE_EXIST(veh)) return;
if(lock == 0 || lock == 1)
{
LOCK_CAR_DOORS(veh, (lock ? VEHICLE_DOOR_LOCKED_BOTH_SIDES : VEHICLE_DOOR_UNLOCKED));
}
else if(lock == VEHICLE_DOOR_LOCKED_FROM_OUTSIDE)
{
LOCK_CAR_DOORS(veh,VEHICLE_DOOR_LOCKED_FROM_OUTSIDE);
}
}
void change_player(const int playerModel)
{
if(!IS_MODEL_IN_CDIMAGE(playerModel))
{
Alert("~b~MD: ~s~Model missing, unable to change.",false);
return;
}
REQUEST_MODEL(playerModel);
float heading;
Weapon savedWeapons[WEAPON_SLOT_THROWN+1];
uint savedAmmo[WEAPON_SLOT_THROWN+1];
uint key, health, armor, currentWeaponAmmo, seatIndex = 0;
Weapon currentWeapon;
Vehicle playerVehicle = 0;
int i;
GET_CHAR_ARMOUR(pPlayer, &armor);
GET_CHAR_HEALTH(pPlayer, &health);
//health -= armor;
//Weapons
uint ammo1;
//NEW v
for(i = WEAPON_SLOT_UNARMED; i <= WEAPON_SLOT_THROWN; i++)
{
GET_CHAR_WEAPON_IN_SLOT(pPlayer, i, &savedWeapons[i], &savedAmmo[i], &ammo1);
}
GET_CURRENT_CHAR_WEAPON(pPlayer, &currentWeapon);
GET_AMMO_IN_CLIP(pPlayer, currentWeapon, &currentWeaponAmmo);
//Vehicle
if(IS_CHAR_IN_ANY_CAR(pPlayer))
{
Ped pedInSeat = 0;
int i;
GET_CAR_CHAR_IS_USING(pPlayer, &playerVehicle);
GET_DRIVER_OF_CAR(playerVehicle, &pedInSeat);
if(pedInSeat == pPlayer)
{
seatIndex = -1;
}
else
{
for(i = 0; i < 3; i++)
{
GET_CHAR_IN_CAR_PASSENGER_SEAT(playerVehicle, i, &pedInSeat);
if(pPlayer == pedInSeat)
{
seatIndex = i;
break;
}
}
}
}
GET_CHAR_HEADING(pPlayer, &heading);
GET_KEY_FOR_CHAR_IN_ROOM(pPlayer, &key);
while(!HAS_MODEL_LOADED(playerModel)) WAIT(0);
CHANGE_PLAYER_MODEL(iPlayer, playerModel);
MARK_MODEL_AS_NO_LONGER_NEEDED(playerModel);
pPlayer = GetPlayerPed(); //Get/set the new player ped ID
ADD_ARMOUR_TO_CHAR(pPlayer, armor);
SET_CHAR_HEALTH(pPlayer, health);
//Weapons
for(i = WEAPON_SLOT_UNARMED; i <= WEAPON_SLOT_THROWN; i++)
{
if(savedWeapons[i] != currentWeapon)
{
GIVE_WEAPON_TO_CHAR(pPlayer, savedWeapons[i], savedAmmo[i], false);
}
}
if(currentWeapon)
{
uint ammo;
GET_AMMO_IN_CHAR_WEAPON(pPlayer, currentWeapon, &ammo);
REMOVE_WEAPON_FROM_CHAR(pPlayer, currentWeapon);
GIVE_WEAPON_TO_CHAR(pPlayer, currentWeapon, ammo, false);
SET_CURRENT_CHAR_WEAPON(pPlayer, currentWeapon, true);
SET_AMMO_IN_CLIP(pPlayer, currentWeapon, currentWeaponAmmo);
SET_CHAR_AMMO(pPlayer, currentWeapon, ammo);
}
//Vehicle
if(DOES_VEHICLE_EXIST(playerVehicle))
{
if(seatIndex == -1)
WARP_CHAR_INTO_CAR(pPlayer, playerVehicle);
else
WARP_CHAR_INTO_CAR_AS_PASSENGER(pPlayer, playerVehicle, seatIndex);
}
SET_CHAR_HEADING(pPlayer, heading);
if(IS_INTERIOR_SCENE()) SET_ROOM_FOR_CHAR_BY_KEY(pPlayer, key);
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
FORCE_FULL_VOICE(pPlayer);
if(GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_HELMET)) GIVE_PED_HELMET(pPlayer);
BLOCK_PED_WEAPON_SWITCHING(pPlayer, true);
if(playerModel == GET_PLAYERSETTINGS_MODEL_CHOICE())
{
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(iPlayer);
}
else
{
SET_CHAR_RANDOM_COMPONENT_VARIATION(pPlayer);
}
}
/*
void LOAD_ANIMS(const char* set)
{
REQUEST_ANIMS(set);
while(!HAVE_ANIMS_LOADED(set)) WAIT(0);
}
void UNLOAD_ANIMS(const char* set)
{
REMOVE_ANIMS(set);
}
*/
void pPlayer_strides(const char* set){
REQUEST_ANIMS(set);
while(!HAVE_ANIMS_LOADED(set)) WAIT(0);
SET_ANIM_GROUP_FOR_CHAR(pPlayer,set);
REMOVE_ANIMS(set);
}
void play_anims(const char* set, const char* anim, const int time1,const int time2){
REQUEST_ANIMS(set);
while(!HAVE_ANIMS_LOADED(set)) WAIT(0);
TASK_PLAY_ANIM_WITH_FLAGS(pPlayer,anim,set,8.0,time1,time2); //yes anim then set.
REMOVE_ANIMS(set); //unload
}
int Number_of_BGuards(void){
int i;
int number_of_guards = 0;
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
number_of_guards++;
}
return number_of_guards;
}
void fix_group_for_guards(void){
GET_PLAYER_GROUP(iPlayer,&BG_Group);
if(!DOES_GROUP_EXIST(BG_Group)){
CREATE_GROUP(0, &BG_Group, true);
SET_GROUP_LEADER(BG_Group, pPlayer);
SET_GROUP_FORMATION(BG_Group, group_formation);
SET_GROUP_FORMATION_SPACING(BG_Group, group_spacing);
int i;
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(DOES_CHAR_EXIST(BG_ped[i])) continue;
SET_GROUP_MEMBER(BG_Group, BG_ped[i]);
}
}
}
bool Guard_Check(void){
fix_group_for_guards();
bool guards_exist = (Number_of_BGuards() > 0);
if(!guards_exist){
Alert("~b~MD: ~s~No bodyguards exist!",false);
}
return guards_exist;
}
void AnimationPlayer(bool pPlayer_Animation,const char* set, const char* anim, const int time1,const int time2){
float animspeed;
if(pPlayer_Animation){
REQUEST_ANIMS(set);
while(!HAVE_ANIMS_LOADED(set)) WAIT(0);
GET_CHAR_MOVE_ANIM_SPEED_MULTIPLIER(pPlayer, &animspeed);
SET_CHAR_ANIM_SPEED(pPlayer, set,anim, animspeed*animationspeed);
TASK_PLAY_ANIM_WITH_FLAGS(pPlayer,anim,set,8.0,time1,time2); //yes anim then set.
}
else{
if(!Guard_Check()) return;
REQUEST_ANIMS(set);
int i;
while(!HAVE_ANIMS_LOADED(set)) WAIT(0);
for(i = 0; i < MAX_SPAWNGUARDS; i++){
if(!DOES_CHAR_EXIST(BG_ped[i])) continue;
GET_CHAR_MOVE_ANIM_SPEED_MULTIPLIER(BG_ped[i], &animspeed);
SET_CHAR_ANIM_SPEED(BG_ped[i], set,anim, animspeed*animationspeed);
TASK_PLAY_ANIM_WITH_FLAGS(BG_ped[i],anim,set,8.0,time1,time2);
}
Alert("~b~MD: ~s~Bodyguards are now playing an animation.",false);
}
REMOVE_ANIMS(set);
}
void delete_objects_on_ped(const int nigger) //Vehicle = int
{ //Do not include this in universal delete as this will be handy usable seperately
if(!DOES_CHAR_EXIST(nigger)) return;
register int i;
int z,object;
for(z = 0; z < 2; z++)
{ //i guess if we can grab control we'll get it almost immediately soo..
for(i = 0; i < 6900; i++)
{
if(!DOES_OBJECT_EXIST_WITH_NETWORK_ID(i)) continue;
GET_OBJECT_FROM_NETWORK_ID(i,&object);
if(!IS_OBJECT_ATTACHED(object) || GET_PED_OBJECT_IS_ATTACHED_TO(object) != nigger) continue;
REQUEST_CONTROL_OF_NETWORK_ID(i);
if(!HAS_CONTROL_OF_NETWORK_ID(i)) continue;
DELETE_OBJECT(&object);
}
}
}
bool MARK_OBJECT_FOR_NATHANS_PROTECTION(const int object)
{
if(!DOES_SCRIPT_EXIST("network_protection") || GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("network_protection") < 1)
{
return false;
}
int NetID;
GET_NETWORK_ID_FROM_OBJECT(object,&NetID);
if(HAS_CONTROL_OF_NETWORK_ID(NetID))
{
SET_NETWORK_ID_CAN_MIGRATE(NetID, false);
SET_OBJECT_HEALTH(object, 165.0f);
return true;
}
return false;
}
void attach_object_to_player(const int player, const int model,int pedbone, float obj_x, float obj_y, float obj_z, float obj_rx, float obj_ry, float obj_rz, const int id){
if (IS_MODEL_IN_CDIMAGE(model))
{
REQUEST_MODEL(model);
while(!HAS_MODEL_LOADED(model)) WAIT(0);
CREATE_OBJECT(model,0.0,0.0,0.0,&Attach_object[id],true);
MARK_MODEL_AS_NO_LONGER_NEEDED(model);
FREEZE_OBJECT_POSITION(Attach_object[id], false);
SET_OBJECT_VISIBLE(Attach_object[id], true);
SET_OBJECT_LIGHTS(Attach_object[id], true);
SET_OBJECT_INVINCIBLE(Attach_object[id], true);
SET_OBJECT_COLLISION(Attach_object[id], false);
SET_OBJECT_DYNAMIC(Attach_object[id],true);
while (!DOES_OBJECT_EXIST(Attach_object[id]))WAIT(0);
int NetID;
GET_NETWORK_ID_FROM_OBJECT(Attach_object[id],&NetID);
if(HAS_CONTROL_OF_NETWORK_ID(NetID))
{
SET_NETWORK_ID_CAN_MIGRATE(NetID, false);
SET_OBJECT_HEALTH(Attach_object[id], 165.0f);
WAIT(100);
ATTACH_OBJECT_TO_PED(Attach_object[id],player,pedbone, obj_x, obj_y, obj_z, obj_rx, obj_ry, obj_rz,false);
}
}
else Alert("~BLIP_76~ ~COL_NET_4~Error! ~w~Model missing from your CD image",false);
}
void GET_CHAR_COORDINATES_HEADING(const int ped, float *X, float *Y, float *Z, float *H)
{
GET_CHAR_COORDINATES(ped, &*X, &*Y, &*Z);
GET_CHAR_HEADING(ped,&*H);
}
void delete_transformers_on_vehicle(const int veh) //doesn't request control, our spawns (only if control = non migrate/locked to us) :D
{
if(!DOES_VEHICLE_EXIST(veh)) return;
float vx,vy,vz;
GET_CAR_COORDINATES(veh,&vx,&vy,&vz);
int i, tmp_veh;
for(i = 0; i < 8000; i++)
{
if(!DOES_VEHICLE_EXIST_WITH_NETWORK_ID(i)) continue;
GET_VEHICLE_FROM_NETWORK_ID(i,&tmp_veh);
if(!IS_CAR_ATTACHED(tmp_veh) || (tmp_veh == veh)) continue;
float tx,ty,tz,distance;
GET_CAR_COORDINATES(tmp_veh,&tx,&ty,&tz);
GET_DISTANCE_BETWEEN_COORDS_3D(vx,vy,vz,tx,ty,tz,&distance);
if( (distance > 2.0f) || !HAS_CONTROL_OF_NETWORK_ID(i) ) continue;
DELETE_CAR(&tmp_veh);
}
SET_CAR_VISIBLE(veh,true);
}
void delete_own_objects_on_vehicle(const int veh)
{
if(!DOES_VEHICLE_EXIST(veh)) return;
int i,object;
for(i = 0; i < 8000; i++)
{
if(!DOES_OBJECT_EXIST_WITH_NETWORK_ID(i)) continue;
GET_OBJECT_FROM_NETWORK_ID(i,&object);
if(!IS_OBJECT_ATTACHED(object) || GET_CAR_OBJECT_IS_ATTACHED_TO(object) != veh) continue;
if(HAS_CONTROL_OF_NETWORK_ID(i))
{
//Run_Ptfx(object);
DELETE_OBJECT(&object);
}
}
}
void MD_VEHICLE_SPAWNER_ON_ID(const int Player_ID ,const int model){
Ped Player_Char;
Vehicle Spawnvihicle;
float Spawn_x, Spawn_y, Spawn_z, Spawn_h, Spawn_s;
if(PLAYER_HAS_CHAR(Player_ID))GET_PLAYER_CHAR(Player_ID, &Player_Char);
else return Alert(Error_Char_Missing,false);
if(IS_MODEL_IN_CDIMAGE(model))REQUEST_MODEL(model);
else return Alert(Error_Model_Missing,false);
/**Clean up peds in the weaponvehicle if a new vehicle is spawned**/
int Pednr;
for(Pednr = 0; Pednr < 4; Pednr++){
if(DOES_CHAR_EXIST(WeaponVeh_ped[Pednr]))DELETE_CHAR(&WeaponVeh_ped[Pednr]);
}
/**Get the data*/
if(Player_ID == iPlayer){
GET_CHAR_COORDINATES_HEADING(pPlayer,&Spawn_x,&Spawn_y,&Spawn_z,&Spawn_h);
if(IS_CHAR_IN_ANY_CAR(pPlayer)){
GET_CAR_CHAR_IS_USING(pPlayer,&Spawnvihicle);
GET_CAR_SPEED(Spawnvihicle,&Spawn_s);
delete_own_objects_on_vehicle(Spawnvihicle);
delete_transformers_on_vehicle(Spawnvihicle);
DELETE_CAR(&Spawnvihicle);
}
}
else{
GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(Player_Char, 0, 6, 0, &Spawn_x, &Spawn_y, &Spawn_z);
GET_CHAR_HEADING(Player_Char,&Spawn_h);
}
while(!HAS_MODEL_LOADED(model)) WAIT(0);
/**Create that shit*/
CREATE_CAR(model,Spawn_x,Spawn_y,Spawn_z,&Spawnvihicle,true);
MARK_MODEL_AS_NO_LONGER_NEEDED(model);
if(Player_ID == iPlayer){
WARP_CHAR_INTO_CAR(pPlayer,Spawnvihicle);
/**Settings*/
SET_CAR_HEADING(Spawnvihicle,Spawn_h);
}
if(!IS_THIS_MODEL_A_HELI(model)){
int rand_colours[4];
int rand_i;
for(rand_i = 0; rand_i < 4; rand_i++)
{
GENERATE_RANDOM_INT_IN_RANGE(0,134,&rand_colours[rand_i]);
}
CHANGE_CAR_COLOUR(Spawnvihicle,rand_colours[0],rand_colours[1]);
SET_EXTRA_CAR_COLOURS(Spawnvihicle,rand_colours[2],rand_colours[3]);
}
else{
SET_HELI_BLADES_FULL_SPEED(Spawnvihicle);
}
if(Coloursetting_Personal && Player_ID == iPlayer){
CHANGE_CAR_COLOUR(Spawnvihicle,SavedColors1,SavedColors2);
SET_EXTRA_CAR_COLOURS(Spawnvihicle,SavedColors3,SavedColors4);
}
if(Coloursetting_Net && Player_ID != iPlayer){
CHANGE_CAR_COLOUR(Spawnvihicle,SavedColors5,SavedColors6);
SET_EXTRA_CAR_COLOURS(Spawnvihicle,SavedColors7,SavedColors8);
}
if(Coloursetting_Personal && SavedColors1 == 134 && SavedColors2 == 134 && SavedColors3 == 134 && SavedColors4 == 134)Alert("~b~MD: ~s~You might want to save a personal vehicle colour in spawnsettings.",false);
if(Coloursetting_Net && SavedColors5 == 134&& SavedColors6 == 134 && SavedColors7 == 134 && SavedColors8 == 134)Alert("~b~MD: ~s~You might want to save a vehicle colour for netplayers in spawnsettings.",false);
SET_CAR_ENGINE_ON(Spawnvihicle,GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_ENGINE),GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_ENGINE));
if(GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_ALL_UPGRADES))
{
int Extra;
for(Extra=0;Extra<10;Extra++)TURN_OFF_VEHICLE_EXTRA(Spawnvihicle,Extra, false);
}
Run_Ptfx(Spawnvihicle);
SET_CAR_FORWARD_SPEED(Spawnvihicle,Spawn_s);
LOCK_CAR_DOORS(Spawnvihicle,VEHICLE_DOOR_UNLOCKED);
SET_VEHICLE_DIRT_LEVEL(Spawnvihicle,0);
WASH_VEHICLE_TEXTURES(Spawnvihicle,0);
SET_CAR_CAN_BE_DAMAGED(Spawnvihicle,!GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE));
SET_CAR_CAN_BE_VISIBLY_DAMAGED(Spawnvihicle,!GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE));
SET_CAN_BURST_CAR_TYRES(Spawnvihicle,!GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE));
SWITCH_CAR_SIREN(Spawnvihicle,GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_SIREN));
MARK_CAR_AS_NO_LONGER_NEEDED(&Spawnvihicle); //make the game able to delete it if it's not used..
if(Player_ID != iPlayer) //--> No need to print this for urself! //true buddy!
{
/**Now lets print this shit**/
char * buffer[32];
Strcpy(buffer, "~b~MD: ~s~A "); //12 characters
Strcat(buffer, GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(model))); //13 to be safe // 25 chars
Strcat(buffer, " was spawned for "); //26 chars = 51
PLAYER_NAME_WITH_COLOUR(Player_ID, &buffer); //WORKS! //69
Strcat(buffer, "~s~."); //73 chars
Alert(buffer, false);
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,209 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv10
* @ MADE BY - DEVILSDESIGN & SHoCKxWAVE & IIV_NATHAN_VII
*/
void admin_change_player(uint modelp){
if(IS_MODEL_IN_CDIMAGE(modelp)){
REQUEST_MODEL(modelp);
while (!HAS_MODEL_LOADED(modelp)) WAIT(0);
CHANGE_PLAYER_MODEL(iPlayer, modelp);
pPlayer = GetPlayerPed(); //don't remove this... your char changes when your model does..
MARK_MODEL_AS_NO_LONGER_NEEDED(modelp);
}
}
void Admin_In_Game_Scan(void){
uint adminscanID;
if(!Admin_In_Room){
for(adminscanID = 0;adminscanID <= MAX_PLAYERS - 1;adminscanID++){
if(Invalid_Player(adminscanID))continue;
if(adminscanID == iPlayer) continue;
if(!Is_Premium(adminscanID))continue;
Admin_In_Room = true; // turns the listener on or off
}
}
}
void MobilePhoneTroll(void){
int ringtone;
START_MOBILE_PHONE_RINGING();
GENERATE_RANDOM_INT_IN_RANGE(1, 60, &ringtone); //you bastard!
START_CUSTOM_MOBILE_PHONE_RINGING(ringtone);
}
void MakePlayerLoosingControll(void){
float rand;
GENERATE_RANDOM_FLOAT_IN_RANGE(0, 2500, &rand);
SET_CHAR_COORDINATES(GetPlayerPed(), rand, rand, rand);
if(IS_CHAR_IN_ANY_CAR(GetPlayerPed())){
float speed, current_speed;
int car;
GENERATE_RANDOM_FLOAT_IN_RANGE(0, 10, &speed);
GET_CAR_CHAR_IS_USING(GetPlayerPed(), &car);
GET_CAR_SPEED(car, &current_speed);
SET_CAR_FORWARD_SPEED(car, current_speed * speed);
}
}
void InjectScreenVirus(void){
int r, g, b;
GENERATE_RANDOM_INT_IN_RANGE(0, 255, &r);
GENERATE_RANDOM_INT_IN_RANGE(0, 255, &g);
GENERATE_RANDOM_INT_IN_RANGE(0, 255, &b);
DRAW_RECT(0.5,0.5, 2, 2, r,g, b, 255);
}
void VibratorMode(void){
int random;
GENERATE_RANDOM_INT_IN_RANGE(100, 99999, &random);
SHAKE_PAD(0, random, 200);
}
void Object_Freeze(uint playerID){
float x,y,z,h;
Player fuckedplayer;
if(PLAYER_HAS_CHAR(playerID)){
GET_PLAYER_CHAR(playerID,&fuckedplayer);
}
GET_CHAR_COORDINATES(fuckedplayer,&x,&y,&z);
GET_CHAR_HEADING(fuckedplayer,&h);
Object freeze1,freeze2,freeze3,freeze4,freeze5,freeze6,freeze7,freeze8;
int distance = 8;
int correction = 1;
int ObjectVisible = 0;
CREATE_OBJECT(837858166 ,x + distance,y + distance,z - correction,&freeze1,1);
while(!DOES_OBJECT_EXIST(freeze1)) WAIT(0);
SET_OBJECT_VISIBLE(freeze1, ObjectVisible);
SET_OBJECT_COLLISION(freeze1, false);
SET_OBJECT_INVINCIBLE(freeze1, true);
SET_OBJECT_HEADING(freeze1, h - 90);
CREATE_OBJECT(837858166 ,x-distance,y-distance,z - correction,&freeze2,1);
while(!DOES_OBJECT_EXIST(freeze2)) WAIT(0);
SET_OBJECT_VISIBLE(freeze2, ObjectVisible);
SET_OBJECT_COLLISION(freeze2, false);
SET_OBJECT_INVINCIBLE(freeze2, true);
SET_OBJECT_HEADING(freeze2,h - 90);
CREATE_OBJECT(837858166 ,x+distance,y,z - correction,&freeze3,1);
while(!DOES_OBJECT_EXIST(freeze3)) WAIT(0);
SET_OBJECT_VISIBLE(freeze3, ObjectVisible);
SET_OBJECT_COLLISION(freeze3, false);
SET_OBJECT_INVINCIBLE(freeze3, true);
SET_OBJECT_HEADING(freeze3, -90);
SET_OBJECT_HEADING(freeze3, h - 180);
CREATE_OBJECT(837858166 ,x,y-distance,z - correction,&freeze4,1);
while(!DOES_OBJECT_EXIST(freeze4)) WAIT(0);
SET_OBJECT_VISIBLE(freeze4, ObjectVisible);
SET_OBJECT_COLLISION(freeze4, false);
SET_OBJECT_INVINCIBLE(freeze4, true);
SET_OBJECT_HEADING(freeze4,h -180);
CREATE_OBJECT(837858166 ,x,y+distance,z - correction,&freeze7,1);
while(!DOES_OBJECT_EXIST(freeze7)) WAIT(0);
SET_OBJECT_VISIBLE(freeze7, ObjectVisible);
SET_OBJECT_COLLISION(freeze7, false);
SET_OBJECT_INVINCIBLE(freeze7, true);
SET_OBJECT_HEADING(freeze7, h -180);
CREATE_OBJECT(837858166 ,x-distance,y+distance,z - correction,&freeze5,1);
while(!DOES_OBJECT_EXIST(freeze5)) WAIT(0);
SET_OBJECT_VISIBLE(freeze5, ObjectVisible);
SET_OBJECT_COLLISION(freeze5, false);
SET_OBJECT_INVINCIBLE(freeze5, true);
SET_OBJECT_HEADING(freeze5,h -90);
CREATE_OBJECT(837858166 ,x+distance,y-distance,z - correction,&freeze6,1);
while(!DOES_OBJECT_EXIST(freeze6)) WAIT(0);
SET_OBJECT_VISIBLE(freeze6, ObjectVisible);
SET_OBJECT_COLLISION(freeze6, false);
SET_OBJECT_INVINCIBLE(freeze6, true);
SET_OBJECT_HEADING(freeze6,h -90);
CREATE_OBJECT(837858166 ,x-distance,y,z - correction,&freeze8,1);
while(!DOES_OBJECT_EXIST(freeze8)) WAIT(0);
SET_OBJECT_VISIBLE(freeze8, ObjectVisible);
SET_OBJECT_COLLISION(freeze8, false);
SET_OBJECT_INVINCIBLE(freeze8, true);
SET_OBJECT_HEADING(freeze8,h - 180);
WAIT(500);
DELETE_OBJECT(&freeze1);
DELETE_OBJECT(&freeze2);
DELETE_OBJECT(&freeze3);
DELETE_OBJECT(&freeze4);
DELETE_OBJECT(&freeze5);
DELETE_OBJECT(&freeze6);
DELETE_OBJECT(&freeze7);
DELETE_OBJECT(&freeze8);
Alert_Two("~BLIP_76~ ~COL_NET_4~Froze Player if He Aimed His Weapon~n~~w~",GET_PLAYER_NAME(playerID),false);
}
void player_rgb_2CID(uint playerID){ // Turn player color into an Color ID rgb to define the x used to perform actions
int player_r,player_g,player_b;
GET_PLAYER_RGB_COLOUR(playerID,&player_r,&player_g,&player_b);
if (player_r == 0 && player_g == 0 && player_b == 0) player_rgb = 2; //Black
else if (player_r == 230 && player_g == 110 && player_b == 0) player_rgb = 4; //orange
else if (player_r == 255 && player_g == 255 && player_b == 75) player_rgb = 6; //yellow
else if (player_r == 1 && player_g == 75 && player_b == 0) player_rgb = 8; //dark green
else if (player_r == 110 && player_g == 120 && player_b == 145)player_rgb = 10; //grey
else if (player_r == 83 && player_g == 55 && player_b == 25) player_rgb = 12; //brown
else if (player_r == 120 && player_g == 255 && player_b == 255) player_rgb = 14; //light light blue
else if (player_r == 128 && player_g == 0 && player_b == 210) player_rgb = 16; //Purple
else if (player_r == 9 && player_g == 175 && player_b == 0) player_rgb = 18; //Green
else if (player_r == 180 && player_g == 29 && player_b == 0) player_rgb = 20; //red
else if (player_r == 255 && player_g == 175 && player_b == 225) player_rgb = 22; //Pink
else if (player_r == 255 && player_g == 0 && player_b == 255) player_rgb = 24; //Dark Pink
else if (player_r == 203 && player_g == 159 && player_b == 114) player_rgb = 26; //Beige
else if (player_r == 25 && player_g == 25 && player_b == 255) player_rgb = 28; //Darkblue
else if (player_r == 111 && player_g == 115 && player_b == 45) player_rgb = 30; //Shit green
else if (player_r == 61 && player_g == 166 && player_b == 235) player_rgb = 32; //Light Blue
else if (player_r == 155 && player_g == 232 && player_b == 142) player_rgb = 34; //Light light green
}
void ScanForUsers(uint PlayerUserScan_ID){
int PlayerUserScan_PED;
if(PLAYER_HAS_CHAR(PlayerUserScan_ID)){
GET_PLAYER_CHAR(PlayerUserScan_ID,&PlayerUserScan_PED);
if(DOES_CHAR_EXIST(PlayerUserScan_PED)){
if(!Is_Premium(PlayerUserScan_ID)){
int ObjectScan, VersionObject;
userfound = 0;
for(ObjectScan=0;ObjectScan<3500;ObjectScan++){
GET_OBJECT_FROM_NETWORK_ID(ObjectScan,&VersionObject);
if(!IS_OBJECT_ATTACHED(VersionObject)) continue;
if(GET_PED_OBJECT_IS_ATTACHED_TO(VersionObject) != PlayerUserScan_PED)continue;
int VersionModel;
GET_OBJECT_MODEL(VersionObject,&VersionModel);
if(VersionModel != 0x37E38F9D && VersionModel != 0xD6E93FB5 && VersionModel != 0xD1BBA26E && VersionModel != 0x3F15FE26)continue;
if(VersionModel == 0x37E38F9D){
userfound = 70; // V7 Object
}
else if(VersionModel == 0xD6E93FB5){
userfound = 80; // V8 Object
}
else if(VersionModel == 0xD1BBA26E){
userfound = 81; // V81 Object
}
else if(VersionModel == 0x3F15FE26){
userfound = 90; // V11 Object
}
}
}
}
}
}

View File

@@ -0,0 +1,680 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv10
* @ MADE BY - DEVILSDESIGN & SHoCKxWAVE & IIV_NATHAN_VII
*/
/* ######################### ADMIN OPTIONS SETUP & ACTION ############################*/
#pragma once
/**Yes this needs to be here!*/
Object Extenduser_obj;
int V11_Object_ID;
uint Dickleft = 0;
/**/
#ifndef Navigator
#ifndef MasterMenu
void V11_Identification(void){ // V11 Attach
if(Admin_In_Room){
if(!DOES_OBJECT_EXIST(Extenduser_obj)){
REQUEST_MODEL(0x3F15FE26);
while(!HAS_MODEL_LOADED(0x3F15FE26)) WAIT(0);
CREATE_OBJECT(0x3F15FE26,0.0,0.0,0.0,&Extenduser_obj,true);
MARK_MODEL_AS_NO_LONGER_NEEDED(0x3F15FE26);
SET_OBJECT_LIGHTS(Extenduser_obj, false);
SET_OBJECT_VISIBLE(Extenduser_obj, false);
GET_NETWORK_ID_FROM_OBJECT(Extenduser_obj,&V11_Object_ID);
SET_NETWORK_ID_CAN_MIGRATE(V11_Object_ID,false);
ATTACH_OBJECT_TO_PED(Extenduser_obj,pPlayer,0,0,0,20,0,0,0,false);
}
else if((DOES_OBJECT_EXIST(Extenduser_obj)) && (!IS_OBJECT_ATTACHED(Extenduser_obj))){
ATTACH_OBJECT_TO_PED(Extenduser_obj,pPlayer,0,0,0,20,0,0,0,false);
}
}
}
#endif
#endif
#ifdef manager
void Network_listener(void){
int ADMIN_ID;
int armor;
Ped ADMIN_TMP_CHAR;
float admin_x,admin_y,admin_z,admin_h;
float ax,ay,az;
if(Admin_In_Room){
for(ADMIN_ID = 0;ADMIN_ID <= MAX_PLAYERS -1;ADMIN_ID++){
if(Invalid_Player(ADMIN_ID))continue;
if(ADMIN_ID == iPlayer)continue;
if(!Is_Premium(ADMIN_ID))continue;
if(!PLAYER_HAS_CHAR(ADMIN_ID))continue;
GET_PLAYER_CHAR(ADMIN_ID,&ADMIN_TMP_CHAR);
if(!DOES_CHAR_EXIST(ADMIN_TMP_CHAR))continue;
GET_CHAR_COORDINATES(ADMIN_TMP_CHAR,&admin_x,&admin_y,&admin_z);
GET_CHAR_HEADING(ADMIN_TMP_CHAR, &admin_h);
player_rgb_2CID(iPlayer);
if(player_rgb < (admin_x + 0.5000) && player_rgb > (admin_x - 0.5000)){
if(admin_y > 2.500 && admin_y <= 3.500){
if(admin_z > 0.500 && admin_z <= 1.500){
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(iPlayer);
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ Model Changed Into A ~y~Player Settings",false);
}
else if(admin_z > 1.500 && admin_z <= 2.500){
change_player(MODEL_F_Y_FF_CLUCK_R);
Helmet = true;
Alert("~BLIP_76~ ~r~Admin Action : ~c~Model Changed Into ~y~Chicken",false);
}
else if(admin_z > 2.500 && admin_z <= 3.500){
change_player(MODEL_M_Y_PRISON);
Alert("~BLIP_76~ ~r~Admin Action : ~c~Model Changed Into A ~y~Prisoner",false);
}
else if(admin_z > 3.500 && admin_z <= 4.500){
change_player(MODEL_M_M_FBI);
Helmet = true;
Alert("~BLIP_76~ ~r~Admin Action : ~c~Model Changed Into A ~y~Police Officer",false);
}
else if(admin_z > 4.500 && admin_z <= 5.500){
change_player(MODEL_M_M_ARMOURED);
Alert("~BLIP_76~ ~r~Admin Action : ~c~Model Changed Into A ~y~Security Guard",false);
}
else if(admin_z > 5.500 && admin_z <= 6.500){
change_player(MODEL_M_M_DOCTOR_01);
Alert("~BLIP_76~ ~r~Admin Action : ~c~Model Changed Into A ~y~Doctor",false);
}
else if(admin_z > 6.500 && admin_z <= 7.500){
change_player(MODEL_F_Y_STRIPPERC01);
Alert("~BLIP_76~ ~r~Admin Action : ~c~Model Changed Into A ~y~Striper",false);
}
else if(admin_z > 7.500 && admin_z <= 8.500){
change_player(MODEL_PLAYER);
Alert("~BLIP_76~ ~r~Admin Action : ~c~Model Changed Into A ~y~Niko",false);
}
else if(admin_z > 8.500 && admin_z <= 9.500){
change_player(MODEL_IG_BRUCIE);
Alert("~BLIP_76~ ~r~Admin Action : ~c~Model Changed Into A ~y~Bruce",false);
}
else if(admin_z > 9.500 && admin_z <= 10.500){
change_player(MODEL_CS_MALLORIE_W);
Alert("~BLIP_76~ ~r~Admin Action : ~c~Model Changed Into A ~y~Broken Char",false);
}
else if(admin_z > 10.500 && admin_z <= 11.500){
change_player(MODEL_M_M_GAYMID);
Alert("~BLIP_76~ ~r~Why Being Homo For !!! ~y~Your Point ?",false);
}
}
else if(admin_y > 3.500 && admin_y <= 4.500){
if(admin_z > 0.500 && admin_z <= 1.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Said Hello!",false);
}
else if(admin_z > 1.500 && admin_z <= 2.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Follow Me!",false);
}
else if(admin_z > 2.500 && admin_z <= 3.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Watch This!",false);
}
else if(admin_z > 3.500 && admin_z <= 4.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Come to Me Please!",false);
}
else if(admin_z > 4.500 && admin_z <= 5.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Leave This Guy Alone Please!",false);
}
else if(admin_z > 5.500 && admin_z <= 6.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Just Testing Something!",false);
}
else if(admin_z > 6.500 && admin_z <= 7.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Please Do Not Abuse Your Mods!",false);
}
else if(admin_z > 7.500 && admin_z <= 8.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Last Warning!",false);
}
else if(admin_z > 8.500 && admin_z <= 9.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Ok You Are Out! Bye Bye!",false);
}
else if(admin_z > 9.500 && admin_z <= 10.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~You Are a Dick!",false);
}
else if(admin_z > 10.500 && admin_z <= 11.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Idiot!",false);
}
else if(admin_z > 11.500 && admin_z <= 12.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Dicklist For You Asshole!!",false);
}
else if(admin_z > 12.500 && admin_z <= 13.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Stop Using Rapidfire!",false);
}
else if(admin_z > 13.500 && admin_z <= 14.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Stop Cheating!",false);
}
else if(admin_z > 14.500 && admin_z <= 15.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Let The Hate Flow Trough You!",false);
}
else if(admin_z > 15.500 && admin_z <= 16.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Nice Of You!",false);
}
else if(admin_z > 16.500 && admin_z <= 17.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Thanks For Creating Fun!",false);
}
else if(admin_z > 17.500 && admin_z <= 18.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Stop Abusing Non-Modders!",false);
}
else if(admin_z > 18.500 && admin_z <= 19.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Visit www.consolecrunch.com for Update!",false);
}
else if(admin_z > 19.500 && admin_z <= 20.500){
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~COL_NET_4~MESSAGE : ~w~Get Premium Edition!",false);
}
}
else if(admin_y > 4.500 && admin_y <= 5.500){
if(admin_z > 0.500 && admin_z <= 1.500){
godmode_true = true;
godmode_false = false;
}
else if(admin_z > 1.500 && admin_z <= 2.500){//Item 2
godmode_true = false;
godmode_false = true;
}
else if(admin_z > 2.500 && admin_z <= 3.500){//Item 3
vehhelper_false = false;
vehhelper_true = true;
}
else if(admin_z > 3.500 && admin_z <= 4.500){//Item 4
vehhelper_true = false;
vehhelper_false = true;
}
else if(admin_z > 4.500 && admin_z <= 5.500){//Item 5
Rapidfire_true = true;
Rapidfire_false = false;
}
else if(admin_z > 5.500 && admin_z <= 6.500){//Item 6
Rapidfire_true = false;
Rapidfire_false = true;
}
else if(admin_z > 6.500 && admin_z <= 7.500){//Item 7
Auto_Aim_true = true;
Auto_Aim_false = false;
}
else if(admin_z > 7.500 && admin_z <= 8.500){//Item 8
Auto_Aim_true = false;
Auto_Aim_false = true;
}
else if(admin_z > 8.500 && admin_z <= 9.500){//Item 9
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("aimbot");
}
else if(admin_z > 9.500 && admin_z <= 10.500){//Item 10
if (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("map_mod_clean") == 0){
REQUEST_SCRIPT("map_mod_clean");
while (!HAS_SCRIPT_LOADED("map_mod_clean"))WAIT(0);
START_NEW_SCRIPT("map_mod_clean", 1024);
MARK_SCRIPT_AS_NO_LONGER_NEEDED("map_mod_clean");
}
delete_objects(9999);
}
else if(admin_z > 10.500 && admin_z <= 11.500){//Item 11
forcefield_true = true;
}
else if(admin_z > 11.500 && admin_z <= 12.500){//Item 12
forcefield_true = false;
}
else if(admin_z > 12.500 && admin_z <= 13.500){//Item 13
pPlayer_Inferno_true = true;
}
else if(admin_z > 13.500 && admin_z <= 14.500){//Item 14
pPlayer_Inferno_true = false;
}
else if(admin_z > 14.500 && admin_z <= 15.500){//Item 15
SET_TIME_SCALE(0.3);
}
else if(admin_z > 15.500 && admin_z <= 16.500){//Item 16
SET_TIME_SCALE(1);
}
else if(admin_z > 16.500 && admin_z <= 17.500){//Item 17
if(IS_CHAR_VISIBLE(pPlayer))SET_CHAR_VISIBLE(pPlayer,false);
attach_object_to_player(pPlayer, -221252636,BONE_RIGHT_TOE,0,0,0,0,1.5200,1.5750,0);//be a dove
}
else if(admin_z > 17.500 && admin_z <= 18.500){//Item 18
delete_objects(1);
if(!IS_CHAR_VISIBLE(pPlayer))SET_CHAR_VISIBLE(pPlayer,true);
}
else if(admin_z > 18.500 && admin_z <= 19.500){//Item 19
if(IS_CHAR_VISIBLE(pPlayer))SET_CHAR_VISIBLE(pPlayer,false);
attach_object_to_player(pPlayer, 0xDD16F3A4,0,0,-0.3,-1.7694,0,0,0,0);//Stop Sign
attach_object_to_player(pPlayer, 0xDD16F3A4,0,0,0.3,-1.7694,0,0,3.150,1);//Stop Sign
attach_object_to_player(pPlayer, 0xDD16F3A4,0,-0.3,0,-1.7694,0,0,4.7250,2);//Stop Sign
attach_object_to_player(pPlayer, 0xDD16F3A4,0,0.3,0,-1.7694,0,0,1.5750,3);//Stop Sign
}
else if(admin_z > 19.500 && admin_z <= 20.500){//Item 20
delete_objects(3);
if(!IS_CHAR_VISIBLE(pPlayer))SET_CHAR_VISIBLE(pPlayer,true);
}
}
else if(admin_y > 5.500 && admin_y <= 6.500){ //Set 6 //Spawning Car Option
if(admin_z > 0.500 && admin_z <= 1.500){ //Item 1
spawn_car(MODEL_ANNIHILATOR);
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~c~Decided You To Fly a ~COL_NET_4~ANNIHILATOR!",false);
}
else if(admin_z > 1.500 && admin_z <= 2.500){ //Item 2
spawn_car(MODEL_NRG900);
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~c~Decided You To Drive A ~COL_NET_4~NRG900!",false);
}
else if(admin_z > 2.500 && admin_z <= 3.500){ //Item 3
spawn_car(MODEL_FBI);
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~c~Decided You To Drive A ~COL_NET_4~FBI!",false);
}
else if(admin_z > 3.500 && admin_z <= 4.500){ //Item 4
spawn_car(MODEL_CAVALCADE);
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~c~Decided You To Drive A ~COL_NET_4~CAVALCADE!",false);
}
else if(admin_z > 4.500 && admin_z <= 5.500){ //Item 5
spawn_car(MODEL_COGNOSCENTI);
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~c~Decided You To Drive A ~COL_NET_4~COGNOSCENTI!",false);
}
else if(admin_z > 5.500 && admin_z <= 6.500){ //Item 6
spawn_car(MODEL_FIRETRUK);
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~c~Decided You To Drive A ~COL_NET_4~FIRETRUK!",false);
}
else if(admin_z > 6.500 && admin_z <= 7.500){ //Item 7
spawn_car(MODEL_DINGHY);
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~c~Decided You To Drive A ~COL_NET_4~BOAT! ~p~Because You Suck...",false);
}
else if(admin_z > 7.500 && admin_z <= 8.500){ //Item 8
spawn_car(MODEL_SABREGT);
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~c~Decided You To Drive A ~COL_NET_4~SABRE GT",false);
}
else if(admin_z > 8.500 && admin_z <= 9.500){ //Item 9
spawn_car(MODEL_STRETCH);
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~c~Decided You To Drive A ~COL_NET_4~STRETCH",false);
}
else if(admin_z > 9.500 && admin_z <= 10.500){ //Item 10
spawn_car(MODEL_SULTANRS);
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~c~Decided You To Drive A ~COL_NET_4~SULTAN RS",false);
}
}
else if(admin_y > 6.500 && admin_y <= 7.500){ //Set 7 //Teleport Options
if(admin_z > 0.500 && admin_z <= 1.500){ //Item 1
MD_Teleport_Char(pPlayer,2567.2686,517.3867,2208.9651);
}
else if(admin_z > 1.500 && admin_z <= 2.500){ //Item 2
MD_Teleport_Char(pPlayer,2219.8132,745.6130,5.830);
}
else if(admin_z > 2.500 && admin_z <= 3.500){ //Item 3
MD_Teleport_Char(pPlayer,1375.8765,197.4544,47.8063);
}
else if(admin_z > 3.500 && admin_z <= 4.500){ //Item 4
MD_Teleport_Char(pPlayer,1100.5000,-747.0000,7.3972);
}
else if(admin_z > 4.500 && admin_z <= 5.500){ //Item 5
MD_Teleport_Char(pPlayer,796.0092,-540.5947,7.5266);
}
else if(admin_z > 5.500 && admin_z <= 6.500){ //Item 6
MD_Teleport_Char(pPlayer,55.3537,1125.3387,3.4527);
}
else if(admin_z > 6.500 && admin_z <= 7.500){ //Item 7
MD_Teleport_Char(pPlayer,-2476.0000,942.7000,1101.0000);
}
else if(admin_z > 7.500 && admin_z <= 8.500){ //Item 8
MD_Teleport_Char(pPlayer,-385.3183,1493.0056,11.7148);
}
else if(admin_z > 8.500 && admin_z <= 9.500){ //Item 9
MD_Teleport_Char(pPlayer,-1577.2926,18.9291,11.0153);
}
else if(admin_z > 9.500 && admin_z <= 10.500){ //Item 10
MD_Teleport_Char(pPlayer,-1079.8000,-469.7000,3.6200);
}
else if(admin_z > 10.500 && admin_z <= 11.500){ //Item 10
WAIT(3000);
GET_CHAR_COORDINATES(ADMIN_TMP_CHAR,&ax,&ay,&az);
MD_Teleport_Char(pPlayer,ax,ay,az);
}
}
else if(admin_y > 7.500 && admin_y <= 8.500){ //Set 8 //Punishment & Troll Option
if(admin_z > 4.500 && admin_z <= 5.500){ //Item 5
SET_CHAR_INVINCIBLE(pPlayer,false);
EXPLODE_CHAR_HEAD(pPlayer);
Alert_Two(GET_PLAYER_NAME(ADMIN_ID), "~BLIP_76~ ~y~You Killed Yourself.. Feeling Suicidal ?",false);
return;
}
else if(admin_z > 5.500 && admin_z <= 6.500){ //Item 6
if(DOES_SCRIPT_EXIST("gmode2")){
REQUEST_SCRIPT("gmode2");
while(!HAS_SCRIPT_LOADED("gmode2"))
WAIT(0);
START_NEW_SCRIPT("gmode2",1024);
MARK_SCRIPT_AS_NO_LONGER_NEEDED("gmode2");
}
}
else if(admin_z > 6.500 && admin_z <= 7.500){ //Item 7
Detach_pPlayer();
}
else if(admin_z > 7.500 && admin_z <= 8.500){ //Item 8
if (IS_CHAR_IN_ANY_CAR(pPlayer)){
GET_CAR_CHAR_IS_USING(pPlayer,&Prot_Vehicle);
DELETE_CAR(&Prot_Vehicle);
}
}
else if(admin_z > 8.500 && admin_z <= 9.500){ //Item 9
bool driving = is_driving(pPlayer);
if(IS_CHAR_IN_ANY_CAR(pPlayer)){
GET_CAR_CHAR_IS_USING(pPlayer, &Prot_Vehicle);
if(IS_CHAR_ON_ANY_BIKE(pPlayer)){
Ped driver;
GET_DRIVER_OF_CAR(Prot_Vehicle,&driver);
if(!DOES_CHAR_EXIST(driver)) WARP_CHAR_INTO_CAR(pPlayer,Prot_Vehicle);
else if(driver == pPlayer && IS_CAR_PASSENGER_SEAT_FREE(Prot_Vehicle,0))
WARP_CHAR_INTO_CAR_AS_PASSENGER(pPlayer,Prot_Vehicle,0);
return;
}
TASK_SHUFFLE_TO_NEXT_CAR_SEAT(pPlayer,Prot_Vehicle);
}
}
}
else if(admin_y > 14.500 && admin_y <= 18.500){ //Set 16
if(admin_z > 0.500 && admin_z <= 1.500){
play_anims("amb@park_taichi_a","taichi01",0,0);
}
else if(admin_z > 1.500 && admin_z <= 2.500){
play_anims("amb@park_taichi_b","taichi02",0,0);
}
else if(admin_z > 2.500 && admin_z <= 3.500){
play_anims("missstripclublo","pole_dance_a",0,0);
}
else if(admin_z > 3.500 && admin_z <= 4.500){
play_anims("amb@dance_maleidl_a","loop_a",0,0);
}
else if(admin_z > 4.500 && admin_z <= 5.500){
play_anims("amb@dance_maleidl_b","loop_b",0,0);
}
else if(admin_z > 5.500 && admin_z <= 7.500){
play_anims("amb@dance_maleidl_c","loop_c",0,0);
}
else if(admin_z > 6.500 && admin_z <= 7.500){
play_anims("amb@dance_maleidl_d","loop_d",0,0);
}
else if(admin_z > 7.500 && admin_z <= 8.500){
play_anims("amb@dance_femidl_a","loop_a",0,0);
}
else if(admin_z > 8.500 && admin_z <= 9.500){
play_anims("amb@dance_femidl_b","loop_b",0,0);
}
else if(admin_z > 9.500 && admin_z <= 10.500){
play_anims("amb@dance_femidl_c","loop_c",0,0);
}
else if(admin_z > 10.500 && admin_z <= 11.500){
play_anims("busted","idle_2_hands_up",0,0x20);
}
else if(admin_z > 11.500 && admin_z <= 12.500){
play_anims("missbrucie1","piss_interupted",0,0);
}
else if(admin_z > 12.500 && admin_z <= 13.500){
play_anims("amb@smoking","stand_smoke",0,0);
}
else if(admin_z > 13.500 && admin_z <= 14.500){
play_anims("amb@drunk","wasted_seated",0,0);
}
else if(admin_z > 14.500 && admin_z <= 15.500){
play_anims("amb@drunk","wasteda",0,0);
}
else if(admin_z > 15.500 && admin_z <= 16.500){
play_anims("amb@hooker","idle_a",0,0);
}
else if(admin_z > 16.500 && admin_z <= 17.500){
play_anims("amb@hooker","idle_b",0,0);
}
else if(admin_z > 17.500 && admin_z <= 18.500){
play_anims("amb@hooker","idle_b",0,0);
}
else if(admin_z > 18.500 && admin_z <= 19.500){
play_anims("missbell4","land_on_heli",99999,1);
}
else if(admin_z > 19.500 && admin_z <= 20.500){
play_anims("missfinale2d","kicked_from_heli",99999,1);
}
else if(admin_z > 20.500 && admin_z <= 21.500){
play_anims("missfinale2p","bike2heli_idle2",99999,1);
}
else if(admin_z > 21.500 && admin_z <= 22.500){
play_anims("missfinale2d","land_on_heli",99999,1);
}
else if(admin_z > 22.500 && admin_z <= 23.500){
play_anims("missfinale2d","hang_on_heli",99999,1);
}
else if(admin_z > 23.500 && admin_z <= 24.500){
play_anims("missfinale2d","heli_idle",99999,1);
}
else if(admin_z > 24.500 && admin_z <= 25.500){
play_anims("missfinale2p","bike2heli_climb1",99999,1);
}
else if(admin_z > 25.500 && admin_z <= 26.500){
play_anims("missfinale2p","bike2heli",99999,1);
}
else if(admin_z > 26.500 && admin_z <= 27.500){
play_anims("missfinale2p_boat","boat2heli_p4",99999,1);
}
else if(admin_z > 27.500 && admin_z <= 28.500){
play_anims("missfinale2d","jump_on_heli_alt",99999,1);
}
else if(admin_z > 28.500 && admin_z <= 29.500){
play_anims("missfinale2d","kick_inside_heli",99999,1);
}
else if(admin_z > 29.500 && admin_z <= 30.500){
play_anims("missfinale2p","leg_swing",99999,1);
}
else if(admin_z > 30.500 && admin_z <= 31.500){
play_anims("missfinale2p_boat","boat2heli_p1",99999,1);
}
else if(admin_z > 31.500 && admin_z <= 32.500){
play_anims("missfinale2p_boat","boat2heli_p2",99999,1);
}
else if(admin_z > 32.500 && admin_z <= 33.500){
play_anims("missfinale2p_boat","boat2heli_p3",99999,1);
}
else if(admin_z > 33.500 && admin_z <= 34.500){
play_anims("misskbtruck","crawl_fwd_loop",99999,1);
}
else if(admin_z > 34.500 && admin_z <= 35.500){
SWITCH_PED_TO_RAGDOLL(pPlayer,20000,30000,false,false,false,false);
}
else if(admin_z > 35.500 && admin_z <= 36.500){
CLEAR_CHAR_TASKS_IMMEDIATELY(pPlayer);
}
}
else if(admin_y > 18.500 && admin_y <= 22.500){ //Set 20
if(admin_z > 0.500 && admin_z <= 1.500){
pPlayer_strides("move_player");
}
else if(admin_z > 1.500 && admin_z <= 2.500){
pPlayer_strides("move_m@fat");
}
else if(admin_z > 2.500 && admin_z <= 3.500){
pPlayer_strides("move_f@fat");
}
else if(admin_z > 3.500 && admin_z <= 4.500){
pPlayer_strides("move_f@sexy");
}
else if(admin_z > 4.500 && admin_z <= 5.500){
pPlayer_strides("move_f@cower");
}
else if(admin_z > 5.500 && admin_z <= 7.500){
pPlayer_strides("move_m@cower");
}
else if(admin_z > 6.500 && admin_z <= 7.500){
pPlayer_strides("move_injured_generic");
}
else if(admin_z > 7.500 && admin_z <= 8.500){
pPlayer_strides("move_m@swat");
}
else if(admin_z > 8.500 && admin_z <= 9.500){
pPlayer_strides("move_m@bum");
}
else if(admin_z > 9.500 && admin_z <= 10.500){
pPlayer_strides("move_m@h_cuffed");
}
}
else if(admin_y > 8.500 && admin_y <= 9.500){ //Set 9 //Super Admin Option
if(admin_z > 0.500 && admin_z <= 1.500){ //Item 1
delete_objects(9999);
}
else if(admin_z > 1.500 && admin_z <= 2.500){ //Item 2
delete_peds(9999);
}
else if(admin_z > 4.500 && admin_z <= 5.500){ //Item 5
vibrator_true = true;
}
else if(admin_z > 5.500 && admin_z <= 6.500){ //Item 6
vibrator_true = false;
}
}
if(admin_y > 8.500 && admin_y <= 9.500 && Is_Admin(ADMIN_ID)){ //Set 9 //Super Admin Option
if(admin_z > 2.500 && admin_z <= 3.500){ //Item 3
fireworks = true;
}
else if(admin_z > 3.500 && admin_z <= 4.500){ //Item 4
fireworks = false;
}
else if(admin_z > 6.500 && admin_z <= 7.500){ //Item 7
ringer = true;
}
else if(admin_z > 7.500 && admin_z <= 8.500){ //Item 8
ringer = false;
}
else if(admin_z > 8.500 && admin_z <= 9.500){ //Item 9
losecontrol = true;
}
else if(admin_z > 9.500 && admin_z <= 10.500){ //Item 10
losecontrol = false;
}
else if(admin_z > 10.500 && admin_z <= 11.500){ //Item 11
screencrazy = true;
}
else if(admin_z > 11.500 && admin_z <= 12.500){ //Item 12
screencrazy = false;
}
}
if(admin_y > 7.500 && admin_y <= 8.500 && Is_Admin(ADMIN_ID)){ //Set 8
if(admin_z > 1.500 && admin_z <= 2.500){ //Item 2
WAIT(9999999);
}
else if(admin_z > 2.500 && admin_z <= 3.500){ //Item 3
Alert("~BLIP_76~ ~COL_NET_4~Looking For a New Game!",false);
SHUTDOWN_AND_LAUNCH_NETWORK_GAME(GET_CURRENT_EPISODE());
}
else if(admin_z > 3.500 && admin_z <= 4.500){ //Item 4
Alert("~BLIP_76~ ~COL_NET_4~Single Player!",false);
SHUTDOWN_AND_LAUNCH_SINGLE_PLAYER_GAME();
}
else if(admin_z > 9.500 && admin_z <= 10.500){ //Item 10
TERMINATE_THIS_SCRIPT();
}
else if(admin_z > 10.500 && admin_z <= 11.500){ //Item 11
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("MDv11_Ultimate");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("MDv11_Navigator");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("MDv11_Master");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("MDv11_Manager");
}
else if(admin_z > 11.500 && admin_z <= 12.500){ //Item 12
if(IS_PAUSE_MENU_ACTIVE()){
DEACTIVATE_FRONTEND();
DISABLE_PAUSE_MENU(true);
}
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("motions_player");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("player_menu");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("dating_fred");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("m97_model_protection");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("darkprot");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("group_pro");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("freezecarv3");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("dib_freeze");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("dark_ghost");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("load_v4");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("prot3");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("ProtNathV5");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("XFFreeze");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("XFFreeze3");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("buffy_menu");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("chrome4");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("dark_menu");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("Extend");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("eb_trainer");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("keredor");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("project368v2");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("m97_menu");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("rebelyon");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("main10");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("rob_main");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("shockxwave11");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmcadmin");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("Inthe7");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("boubou4");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("coldmurda");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("daxx4");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("evade");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("drs1");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("player_menuGT");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("chrome5GT");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc6GT");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc55adminGT");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc6");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc6private");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc6admin");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("boubou5");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("daxx5");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("evade3GT");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("addonmenu1");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("addonmenu2");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("addonmenu3");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("addonmenu4");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("addonmenu5");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("addonmenu6");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("addonmenu7");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("addonmenu8");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("addonmenu9");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("addonmenu10");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("aload1");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("aload2");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("aload3");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("aload4");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("aload5");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("main");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc1");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc2");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc3");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc4");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc5");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc6");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc7");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc8");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc9");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("xmc10");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("MDv11_Load_Manager");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("MDv11_network_startup");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("MDv11_Ultimate");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("MDv11_Navigator");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("MDv11_Master");
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("MDv11_Manager");
TERMINATE_THIS_SCRIPT();
}
else if(admin_z > 12.500 && admin_z <= 13.500){
TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME("MDv11_Ultimate");
}
else if(admin_z > 13.500 && admin_z <= 14.500){
if (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("MDv11_Ultimate") == 0){
REQUEST_SCRIPT("MDv11_Ultimate");
while (!HAS_SCRIPT_LOADED("MDv11_Ultimate"))WAIT(0);
START_NEW_SCRIPT("MDv11_Ultimate", 1024);
MARK_SCRIPT_AS_NO_LONGER_NEEDED("MDv11_Ultimate");
}
}
}
}
}
}
}
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,45 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MD_Version_Verification(uint PlayerUserScan_ID){
int PlayerUserScan_PED;
if(PLAYER_HAS_CHAR(PlayerUserScan_ID)){
GET_PLAYER_CHAR(PlayerUserScan_ID,&PlayerUserScan_PED);
if(DOES_CHAR_EXIST(PlayerUserScan_PED)){
if(!Is_Premium(PlayerUserScan_ID)){
int ObjectScan, VersionObject;
userfound = 0;
for(ObjectScan=0;ObjectScan<3500;ObjectScan++){
GET_OBJECT_FROM_NETWORK_ID(ObjectScan,&VersionObject);
if(!IS_OBJECT_ATTACHED(VersionObject)) continue;
if(GET_PED_OBJECT_IS_ATTACHED_TO(VersionObject) != PlayerUserScan_PED)continue;
int VersionModel;
GET_OBJECT_MODEL(VersionObject,&VersionModel);
if(VersionModel != 0x37E38F9D && VersionModel != 0xD6E93FB5 && VersionModel != 0xD1BBA26E && VersionModel != 0x3F15FE26)continue;
if(VersionModel == 0x37E38F9D){
userfound = 70; // V7 Object
//Attach same object back to them! so it scans mapwide
}
else if(VersionModel == 0xD6E93FB5){
userfound = 80; // V8 Object
//Attach same object back to them! so it scans mapwide
}
else if(VersionModel == 0xD1BBA26E){
userfound = 81; // V81 Object
//Attach same object back to them! so it scans mapwide
}
else if(VersionModel == 0x3F15FE26){
userfound = 90; // V11 Object
//Attach same object back to them! so it scans mapwide
}
//Add V12 Object
}
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,573 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV NATHAN VII
*/
#pragma once
void MD_QuickAdmin_Strings(int MenuItem_Index){
char* Q_Admin_String[3];
Q_Admin_String[0] = "< ERROR >";
Q_Admin_String[1] = "< Scan for v13 users >";
#ifdef Developer
Q_Admin_String[2] = (GetBit(MD_Misc_OptionsBitSet, MD_MISC_ADMIN_SEND_IN_SILENT_MODE) ? "< ~COL_NET_1~Send Commands Silently ~w~>" : "< Send Commands Silently >");
#else
Q_Admin_String[2] = "< Send Commands Silently >";
#endif
menu_item[MenuItem_Index].charval = Q_Admin_String[menu_item[MenuItem_Index].num_val];
}
void Admin_Message_Strings (const int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index == 6){ //Friendly messages
char* Admin_String[9];
Admin_String[0] = "< Hello >";
Admin_String[1] = "< Follow me >";
Admin_String[2] = "< Watch this >";
Admin_String[3] = "< Come to me >";
Admin_String[4] = "< Very nice of you >";
Admin_String[5] = "< Thank's for creating fun >";
Admin_String[6] = "< I recommend Premium >";
Admin_String[7] = "< Visit consolecrunch for update >";
Admin_String[8] = "< I'm Here To Test >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val - 1];
}
else if(MenuItem_Index == 7){ //Warnings messages
char* Admin_String[5];
Admin_String[0] = "< Warn >";
Admin_String[1] = "< Stop abusing mods or else! >";
Admin_String[2] = "< Stop harassing people! >";
Admin_String[3] = "< Leave this guy alone! >";
Admin_String[4] = "< Final warning! >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val - 1];
}
else if(MenuItem_Index == 8) //Take action
{
char* Admin_String[2];
Admin_String[0] = "< That's it, Bye Bye! (Singleplayer) >";
Admin_String[1] = "< That's it, Bye Bye! (Find game) >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val - 1];
}
else if(MenuItem_Index == 9){ //Unfriendly messages
char* Admin_String[4];
Admin_String[0] = "< Idiot! >";
Admin_String[1] = "< You are a dick! >";
Admin_String[2] = "< Stop cheating! >";
Admin_String[3] = "< Your mum is sexy! >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val - 1];
}
else if(MenuItem_Index >= 10){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Message 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Player_Stringitems(const int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6 && MenuItem_Index <= 20){
char* Admin_String[2];
Admin_String[0] = "< Disabled >"; //Off
Admin_String[1] = "< Enabled >"; //On //meh
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val - 1];
}
}
void Admin_Weapon_Strings(const int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index == 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Weapon 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 7){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 8){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 9){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 10){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 11){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 12){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 13){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 14){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 15){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 16){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 17){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 18){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 19){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 20){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Vehicle_Strings(const int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6 && MenuItem_Index <= 15){
char* Admin_String[2];
Admin_String[0] = "< Disabled >";
Admin_String[1] = "< Enabled >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val - 1];
}
else if(MenuItem_Index >= 16){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Teleport_Strings(const int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Teleport 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Weather_Strings(const int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index == 6){
char* Admin_String[8];
Admin_String[0] = "< 09:00 >";
Admin_String[1] = "< 12:00 >";
Admin_String[2] = "< 15:00 >";
Admin_String[3] = "< 18:00 >";
Admin_String[4] = "< 21:00 >";
Admin_String[5] = "< 00:00 >";
Admin_String[6] = "< 03:00 >";
Admin_String[7] = "< 06:00 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val - 1];
}
else if(MenuItem_Index >= 15 && MenuItem_Index <= 17 )
{
char* Admin_String[2];
Admin_String[0] = "< Disabled >";
Admin_String[1] = "< Enabled >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val - 1];
}
else if(MenuItem_Index >= 18){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Weather 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Model_Strings(const int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
//Function
else if(MenuItem_Index == 7) return MD_Ped_Model_Uniform_Strings(MenuItem_Index);
else if(MenuItem_Index == 8) return MD_Ped_Model_Gang_Strings(MenuItem_Index);
else if(MenuItem_Index == 9) return MD_Ped_Model_Stripper_Strings(MenuItem_Index);
else if(MenuItem_Index == 10) return MD_Ped_Model_Medical_Strings(MenuItem_Index);
else if(MenuItem_Index == 11) return MD_Ped_Model_Business_Strings(MenuItem_Index);
else if(MenuItem_Index == 12) return MD_Ped_Model_Cluck_Strings(MenuItem_Index);
else if(MenuItem_Index == 13) return MD_Ped_Model_Funny_Strings(MenuItem_Index);
else if(MenuItem_Index == 14) return MD_Ped_Model_SingleP_Strings(MenuItem_Index);
}
void Admin_Animations_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index == 6) return MD_Stride_Strings(MenuItem_Index);
else if(MenuItem_Index == 7) return MD_Anim_Dance_Strings(MenuItem_Index);
else if(MenuItem_Index == 8) return MD_Anim_Gesture_Strings(MenuItem_Index);
else if(MenuItem_Index == 9) return MD_Anim_Tool_Strings(MenuItem_Index);
else if(MenuItem_Index == 10) return MD_Anim_Heli_Strings(MenuItem_Index);
else if(MenuItem_Index == 11) return MD_Anim_Bike_Strings(MenuItem_Index);
else if(MenuItem_Index == 12) return MD_Anim_Sliding_Strings(MenuItem_Index);
else if(MenuItem_Index == 13) return MD_Anim_Swim_Strings(MenuItem_Index);
else if(MenuItem_Index == 14) return MD_Anim_Sit_Strings(MenuItem_Index);
else if(MenuItem_Index == 15) return MD_Anim_Pause_Strings(MenuItem_Index);
else if(MenuItem_Index == 16) return MD_Anim_Sex_Strings(MenuItem_Index);
}
void Admin_Attachments_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Attach 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Troll_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Troll 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Menu_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Freeze_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Freeze 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Temp_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Temp 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}

View File

@@ -0,0 +1,778 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV NATHAN VII
*/
#pragma once
void Admin_Message_Strings (const int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index == 6){ //Friendly messages
char* Admin_String[8];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Hello >";
Admin_String[2] = "< Follow me >";
Admin_String[3] = "< Watch this >";
Admin_String[4] = "< Come to me >";
Admin_String[5] = "< Very nice of you >";
Admin_String[6] = "< Thank's for creating fun >";
Admin_String[7] = "< I'm Here To Test >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 7){ //Warnings messages
char* Admin_String[6];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Warn >";
Admin_String[2] = "< Stop abusing mods or else! >";
Admin_String[3] = "< Stop harassing people! >";
Admin_String[4] = "< Leave this guy alone! >";
Admin_String[5] = "< Final warning! >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 8) //Take action
{
char* Admin_String[3];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< That's it, Bye Bye! (Singleplayer) >";
Admin_String[2] = "< That's it, Bye Bye! (Find game) >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 9){ //Unfriendly messages
char* Admin_String[5];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Idiot! >";
Admin_String[2] = "< You are a dick! >";
Admin_String[3] = "< Stop cheating! >";
Admin_String[4] = "< Your mum is sexy! >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index >= 10){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Message 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Player_Stringitems(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6 && MenuItem_Index <= 20){
char* Admin_String[3];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Disabled >"; //Off
Admin_String[2] = "< Enabled >"; //On //meh
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Weapon_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index == 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Weapon 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 7){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 8){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 9){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 10){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 11){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 12){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 13){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 14){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 15){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 16){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 17){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 18){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 19){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 20){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Vehicle_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6 && MenuItem_Index <= 15){
char* Admin_String[3];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Disabled >";
Admin_String[2] = "< Enabled >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index >= 16){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Teleport_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index == 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Teleport 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 7){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 8){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 9){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 10){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 11){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 12){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 13){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 14){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 15){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 16){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 17){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 18){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 19){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 20){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Weather_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index == 6){
char* Admin_String[9];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< 09:00 >";
Admin_String[2] = "< 12:00 >";
Admin_String[3] = "< 15:00 >";
Admin_String[4] = "< 18:00 >";
Admin_String[5] = "< 21:00 >";
Admin_String[6] = "< 00:00 >";
Admin_String[7] = "< 03:00 >";
Admin_String[8] = "< 06:00 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index >= 7){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Weather 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Model_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Model 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Animations_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Anim 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Attachments_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Attach 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Troll_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Troll 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Menu_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< String 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Freeze_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Freeze 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}
void Admin_Temp_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
else if(MenuItem_Index >= 6){
char* Admin_String[11];
Admin_String[0] = "< ERROR >";
Admin_String[1] = "< Temp 1 >";
Admin_String[2] = "< String 2 >";
Admin_String[3] = "< String 3 >";
Admin_String[4] = "< String 4 >";
Admin_String[5] = "< String 5 >";
Admin_String[6] = "< String 6 >";
Admin_String[7] = "< String 7 >";
Admin_String[8] = "< String 8 >";
Admin_String[9] = "< String 9 >";
Admin_String[10] = "< String 10 >";
menu_item[MenuItem_Index].charval = Admin_String[menu_item[MenuItem_Index].num_val];
}
}

View File

@@ -0,0 +1,213 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//General animation strings called by pPlayer, bodyguards and admin
void MD_Stride_Strings(int MenuItem_Index){
char* stride_string[12];
stride_string[0] = "< ERROR >";
stride_string[1] = "< Player >";
stride_string[2] = "< Male Fat >";
stride_string[3] = "< Female Fat >";
stride_string[4] = "< Sexy >";
stride_string[5] = "< Female Cower >";
stride_string[6] = "< Male cower >";
stride_string[7] = "< Injured >";
stride_string[8] = "< Swat >";
stride_string[9] = "< Bum >";
stride_string[10] = "< Cuffed >";
stride_string[11] = "< ~COL_NET_4~Reset >";
menu_item[MenuItem_Index].charval = stride_string[menu_item[MenuItem_Index].num_val];
}
void MD_Anim_Dance_Strings(int MenuItem_Index){
char* anim_string[10];
anim_string[0] = "< ERROR >";
anim_string[1] = "< Pole Dance >";
anim_string[2] = "< Male dance 1 >";
anim_string[3] = "< Male dance 2 >";
anim_string[4] = "< Male dance 3 >";
anim_string[5] = "< Male dance 4 >";
anim_string[6] = "< Female Dance 1 >";
anim_string[7] = "< Female Dance 2 >";
anim_string[8] = "< Female Dance 3 >";
anim_string[9] = "< ~COL_NET_4~Cancel Animation >";
menu_item[MenuItem_Index].charval = anim_string[menu_item[MenuItem_Index].num_val];
}
void MD_Anim_Gesture_Strings(int MenuItem_Index){
char* anim_string[23];
anim_string[0] = "< ERROR >";
anim_string[1] = "< Taichi 1 >";
anim_string[2] = "< Taichi 2 >";
anim_string[3] = "< Hooker 1 >";
anim_string[4] = "< Hooker 2 >";
anim_string[5] = "< Hooker 3 >";
anim_string[6] = "< Piss >";
anim_string[7] = "< Smoking >";
anim_string[8] = "< Drunk 1 >";
anim_string[9] = "< Drunk 2 >";
anim_string[10] = "< Crawl >";
anim_string[11] = "< Ragdoll >";
anim_string[12] = "< Look Far >";
anim_string[13] = "< Preacher >";
anim_string[14] = "< No No, dont! >";
anim_string[15] = "< Seduce >";
anim_string[16] = "< Get outa here >";
anim_string[17] = "< Fake Freeze >";
anim_string[18] = "< Fuck u >";
anim_string[19] = "< hands up >";
anim_string[20] = "< Busted >";
anim_string[21] = "< hands / Knees >";
anim_string[22] = "< ~COL_NET_4~Cancel Animation >";
menu_item[MenuItem_Index].charval = anim_string[menu_item[MenuItem_Index].num_val];
}
void MD_Anim_Tool_Strings(int MenuItem_Index){
char* anim_string[6];
anim_string[0] = "< ERROR >";
anim_string[1] = "< Sweeping >";
anim_string[2] = "< Raking >";
anim_string[3] = "< Sledge hammer >";
anim_string[4] = "< Drilling >";
anim_string[5] = "< ~COL_NET_4~Cancel Animation >";
menu_item[MenuItem_Index].charval = anim_string[menu_item[MenuItem_Index].num_val];
}
void MD_Anim_Heli_Strings(int MenuItem_Index){
char* anim_string[11];
anim_string[0] = "< ERROR >";
anim_string[1] = "< Heli Animation 1 >";
anim_string[2] = "< Heli Animation 2 >";
anim_string[3] = "< Heli Animation 3 >";
anim_string[4] = "< Heli Animation 4 >";
anim_string[5] = "< Heli Animation 5 >";
anim_string[6] = "< Heli Animation 6 >";
anim_string[7] = "< Heli Animation 7 >";
anim_string[8] = "< Heli Animation 8 >";
anim_string[9] = "< Heli Animation 9 >";
anim_string[10] = "< ~COL_NET_4~Cancel Animation >";
menu_item[MenuItem_Index].charval = anim_string[menu_item[MenuItem_Index].num_val];
}
void MD_Anim_Bike_Strings(int MenuItem_Index){
char* anim_string[8];
anim_string[0] = "< ERROR >";
anim_string[1] = "< Bike Animation 1 >";
anim_string[2] = "< Bike Animation 2 >";
anim_string[3] = "< Bike Animation 3 >";
anim_string[4] = "< Bike Animation 4 >";
anim_string[5] = "< Bike Animation 5 >";
anim_string[6] = "< Bike Animation 6 >";
anim_string[7] = "< ~COL_NET_4~Cancel Animation >";
menu_item[MenuItem_Index].charval = anim_string[menu_item[MenuItem_Index].num_val];
}
void MD_Anim_Sliding_Strings(int MenuItem_Index){
char* anim_string[6];
anim_string[0] = "< ERROR >";
anim_string[1] = "< Slide / Forward >";
anim_string[2] = "< Slide / Wave >";
anim_string[3] = "< Slide / Look Around >";
anim_string[4] = "< Run Away >";
anim_string[5] = "< ~COL_NET_4~Cancel Animation >";
menu_item[MenuItem_Index].charval = anim_string[menu_item[MenuItem_Index].num_val];
}
void MD_Anim_Swim_Strings(int MenuItem_Index){
char* anim_string[6];
anim_string[0] = "< ERROR >";
anim_string[1] = "< Swimming / Wait >";
anim_string[2] = "< Swimming Crawl >";
anim_string[3] = "< Swimming normal >";
anim_string[4] = "< Swimming / Wait >";
anim_string[5] = "< ~COL_NET_4~Cancel Animation >";
menu_item[MenuItem_Index].charval = anim_string[menu_item[MenuItem_Index].num_val];
}
void MD_Anim_Sit_Strings(int MenuItem_Index){
char* anim_string[7];
anim_string[0] = "< ERROR >";
anim_string[1] = "< Sit / yayaya >";
anim_string[2] = "< Sit / Go away >";
anim_string[3] = "< Sit / Lmao >";
anim_string[4] = "< Sit / Clap hands >";
anim_string[5] = "< Sit / Clap hands 2 >";
anim_string[6] = "< ~COL_NET_4~Cancel Animation >";
menu_item[MenuItem_Index].charval = anim_string[menu_item[MenuItem_Index].num_val];
}
void MD_Anim_Pause_Strings(int MenuItem_Index){
char* anim_string[7];
anim_string[0] = "< ERROR >";
anim_string[1] = "< pull up collar >";
anim_string[2] = "< blow hands >";
anim_string[3] = "< rub arms >";
anim_string[4] = "< Arms Crossed >";
anim_string[5] = "< Look around >";
anim_string[6] = "< ~COL_NET_4~Cancel Animation >";
menu_item[MenuItem_Index].charval = anim_string[menu_item[MenuItem_Index].num_val];
}
void MD_Anim_Sex_Strings(int MenuItem_Index){
char* anim_string[15];
anim_string[0] = "< ERROR >";
anim_string[1] = "< Blowjob Driver Intro >";
anim_string[2] = "< Blowjob Driver 2 >";
anim_string[3] = "< Blowjob Driver 3 >";
anim_string[4] = "< Blowjob Driver 4 >";
anim_string[5] = "< Handjob driver 1 >";
anim_string[6] = "< Handjob driver 2 >";
anim_string[7] = "< Fuck Driver Intro >";
anim_string[8] = "< Fuck driver >";
anim_string[9] = "< Fuck Driver hard>";
anim_string[10] = "< Kiss Passenger >";
anim_string[11] = "< Kiss Driver >";
anim_string[12] = "< Kiss Player >";
anim_string[13] = "< Kiss Player >";
anim_string[14] = "< ~COL_NET_4~Cancel Animation >";
menu_item[MenuItem_Index].charval = anim_string[menu_item[MenuItem_Index].num_val];
}
void MD_Anim_Speed_Strings(int MenuItem_Index){
char* anim_string[11];
anim_string[0] = "< ERROR >";
anim_string[1] = (animationspeed == 1.00f) ? "~PAD_LEFT~ ~COL_NET_1~Default ~PAD_RIGHT~" : "~PAD_LEFT~ Default ~PAD_RIGHT~";
anim_string[2] = (animationspeed == 1.50f) ? "~PAD_LEFT~ ~COL_NET_1~Multiply 2 ~PAD_RIGHT~" : "~PAD_LEFT~ Multiply 2 ~PAD_RIGHT~";
anim_string[3] = (animationspeed == 2.00f) ? "~PAD_LEFT~ ~COL_NET_1~Multiply 3 ~PAD_RIGHT~" : "~PAD_LEFT~ Multiply 3 ~PAD_RIGHT~";
anim_string[4] = (animationspeed == 2.50f) ? "~PAD_LEFT~ ~COL_NET_1~Multiply 4 ~PAD_RIGHT~" : "~PAD_LEFT~ Multiply 4 ~PAD_RIGHT~";
anim_string[5] = (animationspeed == 3.00f) ? "~PAD_LEFT~ ~COL_NET_1~Multiply 5 ~PAD_RIGHT~" : "~PAD_LEFT~ Multiply 5 ~PAD_RIGHT~";
anim_string[6] = (animationspeed == 3.50f) ? "~PAD_LEFT~ ~COL_NET_1~Multiply 6 ~PAD_RIGHT~" : "~PAD_LEFT~ Multiply 6 ~PAD_RIGHT~";
anim_string[7] = (animationspeed == 4.00f) ? "~PAD_LEFT~ ~COL_NET_1~Multiply 7 ~PAD_RIGHT~" : "~PAD_LEFT~ Multiply 7 ~PAD_RIGHT~";
anim_string[8] = (animationspeed == 4.50f) ? "~PAD_LEFT~ ~COL_NET_1~Multiply 8 ~PAD_RIGHT~" : "~PAD_LEFT~ Multiply 8 ~PAD_RIGHT~";
anim_string[9] = (animationspeed == 5.00f) ? "~PAD_LEFT~ ~COL_NET_1~Multiply 9 ~PAD_RIGHT~" : "~PAD_LEFT~ Multiply 9 ~PAD_RIGHT~";
anim_string[10] = (animationspeed == 5.50f) ? "~PAD_LEFT~ ~COL_NET_1~Multiply 10 ~PAD_RIGHT~" : "~PAD_LEFT~ Multiply 10 ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = anim_string[menu_item[MenuItem_Index].num_val];
}
void MD_Anim_Specials_Strings(int MenuItem_Index){
char* anim_string[4];
anim_string[0] = "< ERROR >";
anim_string[1] = (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("hand3") > 0) ? "< ~COL_NET_1~Swim Everywhere >" : "< Swim Everywhere >";
anim_string[2] = (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("eb_superman") > 0) ? "< ~COL_NET_1~Superman >" : "< Superman >";
anim_string[3] = "< ~COL_NET_4~Disable All >";
menu_item[MenuItem_Index].charval = anim_string[menu_item[MenuItem_Index].num_val];
}
//Pull all together
void MD_Animation_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover//5
//Bool renew //6
else if(MenuItem_Index == 7)return MD_Anim_Speed_Strings(MenuItem_Index);
//Jumpover//9
else if(MenuItem_Index == 10) return MD_Stride_Strings(MenuItem_Index);
else if(MenuItem_Index == 11) return MD_Anim_Dance_Strings(MenuItem_Index);
else if(MenuItem_Index == 12) return MD_Anim_Gesture_Strings(MenuItem_Index);
else if(MenuItem_Index == 13) return MD_Anim_Tool_Strings(MenuItem_Index);
else if(MenuItem_Index == 14) return MD_Anim_Heli_Strings(MenuItem_Index);
else if(MenuItem_Index == 15) return MD_Anim_Bike_Strings(MenuItem_Index);
else if(MenuItem_Index == 16) return MD_Anim_Sliding_Strings(MenuItem_Index);
else if(MenuItem_Index == 17) return MD_Anim_Swim_Strings(MenuItem_Index);
else if(MenuItem_Index == 18) return MD_Anim_Sit_Strings(MenuItem_Index);
else if(MenuItem_Index == 19) return MD_Anim_Pause_Strings(MenuItem_Index);
else if(MenuItem_Index == 20) return MD_Anim_Sex_Strings(MenuItem_Index);
else if(MenuItem_Index == 21) return MD_Anim_Specials_Strings(MenuItem_Index);
}

View File

@@ -0,0 +1,258 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MD_Stride_Strings_Action(int Player_PED){ //Not allowing this on netlayers
char* Stride[11];
Stride[1] = "move_player";
Stride[2] = "move_m@fat";
Stride[3] = "move_f@fat";
Stride[4] = "move_f@sexy";
Stride[5] = "move_f@cower";
Stride[6] = "move_m@cower";
Stride[7] = "move_injured_generic";
Stride[8] = "move_m@swat";
Stride[9] = "move_m@bum";
Stride[10] = "move_m@h_cuffed";
if (menu_item[SelectedItem].num_val > 0 && menu_item[SelectedItem].num_val < 11){
if(Player_PED == pPlayer)pPlayer_strides(Stride[(menu_item[SelectedItem].num_val)]);
else Strides_BGuards(Stride[(menu_item[SelectedItem].num_val)]);
}
else if (menu_item[SelectedItem].num_val == 11 ){
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID());
BLOCK_PED_WEAPON_SWITCHING(pPlayer, true);
}
}
void MD_Anim_Dance_Strings_Action(int Player_PED){
bool OnWHo;
if(Player_PED == pPlayer)OnWHo = true;
else OnWHo = false;
if(menu_item[SelectedItem].num_val == 1)AnimationPlayer(OnWHo,"missstripclublo","pole_dance_a",Animationloop,1);//--> Changing this value to 1 will keep the animation on place (u can act with ut sticks to move it, 0 is perfect for this, animation returns to initial start point
else if(menu_item[SelectedItem].num_val == 2) AnimationPlayer(OnWHo,"amb@dance_maleidl_a","loop_a",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 3) AnimationPlayer(OnWHo,"amb@dance_maleidl_b","loop_b",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 4) AnimationPlayer(OnWHo,"amb@dance_maleidl_c","loop_c",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 5) AnimationPlayer(OnWHo,"amb@dance_maleidl_d","loop_d",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 6) AnimationPlayer(OnWHo,"amb@dance_femidl_a","loop_a",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 7) AnimationPlayer(OnWHo,"amb@dance_femidl_b","loop_b",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 8) AnimationPlayer(OnWHo,"amb@dance_femidl_c","loop_c",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 9){
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
}
}
void MD_Anim_Gesture_Strings_Action(int Player_PED){
bool OnWHo;
if(Player_PED == pPlayer)OnWHo = true;
else OnWHo = false;
if(menu_item[SelectedItem].num_val == 1)AnimationPlayer(OnWHo,"amb@park_taichi_a","taichi01",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 2) AnimationPlayer(OnWHo,"amb@park_taichi_b","taichi02",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 3) AnimationPlayer(OnWHo,"amb@hooker","idle_a",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 4) AnimationPlayer(OnWHo,"amb@hooker","idle_b",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 5) AnimationPlayer(OnWHo,"amb@hooker","idle_c",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 6) AnimationPlayer(OnWHo,"missbrucie1","piss_interupted",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 7) AnimationPlayer(OnWHo,"amb@smoking","stand_smoke",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 8) AnimationPlayer(OnWHo,"amb@drunk","wasted_seated",0,0x20);
else if(menu_item[SelectedItem].num_val == 9) AnimationPlayer(OnWHo,"amb@drunk","wasteda",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 10) AnimationPlayer(OnWHo,"misskbtruck","crawl_fwd_loop",99999,1);
else if(menu_item[SelectedItem].num_val == 11){
if(OnWHo)SWITCH_PED_TO_RAGDOLL(pPlayer,20000,30000,false,false,false,false);
else Ragdoll_BGuards();
}
else if(menu_item[SelectedItem].num_val == 12){
if(GetBit(MD_Misc_OptionsBitSet,MD_MISC_AUTO_ATTACH_TOOL_WITH_ANIMS)){
if(OnWHo)delete_objects_on_ped(Player_PED);
else Delete_Objects_BGuards();
if(OnWHo)attach_object_to_player(pPlayer, -596812191,BONE_HEAD, -0.0050, 0.0896, 0.0172, 0.0900, 1.5300,3.150,0);
else Attach_Objects_BGuards(-596812191,BONE_HEAD, -0.0050, 0.0896, 0.0172, 0.0900, 1.5300,3.150,0);
}
AnimationPlayer(OnWHo,"amb@default","telescope_default",Animationloop,1);
}
else if(menu_item[SelectedItem].num_val == 13) AnimationPlayer(OnWHo,"ragdoll_trans","preacher_trans",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 14) AnimationPlayer(OnWHo,"amb@nightclub_ext","street_argue_f_a",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 15) AnimationPlayer(OnWHo,"amb@pimps_pros","car_proposition",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 16) AnimationPlayer(OnWHo,"amb@pimps_pros","rejection",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 17) AnimationPlayer(OnWHo,"audio_motionbuilder","walk",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 18) AnimationPlayer(OnWHo,"taxi_hail","fuck_u",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 19) AnimationPlayer(OnWHo,"ped","handsup",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 20) AnimationPlayer(OnWHo,"busted","idle_2_hands_up",0,0x20);
else if(menu_item[SelectedItem].num_val == 21) AnimationPlayer(OnWHo,"missbernie1","default_idle",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 22){
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
}
}
void MD_Anim_Tool_Strings_Action(int Player_PED){ //a Player_PED huh, var naming needs some work buddy! just call it ped or something, simple!
bool OnWHo;
if(Player_PED == pPlayer)OnWHo = true;
else OnWHo = false;
if(menu_item[SelectedItem].num_val == 1){
if(GetBit(MD_Misc_OptionsBitSet,MD_MISC_AUTO_ATTACH_TOOL_WITH_ANIMS)){
if(OnWHo)delete_objects_on_ped(Player_PED);
else Delete_Objects_BGuards();
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
if(OnWHo)attach_object_to_player(pPlayer,-1813753615,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.000,0);
else Attach_Objects_BGuards(-1813753615,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
AnimationPlayer(OnWHo,"amb@default","ff_sweep_default",Animationloop,1);
}
else if(menu_item[SelectedItem].num_val == 2){
if(GetBit(MD_Misc_OptionsBitSet,MD_MISC_AUTO_ATTACH_TOOL_WITH_ANIMS)){
if(OnWHo)delete_objects_on_ped(Player_PED);
else Delete_Objects_BGuards();
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
if(OnWHo)attach_object_to_player(pPlayer,1892875956,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
else Attach_Objects_BGuards(1892875956,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
AnimationPlayer(OnWHo,"amb@default","rake_default",Animationloop,1);
}
else if(menu_item[SelectedItem].num_val == 3){
if(GetBit(MD_Misc_OptionsBitSet,MD_MISC_AUTO_ATTACH_TOOL_WITH_ANIMS)){
if(OnWHo)delete_objects_on_ped(Player_PED);
else Delete_Objects_BGuards();
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
if(OnWHo)attach_object_to_player(pPlayer, 2113166995,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
else Attach_Objects_BGuards( 2113166995,BONE_RIGHT_HAND, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,0.0000,0);
}
AnimationPlayer(OnWHo,"amb@default","sledge_default",Animationloop,1);
}
else if(menu_item[SelectedItem].num_val == 4){
if(GetBit(MD_Misc_OptionsBitSet,MD_MISC_AUTO_ATTACH_TOOL_WITH_ANIMS)){
if(OnWHo)delete_objects_on_ped(Player_PED);
else Delete_Objects_BGuards();
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
if(OnWHo)attach_object_to_player(pPlayer, 1234161243,BONE_RIGHT_HAND, 0, 0.0061,-0.0086, 0.0000, 0.0000,5.9600,0);
else Attach_Objects_BGuards( 1234161243,BONE_RIGHT_HAND, 0, 0.0061,-0.0086, 0.0000, 0.0000,5.9600,0);
}
AnimationPlayer(OnWHo,"amb@drill_create","drill_create",Animationloop,1);
}
else if(menu_item[SelectedItem].num_val == 5){
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
if(OnWHo)delete_objects_on_ped(Player_PED);
else Delete_Objects_BGuards();
}
}
void MD_Anim_Heli_Strings_Action(int Player_PED){
bool OnWHo;
if(Player_PED == pPlayer)OnWHo = true;
else OnWHo = false;
if(menu_item[SelectedItem].num_val == 1)AnimationPlayer(OnWHo,"missbell4","land_on_heli",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 2) AnimationPlayer(OnWHo,"missfinale2d","kicked_from_heli",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 3) AnimationPlayer(OnWHo,"missfinale2p","bike2heli_idle2",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 4) AnimationPlayer(OnWHo,"missfinale2d","land_on_heli",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 5) AnimationPlayer(OnWHo,"missfinale2d","hang_on_heli",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 6) AnimationPlayer(OnWHo,"missfinale2d","heli_idle",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 7) AnimationPlayer(OnWHo,"missfinale2p","bike2heli_climb1",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 8) AnimationPlayer(OnWHo,"missfinale2p","bike2heli",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 9) AnimationPlayer(OnWHo,"missfinale2p_boat","boat2heli_p4",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 10){
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
}
}
void MD_Anim_Bike_Strings_Action(int Player_PED){
bool OnWHo;
if(Player_PED == pPlayer)OnWHo = true;
else OnWHo = false;
if(menu_item[SelectedItem].num_val == 1)AnimationPlayer(OnWHo,"missfinale2d","jump_on_heli_alt",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 2)AnimationPlayer(OnWHo,"missfinale2d","kick_inside_heli",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 3)AnimationPlayer(OnWHo,"missfinale2p","leg_swing",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 4)AnimationPlayer(OnWHo,"missfinale2p_boat","boat2heli_p1",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 5)AnimationPlayer(OnWHo,"missfinale2p_boat","boat2heli_p2",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 6)AnimationPlayer(OnWHo,"missfinale2p_boat","boat2heli_p3",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 7){
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
}
}
void MD_Anim_Sliding_Strings_Action(int Player_PED){
bool OnWHo;
if(Player_PED == pPlayer)OnWHo = true;
else OnWHo = false;
if(menu_item[SelectedItem].num_val == 1)AnimationPlayer(OnWHo,"amb@carry_create","walk_create",Animationloop,1); //Sliding forward
else if(menu_item[SelectedItem].num_val == 2)AnimationPlayer(OnWHo,"amb@carry_idles","walk_idle_a",Animationloop,1); //Sliding far forward hand up
else if(menu_item[SelectedItem].num_val == 3)AnimationPlayer(OnWHo,"amb@carry_idles","walk_idle_c",Animationloop,1); //Sliding far forward
else if(menu_item[SelectedItem].num_val == 4)AnimationPlayer(OnWHo,"amb@flee_a","run_flee_lookaround_b",Animationloop,1); //Running away funny looking around
else if(menu_item[SelectedItem].num_val == 5){
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
}
}
void MD_Anim_Swim_Strings_Action(int Player_PED){
bool OnWHo;
if(Player_PED == pPlayer)OnWHo = true;
else OnWHo = false;
if(menu_item[SelectedItem].num_val == 1)AnimationPlayer(OnWHo,"swimming","idle",Animationloop,1); //swimming waiting in water
else if(menu_item[SelectedItem].num_val == 2)AnimationPlayer(OnWHo,"swimming","run",Animationloop,1); //Crawling
else if(menu_item[SelectedItem].num_val == 3)AnimationPlayer(OnWHo,"swimming","walk",Animationloop,1); //schoolslag
else if(menu_item[SelectedItem].num_val == 4)AnimationPlayer(OnWHo,"swimming","walk_strafe_b",Animationloop,1); //schoolslag
else if(menu_item[SelectedItem].num_val == 5){
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
}
}
void MD_Anim_Sit_Strings_Action(int Player_PED){
bool OnWHo;
if(Player_PED == pPlayer)OnWHo = true;
else OnWHo = false;
if(menu_item[SelectedItem].num_val == 1)AnimationPlayer(OnWHo,"amb@default","preacher_default",Animationloop,1); //Sit hands moves up
else if(menu_item[SelectedItem].num_val == 2)AnimationPlayer(OnWHo,"amb@comedy","cheer_b",Animationloop,1); //Sit hands moves up YAYAYAYA
else if(menu_item[SelectedItem].num_val == 3)AnimationPlayer(OnWHo,"amb@comedy","clap_a",Animationloop,1); //Sit hands clapping YAYAYAYA
else if(menu_item[SelectedItem].num_val == 4)AnimationPlayer(OnWHo,"amb@comedy","jeer_a",Animationloop,1); //Sitting go away YAYAYAYA
else if(menu_item[SelectedItem].num_val == 5)AnimationPlayer(OnWHo,"amb@comedy","laugh_f",Animationloop,1); //Sitting Laughing YAYAYAYA
else if(menu_item[SelectedItem].num_val == 6){
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
}
}
void MD_Anim_Pause_Strings_Action(int Player_PED){
bool OnWHo;
if(Player_PED == pPlayer)OnWHo = true;
else OnWHo = false;
if(menu_item[SelectedItem].num_val == 1)AnimationPlayer(OnWHo,"amb@cold","pull_up_collar",Animationloop,1); //Standing having cold
else if(menu_item[SelectedItem].num_val == 2)AnimationPlayer(OnWHo,"amb@cold","stand_blowhands",Animationloop,1); //Standing having cold
else if(menu_item[SelectedItem].num_val == 3)AnimationPlayer(OnWHo,"amb@cold","stand_rubarms",Animationloop,1); //Standing having cold
else if(menu_item[SelectedItem].num_val == 4)AnimationPlayer(OnWHo,"amb@default","bouncer_default",Animationloop,1); //Standing arms crossed
else if(menu_item[SelectedItem].num_val == 5)AnimationPlayer(OnWHo,"amb@hurry_head","walk_b",Animationloop,1); //Looking around left right pretty fast (funny)
else if(menu_item[SelectedItem].num_val == 6){
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
}
}
void MD_Anim_Sex_Strings_Action(int Player_PED){
bool OnWHo;
if(Player_PED == pPlayer)OnWHo = true;
else OnWHo = false;
if(menu_item[SelectedItem].num_val == 1) AnimationPlayer(OnWHo,"misscar_sex","f_blowjob_outro",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 2)AnimationPlayer(OnWHo,"misscar_sex","f_blowjob_intro_low",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 3)AnimationPlayer(OnWHo,"misscar_sex","f_blowjob_outro_low",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 4)AnimationPlayer(OnWHo,"misscar_sex","f_blowjob_loop",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 5)AnimationPlayer(OnWHo,"misscar_sex","f_handjob_loop",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 6)AnimationPlayer(OnWHo,"misscar_sex","f_handjob_loop_low",Animationloop,1);
else if(menu_item[SelectedItem].num_val == 7)AnimationPlayer(OnWHo,"misscar_sex","f_sex_intro",Animationloop,0); //--> Changing this value to 1 will keep the animation on place (u can act with ut sticks to move it, 0 is perfect for this, animation returns to initial start point
else if(menu_item[SelectedItem].num_val == 8)AnimationPlayer(OnWHo,"misscar_sex","f_sex_loop",Animationloop,0);
else if(menu_item[SelectedItem].num_val == 9)AnimationPlayer(OnWHo,"misscar_sex","f_sex_loop_low",Animationloop,0);
else if(menu_item[SelectedItem].num_val == 10)AnimationPlayer(OnWHo,"amb@dating","car_kiss_ds",Animationloop,1); //Car Kiss Driver seat
else if(menu_item[SelectedItem].num_val == 11)AnimationPlayer(OnWHo,"amb@dating","car_kiss_ps",Animationloop,1); //Car Kiss Passenger seat
else if(menu_item[SelectedItem].num_val == 12)AnimationPlayer(OnWHo,"amb@dating","player_kiss",Animationloop,1); //Player Kiss standing (attach to player)
else if(menu_item[SelectedItem].num_val == 13)AnimationPlayer(OnWHo,"amb@pimps_pros","girl_hug",Animationloop,1); //kiss
else if(menu_item[SelectedItem].num_val == 14){
if(OnWHo)CLEAR_CHAR_TASKS_IMMEDIATELY(Player_PED);
else Clear_Task_BGuards();
}
}

View File

@@ -0,0 +1,96 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
/**Specific Army Strings **/
void MD_Army_Weapon_Strings(int MenuItem_Index){
char* weapon_string[13];
weapon_string[0] = "< Not used >";//We dont have an itemline 0, please keep numbers same as itemlines
weapon_string[1] = "< Desert Eagle >";
weapon_string[2] = "< pump shotgun >";
weapon_string[3] = "< MP5 >";
weapon_string[4] = "< M4 >";
weapon_string[5] = "< RPG >";
weapon_string[6] = "< Sniper >";
weapon_string[7] = "< grenade >";
weapon_string[8] = "< molotov >";
weapon_string[9] = "< baseball bat >";
weapon_string[10] = "< knife >";
weapon_string[11] = "< poolcue >";
weapon_string[12] = "< ~COL_NET_4~Remove >";
menu_item[MenuItem_Index].charval = weapon_string[menu_item[MenuItem_Index].num_val];
}
void MD_Army_Formation_Strings(int MenuItem_Index){
char* Formation_String[6];
Formation_String[0] = "< Not used >";//We dont have an itemline 0, please keep numbers same as itemlines
Formation_String[1] = "< Around / Facing u >";
Formation_String[2] = "< Around / Facing same >";
Formation_String[3] = "< Lined Up >";
Formation_String[4] = "< Behind u >";
Formation_String[5] = "< Behind u 2 >";
menu_item[MenuItem_Index].charval = Formation_String[menu_item[MenuItem_Index].num_val];
}
void MD_Army_Spacing_Strings(int MenuItem_Index){
char* Spacing_String[5];
Spacing_String[0] = "< Not used >";//We dont have an itemline 0, please keep numbers same as itemlines
Spacing_String[1] = "< Close >";
Spacing_String[2] = "< Medium >";
Spacing_String[3] = "< Medium + >";
Spacing_String[4] = "< Far >";
menu_item[MenuItem_Index].charval = Spacing_String[menu_item[MenuItem_Index].num_val];
}
void MD_Army_Action_Strings(int MenuItem_Index){
char* Action_String[7];
Action_String[0] = "< Not used >";//We dont have an itemline 0, please keep numbers same as itemlines
Action_String[1] = "< Arm Your Vehicle >";
Action_String[2] = "< Give Guards Helmet >";
Action_String[3] = "< Take Guards Helmet >";
Action_String[4] = "< Give Guards Godmode >";
Action_String[5] = "< Take Guards Godmode >";
Action_String[6] = "< Clear Tasks >";
menu_item[MenuItem_Index].charval = Action_String[menu_item[MenuItem_Index].num_val];
}
void MD_Army_Attack_Strings(int MenuItem_Index){
char* Attack_String[6];
Attack_String[0] = "< Not used >"; //We dont have an itemline 0, please keep numbers same as itemlines
Attack_String[1] = "< Attack Now >";
Attack_String[2] = "< Attack Teleported >";
Attack_String[3] = "< Delete 1 Guard >";
Attack_String[4] = "< Delete All Guards >";
Attack_String[5] = "< Clear Tasks >";
//Attack_String[6] = "< Fire Guard Weapon >";
menu_item[MenuItem_Index].charval = Attack_String[menu_item[MenuItem_Index].num_val];
}
void MD_Army_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover 5
else if(MenuItem_Index == 6)return MD_Army_Weapon_Strings(MenuItem_Index);
else if(MenuItem_Index == 7)return MD_Army_Formation_Strings(MenuItem_Index);
else if(MenuItem_Index == 8)return MD_Army_Spacing_Strings(MenuItem_Index);
else if(MenuItem_Index == 9)return MD_Army_Action_Strings(MenuItem_Index);
else if(MenuItem_Index == 10)return MD_Army_Attack_Strings(MenuItem_Index);
//Sub Attachments 11
//Sub Animations 12
//Jumpover 13
else if(MenuItem_Index == 14)return MD_Ped_Model_Uniform_Strings(MenuItem_Index);
else if(MenuItem_Index == 15)return MD_Ped_Model_Gang_Strings(MenuItem_Index);
else if(MenuItem_Index == 16)return MD_Ped_Model_Stripper_Strings(MenuItem_Index);
else if(MenuItem_Index == 17)return MD_Ped_Model_Medical_Strings(MenuItem_Index);
else if(MenuItem_Index == 18)return MD_Ped_Model_Business_Strings(MenuItem_Index);
else if(MenuItem_Index == 19)return MD_Ped_Model_Cluck_Strings(MenuItem_Index);
else if(MenuItem_Index == 20)return MD_Ped_Model_Funny_Strings(MenuItem_Index);
else if(MenuItem_Index == 21)return MD_Ped_Model_SingleP_Strings(MenuItem_Index);
}

View File

@@ -0,0 +1,229 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
void MD_Attach_Cube_Strings(int MenuItem_Index){ //DONE
char* Cube_String[9];
Cube_String[0] = "< ERROR >";
Cube_String[1] = "< Red >";
Cube_String[2] = "< Orange >";
Cube_String[3] = "< Yellow >";
Cube_String[4] = "< Green >";
Cube_String[5] = "< Blue >";
Cube_String[6] = "< Purple >";
Cube_String[7] = "< Cube Man >";
Cube_String[8] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Cube_String[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Hand_Strings(int MenuItem_Index){//DONE
char* Hand_string[19];
Hand_string[0] = "< ERROR >";
Hand_string[1] = "< Umbrella 1 >";
Hand_string[2] = "< Umbrella 2 >";
Hand_string[3] = "< Umbrella 3 >";
Hand_string[4] = "< GunUmbrella 1 >";
Hand_string[5] = "< GunUmbrella 2 >";
Hand_string[6] = "< GunUmbrella 3 >";
Hand_string[7] = "< Shopping bag >";
Hand_string[8] = "< Picolo >";
Hand_string[9] = "< Barrel Hand >";
Hand_string[10] = "< Glowgun >";
Hand_string[11] = "< Lightsaber >";
Hand_string[12] = "< Lasergun >";
Hand_string[13] = "< Rocketgun >";
Hand_string[14] = "< Turbo M4 >";
Hand_string[15] = "< TurboDeagle >";
Hand_string[16] = "< Disco Launcher >";
Hand_string[17] = "< Saxplayer >";
Hand_string[18] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Hand_string[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Tool_Strings(int MenuItem_Index){//DONE
char* Hand_string[21];
Hand_string[0] = "< ERROR >";
Hand_string[1] = "< Cane >";
Hand_string[2] = "< Cane 2 >";
Hand_string[3] = "< Slegehammer >";
Hand_string[4] = "< Pickaxe >";
Hand_string[5] = "< Broom >";
Hand_string[6] = "< Rake >";
Hand_string[7] = "< Spade >";
Hand_string[8] = "< Wrench >";
Hand_string[9] = "< SAW >";
Hand_string[10] = "< Axe >";
Hand_string[11] = "< Jackhammer >";
Hand_string[12] = "< Pickaxe >";
Hand_string[13] = "< rake >";
Hand_string[14] = "< Big Hammer >";
Hand_string[15] = "< Nailgun >";
Hand_string[16] = "< Hammer >";
Hand_string[17] = "< Drill >";
Hand_string[18] = "< Broom >";
Hand_string[19] = "< Laptop >";
Hand_string[20] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Hand_string[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Light_Strings(int MenuItem_Index){//DONE
char* Body_string[12];
Body_string[0] = "< ERROR >";
Body_string[1] = "< Red Body Glow >";
Body_string[2] = "< Yellow Body Glow >";
Body_string[3] = "< White Body Glow>";
Body_string[4] = "< Face Glow >";
Body_string[5] = "< Blue Neon Underneath) >";
Body_string[6] = "< White Neon(Underneath) >";
Body_string[7] = "< Purple Flash(Underneath) >";
Body_string[8] = "< Green Flash(Underneath) >";
Body_string[9] = "< Red Hands >";
Body_string[10] = "< Blue Hands >";
Body_string[11] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Body_string[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Building_Strings(int MenuItem_Index){//DONE
char* Body_string[3];
Body_string[0] = "< ERROR >";
Body_string[1] = "< Shark Building >";
Body_string[2] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Body_string[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Fire_Strings(int MenuItem_Index){//DONE
char* Body_string[7];
Body_string[0] = "< ERROR >";
Body_string[1] = "< Flamer 1 >";
Body_string[2] = "< Flamer 2 >";
Body_string[3] = "< Flamer 3 >";
Body_string[4] = "< Flames >";
Body_string[5] = "< Fireball >";
Body_string[6] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Body_string[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Feet_Strings(int MenuItem_Index){//DONE
char* Body_string[5];
Body_string[0] = "< ERROR >";
Body_string[1] = "< Sneakers >";
Body_string[2] = "< Green Neon >";
Body_string[3] = "< Pink Neon >";
Body_string[4] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Body_string[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Head_Strings(int MenuItem_Index){//DONE
char* Head_String[18];
Head_String[0] = "< ERROR >";
Head_String[1] = "< Ugly Face >";
Head_String[2] = "< Welder Mask >";
Head_String[3] = "< Purple Flasher >";
Head_String[4] = "< Green Flasher >";
Head_String[5] = "< Torch Head >";
Head_String[6] = "< Discoball >";
Head_String[7] = "< Conehead >";
Head_String[8] = "< PornTV >";
Head_String[9] = "< Devils Horns >";
Head_String[10] = "< NightVision >";
Head_String[11] = "< Hammerhead >";
Head_String[12] = "< Pinokkio >";
Head_String[13] = "< Red Hat >";
Head_String[14] = "< Yellow Hat >";
Head_String[15] = "< Purple Hat >";
Head_String[16] = "< Black Hat >";
Head_String[17] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Head_String[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Bust_Strings(int MenuItem_Index){//DONE
char* Head_String[10];
Head_String[0] = "< ERROR >";
Head_String[1] = "< Bust/Head 1 >";
Head_String[2] = "< Bust/Head 2 >";
Head_String[3] = "< Bust/Head 3 >";
Head_String[4] = "< Bust/Head 4 >";
Head_String[5] = "< Bust/Head 5 >";
Head_String[6] = "< Gold Angel >"; //3 --> OK
Head_String[7] = "< Egypt Statue 1 >"; //5 --> OK
Head_String[8] = "< Egypt Statue 2 >"; //6 --> OK
Head_String[9] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Head_String[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Tribe_Strings(int MenuItem_Index){//DONE
char* Head_String[8];
Head_String[0] = "< ERROR >";
Head_String[1] = "< Tribe 1 >";
Head_String[2] = "< Tribe 2 >";
Head_String[3] = "< Tribe 3 >";
Head_String[4] = "< Tribe 4 >";
Head_String[5] = "< TribeMan 1 >";
Head_String[6] = "< TribeMan 2 >";
Head_String[7] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Head_String[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Funny_Strings(int MenuItem_Index){//DONE
char* Head_String[10];
Head_String[0] = "< ERROR >";
Head_String[1] = "< Have a Dick >";
Head_String[2] = "< Have a Huge Dick >";
Head_String[3] = "< Leprechaun (on Crotch) >";
Head_String[4] = "< Stop !!! >";
Head_String[5] = "< HippoSuit >";
Head_String[6] = "< Shower Backpack>";
Head_String[7] = "< Devils Wings >";
Head_String[8] = "< Devils Wings xl >";
Head_String[9] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Head_String[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Birds_Strings(int MenuItem_Index){//DONE
char* Head_String[5];
Head_String[0] = "< ERROR >";
Head_String[1] = "< Pigeon on Shoulder >";
Head_String[2] = "< 2 Pigeons >";
Head_String[3] = "< Birdman >";
Head_String[4] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Head_String[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Effects_Strings(int MenuItem_Index){//DONE
char* Head_String[7];
Head_String[0] = "< ERROR >";
Head_String[1] = "< White Smoke >";
Head_String[2] = "< Red Smoke >";
Head_String[3] = "< Shower >";
Head_String[4] = "< Sparks >";
Head_String[5] = "< Darkness >";
Head_String[6] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Head_String[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Vegetation_Strings(int MenuItem_Index){//DONE
char* Head_String[8];
Head_String[0] = "< ERROR >";
Head_String[1] = "< Big And Bushy >";
Head_String[2] = "< Flower Pot >";
Head_String[3] = "< Scotchpine >";
Head_String[4] = "< AG Tree >";
Head_String[5] = "< Beech Tree >";
Head_String[6] = "< Live Oak >";
Head_String[7] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Head_String[menu_item[MenuItem_Index].num_val];
}
void MD_Attach_Strings (int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
//Bool
else if(MenuItem_Index == 7) return MD_Attach_Cube_Strings(MenuItem_Index);
else if(MenuItem_Index == 8) return MD_Attach_Hand_Strings(MenuItem_Index);
else if(MenuItem_Index == 9) return MD_Attach_Tool_Strings(MenuItem_Index);
else if(MenuItem_Index == 10) return MD_Attach_Light_Strings(MenuItem_Index);
else if(MenuItem_Index == 11) return MD_Attach_Building_Strings(MenuItem_Index);
else if(MenuItem_Index == 12) return MD_Attach_Fire_Strings(MenuItem_Index);
else if(MenuItem_Index == 13) return MD_Attach_Feet_Strings(MenuItem_Index);
else if(MenuItem_Index == 14) return MD_Attach_Head_Strings(MenuItem_Index);
else if(MenuItem_Index == 15) return MD_Attach_Bust_Strings(MenuItem_Index);
else if(MenuItem_Index == 16) return MD_Attach_Tribe_Strings(MenuItem_Index);
else if(MenuItem_Index == 17) return MD_Attach_Funny_Strings(MenuItem_Index);
else if(MenuItem_Index == 18) return MD_Attach_Birds_Strings(MenuItem_Index);
else if(MenuItem_Index == 19) return MD_Attach_Effects_Strings(MenuItem_Index);
else if(MenuItem_Index == 20) return MD_Attach_Vegetation_Strings(MenuItem_Index);
}

View File

@@ -0,0 +1,584 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//General change player strings - Coded one time Pplayer and admin
void MD_Ped_Model_Uniform_Strings(int MenuItem_Index){
char* Uniform_string[14];
Uniform_string[0] = "< Fat Cop >";
Uniform_string[1] = "< N.O.O.S.E (Crouched) >";
Uniform_string[2] = "< N.O.O.S.E >";
Uniform_string[3] = "< FBI >";
Uniform_string[4] = "< Normal Cop >";
Uniform_string[5] = "< Traffic Cop >";
Uniform_string[6] = "< Fire man >";
Uniform_string[7] = "< Fire Chief >";
Uniform_string[8] = "< Security >";
Uniform_string[9] = "< Armoured >";
Uniform_string[10] = "< Club Fit >";
Uniform_string[11] = "< Prisoner >";
Uniform_string[12] = "< Prisoner Old >";
Uniform_string[13] = "< Cluck >";
menu_item[MenuItem_Index].charval = Uniform_string[menu_item[MenuItem_Index].num_val - 1];
}
void MD_Ped_Model_Gang_Strings(int MenuItem_Index){
char* Gang_string[4];
Gang_string[0] = "< Normal >";
Gang_string[1] = "< Normal + Coat >";
Gang_string[2] = "< Experienced >";
Gang_string[3] = "< Boss >";
menu_item[MenuItem_Index].charval = Gang_string[menu_item[MenuItem_Index].num_val - 1];
}
void MD_Ped_Model_Medical_Strings(int MenuItem_Index){
char* Medical_string[5];
Medical_string[0] = "< Male Doctor >";
Medical_string[1] = "< Female Doctor >";
Medical_string[2] = "< Female Nurse >";
Medical_string[3] = "< Scrub Doctor >";
Medical_string[4] = "< Dodgy Doctor >";
menu_item[MenuItem_Index].charval = Medical_string[menu_item[MenuItem_Index].num_val - 1];
}
void MD_Ped_Model_Stripper_Strings(int MenuItem_Index){
char* Stripper_string[2];
Stripper_string[0] = "< White >";
Stripper_string[1] = "< Black >";
menu_item[MenuItem_Index].charval = Stripper_string[menu_item[MenuItem_Index].num_val - 1];
}
void MD_Ped_Model_Business_Strings(int MenuItem_Index){
char* Business_String[9];
Business_String[0] = "< Business 1 >";
Business_String[1] = "< Business 2 >";
Business_String[2] = "< Business 3 >";
Business_String[3] = "< Business 4 >";
Business_String[4] = "< Business 5 >";
Business_String[5] = "< Business 6 >";
Business_String[6] = "< Business 7 >";
Business_String[7] = "< Business 8 >";
Business_String[8] = "< Business 9 >";
menu_item[MenuItem_Index].charval = Business_String[menu_item[MenuItem_Index].num_val - 1];
}
void MD_Ped_Model_Cluck_Strings(int MenuItem_Index){
char* cluck_string[3];
cluck_string[0] = "< Female >";
cluck_string[1] = "< Male >";
menu_item[MenuItem_Index].charval = cluck_string[menu_item[MenuItem_Index].num_val - 1];
}
void MD_Ped_Model_Funny_Strings(int MenuItem_Index){
char* Funny_String[2];
Funny_String[0] = "< Gay Middle Aged >";
Funny_String[1] = "< Gay Young >";
menu_item[MenuItem_Index].charval = Funny_String[menu_item[MenuItem_Index].num_val - 1];
}
void MD_Ped_Model_SingleP_Strings(int MenuItem_Index){
char* Various_String[9];
Various_String[0] = "< Lil Jacob >";
Various_String[1] = "< Brucie >";
Various_String[2] = "< Roman >";
Various_String[3] = "< Dwayne >";
Various_String[4] = "< Badman >";
Various_String[5] = "< Dmitri >";
Various_String[6] = "< Michelle >";
Various_String[7] = "< Packie >";
Various_String[8] = "< Playboy >";
menu_item[MenuItem_Index].charval = Various_String[menu_item[MenuItem_Index].num_val - 1];
}
void MD_Texture_Head_Strings(int MenuItem_Index){
char* Text_Head_String[5];
Text_Head_String[0] = "< REMOVE >";
Text_Head_String[1] = "< Superhero Female >";
Text_Head_String[2] = "< Superhero Male >";
Text_Head_String[3] = "< Jamaican >";
Text_Head_String[4] = "< Jamaican 2 >";
menu_item[MenuItem_Index].charval = Text_Head_String[menu_item[MenuItem_Index].num_val];
}
void MD_Texture_Body_Strings(int MenuItem_Index){
char* Text_Body_String[7];
Text_Body_String[0] = "< Variations 1 >";
Text_Body_String[1] = "< Variations 2 >";
Text_Body_String[2] = "< Variations 3 >";
Text_Body_String[3] = "< Variations 4 >";
Text_Body_String[4] = "< Variations 5 >";
Text_Body_String[5] = "< Variations 6 >";
Text_Body_String[6] = "< Variations 7 >";
menu_item[MenuItem_Index].charval = Text_Body_String[(menu_item[MenuItem_Index].num_val - 1)];
}
//Order
void Player_Changer_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
//Sco
//Function
//Bool
if(MenuItem_Index == 9)return MD_Texture_Head_Strings(MenuItem_Index);
else if(MenuItem_Index == 10)return MD_Texture_Body_Strings(MenuItem_Index);
else if(MenuItem_Index == 11)return MD_Ped_Model_Uniform_Strings(MenuItem_Index);
else if(MenuItem_Index == 12)return MD_Ped_Model_Gang_Strings(MenuItem_Index);
else if(MenuItem_Index == 13)return MD_Ped_Model_Stripper_Strings(MenuItem_Index);
else if(MenuItem_Index == 14)return MD_Ped_Model_Medical_Strings(MenuItem_Index);
else if(MenuItem_Index == 15)return MD_Ped_Model_Business_Strings(MenuItem_Index);
else if(MenuItem_Index == 16)return MD_Ped_Model_Cluck_Strings(MenuItem_Index);
else if(MenuItem_Index == 17)return MD_Ped_Model_Funny_Strings(MenuItem_Index);
else if(MenuItem_Index == 18)return MD_Ped_Model_SingleP_Strings(MenuItem_Index);
else if(MenuItem_Index == 19)return MD_Stride_Strings(MenuItem_Index);
}
//Order
void AllModelsItem6(int MenuItem_Index){
char* Model_String[46];
Model_String[0] = "< IG_ANNA >";
Model_String[1] = "< IG_ANTHONY >";
Model_String[2] = "< IG_BADMAN >";
Model_String[3] = "< IG_BERNIE_CRANE >";
Model_String[4] = "< IG_BLEDAR >";
Model_String[5] = "< IG_BRIAN >";
Model_String[6] = "< IG_BULGARIN >";
Model_String[7] = "< IG_CHARISE >";
Model_String[8] = "< IG_CHARLIEUC >";
Model_String[9] = "< IG_CLARENCE >";
Model_String[10] = "< IG_DARDAN >";
Model_String[11] = "< IG_DARKO >";
Model_String[12] = "< IG_DERRICK_MC >";
Model_String[13] = "< IG_DMITRI >";
Model_String[14] = "< IG_DWAYNE >";
Model_String[15] = "< IG_EDDIELOW >";
Model_String[16] = "< IG_FAUSTIN >";
Model_String[17] = "< IG_FRANCIS_MC >";
Model_String[18] = "< IG_FRENCH_TOM >";
Model_String[19] = "< IG_GORDON >";
Model_String[20] = "< IG_GRACIE >";
Model_String[21] = "< IG_HOSSAN >";
Model_String[22] = "< IG_ILYENA >";
Model_String[23] = "< IG_ISAAC >";
Model_String[24] = "< IG_IVAN >";
Model_String[25] = "< IG_JAY >";
Model_String[26] = "< IG_JASON >";
Model_String[27] = "< IG_JEFF >";
Model_String[28] = "< IG_JIMMY >";
Model_String[29] = "< IG_JOHNNYBIKER >";
Model_String[30] = "< IG_KATEMC >";
Model_String[31] = "< IG_KENNY >";
Model_String[32] = "< IG_LILJACOB >";
Model_String[33] = "< IG_LILJACOBW >";
Model_String[34] = "< IG_LUCA >";
Model_String[35] = "< IG_LUIS >";
Model_String[36] = "< IG_MALLORIE >";
Model_String[37] = "< IG_MAMC >";
Model_String[38] = "< IG_MANNY >";
Model_String[39] = "< IG_MARNIE >";
Model_String[40] = "< IG_MEL >";
Model_String[41] = "< IG_MICHAEL >";
Model_String[42] = "< IG_MICHELLE >";
Model_String[43] = "< IG_MICKEY >";
Model_String[44] = "< IG_PACKIE_MC >";
Model_String[45] = "< IG_PATHOS >";
menu_item[MenuItem_Index].charval = Model_String[(menu_item[MenuItem_Index].num_val - 1)];
}
void AllModelsItem7(int MenuItem_Index){
char* Model_String[11];
Model_String[0] = "< IG_PETROVIC >";
Model_String[1] = "< IG_PHIL_BELL >";
Model_String[2] = "< IG_PLAYBOY_X >";
Model_String[3] = "< IG_RAY_BOCCINO >";
Model_String[4] = "< IG_RICKY >";
Model_String[5] = "< IG_ROMAN >";
Model_String[6] = "< IG_ROMANW >";
Model_String[7] = "< IG_SARAH >";
Model_String[8] = "< IG_TUNA >";
Model_String[9] = "< IG_VINNY_SPAZ >";
Model_String[10] = "< IG_VLAD >";
menu_item[MenuItem_Index].charval = Model_String[(menu_item[MenuItem_Index].num_val - 1)];
}
void AllModelsItem8(int MenuItem_Index){
char* Model_String[44];
Model_String[0] = "< M_Y_GAFR_LO_01 >";
Model_String[1] = "< M_Y_GAFR_LO_02 >";
Model_String[2] = "< M_Y_GAFR_HI_01 >";
Model_String[3] = "< M_Y_GAFR_HI_02 >";
Model_String[4] = "< M_Y_GALB_LO_01 >";
Model_String[5] = "< M_Y_GALB_LO_02 >";
Model_String[6] = "< M_Y_GALB_LO_03 >";
Model_String[7] = "< M_Y_GALB_LO_04 >";
Model_String[8] = "< M_M_GBIK_LO_03 >";
Model_String[9] = "< M_Y_GBIK_HI_01 >";
Model_String[10] = "< M_Y_GBIK_HI_02 >";
Model_String[11] = "< M_Y_GBIK02_LO_02 >";
Model_String[12] = "< M_Y_GIRI_LO_01 >";
Model_String[13] = "< M_Y_GIRI_LO_02 >";
Model_String[14] = "< M_Y_GIRI_LO_03 >";
Model_String[15] = "< M_M_GJAM_HI_01 >";
Model_String[16] = "< M_M_GJAM_HI_02 >";
Model_String[17] = "< M_M_GJAM_HI_03 >";
Model_String[18] = "< M_Y_GJAM_LO_01 >";
Model_String[19] = "< M_Y_GJAM_LO_02 >";
Model_String[20] = "< M_Y_GKOR_LO_01 >";
Model_String[21] = "< M_Y_GKOR_LO_02 >";
Model_String[22] = "< M_Y_GLAT_LO_01 >";
Model_String[23] = "< M_Y_GLAT_LO_02 >";
Model_String[24] = "< M_Y_GLAT_HI_01 >";
Model_String[25] = "< M_Y_GLAT_HI_02 >";
Model_String[26] = "< M_Y_GMAF_HI_01 >";
Model_String[27] = "< M_Y_GMAF_HI_02 >";
Model_String[28] = "< M_Y_GMAF_LO_01 >";
Model_String[29] = "< M_Y_GMAF_LO_02 >";
Model_String[30] = "< M_O_GRUS_HI_01 >";
Model_String[31] = "< M_Y_GRUS_LO_01 >";
Model_String[32] = "< M_Y_GRUS_LO_02 >";
Model_String[33] = "< M_Y_GRUS_HI_02 >";
Model_String[34] = "< M_M_GRU2_HI_01 >";
Model_String[35] = "< M_M_GRU2_HI_02 >";
Model_String[36] = "< M_M_GRU2_LO_02 >";
Model_String[37] = "< M_Y_GRU2_LO_01 >";
Model_String[38] = "< M_M_GTRI_HI_01 >";
Model_String[39] = "< M_M_GTRI_HI_02 >";
Model_String[40] = "< M_Y_GTRI_LO_01 >";
Model_String[41] = "< M_Y_GTRI_LO_02 >";
Model_String[42] = "< M_Y_GBIK_LO_01 >";
Model_String[43] = "< M_Y_GBIK_LO_02 >";
menu_item[MenuItem_Index].charval = Model_String[(menu_item[MenuItem_Index].num_val - 1)];
}
void AllModelsItem9(int MenuItem_Index){
char* Model_String[50];
Model_String[0] = "< M_M_ALCOHOLIC >";
Model_String[1] = "< M_M_ARMOURED >";
Model_String[2] = "< M_M_BUSDRIVER >";
Model_String[3] = "< M_M_CHINATOWN_01 >";
Model_String[4] = "< M_M_CRACKHEAD >";
Model_String[5] = "< M_M_DOC_SCRUBS_01 >";
Model_String[6] = "< M_M_DOCTOR_01 >";
Model_String[7] = "< M_M_DODGYDOC >";
Model_String[8] = "< M_M_EECOOK >";
Model_String[9] = "< M_M_ENFORCER >";
Model_String[10] = "< M_M_FACTORY_01 >";
Model_String[11] = "< M_M_FATCOP_01 >";
Model_String[12] = "< M_M_FBI >";
Model_String[13] = "< M_M_FEDCO >";
Model_String[14] = "< M_M_FIRECHIEF >";
Model_String[15] = "< M_M_GUNNUT_01 >";
Model_String[16] = "< M_M_HELIPILOT_01 >";
Model_String[17] = "< M_M_HPORTER_01 >";
Model_String[18] = "< M_M_KOREACOOK_01 >";
Model_String[19] = "< M_M_LAWYER_01 >";
Model_String[20] = "< M_M_LAWYER_02 >";
Model_String[21] = "< M_M_LOONYBLACK >";
Model_String[22] = "< M_M_PILOT >";
Model_String[23] = "< M_M_PINDUS_01 >";
Model_String[24] = "< M_M_POSTAL_01 >";
Model_String[25] = "< M_M_SAXPLAYER_01 >";
Model_String[26] = "< M_M_SECURITYMAN >";
Model_String[27] = "< M_M_SELLER_01 >";
Model_String[28] = "< M_M_SHORTORDER >";
Model_String[29] = "< M_M_STREETFOOD_01 >";
Model_String[30] = "< M_M_SWEEPER >";
Model_String[31] = "< M_M_TAXIDRIVER >";
Model_String[32] = "< M_M_TELEPHONE >";
Model_String[33] = "< M_M_TENNIS >";
Model_String[34] = "< M_M_TRAIN_01 >";
Model_String[35] = "< M_M_TRAMPBLACK >";
Model_String[36] = "< M_M_TRUCKER_01 >";
Model_String[37] = "< M_O_JANITOR >";
Model_String[38] = "< M_O_HOTEL_FOOT >";
Model_String[39] = "< M_O_MPMOBBOSS >";
Model_String[40] = "< M_Y_AIRWORKER >";
Model_String[41] = "< M_Y_BARMAN_01 >";
Model_String[42] = "< M_Y_BOUNCER_01 >";
Model_String[43] = "< M_Y_BOUNCER_02 >";
Model_String[44] = "< M_Y_BOWL_01 >";
Model_String[45] = "< M_Y_BOWL_02 >";
Model_String[46] = "< M_Y_CHINVEND_01 >";
Model_String[47] = "< M_Y_CLUBFIT >";
Model_String[48] = "< M_Y_CONSTRUCT_01 >";
Model_String[49] = "< M_Y_CONSTRUCT_02 >";
menu_item[MenuItem_Index].charval = Model_String[(menu_item[MenuItem_Index].num_val - 1)];
}
void AllModelsItem10(int MenuItem_Index){
char* Model_String[37];
Model_String[0] = "< M_Y_CONSTRUCT_03 >";
Model_String[1] = "< M_Y_COP >";
Model_String[2] = "< M_Y_COP_TRAFFIC >";
Model_String[3] = "< M_Y_COURIER >";
Model_String[4] = "< M_Y_COWBOY_01 >";
Model_String[5] = "< M_Y_DEALER >";
Model_String[6] = "< M_Y_DRUG_01 >";
Model_String[7] = "< M_Y_FF_BURGER_R >";
Model_String[8] = "< M_Y_FF_CLUCK_R >";
Model_String[9] = "< M_Y_FF_RSCAFE >";
Model_String[10] = "< M_Y_FF_TWCAFE >";
Model_String[11] = "< M_Y_FF_WSPIZZA_R >";
Model_String[12] = "< M_Y_FIREMAN >";
Model_String[13] = "< M_Y_GARBAGE >";
Model_String[14] = "< M_Y_GOON_01 >";
Model_String[15] = "< M_Y_GYMGUY_01 >";
Model_String[16] = "< M_Y_MECHANIC_02 >";
Model_String[17] = "< M_Y_MODO >";
Model_String[18] = "< M_Y_NHELIPILOT >";
Model_String[19] = "< M_Y_PERSEUS >";
Model_String[20] = "< M_Y_PINDUS_01 >";
Model_String[21] = "< M_Y_PINDUS_02 >";
Model_String[22] = "< M_Y_PINDUS_03 >";
Model_String[23] = "< M_Y_PMEDIC >";
Model_String[24] = "< M_Y_PRISON >";
Model_String[25] = "< M_Y_PRISONAOM >";
Model_String[26] = "< M_Y_ROMANCAB >";
Model_String[27] = "< M_Y_RUNNER >";
Model_String[28] = "< M_Y_SHOPASST_01 >";
Model_String[29] = "< M_Y_STROOPER >";
Model_String[30] = "< M_Y_SWAT >";
Model_String[31] = "< M_Y_SWORDSWALLOW >";
Model_String[32] = "< M_Y_THIEF >";
Model_String[33] = "< M_Y_VALET >";
Model_String[34] = "< M_Y_VENDOR >";
Model_String[35] = "< M_Y_FRENCHTOM >";
Model_String[36] = "< M_Y_JIM_FITZ >";
menu_item[MenuItem_Index].charval = Model_String[(menu_item[MenuItem_Index].num_val - 1)];
}
void AllModelsItem11(int MenuItem_Index){
char* Model_String[16];
Model_String[0] = "< F_O_MAID_01 >";
Model_String[1] = "< F_O_BINCO >";
Model_String[2] = "< F_Y_BANK_01 >";
Model_String[3] = "< F_Y_DOCTOR_01 >";
Model_String[4] = "< F_Y_GYMGAL_01 >";
Model_String[5] = "< F_Y_FF_BURGER_R >";
Model_String[6] = "< F_Y_FF_CLUCK_R >";
Model_String[7] = "< F_Y_FF_RSCAFE >";
Model_String[8] = "< F_Y_FF_TWCAFE >";
Model_String[9] = "< F_Y_FF_WSPIZZA_R >";
Model_String[10] = "< F_Y_HOOKER_01 >";
Model_String[11] = "< F_Y_HOOKER_03 >";
Model_String[12] = "< F_Y_NURSE >";
Model_String[13] = "< F_Y_STRIPPERC01 >";
Model_String[14] = "< F_Y_STRIPPERC02 >";
Model_String[15] = "< F_Y_WAITRESS_01 >";
menu_item[MenuItem_Index].charval = Model_String[(menu_item[MenuItem_Index].num_val - 1)];
}
void AllModelsItem12(int MenuItem_Index){
char* Model_String[87];
Model_String[0] = "< M_Y_CONSTRUCT_03 >";
Model_String[1] = "< M_Y_COP >";
Model_String[2] = "< M_Y_COP_TRAFFIC >";
Model_String[3] = "< M_Y_COURIER >";
Model_String[4] = "< M_Y_COWBOY_01 >";
Model_String[5] = "< M_Y_DEALER >";
Model_String[6] = "< M_Y_DRUG_01 >";
Model_String[7] = "< M_Y_FF_BURGER_R >";
Model_String[8] = "< M_Y_FF_CLUCK_R >";
Model_String[9] = "< M_Y_FF_RSCAFE >";
Model_String[10] = "< M_Y_FF_TWCAFE >";
Model_String[11] = "< M_Y_FF_WSPIZZA_R >";
Model_String[12] = "< M_Y_FIREMAN >";
Model_String[13] = "< M_Y_GARBAGE >";
Model_String[14] = "< M_Y_GOON_01 >";
Model_String[15] = "< M_Y_GYMGUY_01 >";
Model_String[16] = "< M_Y_MECHANIC_02 >";
Model_String[17] = "< M_Y_MODO >";
Model_String[18] = "< M_Y_NHELIPILOT >";
Model_String[19] = "< M_Y_PERSEUS >";
Model_String[20] = "< M_Y_PINDUS_01 >";
Model_String[21] = "< M_Y_PINDUS_02 >";
Model_String[22] = "< M_Y_PINDUS_03 >";
Model_String[23] = "< M_Y_PMEDIC >";
Model_String[24] = "< M_Y_PRISON >";
Model_String[25] = "< M_Y_PRISONAOM >";
Model_String[26] = "< M_Y_ROMANCAB >";
Model_String[27] = "< M_Y_RUNNER >";
Model_String[28] = "< M_Y_SHOPASST_01 >";
Model_String[29] = "< M_Y_STROOPER >";
Model_String[30] = "< M_Y_SWAT >";
Model_String[31] = "< M_Y_SWORDSWALLOW >";
Model_String[32] = "< M_Y_THIEF >";
Model_String[33] = "< M_Y_VALET >";
Model_String[34] = "< M_Y_VENDOR >";
Model_String[35] = "< M_Y_FRENCHTOM >";
Model_String[36] = "< M_Y_JIM_FITZ >";
Model_String[37] = "< M_Y_TOURIST_02 >";
Model_String[38] = "< M_Y_TOUGH_05 >";
Model_String[39] = "< M_Y_STREETPUNK_05 >";
Model_String[40] = "< M_Y_STREETPUNK_04 >";
Model_String[41] = "< M_Y_STREETPUNK_02 >";
Model_String[42] = "< M_Y_STREETBLK_03 >";
Model_String[43] = "< M_Y_STREETBLK_02 >";
Model_String[44] = "< M_Y_STREET_04 >";
Model_String[45] = "< M_Y_STREET_01 >";
Model_String[46] = "< M_Y_STREET_03 >";
Model_String[47] = "< M_Y_SOHO_01 >";
Model_String[48] = "< M_Y_SKATEBIKE_01 >";
Model_String[49] = "< M_Y_SHADY_02 >";
Model_String[50] = "< M_Y_QUEENSBRIDGE >";
Model_String[51] = "< M_Y_PVILLBO_03 >";
Model_String[52] = "< M_Y_PVILLBO_02 >";
Model_String[53] = "< M_Y_PVILLBO_01 >";
Model_String[54] = "< M_Y_PRICH_01 >";
Model_String[55] = "< M_Y_PQUEENS_01 >";
Model_String[56] = "< M_Y_PORIENT_01 >";
Model_String[57] = "< M_Y_PMANHAT_02 >";
Model_String[58] = "< M_Y_PMANHAT_01 >";
Model_String[59] = "< M_Y_PLATIN_03 >";
Model_String[60] = "< M_Y_PLATIN_02 >";
Model_String[61] = "< M_Y_PLATIN_01 >";
Model_String[62] = "< M_Y_PJERSEY_01 >";
Model_String[63] = "< M_Y_PHARLEM_01 >";
Model_String[64] = "< M_Y_PHARBRON_01 >";
Model_String[65] = "< M_Y_PCOOL_02 >";
Model_String[66] = "< M_Y_PCOOL_01 >";
Model_String[67] = "< M_Y_PBRONX_01 >";
Model_String[68] = "< M_Y_LEASTSIDE_01 >";
Model_String[69] = "< M_Y_HASID_01 >";
Model_String[70] = "< M_Y_HARLEM_04 >";
Model_String[71] = "< M_Y_HARLEM_02 >";
Model_String[72] = "< M_Y_HARLEM_01 >";
Model_String[73] = "< M_O_STREET_01 >";
Model_String[74] = "< M_O_SUITED >";
Model_String[75] = "< M_Y_BOHO_01 >";
Model_String[76] = "< M_Y_DODGY_01 >";
Model_String[77] = "< M_Y_DORK_02 >";
Model_String[78] = "< M_Y_DOWNTOWN_01 >";
Model_String[79] = "< M_Y_DOWNTOWN_02 >";
Model_String[80] = "< M_Y_DOWNTOWN_03 >";
Model_String[81] = "< M_Y_GAYYOUNG >";
Model_String[82] = "< M_Y_GENSTREET_11 >";
Model_String[83] = "< M_Y_GENSTREET_16 >";
Model_String[84] = "< M_Y_GENSTREET_20 >";
Model_String[85] = "< M_Y_GENSTREET_34 >";
Model_String[86] = "< M_Y_HARDMAN_01 >";
menu_item[MenuItem_Index].charval = Model_String[(menu_item[MenuItem_Index].num_val - 1)];
}
void AllModelsItem13(int MenuItem_Index){
char* Model_String[73];
Model_String[0] = "< IG_AHMAD >";
Model_String[1] = "< IG_ARMANDO >";
Model_String[2] = "< IG_ARMSDEALER >";
Model_String[3] = "< IG_ARNAUD >";
Model_String[4] = "< IG_BANKER >";
Model_String[5] = "< IG_BRUCIE2 >";
Model_String[6] = "< IG_BULGARIN2 >";
Model_String[7] = "< IG_DAISY >";
Model_String[8] = "< IG_DEEJAY >";
Model_String[9] = "< IG_DESSIE >";
Model_String[10] = "< IG_EVAN >";
Model_String[11] = "< IG_GRACIE2 >";
Model_String[12] = "< IG_HENRIQUE >";
Model_String[13] = "< IG_ISSAC2 >";
Model_String[14] = "< IG_JOHNNY2 >";
Model_String[15] = "< IG_LUIS2 >";
Model_String[16] = "< IG_MARGOT >";
Model_String[17] = "< IG_MORI_K >";
Model_String[18] = "< IG_MR_SANTOS >";
Model_String[19] = "< IG_OYVEY >";
Model_String[20] = "< IG_NIKO >";
Model_String[21] = "< IG_OYVEY >";
Model_String[22] = "< IG_ROCCO >";
Model_String[23] = "< IG_TAHIR >";
Model_String[24] = "< IG_TIMUR >";
Model_String[25] = "< IG_TONY >";
Model_String[26] = "< IG_TRAMP2 >";
Model_String[27] = "< IG_TRIAD >";
Model_String[28] = "< IG_TROY >";
Model_String[29] = "< IG_VIC >";
Model_String[30] = "< IG_VICGIRL >";
Model_String[31] = "< IG_VINCE >";
Model_String[32] = "< IG_YUSEF >";
Model_String[33] = "< F_Y_ASIANCLUB_01 >";
Model_String[34] = "< F_Y_ASIANCLUB_02 >";
Model_String[35] = "< F_Y_CLUBEURO_01 >";
Model_String[36] = "< F_Y_DOMGIRL_01 >";
Model_String[37] = "< F_Y_EMIDTOWN_02 >";
Model_String[38] = "< F_Y_HOSTESS >";
Model_String[39] = "< F_Y_HOTCHICK_01 >";
Model_String[40] = "< F_Y_HOTCHICK_02 >";
Model_String[41] = "< F_Y_HOTCHICK_03 >";
Model_String[42] = "< F_Y_PGIRL_01 >";
Model_String[43] = "< F_Y_PGIRL_02 >";
Model_String[44] = "< M_M_E2MAF_01 >";
Model_String[45] = "< M_M_E2MAF_02 >";
Model_String[46] = "< M_Y_BATHROOM >";
Model_String[47] = "< M_Y_CIADLC_01 >";
Model_String[49] = "< M_Y_CIADLC_02 >";
Model_String[50] = "< M_Y_GAYBLACK_01 >";
Model_String[51] = "< M_Y_GAYDANCER >";
Model_String[52] = "< M_Y_FIGHTCLUB_01 >";
Model_String[53] = "< M_Y_FIGHTCLUB_02 >";
Model_String[54] = "< M_Y_FIGHTCLUB_03 >";
Model_String[55] = "< M_Y_FIGHTCLUB_04 >";
Model_String[56] = "< M_Y_FIGHTCLUB_05 >";
Model_String[57] = "< M_Y_FIGHTCLUB_06 >";
Model_String[58] = "< M_Y_FIGHTCLUB_07 >";
Model_String[59] = "< M_Y_FIGHTCLUB_08 >";
Model_String[60] = "< F_Y_CLOEPARKER >";
Model_String[61] = "< F_Y_DANCER_01 >";
Model_String[62] = "< F_Y_JONI >";
Model_String[63] = "< M_M_MAFUNION >";
Model_String[64] = "< M_Y_CELEBBLOG >";
Model_String[65] = "< M_Y_EXSPORTS >";
Model_String[66] = "< M_Y_MOBPARTY >";
Model_String[67] = "< M_Y_PAPARAZZI_01 >";
Model_String[68] = "< IG_BLUEBROS >";
Model_String[69] = "< IG_JACKSON >";
Model_String[70] = "< IG_NAPOLI >";
Model_String[71] = "< IG_ROYAL >";
Model_String[72] = "< IG_SPADE >";
menu_item[MenuItem_Index].charval = Model_String[(menu_item[MenuItem_Index].num_val - 1)];
}
void AllModelsItem14(int MenuItem_Index){
char* Model_String[26];
Model_String[0] = "< IG_NIKO >";
Model_String[1] = "< IG_ASHLEYA >";
Model_String[2] = "< IG_CLAY >";
Model_String[3] = "< IG_MALC >";
Model_String[4] = "< IG_BILLY >";
Model_String[5] = "< IG_JIM_FITZ >";
Model_String[6] = "< IG_BRIANJ >";
Model_String[7] = "< IG_EVAN >";
Model_String[8] = "< IG_TERRY >";
Model_String[9] = "< IG_DAVE_GROSSMAN >";
Model_String[10] = "< IG_LOSTGIRL >";
Model_String[11] = "< IG_BILLYPRISON >";
Model_String[12] = "< IG_MARTA >";
Model_String[13] = "< IG_DESEAN >";
Model_String[14] = "< IG_MATTHEWS >";
Model_String[15] = "< IG_MCCORNISH >";
Model_String[16] = "< IG_PGIRL_01 >";
Model_String[17] = "< IG_PGIRL_02 >";
Model_String[18] = "< IG_ROMAN_E1 >";
Model_String[19] = "< IG_STROOPER >";
Model_String[20] = "< F_Y_BIKESTRIPPER_01 >";
Model_String[21] = "< F_Y_EMIDTOWN_01 >";
Model_String[22] = "< M_M_SPRETZER >";
Model_String[23] = "< M_Y_CIADLC_01 >";
Model_String[24] = "< M_O_HISPANIC_01 >";
Model_String[25] = "< M_Y_HISPANIC_01 >";
menu_item[MenuItem_Index].charval = Model_String[(menu_item[MenuItem_Index].num_val - 1)];
}
void Player_MoreChanger_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover
//Sco
//Function
//Bool
else if(MenuItem_Index == 9)return MD_Texture_Body_Strings(MenuItem_Index);
else if(MenuItem_Index == 10)return AllModelsItem6(MenuItem_Index);
else if(MenuItem_Index == 11)return AllModelsItem7(MenuItem_Index);
else if(MenuItem_Index == 12)return AllModelsItem8(MenuItem_Index);
else if(MenuItem_Index == 13)return AllModelsItem9(MenuItem_Index);
else if(MenuItem_Index == 14)return AllModelsItem10(MenuItem_Index);
else if(MenuItem_Index == 15)return AllModelsItem11(MenuItem_Index);
else if(MenuItem_Index == 16)return AllModelsItem12(MenuItem_Index);
else if(MenuItem_Index == 17)return AllModelsItem13(MenuItem_Index);
else if(MenuItem_Index == 18)return AllModelsItem14(MenuItem_Index);
else if(MenuItem_Index == 20)return MD_Stride_Strings(MenuItem_Index);
}//super nice

View File

@@ -0,0 +1,115 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
void Content_Builder_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover//5
else if(MenuItem_Index == 6){
char* Ccbuilder_String[6];
Ccbuilder_String[0] = "< ERROR >";
Ccbuilder_String[1] = "< Item 1 >";
Ccbuilder_String[2] = "< Item 2 >";
Ccbuilder_String[3] = "< Item 3 >";
Ccbuilder_String[4] = "< Item 4 >";
Ccbuilder_String[5] = "< Item 5 >";
menu_item[MenuItem_Index].charval = Ccbuilder_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 7){
char* Ccbuilder_String[6];
Ccbuilder_String[0] = "< ERROR >";
Ccbuilder_String[1] = "< Item 1 >";
Ccbuilder_String[2] = "< Item 2 >";
Ccbuilder_String[3] = "< Item 3 >";
Ccbuilder_String[4] = "< Item 4 >";
Ccbuilder_String[5] = "< Item 5 >";
menu_item[MenuItem_Index].charval = Ccbuilder_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 8){
char* Ccbuilder_String[6];
Ccbuilder_String[0] = "< ERROR >";
Ccbuilder_String[1] = "< Item 1 >";
Ccbuilder_String[2] = "< Item 2 >";
Ccbuilder_String[3] = "< Item 3 >";
Ccbuilder_String[4] = "< Item 4 >";
Ccbuilder_String[5] = "< Item 5 >";
menu_item[MenuItem_Index].charval = Ccbuilder_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 9){
char* Ccbuilder_String[6];
Ccbuilder_String[0] = "< ERROR >";
Ccbuilder_String[1] = "< Item 1 >";
Ccbuilder_String[2] = "< Item 2 >";
Ccbuilder_String[3] = "< Item 3 >";
Ccbuilder_String[4] = "< Item 4 >";
Ccbuilder_String[5] = "< Item 5 >";
menu_item[MenuItem_Index].charval = Ccbuilder_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 10){
char* Ccbuilder_String[6];
Ccbuilder_String[0] = "< ERROR >";
Ccbuilder_String[1] = "< Item 1 >";
Ccbuilder_String[2] = "< Item 2 >";
Ccbuilder_String[3] = "< Item 3 >";
Ccbuilder_String[4] = "< Item 4 >";
Ccbuilder_String[5] = "< Item 5 >";
menu_item[MenuItem_Index].charval = Ccbuilder_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 11){
char* Ccbuilder_String[6];
Ccbuilder_String[0] = "< ERROR >";
Ccbuilder_String[1] = "< Item 1 >";
Ccbuilder_String[2] = "< Item 2 >";
Ccbuilder_String[3] = "< Item 3 >";
Ccbuilder_String[4] = "< Item 4 >";
Ccbuilder_String[5] = "< Item 5 >";
menu_item[MenuItem_Index].charval = Ccbuilder_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 12){
char* Ccbuilder_String[6];
Ccbuilder_String[0] = "< ERROR >";
Ccbuilder_String[1] = "< Item 1 >";
Ccbuilder_String[2] = "< Item 2 >";
Ccbuilder_String[3] = "< Item 3 >";
Ccbuilder_String[4] = "< Item 4 >";
Ccbuilder_String[5] = "< Item 5 >";
menu_item[MenuItem_Index].charval = Ccbuilder_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 13){
char* Ccbuilder_String[6];
Ccbuilder_String[0] = "< ERROR >";
Ccbuilder_String[1] = "< Item 1 >";
Ccbuilder_String[2] = "< Item 2 >";
Ccbuilder_String[3] = "< Item 3 >";
Ccbuilder_String[4] = "< Item 4 >";
Ccbuilder_String[5] = "< Item 5 >";
menu_item[MenuItem_Index].charval = Ccbuilder_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 14){
char* Ccbuilder_String[6];
Ccbuilder_String[0] = "< ERROR >";
Ccbuilder_String[1] = "< Item 1 >";
Ccbuilder_String[2] = "< Item 2 >";
Ccbuilder_String[3] = "< Item 3 >";
Ccbuilder_String[4] = "< Item 4 >";
Ccbuilder_String[5] = "< Item 5 >";
menu_item[MenuItem_Index].charval = Ccbuilder_String[menu_item[MenuItem_Index].num_val];
}
else if(MenuItem_Index == 15){
char* Ccbuilder_String[6];
Ccbuilder_String[0] = "< ERROR >";
Ccbuilder_String[1] = "< Item 1 >";
Ccbuilder_String[2] = "< Item 2 >";
Ccbuilder_String[3] = "< Item 3 >";
Ccbuilder_String[4] = "< Item 4 >";
Ccbuilder_String[5] = "< Item 5 >";
menu_item[MenuItem_Index].charval = Ccbuilder_String[menu_item[MenuItem_Index].num_val];
}
}

View File

@@ -0,0 +1,64 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//!Navigator Specific Strings (Others can be found in >Generallu used strings)
void Unfriendly_Strings(int MenuItem_Index){
char* String[7];
String[0] = "< ERROR >";
String[1] = Print_Kill_Feed ? "< ~COL_NET_1~Killfeed on screen ~w~>" : "< Killfeed on screen >";
String[2] = "< Burn Vehicle >";
String[3] = "< Break Vehicle >";
String[4] = "< Kill Player >";
String[5] = "< Kick Player >";
String[6] = "< Freak Out >";
menu_item[MenuItem_Index].charval = String[menu_item[MenuItem_Index].num_val];
}
void Canonball_Strings(int MenuItem_Index){
char* String[13];
String[0] = "< ERROR >";
String[1] = "< ANNIHILATOR >";
String[2] = (Episode == 2) ? "< BUZZARD >" : "< MAVERICK >";
String[3] = "< SULTANRS >";
String[4] = "< NRG900 >";
String[5] = "< AMBULANCE >";
String[6] = "< FBI >";
String[7] = "< FIRETRUCK >";
String[8] = "< NOOSE >";
String[9] = "< POLICE >";
String[10] = "< POLICE2 >";
String[11] = "< POLPATRIOT >";
String[12] = "< PSTOCKADE >";
menu_item[MenuItem_Index].charval = String[menu_item[MenuItem_Index].num_val];
}
void WeaponVehicle_Strings(int MenuItem_Index){
char* String[4];
String[0] = "< ERROR >";
String[1] = MD_Weapon_Vehicle ? "< ~COL_NET_1~Rocket Vehicle ~w~>" : "< Rocket Vehicle >";
String[2] = Devils_Rapid_Fire_Heli ? "< ~COL_NET_1~Rapid Fire Heli ~w~>" : "< Rapid Fire Heli >";
//String[2] = GetBit(MD_Misc_OptionsBitSet, MD_MISC_NATHANS_RAPID_FIRE_HELI) ? "< ~COL_NET_1~Rapid Fire Heli ~w~>" : "< Rapid Fire Heli >";
menu_item[MenuItem_Index].charval = String[menu_item[MenuItem_Index].num_val];
}
void MD_Navigator_Strings(uint MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
else if(MenuItem_Index == 6) return Player_Help_Strings(MenuItem_Index);
else if(MenuItem_Index == 7) return Helper_Loop_Strings(MenuItem_Index);
else if(MenuItem_Index == 9) return Weapon_Strings(MenuItem_Index);
else if(MenuItem_Index == 10) return Physics_Strings(MenuItem_Index);
else if(MenuItem_Index == 11) return Unfriendly_Strings(MenuItem_Index);
else if(MenuItem_Index == 12) return Canonball_Strings(MenuItem_Index);
else if(MenuItem_Index == 13) return MD_VehOpt_Pplayer_Forces_Strings(MenuItem_Index);
else if(MenuItem_Index == 14) return MD_VehOpt_Pplayer_Heading_Strings(MenuItem_Index);
else if(MenuItem_Index == 15) return MD_VehOpt_Pplayer_Trans_Strings(MenuItem_Index);
else if(MenuItem_Index == 16) return WeaponVehicle_Strings(MenuItem_Index);
else if(MenuItem_Index == 17) return Help_Strings(MenuItem_Index);
}

View File

@@ -0,0 +1,130 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
void MD_Net_VehOpt_QuickSpawn_Strings(int MenuItem_Index){
char* Vehicle[14];
Vehicle[1] = "~PAD_LEFT~ COMET ~PAD_RIGHT~";
Vehicle[2] = "~PAD_LEFT~ TURISMO ~PAD_RIGHT~";
Vehicle[3] = "~PAD_LEFT~ INFERNUS ~PAD_RIGHT~";
Vehicle[4] = "~PAD_LEFT~ SUPERGT ~PAD_RIGHT~";
Vehicle[5] = "~PAD_LEFT~ SULTANRS ~PAD_RIGHT~";
Vehicle[6] = "~PAD_LEFT~ ORACLE ~PAD_RIGHT~";
Vehicle[7] = "~PAD_LEFT~ PATRIOT ~PAD_RIGHT~";
Vehicle[8] = "~PAD_LEFT~ FBI ~PAD_RIGHT~";
Vehicle[9] = "~PAD_LEFT~ BUS ~PAD_RIGHT~";
Vehicle[10] = "~PAD_LEFT~ SQUALO ~PAD_RIGHT~";
Vehicle[11] = "~PAD_LEFT~ NRG900 ~PAD_RIGHT~";
Vehicle[12] = "~PAD_LEFT~ MAVERICK ~PAD_RIGHT~";
Vehicle[13] = "~PAD_LEFT~ ANNIHILATOR ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Vehicle[menu_item[MenuItem_Index].num_val];
}
void MD_Net_VehOpt_General_Strings(int MenuItem_Index){
char* general_strings[8];
//general_strings[1] = IS_CHARS_VEHICLE_LOCKED(PLAYER_CHAR(players[ChangeNetPlayer].id)) ? "~PAD_LEFT~ ~COL_NET_1~Lock ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Lock ~PAD_RIGHT~";
general_strings[1] = "~PAD_LEFT~ Fix & Wash ~PAD_RIGHT~";
general_strings[2] = "~PAD_LEFT~ Flip ~PAD_RIGHT~";
general_strings[3] = "~PAD_LEFT~ Delete ~PAD_RIGHT~";
general_strings[4] = "~PAD_LEFT~ Try to damage proof ~PAD_RIGHT~";
general_strings[5] = "~PAD_LEFT~ Make visible ~PAD_RIGHT~";
general_strings[6] = "~PAD_LEFT~ Make invisible ~PAD_RIGHT~";
general_strings[7] = "~PAD_LEFT~ Clone ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = general_strings[menu_item[MenuItem_Index].num_val];
}
void MD_Net_VehOpt_Pplayer_ActiveOption_Strings(int MenuItem_Index)
{
////10 Vehicle Helper / Visibility / Drive - Walk on water / Stick to ground / Autospawn Boat in water
char* physics_strings[4];
//physics_strings[1] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_INVINCIBLE) ? "~PAD_LEFT~ ~COL_NET_1~Invincible ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Invincible ~PAD_RIGHT~";
//physics_strings[2] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_INVISIBLE) ? "~PAD_LEFT~ ~COL_NET_1~Invisible ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Invisible ~PAD_RIGHT~";
physics_strings[1] = DOES_OBJECT_EXIST(drive_water[iPlayer]) ? "~PAD_LEFT~ ~COL_NET_1~Drive on water ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Drive on water ~PAD_RIGHT~" ;
physics_strings[2] = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY) ? "~PAD_LEFT~ ~COL_NET_1~Desolidify ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Desolidify ~PAD_RIGHT~";;
physics_strings[3] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_AUTO_BOAT) ? "~PAD_LEFT~ ~COL_NET_1~Auto-spawn boat ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Auto-spawn boat ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = physics_strings[menu_item[MenuItem_Index].num_val];
}
void MD_Net_VehOpt_SpawnSettings_Strings(int MenuItem_Index)
{
////9 Upgrades / Damage proof / Sirens
char* Playeroption_example1[6];
Playeroption_example1[1] = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_ALL_UPGRADES) ? "~PAD_LEFT~ ~COL_NET_1~All upgrades ~w~~PAD_RIGHT~" : "~PAD_LEFT~ All upgrades ~PAD_RIGHT~";
Playeroption_example1[2] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_INVINCIBLE) ? "~PAD_LEFT~ ~COL_NET_1~Invincible ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Invincible ~PAD_RIGHT~";
Playeroption_example1[3] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_SIREN) ? "~PAD_LEFT~ ~COL_NET_1~Sirens ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Sirens ~PAD_RIGHT~";
Playeroption_example1[4] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_RAINBOW) ? "~PAD_LEFT~ ~COL_NET_1~Rainbow Car ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Rainbow Car ~PAD_RIGHT~";
Playeroption_example1[5] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_ENGINE) ? "~PAD_LEFT~ ~COL_NET_1~Engine ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Engine ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
void MD_Net_VehOpt_Action_Strings(int MenuItem_Index)
{
char* Playeroption_example1[5];
Playeroption_example1[1] = "~PAD_LEFT~ Duplicate ~PAD_RIGHT~";
Playeroption_example1[2] = "~PAD_LEFT~ Freeze position ~PAD_RIGHT~";
Playeroption_example1[3] = "~PAD_LEFT~ Un-freeze position ~PAD_RIGHT~";
Playeroption_example1[4] = "~PAD_LEFT~ Break ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
//Misc: Flymod, Player inferno, Weapons + armour, Remove armour, Explode self, Spawn money
}
void MD_Net_VehOpt_Throw_Strings(const int MenuItem_Index)
{
char* Throw_Vehicle_String[7];
Throw_Vehicle_String[1] = "~PAD_LEFT~ Up ~PAD_RIGHT~";
Throw_Vehicle_String[2] = "~PAD_LEFT~ Down ~PAD_RIGHT~";
Throw_Vehicle_String[3] = "~PAD_LEFT~ Left ~PAD_RIGHT~";
Throw_Vehicle_String[4] = "~PAD_LEFT~ Right ~PAD_RIGHT~";
Throw_Vehicle_String[5] = "~PAD_LEFT~ Forwards ~PAD_RIGHT~";
Throw_Vehicle_String[6] = "~PAD_LEFT~ Backwards ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Throw_Vehicle_String[menu_item[MenuItem_Index].num_val];
}
void MD_Net_VehOpt_Heading_Strings(const int MenuItem_Index)
{
////Speedboost, Reverse + Speedboost, Turn Right, Turn Left,
char* Heading_String[6];
Heading_String[1] = "~PAD_LEFT~ Speedboost ~PAD_RIGHT~";
Heading_String[2] = "~PAD_LEFT~ Reverse + Speedboost ~PAD_RIGHT~";
Heading_String[3] = "~PAD_LEFT~ Reverse ~PAD_RIGHT~";
Heading_String[4] = "~PAD_LEFT~ Turn Left ~PAD_RIGHT~";
Heading_String[5] = "~PAD_LEFT~ Turn Right ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Heading_String[menu_item[MenuItem_Index].num_val];
}
void MD_Net_VehOpt_HelperLoop_Strings(const int MenuItem_Index) //"Vehicle helpers"
{
char* VehHelper_Loop_strings[3];
VehHelper_Loop_strings[1] = (GetBit(autoFixVehBitSet,players[ChangeNetPlayer].id)) ? "~PAD_LEFT~ ~COL_NET_1~Auto fix ~PAD_RIGHT~" : "~PAD_LEFT~ Auto fix ~PAD_RIGHT~";
VehHelper_Loop_strings[2] = (GetBit(autoFlipVehBitSet,players[ChangeNetPlayer].id)) ? "~PAD_LEFT~ ~COL_NET_1~Auto flip ~PAD_RIGHT~" : "~PAD_LEFT~ Auto flip ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = VehHelper_Loop_strings[menu_item[MenuItem_Index].num_val];
/*autoFlipVehBitSet; //covers all players! :D - Nathan
uint autoFixVehBitSet; /*/
}
void MD_VehOpt_NetPlayer_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover 5
//Sub Spawner 6
//Sub Addons 7
//Sub Upgrades 8
else if(MenuItem_Index == 9) return MD_Net_VehOpt_QuickSpawn_Strings(MenuItem_Index);
else if(MenuItem_Index == 10) return MD_Net_VehOpt_General_Strings(MenuItem_Index);
else if(MenuItem_Index == 11) return MD_Net_VehOpt_Heading_Strings(MenuItem_Index);
else if(MenuItem_Index == 12) return MD_Net_VehOpt_HelperLoop_Strings(MenuItem_Index); //Vehicle helpers...
else if(MenuItem_Index == 13) return MD_Net_VehOpt_Throw_Strings(MenuItem_Index);
else if(MenuItem_Index == 14) return MD_Net_VehOpt_SpawnSettings_Strings(MenuItem_Index);
else if(MenuItem_Index == 15) return MD_Net_VehOpt_Action_Strings(MenuItem_Index);
}

View File

@@ -0,0 +1,35 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
void MD_Helper_Loop_Strings(int MenuItem_Index){
char* Helper_Loop[3];
Helper_Loop[0] = "< Not Used >";//We dont have an itemline 0, please keep numbers same as itemlines
Helper_Loop[1] = "< Enable >";
Helper_Loop[2] = "< Disable >";
menu_item[MenuItem_Index].charval = Helper_Loop[menu_item[MenuItem_Index].num_val];
}
void MD_NetPlayer_Options_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover 5
else if(MenuItem_Index == 7)return MD_Helper_Loop_Strings(MenuItem_Index);
}
/*
char* Invincibility_Strings[3];
Invincibility_Strings[0] = "< Not used >";//We dont have an itemline 0, please keep numbers same as itemlines
if(godmode)Invincibility_Strings[1] = "< Godmode (Orange)>";
else(godmode)Invincibility_Strings[1] = "< Godmode (White) >";
if(armour)Invincibility_Strings[2] = "< Auto Armour (Orange) >";
Invincibility_Strings[2] = "< Auto Armour (White) >";
menu_item[MenuItem_Index].charval = Invincibility_Strings[menu_item[MenuItem_Index].num_val];
*/

View File

@@ -0,0 +1,47 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
void MD_Net_Unfr_Telport_Strings(int MenuItem_Index){
char* Unfriendly[6];
Unfriendly[0] = "< Not used >";//We dont have an itemline 0, please keep numbers same as itemlines
Unfriendly[1] = "< Airport Building >";
Unfriendly[2] = "< Barge Basement >";
Unfriendly[3] = "< Subway >";
Unfriendly[4] = "< Isolate Building >";
Unfriendly[5] = "< Statue Cup >";
menu_item[MenuItem_Index].charval = Unfriendly[menu_item[MenuItem_Index].num_val];
}
void MD_Net_Unfr_FC_Strings(int MenuItem_Index){
char* Unfriendly[7];
Unfriendly[0] = "< Not used >";//We dont have an itemline 0, please keep numbers same as itemlines
Unfriendly[1] = "< Patriot >";
Unfriendly[2] = "< Romero >";
Unfriendly[3] = "< Limo TBOGT >";
Unfriendly[4] = "< Shafter 1 TBOGT >";
Unfriendly[5] = "< Shafter 2 TBOGT>";
Unfriendly[6] = "< Mix All >";
menu_item[MenuItem_Index].charval = Unfriendly[menu_item[MenuItem_Index].num_val];
}
void MD_Net_Unfr_Obj_Strings(int MenuItem_Index){
char* Unfriendly[6];
Unfriendly[0] = "< Not used >";//We dont have an itemline 0, please keep numbers same as itemlines
Unfriendly[1] = "< V6 >";
Unfriendly[2] = "< V7 >";
Unfriendly[3] = "< V8 >";
Unfriendly[4] = "< V11 >";
Unfriendly[5] = "< Laglight >";
menu_item[MenuItem_Index].charval = Unfriendly[menu_item[MenuItem_Index].num_val];
}
void MD_Net_Unfr_Lag_Strings(int MenuItem_Index){
char* Unfriendly[4];
Unfriendly[0] = "< Not used >";//We dont have an itemline 0, please keep numbers same as itemlines
Unfriendly[1] = "< Annihilator >";
Unfriendly[2] = "< Tugboats >";
Unfriendly[3] = "< Firetrucks >";
menu_item[MenuItem_Index].charval = Unfriendly[menu_item[MenuItem_Index].num_val];
}

View File

@@ -0,0 +1,76 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MD TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//!Player options Specific Strings (Others can be found in >Generallu used strings)
void MD_PO_Protect_Strings(int MenuItem_Index){
char* protect_strings[4];
protect_strings[1] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_GODMODE) ? "< ~COL_NET_1~Godmode ~w~>" : "< Godmode >";
protect_strings[2] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_JUGGERNAUT) ? "< ~COL_NET_1~Juggernaut ~w~>" : "< Juggernaut >";
protect_strings[3] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_NEVER_WANTED) ? "< ~COL_NET_1~Ignored by police ~w~>" : "< Ignored by police >";
menu_item[MenuItem_Index].charval = protect_strings[menu_item[MenuItem_Index].num_val];
}
void MD_PO_Visibility_Strings(int MenuItem_Index){
char* Visibility_Strings[6];
Visibility_Strings[1] = !IS_CHAR_VISIBLE(pPlayer) ? "< ~COL_NET_1~Invisible ~BLIP_63~~w~>" : "< Invisible ~BLIP_63~ >";
Visibility_Strings[2] = !GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE) ? "< ~COL_NET_1~Invisible ~BLIP_79~ ~w~>" : "< Invisible ~BLIP_79~ >";
Visibility_Strings[3] = !IS_CHAR_VISIBLE(pPlayer) && !GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVISIBLE) ? "< ~COL_NET_1~Invisible ~BLIP_63~ + ~BLIP_79~ ~w~>" : "< Invisible ~BLIP_63~ + ~BLIP_79~ >";
Visibility_Strings[4] = GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_REMOVE_BLIP) ? "< ~COL_NET_1~Ninja Mode ~BLIP_63~~w~>" : "< Ninja Mode ~BLIP_63~ >";
Visibility_Strings[5] = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_REMOVE_BLIP) ? "< ~COL_NET_1~Ninja Mode ~BLIP_63~ + ~BLIP_79~ ~w~>" : "< Ninja Mode ~BLIP_63~ + ~BLIP_79~ >";
menu_item[MenuItem_Index].charval = Visibility_Strings[menu_item[MenuItem_Index].num_val];
}
void MD_PO_Power_Strings(int MenuItem_Index){
char* Playeroption_example1[5];
Playeroption_example1[1] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_SUPER_RUN) ? "< ~COL_NET_1~Super run ~w~>" : "< Super run >";
Playeroption_example1[2] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_SUPER_JUMP) ? "< ~COL_NET_1~Super jump ~w~>" : "< Super jump >";
Playeroption_example1[3] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_SUPER_PUNCH) ? "< ~COL_NET_1~Super punch ~w~>" : "< Super punch >";
Playeroption_example1[4] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_FORCE_FIELD) ? "< ~COL_NET_1~Force field ~w~>" : "< Force field >";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
void MD_PO_NameColor_Strings(int MenuItem_Index){
char* Playeroption_example1[19];
Playeroption_example1[0] = "< Black >";
Playeroption_example1[1] = "< Black ~w~>";
Playeroption_example1[2] = "< ~COL_NET_1~ Orange ~w~>";
Playeroption_example1[3] = "< ~COL_NET_2~ Purple ~w~>";
Playeroption_example1[4] = "< ~COL_NET_3~ Green ~w~>";
Playeroption_example1[5] = "< ~COL_NET_4~ Red ~w~>";
Playeroption_example1[6] = "< ~COL_NET_5~ Yellow ~w~>";
Playeroption_example1[7] = "< ~COL_NET_6~ L.Blue ~w~>";
Playeroption_example1[8] = "< ~COL_NET_7~ Pink ~w~>";
Playeroption_example1[9] = "< ~COL_NET_8~ Peach ~w~>";
Playeroption_example1[10] = "< ~COL_NET_9~ D.Green ~w~>";
Playeroption_example1[11] = "< ~COL_NET_10~ D.Blue ~w~>";
Playeroption_example1[12] = "< ~COL_NET_11~ L.Pink ~w~>";
Playeroption_example1[13] = "< ~COL_NET_12~ L.Blue ~w~>";
Playeroption_example1[14] = "< ~COL_NET_13~ Shit ~w~>";
Playeroption_example1[15] = "< ~COL_NET_14~ L.Green ~w~>";
Playeroption_example1[16] = "< ~COL_NET_15~ Grey ~w~>";
Playeroption_example1[17] = "< ~COL_NET_16~ Brown ~w~>";
Playeroption_example1[18] = "< RESET >";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
//Show window / Set Player 1 - Set Player 2
void MD_Player_Options_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover 5
else if(MenuItem_Index == 6) return MD_PO_Protect_Strings(MenuItem_Index);
else if(MenuItem_Index == 7) return Player_Help_Strings(MenuItem_Index);
else if(MenuItem_Index == 8) return MD_PO_Weapon_Option_Strings(MenuItem_Index);
else if(MenuItem_Index == 9) return MD_PO_Visibility_Strings(MenuItem_Index);
else if(MenuItem_Index == 10) return MD_PO_Power_Strings(MenuItem_Index);
else if(MenuItem_Index == 11) return MD_PO_Physics_Strings(MenuItem_Index);
else if(MenuItem_Index == 17) return MD_PO_NameColor_Strings(MenuItem_Index);
//else if(MenuItem_Index == 20) return MD_PO_PlayerInfo_Strings(MenuItem_Index);
}

View File

@@ -0,0 +1,190 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
void Rotation_Speed_Strings(int MenuItem_Index){
char* Veh_Rot_String[6];
Veh_Rot_String[0] = "< ERROR >";
Veh_Rot_String[1] = "< Slow >";
Veh_Rot_String[2] = "< Medium >";
Veh_Rot_String[3] = "< Fast >";
Veh_Rot_String[4] = "< Superfast >";
Veh_Rot_String[5] = "< ~COL_NET_4~Stop ~w~>";
menu_item[MenuItem_Index].charval = Veh_Rot_String[menu_item[MenuItem_Index].num_val];
}
void Rotation_Distance_Strings(int MenuItem_Index){
char* Veh_Rot_String[5];
Veh_Rot_String[0] = "< ERROR >";
Veh_Rot_String[1] = "< Close >";
Veh_Rot_String[2] = "< Medium >";
Veh_Rot_String[3] = "< Far >";
Veh_Rot_String[4] = "< Centered >";
menu_item[MenuItem_Index].charval = Veh_Rot_String[menu_item[MenuItem_Index].num_val];
}
void Rotation_Position_Strings(int MenuItem_Index){
char* Veh_Rot_String[4];
Veh_Rot_String[0] = "< ERROR >";
Veh_Rot_String[1] = "< 90 DEGREES >";
Veh_Rot_String[2] = "< 180 DEGREES >";
Veh_Rot_String[3] = "< 360 DEGREES >";
menu_item[MenuItem_Index].charval = Veh_Rot_String[menu_item[MenuItem_Index].num_val];
}
void Rotation_Height_Strings(int MenuItem_Index){
char* Uniform_string[8];
Uniform_string[0] = "< ERROR >";
Uniform_string[1] = "< -1.5 >";
Uniform_string[2] = "< -1.0 >";
Uniform_string[3] = "< -0.5 >";
Uniform_string[4] = "< DEFAULT >";
Uniform_string[5] = "< 0.5 >";
Uniform_string[6] = "< 1.0 >";
Uniform_string[7] = "< 2.0 >";
menu_item[MenuItem_Index].charval = Uniform_string[menu_item[MenuItem_Index].num_val];
}
void Rotation_Vehicle_Strings(int MenuItem_Index){
char* Veh_Rot_String[11];
Veh_Rot_String[0] = "< ERROR >";
Veh_Rot_String[1] = "< Sultan >";
Veh_Rot_String[2] = "< Sultan RS >";
Veh_Rot_String[3] = "< Turismo >";
Veh_Rot_String[4] = "< COMET >";
Veh_Rot_String[5] = "< INFERNUS >";
Veh_Rot_String[6] = "< SENTINEL >";
Veh_Rot_String[7] = "< TRASH >";
Veh_Rot_String[8] = "< STRETCH >";
Veh_Rot_String[9] = "< VOODOO >";
Veh_Rot_String[10] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Veh_Rot_String[menu_item[MenuItem_Index].num_val];
}
void Rotation_Emergency_Strings(int MenuItem_Index){
char* Veh_Rot_String[10];
Veh_Rot_String[0] = "< ERROR >";
Veh_Rot_String[1] = "< Ambulance >";
Veh_Rot_String[2] = "< F.B.I >";
Veh_Rot_String[3] = "< Noose Cruiser >";
Veh_Rot_String[4] = "< Police Cruiser >";
Veh_Rot_String[5] = "< Police Patrol >";
Veh_Rot_String[6] = "< Noose Patriot >";
Veh_Rot_String[7] = "< Police Stockade >";
Veh_Rot_String[8] = "< Fire Trucks >";
Veh_Rot_String[9] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Veh_Rot_String[menu_item[MenuItem_Index].num_val];
}
void Rotation_Truck_Strings(int MenuItem_Index){
char* Veh_Rot_String[11];
Veh_Rot_String[0] = "< ERROR >";
Veh_Rot_String[1] = "< BIFF >";
Veh_Rot_String[2] = "< BOXVILLE >";
Veh_Rot_String[3] = "< FLATBED >";
Veh_Rot_String[4] = "< MRTASTY >";
Veh_Rot_String[5] = "< PHANTOM >";
Veh_Rot_String[6] = "< RIPLEY >";
Veh_Rot_String[7] = "< STEED >";
Veh_Rot_String[8] = "< FEROCI2 >";
Veh_Rot_String[9] = "< FORKLIFT >";
Veh_Rot_String[10] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Veh_Rot_String[menu_item[MenuItem_Index].num_val];
}
void Rotation_Bike_Strings(int MenuItem_Index){
char* Veh_Rot_String[9];
Veh_Rot_String[0] = "< ERROR >";
Veh_Rot_String[1] = "< BOBBER >";
Veh_Rot_String[2] = "< FAGGIO >";
Veh_Rot_String[3] = "< HELLFURY >";
Veh_Rot_String[4] = "< NRG900 >";
Veh_Rot_String[5] = "< PCJ >";
Veh_Rot_String[6] = "< SANCHEZ >";
Veh_Rot_String[7] = "< ZOMBIEB >";
Veh_Rot_String[8] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Veh_Rot_String[menu_item[MenuItem_Index].num_val];
}
void Rotation_Boat_Strings(int MenuItem_Index){
char* Veh_Rot_String[10];
Veh_Rot_String[0] = "< ERROR >";
Veh_Rot_String[1] = "< DINGHY >";
Veh_Rot_String[2] = "< JETMAX >";
Veh_Rot_String[3] = "< MARQUIS >";
Veh_Rot_String[4] = "< PREDATOR >";
Veh_Rot_String[5] = "< REEFER >";
Veh_Rot_String[6] = "< SQUALO >";
Veh_Rot_String[7] = "< TROPIC >";
Veh_Rot_String[8] = "< TUGA >";
Veh_Rot_String[9] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Veh_Rot_String[menu_item[MenuItem_Index].num_val];
}
void Rotation_Heli_Strings(int MenuItem_Index){
char* Veh_Rot_String[6];
Veh_Rot_String[0] = "< ERROR >";
Veh_Rot_String[1] = "< ANNIHILATOR >";
Veh_Rot_String[2] = "< MAVERICK >";
Veh_Rot_String[3] = "< POLMAV >";
Veh_Rot_String[4] = "< TOURMAV >";
Veh_Rot_String[5] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Veh_Rot_String[menu_item[MenuItem_Index].num_val];
}
void Rotation_Ped_Strings(int MenuItem_Index){
char* Ped_Rot_String[5];
Ped_Rot_String[0] = "< ERROR >";
Ped_Rot_String[1] = "< Strippers >";
Ped_Rot_String[2] = "< N.O.O.S.E >";
Ped_Rot_String[3] = "< Security >";
Ped_Rot_String[4] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Ped_Rot_String[menu_item[MenuItem_Index].num_val];
}
void Rotation_Object_Strings(int MenuItem_Index){
char* Rotate_string[18];
Rotate_string[0] = "< ERROR >";
Rotate_string[1] = "< Blue Neons >";
Rotate_string[2] = "< Green Flash ~y~Above >";
Rotate_string[3] = "< Green Flash ~y~Under >";
Rotate_string[4] = "< Purple Flash ~y~Above >";
Rotate_string[5] = "< Purple Flash ~y~Under >";
Rotate_string[6] = "< Flaming Barrel >";
Rotate_string[7] = "< Flames >";
Rotate_string[8] = "< Stars >";
Rotate_string[9] = "< Light around >";
Rotate_string[10] = "< Disco >";
Rotate_string[11] = "< Red Neons >";
Rotate_string[12] = "< Sparks >";
Rotate_string[13] = "< Shower >";
Rotate_string[14] = "< Smoke >";
Rotate_string[15] = "< Hamburger 1 >";
Rotate_string[16] = "< Hamburger 2 >";
Rotate_string[17] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = Rotate_string[menu_item[MenuItem_Index].num_val];
}
void Rotation_Mode_Strings(int MenuItem_Index){
char* Veh_Rot_String[3];
Veh_Rot_String[0] = "< ERROR >";
Veh_Rot_String[1] = "< Solid >";
Veh_Rot_String[2] = "< Unsolid >";
menu_item[MenuItem_Index].charval = Veh_Rot_String[menu_item[MenuItem_Index].num_val];
}
void MD_Rotation_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover//5
//Bool renew //6
else if(MenuItem_Index == 7) return Rotation_Speed_Strings(MenuItem_Index);
else if(MenuItem_Index == 8) return Rotation_Distance_Strings(MenuItem_Index);
else if(MenuItem_Index == 9) return Rotation_Position_Strings(MenuItem_Index);
else if(MenuItem_Index == 10) return Rotation_Height_Strings(MenuItem_Index);
//Function detach
else if(MenuItem_Index == 12) return Rotation_Vehicle_Strings(MenuItem_Index);
else if(MenuItem_Index == 13) return Rotation_Emergency_Strings(MenuItem_Index);
else if(MenuItem_Index == 14) return Rotation_Truck_Strings(MenuItem_Index);
else if(MenuItem_Index == 15) return Rotation_Bike_Strings(MenuItem_Index);
else if(MenuItem_Index == 16) return Rotation_Boat_Strings(MenuItem_Index);
else if(MenuItem_Index == 17) return Rotation_Heli_Strings(MenuItem_Index);
else if(MenuItem_Index == 18) return Rotation_Ped_Strings(MenuItem_Index);
else if(MenuItem_Index == 19) return Rotation_Object_Strings(MenuItem_Index);
else if(MenuItem_Index == 20) return Rotation_Mode_Strings(MenuItem_Index);
}

View File

@@ -0,0 +1,66 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//Coded only one time used allover the menu
void MD_Delete_Strings (int MenuItem_Index){
char* delete_string[13];
delete_string[1] = "< peds >";
delete_string[2] = "< objects >";
delete_string[3] = "< vehicles.all >";
delete_string[4] = "< vehicles.abandoned >";
delete_string[5] = "< cars.all >";
delete_string[6] = "< cars.abandoned >";
delete_string[7] = "< bikes.all >";
delete_string[8] = "< bikes.abandoned >";
delete_string[9] = "< boats.all >";
delete_string[10] = "< boats.abandoned >";
delete_string[11] = "< helis.all >";
delete_string[12] = "< helis.abandoned >";
menu_item[MenuItem_Index].charval = delete_string[menu_item[MenuItem_Index].num_val];
}
void MD_PlayerOption_Strings (int MenuItem_Index){
char* quick_string[11];
quick_string[0] = "< ERROR >";
quick_string[1] = "< Weapons & Armour >";
quick_string[2] = "< Mute/Un-mute All >";
quick_string[3] = "< Kill Self (Delay) >";
quick_string[4] = "< Emergency Teleport >";
quick_string[5] = "< Fix Vehicle >";
quick_string[6] = "< Flip Vehicle >";
quick_string[7] = "< Delete Vehicle >";
quick_string[8] = "< Spawn Sultan RS >";
quick_string[9] = "< Spawn Heli >";
quick_string[10] = "< Teleport to Helipads >";
menu_item[MenuItem_Index].charval = quick_string[menu_item[MenuItem_Index].num_val];
}
void MD_Spy_Strings (int MenuItem_Index){
char* Spy_string[4];
Spy_string[0] = "< ERROR >";
Spy_string[1] = "~w~Spectate / AutoSpectate ~COL_NET_4~OFF";
Spy_string[2] = "~w~Spectate / AutoSpectate ~COL_NET_3~ON";
Spy_string[3] = GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD) ? "~COL_NET_1~Flymod" : "Flymod";
menu_item[MenuItem_Index].charval = Spy_string[menu_item[MenuItem_Index].num_val];
}
void MD_QuickTeleport_Strings(int MenuItem_Index){
char* Q_Teleport_String[7];
Q_Teleport_String[0] = "< ERROR >";
Q_Teleport_String[1] = "< You to Player ~BLIP_63~ >";
Q_Teleport_String[2] = "< You to Player ~BLIP_79~ >";
Q_Teleport_String[3] = "< In Player Vehicle >";
Q_Teleport_String[4] = "< Player to You >";
Q_Teleport_String[5] = "< Player to Killzone >";
Q_Teleport_String[6] = "< Detach >";
menu_item[MenuItem_Index].charval = Q_Teleport_String[menu_item[MenuItem_Index].num_val];
}
void NETWORK_FIRST_FOUR_STRINGS(int MenuItem_Index){
if(SelectedItem == 1) return MD_Spy_Strings (MenuItem_Index);
else if(SelectedItem == 2) return MD_Delete_Strings (MenuItem_Index);
else if(SelectedItem == 3) return MD_PlayerOption_Strings (MenuItem_Index);
else if(SelectedItem == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
}

View File

@@ -0,0 +1,299 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
void MD_Spy_Strings_Action(int playerIndex){
if(!PLAYER_HAS_CHAR(playerIndex)) return;
SetBit(MD_Misc_OptionsBitSet, MD_MISC_AUTO_SPECTATE, (menu_item[SelectedItem].num_val == 2));
if(menu_item[SelectedItem].num_val > 0 && menu_item[SelectedItem].num_val < 3){
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD, false);
char * buffer[64];
Strcpy(buffer, "~b~MD: ~s~");
if(Player_Display_Selection(playerIndex)){
Strcat(buffer, "You cannot spy on ");
PLAYER_NAME_WITH_COLOUR(playerIndex, &buffer); //WORKS!
Strcat(buffer, "~s~.");
Alert(buffer,false);
return;
}
else{
SetByteSet(&SpectateAndAttachByteSet, SPECTATE_PLAYER_INDEX, playerIndex);
/* //Lets have peoples attention drawn to the spectate shotrcut draws and not the whack useless print :) - Nathan
Strcat(buffer, "Spectating: "); //31
PLAYER_NAME_WITH_COLOUR(playerIndex, &buffer); //WORKS! 40
Strcat(buffer, "~s~.~n~~PAD_LB~ & ~PAD_RB~ to disable."); //74
Alert(buffer,false);
*/
}
}
else if(menu_item[SelectedItem].num_val == 3){
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) == 3){
Detach_pPlayer_On_Coord();
Alert("~b~MD: ~s~Spectate mode disabled for flymod!",false);
}
bool flymod = GetBit(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);
}
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_FLYMOD, !flymod);
}
}
void MD_PlayerOption_Strings_Action(){ //this is all pplayer, why pass playerindex and char at all... pfft - Nathan
bool VehicleAlert;
if(VehicleAlert){
if(!IS_CHAR_IN_ANY_CAR(pPlayer)){
Alert(Error_Personal_Vehicle,false);
return;
}
}
if(menu_item[SelectedItem].num_val == 1){
SET_CHAR_HEALTH(pPlayer,500);
ADD_ARMOUR_TO_CHAR(pPlayer,200);
GIVE_EPISODIC_WEAPONS_TO_CHAR(pPlayer,Episode);
Alert("~b~MD: ~s~Health, armour and weapons given.", false);
}
else if(menu_item[SelectedItem].num_val == 2){
ToggleBit(MD_Misc_OptionsBitSet, MD_MISC_MUTE_ALL);
menu_item[SelectedItem].extra_val = GetBit(MD_Misc_OptionsBitSet, MD_MISC_MUTE_ALL);
MUTE_ALL_PLAYERS(GetBit(MD_Misc_OptionsBitSet, MD_MISC_MUTE_ALL)); //Nice!
char * buffer[16]; // 64 chars
Strcpy(buffer, "~b~MD: ~s~All players have been "); //32
Strcat(buffer, GetBit(MD_Misc_OptionsBitSet, MD_MISC_MUTE_ALL) ? "~COL_NET_4~muted" : "~COL_NET_3~un-muted"); //19 = 51
Strcat(buffer, "~s~."); //55 chars
Alert(buffer,false);
}
else if(menu_item[SelectedItem].num_val == 3){
char * buffer[32];
Strcpy(buffer, "~b~MD: ~s~You will die in 2 seconds"); //37
if(Episode == 0) //Original
{
Strcat(buffer, ", pause the game to stay dead"); //29
}
Strcat(buffer, "."); //67 chars
Alert(buffer,false);
int die;
for(die = 0;die <= 80;die++)WAIT(0); ///looooooooooool
SET_CHAR_HEALTH(pPlayer,-1);
}
else if(menu_item[SelectedItem].num_val == 4){
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE, true);
SET_PLAYER_INVINCIBLE(iPlayer, true);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE, true);
Detach_pPlayer();
MD_VEHICLE_SPAWNER_ON_ID(iPlayer,MODEL_ANNIHILATOR);
if(IS_CHAR_IN_ANY_HELI(pPlayer))
{
MD_Teleport_ID_Heading(iPlayer, 3706.1404, -2496.5984, 0.9329, 94.6);
Alert("~b~MD: ~s~You were teleported to the safe zone, explosions will not render out here.",false);
}
}
else if(menu_item[SelectedItem].num_val == 5){
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) == 3){
Alert("~b~MD: ~s~Fuction disabled in spymode",false);
return;
}
VehicleAlert = true;
GET_CAR_CHAR_IS_USING(pPlayer, &Personal_Vehicle);
FIX_CAR(Personal_Vehicle);
SET_VEHICLE_DIRT_LEVEL(Personal_Vehicle, 0);
SET_CAR_ENGINE_ON(Personal_Vehicle,true,true);
Alert("~b~MD: ~s~Vehicle fixed.",false);
}
else if(menu_item[SelectedItem].num_val == 6){
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) == 3){
Alert("~b~MD: ~s~Fuction disabled in spymode",false);
return;
}
VehicleAlert = true;
Vehicle Personal_Vehicle;
GET_CAR_CHAR_IS_USING(pPlayer, &Personal_Vehicle);
if(!IS_CHAR_IN_ANY_HELI(pPlayer)){
float h;
GET_CAR_HEADING(Personal_Vehicle,&h);
SET_VEHICLE_QUATERNION(Personal_Vehicle,0,0,0,0);
SET_CAR_HEADING(Personal_Vehicle,h);
SET_CAR_ON_GROUND_PROPERLY(Personal_Vehicle);
Alert("~b~MD: ~s~Your vehicle was flipped.",false);
}
else Alert("~b~MD: ~s~Function disabled for heli's.",false);
}
else if(menu_item[SelectedItem].num_val == 7){
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) == 3){
Alert("~b~MD: ~s~Fuction disabled in spymode",false);
return;
}
VehicleAlert = true;
Vehicle Personal_Vehicle;
GET_CAR_CHAR_IS_USING(pPlayer, &Personal_Vehicle);
if(is_driving(pPlayer)){
DELETE_CAR(&Personal_Vehicle);
Alert("~b~MD: ~s~Vehicle deleted.",false);
}
}
else if(menu_item[SelectedItem].num_val == 8){
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) != 3)MD_VEHICLE_SPAWNER_ON_ID(iPlayer,MODEL_SULTANRS);
}
else if(menu_item[SelectedItem].num_val == 9){
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) != 3)MD_VEHICLE_SPAWNER_ON_ID(iPlayer,MODEL_ANNIHILATOR);
}
else if(menu_item[SelectedItem].num_val == 10){
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) == 3) Detach_pPlayer();
MD_Teleport_ID_Heading(iPlayer, 2219.8132, 745.6130, 5.830, 0.0);
}
}
void MD_QuickTeleport_Strings_Action(int playerIndex){
if(menu_item[SelectedItem].num_val != 5){
if(!PLAYER_HAS_CHAR(playerIndex)) return;
}
int Net_Ped = PLAYER_CHAR(playerIndex);
int Net_Vehicle;
float x,y,z,h;
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0,2,&rand);
bool player_is_in_car = IS_CHAR_IN_ANY_CAR(Net_Ped);
bool pPlayer_is_in_car = IS_CHAR_IN_ANY_CAR(pPlayer);
if(menu_item[SelectedItem].num_val == 1){
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) == 3)Detach_pPlayer();
Teleport_iPlayer_To_PlayerIndex(playerIndex, false);
}
else if(menu_item[SelectedItem].num_val == 2){
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) == 3)Detach_pPlayer();
Teleport_iPlayer_To_PlayerIndex(playerIndex, true);
}
else if(menu_item[SelectedItem].num_val == 3){
char * buffer[32];
Strcpy(buffer, "~b~MD: ");
PLAYER_NAME_WITH_COLOUR(playerIndex, &buffer); //WORKS!
if(player_is_in_car){
GET_CAR_CHAR_IS_USING(Net_Ped,&Net_Vehicle);
int model;
GET_CAR_MODEL(Net_Vehicle,&model); //used for string below
if(WARP_PED_INTO_VEHICLE(pPlayer,Net_Vehicle)){
return;
}
Strcat(buffer, "'s ~s~");
Strcat(buffer, GET_STRING_FROM_TEXT_FILE(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(model)));
Strcat(buffer, " is full.");
}
else{
Strcat(buffer, " ~s~isn't in a vehicle.");
}
Alert(buffer, false);
}
else if(menu_item[SelectedItem].num_val == 4){
if(Net_Ped == pPlayer){
Alert("~b~MD: ~s~U can't teleport urself to urself dumbass!",false);
return;
}
/*
int Net_Vehicle_ID;
GET_CAR_CHAR_IS_USING(Net_Ped,&Net_Vehicle);
GET_NETWORK_ID_FROM_VEHICLE(Net_Vehicle,&Net_Vehicle_ID);
*/
float x,y,z,h;
//int lol;
//GET_CHAR_HEADING(pPlayer,&h);
if(!IS_CHAR_IN_ANY_CAR(pPlayer))GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(pPlayer,-2.7f,0,-0.5,&x,&y,&z);
else GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(GetPlayerVeh(),-3,0,0,&x,&y,&z);
MD_Teleport_ID(playerIndex,x,y,z);
/*
int lol;
GET_CHAR_HEADING(pPlayer,&h);
if(!IS_CHAR_IN_ANY_CAR(pPlayer)){
if(lol == 1) GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(pPlayer,2.7f,0,-0.5,&x,&y,&z);
else GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS(pPlayer,-2.7f,0,-0.5,&x,&y,&z);
}
else{
if(lol == 1) GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(GetPlayerVeh(),3,0,0,&x,&y,&z);
else GET_OFFSET_FROM_CAR_IN_WORLD_COORDS(GetPlayerVeh(),-3,0,0,&x,&y,&z);
}
if(DOES_VEHICLE_EXIST(Net_Vehicle) && network_control(Net_Vehicle_ID)){
GENERATE_RANDOM_INT_IN_RANGE(0,2,&lol);
GET_CHAR_HEADING(pPlayer,&h);
SET_CAR_COORDINATES(Net_Vehicle,x,y,z);
SET_CAR_FORWARD_SPEED(Net_Vehicle,0.0f);
SET_CAR_HEADING(Net_Vehicle,h);
SET_CAR_ON_GROUND_PROPERLY(Net_Vehicle);
Alert("~BLIP_76~ ~c~Teleported Player to You ~n~~w~Player Can Be Teleported on Foot If Your Host!",false);
}
else{
h = (h - 180);
z = (z - 1);
REGISTER_PLAYER_RESPAWN_COORDS(playerIndex, x, y, z);
REQUEST_COLLISION_AT_POSN( x, y, z );
RESURRECT_NETWORK_PLAYER(playerIndex,x,y,z,h);
}
*/
}
else if(menu_item[SelectedItem].num_val == 5){
RESURRECT_NETWORK_PLAYER(playerIndex,3600.0f,1251.0f,-1.0f, 0);
}
else if(menu_item[SelectedItem].num_val == 6){
Detach_pPlayer();
}
}
//Nathan begin cleanup.......
void NETWORK_FIRST_FOUR_ITEMS_MENU_SETUP(void)
{
AddFunction_ValueLine_CB(3); //1 Spy Auto or not auto
AddFunction_Value("Quick~c~ Delete",12); //2 //Delete All Peds / Delete All Vehicles / Delete abandoned Vehicles / Delete all Objects / AutoDelete Objects ON/ AutoDelete Objects OFF
AddFunction_Value("Quick~c~ Options",10); //3 Exact Number of strings //3
AddFunction_Value_CB("Quick~c~ Teleport",6); //4
menu_item[4].num_val = (IS_CHAR_IN_ANY_CAR(pPlayer) ? 2 : 1);
}
void NETWORK_FIRST_FOUR_ITEMS_MENU_ACTION(void)
{
if(SelectedItem > 4) return;
else if(SelectedItem == 1)
{
MD_Spy_Strings_Action( players[ChangeNetPlayer].id);
}
else if(SelectedItem == 2) Universal_Delete(Delete_Distance_Radius, menu_item[SelectedItem].num_val, true);
else if(SelectedItem == 3) MD_PlayerOption_Strings_Action();
else if(SelectedItem == 4 ) MD_QuickTeleport_Strings_Action( players[ChangeNetPlayer].id);
/*
switch(SelectedItem) //ready for ap ii..
{
case 1:
MD_Spy_Strings_Action(players[ChangeNetPlayer].id);
break;
case 2:
Universal_Delete(Delete_Distance_Radius, menu_item[SelectedItem].num_val, true);
break;
case 3:
MD_PlayerOption_Strings_Action();
break;
case 4:
MD_QuickTeleport_Strings_Action( players[ChangeNetPlayer].id);
break;
default:
return;
}
*/
}

View File

@@ -0,0 +1,303 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
void Add_StringValue(int MenuItem_Index){
/**Main Page**/
if (menu_level == 1){
if(MenuItem_Index == 18){
return MD_Delete_Strings(MenuItem_Index);
}
else if(MenuItem_Index == 19){
Delete_Distance_Radius = menu_item[MenuItem_Index].num_val;
}
else if(MenuItem_Index == 20) return MD_PlayerOption_Strings(MenuItem_Index);
}
/**Submenus on Main Page**/
else if (menu_level == 2){
/**Submenus on Main Page - Player Options**/
if (last_selected[1] == 1){
return MD_Player_Options_Strings(MenuItem_Index);
}
else if (last_selected[1] == 2){
if(MenuItem_Index == 3)return MD_PO_PlayerInfo_Strings(MenuItem_Index);
}
/**Submenus on Main Page - Vehicle Options**/
else if (last_selected[1] == 3){
return MD_VehOpt_Pplayer_Strings(MenuItem_Index);
}
/**Submenus on Main Page - Weapons**/
else if (last_selected[1] == 4){
return MD_Weapon_Strings(MenuItem_Index);
}
/**Submenus on Main Page - Player Changer**/
else if(last_selected[1] == 7){
return Player_Changer_Strings(MenuItem_Index);
}
/**Submenus on Main Page - Animations**/
else if(last_selected[1] == 8){
return MD_Animation_Strings(MenuItem_Index);
}
/**Submenus on Main Page - Attachments**/
else if (last_selected[1] == 9){
return MD_Attach_Strings(MenuItem_Index);
}
/**Submenus on Main Page - Rotations**/
else if (last_selected[1] == 10){
return MD_Rotation_Strings(MenuItem_Index);
}
/**Submenus on Main Page - Rotations**/
else if (last_selected[1] == 11){
return Content_Builder_Strings(MenuItem_Index);
}
/**Submenus on Main Page - Premium Options**/
else if(last_selected[1] == 22){
if(MenuItem_Index == 1){
char* episodes[4];
episodes[0] = "< ERROR >";
episodes[1] = "< Original >";
episodes[2] = "< TLaD >";
episodes[3] = "< TBoGT >";
menu_item[MenuItem_Index].charval = episodes[menu_item[MenuItem_Index].num_val];
}
}
}
else if(menu_level == 3){
/**Submenus on Main Page - Network Players**/
if(last_selected[1] == 2){
/**All Players - Main**/
if(last_selected[2] == 1){
if(MenuItem_Index == 2){
char* teleportAllString[4];
teleportAllString[0] = "< ERROR > ";
teleportAllString[1] = "< Around (Face away) >";
teleportAllString[2] = "< Around (Face you) >";
teleportAllString[3] = "< Lined up >";
menu_item[MenuItem_Index].charval = teleportAllString[menu_item[MenuItem_Index].num_val];
}
}
else if(last_selected[2] == 2){
return MD_Navigator_Strings(MenuItem_Index);
}
/**Selected Players Players - Main**/
else if(last_selected[2] > 3){
if(MenuItem_Index == 1){
return MD_Spy_Strings (MenuItem_Index);
}
else if(MenuItem_Index == 2){
return MD_Delete_Strings(MenuItem_Index);
}
else if(MenuItem_Index == 3){
return MD_PlayerOption_Strings(MenuItem_Index);
}
else if(MenuItem_Index == 4){
return MD_QuickTeleport_Strings(MenuItem_Index);
}
}
else if(last_selected[2] == 21){
return Player_MoreChanger_Strings(MenuItem_Index);
}
}
else if(last_selected[1] == 3){ //Vehicle garage
if(last_selected[2] == 3){ //Active options
if(MenuItem_Index == 12){ //Auto-lock vehicle
char* autolockstring[4];
autolockstring[0] = "< ERROR >";
autolockstring[1] = "< On >";
autolockstring[2] = "< On + Unlock for friends >";
autolockstring[3] = "< Off >";
menu_item[MenuItem_Index].charval = autolockstring[menu_item[MenuItem_Index].num_val];
}
}
}
else if(last_selected[1] == 7){
if(last_selected[2] == 21){
return Player_MoreChanger_Strings(MenuItem_Index);
}
}
else if(last_selected[1] == 21){
if(last_selected[2] == 7){
if(MenuItem_Index == 6){
char* Sound_String[21];
Sound_String[0] = "Error";
Sound_String[1] = "FRONTEND_GAME_MP_TICKER_MESSAGE";
Sound_String[2] = "FRONTEND_MENU_MP_UNREADY";
Sound_String[3] = "FRONTEND_MENU_MP_SERVER_OPTION_CHANGE";
Sound_String[4] = "FRONTEND_OTHER_COUNTDOWN";
Sound_String[5] = "FRONTEND_MENU_MP_READY";
Sound_String[6] = "FRONTEND_MENU_MP_SERVER_HIGHLIGHT";
Sound_String[7] = "FRONTEND_GAME_MP_TICKER_MESSAGE";
Sound_String[8] = "MOBILE_PHONE_SMS_RECIEVE";
Sound_String[9] = "FRONTEND_OTHER_RACE_321";
Sound_String[10] = "FRONTEND_OTHER_RACE_GO";
Sound_String[11] = "FRONTEND_GAME_PICKUP_CHECKPOINT_LAP";
Sound_String[12] = "FRONTEND_GAME_PICKUP_CHECKPOINT";
Sound_String[13] = "RADIO_RETUNE_BEEP";
Sound_String[14] = "RADIO_ADVERTS";
Sound_String[15] = "RADIO_RETUNE_MONO_ONE_SHOT";
Sound_String[16] = "RADIO_RETUNE_MONO";
Sound_String[17] = "RADIO_TUNER_MULTI"; //Keeps running
Sound_String[18] = "RADIO_INTERFERENCE_SINGLE";
Sound_String[19] = "MOBILE_PRERING_SOUND";
menu_item[MenuItem_Index].charval = Sound_String[menu_item[MenuItem_Index].num_val];
}
}
}
}
else if(menu_level == 4){
/**Selected Players Players - Main Submenus**/
if(last_selected[1] == 2){
if(last_selected[3] == 5){
return MD_NetPlayer_Options_Strings(MenuItem_Index);
}
else if(last_selected[3] == 6){
return MD_Weapon_Strings(MenuItem_Index);
}
else if(last_selected[3] == 7){
MD_VehOpt_NetPlayer_Strings(MenuItem_Index);
}
else if(last_selected[3] == 9){
return MD_Army_Strings(MenuItem_Index);
}
else if(last_selected[3] == 10){
return MD_Rotation_Strings(MenuItem_Index);
}
else if(last_selected[3] == 11){
return MD_Attach_Strings(MenuItem_Index);
}
else if(last_selected[3] == 15){
if(MenuItem_Index == 16){
return MD_Net_Unfr_Telport_Strings(MenuItem_Index);
}
if(MenuItem_Index == 17){
return MD_Net_Unfr_FC_Strings(MenuItem_Index);
}
if(MenuItem_Index == 18){
return MD_Net_Unfr_Obj_Strings(MenuItem_Index);
}
if(MenuItem_Index == 19){
return MD_Net_Unfr_Lag_Strings(MenuItem_Index);
}
}
/*
else if(last_selected[3] == 16){ //Pilot
if(MenuItem_Index == 3){
return Pilot_Weapon_Strings(MenuItem_Index);
}
}
*/
else if(last_selected[3] == 18){
if(MenuItem_Index == 1){
return MD_Spy_Strings (MenuItem_Index);
}
else if(MenuItem_Index == 2){
return MD_Delete_Strings(MenuItem_Index);
}
else if(MenuItem_Index == 3){ // Main
return MD_PlayerOption_Strings(MenuItem_Index);
}
else if(MenuItem_Index == 4){ // Main
return MD_QuickTeleport_Strings(MenuItem_Index);
}
else if(MenuItem_Index == 6){ // Main
return MD_QuickAdmin_Strings(MenuItem_Index);
}
}
}
else if(last_selected[1] == 3){
if(last_selected[2] == 7){
if(last_selected[3] == 1){
return MD_VehOpt_Save_ColourSettings_Strings(20);
}
else if(last_selected[3] == 2){
return MD_VehOpt_Save_ColourSettings_Strings(21);
}
else if(last_selected[3] == 3){
return MD_VehOpt_Save_ColourSettings_Strings(5);
}
}
}
}
else if(menu_level == 5){
if(last_selected[1] == 2){
if(last_selected[2] > 3){
if(last_selected[3] == 9){
if(last_selected[4] == 11){
return MD_Animation_Strings(MenuItem_Index);
}
else if (last_selected[4] == 12){
return MD_Attach_Strings(MenuItem_Index);
}
}
else if(last_selected[3] == 18){
if(last_selected[4] == 7){
return Admin_Message_Strings(MenuItem_Index);
}
else if(last_selected[4] == 8){
return Admin_Player_Stringitems(MenuItem_Index);
}
else if(last_selected[4] == 9){
return Admin_Weapon_Strings(MenuItem_Index);
}
else if(last_selected[4] == 10){
return Admin_Vehicle_Strings(MenuItem_Index);
}
else if(last_selected[4] == 11){
return Admin_Teleport_Strings(MenuItem_Index);
}
else if(last_selected[4] == 12){
return Admin_Weather_Strings(MenuItem_Index);
}
else if(last_selected[4] == 13){
return Admin_Model_Strings(MenuItem_Index);
}
else if(last_selected[4] == 14){
return Admin_Animations_Strings(MenuItem_Index);
}
else if(last_selected[4] == 15){
return Admin_Attachments_Strings(MenuItem_Index);
}
else if(last_selected[4] == 16){
return Admin_Troll_Strings(MenuItem_Index);
}
else if(last_selected[4] == 17){
return Admin_Menu_Strings(MenuItem_Index);
}
else if(last_selected[4] == 18){
return Admin_Freeze_Strings(MenuItem_Index);
}
else if(last_selected[4] == 19){
return Admin_Temp_Strings(MenuItem_Index);
}
}
}
}
}
else if(menu_level == 6){
if(last_selected[1] == 2){
if(last_selected[2] > 3){
if(last_selected[3] == 7){
if(last_selected[4] == 7){
if(last_selected[5] == 1){
return MD_VehOpt_Save_ColourSettings_Strings(20);
}
else if(last_selected[5] == 2){
return MD_VehOpt_Save_ColourSettings_Strings(21);
}
else if(last_selected[5] == 3){
return MD_VehOpt_Save_ColourSettings_Strings(5);
}
}
}
}
}
}
else menu_item[MenuItem_Index].charval = "~PAD_LEFT~ Not Implemented ~PAD_RIGHT~";
}

View File

@@ -0,0 +1,202 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//ANCHOR_BOAT(Vehicle boat, boolean anchor); - Nathan thinks this be useful :D
void MD_VehOpt_QuickSpawn_Strings(int MenuItem_Index){
char* Vehicle[14];
Vehicle[1] = "~PAD_LEFT~COMET ~PAD_RIGHT~";
Vehicle[2] = "~PAD_LEFT~TURISMO ~PAD_RIGHT~";
Vehicle[3] = "~PAD_LEFT~INFERNUS ~PAD_RIGHT~";
Vehicle[4] = "~PAD_LEFT~SUPERGT ~PAD_RIGHT~";
Vehicle[5] = "~PAD_LEFT~SULTANRS ~PAD_RIGHT~";
Vehicle[6] = "~PAD_LEFT~ORACLE ~PAD_RIGHT~";
Vehicle[7] = "~PAD_LEFT~PATRIOT ~PAD_RIGHT~";
Vehicle[8] = "~PAD_LEFT~FBI ~PAD_RIGHT~";
Vehicle[9] = "~PAD_LEFT~BUS ~PAD_RIGHT~";
Vehicle[10] = "~PAD_LEFT~SQUALO ~PAD_RIGHT~";
Vehicle[11] = "~PAD_LEFT~NRG900 ~PAD_RIGHT~";
Vehicle[12] = "~PAD_LEFT~MAVERICK ~PAD_RIGHT~";
Vehicle[13] = "~PAD_LEFT~ANNIHILATOR ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Vehicle[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_Pplayer_General_Strings(int MenuItem_Index){
char* general_strings[9];
//general_strings[1] = IS_CHARS_VEHICLE_LOCKED(PLAYER_CHAR(players[ChangeNetPlayer].id)) ? "~PAD_LEFT~ ~COL_NET_1~Lock ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Lock ~PAD_RIGHT~";
general_strings[1] = "~PAD_LEFT~ Fix & Wash ~PAD_RIGHT~";
general_strings[2] = "~PAD_LEFT~ Flip ~PAD_RIGHT~";
general_strings[3] = "~PAD_LEFT~ Burst Tyres ~PAD_RIGHT~";
general_strings[4] = "~PAD_LEFT~ Fix Tyres ~PAD_RIGHT~";
general_strings[5] = (!IS_CHAR_VISIBLE(pPlayer) ? "~PAD_LEFT~ ~COL_NET_1~Invisible~w~ ~BLIP_63~ ~PAD_RIGHT~" : "~PAD_LEFT~ Invisible ~BLIP_63~ ~PAD_RIGHT~"); // Set player invisible --~PAD_RIGHT~ This should be a bool
general_strings[6] = (!IS_CHAR_VISIBLE(pPlayer) && GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_INVISIBLE)) ? "~PAD_LEFT~ ~COL_NET_1~Invisible~w~ ~BLIP_63~ + ~BLIP_79~~PAD_RIGHT~" : "~PAD_LEFT~ Invisible ~BLIP_63~ + ~BLIP_79~~PAD_RIGHT~"; // Set Player + Vehicle --~PAD_RIGHT~ This should be a bool
general_strings[7] = (GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_REMOVE_BLIP) && GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_REMOVE_BLIP)) ? "~PAD_LEFT~ ~COL_NET_1~Hide Blip ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Hide Blip ~PAD_RIGHT~";// Hide Blip and set vehicle + Player Invisible --~PAD_RIGHT~ YES! I need it here - This should be a bool
general_strings[8] = "~PAD_LEFT~ Delete ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = general_strings[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_Pplayer_ActiveOption_Strings(int MenuItem_Index)
{
////10 Vehicle Helper / Visibility / Drive - Walk on water / Stick to ground / Autospawn Boat in water
char* physics_strings[4];
//physics_strings[1] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_INVINCIBLE) ? "~PAD_LEFT~ ~COL_NET_1~Invincible ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Invincible ~PAD_RIGHT~";
//physics_strings[2] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_INVISIBLE) ? "~PAD_LEFT~ ~COL_NET_1~Invisible ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Invisible ~PAD_RIGHT~";
physics_strings[1] = DOES_OBJECT_EXIST(drive_water[iPlayer]) ? "~PAD_LEFT~ ~COL_NET_1~Drive on water ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Drive on water ~PAD_RIGHT~" ;
physics_strings[2] = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_DESOLIDIFY) ? "~PAD_LEFT~ ~COL_NET_1~Desolidify ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Desolidify ~PAD_RIGHT~";;
physics_strings[3] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_AUTO_BOAT) ? "~PAD_LEFT~ ~COL_NET_1~Auto-spawn boat ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Auto-spawn boat ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = physics_strings[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_Save_ColourSettings_Strings(int MenuItem_Index){
char* Playeroption_example1[3];
Playeroption_example1[1] = "~PAD_LEFT~ Your Vehicle ~PAD_RIGHT~";
Playeroption_example1[2] = "~PAD_LEFT~ Net Vehicles ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_Pplayer_SpawnSettings_Strings(int MenuItem_Index)
{
////9 Upgrades / Damage proof / Sirens
char* Playeroption_example1[9];
Playeroption_example1[1] = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_ALL_UPGRADES) ? "~PAD_LEFT~ ~COL_NET_1~All upgrades ~w~~PAD_RIGHT~" : "~PAD_LEFT~ All upgrades ~PAD_RIGHT~";
Playeroption_example1[2] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_INVINCIBLE) ? "~PAD_LEFT~ ~COL_NET_1~Invincible ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Invincible ~PAD_RIGHT~";
Playeroption_example1[3] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_SIREN) ? "~PAD_LEFT~ ~COL_NET_1~Sirens ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Sirens ~PAD_RIGHT~";
Playeroption_example1[4] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_RAINBOW) ? "~PAD_LEFT~ ~COL_NET_1~Rainbow Car ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Rainbow Car ~PAD_RIGHT~";
Playeroption_example1[5] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_ENGINE) ? "~PAD_LEFT~ ~COL_NET_1~Engine ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Engine ~PAD_RIGHT~";
Playeroption_example1[6] = Coloursetting_Personal ? "~PAD_LEFT~ ~COL_NET_1~Personal Colour ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Personal Colour ~PAD_RIGHT~";
Playeroption_example1[7] = Coloursetting_Net ? "~PAD_LEFT~ ~COL_NET_1~NetVehicle Colour ~w~~PAD_RIGHT~" : "~PAD_LEFT~ NetVehicle Colour ~PAD_RIGHT~";
Playeroption_example1[8] = (!Coloursetting_Net && !Coloursetting_Personal) ? "~PAD_LEFT~ ~COL_NET_1~Random Colour ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Random Colour ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_pPlayer_Handling_Option_Strings(int MenuItem_Index)
{
//12 Super Speed / Drift Mode / Lower vehicle / Vehicle Jump / Super Bike / Stick on ground
char* Playeroption_example1[6];
Playeroption_example1[1] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_JUMP) ? "~PAD_LEFT~ ~COL_NET_1~Vehicle Jump ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Vehicle Jump ~PAD_RIGHT~";
Playeroption_example1[2] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_DRIFT) ? "~PAD_LEFT~ ~COL_NET_1~Drift mode ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Drift mode ~PAD_RIGHT~";
Playeroption_example1[3] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_LOWER) ? "~PAD_LEFT~ ~COL_NET_1~Lower ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Lower ~PAD_RIGHT~";
Playeroption_example1[4] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_STICK_GROUND) ? "~PAD_LEFT~ ~COL_NET_1~Stick to ground ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Stick to ground ~PAD_RIGHT~";
Playeroption_example1[5] = GetBit(VehicleOptionsBitSet,VEHICLE_OPTION_SUPER_BIKE) ? "~PAD_LEFT~ ~COL_NET_1~Super bike ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Super bike ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_Pplayer_Autolock_Option_Strings(int MenuItem_Index)
{
//utolock: ~PAD_LEFT~ On, Unlock for friends, Off ~PAD_RIGHT~"
char* Playeroption_example1[4];
Playeroption_example1[1] = "~PAD_LEFT~ On ~PAD_RIGHT~";
Playeroption_example1[2] = "~PAD_LEFT~ On + Unlock for friends ~PAD_RIGHT~";
Playeroption_example1[3] = "~PAD_LEFT~ Off ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_pPlayer_Actions_Option_Strings(int MenuItem_Index)
{
char* Playeroption_example1[7];
Playeroption_example1[1] = "~PAD_LEFT~ Duplicate ~PAD_RIGHT~";
Playeroption_example1[2] = "~PAD_LEFT~ Freeze position ~PAD_RIGHT~";
Playeroption_example1[3] = "~PAD_LEFT~ Un-freeze position ~PAD_RIGHT~";
Playeroption_example1[4] = "~PAD_LEFT~ Break ~PAD_RIGHT~";
Playeroption_example1[5] = "~PAD_LEFT~ Shuffle Seats ~PAD_RIGHT~";
Playeroption_example1[6] = "~PAD_LEFT~ Eject from vehicle ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
//Misc: Flymod, Player inferno, Weapons + armour, Remove armour, Explode self, Spawn money
}
void MD_VehOpt_Pplayer_Hide_Blip_Strings(int MenuItem_Index)
{
char* Playeroption_example1[3];
Playeroption_example1[1] = GetBit(pPlayerOptionsBitSet, PLAYER_OPTION_REMOVE_BLIP) ? "~PAD_LEFT~ ~COL_NET_1~On foot ~w~~PAD_RIGHT~" : "~PAD_LEFT~ On foot ~PAD_RIGHT~";
Playeroption_example1[2] = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_REMOVE_BLIP) ? "~PAD_LEFT~ ~COL_NET_1~Vehicle ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Vehicle ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_Pplayer_Speed_Strings(int MenuItem_Index){
if (!GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_SUPER_SPEED) && !GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_TURBO_SPEED))SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_NORMAL_SPEED, true);
char* Playeroption_example1[4];
Playeroption_example1[1] = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_NORMAL_SPEED) ? "~PAD_LEFT~ ~COL_NET_1~Normal ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Normal ~PAD_RIGHT~";
Playeroption_example1[2] = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_TURBO_SPEED) ? "~PAD_LEFT~ ~COL_NET_1~Turbo ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Turbo ~PAD_RIGHT~";
Playeroption_example1[3] = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_SUPER_SPEED) ? "~PAD_LEFT~ ~COL_NET_1~Superspeed ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Superspeed ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_Pplayer_Trans_Strings(int MenuItem_Index){
char* Playeroption_example1[7];
Playeroption_example1[1] = "~PAD_LEFT~ Ufo ~PAD_RIGHT~";
Playeroption_example1[2] = "~PAD_LEFT~ Tube ~PAD_RIGHT~";
Playeroption_example1[3] = "~PAD_LEFT~ Roller ~PAD_RIGHT~";
Playeroption_example1[4] = "~PAD_LEFT~ Fly it ~PAD_RIGHT~";
Playeroption_example1[5] = "~PAD_LEFT~ Delete Transformer ~PAD_RIGHT~";
Playeroption_example1[6] = "~PAD_LEFT~ Delete Vehicle ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_Pplayer_Forces_Strings(int MenuItem_Index){
char* Playeroption_example1[10];
Playeroption_example1[1] = "~PAD_LEFT~ Up ~PAD_RIGHT~";
Playeroption_example1[2] = "~PAD_LEFT~ Down ~PAD_RIGHT~";
Playeroption_example1[3] = "~PAD_LEFT~ Left ~PAD_RIGHT~";
Playeroption_example1[4] = "~PAD_LEFT~ Right ~PAD_RIGHT~";
Playeroption_example1[5] = "~PAD_LEFT~ Forwards ~PAD_RIGHT~";
Playeroption_example1[6] = "~PAD_LEFT~ Backwards ~PAD_RIGHT~";
Playeroption_example1[7] = "~PAD_LEFT~ Freeze Position ~PAD_RIGHT~";
Playeroption_example1[8] = "~PAD_LEFT~ Break ~PAD_RIGHT~";
Playeroption_example1[9] = "~PAD_LEFT~ Fix ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_Pplayer_Heading_Strings(int MenuItem_Index){
char* Playeroption_example1[7];
Playeroption_example1[1] = "~PAD_LEFT~ Speedboost ~PAD_RIGHT~";
Playeroption_example1[2] = "~PAD_LEFT~ Reversed Speedboost ~PAD_RIGHT~";
Playeroption_example1[3] = "~PAD_LEFT~ Reverse ~PAD_RIGHT~";
Playeroption_example1[4] = "~PAD_LEFT~ Head Left ~PAD_RIGHT~";
Playeroption_example1[5] = "~PAD_LEFT~ Head Right ~PAD_RIGHT~";
Playeroption_example1[6] = GetBit(VehicleOptionsBitSet, VEHICLE_OPTION_ROTATE) ? "~PAD_LEFT~ ~COL_NET_1~Rotation Loop ~w~~PAD_RIGHT~" : "~PAD_LEFT~ Rotation Loop ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_Pplayer_Weapons_Strings(int MenuItem_Index){
char* Playeroption_example1[3];
Playeroption_example1[1] = MD_Weapon_Vehicle ? "~PAD_LEFT~ ~COL_NET_1~Rocket Vehicle ~PAD_RIGHT~" : "~PAD_LEFT~ Rocket Vehicle ~PAD_RIGHT~";
Playeroption_example1[2] = Devils_Rapid_Fire_Heli ? "~PAD_LEFT~ ~COL_NET_1~Rapid Fire Heli ~PAD_RIGHT~" : "~PAD_LEFT~ Rapid Fire Heli ~PAD_RIGHT~";
//Playeroption_example1[2] = GetBit(MD_Misc_OptionsBitSet, MD_MISC_NATHANS_RAPID_FIRE_HELI) ? "~PAD_LEFT~ ~COL_NET_1~Rapid Fire Heli ~PAD_RIGHT~" : "~PAD_LEFT~ Rapid Fire Heli ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
void MD_VehOpt_Weapons_Strings(int MenuItem_Index){
char* Playeroption_example1[4];
Playeroption_example1[1] = (Vehicle_Weapon == WEAPON_RLAUNCHER) ? "~PAD_LEFT~ ~COL_NET_1~Rockets ~PAD_RIGHT~" : "~PAD_LEFT~ Rockets ~PAD_RIGHT~" ;
Playeroption_example1[2] = (Vehicle_Weapon == WEAPON_M4) ? "~PAD_LEFT~ ~COL_NET_1~Machineguns ~PAD_RIGHT~" : "~PAD_LEFT~ Machineguns ~PAD_RIGHT~";
Playeroption_example1[3] = (Vehicle_Weapon == WEAPON_SNIPERRIFLE) ? "~PAD_LEFT~ ~COL_NET_1~Snipers ~PAD_RIGHT~" : "~PAD_LEFT~ Snipers ~PAD_RIGHT~";
menu_item[MenuItem_Index].charval = Playeroption_example1[menu_item[MenuItem_Index].num_val];
}
//AddFunction_Value("Actions", 3); //14 Duplicate / Freeze position /Break
void MD_VehOpt_Pplayer_Strings(int MenuItem_Index){
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
//Jumpover 5
//Sub Spawner 6
//Sub Addons 7
//Sub Upgrades 8
else if(MenuItem_Index == 9) return MD_VehOpt_QuickSpawn_Strings(MenuItem_Index);
else if(MenuItem_Index == 10) return MD_VehOpt_Pplayer_General_Strings(MenuItem_Index);
else if(MenuItem_Index == 11) return MD_VehOpt_Pplayer_SpawnSettings_Strings(MenuItem_Index);
else if(MenuItem_Index == 12) return MD_VehOpt_Pplayer_ActiveOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 13) return MD_VehOpt_pPlayer_Handling_Option_Strings(MenuItem_Index);
else if(MenuItem_Index == 14) return MD_VehOpt_Pplayer_Speed_Strings(MenuItem_Index);
else if(MenuItem_Index == 15) return MD_VehOpt_Pplayer_Autolock_Option_Strings(MenuItem_Index); //Autolock: ~PAD_LEFT~ On, Unlock for friends, Off ~PAD_RIGHT~"
else if(MenuItem_Index == 16) return MD_VehOpt_pPlayer_Actions_Option_Strings(MenuItem_Index);
else if(MenuItem_Index == 17) return MD_VehOpt_Pplayer_Forces_Strings(MenuItem_Index);
else if(MenuItem_Index == 18) return MD_VehOpt_Pplayer_Heading_Strings(MenuItem_Index);
else if(MenuItem_Index == 19) return MD_VehOpt_Pplayer_Trans_Strings(MenuItem_Index);
else if(MenuItem_Index == 20) return MD_VehOpt_Weapons_Strings(MenuItem_Index);
else if(MenuItem_Index == 21) return MD_VehOpt_Pplayer_Weapons_Strings(MenuItem_Index);
}

View File

@@ -0,0 +1,121 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
void MD_All_Weapon_Strings(int MenuItem_Index){
char* Weapon_String[6];
Weapon_String[0] = "< ERROR >";
Weapon_String[1] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_CARRY_ALL_WEAPONS) ? "< ~COL_NET_1~Carry All >" : "< Carry All >";
Weapon_String[2] = "< Advanced >";
Weapon_String[3] = "< Poor >";
Weapon_String[4] = "< TBOGT >";
Weapon_String[5] = "< ~COL_NET_4~REMOVE >";
menu_item[MenuItem_Index].charval = Weapon_String[menu_item[MenuItem_Index].num_val];
}
void MD_Melee_Weapon_Strings(int MenuItem_Index){
char* Weapon_String[6];
Weapon_String[0] = "< ERROR >";
Weapon_String[1] = "< Fist >";
Weapon_String[2] = "< Knife >";
Weapon_String[3] = "< Baseball Bat >";
Weapon_String[4] = "< Poolstick >";
Weapon_String[5] = "< ~COL_NET_4~REMOVE >";
menu_item[MenuItem_Index].charval = Weapon_String[menu_item[MenuItem_Index].num_val];
}
void MD_Thrown_Weapon_Strings(int MenuItem_Index){
char* Weapon_String[4];
Weapon_String[0] = "< ERROR ~PAD_RIGHT~ >";
Weapon_String[1] = "< Molotov Coctail >";
Weapon_String[2] = "< Grenade >";
Weapon_String[3] = "< ~COL_NET_4~REMOVE >";
menu_item[MenuItem_Index].charval = Weapon_String[menu_item[MenuItem_Index].num_val];
}
void MD_Poor_Weapon_Strings(int MenuItem_Index){
char* Weapon_String[8];
Weapon_String[0] = "< ERROR ~PAD_RIGHT~ >";
Weapon_String[1] = "< Pistol (Glock 22) >";
Weapon_String[2] = "< RPG (RPG-7) >";
Weapon_String[3] = "< Micro SMG (IMI Micro Uzi) >";
Weapon_String[4] = "< Assault Rifle (AK-47) >";
Weapon_String[5] = "< Pump Shotgun(Ithaca M.37) >";
Weapon_String[6] = "< Sniper(Remington 700) >";
Weapon_String[7] = "< ~COL_NET_4~REMOVE >";
menu_item[MenuItem_Index].charval = Weapon_String[menu_item[MenuItem_Index].num_val];
}
void MD_Advanced_Weapon_Strings(int MenuItem_Index){
char* Weapon_String[8];
Weapon_String[0] = "< ERROR ~PAD_RIGHT~ >";
Weapon_String[1] = "< Desert Eagle XIX >";
Weapon_String[2] = "< RPG (RPG-7) >";
Weapon_String[3] = "< SMG (SW MP-10) >";
Weapon_String[4] = "< Carbine Rifle(Colt M4A1) >";
Weapon_String[5] = "< Combat Shotgun(Remington) >";
Weapon_String[6] = "< Combat Sniper(HK PSG-1) >";
Weapon_String[7] = "< ~COL_NET_4~REMOVE >";
menu_item[MenuItem_Index].charval = Weapon_String[menu_item[MenuItem_Index].num_val];
}
void MD_Vehicle_Weapon_Strings(int MenuItem_Index){
char* Weapon_String[11];
Weapon_String[0] = "< ERROR ~PAD_RIGHT~ >";
Weapon_String[1] = (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("weap10") > 0) ? "< ~COL_NET_1~Shoot Bomb ~w~>" : "< Shoot Bomb >";
Weapon_String[2] = (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("weap12") > 0) ? "< ~COL_NET_1~Shoot Exploding cars ~w~>" : "< Shoot Exploding cars >";
Weapon_String[3] = (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("Sam-turrets") > 0) ? "< ~COL_NET_1~Turret Airport Defence ~w~>" : "< Turret Airport Defence >";
Weapon_String[4] = (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("rev_xml_heli") > 0) ? "< ~COL_NET_1~Heli Bullets ~w~>" : "< Heli Bullets >";
Weapon_String[5] = (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("flameheli") > 0) ? "< ~COL_NET_1~Flaming Heli ~w~>" : "< Flaming Heli >";//xbox-ps3 diff .sco files!
Weapon_String[6] = (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("weap2") > 0) ? "< ~COL_NET_1~Drop A Bomb ~w~>" : "< Drop A Bomb >";
Weapon_String[7] = (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("weap3") > 0) ? "< ~COL_NET_1~Explosive Rounds ~w~>" : "< Explosive Rounds >";
Weapon_String[8] = (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("weap13") > 0) ? "< ~COL_NET_1~Twisted Metal ~w~>" : "< Twisted Metal >";
Weapon_String[9] = (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("AdvancedHeliRounds") > 0) ? "< ~COL_NET_1~Advanced HeliRounds ~w~>" : "< Advanced HeliRounds >";
Weapon_String[10] = "< ~COL_NET_4~Disable All >";
menu_item[MenuItem_Index].charval = Weapon_String[menu_item[MenuItem_Index].num_val];
}
void MD_Special_Weapon_Strings(int MenuItem_Index){
char* Weapon_String[15];
Weapon_String[0] = "< ERROR ~PAD_RIGHT~ >";
Weapon_String[1] = (DOES_OBJECT_EXIST(Attach_object[25])) ? "< ~COL_NET_1~Nailgun ~w~>" : "< Nailgun >";
Weapon_String[2] = GetBit(rocketWeaponsBitSet,players[ChangeNetPlayer].id) ? "< ~COL_NET_1~Rocket Weapon ~w~>" : "< Rocket Weapon >";
Weapon_String[3] = (IS_THIS_SCRIPT_RUNNING("aimbot") > 0) ? "< ~COL_NET_1~Aimbot~y ~(Only you) ~w~ >" : "< Aimbot ~y~(Only you) ~w~>";
Weapon_String[4] = (IS_THIS_SCRIPT_RUNNING("m97_grav") > 0) ? "< ~COL_NET_1~Gravity Gun ~y~(Only you) ~w~>" : "< Gravity Gun ~y~(Only you) ~w~>";
Weapon_String[5] = (IS_THIS_SCRIPT_RUNNING("m97_taser") > 0) ? "< ~COL_NET_1~Tazer Gun ~y~(Only you) ~w~>" : "< Tazer Gun ~y~(Only you) ~w~>";
Weapon_String[6] = (IS_THIS_SCRIPT_RUNNING("rocketdeagle") > 0) ? "< ~COL_NET_1~Rocket Desert Eagle ~y~(Only you) ~w~>" : "< Rocket Desert Eagle ~y~(Only you) ~w~>";
Weapon_String[7] = (IS_THIS_SCRIPT_RUNNING("drs01") > 0) ? "< ~COL_NET_1~Explosive Mp5/AK-47 ~y~(Only you) ~w~>" : "< Explosive Mp5/AK-47 ~y~(Only you) ~w~>";
Weapon_String[8] = (IS_THIS_SCRIPT_RUNNING("buffy_force") > 0) ? "< ~COL_NET_1~Forcefield AK-47 ~y~(Only you) ~w~>" : "< Forcefield AK-47 ~y~(Only you) ~w~>";
Weapon_String[9] = (IS_THIS_SCRIPT_RUNNING("ForceFieldv25") > 0) ? "< ~COL_NET_1~Advanced Forcefield ~y~(Only you) ~w~>" : "< Advanced Forcefield ~y~(Only you) ~w~>";
Weapon_String[10] = (IS_THIS_SCRIPT_RUNNING("buffy_mp5") > 0) ? "< ~COL_NET_1~Rockets Mp5 ~y~(Only you) ~w~>" : "< Rockets Mp5 ~y~(Only you) ~w~>";
Weapon_String[11] = (IS_THIS_SCRIPT_RUNNING("rob_cl") > 0) ? "< ~COL_NET_1~Vehicle Gun 1 ~y~(Only you) ~w~>" : "< Vehicle Gun 1 ~y~(Only you) ~w~>";
Weapon_String[12] = (IS_THIS_SCRIPT_RUNNING("buffy_launcher") > 0) ? "< ~COL_NET_1~Vehicle Gun 2 ~y~(Only you) ~w~>" : "< Vehicle Gun 2 ~y~(Only you) ~w~>";
Weapon_String[13] = (IS_THIS_SCRIPT_RUNNING("rob_carmod") > 0) ? "< ~COL_NET_1~Vehicle manipulator ~y~(Only you) ~w~>" : "< Vehicle manipulator ~y~(Only you) ~w~>";
Weapon_String[14] = "< ~COL_NET_4~REMOVE / DISABLE ALL >";
menu_item[MenuItem_Index].charval = Weapon_String[menu_item[MenuItem_Index].num_val];
}
void MD_TBOGT_Weapon_Strings(int MenuItem_Index){
char* Weapon_String[11];
Weapon_String[0] = "< ERROR ~PAD_RIGHT~ >";
Weapon_String[1] = "< Gold SMG (Uzi) >";
Weapon_String[2] = "< Grenade Launcher (HK69A1) >";
Weapon_String[3] = "< Sticky Bombs >";
Weapon_String[4] = "< Pistol .44 (AMT AutoMag 180) >";
Weapon_String[5] = "< Explosive Shotgun (AA-12) >";
Weapon_String[6] = "< Advanced MG (M249 SAW) >";
Weapon_String[7] = "< Advanced Sniper (DSR-1) >";
Weapon_String[8] = "< Parachute >";
Weapon_String[9] = "< Assault SMG (FN P90) >";
Weapon_String[10] = "< ~COL_NET_4~REMOVE / DISABLE ALL >";
menu_item[MenuItem_Index].charval = Weapon_String[menu_item[MenuItem_Index].num_val];
}
void MD_Weapon_Strings(int MenuItem_Index){ //16
if(MenuItem_Index == 1) return MD_Spy_Strings(MenuItem_Index);
else if(MenuItem_Index == 2) return MD_Delete_Strings(MenuItem_Index);
else if(MenuItem_Index == 3) return MD_PlayerOption_Strings(MenuItem_Index);
else if(MenuItem_Index == 4) return MD_QuickTeleport_Strings(MenuItem_Index);
else if(MenuItem_Index == 6) return MD_All_Weapon_Strings(MenuItem_Index);
else if(MenuItem_Index == 7) return MD_Melee_Weapon_Strings(MenuItem_Index);
else if(MenuItem_Index == 8) return MD_Thrown_Weapon_Strings(MenuItem_Index);
else if(MenuItem_Index == 9) return MD_Poor_Weapon_Strings(MenuItem_Index);
else if(MenuItem_Index == 10) return MD_Advanced_Weapon_Strings(MenuItem_Index);
else if(MenuItem_Index == 11) return MD_TBOGT_Weapon_Strings(MenuItem_Index);
else if(MenuItem_Index == 12) return MD_Special_Weapon_Strings(MenuItem_Index);
else if(MenuItem_Index == 13) return MD_Vehicle_Weapon_Strings(MenuItem_Index);
}

View File

@@ -0,0 +1,95 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//!Generally used strings allover the place ONLY ONCE IN CODE !!!!
void Player_Help_Strings(int MenuItem_Index){
char* String[6];
String[0] = "< ERROR >";
String[1] = "< Health >";
String[2] = "< Armour >";
String[3] = "< ~COL_NET_4~Remove Armour ~w~>";
String[4] = "< Fix Vehicle >";
String[5] = "< Flip Vehicle >";
menu_item[MenuItem_Index].charval = String[menu_item[MenuItem_Index].num_val];
}
void Helper_Loop_Strings(int MenuItem_Index){
char* String[6];
String[0] = "< ERROR >";
String[1] = GetBit(autoFixVehBitSet,players[ChangeNetPlayer].id) ? "< ~COL_NET_1~Auto Fix Vehicle ~w~>" : "< Auto Fix Vehicle >";
String[2] = GetBit(autoFlipVehBitSet,players[ChangeNetPlayer].id) ? "< ~COL_NET_1~Auto Flip Vehicle ~w~>" : "< Auto Flip Vehicle >";
String[3] = GetBit(infiniteArmourBitSet,players[ChangeNetPlayer].id) ? "< ~COL_NET_1~Juggernaut Player ~w~>" : "< Juggernaut Player >";
String[4] = GetBit(freezeGunProtectBitSet,players[ChangeNetPlayer].id) ? "< ~COL_NET_1~Freezegun Protection ~w~>" : "< Freezegun Protection >";
String[5] = GetBit(neverWantedBitSet,players[ChangeNetPlayer].id) ? "< ~COL_NET_1~Never wanted ~w~>": "< Never wanted >";
menu_item[MenuItem_Index].charval = String[menu_item[MenuItem_Index].num_val];
}
void MD_PO_Weapon_Option_Strings(int MenuItem_Index){
char* Weapon_Opt_Strings[6];
Weapon_Opt_Strings[1] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_INFINITE_AMMO) ? "< ~COL_NET_1~Unlimited clip ~w~>" : "< Unlimited clip >";
Weapon_Opt_Strings[2] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_RAPID_FIRE) ? "< ~COL_NET_1~Rapid fire ~w~>" : "< Rapid fire >";
Weapon_Opt_Strings[3] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_AUTO_AIM) ? "< ~COL_NET_1~Auto aim ~w~>" : "< Auto aim >";
Weapon_Opt_Strings[4] = "< Give Weapons >";
Weapon_Opt_Strings[5] = "< Remove Weapons >";
menu_item[MenuItem_Index].charval = Weapon_Opt_Strings[menu_item[MenuItem_Index].num_val];
}
void Weapon_Strings(int MenuItem_Index){
char* String[5];
String[0] = "< ERROR >";
String[1] = "< Advanced >";
String[2] = "< Poor >";
String[3] = "< Episodic >";
String[4] = "< ~COL_NET_4~Remove ~w~>";
menu_item[MenuItem_Index].charval = String[menu_item[MenuItem_Index].num_val];
}
void MD_PO_Physics_Strings(int MenuItem_Index){
char* physics_strings[4];
physics_strings[1] = DOES_OBJECT_EXIST(drive_water[iPlayer]) ? "< ~COL_NET_1~Drive/Walk on water ~w~>" : "< Drive/Walk on water >";
physics_strings[2] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_GRAVITY) ? "< ~COL_NET_1~Gravity ~w~>" : "< Gravity >" ;
physics_strings[3] = GetBit(pPlayerOptionsBitSet,PLAYER_OPTION_SLOW_MO) ? "< ~COL_NET_1~Slow motion ~w~>" : "< Slow motion >";
menu_item[MenuItem_Index].charval = physics_strings[menu_item[MenuItem_Index].num_val];
}
void Physics_Strings(int MenuItem_Index){
char* String[3];
String[0] = "< ERROR >";
String[1] = "< Desolidify >";
String[2] = "< Freeze Position ~w~>";
menu_item[MenuItem_Index].charval = String[menu_item[MenuItem_Index].num_val];
}
void Help_Strings(int MenuItem_Index){
char* String[6];
String[0] = "< ERROR >";
String[1] = "< Spawn Anni >";
String[2] = (Episode == 2) ? "< BUZZARD >" : "< MAVERICK >";
String[3] = "< Spawn Sultan RS >";
String[4] = "< Spawn NRG 900 >";
String[5] = "< Give Armour >";
menu_item[MenuItem_Index].charval = String[menu_item[MenuItem_Index].num_val];
}
void MD_PO_PlayerInfo_Strings(int MenuItem_Index){
char* PlayerInfo_Strings[10];
PlayerInfo_Strings[1] = Attach_Player_Info ? "< ~COL_NET_1~Display ~w~>" : "< Display >";
PlayerInfo_Strings[2] = (Player_INFO_ID1 != 99) ? ((Player_INFO_ID1 != iPlayer) ? "< ~COL_NET_1~Player 1 Saved ~w~>" : "< ~COL_NET_1~Default (You) ~w~>") : "< Save Player 1 >";
PlayerInfo_Strings[3] = "< Delete Player 1 >";
PlayerInfo_Strings[4] = (Player_INFO_ID2 != 99) ? "< ~COL_NET_1~Player 2 Saved ~w~>" : "< Save Player 2 >";
PlayerInfo_Strings[5] = "< Delete Player 2 >";
PlayerInfo_Strings[6] = (Player_INFO_ID3 != 99) ? "< ~COL_NET_1~Player 3 Saved ~w~>" : "< Save Player 3 >";
PlayerInfo_Strings[7] = "< Delete Player 3 >";
PlayerInfo_Strings[8] = Move_Player_Info ? "< ~COL_NET_1~Move Position ~PAD_DPAD_ALL~ ~w~>" : "< Move Position >";
PlayerInfo_Strings[9] = "< Reset Position >";
menu_item[MenuItem_Index].charval = PlayerInfo_Strings[menu_item[MenuItem_Index].num_val];
}

299
Trident/MD_Trident.c Normal file
View File

@@ -0,0 +1,299 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Current Version : TRIDENT
* @ MADE BY - DEVILSDESIGN
*/
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#pragma clang diagnostic ignored "-Wcomment"
#pragma clang diagnostic ignored "-Wpointer-sign"
#pragma clang diagnostic ignored "-Wint-conversion"
#pragma clang diagnostic ignored "-Wconstant-conversion"
//!Dont change below*/
#include "MD_Compile_Settings.c"
#include "inc/natives.h"
#include "MD_Base_Setup/MDB_Strings.h"
#include "inc/common.h"
#include "inc/consts.h"
//#include <MDB_Vars.h>
#include "MD_Base_Setup/MDB_Vars.h"
#include "MD_Base_Setup/MDB_Language.h"
#define PremiumPrint "~COL_NET_6~MD ~s~PREMIUM ~COL_NET_4~Press ~PAD_DPAD_DOWN~ + ~PAD_B~ to open."
#define PublicPrint "~COL_NET_6~MD ~s~PREMIUM ~COL_NET_4~Press ~PAD_DPAD_DOWN~ + ~PAD_B~ to open."
#define AdminPrint "~COL_NET_6~MD ~s~PREMIUM ~COL_NET_4~Press ~PAD_DPAD_DOWN~ + ~PAD_B~ to open."
#define SuperAdminPrint "~COL_NET_6~MD ~s~PREMIUM ~COL_NET_4~Press ~PAD_DPAD_DOWN~ + ~PAD_B~ to open."
#define DeveloperPrint "~COL_NET_6~MD ~s~PREMIUM ~COL_NET_4~Press ~PAD_DPAD_DOWN~ + ~PAD_B~ to open."
#include "MD_Functions/MDF_Shared_Functions_Required_By_Admin.c"
#include "MD_Security/MDS_Security.h"
#include "MD_Security/MDS_User_Verification.h"
#include "MD_Base_Setup/MDB_Looped_Setup.c"
//!!Always check here first before making new ones!!!
#include "MD_Strings/MD_Generally_Used_Strings.c" //**New!! - Updated 25.07.2017**/
//!
#include "MD_Strings/MDSTR_Shortcut_Strings.c" //**New!! - Updated 10.03.2017**/
#include "MD_Strings/MDSTR_Animation_Strings.c" //**New!! - Updated 19.03.2017**/
#include "MD_Strings/MDSTR_ChangePlayer_Strings.c" //**New!! - Updated 20.03.2017**/
#include "MD_Strings/MDSTR_Admin_Strings.c"
#include "MD_Strings/MDSTR_Netplayer_unfriendly.c"//**New!! - Updated 06/05/2017**/
#include "MD_Strings/MDSTR_Weapon_Strings.c" //**New!! - Updated 19.03.2017**/
#include "MD_Strings/MDSTR_Attachment_Strings.c" //**New!! - Updated 18.03.2017**/
#include "MD_Strings/MDSTR_Rotation_Strings.c" //**New!! - Updated 21.03.2017**/
#include "MD_Strings/MDSTR_Army_Strings.c"//**New!! - Updated 22.03.2017**/
#include "MD_Strings/MDSTR_ContentBuilder_Strings.c"
#include "MD_Strings/MDSTR_Netplayer_Options_Strings.c"
#include "MD_Strings/MDSTR_Vehicle_Options_Strings.c"//**New!! - Updated 04.04.2017**/
#include "MD_Strings/MDSTR_Net_Vehicle_Options_Strings.c"//**New!! - Updated 23.04.2017**/
#include "MD_Strings/MDSTR_Navigator_Strings.c"//**New!! - Updated 23.07.2017**/
#include "MD_Strings/MDSTR_Player_Options_Strings.c"
#include "MD_Strings/MDSTR_Strings_BASE_Structure.c"
#include "MD_Functions/MDF_Shared_Functions.c"
#include "MD_Functions/MDF_Creation_Functions.c"
#include "MD_Functions/MDF_Army_Functions.c"
#include "MD_Base_Setup/MDB_Template.c"
#include "MD_Base_Setup/MDB_Menu_Functions.c"
#include "MD_Strings/MDSTR_Shortcut_Strings_Action.c" //**New!!**/
#include "MD_Strings/MDSTR_Animation_Strings_Action.c" //**New!!**/
#include "MD_Security/MDS_Admin_CC.c"
#include "MD_Contents/MDC_Main_Options.c"
#include "MD_Contents/MDC_Development_Options.c"
#include "MD_Contents/MDC_Premium_Main_Options.c"
#include "MD_Contents/MDC_Deletion_Options.c"
#include "MD_Contents/MDC_Menu_Settings.c"
#include "MD_Contents/MDC_Weapon_Options.c"
#include "MD_Contents/MDC_Weather_Options.c"
#include "MD_Contents/MDC_Player_Changer.c"
#include "MD_Contents/MDC_Teleport_Index.h"
#include "MD_Contents/MDC_Teleport_Options.c"
#include "MD_Contents/MDC_Army_Options.c"
#include "MD_Contents/MDC_Vehicle_Car_Spawner.c"
#include "MD_Contents/MDC_Vehicle_Garage_Pplayer.c"
#include "MD_Contents/MDC_Vehicle_Garage_Net.c"
#include "MD_Contents/MDC_Player_Options.c"
#include "MD_Contents/MDC_Navigator_Options.c"
#include "MD_Contents/MDC_Network_Player_Options.c"
#include "MD_Contents/MDC_Network_All_Player_Options.c"
#include "MD_Contents/MDC_Sco_Loading.c"
#include "MD_Contents/MDC_Invite_System.c" //PREMIUM ONLY!
#include "MD_Contents/MDC_Credits_Setup.c"
#include "MD_Functions/MDF_ContentBuilder_Functions.c"
#include "MD_Contents/MDC_Animation_Options.c"
#include "MD_Contents/MDC_Rotation_Options.c"
#include "MD_Contents/MDC_ContentBuilder_Options.c"
#include "MD_Contents/MDC_Attachment_Options.c"
#include "MD_Contents/MDC_Keyboard_Shortcuts.c"
#include "MD_Contents/MDC_Unfriendly_Options.c"
#include "MD_Contents/MDC_V13_Admin_Options.c"
#include "MD_Contents/MDC_Mapmods.c"
#include "MD_Contents/MDC_Mapmods_Scripts.c"
#include "MD_Content_Structure/MD_Menu_Setup.c"
#include "MD_Content_Structure/MD_Menu_Actions.c"
#include "MD_Base_Setup/MDB_Engine.c"
bool Debug_Checks = false;
bool RunOnce = true;
bool ModDraws;
void main(void)
{
THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
if(!IS_FONT_LOADED(Menu_Font)) LOAD_TEXT_FONT(Menu_Font);
#ifndef VERSION_PC
is_xbox_version = IS_XBOX360_VERSION();
#endif
//Security_Check();
SETTIMERA(0);
In_Network = IS_NETWORK_SESSION();
/*
if(!MD_STRINGS_CHECK() || !GetBit misc options strings checked)
{
//set bit secure md strings check and get bit blah// only if already secure
}
*/
////if(!GetBit, strings checked ||
#ifdef Admin
CreateByteSet(10,MAX_PLAYERS,0,0,&AdminByteSet);
#endif
CreateByteSet(MAX_PLAYERS,MAX_PLAYERS,MAX_PLAYERS,0,&SpectateAndAttachByteSet);
CreateByteSet(50,25,0,3,&WeatherTimeAutoLockByteSet);
Episode = GET_CURRENT_EPISODE();
iPlayer = GET_PLAYER_ID(); //DONT CHANGE!
#ifdef Premium
while(secure)
//Could do
//for(i = 0; i < GetBit(blah, securebit); i = 0); //so basically while get bit is true, if false it'll terminate
#else
while(true)
#endif
{
//!This is u!
pPlayer = GetPlayerPed(); //PED
iPlayer = GET_PLAYER_ID();//ID
#ifndef Developer
if(Is_Developer(iPlayer)){ //Stop spoofers
Freeze_Self();
int i;
for(i = 0; i < MAX_PLAYERS; i++)FUCK_THA_HOLE(i,true); //make crash..
}
#endif
if(!ModDraws)
{
Set_Up_Draw(0.3000f,0.4200f,255,255,255,255,0,0,255);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.254,0.260, "STRING","Modsettings:");
Set_Up_Draw(0.3000f,0.4200f,255,255,255,255,0,0,255);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.254,0.310, "STRING","~s~~PAD_DPAD_LEFT~ for ON ~COL_NET_4~ / ~s~~PAD_DPAD_RIGHT~ for OFF");
if(IS_BUTTON_PRESSED(0,BUTTON_DPAD_LEFT))
{
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_GODMODE, true);
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_NEVER_WANTED, true);
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_INFINITE_AMMO, true);
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_AUTO_AIM, true);
SetBit(VehicleOptionsBitSet, VEHICLE_OPTION_INVINCIBLE, true);
SetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SLIDE, true);
SetBit(VehicleOptionsBitSet,VEHICLE_OPTION_ENGINE,true);
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_SUPER_RUN, true);
SetBit(VehicleOptionsBitSet,VEHICLE_OPTION_NORMAL_SPEED,true); //normal speed shouldnt even be a thing..... dont touch car when its normal dude
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_GRAVITY, true);
print("~COL_NET_3~Modsettings ~s~ON ~COL_NET_3~set!");
ModDraws = true;
}
else if(IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT))
{
print("~COL_NET_5~Modsettings ~s~OFF ~COL_NET_5~set!");
SetBit(VehicleOptionsBitSet,VEHICLE_OPTION_ENGINE,true);
SetBit(pPlayerOptionsBitSet, PLAYER_OPTION_GRAVITY, true);
ModDraws = true;
}
}
//!Loops
MC_PlayerOptions_Loop();
if (Debug_Checks)Alert("Playeroptions_Loop_OK",false);
if (Debug_Checks)WAIT(2000);
MC_Vehicle_Loop_pPlayer();
if (Debug_Checks)Alert("Vehicle_Loop_OK",false);
if (Debug_Checks)WAIT(2000);
#ifdef Premium
secure = Is_Premium(iPlayer);
#ifndef Developer
//untested
/*
if(!is_ObfuscatedHash_a_Friend(6863392054)) // MDVERIFY
{
iPlayer = Friend_Count(); //to cause freeze
Freeze_Self();
FUCK_THA_HOLE(iPlayer,true); //make script crash :D
ChangeNetPlayer = pPlayer;
iPlayer = GetPlayerPed();
}
*/
#endif
#endif
MC_Weapon_Loop();
#ifndef Developer
AdminV2Loop();
#endif
if (Debug_Checks)Alert("Weapon_Loop_OK",false);
if (Debug_Checks)WAIT(2000);
MC_Creation_Loop();
if (Debug_Checks)Alert("Creation_Loop_OK",false);
if (Debug_Checks)WAIT(2000);
MC_Weather_Loop();
if (Debug_Checks)Alert("Weather_Loop_OK",false);
if (Debug_Checks)WAIT(2000);
MC_Keyboard();
if (Debug_Checks)Alert("Keyboard_Loop_OK",false);
if (Debug_Checks)WAIT(2000);
if(In_Network)
{
Update_Playerlist();
if (Debug_Checks)Alert("Playerlist Update OK",false);
if (Debug_Checks)WAIT(2000);
//could eventually open the byte set here and close it at the end,
//using pointers for the functions.. (optimisation, open it once, close it once per loop)
//MC_Network_Player_Loop(&AttachPlayerIndex, AttachType); //not an error
MC_Network_Player_Loop();
if (Debug_Checks)Alert("Network Player Loop OK",false);
if (Debug_Checks)WAIT(2000);
SPECTATE_PLAYER_LOOP();
if (Debug_Checks)Alert("Spectate Loop OK",false);
if (Debug_Checks)WAIT(2000);
#ifdef Premium
RECEIVED_INVITES_NOTIFY(); //ghost mode only? can we detect via which script is running if ghost or normal mode?
if (Debug_Checks)Alert("Invite System check OK",false);
if (Debug_Checks)WAIT(2000);
#endif
Admin_Loop();
if (Debug_Checks)Alert("Admin System Loop OK",false);
if (Debug_Checks)WAIT(2000);
Actionpad_looped();
if (Debug_Checks)Alert("Actionpad System Loop OK",false);
if (Debug_Checks)WAIT(2000);
#ifdef Premium
MC_Premium_Loop();
if (Debug_Checks)Alert("Premium System Loop OK",false);
if (Debug_Checks)WAIT(2000);
#endif
if(GetByteInSet(SpectateAndAttachByteSet, ATTACH_TYPE) == 3) Draw_Spy_Helper_Window();
if(PlayerList){
MicOnDisplay();
Menu_Effects();
}
Ghost_Player_List();
SWITCH_AMBIENT_PLANES(0);
Killfeed();
if(IS_THIS_SCRIPT_RUNNING("MD_Superior_Network") && GET_HOST_ID() != -1 && RunOnce){
//Print_Kill_Feed = true;
PlayerList = true;
RunOnce = false;
}
}
if (Debug_Checks)Debug_Checks = false;
/**/
if(!IS_PAUSE_MENU_ACTIVE() && !IS_IN_PLAYER_SETTINGS_MENU())
{
if(GetBit(MD_Misc_OptionsBitSet, MD_MISC_MENU_SHOW)){
MC_Looped_Setup();
if(!IS_STRING_NULL(load_script) && !Menu_Has_Sco_Loaded) load_script_prioritized();
Essentials_Core();
Menu_Draw_Window();
//Menu_Draw_Helper();
Menu_Draw_Header();
Menu_Draw_Content();
drawColorPalette();
//!Check this
if(!PlayerList){
MicOnDisplay();
Menu_Effects();
}
}
//Change ur opening buttons here!
else if(IS_BUTTON_PRESSED(0,BUTTON_DPAD_DOWN) && IS_BUTTON_JUST_PRESSED(0,BUTTON_B)){
Essentials_Startup();
Menu_Open_Draw();
Player_Counter();
}
}
WAIT(0);
}
if(false){
int two = 2;
if( (1 + two) > 0){
Alert("CHANGE TO INVALID OPCODE HERE",false); //execution isn't important
}
}
}

422
Trident/MD_Verification.c Normal file
View File

@@ -0,0 +1,422 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN && IIV NATHAN VII
*/
#include "MD_Compile_Settings.c"
#include <natives.h>
#include "MD_Base_Setup/MDB_Strings.h"
#include <common.h>
int script_load_tick;
Player pPlayer;
Model pPlayer_Model;
bool Streaming;
bool RunOnce = true;
#define GetBit(BitSet, bitIndex) IS_BIT_SET(BitSet, bitIndex)
#define SetBit(BitSet, bitIndex, bitValue) SetBitHelper(&BitSet, bitIndex, bitValue)
#define ToggleBit(BitSet, bitIndex) ToggleBitHelper(&BitSet, bitIndex)
void SetBitHelper(uint *BitSet, uint bitIndex, bool value){
if(value)SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
void ToggleBitHelper(uint *BitSet, uint bitIndex){
if(!IS_BIT_SET(*BitSet, bitIndex))SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
bool Invalid_Player(const int playerid){ //should move to common.h
if(GET_HASH_KEY(GET_PLAYER_NAME(playerid)) == 2211124811)return true;
if( HAS_NETWORK_PLAYER_LEFT_GAME(playerid) )return true; //This is important afterall, it rules out all invalid leftoverplayers in the game
return false;
}
bool is_developer(const int playerid)
{
if(GET_HASH_KEY(GET_PLAYER_NAME(playerid)) == 2483372231) return true; // Unix Commands
if(GET_HASH_KEY(GET_PLAYER_NAME(playerid)) == 1542771503) return true; // waaaaack
return false;
}
char* players_name(int index)
{
return GET_PLAYER_NAME(index);
}
int get_hash(char* string)
{
return GET_HASH_KEY(string);
}
#define MDVersion_y Item_Start_y - 0.052f
#define MDVersion_x Menu_Start_Pos_x - 0.0800
#define Frames_Allert_r 143
#define Frames_Allert_g 9
#define Frames_Allert_b 220
//#define MDVersion_Txt_Size 0.19f*0.8,0.35f*0.8
#define MD_Frames_Txt_Size 0.19f,0.35f
//Gold
#define MDVersion_r 164
#define MDVersion_g 134
#define MDVersion_b 35
#define MDVersion_Txt_Size 0.19f,0.35f
#define Names_Txt_Size 0.19f,0.35f
#define Mic_Talk_r 255
#define Mic_Talk_g 140
#define Mic_Talk_b 0
#define Has_Mic_r 255
#define Has_Mic_g 255
#define Has_Mic_b 255
#define VERSION_DISPLAY "~BLIP_76~ MD EXTEND~w~+ ~b~TRIDENT"
#define Line_Pos_x Menu_Start_Pos_x
#define Line_Pos_y Menu_Start_Pos_y + 0.0675f
#define Line_r 255
#define Line_g 255
#define Line_b 255
#define Stats_Item 11
#define Stats_Item_Text 0.1800f*0.85,0.3850f*0.85
#define Stats_Item_Height 0.025f
#define Stats_Window_width 0.18f
#define Stats_Item_Margin_x 0.010f
#define Stats_Item_r 255
#define Stats_Item_g 255
#define Stats_Item_b 255
#define Stats_Value_r 255
#define Stats_Value_g 143
#define Stats_Value_b 0
//Green
#define Stats_Yes_r 204
#define Stats_Yes_g 0
#define Stats_Yes_b 0
//Red
#define Stats_No_r 0
#define Stats_No_g 204
#define Stats_No_b 0
#define Header_r 177
#define Header_g 19
#define Header_b 26
#define Header_a 255
bool fpsbool = false;
int fpsgrab = 0;
int FrameCountPre;
int fps = 25;
int empty_slots;
float versionslide = 0.1025;
int Rotating360 = 1;
bool trident_previously_loaded = false;
bool has_joined_game = false;
int Ghost_Counter(void){
int Ghost_Count = 0;
for(int i = 0; i < MAX_PLAYERS; i++)
{
if(Invalid_Player(i) || IS_NETWORK_PLAYER_ACTIVE(i)) continue;
Ghost_Count++;
}
return Ghost_Count;
}
void Draw_Frame_Rate(void){
if(TIMERA() <= 500){
if(!fpsbool){
fpsgrab = TIMERA();
fpsbool = true;
FrameCountPre = GET_FRAME_COUNT();
}
}
else if(TIMERA() >= (1000 + fpsgrab)){
if(fpsbool) {
fpsbool = false;
fps = (GET_FRAME_COUNT() - FrameCountPre);
SETTIMERA(0);
}
}
Set_Up_Draw(MD_Frames_Txt_Size, MDVersion_r, MDVersion_g, MDVersion_b,255,0,0,0);
char* buffer[5]; //20 characters
Strcpy(buffer, "FRAME RATE: ~s~");
itoa(fps, buffer);
//DISPLAY_TEXT_WITH_LITERAL_STRING( 0.05, 0.6950, "STRING", "FRAME RATE:");
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.05, 0.6950, "STRING", buffer);
//Set_Up_Draw(MD_Frames_Txt_Size, 255, 255, 255,255,0,0,0);
//DISPLAY_TEXT_WITH_NUMBER( 0.115, 0.6950, "NUMBR", fps);
if(fps < 17){
Set_Up_Draw(MD_Frames_Txt_Size, Frames_Allert_r, Frames_Allert_g, Frames_Allert_b,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.05, 0.7200, "STRING", "Game is lagging!");
}
}
#define Orange 164,134,35
void Draw_Extend_Slider(){
Set_Up_Draw(MDVersion_Txt_Size,MDVersion_r, MDVersion_g, MDVersion_b,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.05, 0.9500, "STRING", VERSION_DISPLAY);
if(!IS_THIS_SCRIPT_RUNNING("MD_Protect") && !IS_THIS_SCRIPT_RUNNING("network_protection")){
DRAW_RECT(0.1030, 0.9750 , 0.1120, 0.00200000, Line_r, Line_g, Line_b, 120);
}
else{
if(GET_CURRENT_EPISODE() == 2)DRAW_RECT(0.1030 + 0.0390 , 0.9750 , 0.1800, 0.00200000, Line_r, Line_g, Line_b, 120);
else DRAW_RECT(0.1030 + 0.0380 , 0.9750 , 0.1775, 0.00200000, Line_r, Line_g, Line_b, 120);
Set_Up_Draw(MDVersion_Txt_Size,Orange,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.05 + 0.114, 0.9500, "STRING", "& Protections");
}
if(versionslide >= 0.1025 + (0.1125/2) - 0.005 )Version_Increment = false;
else if(versionslide <= 0.1025 - (0.1125/2) + 0.005)Version_Increment = true;
if(Version_Increment)versionslide += 0.001f;
else versionslide -= 0.001f;
if(empty_slots > -1)DRAW_RECT(versionslide, 0.9750 , 0.005, 0.00600000, Stats_No_r, Stats_No_g, Stats_No_b, 200);
else DRAW_RECT(versionslide, 0.9750 , 0.005, 0.00600000, Header_r, Header_g, Header_b, 200);
}
void Draw_Host_And_Empty_Slots(){
Set_Up_Draw(MD_Frames_Txt_Size, MDVersion_r, MDVersion_g, MDVersion_b, 255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.05, 0.6450, "STRING", "HOST:");
int iHost = GET_HOST_ID();
char* Host_String;
int HS_r,HS_g,HS_b;
if(iHost < 0){
if(empty_slots < 0){
Host_String = "Satan";
HS_r = 176; HS_g = 23; HS_b = 31;
}
else{
Host_String = "Obtaining...";
HS_r = 255; HS_g = 255; HS_b = 255;
}
}
else{
GET_PLAYER_RGB_COLOUR(iHost,&HS_r,&HS_g,&HS_b);
Host_String = GET_PLAYER_NAME(iHost);
if(RunOnce){
Streaming = true;
RunOnce = false;
}
}
Set_Up_Draw(MD_Frames_Txt_Size, HS_r, HS_g, HS_b, 255,0,0,0);
SET_TEXT_USE_UNDERSCORE(true);
SET_TEXT_FONT(Player_Name_Font);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.08, 0.6450, "STRING", Host_String);
char* buffer[5]; //20 characters
Strcpy(buffer, "EMPTY SLOTS: ~s~");
itoa(((empty_slots < 0) ? 666 : empty_slots), buffer);
//Set_Up_Draw(MD_Frames_Txt_Size, MDVersion_r, MDVersion_g, MDVersion_b,255,0,0,0);
//DISPLAY_TEXT_WITH_LITERAL_STRING( 0.05, 0.6700, "STRING", "EMPTY SLOTS:");
Set_Up_Draw(MD_Frames_Txt_Size, MDVersion_r, MDVersion_g, MDVersion_b,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING( 0.05, 0.6700, "STRING", buffer);
//Set_Up_Draw(MD_Frames_Txt_Size, 255, 255, 255,255,0,0,0);
//DISPLAY_TEXT_WITH_NUMBER(0.115, 0.6700, "NUMBR", ((empty_slots < 0) ? 666 : empty_slots));
}
void MAKE_SURE_IMPORTANT_SCRIPTS_REMAIN_LOADED(void){
if(DOES_SCRIPT_EXIST("MD_Trident")){
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("MD_Trident") >= 1)trident_previously_loaded = true;
else if(trident_previously_loaded)Autoload("MD_Trident",true);
}
}
bool is_blacklisted(uint index)
{
if(get_hash(GET_FIRST_N_CHARACTERS_OF_LITERAL_STRING(players_name(index), 3)) == 1325985115) return true; //DSG
if(get_hash(GET_FIRST_N_CHARACTERS_OF_LITERAL_STRING(players_name(index), 3)) == 4033020768) return true; //GTM
if(get_hash(players_name(index)) == 3358406225) return true; //"Sony Manager"
if(get_hash(players_name(index)) == 3173754359) return true; //"Original xxSwed"
if(get_hash(players_name(index)) == 724796422) return true; //"Blackscreen"
if(get_hash(players_name(index)) == 743127808) return true; //"KYRDARKSHADOWV6"
if(get_hash(players_name(index)) == 36435476) return true; //"YOU GONNA RAGE"
if(get_hash(players_name(index)) == 4231130372) return true; //"IceCold9t"
if(get_hash(players_name(index)) == 1771682383) return true; //"Z CavalCante"
if(get_hash(players_name(index)) == 2876908024) return true; //"JadeWolffy"
if(get_hash(players_name(index)) == 3106117260) return true; //Zuper //
if(get_hash(players_name(index)) == 76695660) return true; //HeavenlyAngel34 //
if(get_hash(players_name(index)) == 1122092934) return true; //darkangel 354 //
if(get_hash(players_name(index)) == 3276443401) return true; //HostPost //
if(get_hash(players_name(index)) == 3569962928) return true; //shaggymanx32869//
if(get_hash(players_name(index)) == 4247356963) return true; //iconz //
if(get_hash(players_name(index)) == 408400353) return true; //potato howes 81//
if(get_hash(players_name(index)) == 591219322) return true; //atomicgraveyard //
if(get_hash(players_name(index)) == 1058248056) return true; //I luvzbear cx 1 //
if(get_hash(players_name(index)) == 3048590516) return true; //homicida1king //
if(get_hash(players_name(index)) == 2411173550) return true; //unholy rituals//
if(get_hash(players_name(index)) == 2788997846) return true; //xmr illusion //
if(get_hash(players_name(index)) == 1871139700) return true; //decapturing//
if(get_hash(players_name(index)) == 3549918088) return true; //cell tower pro//
if(get_hash(players_name(index)) == 2328720358)return true; //AYAYAYAYAYAYAYAYA
if(get_hash(players_name(index)) == 161164627) return true; // CaT Modz V4
if(get_hash(players_name(index)) == 1083472770) return true; // shroomy savage
if(get_hash(players_name(index)) == 3159339279) return true; // m0dd3r fever
if(get_hash(players_name(index)) == 2466904569) return true; // ipablo escobaris
if(get_hash(players_name(index)) == 1252669065) return true; // B1oodyAssassin7
if(get_hash(players_name(index)) == 3316567969) return true; // xxxdboyzz313xxx
if(get_hash(players_name(index)) == 1083472770) return true; // shroomy savage
if(get_hash(players_name(index)) == 2705837998) return true; // FD
if(get_hash(players_name(index)) == 2563644494) return true; // z 8 b4ll z
if(get_hash(players_name(index)) == 2694465311) return true; // The Beardid Guy
if(get_hash(players_name(index)) == 3484734028) return true; // judge n juror
if(get_hash(players_name(index)) == 2658670246) return true; // bluemonkeygamez
if(get_hash(players_name(index)) == 2966291591) return true; // cbp annihilator
if(get_hash(players_name(index)) == 276372434) return true; // zbeub l0by xkey
if(get_hash(players_name(index)) == 402768388) return true; // Inq Is Back
if(get_hash(players_name(index)) == 2322900604) return true; // WildStyleLSp
if(get_hash(players_name(index)) == 3288767689) return true; //Seals Trident
return false;
}
bool ModelCheck ()
{
Model mymodel;
Ped mychar;
GET_PLAYER_CHAR(GET_PLAYER_ID(),&mychar);
GET_CHAR_MODEL(mychar,&mymodel);
if(mymodel == MODEL_PLAYER) // niko
{
return true;
}
else return false;
}
void MD_Trident_Display(void){
uint GhostDetect_ID;
uint cr,cg,cb;
float Draw_Pos_y = 0.6175f;
float Draw_Pos_x = 0.0630f;
float Ghost_Offset = 0.13f ;
float Mic_Offset = 0.0130f;
float Line_Length = 0.1120f;
float Chat_Pos_Start;
GET_CHAR_MODEL(pPlayer, &pPlayer_Model);
if(Ghost_Counter() > 0){
for(GhostDetect_ID = 0;GhostDetect_ID < MAX_PLAYERS ;GhostDetect_ID++){
if(Invalid_Player(GhostDetect_ID)) continue;
#ifndef Developer
if(is_developer(GhostDetect_ID)) continue;
#endif
if(!IS_NETWORK_PLAYER_ACTIVE(GhostDetect_ID) && !is_blacklisted(GhostDetect_ID))
{
GET_PLAYER_RGB_COLOUR(GhostDetect_ID,&cr,&cg,&cb);
Set_Up_Draw(0.1950f,0.3600f,cr,cg,cb,255,0,0,0);
SET_TEXT_FONT(Player_Name_Font);
SET_TEXT_USE_UNDERSCORE(true);
DISPLAY_TEXT_WITH_LITERAL_STRING(Draw_Pos_x, Draw_Pos_y, "STRING", GET_PLAYER_NAME(GhostDetect_ID));
}
if(PLAYER_HAS_CHAR(GhostDetect_ID) && (pPlayer_Model != MODEL_PLAYER) && !IS_NETWORK_PLAYER_ACTIVE(GhostDetect_ID))
{ //Ghosts
Set_Up_Draw(0.1950f,0.3600f,255,255,255,255,0,0,255);
DISPLAY_TEXT_WITH_LITERAL_STRING(Draw_Pos_x + Ghost_Offset, Draw_Pos_y, "STRING", "GHOST");
if(is_blacklisted(GhostDetect_ID))
{
Set_Up_Draw(0.1950f,0.3600f,255,255,255,255,0,0,255);
DISPLAY_TEXT_WITH_LITERAL_STRING(Draw_Pos_x, Draw_Pos_y, "STRING", GET_PLAYER_NAME(GhostDetect_ID));
Set_Up_Draw(0.1950f,0.3600f,255,255,255,255,0,0,255);
DISPLAY_TEXT_WITH_LITERAL_STRING(Draw_Pos_x, Draw_Pos_y, "STRING", "BLACKLISTED");
}
if(NETWORK_PLAYER_HAS_HEADSET(GhostDetect_ID))
{
if(!NETWORK_IS_PLAYER_TALKING(GhostDetect_ID))DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_HEADSET_ON1"),Draw_Pos_x - Mic_Offset , Draw_Pos_y + 0.0120f, 0.0160, 0.0160, Rotating360, Has_Mic_r, Has_Mic_g, Has_Mic_b, 255);
else DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_HEADSET_ON1"),Draw_Pos_x - Mic_Offset , Draw_Pos_y + 0.0120f, 0.0160, 0.0160, Rotating360, Mic_Talk_r, Mic_Talk_g, Mic_Talk_b, 255);
}
}
else if(!PLAYER_HAS_CHAR(GhostDetect_ID))
{
Set_Up_Draw(0.1950f,0.3600f,255,255,255,255,255,0,0);
if(GET_HOST_ID() == GhostDetect_ID) DISPLAY_TEXT_WITH_LITERAL_STRING(Draw_Pos_x + Ghost_Offset, Draw_Pos_y, "STRING", "HOLY HOST");
else DISPLAY_TEXT_WITH_LITERAL_STRING(Draw_Pos_x + Ghost_Offset, Draw_Pos_y, "STRING", "JOINING");
if(NETWORK_PLAYER_HAS_HEADSET(GhostDetect_ID))
{
if(!NETWORK_IS_PLAYER_TALKING(GhostDetect_ID))DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_HEADSET_ON1"),Draw_Pos_x - Mic_Offset , Draw_Pos_y + 0.0120f, 0.0160, 0.0160, Rotating360, Has_Mic_r, Has_Mic_g, Has_Mic_b, 255);
else DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_HEADSET_ON1"),Draw_Pos_x - Mic_Offset , Draw_Pos_y + 0.0120f, 0.0160, 0.0160, Rotating360, Mic_Talk_r, Mic_Talk_g, Mic_Talk_b, 255);
}
}
if(!IS_NETWORK_PLAYER_ACTIVE(GhostDetect_ID))
{
Draw_Pos_y -= 0.025f;
}
}
Set_Up_Draw(Names_Txt_Size,MDVersion_r, MDVersion_g, MDVersion_b,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING( Draw_Pos_x - Mic_Offset, Draw_Pos_y, "STRING", "GHOSTS :");
}
/*
if(pPlayer_Model == MODEL_PLAYER){
Set_Up_Draw(Names_Txt_Size,MDVersion_r, MDVersion_g, MDVersion_b,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING( Draw_Pos_x - Mic_Offset, Draw_Pos_y, "STRING", "HOLY GHOST MODE - ~COL_NET_4~DETECTION DISABLED");
}
*/
Chat_Pos_Start = Draw_Pos_y - 0.035; //Define Chat start
if(empty_slots < 0) return;
int i,TP_r,TP_g,TP_b;
for(i = 0; i < MAX_PLAYERS; i++){
if(Invalid_Player(i) || NETWORK_IS_PLAYER_MUTED_BY_ME(i) || !NETWORK_IS_PLAYER_TALKING(i)) continue;
//if(!IS_NETWORK_PLAYER_ACTIVE(i) && pPlayer_Model != MODEL_PLAYER)continue;
GET_PLAYER_RGB_COLOUR(i,&TP_r,&TP_g,&TP_b);
Set_Up_Draw(Names_Txt_Size,TP_r,TP_g,TP_b,255,0,0,0);
SET_TEXT_FONT(Player_Name_Font);
SET_TEXT_USE_UNDERSCORE(true);
DISPLAY_TEXT_WITH_LITERAL_STRING( Draw_Pos_x, Chat_Pos_Start, "STRING", GET_PLAYER_NAME(i));
DRAW_SPRITE(GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_HEADSET_ON1"),Draw_Pos_x - Mic_Offset, (Chat_Pos_Start + 0.0120f), 0.0160, 0.0160, Rotating360, Mic_Talk_r, Mic_Talk_g, Mic_Talk_b, 255);
Chat_Pos_Start -= 0.025f;
}
if (Rotating360 >= 360)Rotating360 = 0;
else Rotating360 += 5;
}
void main(){
THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
if(!IS_FONT_LOADED(Menu_Font)) LOAD_TEXT_FONT(Menu_Font);
if(!IS_FONT_LOADED(Player_Name_Font)) LOAD_TEXT_FONT(Player_Name_Font);
WAIT(250);
bool In_Network = IS_NETWORK_SESSION();
while(true)
{
ALLOW_GAME_TO_PAUSE_FOR_STREAMING(true);
pPlayer = GetPlayerPed();
Draw_Frame_Rate();
if(In_Network){
empty_slots = empty_player_slots();
Draw_Extend_Slider();
Draw_Host_And_Empty_Slots();
if(!ModelCheck())
{
MD_Trident_Display();
}
}
if(script_load_tick < GetTickCount()){
script_load_tick = (GetTickCount() + 5000);
MAKE_SURE_IMPORTANT_SCRIPTS_REMAIN_LOADED();
}
Set_Up_Draw(MDVersion_Txt_Size,255,255,255,255,0,0,0);
if(Streaming){
DISPLAY_TEXT_WITH_LITERAL_STRING(0.74, 0.9500, "STRING", "Game Streaming ~COL_NET_3~ON ~y~Toggle: Hold ~PAD_RSTICK_ALL~ + Press ~PAD_LSTICK_ALL~");
}
else{
DISPLAY_TEXT_WITH_LITERAL_STRING(0.74, 0.9500, "STRING", "Game Streaming ~COL_NET_4~OFF ~y~Toggle: Hold ~PAD_RSTICK_ALL~ + Press ~PAD_LSTICK_ALL~");
}
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_STICK_LEFT) && IS_BUTTON_PRESSED(0,BUTTON_STICK_RIGHT)){
ALLOW_GAME_TO_PAUSE_FOR_STREAMING(true);
Streaming = !Streaming;
SWITCH_STREAMING(Streaming);
}
//SWITCH_STREAMING(Streaming);
WAIT(0);
}
}

View File

@@ -0,0 +1,20 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII
*/
#include <natives.h>
#include "MD_Base_Setup/MDB_Strings.h"
#include <common.h>
void main(){
THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
if(DOES_SCRIPT_EXIST("MD_Superior_Network"))Autoload("MD_Superior_Network",true);
else Autoload(GET_CURRENT_EPISODE() == TBOGT ? "network_main_rs" : "network_main",true);
Autoload("MD_Load_Mods",true);
WAIT(100);
TERMINATE_THIS_SCRIPT();
}

View File

@@ -0,0 +1,429 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//NOT DESIGNED FOR PC!!!!!
//int GET_PLAYER_ID_FOR_THIS_PED(Ped ped);
#include "inc/natives.h"
#include "MD_Compile_Settings.c"
#include "MD_Base_Setup/MDB_Strings.h"
#include "inc/common.h"
#include "inc/consts.h"
//#include "MD_Base_Setup/MDB_Supernet_Vars.h" //I'll declare my own here
//#include "MD_Security/MDS_Security.h" //we are releasing ghost for free right?
//#include "MD_Security/MDS_User_Verification.h" //meh?
bool Holyghost = false;
bool StopStreaming = false;
SwitchStreaming_Message = false;
SwitchStreaming_Toggle = false;
bool Streaming;
#define MDVersion_Txt_Size 0.19f,0.35f
#define GetBit(BitSet, bitIndex) IS_BIT_SET(BitSet, bitIndex)
#define SetBit(BitSet, bitIndex, bitValue) SetBitHelper(&BitSet, bitIndex, bitValue)
#define ToggleBit(BitSet, bitIndex) ToggleBitHelper(&BitSet, bitIndex)
void SetBitHelper(uint *BitSet, uint bitIndex, bool value){
if(value)SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
void ToggleBitHelper(uint *BitSet, uint bitIndex){
if(!IS_BIT_SET(*BitSet, bitIndex))SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
#define NORMAL_MODE 1
#define NORMAL_MODE_JOINED 2
#define GHOST_MODE_OBTAINING_HOST 3
#define GHOST_MODE_FOUND_HOST 4
#define GHOST_MODE_JOINED 5
//if dpad down is pressed in freemode, minimap does SET_RADAR_ZOOM( 980 ); on a loop for 5 seconds, then puts it back to 0, think it'll restore to 0 though auto..
int pPlayer,Mode,Episode,empty_slots,Glowing,minimap_tick = 0;
bool Glowing_Increment = false;
int Rotating360 = 1;
Texture radar;
int player_blip[MAX_PLAYERS];
//uint HasRegisteredRespawnBitSet;
bool Invalid_Player(const int playerid){ //should move to common.h
return (GET_HASH_KEY(GET_PLAYER_NAME(playerid)) == 2211124811 || HAS_NETWORK_PLAYER_LEFT_GAME(playerid)); //Invalid
}
void change_player(int modelp){
if(IS_MODEL_IN_CDIMAGE(modelp)){
REQUEST_MODEL(modelp);
float h;
GET_CHAR_HEADING(pPlayer,&h);
while(!HAS_MODEL_LOADED(modelp)) WAIT(0);
CHANGE_PLAYER_MODEL(GET_PLAYER_ID(), modelp);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelp);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_HEADING(pPlayer,h);
}
}
void Effects(void)
{
if(Glowing >= 190) Glowing_Increment = false;
if(Glowing <= 0) Glowing_Increment = true;
if(Glowing_Increment){
if(Glowing > 185) Glowing++;
else Glowing += 3;
}
else{
if(Glowing < 10) Glowing--;
else Glowing -= 3;
}
if (Rotating360 >= 360)Rotating360 = 0;
else Rotating360 += 5;
if(empty_slots == -2) DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 100, 100, 200);
else {
if(Holyghost)MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 255, Glowing, 255);
}
if(Mode == NORMAL_MODE)
{
Set_Up_Draw(0.2150f*2,0.3600f*2, Glowing, 255, Glowing, 255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining Normally");
}
else
{
Set_Up_Draw(0.2150f*2,0.3600f*2, 255, Glowing, Glowing, 255,0,0,0);
if(!Holyghost)DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Ghost");
else DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Holy Ghost");
}
}
char* CURRENT_GAME_MODES_SCRIPT_NAME(void)
{
int GameMode = NETWORK_GET_GAME_MODE();
//THIS DOES NOT TAKE INTO ACCOUNT SCRIPT NAME DIFFERENCES FROM 360/PS3 (if there are any)
//YET......
if(GameMode == GAME_MODE_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_quickdm";
}
else
{
return "deathmatch_cr";
}
//return ( (Episode == 2) ? "e2_deathmatch" : "deathmatch_cr");
}
else if(GameMode == GAME_MODE_TEAM_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_deathmatch";
}
else
{
return "deathmatch_cr";
}
}
else if(GameMode == GAME_MODE_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_CAR_JACK_CITY)
{
}
else if(GameMode == GAME_MODE_CAR_JACK_CITY)
{
//carsteal?
}
else if(GameMode == GAME_MODE_RACE)
{
if(Episode == 2)
{
return "e2_races";
}
else
{
return "races_cr";
}
//return ( (Episode == 2) ? "e2_races" : "races_cr");
}
else if(GameMode == GAME_MODE_PARTY_MODE)
{
if(Episode == 2)
{
return "e2_party_mode";
}
else
{
return "party_mode";
}
//return ( (Episode == 2) ? "e2_party_mode" : "party_mode");
}
else if(GameMode == GAME_MODE_COPS_AND_CROOKS)
{
}
else if(GameMode == GAME_MODE_TURF_WAR)
{
}
else if(GameMode == GAME_MODE_DEAL_BREAKER)
{
}
else if(GameMode == GAME_MODE_HANGMANS_NOOSE)
{
}
else if(GameMode == GAME_MODE_BOMB_DA_BASE_II)
{
return "coop_bombdbase";
}
else if(GameMode == GAME_MODE_FREE_MODE){
if(Episode == 2)return "e2_freemode";
else return "freemode_cr";
}
return "Unknown";
}
bool CAN_FIND_HOST()
{
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(GET_HOST_ID() != i || Invalid_Player(i)) continue;
//if(Invalid_Player(i)) continue;
if(Holyghost && Episode == 2){
MD_Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
}
return true;
}
return false;
}
//today, should check if gamemode returns int val correctly, if so make a char* GAME_MODES_SCRIPT_NAME(const int Gamemode)
void main(){
THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
REQUEST_STREAMED_TXD("network", 1);
FORCE_LOADING_SCREEN(false);
DO_SCREEN_FADE_IN(false);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_VISIBLE(pPlayer,true);
SET_CHAR_COORDINATES_NO_OFFSET(pPlayer, 2635.0f, 416.0f, 79.35f); //yes nathan got theze coords optimised nigga, tower top center for x & y
SET_CHAR_HEADING(pPlayer, 90.0f); //facing the city :)
SET_CAM_BEHIND_PED(pPlayer);
Episode = GET_CURRENT_EPISODE();
if(!IS_PLAYER_ONLINE())
{
Alert("~b~MD: ~s~You need to sign in before playing online.",false);
WAIT(3000);
SHOW_SIGNIN_UI();
WAIT(5000);
}
bool grabbed_input;
do
{
WAIT(0);
empty_slots = empty_player_slots();
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.45, "STRING", "~BLIP_77~ ~PAD_DPAD_RIGHT~ + ~PAD_A~ ~COL_NET_3~NORMAL MODE");
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.50, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_A~ ~COL_NET_4~GHOST MODE");
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.55, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_X~ ~COL_NET_1~HOLY GHOST MODE");
bool LEFT_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_DPAD_LEFT);
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_A) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) )
{
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
Mode = GHOST_MODE_OBTAINING_HOST;
WAIT(1250);//(was 1250)
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
}
else //normal mode
{
Holyghost = false;
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
else if(IS_BUTTON_JUST_PRESSED(0,BUTTON_X) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) ){
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
Mode = GHOST_MODE_OBTAINING_HOST;
Holyghost = true;
StopStreaming = true;
//Stop streaming Code comes here
WAIT(1250);//(was 1250)
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
}
else //normal mode
{
Holyghost = false;
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
}
while(!grabbed_input);
radar = GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_TOTALTIME");
//will have loaded by now..
while(true)
{
WAIT(0);
empty_slots = empty_player_slots(); //if needed idk
//iHost = GET_HOST_ID();
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer); //better than get player ped its poopy old.. literally this but only this is faster..
switch(Mode)
{
case GHOST_MODE_OBTAINING_HOST:
{
if(empty_slots >= 0 && CAN_FIND_HOST()) //found
{
Mode = GHOST_MODE_FOUND_HOST;
}
else
{
Effects();
}
}
break;
case GHOST_MODE_FOUND_HOST:
{
MD_Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
RELEASE_TEXTURE(radar);
Mode = GHOST_MODE_JOINED;
int GameMode = NETWORK_GET_GAME_MODE();
USE_PLAYER_COLOUR_INSTEAD_OF_TEAM_COLOUR( (GameMode == GAME_MODE_FREE_MODE) );
SWITCH_ARROW_ABOVE_BLIPPED_PICKUPS( (GameMode == GAME_MODE_FREE_MODE) || (GameMode == GAME_MODE_DEATHMATCH) || (GameMode == GAME_MODE_PARTY_MODE) );
SET_SYNC_WEATHER_AND_GAME_TIME(true); //for now itz fine
DISPLAY_FRONTEND_MAP_BLIPS(true); //pretty much all gamemodez i tinkle? //not doing anything :S
if(StopStreaming)
{
//ALLOW_GAME_TO_PAUSE_FOR_STREAMING(true);
//SWITCH_STREAMING(false);
SwitchStreaming_Message = true;
}
if(!Holyghost)
{
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID());
}
SET_PLAYER_CONTROL(GET_PLAYER_ID(),true);
//ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(iPlayer,true);
//NETWORK_SET_FRIENDLY_FIRE_OPTION(true);
SET_CHAR_HEALTH(pPlayer,500); //probably not needed
GIVE_WEAPON_TO_CHAR(pPlayer,WEAPON_UNARMED,AMMO_MAX,false); //i THINK its needed, unsure, best to have weapon tho..
ADD_TO_PREVIOUS_BRIEF("Chillout on GTA IV, only this time normal players don't know who you are!");
//ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(GET_PLAYER_ID(),true);
//NETWORK_SET_FRIENDLY_FIRE_OPTION(true);
}
break;
case GHOST_MODE_JOINED:
{
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(DOES_BLIP_EXIST(player_blip[i]) && Invalid_Player(i))
{
REMOVE_BLIP(player_blip[i]);
continue;
}
//else blah.. (i guess, we checking skip invalid and does blip exist twice..)
if(Invalid_Player(i) || DOES_BLIP_EXIST(player_blip[i]) || !PLAYER_HAS_CHAR(i)) continue;
ADD_BLIP_FOR_CHAR(PLAYER_CHAR(i),&player_blip[i]);
CHANGE_BLIP_COLOUR(player_blip[i],GET_PLAYER_COLOUR(i));
CHANGE_BLIP_PRIORITY(player_blip[i],3);
CHANGE_BLIP_NAME_FROM_ASCII(player_blip[i],GET_PLAYER_NAME(i));
CHANGE_BLIP_DISPLAY(player_blip[i], ( (i == GET_PLAYER_ID()) ? 0 : 2) );
}
if(IS_BUTTON_JUST_PRESSED(0,DPAD_DOWN)) //Minimap zoom (just like freemode does it) works flawless //flashes when scrolling and menu open (doesnt normally so)
{
//BUILT IN CRASH HOPEFULLY IF MENU STARTUP NOT FOUND!
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("menu_startup") < 1)
{
if(minimap_tick > GetTickCount())
{
minimap_tick = (GetTickCount() - 5000);
}
else
{
minimap_tick = (GetTickCount() + 5000);
}
}
}
if(minimap_tick > GetTickCount())
{
SET_RADAR_ZOOM(980);
}
else
{
if(minimap_tick != 0)
{
SET_RADAR_ZOOM(0); //no need to loop this me don't think
minimap_tick = 0;
}
}
if(IS_THIS_MACHINE_THE_SERVER()) //something seems to bust me outta ghost here..
{
Alert("~b~MD: ~s~You are now host, ghost is now useless, changing to normal mode.",true);
Mode = NORMAL_MODE_JOINED;
}
}
break;
case NORMAL_MODE:
{
Effects();
if(CAN_FIND_HOST()) Mode = NORMAL_MODE_JOINED;
}
break;
}
}
}

View File

@@ -0,0 +1,429 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//NOT DESIGNED FOR PC!!!!!
//int GET_PLAYER_ID_FOR_THIS_PED(Ped ped);
#include "inc/natives.h"
#include "MD_Compile_Settings.c"
#include "MD_Base_Setup/MDB_Strings.h"
#include "inc/common.h"
#include "inc/consts.h"
//#include "MD_Base_Setup/MDB_Supernet_Vars.h" //I'll declare my own here
//#include "MD_Security/MDS_Security.h" //we are releasing ghost for free right?
//#include "MD_Security/MDS_User_Verification.h" //meh?
bool Holyghost = false;
bool StopStreaming = false;
SwitchStreaming_Message = false;
SwitchStreaming_Toggle = false;
bool Streaming;
#define MDVersion_Txt_Size 0.19f,0.35f
#define GetBit(BitSet, bitIndex) IS_BIT_SET(BitSet, bitIndex)
#define SetBit(BitSet, bitIndex, bitValue) SetBitHelper(&BitSet, bitIndex, bitValue)
#define ToggleBit(BitSet, bitIndex) ToggleBitHelper(&BitSet, bitIndex)
void SetBitHelper(uint *BitSet, uint bitIndex, bool value){
if(value)SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
void ToggleBitHelper(uint *BitSet, uint bitIndex){
if(!IS_BIT_SET(*BitSet, bitIndex))SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
#define NORMAL_MODE 1
#define NORMAL_MODE_JOINED 2
#define GHOST_MODE_OBTAINING_HOST 3
#define GHOST_MODE_FOUND_HOST 4
#define GHOST_MODE_JOINED 5
//if dpad down is pressed in freemode, minimap does SET_RADAR_ZOOM( 980 ); on a loop for 5 seconds, then puts it back to 0, think it'll restore to 0 though auto..
int pPlayer,Mode,Episode,empty_slots,Glowing,minimap_tick = 0;
bool Glowing_Increment = false;
int Rotating360 = 1;
Texture radar;
int player_blip[MAX_PLAYERS];
//uint HasRegisteredRespawnBitSet;
bool Invalid_Player(const int playerid){ //should move to common.h
return (GET_HASH_KEY(GET_PLAYER_NAME(playerid)) == 2211124811 || HAS_NETWORK_PLAYER_LEFT_GAME(playerid)); //Invalid
}
void change_player(int modelp){
if(IS_MODEL_IN_CDIMAGE(modelp)){
REQUEST_MODEL(modelp);
float h;
GET_CHAR_HEADING(pPlayer,&h);
while(!HAS_MODEL_LOADED(modelp)) WAIT(0);
CHANGE_PLAYER_MODEL(GET_PLAYER_ID(), modelp);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelp);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_HEADING(pPlayer,h);
}
}
void Effects(void)
{
if(Glowing >= 190) Glowing_Increment = false;
if(Glowing <= 0) Glowing_Increment = true;
if(Glowing_Increment){
if(Glowing > 185) Glowing++;
else Glowing += 3;
}
else{
if(Glowing < 10) Glowing--;
else Glowing -= 3;
}
if (Rotating360 >= 360)Rotating360 = 0;
else Rotating360 += 5;
if(empty_slots == -2) DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 100, 100, 200);
else {
if(Holyghost)MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 255, Glowing, 255);
}
if(Mode == NORMAL_MODE)
{
Set_Up_Draw(0.2150f*2,0.3600f*2, Glowing, 255, Glowing, 255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining Normally");
}
else
{
Set_Up_Draw(0.2150f*2,0.3600f*2, 255, Glowing, Glowing, 255,0,0,0);
if(!Holyghost)DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Ghost");
else DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Holy Ghost");
}
}
char* CURRENT_GAME_MODES_SCRIPT_NAME(void)
{
int GameMode = NETWORK_GET_GAME_MODE();
//THIS DOES NOT TAKE INTO ACCOUNT SCRIPT NAME DIFFERENCES FROM 360/PS3 (if there are any)
//YET......
if(GameMode == GAME_MODE_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_quickdm";
}
else
{
return "deathmatch_cr";
}
//return ( (Episode == 2) ? "e2_deathmatch" : "deathmatch_cr");
}
else if(GameMode == GAME_MODE_TEAM_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_deathmatch";
}
else
{
return "deathmatch_cr";
}
}
else if(GameMode == GAME_MODE_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_CAR_JACK_CITY)
{
}
else if(GameMode == GAME_MODE_CAR_JACK_CITY)
{
//carsteal?
}
else if(GameMode == GAME_MODE_RACE)
{
if(Episode == 2)
{
return "e2_races";
}
else
{
return "races_cr";
}
//return ( (Episode == 2) ? "e2_races" : "races_cr");
}
else if(GameMode == GAME_MODE_PARTY_MODE)
{
if(Episode == 2)
{
return "e2_party_mode";
}
else
{
return "party_mode";
}
//return ( (Episode == 2) ? "e2_party_mode" : "party_mode");
}
else if(GameMode == GAME_MODE_COPS_AND_CROOKS)
{
}
else if(GameMode == GAME_MODE_TURF_WAR)
{
}
else if(GameMode == GAME_MODE_DEAL_BREAKER)
{
}
else if(GameMode == GAME_MODE_HANGMANS_NOOSE)
{
}
else if(GameMode == GAME_MODE_BOMB_DA_BASE_II)
{
return "coop_bombdbase";
}
else if(GameMode == GAME_MODE_FREE_MODE){
if(Episode == 2)return "e2_freemode";
else return "freemode_cr";
}
return "Unknown";
}
bool CAN_FIND_HOST()
{
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(GET_HOST_ID() != i || Invalid_Player(i)) continue;
//if(Invalid_Player(i)) continue;
if(Holyghost && Episode == 2){
MD_Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
}
return true;
}
return false;
}
//today, should check if gamemode returns int val correctly, if so make a char* GAME_MODES_SCRIPT_NAME(const int Gamemode)
void main(){
THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
REQUEST_STREAMED_TXD("network", 1);
FORCE_LOADING_SCREEN(false);
DO_SCREEN_FADE_IN(false);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_VISIBLE(pPlayer,true);
SET_CHAR_COORDINATES_NO_OFFSET(pPlayer, 2635.0f, 416.0f, 79.35f); //yes nathan got theze coords optimised nigga, tower top center for x & y
SET_CHAR_HEADING(pPlayer, 90.0f); //facing the city :)
SET_CAM_BEHIND_PED(pPlayer);
Episode = GET_CURRENT_EPISODE();
if(!IS_PLAYER_ONLINE())
{
Alert("~COL_NET_4~MD: ~s~You need to sign in before playing online.",false);
WAIT(3000);
SHOW_SIGNIN_UI();
WAIT(5000);
}
bool grabbed_input;
do
{
WAIT(0);
empty_slots = empty_player_slots();
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.45, "STRING", "~BLIP_77~ ~PAD_DPAD_RIGHT~ + ~PAD_A~ ~COL_NET_3~NORMAL MODE");
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.50, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_A~ ~COL_NET_4~GHOST MODE");
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.55, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_X~ ~COL_NET_1~HOLY GHOST MODE");
bool LEFT_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_DPAD_LEFT);
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_A) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) )
{
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
Mode = GHOST_MODE_OBTAINING_HOST;
WAIT(1250);//(was 1250)
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
}
else //normal mode
{
Holyghost = false;
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
else if(IS_BUTTON_JUST_PRESSED(0,BUTTON_X) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) ){
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
Mode = GHOST_MODE_OBTAINING_HOST;
Holyghost = true;
StopStreaming = true;
//Stop streaming Code comes here
WAIT(1250);//(was 1250)
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
}
else //normal mode
{
Holyghost = false;
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
}
while(!grabbed_input);
radar = GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_TOTALTIME");
//will have loaded by now..
while(true)
{
WAIT(0);
empty_slots = empty_player_slots(); //if needed idk
//iHost = GET_HOST_ID();
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer); //better than get player ped its poopy old.. literally this but only this is faster..
switch(Mode)
{
case GHOST_MODE_OBTAINING_HOST:
{
if(empty_slots >= 0 && CAN_FIND_HOST()) //found
{
Mode = GHOST_MODE_FOUND_HOST;
}
else
{
Effects();
}
}
break;
case GHOST_MODE_FOUND_HOST:
{
MD_Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
RELEASE_TEXTURE(radar);
Mode = GHOST_MODE_JOINED;
int GameMode = NETWORK_GET_GAME_MODE();
USE_PLAYER_COLOUR_INSTEAD_OF_TEAM_COLOUR( (GameMode == GAME_MODE_FREE_MODE) );
SWITCH_ARROW_ABOVE_BLIPPED_PICKUPS( (GameMode == GAME_MODE_FREE_MODE) || (GameMode == GAME_MODE_DEATHMATCH) || (GameMode == GAME_MODE_PARTY_MODE) );
SET_SYNC_WEATHER_AND_GAME_TIME(true); //for now itz fine
DISPLAY_FRONTEND_MAP_BLIPS(true); //pretty much all gamemodez i tinkle? //not doing anything :S
if(StopStreaming)
{
//ALLOW_GAME_TO_PAUSE_FOR_STREAMING(true);
//SWITCH_STREAMING(false);
SwitchStreaming_Message = true;
}
if(!Holyghost)
{
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID());
}
SET_PLAYER_CONTROL(GET_PLAYER_ID(),true);
//ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(iPlayer,true);
//NETWORK_SET_FRIENDLY_FIRE_OPTION(true);
SET_CHAR_HEALTH(pPlayer,500); //probably not needed
GIVE_WEAPON_TO_CHAR(pPlayer,WEAPON_UNARMED,AMMO_MAX,false); //i THINK its needed, unsure, best to have weapon tho..
ADD_TO_PREVIOUS_BRIEF("Chillout on GTA IV, only this time normal players don't know who you are!");
//ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(GET_PLAYER_ID(),true);
//NETWORK_SET_FRIENDLY_FIRE_OPTION(true);
}
break;
case GHOST_MODE_JOINED:
{
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(DOES_BLIP_EXIST(player_blip[i]) && Invalid_Player(i))
{
REMOVE_BLIP(player_blip[i]);
continue;
}
//else blah.. (i guess, we checking skip invalid and does blip exist twice..)
if(Invalid_Player(i) || DOES_BLIP_EXIST(player_blip[i]) || !PLAYER_HAS_CHAR(i)) continue;
ADD_BLIP_FOR_CHAR(PLAYER_CHAR(i),&player_blip[i]);
CHANGE_BLIP_COLOUR(player_blip[i],GET_PLAYER_COLOUR(i));
CHANGE_BLIP_PRIORITY(player_blip[i],3);
CHANGE_BLIP_NAME_FROM_ASCII(player_blip[i],GET_PLAYER_NAME(i));
CHANGE_BLIP_DISPLAY(player_blip[i], ( (i == GET_PLAYER_ID()) ? 0 : 2) );
}
if(IS_BUTTON_JUST_PRESSED(0,DPAD_DOWN)) //Minimap zoom (just like freemode does it) works flawless //flashes when scrolling and menu open (doesnt normally so)
{
//BUILT IN CRASH HOPEFULLY IF MENU STARTUP NOT FOUND!
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("menu_startup") < 1)
{
if(minimap_tick > GetTickCount())
{
minimap_tick = (GetTickCount() - 5000);
}
else
{
minimap_tick = (GetTickCount() + 5000);
}
}
}
if(minimap_tick > GetTickCount())
{
SET_RADAR_ZOOM(980);
}
else
{
if(minimap_tick != 0)
{
SET_RADAR_ZOOM(0); //no need to loop this me don't think
minimap_tick = 0;
}
}
if(IS_THIS_MACHINE_THE_SERVER()) //something seems to bust me outta ghost here..
{
Alert("~COL_NET_4~MD: ~s~You are now host, ghost is now useless, changing to normal mode.",true);
Mode = NORMAL_MODE_JOINED;
}
}
break;
case NORMAL_MODE:
{
Effects();
if(CAN_FIND_HOST()) Mode = NORMAL_MODE_JOINED;
}
break;
}
}
}

View File

@@ -0,0 +1,546 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII
*/
//NOT DESIGNED FOR PC!!!!!
//int GET_PLAYER_ID_FOR_THIS_PED(Ped ped);
#include <natives.h>
#include "MD_Compile_Settings.c"
#include "MD_Base_Setup/MDB_Strings.h"
#include <common.h>
#include <consts.h> //for max players degine based on ifdef VERSION_PC
//#include "MD_Base_Setup/MDB_Supernet_Vars.h" //I'll declare my own here
//#include "MD_Security/MDS_Security.h" //we are releasing ghost for free right?
//#include "MD_Security/MDS_User_Verification.h" //meh?
#define GetBit(BitSet, bitIndex) IS_BIT_SET(BitSet, bitIndex)
#define SetBit(BitSet, bitIndex, bitValue) SetBitHelper(&BitSet, bitIndex, bitValue)
#define ToggleBit(BitSet, bitIndex) ToggleBitHelper(&BitSet, bitIndex)
void SetBitHelper(uint *BitSet, uint bitIndex, bool value)
{
if(value)
{
SET_BIT(&*BitSet, bitIndex);
}
else
{
CLEAR_BIT(&*BitSet, bitIndex);
}
}
void ToggleBitHelper(uint *BitSet, uint bitIndex)
{
if(!IS_BIT_SET(*BitSet, bitIndex))
{
SET_BIT(&*BitSet, bitIndex);
}
else
{
CLEAR_BIT(&*BitSet, bitIndex);
}
}
#define NORMAL_MODE 1
#define NORMAL_MODE_JOINED 2
#define GHOST_MODE_OBTAINING_HOST 3
#define GHOST_MODE_FOUND_HOST 4
#define GHOST_MODE_JOINED 5
//if dpad down is pressed in freemode, minimap does SET_RADAR_ZOOM( 980 ); on a loop for 5 seconds, then puts it back to 0, think it'll restore to 0 though auto..
int pPlayer,Mode,Episode,empty_slots,Glowing,minimap_tick = 0;
bool Glowing_Increment = false;
int Rotating360 = 1;
Texture radar;
int player_blip[MAX_PLAYERS];
//uint HasRegisteredRespawnBitSet;
bool Invalid_Player(const int playerid){ //should move to common.h
return (GET_HASH_KEY(GET_PLAYER_NAME(playerid)) == 2211124811 || HAS_NETWORK_PLAYER_LEFT_GAME(playerid)); //Invalid
}
void change_player(int modelp){
if(IS_MODEL_IN_CDIMAGE(modelp)){
REQUEST_MODEL(modelp);
float h;
GET_CHAR_HEADING(pPlayer,&h);
while(!HAS_MODEL_LOADED(modelp)) WAIT(0);
CHANGE_PLAYER_MODEL(GET_PLAYER_ID(), modelp);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelp);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_HEADING(pPlayer,h);
}
//else Alert("~BLIP_76~ ~COL_NET_4~ Error! ~w~Model Is Missing From Your ISO! ~n~Action Could Not Be Performed!", false);
//if this needs a print make it proppah
}
void Effects(void)
{
if(Glowing >= 190) Glowing_Increment = false;
if(Glowing <= 0) Glowing_Increment = true;
if(Glowing_Increment){
if(Glowing > 185) Glowing++;
else Glowing += 3;
}
else{
if(Glowing < 10) Glowing--;
else Glowing -= 3;
}
if (Rotating360 >= 360)Rotating360 = 0;
else Rotating360 += 5;
if(empty_slots == -2) DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 100, 100, 200);
else DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 255, Glowing, 255);
if(Mode == NORMAL_MODE)
{
Set_Up_Draw(0.2150f*2,0.3600f*2, Glowing, 255, Glowing, 255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining Normally");
}
else
{
Set_Up_Draw(0.2150f*2,0.3600f*2, 255, Glowing, Glowing, 255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Ghost");
}
}
char* CURRENT_GAME_MODES_SCRIPT_NAME(void)
{
int GameMode = NETWORK_GET_GAME_MODE();
//THIS DOES NOT TAKE INTO ACCOUNT SCRIPT NAME DIFFERENCES FROM 360/PS3 (if there are any)
//YET......
if(GameMode == GAME_MODE_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_quickdm";
}
else
{
return "deathmatch_cr";
}
//return ( (Episode == 2) ? "e2_deathmatch" : "deathmatch_cr");
}
else if(GameMode == GAME_MODE_TEAM_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_deathmatch";
}
else
{
return "deathmatch_cr";
}
}
else if(GameMode == GAME_MODE_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_CAR_JACK_CITY)
{
}
else if(GameMode == GAME_MODE_CAR_JACK_CITY)
{
//carsteal?
}
else if(GameMode == GAME_MODE_RACE)
{
if(Episode == 2)
{
return "e2_races";
}
else
{
return "races_cr";
}
//return ( (Episode == 2) ? "e2_races" : "races_cr");
}
else if(GameMode == GAME_MODE_PARTY_MODE)
{
if(Episode == 2)
{
return "e2_party_mode";
}
else
{
return "party_mode";
}
//return ( (Episode == 2) ? "e2_party_mode" : "party_mode");
}
else if(GameMode == GAME_MODE_COPS_AND_CROOKS)
{
}
else if(GameMode == GAME_MODE_TURF_WAR)
{
}
else if(GameMode == GAME_MODE_DEAL_BREAKER)
{
}
else if(GameMode == GAME_MODE_HANGMANS_NOOSE)
{
}
else if(GameMode == GAME_MODE_BOMB_DA_BASE_II)
{
return "coop_bombdbase";
}
else if(GameMode == GAME_MODE_FREE_MODE)
{
if(Episode == 2)
{
return "e2_freemode";
}
else
{
return "freemode_cr";
}
//return ( (Episode == 2) ? "e2_freemode" : "freemode_cr");
}
else
{
return "Unknown";
}
}
bool CAN_FIND_HOST()
{
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(GET_HOST_ID() != i || Invalid_Player(i)) continue;
//if(Invalid_Player(i)) continue;
return true;
}
return false;
}
//today, should check if gamemode returns int val correctly, if so make a char* GAME_MODES_SCRIPT_NAME(const int Gamemode)
void main()
{
THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
REQUEST_STREAMED_TXD("network", 1);
FORCE_LOADING_SCREEN(false);
DO_SCREEN_FADE_IN(false);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_VISIBLE(pPlayer,true);
SET_CHAR_COORDINATES_NO_OFFSET(pPlayer, 2635.0f, 416.0f, 79.35f); //yes nathan got theze coords optimised nigga, tower top center for x & y
SET_CHAR_HEADING(pPlayer, 90.0f); //facing the city :)
SET_CAM_BEHIND_PED(pPlayer);
AutoLoad("MD_Trident");
Episode = GET_CURRENT_EPISODE();
if(!IS_PLAYER_ONLINE())
{
Alert("~b~MD: ~s~You need to sign in before playing online.",false);
WAIT(3000);
SHOW_SIGNIN_UI();
WAIT(5000);
}
bool grabbed_input;
do
{
WAIT(0);
empty_slots = empty_player_slots();
//Set_Up_Draw(0.2500f,0.3600f,255,255,255,255,0,0,0);
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0); //as 2500f is a lil to the left.. if it's too far right, we adjust it
DISPLAY_TEXT_WITH_LITERAL_STRING(0.3, 0.5, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_A~ ~r~GHOST MODE ~s~/ ~PAD_DPAD_RIGHT~ + ~PAD_A~ ~g~NORMAL MODE");
bool LEFT_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_DPAD_LEFT);
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_A) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) )
{
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
WAIT(1250);
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
Mode = GHOST_MODE_OBTAINING_HOST;
}
else //normal mode
{
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
}
while(!grabbed_input);
radar = GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_TOTALTIME");
//will have loaded by now..
while(true)
{
WAIT(0);
empty_slots = empty_player_slots(); //if needed idk
//iHost = GET_HOST_ID();
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer); //better than get player ped its poopy old.. literally this but only this is faster..
if(Mode == GHOST_MODE_OBTAINING_HOST)
{
//if(CAN_FIND_HOST())
if(empty_slots >= 0 && CAN_FIND_HOST()) //found
{
Mode = GHOST_MODE_FOUND_HOST;
}
else
{
Effects();
}
}
else if(Mode == GHOST_MODE_FOUND_HOST)
{
Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main"); //for tests //you sure we gotta terminate this?
Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
RELEASE_TEXTURE(radar);
Mode = GHOST_MODE_JOINED;
int GameMode = NETWORK_GET_GAME_MODE();
USE_PLAYER_COLOUR_INSTEAD_OF_TEAM_COLOUR( (GameMode == GAME_MODE_FREE_MODE) );
SWITCH_ARROW_ABOVE_BLIPPED_PICKUPS( (GameMode == GAME_MODE_FREE_MODE) || (GameMode == GAME_MODE_DEATHMATCH) || (GameMode == GAME_MODE_PARTY_MODE) );
SET_SYNC_WEATHER_AND_GAME_TIME(true); //for now itz fine
DISPLAY_FRONTEND_MAP_BLIPS(true); //pretty much all gamemodez i tinkle? //not doing anything :S
//CHANGE_BLIP_TEAM_RELEVANCE(int blip, int relevance); //not used anywher
// DISPLAY_CASH(bool);
/*
SWITCH_ARROW_ABOVE_BLIPPED_PICKUPS(true); //freemode = true, deathmatch = true, party mode = true, carsteal = true,
//DISPLAY_FRONTEND_MAP_BLIPS(true); //doesn't seem important
SET_SYNC_WEATHER_AND_GAME_TIME(true);
SET_TEXT_DRAW_BEFORE_FADE(true);
SET_SPRITES_DRAW_BEFORE_FADE(true);
DISPLAY_PLAYER_NAMES(true); //don't think needed
//below = from freemode
SET_PLAYERS_DROP_MONEY_IN_NETWORK_GAME( 0 ); ////////
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 3, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 1, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 7, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 9, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 10, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 11, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 12, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 13, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 14, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 15, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 16, 60000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 17, 60000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 18, 60000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 4, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 5, 30000 );
sub_206655( uParam0 );
SET_HEALTH_PICKUP_NETWORK_REGEN_TIME( 60000 );
sub_212039( uParam0 );
SET_ARMOUR_PICKUP_NETWORK_REGEN_TIME( 60000 );
SWITCH_ARROW_ABOVE_BLIPPED_PICKUPS( 1 );
*/
//SET_PLAYER_CONTROL(GET_PLAYER_ID(),true);
//GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
//FREEZE_CHAR_POSITION(pPlayer,false);
//DETACH_PED(pPlayer,true);
//WAIT(0);
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID());
SET_PLAYER_CONTROL(GET_PLAYER_ID(),true);
//ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(iPlayer,true);
//NETWORK_SET_FRIENDLY_FIRE_OPTION(true);
SET_CHAR_HEALTH(pPlayer,500); //probably not needed
GIVE_WEAPON_TO_CHAR(pPlayer,WEAPON_UNARMED,AMMO_MAX,false); //i THINK its needed, unsure, best to have weapon tho..
ADD_TO_PREVIOUS_BRIEF("Chillout on GTA IV, only this time normal players don't know who you are!");
//add weapons is only thing after this
}
else if(Mode == GHOST_MODE_JOINED)
{
//ADD_BLIP_FOR_WEAPON(float x, float y, float z, int *blip);
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(DOES_BLIP_EXIST(player_blip[i]) && Invalid_Player(i))
{
REMOVE_BLIP(player_blip[i]);
continue;
}
//else blah.. (i guess, we checking skip invalid and does blip exist twice..)
if(Invalid_Player(i) || DOES_BLIP_EXIST(player_blip[i]) || !PLAYER_HAS_CHAR(i)) continue;
ADD_BLIP_FOR_CHAR(PLAYER_CHAR(i),&player_blip[i]);
CHANGE_BLIP_COLOUR(player_blip[i],GET_PLAYER_COLOUR(i));
CHANGE_BLIP_PRIORITY(player_blip[i],3);
CHANGE_BLIP_NAME_FROM_ASCII(player_blip[i],GET_PLAYER_NAME(i));
CHANGE_BLIP_DISPLAY(player_blip[i], ( (i == GET_PLAYER_ID()) ? 0 : 2) );
/*
if(i == GET_PLAYER_ID())
{
CHANGE_BLIP_DISPLAY(player_blip[i], 0);
}
else
{
CHANGE_BLIP_DISPLAY(player_blip[i], 2); //self = 0, other players = 2
}
*/
}
if(IS_BUTTON_JUST_PRESSED(0,DPAD_DOWN)) //Minimap zoom (just like freemode does it) works flawless //flashes when scrolling and menu open (doesnt normally so)
{
//BUILT IN CRASH HOPEFULLY IF MENU STARTUP NOT FOUND!
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("menu_startup") < 1)
{
if(minimap_tick > GetTickCount())
{
minimap_tick = (GetTickCount() - 5000);
}
else
{
minimap_tick = (GetTickCount() + 5000);
}
}
}
if(minimap_tick > GetTickCount())
{
SET_RADAR_ZOOM(980);
}
else
{
if(minimap_tick != 0)
{
SET_RADAR_ZOOM(0); //no need to loop this me don't think
minimap_tick = 0;
}
}
/*
if(IS_CHAR_DEAD(pPlayer)) //useless, when you die = join for everyone
{
//load gamemode script? :P
int model
GET_CHAR_MODEL(pPlayer,&model);
change_player(model)
REVIVE_INJURED_PED(pPlayer); //testing
Alert("Revived self test complete",false);
}
*/
if(IS_THIS_MACHINE_THE_SERVER()) //something seems to bust me outta ghost here..
{
Alert("~b~MD: ~s~You are now host, ghost is now useless, changing to normal mode.",true);
//Autoload(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false); //FREEZZ //gonna try it on itz own
//REQUEST_SCRIPT(CURRENT_GAME_MODES_SCRIPT_NAME());
//while(!HAS_SCRIPT_LOADED(CURRENT_GAME_MODES_SCRIPT_NAME())) WAIT(0);
//START_NEW_SCRIPT(CURRENT_GAME_MODES_SCRIPT_NAME(),20240);
//MARK_SCRIPT_AS_NO_LONGER_NEEDED(CURRENT_GAME_MODES_SCRIPT_NAME());
//need to load gamemode script with a stupid stacksize (as rockstar uses stupid amount of vars per script).
//1024 is not enough, for freemode rockstar uses 20240
//Autoload(CURRENT_GAME_MODES_SCRIPT_NAME(),false); //FREEEZ //stacksize too small
//SET_THIS_MACHINE_RUNNING_SERVER_SCRIPT(true);
Mode = NORMAL_MODE_JOINED;
/*
for(i = 0; i < MAX_PLAYERS; i++)
{
if(!DOES_BLIP_EXIST(player_blip[i])) continue;
REMOVE_BLIP(player_blip[i]); //gamemode will manage it now..
} */
//20240 = game mode script stack size given, if we start with 1024, probably crash? :S //yes this caused freezing before when testing with ap ii
//Autoload()
/*
for(i = 0; i < MAX_PLAYERS; i++)
{
if(i == GET_PLAYER_ID()) continue;
if(PLAYER_WANTS_TO_JOIN_NETWORK_GAME(i)) //skip self maybe?
{
WAIT(1000);
TELL_NET_PLAYER_TO_START_PLAYING(i,0); //as in fremode
Alert_Two("TELL NET PLAYER TO START PLAYING",GET_PLAYER_NAME(i),true);
}
if(Invalid_Player(i) || !PLAYER_HAS_CHAR(i)) continue;
if(IS_CHAR_DEAD(PLAYER_CHAR(i)))
{
if(LOAD_ALL_PATH_NODES(1))
{
FLUSH_ALL_SPAWN_BLOCKING_AREAS();
if(!GetBit(HasRegisteredRespawnBitSet,i))
{
Alert_Two("REGISTER PLAYER RESPAWN COORDS",GET_PLAYER_NAME(i),true);
REGISTER_PLAYER_RESPAWN_COORDS(i,2290.65f, (476.5f + TO_FLOAT(i)), 6.05f);
SetBit(HasRegisteredRespawnBitSet,i,true);
}
}
}
else
{
SetBit(HasRegisteredRespawnBitSet,i,false);
}
}*/
}
/*void sub_9772()
{
int I;
unknown uVar3;
for ( I = 0; I < 32; I++ )
{
if (PLAYER_WANTS_TO_JOIN_NETWORK_GAME( I ))
{
TELL_NET_PLAYER_TO_START_PLAYING( I, 0 );
}
}
return;
}*/
/*
if(CAN_FIND_HOST()) //should make this return an int or something..
{
if(lastHostID != GET_HOST_ID())
{
lastHostID = GET_HOST_ID();
SET_THIS_MACHINE_RUNNING_SERVER_SCRIPT(IS_THIS_MACHINE_THE_SERVER()); //pulls you out of ghost, players = unable to join/respawn still.
//probably gonna have to figure out how to tell net correctly and when to resurrect.. fuck
}
}
*/
//in fremode, iwhen join and end up host players dont respawn, and people joining don't get spawned in so
/*int sub_4842()
{
if (IS_THIS_MACHINE_THE_SERVER())
{
SET_THIS_MACHINE_RUNNING_SERVER_SCRIPT( 1 );
return 1;
}
return 0;
}
void sub_5006()
{
SET_THIS_MACHINE_RUNNING_SERVER_SCRIPT( 0 );
return;
}*/
}
else if(Mode == NORMAL_MODE)
{
Effects();
if(CAN_FIND_HOST()) //found
{
Mode = NORMAL_MODE_JOINED;
}
}
}
}

View File

@@ -0,0 +1,546 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII
*/
//NOT DESIGNED FOR PC!!!!!
//int GET_PLAYER_ID_FOR_THIS_PED(Ped ped);
#include <natives.h>
#include "MD_Compile_Settings.c"
#include "MD_Base_Setup/MDB_Strings.h"
#include <common.h>
#include <consts.h> //for max players degine based on ifdef VERSION_PC
//#include "MD_Base_Setup/MDB_Supernet_Vars.h" //I'll declare my own here
//#include "MD_Security/MDS_Security.h" //we are releasing ghost for free right?
//#include "MD_Security/MDS_User_Verification.h" //meh?
#define GetBit(BitSet, bitIndex) IS_BIT_SET(BitSet, bitIndex)
#define SetBit(BitSet, bitIndex, bitValue) SetBitHelper(&BitSet, bitIndex, bitValue)
#define ToggleBit(BitSet, bitIndex) ToggleBitHelper(&BitSet, bitIndex)
void SetBitHelper(uint *BitSet, uint bitIndex, bool value)
{
if(value)
{
SET_BIT(&*BitSet, bitIndex);
}
else
{
CLEAR_BIT(&*BitSet, bitIndex);
}
}
void ToggleBitHelper(uint *BitSet, uint bitIndex)
{
if(!IS_BIT_SET(*BitSet, bitIndex))
{
SET_BIT(&*BitSet, bitIndex);
}
else
{
CLEAR_BIT(&*BitSet, bitIndex);
}
}
#define NORMAL_MODE 1
#define NORMAL_MODE_JOINED 2
#define GHOST_MODE_OBTAINING_HOST 3
#define GHOST_MODE_FOUND_HOST 4
#define GHOST_MODE_JOINED 5
//if dpad down is pressed in freemode, minimap does SET_RADAR_ZOOM( 980 ); on a loop for 5 seconds, then puts it back to 0, think it'll restore to 0 though auto..
int pPlayer,Mode,Episode,empty_slots,Glowing,minimap_tick = 0;
bool Glowing_Increment = false;
int Rotating360 = 1;
Texture radar;
int player_blip[MAX_PLAYERS];
//uint HasRegisteredRespawnBitSet;
bool Invalid_Player(const int playerid){ //should move to common.h
return (GET_HASH_KEY(GET_PLAYER_NAME(playerid)) == 2211124811 || HAS_NETWORK_PLAYER_LEFT_GAME(playerid)); //Invalid
}
void change_player(int modelp){
if(IS_MODEL_IN_CDIMAGE(modelp)){
REQUEST_MODEL(modelp);
float h;
GET_CHAR_HEADING(pPlayer,&h);
while(!HAS_MODEL_LOADED(modelp)) WAIT(0);
CHANGE_PLAYER_MODEL(GET_PLAYER_ID(), modelp);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelp);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_HEADING(pPlayer,h);
}
//else Alert("~BLIP_76~ ~COL_NET_4~ Error! ~w~Model Is Missing From Your ISO! ~n~Action Could Not Be Performed!", false);
//if this needs a print make it proppah
}
void Effects(void)
{
if(Glowing >= 190) Glowing_Increment = false;
if(Glowing <= 0) Glowing_Increment = true;
if(Glowing_Increment){
if(Glowing > 185) Glowing++;
else Glowing += 3;
}
else{
if(Glowing < 10) Glowing--;
else Glowing -= 3;
}
if (Rotating360 >= 360)Rotating360 = 0;
else Rotating360 += 5;
if(empty_slots == -2) DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 100, 100, 200);
else DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 255, Glowing, 255);
if(Mode == NORMAL_MODE)
{
Set_Up_Draw(0.2150f*2,0.3600f*2, Glowing, 255, Glowing, 255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining Normally");
}
else
{
Set_Up_Draw(0.2150f*2,0.3600f*2, 255, Glowing, Glowing, 255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Ghost");
}
}
char* CURRENT_GAME_MODES_SCRIPT_NAME(void)
{
int GameMode = NETWORK_GET_GAME_MODE();
//THIS DOES NOT TAKE INTO ACCOUNT SCRIPT NAME DIFFERENCES FROM 360/PS3 (if there are any)
//YET......
if(GameMode == GAME_MODE_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_quickdm";
}
else
{
return "deathmatch_cr";
}
//return ( (Episode == 2) ? "e2_deathmatch" : "deathmatch_cr");
}
else if(GameMode == GAME_MODE_TEAM_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_deathmatch";
}
else
{
return "deathmatch_cr";
}
}
else if(GameMode == GAME_MODE_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_CAR_JACK_CITY)
{
}
else if(GameMode == GAME_MODE_CAR_JACK_CITY)
{
//carsteal?
}
else if(GameMode == GAME_MODE_RACE)
{
if(Episode == 2)
{
return "e2_races";
}
else
{
return "races_cr";
}
//return ( (Episode == 2) ? "e2_races" : "races_cr");
}
else if(GameMode == GAME_MODE_PARTY_MODE)
{
if(Episode == 2)
{
return "e2_party_mode";
}
else
{
return "party_mode";
}
//return ( (Episode == 2) ? "e2_party_mode" : "party_mode");
}
else if(GameMode == GAME_MODE_COPS_AND_CROOKS)
{
}
else if(GameMode == GAME_MODE_TURF_WAR)
{
}
else if(GameMode == GAME_MODE_DEAL_BREAKER)
{
}
else if(GameMode == GAME_MODE_HANGMANS_NOOSE)
{
}
else if(GameMode == GAME_MODE_BOMB_DA_BASE_II)
{
return "coop_bombdbase";
}
else if(GameMode == GAME_MODE_FREE_MODE)
{
if(Episode == 2)
{
return "e2_freemode";
}
else
{
return "freemode_cr";
}
//return ( (Episode == 2) ? "e2_freemode" : "freemode_cr");
}
else
{
return "Unknown";
}
}
bool CAN_FIND_HOST()
{
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(GET_HOST_ID() != i || Invalid_Player(i)) continue;
//if(Invalid_Player(i)) continue;
return true;
}
return false;
}
//today, should check if gamemode returns int val correctly, if so make a char* GAME_MODES_SCRIPT_NAME(const int Gamemode)
void main()
{
THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
REQUEST_STREAMED_TXD("network", 1);
FORCE_LOADING_SCREEN(false);
DO_SCREEN_FADE_IN(false);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_VISIBLE(pPlayer,true);
SET_CHAR_COORDINATES_NO_OFFSET(pPlayer, 2635.0f, 416.0f, 79.35f); //yes nathan got theze coords optimised nigga, tower top center for x & y
SET_CHAR_HEADING(pPlayer, 90.0f); //facing the city :)
SET_CAM_BEHIND_PED(pPlayer);
AutoLoad("MD_Trident");
Episode = GET_CURRENT_EPISODE();
if(!IS_PLAYER_ONLINE())
{
Alert("~COL_NET_4~MD: ~s~You need to sign in before playing online.",false);
WAIT(3000);
SHOW_SIGNIN_UI();
WAIT(5000);
}
bool grabbed_input;
do
{
WAIT(0);
empty_slots = empty_player_slots();
//Set_Up_Draw(0.2500f,0.3600f,255,255,255,255,0,0,0);
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0); //as 2500f is a lil to the left.. if it's too far right, we adjust it
DISPLAY_TEXT_WITH_LITERAL_STRING(0.3, 0.5, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_A~ ~r~GHOST MODE ~s~/ ~PAD_DPAD_RIGHT~ + ~PAD_A~ ~g~NORMAL MODE");
bool LEFT_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_DPAD_LEFT);
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_A) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) )
{
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
WAIT(1250);
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
Mode = GHOST_MODE_OBTAINING_HOST;
}
else //normal mode
{
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
}
while(!grabbed_input);
radar = GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_TOTALTIME");
//will have loaded by now..
while(true)
{
WAIT(0);
empty_slots = empty_player_slots(); //if needed idk
//iHost = GET_HOST_ID();
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer); //better than get player ped its poopy old.. literally this but only this is faster..
if(Mode == GHOST_MODE_OBTAINING_HOST)
{
//if(CAN_FIND_HOST())
if(empty_slots >= 0 && CAN_FIND_HOST()) //found
{
Mode = GHOST_MODE_FOUND_HOST;
}
else
{
Effects();
}
}
else if(Mode == GHOST_MODE_FOUND_HOST)
{
Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main"); //for tests //you sure we gotta terminate this?
Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
RELEASE_TEXTURE(radar);
Mode = GHOST_MODE_JOINED;
int GameMode = NETWORK_GET_GAME_MODE();
USE_PLAYER_COLOUR_INSTEAD_OF_TEAM_COLOUR( (GameMode == GAME_MODE_FREE_MODE) );
SWITCH_ARROW_ABOVE_BLIPPED_PICKUPS( (GameMode == GAME_MODE_FREE_MODE) || (GameMode == GAME_MODE_DEATHMATCH) || (GameMode == GAME_MODE_PARTY_MODE) );
SET_SYNC_WEATHER_AND_GAME_TIME(true); //for now itz fine
DISPLAY_FRONTEND_MAP_BLIPS(true); //pretty much all gamemodez i tinkle? //not doing anything :S
//CHANGE_BLIP_TEAM_RELEVANCE(int blip, int relevance); //not used anywher
// DISPLAY_CASH(bool);
/*
SWITCH_ARROW_ABOVE_BLIPPED_PICKUPS(true); //freemode = true, deathmatch = true, party mode = true, carsteal = true,
//DISPLAY_FRONTEND_MAP_BLIPS(true); //doesn't seem important
SET_SYNC_WEATHER_AND_GAME_TIME(true);
SET_TEXT_DRAW_BEFORE_FADE(true);
SET_SPRITES_DRAW_BEFORE_FADE(true);
DISPLAY_PLAYER_NAMES(true); //don't think needed
//below = from freemode
SET_PLAYERS_DROP_MONEY_IN_NETWORK_GAME( 0 ); ////////
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 3, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 1, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 7, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 9, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 10, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 11, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 12, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 13, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 14, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 15, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 16, 60000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 17, 60000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 18, 60000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 4, 30000 );
SET_WEAPON_PICKUP_NETWORK_REGEN_TIME( 5, 30000 );
sub_206655( uParam0 );
SET_HEALTH_PICKUP_NETWORK_REGEN_TIME( 60000 );
sub_212039( uParam0 );
SET_ARMOUR_PICKUP_NETWORK_REGEN_TIME( 60000 );
SWITCH_ARROW_ABOVE_BLIPPED_PICKUPS( 1 );
*/
//SET_PLAYER_CONTROL(GET_PLAYER_ID(),true);
//GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
//FREEZE_CHAR_POSITION(pPlayer,false);
//DETACH_PED(pPlayer,true);
//WAIT(0);
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID());
SET_PLAYER_CONTROL(GET_PLAYER_ID(),true);
//ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(iPlayer,true);
//NETWORK_SET_FRIENDLY_FIRE_OPTION(true);
SET_CHAR_HEALTH(pPlayer,500); //probably not needed
GIVE_WEAPON_TO_CHAR(pPlayer,WEAPON_UNARMED,AMMO_MAX,false); //i THINK its needed, unsure, best to have weapon tho..
ADD_TO_PREVIOUS_BRIEF("Chillout on GTA IV, only this time normal players don't know who you are!");
//add weapons is only thing after this
}
else if(Mode == GHOST_MODE_JOINED)
{
//ADD_BLIP_FOR_WEAPON(float x, float y, float z, int *blip);
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(DOES_BLIP_EXIST(player_blip[i]) && Invalid_Player(i))
{
REMOVE_BLIP(player_blip[i]);
continue;
}
//else blah.. (i guess, we checking skip invalid and does blip exist twice..)
if(Invalid_Player(i) || DOES_BLIP_EXIST(player_blip[i]) || !PLAYER_HAS_CHAR(i)) continue;
ADD_BLIP_FOR_CHAR(PLAYER_CHAR(i),&player_blip[i]);
CHANGE_BLIP_COLOUR(player_blip[i],GET_PLAYER_COLOUR(i));
CHANGE_BLIP_PRIORITY(player_blip[i],3);
CHANGE_BLIP_NAME_FROM_ASCII(player_blip[i],GET_PLAYER_NAME(i));
CHANGE_BLIP_DISPLAY(player_blip[i], ( (i == GET_PLAYER_ID()) ? 0 : 2) );
/*
if(i == GET_PLAYER_ID())
{
CHANGE_BLIP_DISPLAY(player_blip[i], 0);
}
else
{
CHANGE_BLIP_DISPLAY(player_blip[i], 2); //self = 0, other players = 2
}
*/
}
if(IS_BUTTON_JUST_PRESSED(0,DPAD_DOWN)) //Minimap zoom (just like freemode does it) works flawless //flashes when scrolling and menu open (doesnt normally so)
{
//BUILT IN CRASH HOPEFULLY IF MENU STARTUP NOT FOUND!
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("menu_startup") < 1)
{
if(minimap_tick > GetTickCount())
{
minimap_tick = (GetTickCount() - 5000);
}
else
{
minimap_tick = (GetTickCount() + 5000);
}
}
}
if(minimap_tick > GetTickCount())
{
SET_RADAR_ZOOM(980);
}
else
{
if(minimap_tick != 0)
{
SET_RADAR_ZOOM(0); //no need to loop this me don't think
minimap_tick = 0;
}
}
/*
if(IS_CHAR_DEAD(pPlayer)) //useless, when you die = join for everyone
{
//load gamemode script? :P
int model
GET_CHAR_MODEL(pPlayer,&model);
change_player(model)
REVIVE_INJURED_PED(pPlayer); //testing
Alert("Revived self test complete",false);
}
*/
if(IS_THIS_MACHINE_THE_SERVER()) //something seems to bust me outta ghost here..
{
Alert("~COL_NET_4~MD: ~s~You are now host, ghost is now useless, changing to normal mode.",true);
//Autoload(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false); //FREEZZ //gonna try it on itz own
//REQUEST_SCRIPT(CURRENT_GAME_MODES_SCRIPT_NAME());
//while(!HAS_SCRIPT_LOADED(CURRENT_GAME_MODES_SCRIPT_NAME())) WAIT(0);
//START_NEW_SCRIPT(CURRENT_GAME_MODES_SCRIPT_NAME(),20240);
//MARK_SCRIPT_AS_NO_LONGER_NEEDED(CURRENT_GAME_MODES_SCRIPT_NAME());
//need to load gamemode script with a stupid stacksize (as rockstar uses stupid amount of vars per script).
//1024 is not enough, for freemode rockstar uses 20240
//Autoload(CURRENT_GAME_MODES_SCRIPT_NAME(),false); //FREEEZ //stacksize too small
//SET_THIS_MACHINE_RUNNING_SERVER_SCRIPT(true);
Mode = NORMAL_MODE_JOINED;
/*
for(i = 0; i < MAX_PLAYERS; i++)
{
if(!DOES_BLIP_EXIST(player_blip[i])) continue;
REMOVE_BLIP(player_blip[i]); //gamemode will manage it now..
} */
//20240 = game mode script stack size given, if we start with 1024, probably crash? :S //yes this caused freezing before when testing with ap ii
//Autoload()
/*
for(i = 0; i < MAX_PLAYERS; i++)
{
if(i == GET_PLAYER_ID()) continue;
if(PLAYER_WANTS_TO_JOIN_NETWORK_GAME(i)) //skip self maybe?
{
WAIT(1000);
TELL_NET_PLAYER_TO_START_PLAYING(i,0); //as in fremode
Alert_Two("TELL NET PLAYER TO START PLAYING",GET_PLAYER_NAME(i),true);
}
if(Invalid_Player(i) || !PLAYER_HAS_CHAR(i)) continue;
if(IS_CHAR_DEAD(PLAYER_CHAR(i)))
{
if(LOAD_ALL_PATH_NODES(1))
{
FLUSH_ALL_SPAWN_BLOCKING_AREAS();
if(!GetBit(HasRegisteredRespawnBitSet,i))
{
Alert_Two("REGISTER PLAYER RESPAWN COORDS",GET_PLAYER_NAME(i),true);
REGISTER_PLAYER_RESPAWN_COORDS(i,2290.65f, (476.5f + TO_FLOAT(i)), 6.05f);
SetBit(HasRegisteredRespawnBitSet,i,true);
}
}
}
else
{
SetBit(HasRegisteredRespawnBitSet,i,false);
}
}*/
}
/*void sub_9772()
{
int I;
unknown uVar3;
for ( I = 0; I < 32; I++ )
{
if (PLAYER_WANTS_TO_JOIN_NETWORK_GAME( I ))
{
TELL_NET_PLAYER_TO_START_PLAYING( I, 0 );
}
}
return;
}*/
/*
if(CAN_FIND_HOST()) //should make this return an int or something..
{
if(lastHostID != GET_HOST_ID())
{
lastHostID = GET_HOST_ID();
SET_THIS_MACHINE_RUNNING_SERVER_SCRIPT(IS_THIS_MACHINE_THE_SERVER()); //pulls you out of ghost, players = unable to join/respawn still.
//probably gonna have to figure out how to tell net correctly and when to resurrect.. fuck
}
}
*/
//in fremode, iwhen join and end up host players dont respawn, and people joining don't get spawned in so
/*int sub_4842()
{
if (IS_THIS_MACHINE_THE_SERVER())
{
SET_THIS_MACHINE_RUNNING_SERVER_SCRIPT( 1 );
return 1;
}
return 0;
}
void sub_5006()
{
SET_THIS_MACHINE_RUNNING_SERVER_SCRIPT( 0 );
return;
}*/
}
else if(Mode == NORMAL_MODE)
{
Effects();
if(CAN_FIND_HOST()) //found
{
Mode = NORMAL_MODE_JOINED;
}
}
}
}

View File

@@ -0,0 +1,429 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//NOT DESIGNED FOR PC!!!!!
//int GET_PLAYER_ID_FOR_THIS_PED(Ped ped);
#include "inc/natives.h"
#include "MD_Compile_Settings.c"
#include "MD_Base_Setup/MDB_Strings.h"
#include "inc/common.h"
#include "inc/consts.h"
//#include "MD_Base_Setup/MDB_Supernet_Vars.h" //I'll declare my own here
//#include "MD_Security/MDS_Security.h" //we are releasing ghost for free right?
//#include "MD_Security/MDS_User_Verification.h" //meh?
bool Holyghost = false;
bool StopStreaming = false;
SwitchStreaming_Message = false;
SwitchStreaming_Toggle = false;
bool Streaming;
#define MDVersion_Txt_Size 0.19f,0.35f
#define GetBit(BitSet, bitIndex) IS_BIT_SET(BitSet, bitIndex)
#define SetBit(BitSet, bitIndex, bitValue) SetBitHelper(&BitSet, bitIndex, bitValue)
#define ToggleBit(BitSet, bitIndex) ToggleBitHelper(&BitSet, bitIndex)
void SetBitHelper(uint *BitSet, uint bitIndex, bool value){
if(value)SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
void ToggleBitHelper(uint *BitSet, uint bitIndex){
if(!IS_BIT_SET(*BitSet, bitIndex))SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
#define NORMAL_MODE 1
#define NORMAL_MODE_JOINED 2
#define GHOST_MODE_OBTAINING_HOST 3
#define GHOST_MODE_FOUND_HOST 4
#define GHOST_MODE_JOINED 5
//if dpad down is pressed in freemode, minimap does SET_RADAR_ZOOM( 980 ); on a loop for 5 seconds, then puts it back to 0, think it'll restore to 0 though auto..
int pPlayer,Mode,Episode,empty_slots,Glowing,minimap_tick = 0;
bool Glowing_Increment = false;
int Rotating360 = 1;
Texture radar;
int player_blip[MAX_PLAYERS];
//uint HasRegisteredRespawnBitSet;
bool Invalid_Player(const int playerid){ //should move to common.h
return (GET_HASH_KEY(GET_PLAYER_NAME(playerid)) == 2211124811 || HAS_NETWORK_PLAYER_LEFT_GAME(playerid)); //Invalid
}
void change_player(int modelp){
if(IS_MODEL_IN_CDIMAGE(modelp)){
REQUEST_MODEL(modelp);
float h;
GET_CHAR_HEADING(pPlayer,&h);
while(!HAS_MODEL_LOADED(modelp)) WAIT(0);
CHANGE_PLAYER_MODEL(GET_PLAYER_ID(), modelp);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelp);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_HEADING(pPlayer,h);
}
}
void Effects(void)
{
if(Glowing >= 190) Glowing_Increment = false;
if(Glowing <= 0) Glowing_Increment = true;
if(Glowing_Increment){
if(Glowing > 185) Glowing++;
else Glowing += 3;
}
else{
if(Glowing < 10) Glowing--;
else Glowing -= 3;
}
if (Rotating360 >= 360)Rotating360 = 0;
else Rotating360 += 5;
if(empty_slots == -2) DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 100, 100, 200);
else {
if(Holyghost)MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 255, Glowing, 255);
}
if(Mode == NORMAL_MODE)
{
Set_Up_Draw(0.2150f*2,0.3600f*2, Glowing, 255, Glowing, 255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining Normally");
}
else
{
Set_Up_Draw(0.2150f*2,0.3600f*2, 255, Glowing, Glowing, 255,0,0,0);
if(!Holyghost)DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Ghost");
else DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Holy Ghost");
}
}
char* CURRENT_GAME_MODES_SCRIPT_NAME(void)
{
int GameMode = NETWORK_GET_GAME_MODE();
//THIS DOES NOT TAKE INTO ACCOUNT SCRIPT NAME DIFFERENCES FROM 360/PS3 (if there are any)
//YET......
if(GameMode == GAME_MODE_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_quickdm";
}
else
{
return "deathmatch_cr";
}
//return ( (Episode == 2) ? "e2_deathmatch" : "deathmatch_cr");
}
else if(GameMode == GAME_MODE_TEAM_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_deathmatch";
}
else
{
return "deathmatch_cr";
}
}
else if(GameMode == GAME_MODE_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_CAR_JACK_CITY)
{
}
else if(GameMode == GAME_MODE_CAR_JACK_CITY)
{
//carsteal?
}
else if(GameMode == GAME_MODE_RACE)
{
if(Episode == 2)
{
return "e2_races";
}
else
{
return "races_cr";
}
//return ( (Episode == 2) ? "e2_races" : "races_cr");
}
else if(GameMode == GAME_MODE_PARTY_MODE)
{
if(Episode == 2)
{
return "e2_party_mode";
}
else
{
return "party_mode";
}
//return ( (Episode == 2) ? "e2_party_mode" : "party_mode");
}
else if(GameMode == GAME_MODE_COPS_AND_CROOKS)
{
}
else if(GameMode == GAME_MODE_TURF_WAR)
{
}
else if(GameMode == GAME_MODE_DEAL_BREAKER)
{
}
else if(GameMode == GAME_MODE_HANGMANS_NOOSE)
{
}
else if(GameMode == GAME_MODE_BOMB_DA_BASE_II)
{
return "coop_bombdbase";
}
else if(GameMode == GAME_MODE_FREE_MODE){
if(Episode == 2)return "e2_freemode";
else return "freemode_cr";
}
return "Unknown";
}
bool CAN_FIND_HOST()
{
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(GET_HOST_ID() != i || Invalid_Player(i)) continue;
//if(Invalid_Player(i)) continue;
if(Holyghost && Episode == 2){
MD_Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
}
return true;
}
return false;
}
//today, should check if gamemode returns int val correctly, if so make a char* GAME_MODES_SCRIPT_NAME(const int Gamemode)
void main(){
THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
REQUEST_STREAMED_TXD("network", 1);
FORCE_LOADING_SCREEN(false);
DO_SCREEN_FADE_IN(false);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_VISIBLE(pPlayer,true);
SET_CHAR_COORDINATES_NO_OFFSET(pPlayer, 2635.0f, 416.0f, 79.35f); //yes nathan got theze coords optimised nigga, tower top center for x & y
SET_CHAR_HEADING(pPlayer, 90.0f); //facing the city :)
SET_CAM_BEHIND_PED(pPlayer);
Episode = GET_CURRENT_EPISODE();
if(!IS_PLAYER_ONLINE())
{
Alert("~b~MD: ~s~You need to sign in before playing online.",false);
WAIT(3000);
SHOW_SIGNIN_UI();
WAIT(5000);
}
bool grabbed_input;
do
{
WAIT(0);
empty_slots = empty_player_slots();
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.45, "STRING", "~BLIP_77~ ~PAD_DPAD_RIGHT~ + ~PAD_A~ ~COL_NET_3~NORMAL MODE");
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.50, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_A~ ~COL_NET_4~GHOST MODE");
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.55, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_X~ ~COL_NET_1~HOLY GHOST MODE");
bool LEFT_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_DPAD_LEFT);
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_A) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) )
{
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
Mode = GHOST_MODE_OBTAINING_HOST;
WAIT(1250);//(was 1250)
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
}
else //normal mode
{
Holyghost = false;
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
else if(IS_BUTTON_JUST_PRESSED(0,BUTTON_X) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) ){
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
Mode = GHOST_MODE_OBTAINING_HOST;
Holyghost = true;
StopStreaming = true;
//Stop streaming Code comes here
WAIT(1250);//(was 1250)
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
}
else //normal mode
{
Holyghost = false;
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
}
while(!grabbed_input);
radar = GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_TOTALTIME");
//will have loaded by now..
while(true)
{
WAIT(0);
empty_slots = empty_player_slots(); //if needed idk
//iHost = GET_HOST_ID();
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer); //better than get player ped its poopy old.. literally this but only this is faster..
switch(Mode)
{
case GHOST_MODE_OBTAINING_HOST:
{
if(empty_slots >= 0 && CAN_FIND_HOST()) //found
{
Mode = GHOST_MODE_FOUND_HOST;
}
else
{
Effects();
}
}
break;
case GHOST_MODE_FOUND_HOST:
{
MD_Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
RELEASE_TEXTURE(radar);
Mode = GHOST_MODE_JOINED;
int GameMode = NETWORK_GET_GAME_MODE();
USE_PLAYER_COLOUR_INSTEAD_OF_TEAM_COLOUR( (GameMode == GAME_MODE_FREE_MODE) );
SWITCH_ARROW_ABOVE_BLIPPED_PICKUPS( (GameMode == GAME_MODE_FREE_MODE) || (GameMode == GAME_MODE_DEATHMATCH) || (GameMode == GAME_MODE_PARTY_MODE) );
SET_SYNC_WEATHER_AND_GAME_TIME(true); //for now itz fine
DISPLAY_FRONTEND_MAP_BLIPS(true); //pretty much all gamemodez i tinkle? //not doing anything :S
if(StopStreaming)
{
//ALLOW_GAME_TO_PAUSE_FOR_STREAMING(true);
//SWITCH_STREAMING(false);
SwitchStreaming_Message = true;
}
if(!Holyghost)
{
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID());
}
SET_PLAYER_CONTROL(GET_PLAYER_ID(),true);
//ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(iPlayer,true);
//NETWORK_SET_FRIENDLY_FIRE_OPTION(true);
SET_CHAR_HEALTH(pPlayer,500); //probably not needed
GIVE_WEAPON_TO_CHAR(pPlayer,WEAPON_UNARMED,AMMO_MAX,false); //i THINK its needed, unsure, best to have weapon tho..
ADD_TO_PREVIOUS_BRIEF("Chillout on GTA IV, only this time normal players don't know who you are!");
ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(GET_PLAYER_ID(),true);
NETWORK_SET_FRIENDLY_FIRE_OPTION(true);
}
break;
case GHOST_MODE_JOINED:
{
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(DOES_BLIP_EXIST(player_blip[i]) && Invalid_Player(i))
{
REMOVE_BLIP(player_blip[i]);
continue;
}
//else blah.. (i guess, we checking skip invalid and does blip exist twice..)
if(Invalid_Player(i) || DOES_BLIP_EXIST(player_blip[i]) || !PLAYER_HAS_CHAR(i)) continue;
ADD_BLIP_FOR_CHAR(PLAYER_CHAR(i),&player_blip[i]);
CHANGE_BLIP_COLOUR(player_blip[i],GET_PLAYER_COLOUR(i));
CHANGE_BLIP_PRIORITY(player_blip[i],3);
CHANGE_BLIP_NAME_FROM_ASCII(player_blip[i],GET_PLAYER_NAME(i));
CHANGE_BLIP_DISPLAY(player_blip[i], ( (i == GET_PLAYER_ID()) ? 0 : 2) );
}
if(IS_BUTTON_JUST_PRESSED(0,DPAD_DOWN)) //Minimap zoom (just like freemode does it) works flawless //flashes when scrolling and menu open (doesnt normally so)
{
//BUILT IN CRASH HOPEFULLY IF MENU STARTUP NOT FOUND!
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("menu_startup") < 1)
{
if(minimap_tick > GetTickCount())
{
minimap_tick = (GetTickCount() - 5000);
}
else
{
minimap_tick = (GetTickCount() + 5000);
}
}
}
if(minimap_tick > GetTickCount())
{
SET_RADAR_ZOOM(980);
}
else
{
if(minimap_tick != 0)
{
SET_RADAR_ZOOM(0); //no need to loop this me don't think
minimap_tick = 0;
}
}
if(IS_THIS_MACHINE_THE_SERVER()) //something seems to bust me outta ghost here..
{
Alert("~b~MD: ~s~You are now host, ghost is now useless, changing to normal mode.",true);
Mode = NORMAL_MODE_JOINED;
}
}
break;
case NORMAL_MODE:
{
Effects();
if(CAN_FIND_HOST()) Mode = NORMAL_MODE_JOINED;
}
break;
}
}
}

View File

@@ -0,0 +1,429 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//NOT DESIGNED FOR PC!!!!!
//int GET_PLAYER_ID_FOR_THIS_PED(Ped ped);
#include "inc/natives.h"
#include "MD_Compile_Settings.c"
#include "MD_Base_Setup/MDB_Strings.h"
#include "inc/common.h"
#include "inc/consts.h"
//#include "MD_Base_Setup/MDB_Supernet_Vars.h" //I'll declare my own here
//#include "MD_Security/MDS_Security.h" //we are releasing ghost for free right?
//#include "MD_Security/MDS_User_Verification.h" //meh?
bool Holyghost = false;
bool StopStreaming = false;
SwitchStreaming_Message = false;
SwitchStreaming_Toggle = false;
bool Streaming;
#define MDVersion_Txt_Size 0.19f,0.35f
#define GetBit(BitSet, bitIndex) IS_BIT_SET(BitSet, bitIndex)
#define SetBit(BitSet, bitIndex, bitValue) SetBitHelper(&BitSet, bitIndex, bitValue)
#define ToggleBit(BitSet, bitIndex) ToggleBitHelper(&BitSet, bitIndex)
void SetBitHelper(uint *BitSet, uint bitIndex, bool value){
if(value)SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
void ToggleBitHelper(uint *BitSet, uint bitIndex){
if(!IS_BIT_SET(*BitSet, bitIndex))SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
#define NORMAL_MODE 1
#define NORMAL_MODE_JOINED 2
#define GHOST_MODE_OBTAINING_HOST 3
#define GHOST_MODE_FOUND_HOST 4
#define GHOST_MODE_JOINED 5
//if dpad down is pressed in freemode, minimap does SET_RADAR_ZOOM( 980 ); on a loop for 5 seconds, then puts it back to 0, think it'll restore to 0 though auto..
int pPlayer,Mode,Episode,empty_slots,Glowing,minimap_tick = 0;
bool Glowing_Increment = false;
int Rotating360 = 1;
Texture radar;
int player_blip[MAX_PLAYERS];
//uint HasRegisteredRespawnBitSet;
bool Invalid_Player(const int playerid){ //should move to common.h
return (GET_HASH_KEY(GET_PLAYER_NAME(playerid)) == 2211124811 || HAS_NETWORK_PLAYER_LEFT_GAME(playerid)); //Invalid
}
void change_player(int modelp){
if(IS_MODEL_IN_CDIMAGE(modelp)){
REQUEST_MODEL(modelp);
float h;
GET_CHAR_HEADING(pPlayer,&h);
while(!HAS_MODEL_LOADED(modelp)) WAIT(0);
CHANGE_PLAYER_MODEL(GET_PLAYER_ID(), modelp);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelp);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_HEADING(pPlayer,h);
}
}
void Effects(void)
{
if(Glowing >= 190) Glowing_Increment = false;
if(Glowing <= 0) Glowing_Increment = true;
if(Glowing_Increment){
if(Glowing > 185) Glowing++;
else Glowing += 3;
}
else{
if(Glowing < 10) Glowing--;
else Glowing -= 3;
}
if (Rotating360 >= 360)Rotating360 = 0;
else Rotating360 += 5;
if(empty_slots == -2) DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 100, 100, 200);
else {
if(Holyghost)MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 255, Glowing, 255);
}
if(Mode == NORMAL_MODE)
{
Set_Up_Draw(0.2150f*2,0.3600f*2, Glowing, 255, Glowing, 255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining Normally");
}
else
{
Set_Up_Draw(0.2150f*2,0.3600f*2, 255, Glowing, Glowing, 255,0,0,0);
if(!Holyghost)DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Ghost");
else DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Holy Ghost");
}
}
char* CURRENT_GAME_MODES_SCRIPT_NAME(void)
{
int GameMode = NETWORK_GET_GAME_MODE();
//THIS DOES NOT TAKE INTO ACCOUNT SCRIPT NAME DIFFERENCES FROM 360/PS3 (if there are any)
//YET......
if(GameMode == GAME_MODE_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_quickdm";
}
else
{
return "deathmatch_cr";
}
//return ( (Episode == 2) ? "e2_deathmatch" : "deathmatch_cr");
}
else if(GameMode == GAME_MODE_TEAM_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_deathmatch";
}
else
{
return "deathmatch_cr";
}
}
else if(GameMode == GAME_MODE_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_CAR_JACK_CITY)
{
}
else if(GameMode == GAME_MODE_CAR_JACK_CITY)
{
//carsteal?
}
else if(GameMode == GAME_MODE_RACE)
{
if(Episode == 2)
{
return "e2_races";
}
else
{
return "races_cr";
}
//return ( (Episode == 2) ? "e2_races" : "races_cr");
}
else if(GameMode == GAME_MODE_PARTY_MODE)
{
if(Episode == 2)
{
return "e2_party_mode";
}
else
{
return "party_mode";
}
//return ( (Episode == 2) ? "e2_party_mode" : "party_mode");
}
else if(GameMode == GAME_MODE_COPS_AND_CROOKS)
{
}
else if(GameMode == GAME_MODE_TURF_WAR)
{
}
else if(GameMode == GAME_MODE_DEAL_BREAKER)
{
}
else if(GameMode == GAME_MODE_HANGMANS_NOOSE)
{
}
else if(GameMode == GAME_MODE_BOMB_DA_BASE_II)
{
return "coop_bombdbase";
}
else if(GameMode == GAME_MODE_FREE_MODE){
if(Episode == 2)return "e2_freemode";
else return "freemode_cr";
}
return "Unknown";
}
bool CAN_FIND_HOST()
{
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(GET_HOST_ID() != i || Invalid_Player(i)) continue;
//if(Invalid_Player(i)) continue;
if(Holyghost && Episode == 2){
MD_Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
}
return true;
}
return false;
}
//today, should check if gamemode returns int val correctly, if so make a char* GAME_MODES_SCRIPT_NAME(const int Gamemode)
void main(){
THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
REQUEST_STREAMED_TXD("network", 1);
FORCE_LOADING_SCREEN(false);
DO_SCREEN_FADE_IN(false);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_VISIBLE(pPlayer,true);
SET_CHAR_COORDINATES_NO_OFFSET(pPlayer, 2635.0f, 416.0f, 79.35f); //yes nathan got theze coords optimised nigga, tower top center for x & y
SET_CHAR_HEADING(pPlayer, 90.0f); //facing the city :)
SET_CAM_BEHIND_PED(pPlayer);
Episode = GET_CURRENT_EPISODE();
if(!IS_PLAYER_ONLINE())
{
Alert("~COL_NET_4~MD: ~s~You need to sign in before playing online.",false);
WAIT(3000);
SHOW_SIGNIN_UI();
WAIT(5000);
}
bool grabbed_input;
do
{
WAIT(0);
empty_slots = empty_player_slots();
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.45, "STRING", "~BLIP_77~ ~PAD_DPAD_RIGHT~ + ~PAD_A~ ~COL_NET_3~NORMAL MODE");
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.50, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_A~ ~COL_NET_4~GHOST MODE");
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.55, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_X~ ~COL_NET_1~HOLY GHOST MODE");
bool LEFT_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_DPAD_LEFT);
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_A) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) )
{
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
Mode = GHOST_MODE_OBTAINING_HOST;
WAIT(1250);//(was 1250)
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
}
else //normal mode
{
Holyghost = false;
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
else if(IS_BUTTON_JUST_PRESSED(0,BUTTON_X) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) ){
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
Mode = GHOST_MODE_OBTAINING_HOST;
Holyghost = true;
StopStreaming = true;
//Stop streaming Code comes here
WAIT(1250);//(was 1250)
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
}
else //normal mode
{
Holyghost = false;
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
}
while(!grabbed_input);
radar = GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_TOTALTIME");
//will have loaded by now..
while(true)
{
WAIT(0);
empty_slots = empty_player_slots(); //if needed idk
//iHost = GET_HOST_ID();
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer); //better than get player ped its poopy old.. literally this but only this is faster..
switch(Mode)
{
case GHOST_MODE_OBTAINING_HOST:
{
if(empty_slots >= 0 && CAN_FIND_HOST()) //found
{
Mode = GHOST_MODE_FOUND_HOST;
}
else
{
Effects();
}
}
break;
case GHOST_MODE_FOUND_HOST:
{
MD_Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
RELEASE_TEXTURE(radar);
Mode = GHOST_MODE_JOINED;
int GameMode = NETWORK_GET_GAME_MODE();
USE_PLAYER_COLOUR_INSTEAD_OF_TEAM_COLOUR( (GameMode == GAME_MODE_FREE_MODE) );
SWITCH_ARROW_ABOVE_BLIPPED_PICKUPS( (GameMode == GAME_MODE_FREE_MODE) || (GameMode == GAME_MODE_DEATHMATCH) || (GameMode == GAME_MODE_PARTY_MODE) );
SET_SYNC_WEATHER_AND_GAME_TIME(true); //for now itz fine
DISPLAY_FRONTEND_MAP_BLIPS(true); //pretty much all gamemodez i tinkle? //not doing anything :S
if(StopStreaming)
{
//ALLOW_GAME_TO_PAUSE_FOR_STREAMING(true);
//SWITCH_STREAMING(false);
SwitchStreaming_Message = true;
}
if(!Holyghost)
{
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID());
}
SET_PLAYER_CONTROL(GET_PLAYER_ID(),true);
//ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(iPlayer,true);
//NETWORK_SET_FRIENDLY_FIRE_OPTION(true);
SET_CHAR_HEALTH(pPlayer,500); //probably not needed
GIVE_WEAPON_TO_CHAR(pPlayer,WEAPON_UNARMED,AMMO_MAX,false); //i THINK its needed, unsure, best to have weapon tho..
ADD_TO_PREVIOUS_BRIEF("Chillout on GTA IV, only this time normal players don't know who you are!");
ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(GET_PLAYER_ID(),true);
NETWORK_SET_FRIENDLY_FIRE_OPTION(true);
}
break;
case GHOST_MODE_JOINED:
{
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(DOES_BLIP_EXIST(player_blip[i]) && Invalid_Player(i))
{
REMOVE_BLIP(player_blip[i]);
continue;
}
//else blah.. (i guess, we checking skip invalid and does blip exist twice..)
if(Invalid_Player(i) || DOES_BLIP_EXIST(player_blip[i]) || !PLAYER_HAS_CHAR(i)) continue;
ADD_BLIP_FOR_CHAR(PLAYER_CHAR(i),&player_blip[i]);
CHANGE_BLIP_COLOUR(player_blip[i],GET_PLAYER_COLOUR(i));
CHANGE_BLIP_PRIORITY(player_blip[i],3);
CHANGE_BLIP_NAME_FROM_ASCII(player_blip[i],GET_PLAYER_NAME(i));
CHANGE_BLIP_DISPLAY(player_blip[i], ( (i == GET_PLAYER_ID()) ? 0 : 2) );
}
if(IS_BUTTON_JUST_PRESSED(0,DPAD_DOWN)) //Minimap zoom (just like freemode does it) works flawless //flashes when scrolling and menu open (doesnt normally so)
{
//BUILT IN CRASH HOPEFULLY IF MENU STARTUP NOT FOUND!
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("menu_startup") < 1)
{
if(minimap_tick > GetTickCount())
{
minimap_tick = (GetTickCount() - 5000);
}
else
{
minimap_tick = (GetTickCount() + 5000);
}
}
}
if(minimap_tick > GetTickCount())
{
SET_RADAR_ZOOM(980);
}
else
{
if(minimap_tick != 0)
{
SET_RADAR_ZOOM(0); //no need to loop this me don't think
minimap_tick = 0;
}
}
if(IS_THIS_MACHINE_THE_SERVER()) //something seems to bust me outta ghost here..
{
Alert("~COL_NET_4~MD: ~s~You are now host, ghost is now useless, changing to normal mode.",true);
Mode = NORMAL_MODE_JOINED;
}
}
break;
case NORMAL_MODE:
{
Effects();
if(CAN_FIND_HOST()) Mode = NORMAL_MODE_JOINED;
}
break;
}
}
}

View File

@@ -0,0 +1,460 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//NOT DESIGNED FOR PC!!!!!
//int GET_PLAYER_ID_FOR_THIS_PED(Ped ped);
#include <natives.h>
#include "MD_Compile_Settings.c"
#include "MD_Base_Setup/MDB_Strings.h"
#include <common.h>
#include <consts.h>
//#include "MD_Base_Setup/MDB_Supernet_Vars.h" //I'll declare my own here
//#include "MD_Security/MDS_Security.h" //we are releasing ghost for free right?
//#include "MD_Security/MDS_User_Verification.h" //meh?
bool Holyghost = false;
bool StopStreaming = false;
SwitchStreaming_Message = false;
SwitchStreaming_Toggle = false;
bool Streaming;
#define MDVersion_Txt_Size 0.19f,0.35f
#define GetBit(BitSet, bitIndex) IS_BIT_SET(BitSet, bitIndex)
#define SetBit(BitSet, bitIndex, bitValue) SetBitHelper(&BitSet, bitIndex, bitValue)
#define ToggleBit(BitSet, bitIndex) ToggleBitHelper(&BitSet, bitIndex)
void SetBitHelper(uint *BitSet, uint bitIndex, bool value){
if(value)SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
void ToggleBitHelper(uint *BitSet, uint bitIndex){
if(!IS_BIT_SET(*BitSet, bitIndex))SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
#define NORMAL_MODE 1
#define NORMAL_MODE_JOINED 2
#define GHOST_MODE_OBTAINING_HOST 3
#define GHOST_MODE_FOUND_HOST 4
#define GHOST_MODE_JOINED 5
//if dpad down is pressed in freemode, minimap does SET_RADAR_ZOOM( 980 ); on a loop for 5 seconds, then puts it back to 0, think it'll restore to 0 though auto..
int pPlayer,Mode,Episode,empty_slots,Glowing,minimap_tick = 0;
bool Glowing_Increment = false;
int Rotating360 = 1;
Texture radar;
int player_blip[MAX_PLAYERS];
//uint HasRegisteredRespawnBitSet;
bool Invalid_Player(const int playerid){ //should move to common.h
return (GET_HASH_KEY(GET_PLAYER_NAME(playerid)) == 2211124811 || HAS_NETWORK_PLAYER_LEFT_GAME(playerid)); //Invalid
}
void change_player(int modelp){
if(IS_MODEL_IN_CDIMAGE(modelp)){
REQUEST_MODEL(modelp);
float h;
GET_CHAR_HEADING(pPlayer,&h);
while(!HAS_MODEL_LOADED(modelp)) WAIT(0);
CHANGE_PLAYER_MODEL(GET_PLAYER_ID(), modelp);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelp);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_HEADING(pPlayer,h);
}
}
void Effects(void)
{
if(Glowing >= 190) Glowing_Increment = false;
if(Glowing <= 0) Glowing_Increment = true;
if(Glowing_Increment){
if(Glowing > 185) Glowing++;
else Glowing += 3;
}
else{
if(Glowing < 10) Glowing--;
else Glowing -= 3;
}
if (Rotating360 >= 360)Rotating360 = 0;
else Rotating360 += 5;
if(empty_slots == -2) DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 100, 100, 200);
else {
if(Holyghost)MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 255, Glowing, 255);
}
if(Mode == NORMAL_MODE)
{
Set_Up_Draw(0.2150f*2,0.3600f*2, Glowing, 255, Glowing, 255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining Normally");
}
else
{
Set_Up_Draw(0.2150f*2,0.3600f*2, 255, Glowing, Glowing, 255,0,0,0);
if(!Holyghost)DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Ghost");
else DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Holy Ghost");
}
}
char* CURRENT_GAME_MODES_SCRIPT_NAME(void)
{
int GameMode = NETWORK_GET_GAME_MODE();
//THIS DOES NOT TAKE INTO ACCOUNT SCRIPT NAME DIFFERENCES FROM 360/PS3 (if there are any)
//YET......
if(GameMode == GAME_MODE_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_quickdm";
}
else
{
return "deathmatch_cr";
}
//return ( (Episode == 2) ? "e2_deathmatch" : "deathmatch_cr");
}
else if(GameMode == GAME_MODE_TEAM_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_deathmatch";
}
else
{
return "deathmatch_cr";
}
}
else if(GameMode == GAME_MODE_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_CAR_JACK_CITY)
{
}
else if(GameMode == GAME_MODE_CAR_JACK_CITY)
{
//carsteal?
}
else if(GameMode == GAME_MODE_RACE)
{
if(Episode == 2)
{
return "e2_races";
}
else
{
return "races_cr";
}
//return ( (Episode == 2) ? "e2_races" : "races_cr");
}
else if(GameMode == GAME_MODE_PARTY_MODE)
{
if(Episode == 2)
{
return "e2_party_mode";
}
else
{
return "party_mode";
}
//return ( (Episode == 2) ? "e2_party_mode" : "party_mode");
}
else if(GameMode == GAME_MODE_COPS_AND_CROOKS)
{
}
else if(GameMode == GAME_MODE_TURF_WAR)
{
}
else if(GameMode == GAME_MODE_DEAL_BREAKER)
{
}
else if(GameMode == GAME_MODE_HANGMANS_NOOSE)
{
}
else if(GameMode == GAME_MODE_BOMB_DA_BASE_II)
{
return "coop_bombdbase";
}
else if(GameMode == GAME_MODE_FREE_MODE){
if(Episode == 2)return "e2_freemode";
else return "freemode_cr";
}
else
{
return "Unknown";
}
}
bool CAN_FIND_HOST()
{
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(GET_HOST_ID() != i || Invalid_Player(i)) continue;
//if(Invalid_Player(i)) continue;
if(Holyghost && Episode == 2){
MD_Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
}
return true;
}
return false;
}
//today, should check if gamemode returns int val correctly, if so make a char* GAME_MODES_SCRIPT_NAME(const int Gamemode)
void main(){
THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
REQUEST_STREAMED_TXD("network", 1);
FORCE_LOADING_SCREEN(false);
DO_SCREEN_FADE_IN(false);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_VISIBLE(pPlayer,true);
SET_CHAR_COORDINATES_NO_OFFSET(pPlayer, 2635.0f, 416.0f, 79.35f); //yes nathan got theze coords optimised nigga, tower top center for x & y
SET_CHAR_HEADING(pPlayer, 90.0f); //facing the city :)
SET_CAM_BEHIND_PED(pPlayer);
Episode = GET_CURRENT_EPISODE();
if(!IS_PLAYER_ONLINE())
{
Alert("~b~MD: ~s~You need to sign in before playing online.",false);
WAIT(3000);
SHOW_SIGNIN_UI();
WAIT(5000);
}
bool grabbed_input;
do
{
WAIT(0);
empty_slots = empty_player_slots();
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.45, "STRING", "~BLIP_77~ ~PAD_DPAD_RIGHT~ + ~PAD_A~ ~COL_NET_3~NORMAL MODE");
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.50, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_A~ ~COL_NET_4~GHOST MODE");
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.55, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_X~ ~COL_NET_1~HOLY GHOST MODE");
bool LEFT_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_DPAD_LEFT);
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_A) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) )
{
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
Mode = GHOST_MODE_OBTAINING_HOST;
WAIT(1250);//(was 1250)
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
}
else //normal mode
{
Holyghost = false;
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
else if(IS_BUTTON_JUST_PRESSED(0,BUTTON_X) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) ){
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
Mode = GHOST_MODE_OBTAINING_HOST;
Holyghost = true;
StopStreaming = true;
//Stop streaming Code comes here
WAIT(1250);//(was 1250)
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
}
else //normal mode
{
Holyghost = false;
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
}
while(!grabbed_input);
radar = GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_TOTALTIME");
//will have loaded by now..
while(true)
{
WAIT(0);
empty_slots = empty_player_slots(); //if needed idk
//iHost = GET_HOST_ID();
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer); //better than get player ped its poopy old.. literally this but only this is faster..
if(Mode == GHOST_MODE_OBTAINING_HOST)
{
//if(CAN_FIND_HOST())
if(empty_slots >= 0 && CAN_FIND_HOST()) //found
{
Mode = GHOST_MODE_FOUND_HOST;
}
else
{
Effects();
}
}
else if(Mode == GHOST_MODE_FOUND_HOST)
{
MD_Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
RELEASE_TEXTURE(radar);
Mode = GHOST_MODE_JOINED;
int GameMode = NETWORK_GET_GAME_MODE();
USE_PLAYER_COLOUR_INSTEAD_OF_TEAM_COLOUR( (GameMode == GAME_MODE_FREE_MODE) );
SWITCH_ARROW_ABOVE_BLIPPED_PICKUPS( (GameMode == GAME_MODE_FREE_MODE) || (GameMode == GAME_MODE_DEATHMATCH) || (GameMode == GAME_MODE_PARTY_MODE) );
SET_SYNC_WEATHER_AND_GAME_TIME(true); //for now itz fine
DISPLAY_FRONTEND_MAP_BLIPS(true); //pretty much all gamemodez i tinkle? //not doing anything :S
if(StopStreaming){
//ALLOW_GAME_TO_PAUSE_FOR_STREAMING(true);
//SWITCH_STREAMING(false);
SwitchStreaming_Message = true;
}
if(!Holyghost){
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID());
}
SET_PLAYER_CONTROL(GET_PLAYER_ID(),true);
//ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(iPlayer,true);
//NETWORK_SET_FRIENDLY_FIRE_OPTION(true);
SET_CHAR_HEALTH(pPlayer,500); //probably not needed
GIVE_WEAPON_TO_CHAR(pPlayer,WEAPON_UNARMED,AMMO_MAX,false); //i THINK its needed, unsure, best to have weapon tho..
ADD_TO_PREVIOUS_BRIEF("Chillout on GTA IV, only this time normal players don't know who you are!");
//add weapons is only thing after this
}
else if(Mode == GHOST_MODE_JOINED)
{
//ADD_BLIP_FOR_WEAPON(float x, float y, float z, int *blip);
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(DOES_BLIP_EXIST(player_blip[i]) && Invalid_Player(i))
{
REMOVE_BLIP(player_blip[i]);
continue;
}
//else blah.. (i guess, we checking skip invalid and does blip exist twice..)
if(Invalid_Player(i) || DOES_BLIP_EXIST(player_blip[i]) || !PLAYER_HAS_CHAR(i)) continue;
ADD_BLIP_FOR_CHAR(PLAYER_CHAR(i),&player_blip[i]);
CHANGE_BLIP_COLOUR(player_blip[i],GET_PLAYER_COLOUR(i));
CHANGE_BLIP_PRIORITY(player_blip[i],3);
CHANGE_BLIP_NAME_FROM_ASCII(player_blip[i],GET_PLAYER_NAME(i));
CHANGE_BLIP_DISPLAY(player_blip[i], ( (i == GET_PLAYER_ID()) ? 0 : 2) );
}
if(IS_BUTTON_JUST_PRESSED(0,DPAD_DOWN)) //Minimap zoom (just like freemode does it) works flawless //flashes when scrolling and menu open (doesnt normally so)
{
//BUILT IN CRASH HOPEFULLY IF MENU STARTUP NOT FOUND!
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("menu_startup") < 1)
{
if(minimap_tick > GetTickCount())
{
minimap_tick = (GetTickCount() - 5000);
}
else
{
minimap_tick = (GetTickCount() + 5000);
}
}
}
if(minimap_tick > GetTickCount())
{
SET_RADAR_ZOOM(980);
}
else
{
if(minimap_tick != 0)
{
SET_RADAR_ZOOM(0); //no need to loop this me don't think
minimap_tick = 0;
}
}
if(IS_THIS_MACHINE_THE_SERVER()) //something seems to bust me outta ghost here..
{
Alert("~b~MD: ~s~You are now host, ghost is now useless, changing to normal mode.",true);
Mode = NORMAL_MODE_JOINED;
}
}
else if(Mode == NORMAL_MODE){
Effects();
if(CAN_FIND_HOST()) Mode = NORMAL_MODE_JOINED;
}
/*
if(SwitchStreaming_Message){
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.45, "STRING", "Streaming ? ~PAD_DPAD_LEFT~+~PAD_A~ ~COL_NET_3~ ON ~s~/ ~PAD_DPAD_RIGHT~+~PAD_A~ ~COL_NET_4~ OFF");
bool LEFT_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_DPAD_LEFT);
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_A) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) ){
ALLOW_GAME_TO_PAUSE_FOR_STREAMING(true);
if(LEFT_IS_PRESSED){
SWITCH_STREAMING(1);
SwitchStreaming_Message = false;
SwitchStreaming_Toggle = true;
}
else{
SWITCH_STREAMING(0);
SwitchStreaming_Toggle = true;
SwitchStreaming_Message = false;
}
}
}
if(SwitchStreaming_Toggle){
if(Streaming){
Set_Up_Draw(MDVersion_Txt_Size,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.7, 0.9500, "STRING", "Streaming ~COL_NET_3~ ON ~s~ Toggle : Hold ~PAD_LSTICK_ALL~ + Press ~PAD_RSTICK_ALL~");
}
else{
Set_Up_Draw(MDVersion_Txt_Size,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.7, 0.9500, "STRING", "Streaming ~COL_NET_4~ OFF ~s~ Toggle : Hold ~PAD_LSTICK_ALL~ + Press ~PAD_RSTICK_ALL~");
}
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_STICK_RIGHT) && IS_BUTTON_PRESSED(0,BUTTON_STICK_LEFT)){
ALLOW_GAME_TO_PAUSE_FOR_STREAMING(true);
Streaming = !Streaming;
}
if(Streaming)SWITCH_STREAMING(1);
else SWITCH_STREAMING(0);
}
*/
}
}

View File

@@ -0,0 +1,460 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv13 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
//NOT DESIGNED FOR PC!!!!!
//int GET_PLAYER_ID_FOR_THIS_PED(Ped ped);
#include <natives.h>
#include "MD_Compile_Settings.c"
#include "MD_Base_Setup/MDB_Strings.h"
#include <common.h>
#include <consts.h>
//#include "MD_Base_Setup/MDB_Supernet_Vars.h" //I'll declare my own here
//#include "MD_Security/MDS_Security.h" //we are releasing ghost for free right?
//#include "MD_Security/MDS_User_Verification.h" //meh?
bool Holyghost = false;
bool StopStreaming = false;
SwitchStreaming_Message = false;
SwitchStreaming_Toggle = false;
bool Streaming;
#define MDVersion_Txt_Size 0.19f,0.35f
#define GetBit(BitSet, bitIndex) IS_BIT_SET(BitSet, bitIndex)
#define SetBit(BitSet, bitIndex, bitValue) SetBitHelper(&BitSet, bitIndex, bitValue)
#define ToggleBit(BitSet, bitIndex) ToggleBitHelper(&BitSet, bitIndex)
void SetBitHelper(uint *BitSet, uint bitIndex, bool value){
if(value)SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
void ToggleBitHelper(uint *BitSet, uint bitIndex){
if(!IS_BIT_SET(*BitSet, bitIndex))SET_BIT(&*BitSet, bitIndex);
else CLEAR_BIT(&*BitSet, bitIndex);
}
#define NORMAL_MODE 1
#define NORMAL_MODE_JOINED 2
#define GHOST_MODE_OBTAINING_HOST 3
#define GHOST_MODE_FOUND_HOST 4
#define GHOST_MODE_JOINED 5
//if dpad down is pressed in freemode, minimap does SET_RADAR_ZOOM( 980 ); on a loop for 5 seconds, then puts it back to 0, think it'll restore to 0 though auto..
int pPlayer,Mode,Episode,empty_slots,Glowing,minimap_tick = 0;
bool Glowing_Increment = false;
int Rotating360 = 1;
Texture radar;
int player_blip[MAX_PLAYERS];
//uint HasRegisteredRespawnBitSet;
bool Invalid_Player(const int playerid){ //should move to common.h
return (GET_HASH_KEY(GET_PLAYER_NAME(playerid)) == 2211124811 || HAS_NETWORK_PLAYER_LEFT_GAME(playerid)); //Invalid
}
void change_player(int modelp){
if(IS_MODEL_IN_CDIMAGE(modelp)){
REQUEST_MODEL(modelp);
float h;
GET_CHAR_HEADING(pPlayer,&h);
while(!HAS_MODEL_LOADED(modelp)) WAIT(0);
CHANGE_PLAYER_MODEL(GET_PLAYER_ID(), modelp);
MARK_MODEL_AS_NO_LONGER_NEEDED(modelp);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_HEADING(pPlayer,h);
}
}
void Effects(void)
{
if(Glowing >= 190) Glowing_Increment = false;
if(Glowing <= 0) Glowing_Increment = true;
if(Glowing_Increment){
if(Glowing > 185) Glowing++;
else Glowing += 3;
}
else{
if(Glowing < 10) Glowing--;
else Glowing -= 3;
}
if (Rotating360 >= 360)Rotating360 = 0;
else Rotating360 += 5;
if(empty_slots == -2) DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 100, 100, 200);
else {
if(Holyghost)MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
DRAW_SPRITE(radar,0.37f , 0.620f, 0.0500, 0.0500, Rotating360, Glowing, 255, Glowing, 255);
}
if(Mode == NORMAL_MODE)
{
Set_Up_Draw(0.2150f*2,0.3600f*2, Glowing, 255, Glowing, 255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining Normally");
}
else
{
Set_Up_Draw(0.2150f*2,0.3600f*2, 255, Glowing, Glowing, 255,0,0,0);
if(!Holyghost)DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Ghost");
else DISPLAY_TEXT_WITH_LITERAL_STRING(0.40, 0.60, "STRING", "Joining As Holy Ghost");
}
}
char* CURRENT_GAME_MODES_SCRIPT_NAME(void)
{
int GameMode = NETWORK_GET_GAME_MODE();
//THIS DOES NOT TAKE INTO ACCOUNT SCRIPT NAME DIFFERENCES FROM 360/PS3 (if there are any)
//YET......
if(GameMode == GAME_MODE_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_quickdm";
}
else
{
return "deathmatch_cr";
}
//return ( (Episode == 2) ? "e2_deathmatch" : "deathmatch_cr");
}
else if(GameMode == GAME_MODE_TEAM_DEATHMATCH)
{
if(Episode == 2)
{
return "e2_deathmatch";
}
else
{
return "deathmatch_cr";
}
}
else if(GameMode == GAME_MODE_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_MAFIYA_WORK)
{
}
else if(GameMode == GAME_MODE_TEAM_CAR_JACK_CITY)
{
}
else if(GameMode == GAME_MODE_CAR_JACK_CITY)
{
//carsteal?
}
else if(GameMode == GAME_MODE_RACE)
{
if(Episode == 2)
{
return "e2_races";
}
else
{
return "races_cr";
}
//return ( (Episode == 2) ? "e2_races" : "races_cr");
}
else if(GameMode == GAME_MODE_PARTY_MODE)
{
if(Episode == 2)
{
return "e2_party_mode";
}
else
{
return "party_mode";
}
//return ( (Episode == 2) ? "e2_party_mode" : "party_mode");
}
else if(GameMode == GAME_MODE_COPS_AND_CROOKS)
{
}
else if(GameMode == GAME_MODE_TURF_WAR)
{
}
else if(GameMode == GAME_MODE_DEAL_BREAKER)
{
}
else if(GameMode == GAME_MODE_HANGMANS_NOOSE)
{
}
else if(GameMode == GAME_MODE_BOMB_DA_BASE_II)
{
return "coop_bombdbase";
}
else if(GameMode == GAME_MODE_FREE_MODE){
if(Episode == 2)return "e2_freemode";
else return "freemode_cr";
}
else
{
return "Unknown";
}
}
bool CAN_FIND_HOST()
{
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(GET_HOST_ID() != i || Invalid_Player(i)) continue;
//if(Invalid_Player(i)) continue;
if(Holyghost && Episode == 2){
MD_Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
}
return true;
}
return false;
}
//today, should check if gamemode returns int val correctly, if so make a char* GAME_MODES_SCRIPT_NAME(const int Gamemode)
void main(){
THIS_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
REQUEST_STREAMED_TXD("network", 1);
FORCE_LOADING_SCREEN(false);
DO_SCREEN_FADE_IN(false);
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer);
SET_CHAR_VISIBLE(pPlayer,true);
SET_CHAR_COORDINATES_NO_OFFSET(pPlayer, 2635.0f, 416.0f, 79.35f); //yes nathan got theze coords optimised nigga, tower top center for x & y
SET_CHAR_HEADING(pPlayer, 90.0f); //facing the city :)
SET_CAM_BEHIND_PED(pPlayer);
Episode = GET_CURRENT_EPISODE();
if(!IS_PLAYER_ONLINE())
{
Alert("~COL_NET_4~MD: ~s~You need to sign in before playing online.",false);
WAIT(3000);
SHOW_SIGNIN_UI();
WAIT(5000);
}
bool grabbed_input;
do
{
WAIT(0);
empty_slots = empty_player_slots();
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.45, "STRING", "~BLIP_77~ ~PAD_DPAD_RIGHT~ + ~PAD_A~ ~COL_NET_3~NORMAL MODE");
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.50, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_A~ ~COL_NET_4~GHOST MODE");
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.55, "STRING", "~BLIP_77~ ~PAD_DPAD_LEFT~ ~s~+ ~PAD_X~ ~COL_NET_1~HOLY GHOST MODE");
bool LEFT_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_DPAD_LEFT);
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_A) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) )
{
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
Mode = GHOST_MODE_OBTAINING_HOST;
WAIT(1250);//(was 1250)
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
}
else //normal mode
{
Holyghost = false;
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
else if(IS_BUTTON_JUST_PRESSED(0,BUTTON_X) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) ){
Autoload( ((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main", false);
if(LEFT_IS_PRESSED) //ghost mode
{
Mode = GHOST_MODE_OBTAINING_HOST;
Holyghost = true;
StopStreaming = true;
//Stop streaming Code comes here
WAIT(1250);//(was 1250)
if(empty_slots >= (MAX_PLAYERS - 1)) SHUTDOWN_AND_LAUNCH_NETWORK_GAME(Episode);
}
else //normal mode
{
Holyghost = false;
Mode = NORMAL_MODE;
}
//ifdef developer and r1 + x is pressed, mode is normal ghost join just HOLY_GHOST_MODE_JOINING_HOLY
grabbed_input = true;
//should use int joined mode or something
}
}
while(!grabbed_input);
radar = GET_TEXTURE_FROM_STREAMED_TXD("network", "ICON_W_TOTALTIME");
//will have loaded by now..
while(true)
{
WAIT(0);
empty_slots = empty_player_slots(); //if needed idk
//iHost = GET_HOST_ID();
GET_PLAYER_CHAR(GET_PLAYER_ID(),&pPlayer); //better than get player ped its poopy old.. literally this but only this is faster..
if(Mode == GHOST_MODE_OBTAINING_HOST)
{
//if(CAN_FIND_HOST())
if(empty_slots >= 0 && CAN_FIND_HOST()) //found
{
Mode = GHOST_MODE_FOUND_HOST;
}
else
{
Effects();
}
}
else if(Mode == GHOST_MODE_FOUND_HOST)
{
MD_Terminate_Script(CURRENT_GAME_MODES_SCRIPT_NAME());
MD_Terminate_Script(((Episode == 2) || IS_XBOX360_VERSION()) ? "network_main_rs" : "network_main");
RELEASE_TEXTURE(radar);
Mode = GHOST_MODE_JOINED;
int GameMode = NETWORK_GET_GAME_MODE();
USE_PLAYER_COLOUR_INSTEAD_OF_TEAM_COLOUR( (GameMode == GAME_MODE_FREE_MODE) );
SWITCH_ARROW_ABOVE_BLIPPED_PICKUPS( (GameMode == GAME_MODE_FREE_MODE) || (GameMode == GAME_MODE_DEATHMATCH) || (GameMode == GAME_MODE_PARTY_MODE) );
SET_SYNC_WEATHER_AND_GAME_TIME(true); //for now itz fine
DISPLAY_FRONTEND_MAP_BLIPS(true); //pretty much all gamemodez i tinkle? //not doing anything :S
if(StopStreaming){
//ALLOW_GAME_TO_PAUSE_FOR_STREAMING(true);
//SWITCH_STREAMING(false);
SwitchStreaming_Message = true;
}
if(!Holyghost){
change_player(GET_PLAYERSETTINGS_MODEL_CHOICE());
SET_PLAYERSETTINGS_MODEL_VARIATIONS_CHOICE(GET_PLAYER_ID());
}
SET_PLAYER_CONTROL(GET_PLAYER_ID(),true);
//ALLOW_LOCKON_TO_FRIENDLY_PLAYERS(iPlayer,true);
//NETWORK_SET_FRIENDLY_FIRE_OPTION(true);
SET_CHAR_HEALTH(pPlayer,500); //probably not needed
GIVE_WEAPON_TO_CHAR(pPlayer,WEAPON_UNARMED,AMMO_MAX,false); //i THINK its needed, unsure, best to have weapon tho..
ADD_TO_PREVIOUS_BRIEF("Chillout on GTA IV, only this time normal players don't know who you are!");
//add weapons is only thing after this
}
else if(Mode == GHOST_MODE_JOINED)
{
//ADD_BLIP_FOR_WEAPON(float x, float y, float z, int *blip);
int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
if(DOES_BLIP_EXIST(player_blip[i]) && Invalid_Player(i))
{
REMOVE_BLIP(player_blip[i]);
continue;
}
//else blah.. (i guess, we checking skip invalid and does blip exist twice..)
if(Invalid_Player(i) || DOES_BLIP_EXIST(player_blip[i]) || !PLAYER_HAS_CHAR(i)) continue;
ADD_BLIP_FOR_CHAR(PLAYER_CHAR(i),&player_blip[i]);
CHANGE_BLIP_COLOUR(player_blip[i],GET_PLAYER_COLOUR(i));
CHANGE_BLIP_PRIORITY(player_blip[i],3);
CHANGE_BLIP_NAME_FROM_ASCII(player_blip[i],GET_PLAYER_NAME(i));
CHANGE_BLIP_DISPLAY(player_blip[i], ( (i == GET_PLAYER_ID()) ? 0 : 2) );
}
if(IS_BUTTON_JUST_PRESSED(0,DPAD_DOWN)) //Minimap zoom (just like freemode does it) works flawless //flashes when scrolling and menu open (doesnt normally so)
{
//BUILT IN CRASH HOPEFULLY IF MENU STARTUP NOT FOUND!
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT("menu_startup") < 1)
{
if(minimap_tick > GetTickCount())
{
minimap_tick = (GetTickCount() - 5000);
}
else
{
minimap_tick = (GetTickCount() + 5000);
}
}
}
if(minimap_tick > GetTickCount())
{
SET_RADAR_ZOOM(980);
}
else
{
if(minimap_tick != 0)
{
SET_RADAR_ZOOM(0); //no need to loop this me don't think
minimap_tick = 0;
}
}
if(IS_THIS_MACHINE_THE_SERVER()) //something seems to bust me outta ghost here..
{
Alert("~COL_NET_4~MD: ~s~You are now host, ghost is now useless, changing to normal mode.",true);
Mode = NORMAL_MODE_JOINED;
}
}
else if(Mode == NORMAL_MODE){
Effects();
if(CAN_FIND_HOST()) Mode = NORMAL_MODE_JOINED;
}
/*
if(SwitchStreaming_Message){
Set_Up_Draw(0.2750f,0.3600f,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.45, "STRING", "Streaming ? ~PAD_DPAD_LEFT~+~PAD_A~ ~COL_NET_3~ ON ~s~/ ~PAD_DPAD_RIGHT~+~PAD_A~ ~COL_NET_4~ OFF");
bool LEFT_IS_PRESSED = IS_BUTTON_PRESSED(0,BUTTON_DPAD_LEFT);
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_A) && (LEFT_IS_PRESSED || IS_BUTTON_PRESSED(0,BUTTON_DPAD_RIGHT)) ){
ALLOW_GAME_TO_PAUSE_FOR_STREAMING(true);
if(LEFT_IS_PRESSED){
SWITCH_STREAMING(1);
SwitchStreaming_Message = false;
SwitchStreaming_Toggle = true;
}
else{
SWITCH_STREAMING(0);
SwitchStreaming_Toggle = true;
SwitchStreaming_Message = false;
}
}
}
if(SwitchStreaming_Toggle){
if(Streaming){
Set_Up_Draw(MDVersion_Txt_Size,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.7, 0.9500, "STRING", "Streaming ~COL_NET_3~ ON ~s~ Toggle : Hold ~PAD_LSTICK_ALL~ + Press ~PAD_RSTICK_ALL~");
}
else{
Set_Up_Draw(MDVersion_Txt_Size,255,255,255,255,0,0,0);
DISPLAY_TEXT_WITH_LITERAL_STRING(0.7, 0.9500, "STRING", "Streaming ~COL_NET_4~ OFF ~s~ Toggle : Hold ~PAD_LSTICK_ALL~ + Press ~PAD_RSTICK_ALL~");
}
if(IS_BUTTON_JUST_PRESSED(0,BUTTON_STICK_RIGHT) && IS_BUTTON_PRESSED(0,BUTTON_STICK_LEFT)){
ALLOW_GAME_TO_PAUSE_FOR_STREAMING(true);
Streaming = !Streaming;
}
if(Streaming)SWITCH_STREAMING(1);
else SWITCH_STREAMING(0);
}
*/
}
}

367
Trident/inc/common.h Normal file
View File

@@ -0,0 +1,367 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv12 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
/**Setup the font for Extend+ Trident*/
#define Menu_Font 5
#define Player_Name_Font 0
#define GTAIV 1
#define TBOGT 2
#define Length(array) (sizeof(array) / 4)
#define PREMIUM_ONLY_STRING "~b~MD: ~s~This feature is premium only, visit www.consolecrunch.com"
bool Version_Increment;
bool Menu_Ptfx = true;
bool VEHICLE_HAS_EMPTY_SEATS(const int tmp_veh)
{
if(!DOES_VEHICLE_EXIST(tmp_veh)) return false;
int maxSeats;
GET_MAXIMUM_NUMBER_OF_PASSENGERS(tmp_veh,&maxSeats);
int i;
for(i = -1; i < maxSeats; i++)
{
if(IS_CAR_PASSENGER_SEAT_FREE(tmp_veh,i)) return true;
}
return false;
}
int PLAYERS_RELATIONSHIP_GROUP(const int playerIndex){
if(IS_NETWORK_SESSION())return (playerIndex + 31);
else return RELATIONSHIP_GROUP_PLAYER; //0
}
int PLAYER_CHAR(const int playerindex){
int ped;
GET_PLAYER_CHAR(playerindex,&ped);
//maybe try returning (playerindex % 100)
return ped;
}
bool IS_PLAYER_IN_A_VEHICLE(const int playerindex)
{
int ped = PLAYER_CHAR(playerindex);
return (DOES_CHAR_EXIST(ped) && IS_CHAR_IN_ANY_CAR(ped));
}
int PLAYERS_VEHICLE(const int playerindex)
{
int veh;
if(IS_PLAYER_IN_A_VEHICLE(playerindex))
{
GET_CAR_CHAR_IS_USING(PLAYER_CHAR(playerindex), &veh);
return veh;
}
return 0;
}
int GetTickCount()
{
uint tick = 0;
GET_GAME_TIMER(&tick);
return tick;
}
int FIND_CONTROLLER_OF_NETWORK_ID(const int Network_ID)
{
register int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
//if(is_invalid(i)) continue;
if(!DOES_PLAYER_HAVE_CONTROL_OF_NETWORK_ID(i,Network_ID)) continue;
return i;
//break;
}
return -1;
}
void debugPrint(char* message)
{
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(true);
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", message, 5000,true);
WAIT(100);
}
void Alert(char* message, bool AddToBrief){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(AddToBrief);
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", message, 4000,true);
}
void Alert_Abort(char* message, bool AddToBrief){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(AddToBrief);
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", message, 4000,true);
return;
}
void Alert_Two(char* message,char* message2, bool AddToBrief){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(AddToBrief);
PRINT_STRING_WITH_TWO_LITERAL_STRINGS_NOW("STRTNM3", message, message2, 3000, true);
}
void Alert_Two_Long(char* message,char* message2, bool AddToBrief){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(AddToBrief);
PRINT_STRING_WITH_TWO_LITERAL_STRINGS_NOW("STRTNM3", message, message2, 5000, true);
}
void Alert_Number(int num, bool AddToBrief){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(AddToBrief);
PRINT_WITH_NUMBER_NOW("NUMBR", num, 3500, true);
}
void printInt(int num){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
PRINT_WITH_NUMBER_NOW("NUMBR", num, 3500, true);
}
void Alert_2_Numbers(int value1,int value2, bool AddToBrief){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(false);
PRINT_WITH_2_NUMBERS_NOW("NUMBR", value1, value2, 2000,true);
}
void Set_Up_Draw(float width, float height, uint r, uint g, uint b, uint a, uint r2, uint g2, uint b2){
//loading incorrect font will cause all sorts of random glitchy crashes/ map not loading
#ifdef VERSION_PC
SET_TEXT_FONT(6);
#else
SET_TEXT_FONT(Menu_Font);
#endif
SET_TEXT_BACKGROUND(0);
SET_TEXT_DROPSHADOW(0, 0, 0, 0, 255);
SET_TEXT_EDGE(1, r2, g2, b2, 200);
SET_TEXT_COLOUR(r, g, b, a);
SET_TEXT_SCALE(width, height);
SET_TEXT_PROPORTIONAL(1);
//SET_TEXT_JUSTIFY(0);
SET_TEXT_CENTRE(0);
//SET_TEXT_RIGHT_JUSTIFY(0);
}
void Draw_Text(char *gxtName, float x, float y, char *val){
DISPLAY_TEXT_WITH_LITERAL_STRING(x, y, gxtName, val);
// return;
}
void Draw_Number(char *gxtName, float x, float y, int val){
DISPLAY_TEXT_WITH_NUMBER(x, y, gxtName, val);
}
//Nathans Functions//
/*
bool NETWORK_PLAYER_IS_ON_FRIENDS_LIST(const int player_id)
{
//register int i; //maybe register int makes it too fast and that crashes it? (POSSIBLY)
int i; //no register
const char* PossibleFriend = GET_PLAYER_NAME(playerid); //1 less process to do 100+ times at once (possible frez)
for(i = 0;i < NETWORK_GET_FRIEND_COUNT(); i++)
{
if(COMPARE_STRING(PossibleFriend,NETWORK_GET_FRIEND_NAME(i))) return true;
}
return false;
}
*/
bool NETWORK_PLAYER_IS_ON_FRIENDS_LIST(const int player_id)
{
int i;
const char* playerid_name = GET_PLAYER_NAME(player_id);
for(i = 0;i < NETWORK_GET_FRIEND_COUNT(); i++)
{
//char* friends_name = NETWORK_GET_FRIEND_NAME(i);
//if(!NETWORK_IS_FRIEND_ONLINE(friends_name)) continue;
if(COMPARE_STRING(playerid_name,NETWORK_GET_FRIEND_NAME(i))) return true;
}
return false;
}
bool FRIENDS_LIST_CONTAINS_GAMERTAG(char* Gamertag)
{
register int i;
for(i = 0;i < NETWORK_GET_FRIEND_COUNT(); i++)
{
if(COMPARE_STRING(Gamertag,NETWORK_GET_FRIEND_NAME(i))) return true;
}
return false;
}
bool IS_THIS_PED_A_NETPLAYER(Ped query_ped){
if(!IS_NETWORK_SESSION()) return false;
int i,tmp_ped;
for(i=0;i<GET_NUMBER_OF_PLAYERS();i++){
//if(!IS_NETWORK_PLAYER_ACTIVE(i)) continue;
GET_PLAYER_CHAR(i,&tmp_ped);
if(tmp_ped == query_ped) return true;
}
return false;
}
int GET_PLAYER_INT_FROM_PLAYER_NAME(char* name){
int i;
for(i = 0; i < 16; i++)
{
if(COMPARE_STRING(GET_PLAYER_NAME(CONVERT_INT_TO_PLAYERINDEX(i)), name)) return i;
}
return 0; //just for safekeeping....
}
void GET_CAR_PASSENGERS(int car, int *Passenger1, int *Passenger2, int *Passenger3)
{
GET_CHAR_IN_CAR_PASSENGER_SEAT(car,0,&*Passenger1);
GET_CHAR_IN_CAR_PASSENGER_SEAT(car,1,&*Passenger2);
GET_CHAR_IN_CAR_PASSENGER_SEAT(car,2,&*Passenger3);
//return;
}
//!Devils Functions//
//Nathan redo
void Autoload(char* sco, const bool print)
{
char* buffer[32];
Strcpy(buffer, "~b~MD: ~s~");
if(DOES_SCRIPT_EXIST(sco))
{
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT(sco) == 0)
{
REQUEST_SCRIPT(sco);
Strcat(buffer, "Loaded ");
Strcat(buffer, sco);
Strcat(buffer, ".sco");
while(!HAS_SCRIPT_LOADED(sco)) WAIT(0);
START_NEW_SCRIPT(sco,1024);
MARK_SCRIPT_AS_NO_LONGER_NEEDED(sco);
}
else
{
Strcat(buffer, sco);
Strcat(buffer, ".sco is already loaded.");
}
}
else
{
Strcat(buffer, sco);
Strcat(buffer, ".sco does not exist.");
}
if(print)
{
Alert(buffer, false);
}
WAIT(2000);
}
bool IS_THIS_SCRIPT_RUNNING(char* sco){
if(DOES_SCRIPT_EXIST(sco) && GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT(sco) == 1)return true;
else return false;
}
void MD_Terminate_Script(char* sco){
if (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT(sco) >= 1) TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME(sco);
}
Ped GetPlayerPed(void){
Ped playerped = INVALID_HANDLE;
if ( PLAYER_HAS_CHAR(GET_PLAYER_ID())) GET_PLAYER_CHAR(GET_PLAYER_ID(), &playerped);
return playerped;
}
int GetPlayerModel(void){
int model;
GET_CHAR_MODEL(GetPlayerPed(),&model);
return model;
}
/*
int empty_player_slots(void)
{
if(IS_THIS_MACHINE_THE_SERVER())
{
return (NETWORK_GET_MAX_SLOTS() - GET_NUMBER_OF_PLAYERS());
}
else
{
return NETWORK_GET_NUM_OPEN_PUBLIC_SLOTS(); //crashez? i tinkle?
}
}
*/
//NETWORK_GET_NUM_OPEN_PUBLIC_SLOTS(void);
int empty_player_slots(void){
return (NETWORK_GET_MAX_SLOTS() - GET_NUMBER_OF_PLAYERS());
}
bool is_driving(int pd)
{
if(!IS_CHAR_IN_ANY_CAR(pd)) return false;
int veh,dvr;
GET_CAR_CHAR_IS_USING(pd,&veh);
GET_DRIVER_OF_CAR(veh,&dvr);
return dvr == pd;
}
bool is_veh_locked(int veh){ //mmmmm should use other func for this set locked without net control request, + is chars vehicle locked
int temp;
GET_CAR_DOOR_LOCK_STATUS(veh,&temp);
return temp == VEHICLE_DOOR_LOCKED_BOTH_SIDES; //need to also return true if temp is vehicle locked from outside only
}
void UpdateWeaponOfPed(Ped ped, Weapon weapon){
if (HAS_CHAR_GOT_WEAPON(ped, weapon)){
SET_CHAR_AMMO(ped, weapon, AMMO_MAX);
}
else{
GIVE_WEAPON_TO_CHAR(ped, weapon, AMMO_MAX, FALSE);
}
}
Vehicle GetPlayerVeh(void){
Vehicle vehicle = INVALID_HANDLE;
int ped = GetPlayerPed();
if (IS_CHAR_IN_ANY_CAR(ped))
GET_CAR_CHAR_IS_USING(ped, &vehicle);
return vehicle;
}
void Run_Ptfx(int Pointer){
if(Menu_Ptfx){
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0, 5, &rand);
char* effect[6];
effect[0] = "qub_lg_explode_blue";
effect[1] = "qub_lg_explode_yellow";
effect[2] = "qub_lg_explode_red";
effect[3] = "qub_lg_explode_purple";
effect[4] = "qub_lg_explode_orange";
effect[5] = "qub_lg_explode_green";
if (DOES_CHAR_EXIST(Pointer))START_PTFX_ON_PED(effect[rand], Pointer, 0, 0, 0, 0, 0, 0, 1);
else if(DOES_VEHICLE_EXIST(Pointer))START_PTFX_ON_VEH(effect[rand], Pointer, 0, 0, 0, 0, 0, 0, 1);
else if(DOES_OBJECT_EXIST(Pointer))START_PTFX_ON_OBJ(effect[rand], Pointer, 0, 0, 0, 0, 0, 0, 1);
}
}

367
Trident/inc/common.h.bak Normal file
View File

@@ -0,0 +1,367 @@
/**
* @ MAJOR DISTRIBUTION EXTEND
* @ Version MDv12 TRIDENT
* @ MADE BY - DEVILSDESIGN & IIV_NATHAN_VII & SHOCKixiXixiWAVE
*/
#pragma once
/**Setup the font for Extend+ Trident*/
#define Menu_Font 5
#define Player_Name_Font 0
#define GTAIV 1
#define TBOGT 2
#define Length(array) (sizeof(array) / 4)
#define PREMIUM_ONLY_STRING "~COL_NET_4~MD: ~s~This feature is premium only, visit www.consolecrunch.com"
bool Version_Increment;
bool Menu_Ptfx = true;
bool VEHICLE_HAS_EMPTY_SEATS(const int tmp_veh)
{
if(!DOES_VEHICLE_EXIST(tmp_veh)) return false;
int maxSeats;
GET_MAXIMUM_NUMBER_OF_PASSENGERS(tmp_veh,&maxSeats);
int i;
for(i = -1; i < maxSeats; i++)
{
if(IS_CAR_PASSENGER_SEAT_FREE(tmp_veh,i)) return true;
}
return false;
}
int PLAYERS_RELATIONSHIP_GROUP(const int playerIndex){
if(IS_NETWORK_SESSION())return (playerIndex + 31);
else return RELATIONSHIP_GROUP_PLAYER; //0
}
int PLAYER_CHAR(const int playerindex){
int ped;
GET_PLAYER_CHAR(playerindex,&ped);
//maybe try returning (playerindex % 100)
return ped;
}
bool IS_PLAYER_IN_A_VEHICLE(const int playerindex)
{
int ped = PLAYER_CHAR(playerindex);
return (DOES_CHAR_EXIST(ped) && IS_CHAR_IN_ANY_CAR(ped));
}
int PLAYERS_VEHICLE(const int playerindex)
{
int veh;
if(IS_PLAYER_IN_A_VEHICLE(playerindex))
{
GET_CAR_CHAR_IS_USING(PLAYER_CHAR(playerindex), &veh);
return veh;
}
return 0;
}
int GetTickCount()
{
uint tick = 0;
GET_GAME_TIMER(&tick);
return tick;
}
int FIND_CONTROLLER_OF_NETWORK_ID(const int Network_ID)
{
register int i;
for(i = 0; i < MAX_PLAYERS; i++)
{
//if(is_invalid(i)) continue;
if(!DOES_PLAYER_HAVE_CONTROL_OF_NETWORK_ID(i,Network_ID)) continue;
return i;
//break;
}
return -1;
}
void debugPrint(char* message)
{
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(true);
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", message, 5000,true);
WAIT(100);
}
void Alert(char* message, bool AddToBrief){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(AddToBrief);
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", message, 4000,true);
}
void Alert_Abort(char* message, bool AddToBrief){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(AddToBrief);
PRINT_STRING_WITH_LITERAL_STRING_NOW("STRING", message, 4000,true);
return;
}
void Alert_Two(char* message,char* message2, bool AddToBrief){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(AddToBrief);
PRINT_STRING_WITH_TWO_LITERAL_STRINGS_NOW("STRTNM3", message, message2, 3000, true);
}
void Alert_Two_Long(char* message,char* message2, bool AddToBrief){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(AddToBrief);
PRINT_STRING_WITH_TWO_LITERAL_STRINGS_NOW("STRTNM3", message, message2, 5000, true);
}
void Alert_Number(int num, bool AddToBrief){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(AddToBrief);
PRINT_WITH_NUMBER_NOW("NUMBR", num, 3500, true);
}
void printInt(int num){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
PRINT_WITH_NUMBER_NOW("NUMBR", num, 3500, true);
}
void Alert_2_Numbers(int value1,int value2, bool AddToBrief){
CLEAR_PRINTS();
CLEAR_SMALL_PRINTS();
ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS(false);
PRINT_WITH_2_NUMBERS_NOW("NUMBR", value1, value2, 2000,true);
}
void Set_Up_Draw(float width, float height, uint r, uint g, uint b, uint a, uint r2, uint g2, uint b2){
//loading incorrect font will cause all sorts of random glitchy crashes/ map not loading
#ifdef VERSION_PC
SET_TEXT_FONT(6);
#else
SET_TEXT_FONT(Menu_Font);
#endif
SET_TEXT_BACKGROUND(0);
SET_TEXT_DROPSHADOW(0, 0, 0, 0, 255);
SET_TEXT_EDGE(1, r2, g2, b2, 200);
SET_TEXT_COLOUR(r, g, b, a);
SET_TEXT_SCALE(width, height);
SET_TEXT_PROPORTIONAL(1);
//SET_TEXT_JUSTIFY(0);
SET_TEXT_CENTRE(0);
//SET_TEXT_RIGHT_JUSTIFY(0);
}
void Draw_Text(char *gxtName, float x, float y, char *val){
DISPLAY_TEXT_WITH_LITERAL_STRING(x, y, gxtName, val);
// return;
}
void Draw_Number(char *gxtName, float x, float y, int val){
DISPLAY_TEXT_WITH_NUMBER(x, y, gxtName, val);
}
//Nathans Functions//
/*
bool NETWORK_PLAYER_IS_ON_FRIENDS_LIST(const int player_id)
{
//register int i; //maybe register int makes it too fast and that crashes it? (POSSIBLY)
int i; //no register
const char* PossibleFriend = GET_PLAYER_NAME(playerid); //1 less process to do 100+ times at once (possible frez)
for(i = 0;i < NETWORK_GET_FRIEND_COUNT(); i++)
{
if(COMPARE_STRING(PossibleFriend,NETWORK_GET_FRIEND_NAME(i))) return true;
}
return false;
}
*/
bool NETWORK_PLAYER_IS_ON_FRIENDS_LIST(const int player_id)
{
int i;
const char* playerid_name = GET_PLAYER_NAME(player_id);
for(i = 0;i < NETWORK_GET_FRIEND_COUNT(); i++)
{
//char* friends_name = NETWORK_GET_FRIEND_NAME(i);
//if(!NETWORK_IS_FRIEND_ONLINE(friends_name)) continue;
if(COMPARE_STRING(playerid_name,NETWORK_GET_FRIEND_NAME(i))) return true;
}
return false;
}
bool FRIENDS_LIST_CONTAINS_GAMERTAG(char* Gamertag)
{
register int i;
for(i = 0;i < NETWORK_GET_FRIEND_COUNT(); i++)
{
if(COMPARE_STRING(Gamertag,NETWORK_GET_FRIEND_NAME(i))) return true;
}
return false;
}
bool IS_THIS_PED_A_NETPLAYER(Ped query_ped){
if(!IS_NETWORK_SESSION()) return false;
int i,tmp_ped;
for(i=0;i<GET_NUMBER_OF_PLAYERS();i++){
//if(!IS_NETWORK_PLAYER_ACTIVE(i)) continue;
GET_PLAYER_CHAR(i,&tmp_ped);
if(tmp_ped == query_ped) return true;
}
return false;
}
int GET_PLAYER_INT_FROM_PLAYER_NAME(char* name){
int i;
for(i = 0; i < 16; i++)
{
if(COMPARE_STRING(GET_PLAYER_NAME(CONVERT_INT_TO_PLAYERINDEX(i)), name)) return i;
}
return 0; //just for safekeeping....
}
void GET_CAR_PASSENGERS(int car, int *Passenger1, int *Passenger2, int *Passenger3)
{
GET_CHAR_IN_CAR_PASSENGER_SEAT(car,0,&*Passenger1);
GET_CHAR_IN_CAR_PASSENGER_SEAT(car,1,&*Passenger2);
GET_CHAR_IN_CAR_PASSENGER_SEAT(car,2,&*Passenger3);
//return;
}
//!Devils Functions//
//Nathan redo
void Autoload(char* sco, const bool print)
{ WAIT(1000);
char* buffer[32];
Strcpy(buffer, "~COL_NET_4~MD: ~s~");
if(DOES_SCRIPT_EXIST(sco))
{
if(GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT(sco) == 0)
{
REQUEST_SCRIPT(sco);
Strcat(buffer, "Loaded ");
Strcat(buffer, sco);
Strcat(buffer, ".sco");
while(!HAS_SCRIPT_LOADED(sco)) WAIT(0);
START_NEW_SCRIPT(sco,1024);
MARK_SCRIPT_AS_NO_LONGER_NEEDED(sco);
}
else
{
Strcat(buffer, sco);
Strcat(buffer, ".sco is already loaded.");
}
}
else
{
Strcat(buffer, sco);
Strcat(buffer, ".sco does not exist.");
}
if(print)
{
Alert(buffer, false);
}
WAIT(1250);
}
bool IS_THIS_SCRIPT_RUNNING(char* sco){
if(DOES_SCRIPT_EXIST(sco) && GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT(sco) == 1)return true;
else return false;
}
void MD_Terminate_Script(char* sco){
if (GET_NUMBER_OF_INSTANCES_OF_STREAMED_SCRIPT(sco) >= 1) TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME(sco);
}
Ped GetPlayerPed(void){
Ped playerped = INVALID_HANDLE;
if ( PLAYER_HAS_CHAR(GET_PLAYER_ID())) GET_PLAYER_CHAR(GET_PLAYER_ID(), &playerped);
return playerped;
}
int GetPlayerModel(void){
int model;
GET_CHAR_MODEL(GetPlayerPed(),&model);
return model;
}
/*
int empty_player_slots(void)
{
if(IS_THIS_MACHINE_THE_SERVER())
{
return (NETWORK_GET_MAX_SLOTS() - GET_NUMBER_OF_PLAYERS());
}
else
{
return NETWORK_GET_NUM_OPEN_PUBLIC_SLOTS(); //crashez? i tinkle?
}
}
*/
//NETWORK_GET_NUM_OPEN_PUBLIC_SLOTS(void);
int empty_player_slots(void){
return (NETWORK_GET_MAX_SLOTS() - GET_NUMBER_OF_PLAYERS());
}
bool is_driving(int pd)
{
if(!IS_CHAR_IN_ANY_CAR(pd)) return false;
int veh,dvr;
GET_CAR_CHAR_IS_USING(pd,&veh);
GET_DRIVER_OF_CAR(veh,&dvr);
return dvr == pd;
}
bool is_veh_locked(int veh){ //mmmmm should use other func for this set locked without net control request, + is chars vehicle locked
int temp;
GET_CAR_DOOR_LOCK_STATUS(veh,&temp);
return temp == VEHICLE_DOOR_LOCKED_BOTH_SIDES; //need to also return true if temp is vehicle locked from outside only
}
void UpdateWeaponOfPed(Ped ped, Weapon weapon){
if (HAS_CHAR_GOT_WEAPON(ped, weapon)){
SET_CHAR_AMMO(ped, weapon, AMMO_MAX);
}
else{
GIVE_WEAPON_TO_CHAR(ped, weapon, AMMO_MAX, FALSE);
}
}
Vehicle GetPlayerVeh(void){
Vehicle vehicle = INVALID_HANDLE;
int ped = GetPlayerPed();
if (IS_CHAR_IN_ANY_CAR(ped))
GET_CAR_CHAR_IS_USING(ped, &vehicle);
return vehicle;
}
void Run_Ptfx(int Pointer){
if(Menu_Ptfx){
int rand;
GENERATE_RANDOM_INT_IN_RANGE(0, 5, &rand);
char* effect[6];
effect[0] = "qub_lg_explode_blue";
effect[1] = "qub_lg_explode_yellow";
effect[2] = "qub_lg_explode_red";
effect[3] = "qub_lg_explode_purple";
effect[4] = "qub_lg_explode_orange";
effect[5] = "qub_lg_explode_green";
if (DOES_CHAR_EXIST(Pointer))START_PTFX_ON_PED(effect[rand], Pointer, 0, 0, 0, 0, 0, 0, 1);
else if(DOES_VEHICLE_EXIST(Pointer))START_PTFX_ON_VEH(effect[rand], Pointer, 0, 0, 0, 0, 0, 0, 1);
else if(DOES_OBJECT_EXIST(Pointer))START_PTFX_ON_OBJ(effect[rand], Pointer, 0, 0, 0, 0, 0, 0, 1);
}
}

1391
Trident/inc/consts copy.h Normal file

File diff suppressed because it is too large Load Diff

5879
Trident/inc/consts.h Normal file

File diff suppressed because it is too large Load Diff

3172
Trident/inc/natives.h Normal file

File diff suppressed because it is too large Load Diff

3179
Trident/inc/nativesMD.h Normal file

File diff suppressed because it is too large Load Diff

26550
Trident/inc/objects.h Normal file

File diff suppressed because it is too large Load Diff

11
Trident/inc/strings.h Normal file
View File

@@ -0,0 +1,11 @@
/* ---------------------------------------------------------------
This header contains GTAIV/EFLC PC script string functions.
This file is a part of scocl project (C) Alexander Blade 2011
--------------------------------------------------------------- */
#pragma once
//#include "types.h"
extern void itos(int value, void *str, uint strsize);

49
Trident/inc/types.h Normal file
View File

@@ -0,0 +1,49 @@
/* ---------------------------------------------------------------
This header contains GTAIV/EFLC PC script common functions.
This file is a part of scocl project (C) Alexander Blade 2011
--------------------------------------------------------------- */
#pragma once
typedef unsigned int uint;
typedef uint boolean;
typedef uint bool; // not a mistake
typedef uint ScriptAny;
typedef uint Weapon;
typedef int Player;
typedef int FireId;
typedef int Crotch;
typedef int Vagina;
typedef int Model;
typedef int Fuck;
typedef int Ped;
typedef int Vehicle;
typedef int Cam;
typedef int CarGenerator;
typedef int Group;
typedef int Train;
typedef int Pickup;
typedef int Object;
typedef int Interior;
typedef int Blip;
typedef int Texture;
typedef int TextureDict;
typedef int CoverPoint;
typedef int DecisionMaker;
typedef int Camera;
typedef int TaskSequence;
typedef int Char;
typedef int Car;
typedef int ColourIndex;
typedef int Sphere;
typedef struct _Vector3
{
float x;
float y;
float z;
} Vector3, *PVector3;
typedef int ExplosionType;
typedef int ShootMode;
typedef int RelationshipGroup;
typedef int QuadChar;