diff --git a/BIS_AddonInfo.hpp b/BIS_AddonInfo.hpp new file mode 100644 index 0000000..317162a --- /dev/null +++ b/BIS_AddonInfo.hpp @@ -0,0 +1,5 @@ +class BIS_AddonInfo +{ + author=""; + timepacked="1587257288"; +}; diff --git a/ChangeLog.txt b/ChangeLog.txt new file mode 100644 index 0000000..9d304a1 --- /dev/null +++ b/ChangeLog.txt @@ -0,0 +1,57 @@ +Simple Single Player Cheat Menu by Benargee +This work is licensed under the Arma Public License Share Alike http://www.bistudio.com/community/licenses/arma-public-license-share-alike + +---v1.0 +--March 19, 2015 +-Initial Release + +---v1.0.1 +--March 19, 2015 +-Changed All "InitTest" file paths to "SSPCM". Mod no longer broken + +---v1.0.2 +--March 20, 2015 +-Added a delay to menu init script. Should hopefully fix the problem a few people have been having +-Redifined a few functions to proper names BRG_fnc_postInit and BRG_fnc_preInit + +---v1.0.3 +--March 22, 2015 +Added: Support for multiple units. When player changes unit, cheat menu will now function properly +Fixed: Second attempt at fixing the issue where menu will not show up for some users. Mod will check every 4 seconds to see if menu is visible. This will insure it always appears. Wait up to 10 seconds for menu to appear. +Fixed: Changed some more function definitions using CfgFunctions. +Known Issue: When player switches unit, old cheat attributes will still be active. This may or may not be an issue for users. Optional solution is planned. +Known Issue: Cheat menu may not work when loading a game save. Only works reliably in freshly started missions. Thank you nubmarine for pointing that out! + +---v1.1.0 +--March 25, 2015 +Added: Bullet Cam +Added: Bullet Tracing +Added: Disable fatigue +Added: Infinite ammo +Added: Vehicle invincibility (under invincibility) +Changed: "Ignored by enemy" to "Side relations" +Added: Friendly to allies and Hostile to everyone +Added: Spawn in Jet. Player will spawn in jet that is in flight. +Added: 3D Teleport. Now you can teleport where you look + +---v1.1.5 +--June 1, 2015 +Fixed: All addon content should be available with Zeus. +Added: Button in map screen to manually initialize SSPCM when resuming a mission. +Fixed: When spawning in flying jet, map is now automatically closed. +Fixed: When teleporting, player will now be teleported with their vehicle. This can optionally be changed to previous behaviour. +Added: Link to Zeus field manual in Zeus sub-menu. this is especially helpful for players new to Zeus and Arma. +Added: Virtual Garage menu option. Thank you tortuosit for laying out the code for me! +Added: Ability to open debug console in map screen in addition to existing action menu option. + +---v1.1.6 (Contact Menu Fix) +--August 10, 2019 +Added: Experimental UI menu to Contact Only +Changed: Refactored a lot of code to allow old and new menu to coexist. +Known bug: Spawn in jet doesn't entirely work. Use at own risk. +Known bug: Various script errors but nothing that seems to effect functionality + +---v1.1.7 (Old Man Hotfix) +--April 19, 2020 +Changed: Now loads new cheat menu in Old Man, Tanoa mission +Note: No other changes as this is a quick fix for Old Man. Other fixes will be left for later verisons. \ No newline at end of file diff --git a/CheatDiary/CheatInit.sqf b/CheatDiary/CheatInit.sqf new file mode 100644 index 0000000..9ac406e --- /dev/null +++ b/CheatDiary/CheatInit.sqf @@ -0,0 +1,16 @@ +//Script Created By Benargee, 2015. http://wiki.benargee.com http://www.benargee.com http://steamcommunity.com/id/Benargee/ + +//Check if cheat menu enabled. Supports ability for player to switch units. +BRG_MenuLoop = true; + +0 Spawn { + while {BRG_MenuLoop} do + { + if (!(player diarySubjectExists "BRG_CheatMenu")) then {[] spawn BRG_fnc_cheatMenu; + + //if ((!BRG_MPNotified) and (isMultiplayer) and (!serverCommandAvailable "#logout")) then {[] spawn BRG_fnc_MPCheatNotif};//only on multiplayer and if player isnt an admin + + }; + sleep 4; + }; +}; \ No newline at end of file diff --git a/CheatDiary/CheatMenu.sqf b/CheatDiary/CheatMenu.sqf new file mode 100644 index 0000000..535ba4e --- /dev/null +++ b/CheatDiary/CheatMenu.sqf @@ -0,0 +1,41 @@ +//Script Created By Benargee, 2015. http://wiki.benargee.com http://www.benargee.com http://steamcommunity.com/id/Benargee/ +//TODO: Change all BRG to BNRG. +//--------//Bottom of list//--------// + +sleep 1;//test + +player createDiarySubject ["BRG_CheatMenu","Cheats!"]; + +//Info + "diary" call BRG_fnc_CMInfo; +//separator + player createDiaryRecord ["BRG_CheatMenu", ["==========","Move along, nothing to see here."]]; +//Zeus + "diary" call BRG_fnc_CMZeus; +//Virtual Garage + "diary" call BRG_fnc_CMVGarage; +//Virtual Arsenal + "diary" call BRG_fnc_CMVArsenal; +//Teleport + "diary" call BRG_fnc_CMTeleport; +//Spawn in Flying Jet + "diary" call BRG_fnc_CMFlyingJet; +//Side relations + "diary" call BRG_fnc_CMSideRelations; +//Invincibility + "diary" call BRG_fnc_CMInvincible; +//Infinite Ammo + "diary" call BRG_fnc_CMInfAmmo; +//Fatigue + "diary" call BRG_fnc_CMFatigue; +//Debug Console + "diary" call BRG_fnc_CMDebug; +//Bullet Tracing + "diary" call BRG_fnc_CMBulletTracing; +//Bullet Cam + "diary" call BRG_fnc_CMBulletCam; + +//--------//Top of list//--------// + + + diff --git a/CheatDiary/Options/BulletCam.sqf b/CheatDiary/Options/BulletCam.sqf new file mode 100644 index 0000000..19c63c6 --- /dev/null +++ b/CheatDiary/Options/BulletCam.sqf @@ -0,0 +1,33 @@ +if (isNil "BRG_BulletCam_init") then { + BRG_BulletCam_init = true; + + BRG_BulletCamStatus = false;//prevents multiple eventhandler entries + + BRG_BulletCamOn = { + if (!BRG_BulletCamStatus) then { + BRG_BulletCamStatus = true; + BRG_BulletCamID = call BRG_fnc_BulletCamBasic; + }; + hint 'Bullet cam ENABLED'; + PUB_PN = name player;publicVariable "PUB_PN";format ["%1 uses BulletCam", PUB_PN] remoteExec ["systemChat"]; + }; + + BRG_BulletCamOff = { + BRG_BulletCamStatus = false; + player removeEventHandler ["fired", BRG_BulletCamID]; + hint 'Bullet cam DISABLED'; + }; +}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Bullet Cam", "Bullet Cam Enabled Disabled

+ + Press the SPACE bar at any time to interrupt the bullet camera and return to player camera.

+ + Warning: During campaign, bullet camera may stutter. + "]]; + }; + case "bulletcamon":{[] call BRG_BulletCamOn}; + case "bulletcamoff":{[] call BRG_BulletCamOff}; +}; diff --git a/CheatDiary/Options/BulletTracing.sqf b/CheatDiary/Options/BulletTracing.sqf new file mode 100644 index 0000000..9a2ed03 --- /dev/null +++ b/CheatDiary/Options/BulletTracing.sqf @@ -0,0 +1,36 @@ +if (isNil "BRG_TraceBullets_init") then { + BRG_TraceBullets_init = true; + + BRG_TraceBullets = { + [player, 0] spawn BIS_fnc_traceBullets; + [player, _this] spawn BIS_fnc_traceBullets; + hint format ['Tracing the last %1 bullets at a time',_this]; + PUB_PN = name player;publicVariable "PUB_PN";format ["%1 uses BulletTracing", PUB_PN] remoteExec ["systemChat"]; + }; +}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Bullet Tracing", " + Choose the amount of bullets you want traced:
+ Off + 1 + 5 + 10 + 30 + 50 + 100

