Results 1 to 4 of 4
  1. #1
    coreball's Avatar
    Join Date
    Oct 2013
    Gender
    male
    Location
    Denver
    Posts
    7
    Reputation
    10
    Thanks
    0

    Question [Help] Menu Script Crashes Game

    So, I took a simple menu script and edited it.
    Please reply if you can find something incorrect...

    Code:
    -- HACK MENUSCRIPT 
    
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    
    if not SimpleMenu then
        SimpleMenu = class()
    
        function SimpleMenu:init(title, message, options)
            self.dialog_data = { title = title, text = message, button_list = {},
                                 id = tostring(math.random(0,0xFFFFFFFF)) }
            self.visible = false
            for _,opt in ipairs(options) do
                local elem = {}
                elem.text = opt.text
                opt.data = opt.data or nil
                opt.callback = opt.callback or nil
                elem.callback_func = callback(self, self, "_do_callback",
                                              { data = opt.data,
                                                callback = opt.callback})
                elem.cancel_button = opt.is_cancel_button or false
                if opt.is_focused_button then
                    self.dialog_data.focus_button = #self.dialog_data.button_list+1
                end
                table.insert(self.dialog_data.button_list, elem)
            end
            return self
        end
    
        function SimpleMenu:_do_callback(info)
            if info.callback then
                if info.data then
                    info.callback(info.data)
                else
                    info.callback()
                end
            end
            self.visible = false
        end
    
        function SimpleMenu:show()
            if self.visible then
                return
            end
            self.visible = true
            managers.system_menu:show(self.dialog_data)
        end
    
        function SimpleMenu:hide()
            if self.visible then
                managers.system_menu:close(self.dialog_data.id)
                self.visible = false
                return
            end
        end
    end
    
    optionone = optionone or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- SET SKILLPOINTS TO 1
    dofile("NoAlarm.lua")
    end
    
    optiontwo = optiontwo or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- SET SKILLPOINTS TO 10
    dofile("Xray.lua")
    end
    
    optionthree = optionthree or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- SET SKILLPOINTS TO 100
    dofile("GodMode.lua")
    end
    
    optionfour = optionfour or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- SET SKILLPOINTS TO 580
    dofile("SemiGodMode.lua")
    end
    
    optionfive = optionfive or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- RESET SKILLPOINTS
    dofile("InfiniteAmmo2.lua")
    end
    
    optionsix = optionsix or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- RESET SKILLPOINTS
    dofile("InfiniteAmmo.lua")
    end
    
    optionseven = optionseven or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- RESET SKILLPOINTS
    dofile("InfiniteEquipmentAndCableTies")
    end
    
    optioneight = optioneight or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- RESET SKILLPOINTS
    dofile("NoTaser.lua")
    end
    
    optionnine = optionnine or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- RESET SKILLPOINTS
    dofile("NoCivPenalty.lua")
    end
    
    optionten = optionten or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- RESET SKILLPOINTS
    dofile("100%ArmorPiercing.lua")
    end
    
    optioneleven = optioneleven or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- RESET SKILLPOINTS
    dofile("Instant500IntimidationsConversions.lua")
    end
    
    optiontwelve = optiontwelve or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- RESET SKILLPOINTS
    dofile("KillAll.lua")
    end
    
    optionthirteen = optionthirteen or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- RESET SKILLPOINTS
    dofile("SpawnAmmo.lua")
    end
    
    optionfourteen = optionfourteen or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- RESET SKILLPOINTS
    dofile("SpawnDoctor.lua")
    end
    
    optionfifteen = optionfifteen or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- RESET SKILLPOINTS
    dofile("DirtyGold.lua")
    end
    
    optionsixteen = optionsixteen or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- RESET SKILLPOINTS
    dofile("ForceLose.lua")
    end
    
    opts = {}
    opts[#opts+1] = { text = "No Alarm", callback = optionone }
    opts[#opts+1] = { text = "X-ray", callback = optiontwo }
    opts[#opts+1] = { text = "God Mode", callback = optionthree }
    opts[#opts+1] = { text = "Semi God Mode", callback = optionfour }
    opts[#opts+1] = { text = "Infinite Ammo + No Reload", callback = optionfive }
    opts[#opts+1] = { text = "Infinite Ammo", callback = optionsix }
    opts[#opts+1] = { text = "Infinite Equipment", callback = optionseven }
    opts[#opts+1] = { text = "No Tasers", callback = optioneight }
    opts[#opts+1] = { text = "No Civ Penalty", callback = optionnine }
    opts[#opts+1] = { text = "Armor Piercing", callback = optionten }
    opts[#opts+1] = { text = "Intimidations And Conversions", callback = optioneleven }
    opts[#opts+1] = { text = "Kill All", callback = optiontwelve }
    opts[#opts+1] = { text = "Spawn Ammo Bag", callback = optionthirteen }
    opts[#opts+1] = { text = "Spawn Doctor Bag", callback = optionfourteen }
    opts[#opts+1] = { text = "Dirty Gold", callback = optionfifteen }
    opts[#opts+1] = { text = "Force Lose", callback = optionsixteen }
    opts[#opts+1] = { text = "CANCEL", is_cancel_button = true }
    mymenu = SimpleMenu:new("Coreball's Hack Menu", "Coreball's Hacks", opts)
    
    mymenu:show()
    By the way, I'm not very experienced at coding.

  2. #2
    Pirate Captain's Avatar
    Join Date
    Sep 2013
    Gender
    male
    Posts
    71
    Reputation
    120
    Thanks
    688
    My Mood
    Bored
    you can forget about dofile and require, those lua commands are out..

    you have to include the code you need in the menu.lua you are working on

  3. The Following User Says Thank You to Pirate Captain For This Useful Post:

    coreball (11-17-2013)

  4. #3
    coreball's Avatar
    Join Date
    Oct 2013
    Gender
    male
    Location
    Denver
    Posts
    7
    Reputation
    10
    Thanks
    0
    I think I messed up.

    Code:
    -- HACK MENUSCRIPT 
    
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    
    if not SimpleMenu then
        SimpleMenu = class()
    
        function SimpleMenu:init(title, message, options)
            self.dialog_data = { title = title, text = message, button_list = {},
                                 id = tostring(math.random(0,0xFFFFFFFF)) }
            self.visible = false
            for _,opt in ipairs(options) do
                local elem = {}
                elem.text = opt.text
                opt.data = opt.data or nil
                opt.callback = opt.callback or nil
                elem.callback_func = callback(self, self, "_do_callback",
                                              { data = opt.data,
                                                callback = opt.callback})
                elem.cancel_button = opt.is_cancel_button or false
                if opt.is_focused_button then
                    self.dialog_data.focus_button = #self.dialog_data.button_list+1
                end
                table.insert(self.dialog_data.button_list, elem)
            end
            return self
        end
    
        function SimpleMenu:_do_callback(info)
            if info.callback then
                if info.data then
                    info.callback(info.data)
                else
                    info.callback()
                end
            end
            self.visible = false
        end
    
        function SimpleMenu:show()
            if self.visible then
                return
            end
            self.visible = true
            managers.system_menu:show(self.dialog_data)
        end
    
        function SimpleMenu:hide()
            if self.visible then
                managers.system_menu:close(self.dialog_data.id)
                self.visible = false
                return
            end
        end
    end
    
    optionone = optionone or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- NO ALARM
    function GroupAIStateBase:_clbk_switch_enemies_to_not_cool() end
    function PlayerMovement:on_suspicion( observer_unit, status ) end
    function GroupAIStateBase:on_criminal_suspicion_progress( u_suspect, u_observer, status ) end
    function GroupAIStateBase:criminal_spotted( unit ) end
    function GroupAIStateBase:report_aggression( unit ) end
    function PlayerMovement:on_uncovered( enemy_unit ) end
    function SecurityCamera:_upd_suspicion( t ) end
    function SecurityCamera:_sound_the_alarm( detected_unit ) end
    function SecurityCamera:_set_suspicion_sound( suspicion_level ) end
    function SecurityCamera:clbk_call_the_police() end
    function CopMovement:anim_clbk_police_called( unit ) end
    function CopLogicArrest._upd_enemy_detection( data ) end
    function CopLogicArrest._call_the_police( data, my_data, paniced ) end
    function CopLogicIdle.on_alert( data, alert_data ) end
    function CopLogicBase._get_logic_state_from_reaction( data, reaction )
       return "idle"
    end
    function GroupAIStateBase:sync_event( event_id, blame_id ) end
    function GroupAIStateBase:on_police_called( called_reason ) end
    function GroupAIStateBase:on_police_weapons_hot( called_reason ) end
    function GroupAIStateBase:on_gangster_weapons_hot( called_reason ) end
    function GroupAIStateBase:on_enemy_weapons_hot( is_delayed_callback ) end
    function GroupAIStateBase:_clbk_switch_enemies_to_not_cool() end
    
    optiontwo = optiontwo or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- X-RAY VISION TOGGLE SCRIPT (v.1.1)
    function inGame() 
      if not game_state_machine then return false end 
      return string.find(game_state_machine:current_state_name(), "game") 
    end 
    function show_mid_text( msg, msg_title, show_secs ) 
        if managers and managers.hud then 
        managers.hud:present_mid_text( { text = msg, title = msg_title, time = show_secs } ) 
        end 
    end 
    if inGame() then
    	-- TOGGLE MARKING ENEMIES
    	function setEnemyColor(unit)
    		local enemyType = unit:base()._tweak_table
    		local color, target_color
    		-- Civilians | Green
    		if enemyType == "civilian" or enemyType == "civilian_female" then
    			color = Vector3( 0.1687, 0.5529, 0 )
    			target_color = Vector3( 0.1688, 0.5529, 0 )
    		-- Taser | Blue
    		elseif enemyType == "taser" then
    			color = Vector3(0, 0.3804, 0.6235)
    			target_color = Vector3(0.001, 0.3804, 0.6235)
    		-- Shield | Orange
    		elseif enemyType == "shield" then
    			color = Vector3(1, 0.5, 0)
    			target_color = Vector3(1.001, 0.5, 0)
    		-- Tank | Yellow
    		elseif enemyType == "tank" then
    			color = Vector3(1, 1, 0)
    			target_color = Vector3(1.001, 1, 0)
    		-- Sniper | Pink
    		elseif enemyType == "sniper" then
    			color = Vector3(1, 0.35, 0.35)
    			target_color = Vector3(1.001, 0.35, 0.35)
    		-- Cop/unknown | Purple
    		else
    			color = Vector3(0.5216, 0, 0.5529)
    			target_color = Vector3(0.5217, 0, 0.5529)
    		end
    		-- Set colors
    		managers.game_play_central._enemy_contour_units[unit:key()].color = color
    		managers.game_play_central._enemy_contour_units[unit:key()].target_color = target_color
    	end
    	
    	function mark_enemies()
    		local units = World:find_units_quick( "all", 3, 16, 21, managers.slot:get_mask( "enemies" ) )
    		for i,unit in ipairs( units ) do
    			if not unit:brain() or not unit:brain()._logic_data or
    			not unit:brain()._logic_data.objective or
    			(unit:brain()._logic_data.objective.type ~= "surrender" and 
    			unit:brain()._logic_data.objective.type ~= "follow") then
    				if tweak_data.character[ unit:base()._tweak_table ].silent_priority_shout then
    				managers.game_play_central:add_enemy_contour( unit, true )
    					-- managers.network:session():send_to_peers_synched( "mark_enemy", unit, true )
    				setEnemyColor(unit)
    				elseif unit:character_damage().on_marked_state then
    					managers.game_play_central:add_enemy_contour( unit, false )
    					-- managers.network:session():send_to_peers_synched( "mark_enemy", unit, false )
    				setEnemyColor(unit)
    				end
    			end
    		end
    
    		for u_key, unit in pairs( managers.groupai:state()._security_cameras ) do
    			managers.game_play_central:add_marked_contour_unit( unit )
    			-- managers.network:session():send_to_peers_synched( "mark_contour_unit", unit )
    		end
    	end
    	function UnitNetworkHandler:mark_enemy( unit, marking_strength, sender ) end
    
    	if not _markingToggle then _markingToggle = true
    	else _markingToggle = nil end
    	if not _gameUpdate then _gameUpdate = GameSetup.update end
    	do
    		local _gameUpdateLastMark
    		function GameSetup:update( t, dt )
    			_gameUpdate(self, t, dt)
    		
    			if _markingToggle and (not _gameUpdateLastMark or t - _gameUpdateLastMark > 4) then
    				_gameUpdateLastMark = t
    				mark_enemies()
    			end
    		end
    	end
    end
    
    optionthree = optionthree or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- God mode
    managers.player:player_unit():character_damage():set_invulnerable( true )
    
    -- No movement penalty, change to a larger value than 1 for an increase in speed
    PlayerManager.body_armor_movement_penalty = function(self) return 2 end
    
    -- Carry mods (throwing distance, movement speed, jumping, running)
    local car_arr = { 'being', 'mega_heavy', 'heavy', 'medium', 'light', 'coke_light' }
    for i, name in ipairs(car_arr) do
    	tweak_data.carry.types[ name ].throw_distance_multiplier = 3
    	tweak_data.carry.types[ name ].move_speed_modifier = 1
    	tweak_data.carry.types[ name ].jump_modifier = 1
    	tweak_data.carry.types[ name ].can_run = true
    end
    
    -- Remove cooldown between picking up bags
    function PlayerManager:carry_blocked_by_cooldown() return false end
    
    optionfour = optionfour or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Semi God Mode
    if not _upgradeValue then _upgradeValue = PlayerManager.upgrade_value end
    function PlayerManager:upgrade_value( category, upgrade, default )
    	if category == "player" and upgrade == "health_multiplier" then
    		return 2
    	elseif category == "player" and upgrade == "armor_multiplier" then
    		return 2
    	elseif category == "player" and upgrade == "passive_damage_multiplier" then
    		return 2
    	else
    		return _upgradeValue(self, category, upgrade, default)
    	end
    end
    managers.player:player_unit():character_damage():replenish()
    
    -- Instant armor regeneration
    function PlayerDamage:set_regenerate_timer_to_max()
    	self._regenerate_timer = 0
    end
    
    -- Unlimited messiah charges (self-revive)
    function PlayerDamage:consume_messiah_charge() return true end
    function PlayerDamage:got_messiah_charges() return true end
    
    -- Super jump (when running, you jump 1.5x high)
    function PlayerStandard:_perform_jump(jump_vec)
    	local v = math.UP * 470
    	if self._running then
    		v = math.UP * 470 * 3
    	end
    	self._unit:mover():set_velocity( v )
    end
    
    optionfive = optionfive or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Infinite Ammo Clip
    if not _fireWep then _fireWep = NewRaycastWeaponBase.fire end
    function NewRaycastWeaponBase:fire( from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit )
    	local result = _fireWep( self, from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit )
    	
    	if managers.player:player_unit() == self._setup.user_unit then
    		self.set_ammo(self, 1.0)
    	end
    
    	return result
    end
    
    
    -- Infinite Saw
    if not _fireSaw then
       _fireSaw = SawWeaponBase.fire
    end
    function SawWeaponBase:fire( from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit )
       _fireSaw( self, from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit )
    
       if managers.player:player_unit() == self._setup.user_unit then
          self.set_ammo(self, 1.0)
       end
    end
    
    optionsix = optionsix or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Infinite ammo (resets ammo on reload & also when ammo runs out, just in case you activate it late)
    if not _onReload then _onReload = RaycastWeaponBase.on_reload end
    function RaycastWeaponBase:on_reload()
    	if managers.player:player_unit() == self._setup.user_unit then
    		self.set_ammo(self, 1.0)
    	else
    		_onReload(self)
    	end
    end
    
    if not _fireWep then _fireWep = NewRaycastWeaponBase.fire end
    function NewRaycastWeaponBase:fire( from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit )
    	local result = _fireWep( self, from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit )
    	
    	if managers.player:player_unit() == self._setup.user_unit and self:get_ammo_total() == 0 then
    		self.set_ammo(self, 1.0)
    	end
    
    	return result
    end
    
    optionseven = optionseven or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Infinite cable ties
    function PlayerManager:remove_special( name ) end
    
    -- Infinite equipment
    function PlayerManager:remove_equipment( equipment_id ) end
    
    -- Infinite equipment (when not the host of a multiplayer game, this doesn't seem to work anymore with Update 3 now.. it should work if the host is using the cheat as well though)
    function PlayerManager:remove_equipment_possession( peer_id, equipment ) end
    function PlayerManager:clear_equipment() end
    function PlayerManager:from_server_equipment_place_result( selected_index, unit ) end
    function HUDManager:remove_special_equipment( equipment ) end
    
    -- Infinite sentry ammo, no recoil, left the weapon spread in because sentries have a tough time killing if they shoot in one spot
    function SentryGunWeapon:fire( blanks, expend_ammo )
    	local fire_obj = self._effect_align[ self._interleaving_fire ]
    	local from_pos = fire_obj:position()
    	local direction = fire_obj:rotation():y()
    	mvector3.spread( direction, tweak_data.weapon[ self._name_id ].SPREAD * self._spread_mul )
    	World:effect_manager():spawn( self._muzzle_effect_table[ self._interleaving_fire ] ) -- , normal = col_ray.normal } )
    	if self._use_shell_ejection_effect then
    		World:effect_manager():spawn( self._shell_ejection_effect_table ) 
    	end
    	local ray_res = self:_fire_raycast( from_pos, direction, blanks )
    	if self._alert_events and ray_res.rays then
    		RaycastWeaponBase._check_alert( self, ray_res.rays, from_pos, direction, self._unit )
    	end
    	return ray_res
    end
    
    -- Unlimited doctor bag uses
    function DoctorBagBase:_take( unit )
    	unit:character_damage():recover_health() -- replenish()
    	return 0
    end
    
    optioneight = optioneight or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- No flashbangs
    function CoreEnvironmentControllerManager:set_flashbang( flashbang_pos, line_of_sight, travel_dis, linear_dis ) end
    
    -- Don't taze me bro
    function PlayerTased:enter( state_data, enter_data )
    	PlayerTased.super.enter( self, state_data, enter_data )
    	self._next_shock = Application:time() + 10
    	self._taser_value = 1
    	self._recover_delayed_clbk = "PlayerTased_recover_delayed_clbk"
    	managers.enemy:add_delayed_clbk( self._recover_delayed_clbk, callback( self, self, "clbk_exit_to_std" ), Application:time() )
    end
    
    optionnine = optionnine or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- No cash penalty for killing civillians
    function MoneyManager.get_civilian_deduction() return 0 end
    function MoneyManager.civilian_killed() return end
    
    optionten = optionten or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- 100% Armor piercing
    if not _uvArmorPierce then _uvArmorPierce = PlayerManager.upgrade_value end 
    function PlayerManager:upgrade_value( category, upgrade, default ) 
    	if category == "weapon" and upgrade == "armor_piercing_chance" then
    		return 1
    	elseif category == "weapon" and upgrade == "armor_piercing_chance_silencer" then
    		return 1
    	else
    		return _uvArmorPierce(self, category, upgrade, default) 
    	end
    end
    
    optioneleven = optioneleven or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Unlimited [500 actually, but who cares] & instant intimidations
    if not _upgradeValueIntimidate then _upgradeValueIntimidate = PlayerManager.upgrade_value end 
    function PlayerManager:upgrade_value( category, upgrade, default ) 
    	if category == "player" and upgrade == "convert_enemies" then
    		return true
    	elseif category == "player" and upgrade == "convert_enemies_max_minions" then
    		return 500
    	elseif category == "player" and upgrade == "convert_enemies_health_multiplier" then   
    		return 1
    	elseif category == "player" and upgrade == "convert_enemies_damage_multiplier" then
    		return 4.5
    	else 
    		return _upgradeValueIntimidate(self, category, upgrade, default) 
    	end 
    end
    if not _onIntimidated then _onIntimidated = CopLogicIdle.on_intimidated end
    function CopLogicIdle.on_intimidated( data, amount, aggressor_unit )
    	CopLogicIdle._surrender( data, amount )
    	return true
    end
    CopLogicAttack.on_intimidated = CopLogicIdle.on_intimidated
    CopLogicArrest.on_intimidated = CopLogicIdle.on_intimidated
    CopLogicSniper.on_intimidated = CopLogicIdle.on_intimidated
    
    -- Setup logic for shields to be able to be intimidated
    CopBrain._logic_variants.shield.intimidated = CopLogicIntimidated
    if not _onIIntimidated then _onIIntimidated = CopLogicIntimidated.on_intimidated end
    function CopLogicIntimidated.on_intimidated( data, amount, aggressor_unit ) 
    	-- If shield we skip animations, go straight to conversion & spawn a new shield since it was destroyed during intimidation
    	if data.unit:base()._tweak_table == "shield" then
    		CopLogicIntimidated._do_tied( data, aggressor_unit )
    		CopInventory._chk_spawn_shield( data.unit:inventory(), nil )
    	else
    		_onIIntimidated(data, amount, aggressor_unit)
    	end
    end
    
    -- Setup a proper sniper-rifle for snipers (100% accuracy, no spread)
    CopBrain._logic_variants.sniper = clone( CopBrain._logic_variants.security )
    CopBrain._logic_variants.sniper.attack = CopLogicSniper
    if not _onSniperEnter then _onSniperEnter = CopLogicSniper.enter end
    function CopLogicSniper.enter( data, new_logic_name, enter_params )
    	if data.unit:brain()._logic_data and data.unit:brain()._logic_data.objective and data.unit:brain()._logic_data.objective.type == "follow" then
    		data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapon_tweak_data().usage ] = tweak_data.character.presets.weapon.sniper.m4
    		data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapon_tweak_data().usage ].spread = 0
    		-- Get dat 100% accuracy
    		for distance=1, 3 do
    			for interpolate=1,2 do
    				data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapon_tweak_data().usage ].FALLOFF[distance].acc[interpolate] = 1
    			end
    		end
    	end
    	_onSniperEnter(data, new_logic_name, enter_params)
    end
    
    optiontwelve = optiontwelve or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Kill All
    function nukeunit(pawn)
    	local col_ray = { }
    	col_ray.ray = Vector3(1, 0, 0)
    	col_ray.position = pawn.unit:position()
    
    	local action_data = {}
    	action_data.variant = "explosion"
    	action_data.damage = 10
    	action_data.attacker_unit = managers.player:player_unit()
    	action_dat*****l_ray = col_ray
    
    	pawn.unit:character_damage():damage_explosion(action_data)
    end
    
    for u_key,u_data in pairs(managers.enemy:all_civilians()) do
    	nukeunit(u_data)
    end
    
    for u_key,u_data in pairs(managers.enemy:all_enemies()) do
    	u_data.char_tweak.has_alarm_pager = nil
    	nukeunit(u_data)
    end
    
    optionthirteen = optionthirteen or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Spawn Ammo
    pos = managers.player:player_unit():position()
    rot = managers.player:player_unit():rotation()
    		local ammo_upgrade_lvl = managers.player:upgrade_level( "ammo_bag", "ammo_increase" )
    		if Network:is_client() then
    			managers.network:session():send_to_host( "place_ammo_bag", pos, rot, ammo_upgrade_lvl )
    		else 
    			local unit = AmmoBagBase.spawn( pos, rot, ammo_upgrade_lvl )
    		end
    
    optionfourteen = optionfourteen or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Spawn Medic
    pos = managers.player:player_unit():position()
    rot = managers.player:player_unit():rotation()
    local amount_upgrade_lvl = managers.player:upgrade_level( "doctor_bag", "amount_increase" )
    		if Network:is_client() then
    			managers.network:session():send_to_host( "place_doctor_bag", pos, rot, amount_upgrade_lvl )
    		else 
    			local unit = DoctorBagBase.spawn( pos, rot, amount_upgrade_lvl )
    		end
    
    optionfifteen = optionfifteen or function()
    end
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    --dirty gold exploit
    --goes into any multiplayer game and drops gold everywhere
    --no host needed
    
    bags_amount = 1 --amount of bags to drop per death, dont recommend above the default. game slows down
    bags_label = "money" --kind of bags to drop. can be "gold", "money", "weapons", "coke", "diamonds", "meth"
    
    function bagspawn(type, _position, z_offset)
    	local position = mvector3.copy(_position)
    	if z_offset then mvector3.set_z(position, position.z + z_offset) end
    	if Network:is_client() then
    		managers.network:session():send_to_host( "server_drop_carry", type, managers.money:get_bag_value( type ), nil, nil, 0, position, Rotation( math.UP, math.random() * 360 ), Vector3( 0,0,0 ), 0 )
    	else 
    		managers.player:server_drop_carry( type, managers.money:get_bag_value( type ), nil, nil, 0, position, Rotation( math.UP, math.random() * 360 ), Vector3( 0,0,0 ), 0 )
    	end
    end
    
    function CopActionHurt:on_death_drop( unit, stage )
    	if spill == 1 then
    		for i = 1, bags_amount do
    			bagspawn(bags_label, self._unit:position(), 120)
    		end
    	end
    	
    	if self._weapon_dropped then
    		return
    	end
    	
    	if self._delayed_shooting_hurt_clbk_id then
    		managers.enemy:remove_delayed_clbk( self._delayed_shooting_hurt_clbk_id )
    		self._delayed_shooting_hurt_clbk_id = nil
    	end
    	
    	if self._shooting_hurt then
    		if stage == 2 then
    			self._weapon_unit:base():stop_autofire()
    			self._ext_inventory:drop_weapon()
    			self._weapon_dropped = true
    			self._shooting_hurt = false
    		end
    	elseif self._ext_inventory then
    		self._ext_inventory:drop_weapon()
    		self._weapon_dropped = true
    	end
    	return
    end
    
    if spill == 0 or spill == nil then
    		spill = 1
    	else if spill == 1 then
    		spill = 0
    	end
    end
    
    optionsixteen = optionsixteen or function()
    end
    -- PLAY SOUND
    --managers.menu_component:post_event("menu_enter")
    -- END GAME
    --if managers.platform:presence() == "Playing" then
    --	managers.network:session():send_to_peers( "mission_ended", false, 0 )
    --	game_state_machine:change_state_by_name( "gameoverscreen" )
    --end
    
    --optionseventeen = optionseventeen or function()
    --end
    -- PLAY SOUND
    --managers.menu_component:post_event("menu_enter")
    -- WIN GAME
    --if managers.platform:presence() == "Playing" then
    --	local num_winners = managers.network:game():amount_of_alive_players()
    --	managers.network:session():send_to_peers( "mission_ended", true, num_winners )
    --	game_state_machine:change_state_by_name( "victoryscreen", { num_winners = num_winners, personal_win = true } )
    --end
    
    opts = {}
    opts[#opts+1] = { text = "No Alarm", callback = optionone }
    opts[#opts+1] = { text = "X-ray", callback = optiontwo }
    opts[#opts+1] = { text = "God Mode", callback = optionthree }
    opts[#opts+1] = { text = "Semi God Mode", callback = optionfour }
    opts[#opts+1] = { text = "Infinite Ammo + No Reload", callback = optionfive }
    opts[#opts+1] = { text = "Infinite Ammo", callback = optionsix }
    opts[#opts+1] = { text = "Infinite Equipment", callback = optionseven }
    opts[#opts+1] = { text = "No Tasers", callback = optioneight }
    opts[#opts+1] = { text = "No Civ Penalty", callback = optionnine }
    opts[#opts+1] = { text = "Armor Piercing", callback = optionten }
    opts[#opts+1] = { text = "Intimidations And Conversions", callback = optioneleven }
    opts[#opts+1] = { text = "Kill All", callback = optiontwelve }
    opts[#opts+1] = { text = "Spawn Ammo Bag", callback = optionthirteen }
    opts[#opts+1] = { text = "Spawn Doctor Bag", callback = optionfourteen }
    opts[#opts+1] = { text = "Dirty Gold", callback = optionfifteen }
    --opts[#opts+1] = { text = "Force Lose", callback = optionsixteen }
    --opts[#opts+1] = { text = "Force Win", callback = optionseventeen }
    opts[#opts+1] = { text = "CANCEL", is_cancel_button = true }
    mymenu = SimpleMenu:new("Coreball's Hack Menu", "Coreball's Hacks", opts)
    
    mymenu:show()
    Now, when I press my menu button it activates all of them.

  5. #4
    coreball's Avatar
    Join Date
    Oct 2013
    Gender
    male
    Location
    Denver
    Posts
    7
    Reputation
    10
    Thanks
    0
    So I was just messing around and I changed it to this.
    Instead of activating all cheats at once, this one makes PAYDAY 2 crash...
    But only when I click on something.
    Code:
    -- HACK MENUSCRIPT 
    
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    
    if not SimpleMenu then
        SimpleMenu = class()
    
        function SimpleMenu:init(title, message, options)
            self.dialog_data = { title = title, text = message, button_list = {},
                                 id = tostring(math.random(0,0xFFFFFFFF)) }
            self.visible = false
            for _,opt in ipairs(options) do
                local elem = {}
                elem.text = opt.text
                opt.data = opt.data or nil
                opt.callback = opt.callback or nil
                elem.callback_func = callback(self, self, "_do_callback",
                                              { data = opt.data,
                                                callback = opt.callback})
                elem.cancel_button = opt.is_cancel_button or false
                if opt.is_focused_button then
                    self.dialog_data.focus_button = #self.dialog_data.button_list+1
                end
                table.insert(self.dialog_data.button_list, elem)
            end
            return self
        end
    
        function SimpleMenu:_do_callback(info)
            if info.callback then
                if info.data then
                    info.callback(info.data)
                else
                    info.callback()
                end
            end
            self.visible = false
        end
    
        function SimpleMenu:show()
            if self.visible then
                return
            end
            self.visible = true
            managers.system_menu:show(self.dialog_data)
        end
    
        function SimpleMenu:hide()
            if self.visible then
                managers.system_menu:close(self.dialog_data.id)
                self.visible = false
                return
            end
        end
    end
    
    optionone = optionone or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- NO ALARM
    function GroupAIStateBase:_clbk_switch_enemies_to_not_cool() end
    function PlayerMovement:on_suspicion( observer_unit, status ) end
    function GroupAIStateBase:on_criminal_suspicion_progress( u_suspect, u_observer, status ) end
    function GroupAIStateBase:criminal_spotted( unit ) end
    function GroupAIStateBase:report_aggression( unit ) end
    function PlayerMovement:on_uncovered( enemy_unit ) end
    function SecurityCamera:_upd_suspicion( t ) end
    function SecurityCamera:_sound_the_alarm( detected_unit ) end
    function SecurityCamera:_set_suspicion_sound( suspicion_level ) end
    function SecurityCamera:clbk_call_the_police() end
    function CopMovement:anim_clbk_police_called( unit ) end
    function CopLogicArrest._upd_enemy_detection( data ) end
    function CopLogicArrest._call_the_police( data, my_data, paniced ) end
    function CopLogicIdle.on_alert( data, alert_data ) end
    function CopLogicBase._get_logic_state_from_reaction( data, reaction )
       return "idle"
    end
    function GroupAIStateBase:sync_event( event_id, blame_id ) end
    function GroupAIStateBase:on_police_called( called_reason ) end
    function GroupAIStateBase:on_police_weapons_hot( called_reason ) end
    function GroupAIStateBase:on_gangster_weapons_hot( called_reason ) end
    function GroupAIStateBase:on_enemy_weapons_hot( is_delayed_callback ) end
    function GroupAIStateBase:_clbk_switch_enemies_to_not_cool() end
    end
    
    optiontwo = optiontwo or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- X-RAY VISION TOGGLE SCRIPT (v.1.1)
    function inGame() 
      if not game_state_machine then return false end 
      return string.find(game_state_machine:current_state_name(), "game") 
    end 
    function show_mid_text( msg, msg_title, show_secs ) 
        if managers and managers.hud then 
        managers.hud:present_mid_text( { text = msg, title = msg_title, time = show_secs } ) 
        end 
    end 
    if inGame() then
    	-- TOGGLE MARKING ENEMIES
    	function setEnemyColor(unit)
    		local enemyType = unit:base()._tweak_table
    		local color, target_color
    		-- Civilians | Green
    		if enemyType == "civilian" or enemyType == "civilian_female" then
    			color = Vector3( 0.1687, 0.5529, 0 )
    			target_color = Vector3( 0.1688, 0.5529, 0 )
    		-- Taser | Blue
    		elseif enemyType == "taser" then
    			color = Vector3(0, 0.3804, 0.6235)
    			target_color = Vector3(0.001, 0.3804, 0.6235)
    		-- Shield | Orange
    		elseif enemyType == "shield" then
    			color = Vector3(1, 0.5, 0)
    			target_color = Vector3(1.001, 0.5, 0)
    		-- Tank | Yellow
    		elseif enemyType == "tank" then
    			color = Vector3(1, 1, 0)
    			target_color = Vector3(1.001, 1, 0)
    		-- Sniper | Pink
    		elseif enemyType == "sniper" then
    			color = Vector3(1, 0.35, 0.35)
    			target_color = Vector3(1.001, 0.35, 0.35)
    		-- Cop/unknown | Purple
    		else
    			color = Vector3(0.5216, 0, 0.5529)
    			target_color = Vector3(0.5217, 0, 0.5529)
    		end
    		-- Set colors
    		managers.game_play_central._enemy_contour_units[unit:key()].color = color
    		managers.game_play_central._enemy_contour_units[unit:key()].target_color = target_color
    	end
    	
    	function mark_enemies()
    		local units = World:find_units_quick( "all", 3, 16, 21, managers.slot:get_mask( "enemies" ) )
    		for i,unit in ipairs( units ) do
    			if not unit:brain() or not unit:brain()._logic_data or
    			not unit:brain()._logic_data.objective or
    			(unit:brain()._logic_data.objective.type ~= "surrender" and 
    			unit:brain()._logic_data.objective.type ~= "follow") then
    				if tweak_data.character[ unit:base()._tweak_table ].silent_priority_shout then
    				managers.game_play_central:add_enemy_contour( unit, true )
    					-- managers.network:session():send_to_peers_synched( "mark_enemy", unit, true )
    				setEnemyColor(unit)
    				elseif unit:character_damage().on_marked_state then
    					managers.game_play_central:add_enemy_contour( unit, false )
    					-- managers.network:session():send_to_peers_synched( "mark_enemy", unit, false )
    				setEnemyColor(unit)
    				end
    			end
    		end
    
    		for u_key, unit in pairs( managers.groupai:state()._security_cameras ) do
    			managers.game_play_central:add_marked_contour_unit( unit )
    			-- managers.network:session():send_to_peers_synched( "mark_contour_unit", unit )
    		end
    	end
    	function UnitNetworkHandler:mark_enemy( unit, marking_strength, sender ) end
    
    	if not _markingToggle then _markingToggle = true
    	else _markingToggle = nil end
    	if not _gameUpdate then _gameUpdate = GameSetup.update end
    	do
    		local _gameUpdateLastMark
    		function GameSetup:update( t, dt )
    			_gameUpdate(self, t, dt)
    		
    			if _markingToggle and (not _gameUpdateLastMark or t - _gameUpdateLastMark > 4) then
    				_gameUpdateLastMark = t
    				mark_enemies()
    			end
    		end
    	end
    end
    end
    
    optionthree = optionthree or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- God mode
    managers.player:player_unit():character_damage():set_invulnerable( true )
    
    -- No movement penalty, change to a larger value than 1 for an increase in speed
    PlayerManager.body_armor_movement_penalty = function(self) return 2 end
    
    -- Carry mods (throwing distance, movement speed, jumping, running)
    local car_arr = { 'being', 'mega_heavy', 'heavy', 'medium', 'light', 'coke_light' }
    for i, name in ipairs(car_arr) do
    	tweak_data.carry.types[ name ].throw_distance_multiplier = 3
    	tweak_data.carry.types[ name ].move_speed_modifier = 1
    	tweak_data.carry.types[ name ].jump_modifier = 1
    	tweak_data.carry.types[ name ].can_run = true
    end
    
    -- Remove cooldown between picking up bags
    function PlayerManager:carry_blocked_by_cooldown() return false end
    end
    
    optionfour = optionfour or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Semi God Mode
    if not _upgradeValue then _upgradeValue = PlayerManager.upgrade_value end
    function PlayerManager:upgrade_value( category, upgrade, default )
    	if category == "player" and upgrade == "health_multiplier" then
    		return 2
    	elseif category == "player" and upgrade == "armor_multiplier" then
    		return 2
    	elseif category == "player" and upgrade == "passive_damage_multiplier" then
    		return 2
    	else
    		return _upgradeValue(self, category, upgrade, default)
    	end
    end
    managers.player:player_unit():character_damage():replenish()
    
    -- Instant armor regeneration
    function PlayerDamage:set_regenerate_timer_to_max()
    	self._regenerate_timer = 0
    end
    
    -- Unlimited messiah charges (self-revive)
    function PlayerDamage:consume_messiah_charge() return true end
    function PlayerDamage:got_messiah_charges() return true end
    
    -- Super jump (when running, you jump 1.5x high)
    function PlayerStandard:_perform_jump(jump_vec)
    	local v = math.UP * 470
    	if self._running then
    		v = math.UP * 470 * 3
    	end
    	self._unit:mover():set_velocity( v )
    end
    end
    
    optionfive = optionfive or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Infinite Ammo Clip
    if not _fireWep then _fireWep = NewRaycastWeaponBase.fire end
    function NewRaycastWeaponBase:fire( from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit )
    	local result = _fireWep( self, from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit )
    	
    	if managers.player:player_unit() == self._setup.user_unit then
    		self.set_ammo(self, 1.0)
    	end
    
    	return result
    end
    
    
    -- Infinite Saw
    if not _fireSaw then
       _fireSaw = SawWeaponBase.fire
    end
    function SawWeaponBase:fire( from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit )
       _fireSaw( self, from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit )
    
       if managers.player:player_unit() == self._setup.user_unit then
          self.set_ammo(self, 1.0)
       end
    end
    end
    
    optionsix = optionsix or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Infinite ammo (resets ammo on reload & also when ammo runs out, just in case you activate it late)
    if not _onReload then _onReload = RaycastWeaponBase.on_reload end
    function RaycastWeaponBase:on_reload()
    	if managers.player:player_unit() == self._setup.user_unit then
    		self.set_ammo(self, 1.0)
    	else
    		_onReload(self)
    	end
    end
    
    if not _fireWep then _fireWep = NewRaycastWeaponBase.fire end
    function NewRaycastWeaponBase:fire( from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit )
    	local result = _fireWep( self, from_pos, direction, dmg_mul, shoot_player, spread_mul, autohit_mul, suppr_mul, target_unit )
    	
    	if managers.player:player_unit() == self._setup.user_unit and self:get_ammo_total() == 0 then
    		self.set_ammo(self, 1.0)
    	end
    
    	return result
    end
    end
    
    optionseven = optionseven or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Infinite cable ties
    function PlayerManager:remove_special( name ) end
    
    -- Infinite equipment
    function PlayerManager:remove_equipment( equipment_id ) end
    
    -- Infinite equipment (when not the host of a multiplayer game, this doesn't seem to work anymore with Update 3 now.. it should work if the host is using the cheat as well though)
    function PlayerManager:remove_equipment_possession( peer_id, equipment ) end
    function PlayerManager:clear_equipment() end
    function PlayerManager:from_server_equipment_place_result( selected_index, unit ) end
    function HUDManager:remove_special_equipment( equipment ) end
    
    -- Infinite sentry ammo, no recoil, left the weapon spread in because sentries have a tough time killing if they shoot in one spot
    function SentryGunWeapon:fire( blanks, expend_ammo )
    	local fire_obj = self._effect_align[ self._interleaving_fire ]
    	local from_pos = fire_obj:position()
    	local direction = fire_obj:rotation():y()
    	mvector3.spread( direction, tweak_data.weapon[ self._name_id ].SPREAD * self._spread_mul )
    	World:effect_manager():spawn( self._muzzle_effect_table[ self._interleaving_fire ] ) -- , normal = col_ray.normal } )
    	if self._use_shell_ejection_effect then
    		World:effect_manager():spawn( self._shell_ejection_effect_table ) 
    	end
    	local ray_res = self:_fire_raycast( from_pos, direction, blanks )
    	if self._alert_events and ray_res.rays then
    		RaycastWeaponBase._check_alert( self, ray_res.rays, from_pos, direction, self._unit )
    	end
    	return ray_res
    end
    
    -- Unlimited doctor bag uses
    function DoctorBagBase:_take( unit )
    	unit:character_damage():recover_health() -- replenish()
    	return 0
    end
    end
    
    optioneight = optioneight or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- No flashbangs
    function CoreEnvironmentControllerManager:set_flashbang( flashbang_pos, line_of_sight, travel_dis, linear_dis ) end
    
    -- Don't taze me bro
    function PlayerTased:enter( state_data, enter_data )
    	PlayerTased.super.enter( self, state_data, enter_data )
    	self._next_shock = Application:time() + 10
    	self._taser_value = 1
    	self._recover_delayed_clbk = "PlayerTased_recover_delayed_clbk"
    	managers.enemy:add_delayed_clbk( self._recover_delayed_clbk, callback( self, self, "clbk_exit_to_std" ), Application:time() )
    end
    end
    
    optionnine = optionnine or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- No cash penalty for killing civillians
    function MoneyManager.get_civilian_deduction() return 0 end
    function MoneyManager.civilian_killed() return end
    end
    
    optionten = optionten or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- 100% Armor piercing
    if not _uvArmorPierce then _uvArmorPierce = PlayerManager.upgrade_value end 
    function PlayerManager:upgrade_value( category, upgrade, default ) 
    	if category == "weapon" and upgrade == "armor_piercing_chance" then
    		return 1
    	elseif category == "weapon" and upgrade == "armor_piercing_chance_silencer" then
    		return 1
    	else
    		return _uvArmorPierce(self, category, upgrade, default) 
    	end
    end
    end
    
    optioneleven = optioneleven or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Unlimited [500 actually, but who cares] & instant intimidations
    if not _upgradeValueIntimidate then _upgradeValueIntimidate = PlayerManager.upgrade_value end 
    function PlayerManager:upgrade_value( category, upgrade, default ) 
    	if category == "player" and upgrade == "convert_enemies" then
    		return true
    	elseif category == "player" and upgrade == "convert_enemies_max_minions" then
    		return 500
    	elseif category == "player" and upgrade == "convert_enemies_health_multiplier" then   
    		return 1
    	elseif category == "player" and upgrade == "convert_enemies_damage_multiplier" then
    		return 4.5
    	else 
    		return _upgradeValueIntimidate(self, category, upgrade, default) 
    	end 
    end
    if not _onIntimidated then _onIntimidated = CopLogicIdle.on_intimidated end
    function CopLogicIdle.on_intimidated( data, amount, aggressor_unit )
    	CopLogicIdle._surrender( data, amount )
    	return true
    end
    CopLogicAttack.on_intimidated = CopLogicIdle.on_intimidated
    CopLogicArrest.on_intimidated = CopLogicIdle.on_intimidated
    CopLogicSniper.on_intimidated = CopLogicIdle.on_intimidated
    
    -- Setup logic for shields to be able to be intimidated
    CopBrain._logic_variants.shield.intimidated = CopLogicIntimidated
    if not _onIIntimidated then _onIIntimidated = CopLogicIntimidated.on_intimidated end
    function CopLogicIntimidated.on_intimidated( data, amount, aggressor_unit ) 
    	-- If shield we skip animations, go straight to conversion & spawn a new shield since it was destroyed during intimidation
    	if data.unit:base()._tweak_table == "shield" then
    		CopLogicIntimidated._do_tied( data, aggressor_unit )
    		CopInventory._chk_spawn_shield( data.unit:inventory(), nil )
    	else
    		_onIIntimidated(data, amount, aggressor_unit)
    	end
    end
    
    -- Setup a proper sniper-rifle for snipers (100% accuracy, no spread)
    CopBrain._logic_variants.sniper = clone( CopBrain._logic_variants.security )
    CopBrain._logic_variants.sniper.attack = CopLogicSniper
    if not _onSniperEnter then _onSniperEnter = CopLogicSniper.enter end
    function CopLogicSniper.enter( data, new_logic_name, enter_params )
    	if data.unit:brain()._logic_data and data.unit:brain()._logic_data.objective and data.unit:brain()._logic_data.objective.type == "follow" then
    		data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapon_tweak_data().usage ] = tweak_data.character.presets.weapon.sniper.m4
    		data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapon_tweak_data().usage ].spread = 0
    		-- Get dat 100% accuracy
    		for distance=1, 3 do
    			for interpolate=1,2 do
    				data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapon_tweak_data().usage ].FALLOFF[distance].acc[interpolate] = 1
    			end
    		end
    	end
    	_onSniperEnter(data, new_logic_name, enter_params)
    end
    end
    
    optiontwelve = optiontwelve or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Kill All
    function nukeunit(pawn)
    	local col_ray = { }
    	col_ray.ray = Vector3(1, 0, 0)
    	col_ray.position = pawn.unit:position()
    
    	local action_data = {}
    	action_data.variant = "explosion"
    	action_data.damage = 10
    	action_data.attacker_unit = managers.player:player_unit()
    	action_dat*****l_ray = col_ray
    
    	pawn.unit:character_damage():damage_explosion(action_data)
    end
    
    for u_key,u_data in pairs(managers.enemy:all_civilians()) do
    	nukeunit(u_data)
    end
    
    for u_key,u_data in pairs(managers.enemy:all_enemies()) do
    	u_data.char_tweak.has_alarm_pager = nil
    	nukeunit(u_data)
    end
    end
    
    optionthirteen = optionthirteen or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Spawn Ammo
    pos = managers.player:player_unit():position()
    rot = managers.player:player_unit():rotation()
    		local ammo_upgrade_lvl = managers.player:upgrade_level( "ammo_bag", "ammo_increase" )
    		if Network:is_client() then
    			managers.network:session():send_to_host( "place_ammo_bag", pos, rot, ammo_upgrade_lvl )
    		else 
    			local unit = AmmoBagBase.spawn( pos, rot, ammo_upgrade_lvl )
    		end
    end
    
    optionfourteen = optionfourteen or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- Spawn Medic
    pos = managers.player:player_unit():position()
    rot = managers.player:player_unit():rotation()
    local amount_upgrade_lvl = managers.player:upgrade_level( "doctor_bag", "amount_increase" )
    		if Network:is_client() then
    			managers.network:session():send_to_host( "place_doctor_bag", pos, rot, amount_upgrade_lvl )
    		else 
    			local unit = DoctorBagBase.spawn( pos, rot, amount_upgrade_lvl )
    		end
    end
    
    optionfifteen = optionfifteen or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    --dirty gold exploit
    --goes into any multiplayer game and drops gold everywhere
    --no host needed
    
    bags_amount = 1 --amount of bags to drop per death, dont recommend above the default. game slows down
    bags_label = "money" --kind of bags to drop. can be "gold", "money", "weapons", "coke", "diamonds", "meth"
    
    function bagspawn(type, _position, z_offset)
    	local position = mvector3.copy(_position)
    	if z_offset then mvector3.set_z(position, position.z + z_offset) end
    	if Network:is_client() then
    		managers.network:session():send_to_host( "server_drop_carry", type, managers.money:get_bag_value( type ), nil, nil, 0, position, Rotation( math.UP, math.random() * 360 ), Vector3( 0,0,0 ), 0 )
    	else 
    		managers.player:server_drop_carry( type, managers.money:get_bag_value( type ), nil, nil, 0, position, Rotation( math.UP, math.random() * 360 ), Vector3( 0,0,0 ), 0 )
    	end
    end
    
    function CopActionHurt:on_death_drop( unit, stage )
    	if spill == 1 then
    		for i = 1, bags_amount do
    			bagspawn(bags_label, self._unit:position(), 120)
    		end
    	end
    	
    	if self._weapon_dropped then
    		return
    	end
    	
    	if self._delayed_shooting_hurt_clbk_id then
    		managers.enemy:remove_delayed_clbk( self._delayed_shooting_hurt_clbk_id )
    		self._delayed_shooting_hurt_clbk_id = nil
    	end
    	
    	if self._shooting_hurt then
    		if stage == 2 then
    			self._weapon_unit:base():stop_autofire()
    			self._ext_inventory:drop_weapon()
    			self._weapon_dropped = true
    			self._shooting_hurt = false
    		end
    	elseif self._ext_inventory then
    		self._ext_inventory:drop_weapon()
    		self._weapon_dropped = true
    	end
    	return
    end
    
    if spill == 0 or spill == nil then
    		spill = 1
    	else if spill == 1 then
    		spill = 0
    	end
    end
    end
    
    optionsixteen = optionsixteen or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- END GAME
    if managers.platform:presence() == "Playing" then
    	managers.network:session():send_to_peers( "mission_ended", false, 0 )
    	game_state_machine:change_state_by_name( "gameoverscreen" )
    end
    end
    
    optionseventeen = optionseventeen or function()
    -- PLAY SOUND
    managers.menu_component:post_event("menu_enter")
    -- WIN GAME
    if managers.platform:presence() == "Playing" then
    	local num_winners = managers.network:game():amount_of_alive_players()
    	managers.network:session():send_to_peers( "mission_ended", true, num_winners )
    	game_state_machine:change_state_by_name( "victoryscreen", { num_winners = num_winners, personal_win = true } )
    end
    end
    
    opts = {}
    opts[#opts+1] = { text = "No Alarm", callback = optionone }
    opts[#opts+1] = { text = "X-ray", callback = optiontwo }
    opts[#opts+1] = { text = "God Mode", callback = optionthree }
    opts[#opts+1] = { text = "Semi God Mode", callback = optionfour }
    opts[#opts+1] = { text = "Infinite Ammo + No Reload", callback = optionfive }
    opts[#opts+1] = { text = "Infinite Ammo", callback = optionsix }
    opts[#opts+1] = { text = "Infinite Equipment", callback = optionseven }
    opts[#opts+1] = { text = "No Tasers", callback = optioneight }
    opts[#opts+1] = { text = "No Civ Penalty", callback = optionnine }
    opts[#opts+1] = { text = "Armor Piercing", callback = optionten }
    opts[#opts+1] = { text = "Intimidations And Conversions", callback = optioneleven }
    opts[#opts+1] = { text = "Kill All", callback = optiontwelve }
    opts[#opts+1] = { text = "Spawn Ammo Bag", callback = optionthirteen }
    opts[#opts+1] = { text = "Spawn Doctor Bag", callback = optionfourteen }
    opts[#opts+1] = { text = "Dirty Gold", callback = optionfifteen }
    opts[#opts+1] = { text = "Force Lose", callback = optionsixteen }
    opts[#opts+1] = { text = "Force Win", callback = optionseventeen }
    opts[#opts+1] = { text = "CANCEL", is_cancel_button = true }
    mymenu = SimpleMenu:new("Coreball's Hack Menu", "Coreball's Hacks", opts)
    
    mymenu:show()

Similar Threads

  1. [Help Request] HELP please!! CA crashes only 5 mins in game ): [Windows XP SP3]
    By ursine in forum Combat Arms Help
    Replies: 8
    Last Post: 08-11-2013, 03:04 PM
  2. [Help Request] CF Crashs If I Draw my Menu after a Game / Cant draw Text in Endscene
    By Aldimann in forum Crossfire Coding Help & Discussion
    Replies: 5
    Last Post: 05-24-2013, 02:07 PM
  3. Replies: 3
    Last Post: 01-26-2013, 05:03 PM
  4. [Help Request] problem with crashing game. help :)?
    By lightningss in forum Alliance of Valiant Arms (AVA) Help
    Replies: 2
    Last Post: 07-15-2011, 12:36 PM
  5. Help|Menu distroy after 1 game
    By o-o in forum Combat Arms EU Hack Coding/Source Code
    Replies: 14
    Last Post: 09-06-2010, 01:52 AM

Tags for this Thread