+ NOTE: Currently works only for player in a single instance. This is a limitation of an Arma 3 function, not SSPCM.
+ WARNING: Tracing large amounts of bullets may cause performance issues. + "]]; + }; + default { + if (typeName _this == "SCALAR") then { + _this spawn BRG_TraceBullets; + }; + }; +}; + + + + \ No newline at end of file diff --git a/CheatDiary/Options/Debug.sqf b/CheatDiary/Options/Debug.sqf new file mode 100644 index 0000000..ace0b7f --- /dev/null +++ b/CheatDiary/Options/Debug.sqf @@ -0,0 +1,32 @@ +if (isNil "BRG_Debug_init") then { + BRG_Debug_init = true; + + BRG_debStatus = false;//prevents multiple action menu entries + BRG_DebugOpenInMap = { + (finddisplay 12) createdisplay 'RscDisplayDebugPublic'; + PUB_PN = name player;publicVariable "PUB_PN";format ["%1 uses Console", PUB_PN] remoteExec ["systemChat"]; + }; + + BRG_DebugOn = { + if (!BRG_debStatus) then { + BRG_debStatus = true; + BRG_DebugactID = player addAction ["Debug Console", "(finddisplay 46) createdisplay 'RscDisplayDebugPublic';"]; + }; + hint 'Debug Console action menu ENABLED'; + }; + + BRG_DebugOff = { + BRG_debStatus = false; + player removeAction BRG_DebugactID; + hint 'Debug Console action menu DISABLED'; + }; +}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Debug Console", "Debug Console Open Enabled Disabled"]]; + }; + case "debug_open":{[] call BRG_DebugOpenInMap}; + case "debug_enable":{[] call BRG_DebugOn}; + case "debug_disable":{[] call BRG_DebugOff}; +}; \ No newline at end of file diff --git a/CheatDiary/Options/Fatigue.sqf b/CheatDiary/Options/Fatigue.sqf new file mode 100644 index 0000000..6882b78 --- /dev/null +++ b/CheatDiary/Options/Fatigue.sqf @@ -0,0 +1,23 @@ +if (isNil "BRG_Fatigue_init") then { + BRG_Fatigue_init = true; + + BRG_FatigueOn = { + player enableFatigue true; + hint 'Player fatigue ENABLED'; + PUB_PN = name player;publicVariable "PUB_PN";format ["%1 reenabled stamina", PUB_PN] remoteExec ["systemChat"]; + }; + + BRG_FatigueOff = { + player enableFatigue false; + hint 'Player fatigue DISABLED'; + PUB_PN = name player;publicVariable "PUB_PN";format ["%1 disabled stamina", PUB_PN] remoteExec ["systemChat"]; + }; +}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Fatigue", "Fatigue Enabled Disabled"]]; + }; + case "fatigueon":{[] call BRG_FatigueOn}; + case "fatigueoff":{[] call BRG_FatigueOff}; +}; \ No newline at end of file diff --git a/CheatDiary/Options/FlyingJet.sqf b/CheatDiary/Options/FlyingJet.sqf new file mode 100644 index 0000000..5777e2f --- /dev/null +++ b/CheatDiary/Options/FlyingJet.sqf @@ -0,0 +1,39 @@ +//TODO: Make aircraft selection dynamic to support any future addons or user mods. +//Currently bugged in Contact. Plane switching doesnt work well. Might be from Jet DLC and ejection seats. +if (isNil "BRG_SIJ_init") then { + BRG_SIJ_init = true; + + BRG_SIJetAlt = 300;//default altitude + BRG_SIJ_WipeOut = "B_Plane_CAS_01_F"; + BRG_SIJ_Neophron = "O_Plane_CAS_02_F"; + BRG_SIJ_Buzzard_CAS = "I_Plane_Fighter_03_CAS_F"; + BRG_SIJ_Buzzard_AA = "I_Plane_Fighter_03_AA_F"; +}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Spawn in Jet", + "Spawn in a flying Jet. Choose a jet:
+ A-164 WipeOut
+ To-199 Neophron
+ A-143 Buzzard CAS
+ A-143 Buzzard AA
+ Starting Altitude:
+ 100m
+ 300m
+ 500m
+ 1000m
+ 2000m
+ + "]]; + }; + case"wipeout":{[BRG_SIJetAlt,BRG_SIJ_WipeOut] call BRG_fnc_spawnInJet}; + case"neophron":{[BRG_SIJetAlt,BRG_SIJ_Neophron] call BRG_fnc_spawnInJet}; + case"buzzardcas":{[BRG_SIJetAlt,BRG_SIJ_Buzzard_CAS] call BRG_fnc_spawnInJet}; + case"buzzardaa":{[BRG_SIJetAlt,BRG_SIJ_Buzzard_AA] call BRG_fnc_spawnInJet}; + default{ + if (typeName _this == "SCALAR") then { + BRG_SIJetAlt = _this; + }; + }; +}; diff --git a/CheatDiary/Options/InfAmmo.sqf b/CheatDiary/Options/InfAmmo.sqf new file mode 100644 index 0000000..5934162 --- /dev/null +++ b/CheatDiary/Options/InfAmmo.sqf @@ -0,0 +1,31 @@ +if (isNil "BRG_InfAmmo_init") then { + BRG_InfAmmo_init = true; + + BRG_InfAmmo = false;//prevents multiple eventhandler entries + BRG_InfAmmoOn = { + if (!BRG_InfAmmo) then { + BRG_InfAmmo = true; + BRG_InfAmmoID = player addeventhandler ["fired", {(_this select 0) setvehicleammo 1}]; + }; + hint 'Infinite ammo ENABLED'; + PUB_PN = name player;publicVariable "PUB_PN";format ["%1 uses InfiniteAmmo", PUB_PN] remoteExec ["systemChat"]; + }; + + BRG_InfAmmoOff = { + BRG_InfAmmo = false; player removeEventHandler ["fired", BRG_InfAmmoID]; + hint 'Infinite ammo DISABLED'; + }; +}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Infinite Ammo", "Infinite Ammo Enabled Disabled
+ NOTICE: Currently this feature works with handguns and primary weapons only. This is due behaviour of an Arma 3 command. This might be fixed in a future mod update."]]; + }; + case "InfAmmoOn":{[] call BRG_InfAmmoOn}; + case "InfAmmoOff":{[] call BRG_InfAmmoOff}; + +}; + + + diff --git a/CheatDiary/Options/Info.sqf b/CheatDiary/Options/Info.sqf new file mode 100644 index 0000000..55aac05 --- /dev/null +++ b/CheatDiary/Options/Info.sqf @@ -0,0 +1,20 @@ +BRG_LinkBISForum = {["Click: http://forums.bistudio.com/showthread.php?190017-Simple-Single-Player-Cheat-Menu","Bohemia Interactive Forum page", False, True] spawn BIS_fnc_guiMessage;}; +BRG_LinkArmaholic = {["Click: http://www.armaholic.com/page.php?id=28400","Armaholic page", False, True] spawn BIS_fnc_guiMessage;}; +BRG_LinkSteam = {["Click: http://steamcommunity.com/sharedfiles/filedetails/?id=410206202","Steam Workshop page", False, True] spawn BIS_fnc_guiMessage;}; +BRG_LinkPW6 = {["Click: http://play.withsix.com/arma-3/mods/nFbxvKMmfkissfP66MhBBA/Simple-Single-Player-Cheat-Menu","Play With Six Page", False, True] spawn BIS_fnc_guiMessage;}; +BRG_LinkMyWiki = {["Click: http://wiki.benargee.com/Simple_Single_Player_Cheat_Menu","My Wiki Page", False, True] spawn BIS_fnc_guiMessage;}; +BRG_LinkArmaCheats = {["Click: https://community.bistudio.com/wiki/ArmA:_Cheats","My Wiki Page", False, True] spawn BIS_fnc_guiMessage;}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Information",(" + SSPCM v" + (gettext (configfile >> "CfgPatches" >> "SSPCM" >> "versionStr")) +"
+ Bohemia Interactive Forum page
+ Armaholic page
+ Steam Workshop page
+ Play With Six Page
+ My Wiki Page
+ Standard Arma 3 cheats
+ ")]]; + }; +}; \ No newline at end of file diff --git a/CheatDiary/Options/Invincible.sqf b/CheatDiary/Options/Invincible.sqf new file mode 100644 index 0000000..011cda5 --- /dev/null +++ b/CheatDiary/Options/Invincible.sqf @@ -0,0 +1,78 @@ +if (isNil "BRG_Invicibility_init") then { + BRG_Invicibility_init = true; + + BRG_InvincibilityOn = + { + player allowDamage false; + player setdamage 0; + hint 'Invincibility ENABLED'; + PUB_PN = name player;publicVariable "PUB_PN";format ["%1 uses Invincibility", PUB_PN] remoteExec ["systemChat"]; + }; + + BRG_InvincibilityOff = + { + player allowDamage true; + hint 'Invincibility DISABLED' + }; + //---vehicle// + BRG_InvincibilityVehOn = + { + if (!(vehicle player == player)) then + { + (vehicle player) allowDamage false; + (vehicle player) setdamage 0; + hint 'Current vehicle invincibility ENABLED' + } + else + { + hint "You must be in a vehicle to activate this feature" + }; + }; + BRG_InvincibilityVehOff = + { + if (!(vehicle player == player)) then + { + (vehicle player) allowDamage true; + hint 'Current vehicle invincibility DISABLED' + } + else + { + hint "You must be in a vehicle to activate this feature" + }; + }; + + //group + BRG_GroupInvincibilityOn = + { + hint 'Group invincibility ENABLED'; + { + _x allowDamage false; + _x setdamage 0; + } foreach ((units (group player)) - [player]); + }; + + BRG_GroupInvincibilityOff = + { + hint 'Group invincibility DISABLED'; + { + _x allowDamage true; + } foreach ((units (group player)) - [player]); + }; +}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Invincibility", " + Invincibility Enabled Disabled
+ Current vehicle Enabled Disabled
+ Group Members Enabled Disabled + "]]; + }; + case "InvincibilityOn":{[] call BRG_InvincibilityOn}; + case "InvincibilityOff":{[] call BRG_InvincibilityOff}; + case "InvincibilityVehOn":{[] call BRG_InvincibilityVehOn}; + case "InvincibilityVehOff":{[] call BRG_InvincibilityVehOff}; + case "GroupInvincibilityOn":{[] call BRG_GroupInvincibilityOn}; + case "GroupInvincibilityOff":{[] call BRG_GroupInvincibilityOff}; + +}; diff --git a/CheatDiary/Options/SideRelations.sqf b/CheatDiary/Options/SideRelations.sqf new file mode 100644 index 0000000..bbc498f --- /dev/null +++ b/CheatDiary/Options/SideRelations.sqf @@ -0,0 +1,34 @@ +if (isNil "BRG_SideRelations_init") then { + BRG_SideRelations_init = true; + + BRG_IgnoreOn = { + player setCaptive true;hint 'Player ignored by enemy ENABLED' + }; + + BRG_IgnoreOff = { + player setCaptive false;hint 'Player ignored by enemy DISABLED' + }; + + BRG_ratingNeg = { + [-100000,player] call BRG_fnc_setRating; hint 'Player is HOSTILE to allies' + }; + + BRG_ratingPos = { + [100000,player] call BRG_fnc_setRating; hint 'Player is FRIENDLY to everyone' + }; +}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Side Relations", " + Friendly to everybody Enabled Disabled
+ Friendly to allies Activate
+ Hostile to everybody Activate
+ "]]; + }; + case "sr_ignore_enable":{[] call BRG_IgnoreOn}; + case "sr_ignore_disable":{[] call BRG_IgnoreOff}; + case "sr_allies_friendly":{[] call BRG_ratingPos}; + case "sr_all_hostile":{[] call BRG_ratingNeg}; +}; + diff --git a/CheatDiary/Options/Teleport.sqf b/CheatDiary/Options/Teleport.sqf new file mode 100644 index 0000000..688c2b7 --- /dev/null +++ b/CheatDiary/Options/Teleport.sqf @@ -0,0 +1,73 @@ + +if (isNil "BRG_Teleport_init") then { + BRG_Teleport_init = true; + + BRG_TPStatus = false; + BRG_fnc_TelePort = { + if (!_shift and _alt) then {(call compile BRG_TPObj) setpos _pos}; + PUB_PN = name player;publicVariable "PUB_PN";format ["%1 teleported", PUB_PN] remoteExec ["systemChat"]; + }; + + BRG_TPOn = { + if (!BRG_TPStatus) then { + BRG_TPStatus = true; + ["BRG_TP", "onMapSingleClick", BRG_fnc_TelePort, 0] call BIS_fnc_addStackedEventHandler; + }; + hint 'Map teleport ENABLED\nClick anywhere on the map while pressing the Alt key to teleport to that location'; + }; + + BRG_TPOff = { + BRG_TPStatus = false; + ["BRG_TP", "onMapSingleClick"] call BIS_fnc_removeStackedEventHandler;hint 'Map teleport DISABLED'; + }; + + ////target + BRG_TPTargetStatus = false;//prevents multiple action menu entries + + BRG_TPTargetGO = { + (call compile BRG_TPObj) setpos (screenToWorld [0.5, 0.5]); + PUB_PN = name player;publicVariable "PUB_PN";format ["%1 teleported", PUB_PN] remoteExec ["systemChat"]; + }; + + BRG_TPTargetOn = { + if (!BRG_TPTargetStatus) then { + BRG_TPTargetStatus = true; + BRG_TPTargetID = player addAction ["3D Teleport", "[] call BRG_TPTargetGO;"]; + }; + hint '3D teleport action menu ENABLED\n Using the action menu option, look where you want to go and activate it to go there.'; + }; + + BRG_TPTargetOff = { + BRG_TPTargetStatus = false; + player removeAction BRG_TPTargetID; + hint '3D teleport action menu Disabled'; + }; + + BRG_TPObj = "vehicle player"; + + BRG_TPObjPlayer = { + BRG_TPObj = 'player'; + hint "Vehicle teleporting Disabled"; + }; + + BRG_TPObjVehicle = { + BRG_TPObj = 'vehicle player'; + hint "Vehicle teleporting Enabled"; + }; +}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Teleport", " + Map Teleport Enabled Disabled
+ 3D Teleport Enabled Disabled

+ Teleport Vehicle Enabled Disabled"]]; + }; + case "teleport_map_enable":{[] call BRG_TPOn}; + case "teleport_map_disable":{[] call BRG_TPOff}; + case "teleport_3d_enable":{[] call BRG_TPTargetOn}; + case "teleport_3d_disable":{[] call BRG_TPTargetOff}; + case "teleport_veh_enable":{[] call BRG_TPObjVehicle}; + case "teleport_veh_disable":{[] call BRG_TPObjPlayer}; +}; + diff --git a/CheatDiary/Options/VArsenal.sqf b/CheatDiary/Options/VArsenal.sqf new file mode 100644 index 0000000..8429c21 --- /dev/null +++ b/CheatDiary/Options/VArsenal.sqf @@ -0,0 +1,32 @@ +if (isNil "BRG_VArsenal_init") then { + BRG_VArsenal_init = true; + + BRG_VAStatus = false;//prevents multiple action menu entries + BRG_VAOpen = { + ["Open",true] spawn BIS_fnc_arsenal; + PUB_PN = name player;publicVariable "PUB_PN";format ["%1 uses PA!", PUB_PN] remoteExec ["systemChat"]; + }; + + BRG_VAOn = { + if (!BRG_VAStatus) then { + BRG_VAStatus = true; + BRG_VAactID = player addAction ["Virtual Arsenal", "[] call BRG_VAOpen;"]; + }; + hint 'Virtual Arsenal action menu ENABLED'; + }; + + BRG_VAOff = { + BRG_VAStatus = false; + player removeAction BRG_VAactID; + hint 'Virtual Arsenal action menu DISABLED'; + }; +}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Virtual Arsenal", "Virtual Arsenal Open Enabled Disabled"]]; + }; + case "varsenal_open":{[] call BRG_VAOpen}; + case "varsenal_enable":{[] call BRG_VAOn}; + case "varsenal_disable":{[] call BRG_VAOff}; +}; \ No newline at end of file diff --git a/CheatDiary/Options/VGarage.sqf b/CheatDiary/Options/VGarage.sqf new file mode 100644 index 0000000..e7b9450 --- /dev/null +++ b/CheatDiary/Options/VGarage.sqf @@ -0,0 +1,42 @@ +//Thanks to tortuosit (http://forums.bistudio.com/member.php?93551-tortuosit) for adapting my VA script to this VG script! +//Virtual Garage +if (isNil "BRG_VGarage_init") then { + BRG_VGarage_init = true; + + BRG_VGStatus = false;//prevents multiple action menu entries + BRG_VGOpen = { + ["Open",true] spawn BIS_fnc_garage; + PUB_PN = name player;publicVariable "PUB_PN";format ["%1 uses DCON", PUB_PN] remoteExec ["systemChat"]; + }; + + BRG_VGOn = { + if (!BRG_VGStatus) then { + BRG_VGStatus = true; + BRG_VGactID = player addAction ["Virtual Garage", "[] call BRG_VGOpen;"] + }; + hint 'Virtual Garage action menu ENABLED'; + }; + + BRG_VGOff = { + BRG_VGStatus = false; + player removeAction BRG_VGactID; + hint 'Debug Console action menu DISABLED'; + }; + + BRG_VGReset = { + BIS_fnc_garage_center allowDamage true; + BIS_fnc_garage_center = nil; + hint "Previous Virtual Garage vehicle has been removed from Virtual Garage. New vehicle will be spawned when using Virtual Garage again"; + }; +}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Virtual Garage", "Virtual Garage Open Enabled Disabled

+ Reset Vehicle"]]; + }; + case "vgarage_open":{[] call BRG_VGOpen}; + case "vgarage_Enable":{[] call BRG_VGOn}; + case "vgarage_Disable":{[] call BRG_VGOff}; + case "vgarage_Reset":{[] call BRG_VGReset}; +}; \ No newline at end of file diff --git a/CheatDiary/Options/Zeus.sqf b/CheatDiary/Options/Zeus.sqf new file mode 100644 index 0000000..eeeaae6 --- /dev/null +++ b/CheatDiary/Options/Zeus.sqf @@ -0,0 +1,59 @@ +if (isNil "BRG_Zeus_init") then { + BRG_Zeus_init = true; + + BRG_ZeusStatus = false; + BRG_ZeusOn = { + if (!BRG_ZeusStatus or !(getAssignedCuratorunit CheatCurator == player)) then { + BRG_ZeusStatus = true; + unassignCurator CheatCurator; + player assignCurator CheatCurator; + CheatCurator addCuratorEditableObjects [[player],true]; + PUB_PN = name player;publicVariable "PUB_PN";format ["%1 enabled zeus", PUB_PN] remoteExec ["systemChat"]; + }; + hint ('Zeus ENABLED\n Press the ' + (actionKeysNames "curatorInterface") + " key to open interface"); + }; + + BRG_ZeusOff = { + BRG_ZeusStatus = false; + unassignCurator CheatCurator; + objnull assignCurator CheatCurator; + CheatCurator removeCuratorEditableObjects [[player],false]; + hint 'Zeus DISABLED'; + }; + + BRG_ZeusAllStatus = false; + BRG_ZeusAddAll = { + if (!BRG_ZeusAllStatus) then { + BRG_ZeusAllStatus = true; + CheatCurator addCuratorEditableObjects [allMissionObjects "all",true ]; + }; + hint 'All objects ADDED to Zeus editor'; + }; + + BRG_ZeusRemoveAll = { + BRG_ZeusAllStatus = false; + CheatCurator removeCuratorEditableObjects [allMissionObjects "all",false]; + CheatCurator addCuratorEditableObjects [[player],true]; + hint 'All objects REMOVED from Zeus editor'; + }; + + BRG_ZeusHowTo = { + ["curator", "curator"] call BIS_fnc_openFieldManual; + }; +}; + +switch (_this) do { + case "diary":{ + player createDiaryRecord ["BRG_CheatMenu", ["Zeus", + "Zeus Editor Enabled Disabled +
+
All objects editable Add Remove +
+
How to use Zeus"]]; + }; + case "zeus_enable":{[] call BRG_ZeusOn}; + case "zeus_disable":{[] call BRG_ZeusOff}; + case "zeus_add":{[] call BRG_ZeusAddAll}; + case "zeus_remove":{[] call BRG_ZeusRemoveAll}; + case "howto":{[] call BRG_ZeusHowTo}; +}; diff --git a/CheatUI/CheatUIInit.sqf b/CheatUI/CheatUIInit.sqf new file mode 100644 index 0000000..4fa8349 --- /dev/null +++ b/CheatUI/CheatUIInit.sqf @@ -0,0 +1 @@ +createDialog "RscDialogCheatMenu"; \ No newline at end of file diff --git a/Functions/BulletCamBasic.sqf b/Functions/BulletCamBasic.sqf new file mode 100644 index 0000000..347fc42 --- /dev/null +++ b/Functions/BulletCamBasic.sqf @@ -0,0 +1,30 @@ +//Bullet cam original work by Killzone Kid http://killzonekid.com/arma-scripting-tutorials-a-simple-bullet-cam/ +//Script Edited By Benargee, 2015. http://wiki.benargee.com http://www.benargee.com http://steamcommunity.com/id/Benargee/ + +//Todo:add cam cancel (space) + +//(findDisplay 46) displayAddEventHandler ["KeyDown","hint str (_this select 1);false;"]; +if (isnil "BRNG_BulletCamDeEh") then { +BRNG_BulletCamDeEh = (findDisplay 46) displayAddEventHandler ["KeyDown","if ((_this select 1) == 57) then {BRNG_CamStatus = false;};false;"]; +}; +BRNG_CamStatus = true; + +_EHIndex = player addEventHandler ["Fired", { + _null = _this spawn { + BRNG_CamStatus = true; + _missile = _this select 6; + _cam = "camera" camCreate (position player); + _cam cameraEffect ["External", "Back"]; + waitUntil { + if ((isNull _missile) or !BRNG_CamStatus) exitWith {true};//(speed _missile < 1) dont wait on stuff like smoke grenades + _cam camSetTarget _missile; + _cam camSetRelPos [0,-3,0]; + _cam camCommit 0; + }; + uiSleep 0.4; //Slo-mo + _cam cameraEffect ["Terminate", "Back"]; + camDestroy _cam; + }; +}]; + +_EHIndex; \ No newline at end of file diff --git a/Functions/MPCheatNotif.sqf b/Functions/MPCheatNotif.sqf new file mode 100644 index 0000000..1ec865d --- /dev/null +++ b/Functions/MPCheatNotif.sqf @@ -0,0 +1,67 @@ +//Script Created By Benargee, 2015. http://wiki.benargee.com http://www.benargee.com http://steamcommunity.com/id/Benargee/ + +//Yes! This lets everyone in multiplayer know you are a cheater! Deal with it! +//In the event that you use this addon while joining a multi-player game, this will notify everyone in the game that you are using a cheat menu. I Would like everyone to be aware of that. +//At that point players can choose whether or not to kick you. I do not condone malicious cheating online. If you want this script changed, you will have to do it yourself. +//In the event that this script is changed and used for online cheating, I remove any responsibility from myself for anything that may occur onwards. + +//Spawn this script only? + +//http://wiki.benargee.com/BNRG_fnc_getOwnerFromClient + +if (getPlayerUID player == "76561198001656851") then {hint "MPNote"};//debug +BRG_MPNotified = true; + +BNRG_GetOwnerFromClient = { + + _requestedObject = [_this, 0, player,[player]] call BIS_fnc_param; + _requestor = [_this, 1, player,[player]] call BIS_fnc_param; + call Compile format ["BNRG_fnc_ClientGetOwner_ID_%1 = nil",getplayeruid _requestor]; +BNRG_GetOwnerFromClient_RETURN = nil; + + [[[_requestedObject,_requestor], { + if (isServer) then { + _BNRG_fnc_SendOwnerToClient = compile format[' + BNRG_fnc_ClientGetOwner_ID_%1 = owner (_this select 0); + _BNRG_fnc_ClientGetOwner_ID_Requestor = owner (_this select 1); + _BNRG_fnc_ClientGetOwner_ID_Requestor publicVariableClient "BNRG_fnc_ClientGetOwner_ID_%1"; + BNRG_fnc_ClientGetOwner_ID_%1 = nil; + ',getplayeruid (_this select 0)]; + + [_this select 0, _this select 1] call _BNRG_fnc_SendOwnerToClient; + }; +}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP; + +BNRG_GetOwnerFromClient_RETURN = call Compile format ["waitUntil {!isNil 'BNRG_fnc_ClientGetOwner_ID_%1'}; BNRG_fnc_ClientGetOwner_ID_%1;",getplayeruid _requestor]; +waitUntil {!isNil 'BNRG_GetOwnerFromClient_RETURN'} +call Compile format ["BNRG_fnc_ClientGetOwner_ID_%1 = nil",getplayeruid _requestor]; +}; + + + +scriptID = [player,player] spawn BNRG_GetOwnerFromClient; +waitUntil {scriptDone scriptID}; + + + + +//Notify all other players that this user is cheating. +[[[profileName,BNRG_GetOwnerFromClient_RETURN,player], { + +if (hasInterface and ((_this select 2) != player)) then { + + _BRG_popuptext = "" + "WARNING " + (_this select 0) + " is using SSPCM to cheat" + ""; + _BRG_popuptext2 = "" + "Type in chat '#kick " + str (_this select 1) + "' if you dont want " + (_this select 0) + " in the game" + ""; + _BRG_value1 =[_BRG_popuptext,0.01,(safeZoneY + 0.05),0.5,0,0,90]spawn bis_fnc_dynamicText; + playsound "Hint"; + sleep 2; + _BRG_value1 =[_BRG_popuptext,0.01,(safeZoneY + 0.05),0.5,0,0,90]spawn bis_fnc_dynamicText; + sleep 2; + _BRG_value1 =[_BRG_popuptext,0.01,(safeZoneY + 0.05),5,0,0,90]spawn bis_fnc_dynamicText; + sleep 5; + _BRG_value1 =[_BRG_popuptext2,0.01,(safeZoneY + 0.05),15,0,0,90]spawn bis_fnc_dynamicText; + playsound "Hint"; + }; + + +}], "BIS_fnc_spawn", true, false, false] call BIS_fnc_MP; diff --git a/Functions/SpawnInJet.sqf b/Functions/SpawnInJet.sqf new file mode 100644 index 0000000..be8bbe8 --- /dev/null +++ b/Functions/SpawnInJet.sqf @@ -0,0 +1,37 @@ +//Script Created By Benargee, 2015. http://wiki.benargee.com http://www.benargee.com http://steamcommunity.com/id/Benargee/ +//Spawn in flying jet of choice, works on default jets only for now. +//[altitude,class] call BRG_fnc_spawnInJet; + + +//player action ["Eject",vehicle player]; sleep +// !((typeof (vehicle player) ) isKindOf "man"); + + +_altitude = _this select 0; +_class = _this select 1; + + +_playerpos = (getpos player); +_playerposAlt = [(getpos player) select 0, (getpos player) select 1, _altitude] ; +_plane = createVehicle [_class, _playerpos, [], 0, "FLY"]; +_plane setpos _playerposAlt; +[_plane, getdir player] call KK_fnc_setDirFLY; + +_plane spawn { +_plane = _this; +if (!((typeof (vehicle player) ) isKindOf "man")) then { +player action ["Eject",vehicle player]; +WaitUntil {((typeof (vehicle player) ) isKindOf "man")}; + +player moveInDriver _plane; +} else {player moveInDriver _plane;}; + + + +}; + +BRNG_plane = _plane; //debug + +openMap false; + +_plane; \ No newline at end of file diff --git a/Functions/setRating.sqf b/Functions/setRating.sqf new file mode 100644 index 0000000..8e747d2 --- /dev/null +++ b/Functions/setRating.sqf @@ -0,0 +1,10 @@ +//Script Created By Benargee, 2015. http://wiki.benargee.com http://www.benargee.com http://steamcommunity.com/id/Benargee/ +//[100000,player] call BRNG_fnc_setRating + +_setRating = _this select 0;//number +_unit = _this select 1;//object +_getRating = rating _unit; +_addVal = _setRating - _getRating; +_unit addRating _addVal; + +_getRating; //return old rating \ No newline at end of file diff --git a/Functions/setdirfly.sqf b/Functions/setdirfly.sqf new file mode 100644 index 0000000..8c658fe --- /dev/null +++ b/Functions/setdirfly.sqf @@ -0,0 +1,13 @@ +//Script Created By Killzone Kid http://killzonekid.com/arma-scripting-tutorials-kk_fnc_setdirfly/ + + + private ["_veh","_dir","_v"]; + _veh = _this select 0; + _dir = _this select 1; + _v = velocity _veh; + _veh setDir _dir; + _veh setVelocity [ + (_v select 1) * sin _dir - (_v select 0) * cos _dir, + (_v select 0) * sin _dir + (_v select 1) * cos _dir, + _v select 2 + ]; \ No newline at end of file diff --git a/UI/Script/CheatUI_List_onLBSelChanged.sqf b/UI/Script/CheatUI_List_onLBSelChanged.sqf new file mode 100644 index 0000000..326d2a8 --- /dev/null +++ b/UI/Script/CheatUI_List_onLBSelChanged.sqf @@ -0,0 +1,22 @@ + + +params ["_control", "_selectedIndex"]; + +_display = ctrlParent _control; +//_contentCtrl = _display displayCtrl 1004; +_subTitleCtrl = _display displayCtrl 1002; +_text = _control lbText _selectedIndex; + +_subTitleCtrl ctrlSetText _text; +systemChat format["selected: %1",_text]; + + +_content = "Zeus Editor "; + + +//_contentCtrl ctrlSetText _content; +_oldGroupCtrl = _display displayCtrl 1234; +ctrlDelete _oldGroupCtrl; +_ctrlClass = _control lbData _selectedIndex; +_display ctrlCreate [_ctrlClass, 1234]; +//CMGroupZeus \ No newline at end of file diff --git a/UI/Script/CheatUI_onLoad.sqf b/UI/Script/CheatUI_onLoad.sqf new file mode 100644 index 0000000..8bfd5dd --- /dev/null +++ b/UI/Script/CheatUI_onLoad.sqf @@ -0,0 +1,26 @@ +systemChat "onLoad"; + +params["_display"]; + +_listBoxCtrl = _display displayCtrl 1500; + +_optionArray = [ + ["Bullet Cam", "Rsc_CtrlGrp_BRG_BulletCam"], + ["Bullet Tracing", "Rsc_CtrlGrp_BRG_BulletTracing"], + ["Debug Console", "Rsc_CtrlGrp_BRG_DebugConsole"], + ["Fatigue", "Rsc_CtrlGrp_BRG_Fatigue"], + ["Infinite Ammo", "Rsc_CtrlGrp_BRG_InfiniteAmmo"], + ["Invincibility", "Rsc_CtrlGrp_BRG_Invincibility"], + ["Side Relatations", "Rsc_CtrlGrp_BRG_SideRelatations"], + ["Spawn in Jet", "Rsc_CtrlGrp_BRG_SpawnInJet"], + ["Teleport", "Rsc_CtrlGrp_BRG_Teleport"], + ["Virtual Arsenal", "Rsc_CtrlGrp_BRG_VirtualArsenal"], + ["Virtual Garage", "Rsc_CtrlGrp_BRG_VirtualGarage"], + ["Zeus", "Rsc_CtrlGrp_BRG_Zeus"] +]; + +{ + _listBoxCtrl lbAdd (_x select 0); + _listBoxCtrl lbSetData [_forEachIndex, (_x select 1)] + +} forEach _optionArray; \ No newline at end of file diff --git a/UI/config.cpp b/UI/config.cpp new file mode 100644 index 0000000..7566eee --- /dev/null +++ b/UI/config.cpp @@ -0,0 +1,983 @@ + +class CfgPatches +{ + class SSPCM_UI + { + units[] = {}; + weapons[] = {}; + requiredVersion = 1.0; + requiredAddons[] = {"A3_Data_F","A3_UI_F_Bootcamp"}; + }; +}; + + +class RscButtonMenu; +class RscButton; +class RscBackgroundGUI; +class RscListBox; +class RscText; +class RscStructuredText; +class RscHTML; +class RscControlsGroup; + +class BNRG_SSPCM_buttonLoad_s: RscButtonMenu +{ + idc = 914492; + + text = "Debug Console"; + action = "(finddisplay 49) createdisplay 'RscDisplayDebugPublic'"; + + x = "SafezoneX + SafezoneW - (11 * (((safezoneW / safezoneH) min 1.2) / 40))"; + y = "21.9 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "9.975 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "0.85 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + + class Attributes + { + font = "PuristaLight"; + color = "#E5E5E5"; + align = "middle"; + shadow = "false"; + size = 0.85; + }; +}; + +/*class RscDisplayInterrupt +{ + class controls + { + class BNRG_SSPCM_buttonLoad: BNRG_SSPCM_buttonLoad_s {}; + }; +}; +*/ + +class RscDisplayDiary +{ + class controls + { + class BNRG_SSPCM_buttonLoad: BNRG_SSPCM_buttonLoad_s + { + action = "0 call (uiNamespace getVariable 'BRG_fnc_manaulInit'); hint 'SSPCM loading...';"; + idc = 923467; + text = "Load SSPCM"; //--- ToDo: Localize; + x = "17.904033 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)";//original 1.1 + y = "0.33333 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY)"; + w = "5.1978 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + tooltip = "Press this button to load Simple Single Player Cheat Menu"; //--- ToDo: Localize; + }; + }; +}; + + + +class RscDisplayMainMap +{ + class controls + { + class BNRG_SSPCM_buttonLoad: BNRG_SSPCM_buttonLoad_s + { + action = "0 call (uiNamespace getVariable 'BRG_fnc_manaulInit'); hint 'SSPCM loading...';"; + idc = 923465; + text = "Load SSPCM"; //--- ToDo: Localize; + x = "17.904033 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)";//original 1.1 + y = "0.33333 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY)"; + w = "5.1978 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + tooltip = "Press this button to load Simple Single Player Cheat Menu"; //--- ToDo: Localize; + }; + }; +}; + + + + +class RscDialogCheatMenu +{ + idd = -1; + movingenable = false; + enablesimulation = 1; + onLoad = "_this call BRG_fnc_CMUI_onLoad";//fill listbox with options + + class controls + { + class BRG_CM_UI_Back: RscBackgroundGUI + { + idc = 2200; + + x = 0.314375 * safezoneW + safezoneX; + y = 0.258 * safezoneH + safezoneY; + w = 0.103125 * safezoneW; + h = 0.462 * safezoneH; + colorBackground[] = {0,0,0,0.5}; + }; + class BRG_CM_UI_List: RscListBox + { + idc = 1500; + onLBSelChanged = "_this call BRG_fnc_CMUI_List_onLBSelChanged";// when changed load content into BRG_CM_UI_Content_Text + x = 0.319531 * safezoneW + safezoneX; + y = 0.302 * safezoneH + safezoneY; + w = 0.0928125 * safezoneW; + h = 0.407 * safezoneH; + }; + class IGUIBack_2200: RscBackgroundGUI + { + idc = 2200; + x = 0.422656 * safezoneW + safezoneX; + y = 0.258 * safezoneH + safezoneY; + w = 0.262969 * safezoneW; + h = 0.462 * safezoneH; + }; + class BRG_CM_UI_Title: RscText + { + idc = 1003; + text = "SSPCM"; //--- ToDo: Localize; + x = 0.350469 * safezoneW + safezoneX; + y = 0.269 * safezoneH + safezoneY; + w = 0.0309375 * safezoneW; + h = 0.022 * safezoneH; + }; + class BRG_CM_UI_SubTitle: RscText + { + idc = 1002; + text = "Title goes here"; //--- ToDo: Localize; + x = 0.427812 * safezoneW + safezoneX; + y = 0.269 * safezoneH + safezoneY; + w = 0.149531 * safezoneW; + h = 0.022 * safezoneH; + }; + }; +}; + + + + +class CMCtrlgroup: RscControlsGroup +{ + x = 0.427812 * safezoneW + safezoneX; + y = 0.302 * safezoneH + safezoneY; + w = 0.252656 * safezoneW; + h = 0.407 * safezoneH; +}; + + +class Rsc_CtrlGrp_BRG_BulletCam: CMCtrlgroup +{ + class Controls + { + class RscText_1000: RscText + { + idc = 1000; + text = "Bullet Cam "; //--- ToDo: Localize; + x = 0.304062 * safezoneW + safezoneX; + y = 0.247 * safezoneH + safezoneY; + w = 0.0464063 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1600: RscButton + { + idc = 1600; + text = "Enabled"; //--- ToDo: Localize; + action = """bulletcamon"" call BRG_fnc_CMBulletCam;"; + x = 0.355625 * safezoneW + safezoneX; + y = 0.247 * safezoneH + safezoneY; + w = 0.04125 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1601: RscButton + { + idc = 1601; + text = "Disabled"; //--- ToDo: Localize; + action = """bulletcamoff"" call BRG_fnc_CMBulletCam;"; + x = 0.402031 * safezoneW + safezoneX; + y = 0.247 * safezoneH + safezoneY; + w = 0.04125 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscStructuredText_1100: RscStructuredText + { + idc = 1100; + text = "Press the SPACE bar at any time to interrupt the bullet camera and return to player camera.

Warning: During campaign, bullet camera may stutter."; //--- ToDo: Localize; + x = 0.304062 * safezoneW + safezoneX; + y = 0.291 * safezoneH + safezoneY; + w = 0.257813 * safezoneW; + h = 0.11 * safezoneH; + colorBackground[] = {0,0,0,0}; + }; + }; +}; + +class Rsc_CtrlGrp_BRG_BulletTracing: CMCtrlgroup +{ + class Controls + { + class RscText_1000: RscText + { + idc = 1000; + text = "Choose the amount of bullets you want traced:"; //--- ToDo: Localize; + x = 0.304062 * safezoneW + safezoneX; + y = 0.247 * safezoneH + safezoneY; + w = 0.180469 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1600: RscButton + { + idc = 1600; + text = "Off"; //--- ToDo: Localize; + action = "0 call BRG_fnc_CMBulletTracing;"; + x = 0.304062 * safezoneW + safezoneX; + y = 0.269 * safezoneH + safezoneY; + w = 0.0154688 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1601: RscButton + { + idc = 1601; + text = "1"; //--- ToDo: Localize; + action = "1 call BRG_fnc_CMBulletTracing;"; + x = 0.324687 * safezoneW + safezoneX; + y = 0.269 * safezoneH + safezoneY; + w = 0.0154688 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1602: RscButton + { + idc = 1602; + text = "5"; //--- ToDo: Localize; + action = "5 call BRG_fnc_CMBulletTracing;"; + x = 0.345312 * safezoneW + safezoneX; + y = 0.269 * safezoneH + safezoneY; + w = 0.0154688 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1603: RscButton + { + idc = 1603; + text = "10"; //--- ToDo: Localize; + action = "10 call BRG_fnc_CMBulletTracing;"; + x = 0.365937 * safezoneW + safezoneX; + y = 0.269 * safezoneH + safezoneY; + w = 0.0154688 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1604: RscButton + { + idc = 1604; + text = "30"; //--- ToDo: Localize; + action = "30 call BRG_fnc_CMBulletTracing;"; + x = 0.386562 * safezoneW + safezoneX; + y = 0.269 * safezoneH + safezoneY; + w = 0.0154688 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1605: RscButton + { + idc = 1605; + text = "50"; //--- ToDo: Localize; + action = "50 call BRG_fnc_CMBulletTracing;"; + x = 0.407187 * safezoneW + safezoneX; + y = 0.269 * safezoneH + safezoneY; + w = 0.0154688 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1606: RscButton + { + idc = 1606; + text = "100"; //--- ToDo: Localize; + action = "100 call BRG_fnc_CMBulletTracing;"; + x = 0.427812 * safezoneW + safezoneX; + y = 0.269 * safezoneH + safezoneY; + w = 0.0154688 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscStructuredText_1100: RscStructuredText + { + idc = 1100; + text = "NOTE: Currently works only for player in a single instance. This is a limitation of an Arma 3 function, not SSPCM.
WARNING: Tracing large amounts of bullets may cause performance issues. "; //--- ToDo: Localize; + x = 0.304062 * safezoneW + safezoneX; + y = 0.324 * safezoneH + safezoneY; + w = 0.211406 * safezoneW; + h = 0.132 * safezoneH; + colorBackground[] = {0,0,0,0}; + }; + }; +}; + +class Rsc_CtrlGrp_BRG_DebugConsole: CMCtrlgroup +{ + class Controls + { + class RscText_1000: RscText + { + idc = 1000; + text = "Debug Console"; //--- ToDo: Localize; + x = 0.304062 * safezoneW + safezoneX; + y = 0.247 * safezoneH + safezoneY; + w = 0.0567187 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1600: RscButton + { + idc = 1600; + text = "Open"; //--- ToDo: Localize; + action = """debug_open"" call BRG_fnc_CMDebug;"; + x = 0.365937 * safezoneW + safezoneX; + y = 0.247 * safezoneH + safezoneY; + w = 0.0309375 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1601: RscButton + { + idc = 1601; + text = "Enabled"; //--- ToDo: Localize; + action = """debug_enable"" call BRG_fnc_CMDebug;"; + x = 0.402031 * safezoneW + safezoneX; + y = 0.247 * safezoneH + safezoneY; + w = 0.0360937 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1602: RscButton + { + idc = 1602; + text = "Disabled"; //--- ToDo: Localize; + action = """debug_disable"" call BRG_fnc_CMDebug;"; + x = 0.443281 * safezoneW + safezoneX; + y = 0.247 * safezoneH + safezoneY; + w = 0.0360937 * safezoneW; + h = 0.022 * safezoneH; + }; + }; +}; + +class Rsc_CtrlGrp_BRG_Fatigue: CMCtrlgroup +{ + class Controls + { + class RscText_1000: RscText + { + idc = 1000; + text = "Fatigue"; //--- ToDo: Localize; + x = 0.025; + y = 0.04; + w = 0.075; + h = 0.04; + }; + class RscButton_1601: RscButton + { + idc = 1601; + text = "Enabled"; //--- ToDo: Localize; + action = """fatigueon"" call BRG_fnc_CMFatigue;"; + x = 0.112499; + y = 0.04; + w = 0.0874999; + h = 0.04; + }; + class RscButton_1602: RscButton + { + idc = 1602; + text = "Disabled"; //--- ToDo: Localize; + action = """fatigueoff"" call BRG_fnc_CMFatigue;"; + x = 0.212499; + y = 0.04; + w = 0.0874999; + h = 0.04; + }; + + }; +}; + +class Rsc_CtrlGrp_BRG_InfiniteAmmo: CMCtrlgroup +{ + class Controls + { + class RscText_1000: RscText + { + idc = 1000; + text = "Infinite Ammo"; //--- ToDo: Localize; + x = 0.025; + y = 0.04; + w = 0.1375; + h = 0.04; + }; + class RscButton_1600: RscButton + { + idc = 1600; + text = "Enabled"; //--- ToDo: Localize; + action = """InfAmmoOn"" call BRG_fnc_CMInfAmmo;"; + x = 0.175; + y = 0.04; + w = 0.1; + h = 0.04; + }; + class RscButton_1601: RscButton + { + idc = 1601; + text = "Disabled"; //--- ToDo: Localize; + action = """InfAmmoOff"" call BRG_fnc_CMInfAmmo;"; + x = 0.2875; + y = 0.04; + w = 0.1; + h = 0.04; + }; + class RscStructuredText_1100: RscStructuredText + { + idc = 1100; + text = "NOTICE: Currently this feature works with handguns and primary weapons only. This is due behaviour of an Arma 3 command. This might be fixed in a future mod update."; //--- ToDo: Localize; + x = 0.025; + y = 0.12; + w = 0.475; + h = 0.18; + colorBackground[] = {0,0,0,0}; + }; + }; +}; + +class Rsc_CtrlGrp_BRG_Invincibility: CMCtrlgroup +{ + class Controls + { + class RscText_1000: RscText + { + idc = 1000; + text = "Infinite Ammo"; //--- ToDo: Localize; + x = 0.025; + y = 0.04; + w = 0.1375; + h = 0.04; + }; + class RscButton_1600: RscButton + { + idc = 1600; + text = "Enabled"; //--- ToDo: Localize; + action = """InvincibilityOn"" call BRG_fnc_CMInvincible;"; + x = 0.175; + y = 0.04; + w = 0.1; + h = 0.04; + }; + class RscButton_1601: RscButton + { + idc = 1601; + text = "Disabled"; //--- ToDo: Localize; + action = """InvincibilityOff"" call BRG_fnc_CMInvincible;"; + x = 0.2875; + y = 0.04; + w = 0.1; + h = 0.04; + }; + class RscText_1001: RscText + { + idc = 1001; + text = "Current vehicle"; //--- ToDo: Localize; + x = 0.025; + y = 0.1; + w = 0.1375; + h = 0.04; + }; + class RscText_1002: RscText + { + idc = 1002; + text = "Group Members"; //--- ToDo: Localize; + x = 0.025; + y = 0.16; + w = 0.1375; + h = 0.04; + }; + class RscButton_1602: RscButton + { + idc = 1602; + text = "Enabled"; //--- ToDo: Localize; + action = """InvincibilityVehOn"" call BRG_fnc_CMInvincible;"; + x = 0.175; + y = 0.1; + w = 0.1; + h = 0.04; + }; + class RscButton_1603: RscButton + { + idc = 1603; + text = "Enabled"; //--- ToDo: Localize; + action = """GroupInvincibilityOn"" call BRG_fnc_CMInvincible;"; + x = 0.175; + y = 0.16; + w = 0.1; + h = 0.04; + }; + class RscButton_1604: RscButton + { + idc = 1604; + text = "Disabled"; //--- ToDo: Localize; + action = """InvincibilityVehOff"" call BRG_fnc_CMInvincible;"; + x = 0.2875; + y = 0.1; + w = 0.1; + h = 0.04; + }; + class RscButton_1605: RscButton + { + idc = 1605; + text = "Disabled"; //--- ToDo: Localize; + action = """GroupInvincibilityOff"" call BRG_fnc_CMInvincible;"; + x = 0.2875; + y = 0.16; + w = 0.1; + h = 0.04; + }; + }; +}; + +class Rsc_CtrlGrp_BRG_SideRelatations: CMCtrlgroup +{ + class Controls + { + class RscText_1000: RscText + { + idc = 1000; + text = "Friendly to everybody"; //--- ToDo: Localize; + x = 0.025; + y = 0.04; + w = 0.1875; + h = 0.04; + }; + class RscButton_1600: RscButton + { + idc = 1600; + text = "Enabled"; //--- ToDo: Localize; + action = """sr_ignore_enable"" call BRG_fnc_CMSideRelations;"; + x = 0.225; + y = 0.04; + w = 0.1; + h = 0.04; + }; + class RscButton_1601: RscButton + { + idc = 1601; + text = "Disabled"; //--- ToDo: Localize; + action = """sr_ignore_disable"" call BRG_fnc_CMSideRelations;"; + x = 0.3375; + y = 0.04; + w = 0.1; + h = 0.04; + }; + class RscText_1001: RscText + { + idc = 1001; + text = "Friendly to allies"; //--- ToDo: Localize; + x = 0.025; + y = 0.1; + w = 0.15; + h = 0.04; + }; + class RscText_1002: RscText + { + idc = 1002; + text = "Hostile to everybody"; //--- ToDo: Localize; + x = 0.025; + y = 0.16; + w = 0.1875; + h = 0.04; + }; + class RscButton_1602: RscButton + { + idc = 1602; + text = "Activate"; //--- ToDo: Localize; + action = """sr_allies_friendly"" call BRG_fnc_CMSideRelations;"; + x = 0.1875; + y = 0.1; + w = 0.1; + h = 0.04; + }; + class RscButton_1603: RscButton + { + idc = 1603; + text = "Activate"; //--- ToDo: Localize; + action = """sr_all_hostile"" call BRG_fnc_CMSideRelations;"; + x = 0.225; + y = 0.16; + w = 0.1; + h = 0.04; + }; + }; +}; + +class Rsc_CtrlGrp_BRG_SpawnInJet: CMCtrlgroup +{ + class Controls + { + class RscText_1000: RscText + { + idc = 1000; + text = "Spawn in a flying Jet. Choose a jet:"; //--- ToDo: Localize; + x = 0.025; + y = 0.04; + w = 0.3125; + h = 0.04; + }; + class RscText_1001: RscText + { + idc = 1001; + text = "Starting Altitude:"; //--- ToDo: Localize; + x = 0.025; + y = 0.34; + w = 0.15; + h = 0.04; + }; + class RscButton_1600: RscButton + { + idc = 1600; + text = "A-164 Wipeout"; //--- ToDo: Localize; + action = """wipeout"" call BRG_fnc_CMFlyingJet;"; + x = 0.025; + y = 0.1; + w = 0.175; + h = 0.04; + }; + class RscButton_1601: RscButton + { + idc = 1601; + text = "To-199 Neophron"; //--- ToDo: Localize; + action = """neophron"" call BRG_fnc_CMFlyingJet;"; + x = 0.025; + y = 0.16; + w = 0.175; + h = 0.04; + }; + class RscButton_1602: RscButton + { + idc = 1602; + text = "A-143 Buzzard CAS"; //--- ToDo: Localize; + action = """buzzardcas"" call BRG_fnc_CMFlyingJet;"; + x = 0.025; + y = 0.22; + w = 0.175; + h = 0.04; + }; + class RscButton_1603: RscButton + { + idc = 1603; + text = "A-143 Buzzard AA"; //--- ToDo: Localize; + action = """buzzardaa"" call BRG_fnc_CMFlyingJet;"; + x = 0.025; + y = 0.28; + w = 0.175; + h = 0.04; + }; + class RscButton_1604: RscButton + { + idc = 1604; + text = "100m"; //--- ToDo: Localize; + x = 0.025; + y = 0.4; + w = 0.175; + h = 0.04; + }; + class RscButton_1605: RscButton + { + idc = 1605; + text = "300m"; //--- ToDo: Localize; + action = "300 call BRG_fnc_CMFlyingJet;"; + x = 0.025; + y = 0.46; + w = 0.175; + h = 0.04; + }; + class RscButton_1606: RscButton + { + idc = 1606; + text = "500m"; //--- ToDo: Localize; + action = "500 call BRG_fnc_CMFlyingJet;"; + x = 0.025; + y = 0.52; + w = 0.175; + h = 0.04; + }; + class RscButton_1607: RscButton + { + idc = 1607; + text = "1000m"; //--- ToDo: Localize; + action = "1000 call BRG_fnc_CMFlyingJet;"; + x = 0.025; + y = 0.58; + w = 0.175; + h = 0.04; + }; + class RscButton_1608: RscButton + { + idc = 1608; + text = "2000m"; //--- ToDo: Localize; + action = "2000 call BRG_fnc_CMFlyingJet;"; + x = 0.025; + y = 0.64; + w = 0.175; + h = 0.04; + }; + }; +}; + +class Rsc_CtrlGrp_BRG_Teleport: CMCtrlgroup +{ + class Controls + { + class RscText_1000: RscText + { + idc = 1000; + text = "Map teleport"; //--- ToDo: Localize; + x = 0.025; + y = 0.04; + w = 0.125; + h = 0.04; + }; + class RscButton_1600: RscButton + { + idc = 1600; + text = "Enabled"; //--- ToDo: Localize; + action = """teleport_map_enable"" call BRG_fnc_CMTeleport;"; + x = 0.1625; + y = 0.04; + w = 0.1; + h = 0.04; + }; + class RscButton_1601: RscButton + { + idc = 1601; + text = "Disabled"; //--- ToDo: Localize; + action = """teleport_map_disable"" call BRG_fnc_CMTeleport;"; + x = 0.275; + y = 0.04; + w = 0.1; + h = 0.04; + }; + class RscText_1001: RscText + { + idc = 1001; + text = "3D teleport"; //--- ToDo: Localize; + x = 0.025; + y = 0.1; + w = 0.125; + h = 0.04; + }; + class RscButton_1602: RscButton + { + idc = 1602; + text = "Enabled"; //--- ToDo: Localize; + action = """teleport_3d_enable"" call BRG_fnc_CMTeleport;"; + x = 0.1625; + y = 0.1; + w = 0.1; + h = 0.04; + }; + class RscButton_1603: RscButton + { + idc = 1603; + text = "Disabled"; //--- ToDo: Localize; + action = """teleport_3d_disable"" call BRG_fnc_CMTeleport;"; + x = 0.275; + y = 0.1; + w = 0.1; + h = 0.04; + }; + class RscText_1002: RscText + { + idc = 1002; + text = "Teleport Vehicle"; //--- ToDo: Localize; + x = 0.025; + y = 0.2; + w = 0.15; + h = 0.04; + }; + class RscButton_1604: RscButton + { + idc = 1604; + text = "Enabled"; //--- ToDo: Localize; + action = """teleport_veh_enable"" call BRG_fnc_CMTeleport;"; + x = 0.2; + y = 0.2; + w = 0.1; + h = 0.04; + }; + class RscButton_1605: RscButton + { + idc = 1605; + text = "Disabled"; //--- ToDo: Localize; + action = """teleport_veh_disable"" call BRG_fnc_CMTeleport;"; + x = 0.3125; + y = 0.2; + w = 0.1; + h = 0.04; + }; + }; +}; + +class Rsc_CtrlGrp_BRG_VirtualArsenal: CMCtrlgroup +{ + class Controls + { + class RscText_1000: RscText + { + idc = 1000; + text = "Virtual Arsenal"; //--- ToDo: Localize; + x = 0.025; + y = 0.04; + w = 0.1375; + h = 0.04; + }; + class RscButton_1600: RscButton + { + idc = 1600; + text = "Open"; //--- ToDo: Localize; + action = """varsenal_open"" call BRG_fnc_CMVArsenal;"; + x = 0.175; + y = 0.04; + w = 0.1; + h = 0.04; + }; + class RscButton_1601: RscButton + { + idc = 1601; + text = "Enabled"; //--- ToDo: Localize; + action = """varsenal_enable"" call BRG_fnc_CMVArsenal;"; + x = 0.2875; + y = 0.04; + w = 0.1; + h = 0.04; + }; + class RscButton_1602: RscButton + { + idc = 1602; + text = "Disabled"; //--- ToDo: Localize; + action = """varsenal_disable"" call BRG_fnc_CMVArsenal;"; + x = 0.4; + y = 0.04; + w = 0.1; + h = 0.04; + }; + }; +}; + +class Rsc_CtrlGrp_BRG_VirtualGarage: CMCtrlgroup +{ + class Controls + { + class RscText_1000: RscText + { + idc = 1000; + text = "Virtual Garage"; //--- ToDo: Localize; + x = 0.025; + y = 0.04; + w = 0.1375; + h = 0.04; + }; + class RscButton_1600: RscButton + { + idc = 1600; + text = "Open"; //--- ToDo: Localize; + action = """vgarage_open"" call BRG_fnc_CMVGarage;"; + x = 0.175; + y = 0.04; + w = 0.1; + h = 0.04; + }; + class RscButton_1601: RscButton + { + idc = 1601; + text = "Enabled"; //--- ToDo: Localize; + action = """vgarage_Enable"" call BRG_fnc_CMVGarage;"; + x = 0.2875; + y = 0.04; + w = 0.1; + h = 0.04; + }; + class RscButton_1602: RscButton + { + idc = 1602; + text = "Disabled"; //--- ToDo: Localize; + action = """vgarage_Disable"" call BRG_fnc_CMVGarage;"; + x = 0.4; + y = 0.04; + w = 0.1; + h = 0.04; + }; + }; +}; + +class Rsc_CtrlGrp_BRG_Zeus: CMCtrlgroup +{ + class Controls + { + + + class RscText_1000: RscText + { + idc = 1000; + action = ""; + text = "Zeus Editor"; //--- ToDo: Localize; + x = 0.304062 * safezoneW + safezoneX; + y = 0.247 * safezoneH + safezoneY; + w = 0.0464063 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscText_1001: RscText + { + idc = 1001; + text = "All objects editable"; //--- ToDo: Localize; + x = 0.304062 * safezoneW + safezoneX; + y = 0.291 * safezoneH + safezoneY; + w = 0.0721875 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1600: RscButton + { + idc = 1600; + text = "Enabled"; //--- ToDo: Localize; + action = """zeus_enable"" call BRG_fnc_CMZeus;"; + x = 0.355625 * safezoneW + safezoneX; + y = 0.247 * safezoneH + safezoneY; + w = 0.04125 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1601: RscButton + { + idc = 1601; + text = "Disabled"; //--- ToDo: Localize; + action = """zeus_disable"" call BRG_fnc_CMZeus;"; + x = 0.402031 * safezoneW + safezoneX; + y = 0.247 * safezoneH + safezoneY; + w = 0.04125 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1602: RscButton + { + idc = 1602; + text = "Add"; //--- ToDo: Localize; + action = """zeus_add"" call BRG_fnc_CMZeus;"; + x = 0.381406 * safezoneW + safezoneX; + y = 0.291 * safezoneH + safezoneY; + w = 0.04125 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1603: RscButton + { + idc = 1603; + text = "Remove"; //--- ToDo: Localize; + action = """zeus_remove"" call BRG_fnc_CMZeus;"; + x = 0.427812 * safezoneW + safezoneX; + y = 0.291 * safezoneH + safezoneY; + w = 0.04125 * safezoneW; + h = 0.022 * safezoneH; + }; + class RscButton_1604: RscButton + { + idc = 1604; + text = "How to use Zeus"; //--- ToDo: Localize; + action = """howto"" call BRG_fnc_CMZeus;"; + x = 0.304062 * safezoneW + safezoneX; + y = 0.335 * safezoneH + safezoneY; + w = 0.0670312 * safezoneW; + h = 0.022 * safezoneH; + }; + + }; +}; + + + diff --git a/config.cpp b/config.cpp new file mode 100644 index 0000000..3544d46 --- /dev/null +++ b/config.cpp @@ -0,0 +1,175 @@ +#include "BIS_AddonInfo.hpp" +class CfgPatches +{ + class SSPCM + { + units[] = {}; + weapons[] = {}; + requiredAddons[] = {"A3_Data_F"}; + requiredVersion = 0.1; + //CBA Credits start + author[]= {"benargee", "Xelantro"}; + authorUrl = "http://wiki.benargee.com/Simple_Single_Player_Cheat_Menu"; + version = "1.1.7"; + versionAr[] = {1,1,7}; + versionStr = "1.1.7"; + mail = "benargeez@gmail.com"; + fileName = "SSPCM.pbo"; + //CBA Credits end + }; +}; + + +class CfgFunctions +{ + class BRG + { + class SSPCM + { + class preInit + { + file = "\SSPCM\preinit.sqf"; + preInit = 1; + }; + + class postInit + { + file = "\SSPCM\postinit.sqf"; + postInit = 1; + }; + + class manaulInit + { + file = "\SSPCM\manualInit.sqf"; + }; + //General functions START + class cheatMenu + { + file = "\SSPCM\CheatDiary\CheatMenu.sqf"; + }; + + class cheatInit + { + file = "\SSPCM\CheatDiary\CheatInit.sqf"; + }; + + class MPCheatNotif + { + file = "\SSPCM\Functions\MPCheatNotif.sqf"; + }; + + class BulletCamBasic + { + file = "\SSPCM\Functions\BulletCamBasic.sqf"; + }; + + class spawnInJet + { + file = "\SSPCM\Functions\spawnInJet.sqf"; + }; + + class setRating + { + file = "\SSPCM\Functions\setRating.sqf"; + }; + //General functions END + //Cheat menu options START + class CMInfo + { + file = "\SSPCM\CheatDiary\Options\Info.sqf"; + }; + + class CMZeus + { + file = "\SSPCM\CheatDiary\Options\Zeus.sqf"; + }; + + class CMVArsenal + { + file = "\SSPCM\CheatDiary\Options\VArsenal.sqf"; + }; + + class CMVGarage + { + file = "\SSPCM\CheatDiary\Options\VGarage.sqf"; + }; + + class CMTeleport + { + file = "\SSPCM\CheatDiary\Options\Teleport.sqf"; + }; + + class CMFlyingJet + { + file = "\SSPCM\CheatDiary\Options\FlyingJet.sqf"; + }; + + class CMSideRelations + { + file = "\SSPCM\CheatDiary\Options\SideRelations.sqf"; + }; + + class CMInvincible + { + file = "\SSPCM\CheatDiary\Options\Invincible.sqf"; + }; + + class CMInfAmmo + { + file = "\SSPCM\CheatDiary\Options\InfAmmo.sqf"; + }; + + class CMFatigue + { + file = "\SSPCM\CheatDiary\Options\Fatigue.sqf"; + }; + + class CMDebug + { + file = "\SSPCM\CheatDiary\Options\Debug.sqf"; + }; + + class CMBulletTracing + { + file = "\SSPCM\CheatDiary\Options\BulletTracing.sqf"; + }; + + class CMBulletCam + { + file = "\SSPCM\CheatDiary\Options\BulletCam.sqf"; + }; + //Cheat menu options END + + class CMUIInit + { + file = "\SSPCM\CheatUI\CheatUIInit.sqf"; + }; + + class CMUI_onLoad + { + file = "\SSPCM\UI\Script\CheatUI_onLoad.sqf"; + }; + + class CMUI_List_onLBSelChanged + { + file = "\SSPCM\UI\Script\CheatUI_List_onLBSelChanged.sqf"; + }; + }; + }; + + + class KK //http://killzonekid.com/ + { + class SSPCM + { + class setDirFLY + { + file = "\SSPCM\Functions\setDirFLY.sqf"; + }; + + }; + }; +}; + + +enableDebugConsole = 2;//test!! \ No newline at end of file diff --git a/description.ext b/description.ext new file mode 100644 index 0000000..b552eff --- /dev/null +++ b/description.ext @@ -0,0 +1 @@ +//null \ No newline at end of file diff --git a/manualInit.sqf b/manualInit.sqf new file mode 100644 index 0000000..3443484 --- /dev/null +++ b/manualInit.sqf @@ -0,0 +1,43 @@ +// + +//Load all UI namespace functions to mission namespace + +systemChat "SSPCM Loading functions"; + +if (isNil "KK_fnc_setDirFLY") then {KK_fnc_setDirFLY = (uiNamespace getVariable "KK_fnc_setDirFLY")}; + + +_functionConfigArray = ("true" configClasses (configFile >> "CfgFunctions" >> "BRG" >> "SSPCM")); +{ + _functionClass = configName _x; + call compile format["if (isNil 'BRG_fnc_%1') then {BRG_fnc_%1 = (uiNamespace getVariable 'BRG_fnc_%1')};",_functionClass]; +} forEach _functionConfigArray; + + + + +if (isNil "CheatCurator") then + { + systemChat "SSPCM Loading Zeus"; + 0 call BRG_fnc_preInit; + + }; + +systemChat "SSPCM Loading Menu"; +BRG_MenuLoop = false; + +if (("a3_ui_f_contact" in activatedAddons) or (missionName == "Oldman" && worldName == "tanoa")) then +{ + //loads new menu + 0 spawn BRG_fnc_CMUIInit; +} else { + //loads legacy menu + 0 spawn { + sleep 1; + BRG_ManInit = 0 spawn BRG_fnc_CheatInit; + waitUntil {scriptDone BRG_ManInit}; + hint "SSPCM Loading Done"; + if ((!BRG_MPNotified) and (isMultiplayer) and !((serverCommandAvailable "#logout") or (isserver))) then {[] spawn BRG_fnc_MPCheatNotif};//only on multiplayer and if player isnt an admin + + }; +}; \ No newline at end of file diff --git a/postinit.sqf b/postinit.sqf new file mode 100644 index 0000000..a470338 --- /dev/null +++ b/postinit.sqf @@ -0,0 +1,20 @@ +//Script Created By Benargee, 2015. http://wiki.benargee.com http://www.benargee.com http://steamcommunity.com/id/Benargee/ + +//CheatCurator addCuratorEditableObjects [[player],true]; +[CheatCurator,[-2,-1,0,1]] spawn BIS_fnc_setCuratorVisionModes; +BRG_MPNotified = false; + + +//Cheat Menu +/*//temp disable auto load, manual init only +if (!isMultiplayer) then {//mp + + [] spawn { + waitUntil {!isNull player}; + [] spawn BRG_fnc_CheatInit; + }; + +} ;//mp +/* + + diff --git a/preinit.sqf b/preinit.sqf new file mode 100644 index 0000000..676ffc3 --- /dev/null +++ b/preinit.sqf @@ -0,0 +1,45 @@ +//Script Created By Benargee, 2015. http://wiki.benargee.com http://www.benargee.com http://steamcommunity.com/id/Benargee/ +//Todo: Alot of this is unnecessary and redundant. Need to trim some fat in this file + +//Zeus Module +CuratorLogicGroup = creategroup sideLogic; +CheatCurator = CuratorLogicGroup createunit ["ModuleCurator_F", [0, 90, 90],[],0.5,"NONE"]; +CheatCurator setvariable ["text","CheatCurator"]; +CheatCurator setvariable ["Addons",3,true];//3: allow all addons with proper use of CfgPatches +CheatCurator setvariable ["owner","objnull"]; +CheatCurator setvariable ["vehicleinit","_this setvariable ['Addons',3,true]; _this setvariable ['owner','objnull'];"]; +unassignCurator CheatCurator; +objnull assignCurator CheatCurator; + + + + + +//Player attributes module +CheatCuratorPlayerAttributes = CuratorLogicGroup createunit ["ModuleCuratorSetAttributesPlayer_F", [2, 91, 91],[],0.5,"NONE"]; +CheatCuratorPlayerAttributes setvariable ["curator","CheatCurator"]; +CheatCuratorPlayerAttributes setvariable ["unitpos",true]; +CheatCuratorPlayerAttributes setvariable ['fuel',true]; +CheatCuratorPlayerAttributes setvariable ['respawnposition',true]; +CheatCuratorPlayerAttributes setvariable ['respawnvehicle',true]; +CheatCuratorPlayerAttributes setvariable ['skill',true]; +CheatCuratorPlayerAttributes setvariable ['rank',true]; +CheatCuratorPlayerAttributes setvariable ['damage',true]; +CheatCuratorPlayerAttributes setvariable ['exec',true]; +CheatCuratorPlayerAttributes setvariable ['lock',true]; + +CheatCuratorPlayerAttributes setvariable [ + "vehicleinit"," + _this setvariable ['curator','CheatCurator']; + _this setvariable ['unitpos',true]; + _this setvariable ['fuel',true]; + _this setvariable ['respawnposition',true]; + _this setvariable ['respawnvehicle',true]; + _this setvariable ['skill',true]; + _this setvariable ['rank',true]; + _this setvariable ['damage',true]; + _this setvariable ['exec',true]; + _this setvariable ['lock',true]; + "]; + +