PDA

Просмотр полной версии : Коллекция скриптов .Lua


test
23.04.2014, 11:59
Уровень, очки способностей, деньги, все оружие/модификации
managers.experience:_set_current_level(30) -- level
managers.skilltree:_set_points(1337) -- skill points
managers.money:_add_to_total(5000000000) -- money

-- All weapons unlocked
local wep_arr = {
'new_m4', 'glock_17', 'mp9', 'r870', 'glock_18c', 'amcar', 'm16', 'olympic', 'ak74', 'akm', 'akmsu', 'saiga', 'ak5', 'aug', 'g36', 'p90', 'new_m14', 'deagle', 'new_mp5', 'colt_1911', 'mac10', 'serbu', 'huntsman', 'b92fs', 'new_raging_bull', 'saw'
}
for i, name in ipairs(wep_arr) do
if not managers.upgrades:aquired(name) then
managers.upgrades:aquire(name)
end
end

-- All weapon mods
for mod_id,_ in pairs(tweak_data.blackmarket.weapon_mods) do
tweak_data.blackmarket.weapon_mods[ mod_id ].unlocked = true
managers.blackmarket:add_to_inventory("normal", "weapon_mods", mod_id, false)
end

-- All masks
managers.blackmarket:_setup_masks()
for mask_id,_ in pairs(tweak_data.blackmarket.masks) do
Global.blackmarket_manager.masks[mask_id].unlocked = true
managers.blackmarket:add_to_inventory("normal", "masks", mask_id, false)
end

-- All achievements
if managers.achievment then
for id,_ in pairs(managers.achievment.achievments) do
managers.achievment:award(id)
end
end

-- Message on screen
if managers.hud then
managers.hud:show_hint( { text = "LUA Hack loaded!" } )
end

Маски, материалы, ткани, цвета, модификации оружия
-------------------------------------------------------------------------
-- GiVE iTEMS ("masks", "materials", "textures", "colors", "weapon_mods")
-------------------------------------------------------------------------
function giveitems( times, type )
for i=1, times do
for mat_id,_ in pairs(tweak_data.blackmarket[type]) do
if _.infamous then
managers.blackmarket:add_to_inventory("infamous", type, mat_id, false)
elseif _.dlc then
managers.blackmarket:add_to_inventory("preorder", type, mat_id, false)
else
managers.blackmarket:add_to_inventory("normal", type, mat_id, false)
end
end
managers.blackmarket:remove_item("normal", "materials", "plastic", false)
managers.blackmarket:remove_item("normal", "colors", "nothing", false)
end
end

-- Example calls to get one of everything:
giveitems(1, "masks")
giveitems(1, "materials")
giveitems(1, "textures")
giveitems(1, "colors")
giveitems(1, "weapon_mods")

GodMode, нет повреждения при падении, мгновенная маска, увеличение скорости движения, бесконечная выносливость, перенос модификаций, супер прыжок, нет отдачи оружия, сильное повреждения от оружия, мгновенная перезагрузка, мгновенная замена оружия, огонь на высокой скорости, бесконечная обойма, бесконечная пила, мгновенное взаимодействие / развернуть, другие обновления (например Joker), удалить восстановления между поднятием мешков, бесконечные кабельные стяжки, боеприпасы /режим бога:
-- God mode
managers.player:player_unit():character_damage():s et_invulnerable( true )

-- No fall damage (useless if you have god mode on)
function PlayerDamage:damage_fall( data ) end

-- Instant mask on
tweak_data.player.put_on_mask_time = 0.1

-- Infinite stamina
function PlayerMovement:_change_stamina( value ) end
function PlayerMovement:is_stamina_drained() return false end
function PlayerStandard:_can_run_directional() return true 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 = 1.5
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

-- 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 * 1.5
end
self._unit:mover():set_velocity( v )
end

-- No movement penalty, change to a larger value than 1 for an increase in speed
PlayerManager.body_armor_movement_penalty = function(self) return 1 end

-- Weapon spread
NewRaycastWeaponBase._get_spread = function(self) return 0 end

-- Weapon recoil
NewRaycastWeaponBase.recoil_multiplier = function(self) return 0 end

-- Weapon reload speed
NewRaycastWeaponBase.reload_speed_multiplier = function(self) return 2000 end

-- Weapon fire rate
NewRaycastWeaponBase.fire_rate_multiplier = function(self) return 10 end

-- Weapon swap speed
PlayerStandard._get_swap_speed_multiplier = function(self) return 2000 end

-- 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 )
local result = _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

return result
end

-- 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

-- Allow interaction with anything (ECM jammers, picking locks, deploying shaped charges, etc)
function BaseInteractionExt:_has_required_upgrade() return true end
function BaseInteractionExt:_has_required_deployable() return true end
function BaseInteractionExt:can_interact(player) return true end
function PlayerManager:has_category_upgrade( category, upgrade)
if category == "player" and (upgrade == "civ_harmless_melee" or upgrade == "civ_harmless_bullets") then return false end
return true -- Other upgrades (eg. Joker)
end
function PlayerManager:carry_blocked_by_cooldown() return false end -- Remove cooldown between picking up bags

-- Instant interaction (except for pagers because it doesn't work so well when you are client on multiplayer)
if not _getTimer then _getTimer = BaseInteractionExt._get_timer end
function BaseInteractionExt:_get_timer()
if self.tweak_data == "corpse_alarm_pager" then
return 0.1 -- if pagers don't work properly (eg. when you're a client in multiplayer) use 'return _getTimer(self)' instead.
end
return 0
end

-- Instant deploy
PlayerManager.selected_equipment_deploy_timer = function(self) return 0 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_******* self, ray_res.rays, from_pos, direction, self._unit )
end
return ray_res
end

-- Sentry god mode
function SentryGunDamage:damage_bullet( attack_data ) end

-- Message on screen
if managers.hud then
managers.hud:show_hint( { text = "LUA Hack loaded!" } )
end

Режим полубог (2x здоровье, 2x броня, 2x повреждение, мгновенная регенерация брони, неограниченные расходы - полностью совместимые с любыми существующими upgrade_value модификациями, которые у вас есть (повреждение оружия , жизнь, броня, и т.д.):

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():r eplenish()

-- 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

Бесконечные патроны (отличается от бесконечной обоймы боеприпасов, сбрасывает боеприпасы на перезагрузки и также, когда боеприпасы иссякнут, на всякий случай вы активируете его чуть позже)

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

100% уворот (работает, стоя на месте или бегая, также работает, когда вы в рукопашной схватке, в основном это режим бога: использовать только run_dodge_chance для меньшего ОP) - полностью совместим с любыми существующими upgrade_value модификациями,которые у вас есть (повреждение оружия , жизнь, броня, и т.д.):

-- 100% Dodge
if not _uvDodge then _uvDodge = PlayerManager.upgrade_value end
function PlayerManager:upgrade_value( category, upgrade, default )
if category == "player" and upgrade == "passive_dodge_chance" then
return 1
elseif category == "player" and upgrade == "run_dodge_chance" then
return 1
else
return _uvDodge(self, category, upgrade, default)
end
end

100% пробивание брони для SWAT AL с металлической броней - полностью совместим с любыми существующими upgrade_value модификациями, которые у вас есть (повреждение оружия, жизнь, броня, и т.д.): повреждения, жизнь, броня, и т.д.):
-- 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

Установка FOV (и сохранение его даже при зуме w / Ironsights, и т.д.):
-- Set FOV to 80
if not _setFOV then _setFOV = Camera.set_fov end
function Camera:set_fov( new_fov )
return _setFOV(self, 80)
end
managers.player:player_unit():camera()._camera_obj ect:set_fov()

Отмена дезориентации от ударов:
-- No hit disorientation
function CoreEnvironmentControllerManager:hit_feedback_fron t() end
function CoreEnvironmentControllerManager:hit_feedback_back () end
function CoreEnvironmentControllerManager:hit_feedback_righ t() end
function CoreEnvironmentControllerManager:hit_feedback_left () end
function CoreEnvironmentControllerManager:hit_feedback_up() end
function CoreEnvironmentControllerManager:hit_feedback_down () end

Отмена flashbangs:
-- No flashbangs
function CoreEnvironmentControllerManager:set_flashbang( flashbang_pos, line_of_sight, travel_dis, linear_dis ) end

Сопротивление задержанию:
-- Resist arrest
local _arrestedUpdate = Interception.Backup(PlayerArrested, "update")
function PlayerArrested:update( t, dt )
_arrestedUpdate(self, t, dt)
managers.player:set_player_state( "standard" )
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

Увеличение расстояния взаимодействия (20x, за исключением камер, кумулятивные заряды, сумки, сжигания денег и расположение камеры [Firestarters работу], или поездка на рудники):
-- Infinite interact distance (except on cameras, shaped charges, body bags, burn money & place camera [Firestarters job], or trip mines)
function BaseInteractionExt:interact_distance()
if self.tweak_data == "access_camera"
or self.tweak_data == "shaped_sharge"
or tostring(self._unit:name()) == "Idstring(@ID14f05c3d9ebb44b6@)"
or self.tweak_data == "burning_money"
or self.tweak_data == "stn_int_place_camera"
or self.tweak_data == "trip_mine" then
return self._tweak_data.interact_distance or tweak_data.interaction.INTERACT_DISTANCE
end
return 20000 -- default is 200
end

Взаимодействовать сквозь стены (повторно включен после того как, OVERKILL отключил это для некоторых подразделений, а в настоящее время работает под любым углом ): Слишком большой, чтобы поместить здесь .. [Ссылки могут видеть только зарегистрированные и активированные пользователи] Нажмите RAW для просмотра обычного текста для копи/паси в ваши файлы скриптов. Переключение DAT slowmo (Всемирный только, установить SLOWMO_WORLD_ONLY на 'ноль', чтобы сделать world & player slowmo):
-- Toggle slowmo
SLOWMO_WORLD_ONLY = true -- possible values 'nil' or 'true'
if string.find(game_state_machine:current_state_name( ), "game") then
our_id = "_MaskOn_Peer"..tostring( managers.network:session():local_peer():id() )
slowmo_id_world = "world" .. our_id
slowmo_id_player = "player" .. our_id
if not _timeEffectExpired then
-- Enable
_timeEffectExpired = TimeSpeedManager._on_effect_expired
function TimeSpeedManager:_on_effect_expired( effect_id )
local ret = _timeEffectExpired(self, effect_id)
-- Check if we are in-game
if string.find(game_state_machine:current_state_name( ), "game") then
-- Restart each effect
if effect_id == slowmo_id_world then
managers.time_speed:play_effect( slowmo_id_world, tweak_data.timespeed.mask_on )
elseif effect_id == slowmo_id_player and not SLOWMO_WORLD_ONLY then
managers.time_speed:play_effect( slowmo_id_player, tweak_data.timespeed.mask_on_player )
end
end
return ret
end
tweak_data.timespeed.mask_on.fade_in_delay = 0
tweak_data.timespeed.mask_on.fade_out = 0
tweak_data.timespeed.mask_on.sync = true
tweak_data.timespeed.mask_on_player.fade_in_delay = 0
tweak_data.timespeed.mask_on_player.fade_out = 0
tweak_data.timespeed.mask_on_player.sync = true
managers.time_speed:play_effect( slowmo_id_world, tweak_data.timespeed.mask_on )
if not SLOWMO_WORLD_ONLY then managers.time_speed:play_effect( slowmo_id_player, tweak_data.timespeed.mask_on_player ) end
else
-- Disable
TimeSpeedManager._on_effect_expired = _timeEffectExpired
_timeEffectExpired = nil

if managers.time_speed._playing_effects then
for id,_ in pairs(managers.time_speed._playing_effects) do
if string.find(id, our_id) then
managers.time_speed:stop_effect(id)
end
end
end
SoundDevice:set_rtpc( "game_speed", 1 )
end
end

Проникающие деформации для перекрестия (изменить PENETRATE на 'nil' вместо 'true', если вы не хотите проникать сквозь стены):
-- Penetrative warp to crosshair
local PENETRATE = true -- set to 'nil' instead of 'true' if you don't want it to penetrate through walls, etc
local player_unit = managers.player:player_unit()
local camera = player_unit:camera()
local mvec_to = Vector3()
local from_pos = camera:position()
mvector3.set( mvec_to, camera:forward() )
mvector3.multiply( mvec_to, 20000 )
mvector3.add( mvec_to, from_pos )
local col_ray = World:raycast( "ray", from_pos, mvec_to, "slot_mask", managers.slot:get_mask( "bullet_impact_targets" ) )
if col_ray then
if PENETRATE then
local offset = Vector3()
mvector3.set(offset, camera:forward())
mvector3.multiply(offset, 100)
mvector3.add(col_ray.hit_position, offset)
end
managers.player:warp_to(col_ray.hit_position, player_unit:rotation())
end

Деформация в пули (вызываем один раз, прежде чем стрелять, потом опять, когда вы хотите телепортировать к моменту последней коллизии пули ):
-- Warp to bullet
if not _lastBullet then _lastBullet = nil end
if _lastBullet then managers.player:warp_to(_lastBullet, managers.player:player_unit():rotation()) end
if not _bulletCollision then _bulletCollision = InstantBulletBase.on_collision end
function InstantBulletBase:on_collision( col_ray, weapon_unit, user_unit, damage, blank )
if user_unit == managers.player:player_unit() then
_lastBullet = col_ray.hit_position
end
return _bulletCollision(self, col_ray, weapon_unit, user_unit, damage, blank)
end

Мгновенный пикап для химикатов от Rats Day 1
-- Add chems from Rats Day 1
if managers.job:current_level_id() == "alex_1" then
managers.player:add_special( { name = "caustic_soda", silent = true, amount = 1 } )
managers.player:add_special( { name = "hydrogen_chloride", silent = true, amount = 1 } )
managers.player:add_special( { name = "acid", silent = true, amount = 1 } )
end

Переключение подсветки враг / камеры (Гражданские = зеленый, Taser = синий, щит = оранжевый, бак = желтый, Снайпер = розовый, Кoп / Другие = фиолетовый):

-- 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

Гарантированные тревоги охранниками/камерами безопасности не сработали и т.д. (иногда вызывает сбой на миссиях, где стелс завершение невозможно, например Rats: Day 3):
if not _setCool then _setCool = CopMovement.set_cool end
function CopMovement:set_cool( state, giveaway )
if state == true then _setCool(self, state, giveaway) end
end
if not _setWhisper then _setWhisper = GroupAIStateBase.set_whisper_mode end
function GroupAIStateBase:set_whisper_mode( enabled )
if enabled == true then _setWhisper(self, true) end
end
if not _setObjective then _setObjective = CopBrain.set_objective end
function CopBrain:set_objective( new_objective )
if (not new_objective) or (new_objective.stance ~= "hos" and new_objective.attitude ~= "engage") then _setObjective(self, new_objective) end
end
if not _setStance then _setStance = CopMovement.set_stance end
function CopMovement:set_stance( new_stance_name )
if new_stance_name ~= "hos" then _setStance(self, new_stance_name) end
end
if not _setStanceCode then _setStanceCode = CopMovement.set_stance_by_code end
function CopMovement:set_stance_by_code( new_stance_code )
if new_stance_code == 1 then _setStanceCode(self, new_stance_code) end
end
if not _setInteraction then _setInteraction = CopLogicInactive._set_interaction end
function CopLogicInactive._set_interaction( data, my_data )
data.char_tweak.has_alarm_pager = false
_setInteraction(data, my_data)
end
if not _setAllowFire then _setAllowFire = CopMovement.set_allow_fire end
function CopMovement:set_allow_fire( state )
if state == false then _setAllowFire(self, state) end
end
if not _setAllowFireClient then _setAllowFireClient = CopMovement.set_allow_fire_on_client end
function CopMovement:set_allow_fire_on_client( state, unit )
if state == false then _setAllowFireClient(self, state, unit) end
end
-- Prevents panic buttons & intel burning (intercepting the 'run' action is the only way; for example, if you intercept events such as 'e_so_alarm_under_table' to prevent intel burning, the animation will not happen but the fire will still appear)
if not _actionRequest then _actionRequest = CopMovement.action_request end
function CopMovement:action_request( action_desc )
-- action_desc.variant == "e_so_alarm_under_table": gangsters lighting intel on fire in Big Oil Day 1, etc
-- action_desc.variant == "cmf_so_press_alarm_wall": civilian in Bank Heist pressing panic button, etc
-- action_desc.variant == "cmf_so_press_alarm_table": tellers in Bank Heist pressing panic button, etc
-- action_desc.variant == "cmf_so_call_police": civilians calling the police
-- action_desc.variant == "arrest_call": cops saying they are calling the police

-- Stops panic buttons & intel burning
if action_desc.variant == "run" then return false end

return _actionRequest(self, action_desc)
end
function CopMovement:on_suppressed( state ) end
function CopLogicBase._get_logic_state_from_reaction( data, reaction ) return "idle" end
function CopLogicIdle.on_******* data, alert_data ) 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:add_alert_listener( id, clbk, filter_num, types, m_pos ) end
function GroupAIStateBase:criminal_spotted( unit ) end
function GroupAIStateBase:report_aggression( unit ) end
function GroupAIStateBase:propagate_******* alert_data ) end
function GroupAIStateBase:on_criminal_suspicion_progress( u_suspect, u_observer, status ) end
function PlayerMovement:on_suspicion( observer_unit, status ) end
function SecurityCamera:_upd_suspicion( t ) end
function SecurityCamera:_sound_the_alarm( detected_unit ) end
function SecurityCamera:_set_suspicion_sound( suspicion_level ) end

-- Message on screen
if managers.hud then
managers.hud:show_hint( { text = "LUA Hack loaded!" } )
end

Деми-стелс ( "отмена тревоги мошеничество",тревоги не будут срабатывать, и вы сможете использовать пейджер бесконечное количество раз
-- Allow infinite pagers
function GroupAIStateBase:on_successful_alarm_pager_bluff() end

-- Infinite ECM jammer battery
function ECMJammerBase:update( unit, t, dt )
self._battery_life = self._max_battery_life
end

-- Allows answer pagers, bag corpses, and spot NPC's with the cameras as well as other features I'm sure
if not _setWhisper then _setWhisper = GroupAIStateBase.set_whisper_mode end
function GroupAIStateBase:set_whisper_mode( enabled )
if enabled == true then _setWhisper(self, true) end
end

-- Make people not fire
if not _setAllowFire then _setAllowFire = CopMovement.set_allow_fire end
function CopMovement:set_allow_fire( state )
if state == false then _setAllowFire(self, state) end
end
if not _setAllowFireClient then _setAllowFireClient = CopMovement.set_allow_fire_on_client end
function CopMovement:set_allow_fire_on_client( state, unit )
if state == false then _setAllowFireClient(self, state, unit) end
end

-- Makes guards & people in general stop calling the cops
function GroupAIStateBase:on_police_called( called_reason ) end

-- Stops civs from reporting you
function CivilianLogicFlee.clbk_chk_call_the_police( ignore_this, data ) end

-- Make cameras not trigger the alarm
function SecurityCamera:_sound_the_alarm( detected_unit ) end

-- Gets rid of the sound of the camera seeing you
function SecurityCamera:_set_suspicion_sound( suspicion_level ) end

-- Stops police from saying they are calling the police all the time
function CopLogicArrest._say_call_the_police( data, my_data ) end

-- Prevents panic buttons & intel burning (intercepting the 'run' action is the only way; for example, if you intercept events such as 'e_so_alarm_under_table' to prevent intel burning, the animation will not happen but the fire will still appear)
if not _actionRequest then _actionRequest = CopMovement.action_request end
function CopMovement:action_request( action_desc )
-- action_desc.variant == "e_so_alarm_under_table": gangsters lighting intel on fire in Big Oil Day 1, etc
-- action_desc.variant == "cmf_so_press_alarm_wall": civilian in Bank Heist pressing panic button, etc
-- action_desc.variant == "cmf_so_press_alarm_table": tellers in Bank Heist pressing panic button, etc
-- action_desc.variant == "cmf_so_call_police": civilians calling the police
-- action_desc.variant == "arrest_call": cops saying they are calling the police

-- Stops panic buttons & intel burning
if action_desc.variant == "run" then return false end

return _actionRequest(self, action_desc)
end

Неограниченные и мгновенные запугивания / превращения (работает на всех устройствах [щиты / снайперы / и т.д.], 100% точность и не распространяется на ваших снайперов). Полностью совместимы с любыми существующими upgrade_value модификациями, которые у вас есть (повреждение оружия, жизнь, броню, и т.д.):
-- 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 0.25
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():weapo n_tweak_data().usage ] = tweak_data.character.presets.weapon.sniper.m4
data.char_tweak.weapon[ data.unit:inventory():equipped_unit():base():weapo n_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():weapo n_tweak_data().usage ].FALLOFF[distance].acc[interpolate] = 1
end
end
end
_onSniperEnter(data, new_logic_name, enter_params)
end

Отмена денежных наказаний за убийство гражданского населения:
-- No cash penalty for killing civillians
function MoneyManager.get_civilian_deduction() return 0 end
function MoneyManager.civilian_killed() return end

Убить всех Al's прямо на карте:
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_data.col_ray = col_ray

pawn.unit:character_damage():damage_explosion(acti on_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

Неограниченное использование докторской сумки:
-- Unlimited doctor bag uses
function DoctorBagBase:_take( unit )
unit:character_damage():recover_health() -- replenish()
return 0
end

Быстрое сверление
function TimerGui:_set_jamming_values() return end
function TimerGui:start( timer )
timer = 0.01
if self._jammed then
self:_set_jammed( false )
return
end

if not self._powered then
self:_set_powered( true )
return
end

if self._started then
return
end

self:_start( timer )
if managers.network:session() then
managers.network:session():send_to_peers_synched( "start_timer_gui", self._unit, timer )
end
end

Секъюрити сумки для награбленного во время миссии:
function secure(name)
managers.loot:secure( name, managers.money:get_bag_value( name ) )
end
secure("money") -- (Cash)
secure("gold")
secure("diamonds")
secure("coke")
secure("meth")
secure("weapons")

Множитель награбленного (дополнительные деньги в ювелирных магазинах, сейфы в ограбленных банках)
-- Small loot value multiplier (extra jewelry cash value in jewelry store, deposit boxes in bank heist, etc)
if not _uvSmallLoot then _uvSmallLoot = PlayerManager.upgrade_value end
function PlayerManager:upgrade_value( category, upgrade, default )
if category == "player" and upgrade == "small_loot_multiplier" then
return 10
else
return _uvSmallLoot(self, category, upgrade, default)
end
end
if not _uvlSmallLoot then _uvlSmallLoot = PlayerManager.upgrade_value_by_level end
function PlayerManager:upgrade_value_by_level( category, upgrade, level, default )
if category == "player" and upgrade == "small_loot_multiplier" then
return 10
else
return _uvlSmallLoot(self, category, upgrade, level, default)
end
end

Добавить существующие работы (Запустить, находясь в главном меню, затем войти в crime.net)
-- Spawning Jobs
-- job_id: "branchbank_cash_prof", etc
-- difficulty: "easy" *Easy*, "normal" *Normal*, "hard" *Hard*, "overkill" *Very Hard*, "overkill_145" *Overkill*
function add_job(job_id, difficulty)
local difficulty_id = tweak_data:difficulty_to_index( difficulty )
table.insert( managers.crimenet._presets, { job_id = job_id, difficulty_id = difficulty_id, difficulty = difficulty, chance = 1 } )
managers.crimenet._MAX_ACTIVE_JOBS = managers.crimenet._MAX_ACTIVE_JOBS + 1
end

-- _NEW_JOB_MIN_TIME/_NEW_JOB_MAX_TIME are a better alternative to managers.crimenet._debug_mass_spawning
managers.crimenet._NEW_JOB_MIN_TIME = 0
managers.crimenet._NEW_JOB_MAX_TIME = 0
managers.crimenet._presets = { }
managers.crimenet._active_jobs = { }
managers.crimenet._MAX_ACTIVE_JOBS = 0
add_job("welcome_to_the_jungle_prof", "overkill_145")
add_job("framing_frame", "overkill_145")
add_job("branchbank_prof", "overkill_145")
add_job("ukrainian_job_prof", "overkill_145")
add_job("watchdogs", "overkill_145")
add_job("alex", "overkill_145")
add_job("firestarter", "overkill_145")
add_job("jewelry_store", "overkill_145")
add_job("four_stores", "overkill_145")
add_job("nightclub", "overkill_145")
add_job("mallcrasher", "overkill_145")
add_job("family", "overkill_145")

"welcome_to_the_jungle_prof", -- (Big Oil)
"framing_frame", "framing_frame_prof",
"watchdogs", "watchdogs_prof",
"alex", "alex_prof", -- (Rats)
"firestarter", "firestarter_prof",
"ukrainian_job_prof",
"jewelry_store",
"four_stores",
"nightclub",
"mallcrasher",
"branchbank_deposit", "branchbank_cash", "branchbank_gold_prof", "branchbank_prof".
"family" -- (Diamond Heist)

Альтернатива спаунинга существующих рабочих мест (работает только с Update 10 +, это позволяет приобрести любую работу бесплатно)
-- Free job purchase
function MoneyManager:get_cost_of_premium_contract(job_id, difficulty) return 0 end

Бесплатные активы (вы должны активировать скрипт, когда все будут в комнате, где у вас есть возможность приобрести активы)
-- Free assets
function MoneyManager:on_buy_mission_asset( asset_id ) return 0 end
function MoneyManager:get_mission_asset_cost() return 0 end
function MoneyManager:get_mission_asset_cost_by_stars( stars ) return 0 end
function MoneyManager:get_mission_asset_cost_by_id( id ) return 0 end

Позволяет перезагрузку при работе в процессе
-- Allow restart on pro jobs
if not _oldIsProfessional then _oldIsProfessional = JobManager.is_current_job_professional end
if not _newIsProfessional then _newIsProfessional = function(self) return false end end
if not _lobbyStateEnter then _lobbyStateEnter = IngameLobbyMenuState.at_enter end
function IngameLobbyMenuState:at_enter()
JobManager.is_current_job_professional = _newIsProfessional
_lobbyStateEnter(self)
JobManager.is_current_job_professional = _oldIsProfessional
end
if not _lobbyContinue then _lobbyContinue = GameOverState.continue end
function GameOverState:continue()
JobManager.is_current_job_professional = _newIsProfessional
_lobbyContinue(self)
JobManager.is_current_job_professional = _oldIsProfessional
end
if not _lobbyShutDownNetwork then _lobbyShutDownNetwork = GameOverState._shut_down_network end
function GameOverState:_shut_down_network( ... )
JobManager.is_current_job_professional = _newIsProfessional
_lobbyShutDownNetwork(self, ...)
JobManager.is_current_job_professional = _oldIsProfessional
end
if not _lobbyLoadStartMenu then _lobbyLoadStartMenu = GameOverState._load_start_menu end
function GameOverState:_load_start_menu( ... )
JobManager.is_current_job_professional = _newIsProfessional
_lobbyLoadStartMenu(self, ...)
JobManager.is_current_job_professional = _oldIsProfessional
end
if not _lobbySetBtnText then _lobbySetBtnText = GameOverState._set_continue_button_text end
function GameOverState:_set_continue_button_text()
JobManager.is_current_job_professional = _newIsProfessional
_lobbySetBtnText(self)
JobManager.is_current_job_professional = _oldIsProfessional
end
function MenuCallbackHandler:singleplayer_restart() return true end

Выигриш сил:
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

Потеря сил:
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

Особый побег:
-- Force specific escape ("escape_cafe", "escape_park", "escape_street", "escape_overpass", "escape_garage", "escape_overpass_night")
if not _setInterrupt then _setInterrupt = JobManager.set_next_interupt_stage end
function JobManager:set_next_interupt_stage( interrupt )
_setInterrupt(self, "escape_garage")
end

Отмена побега
function unlock_asset( asset_id )
local asset = managers.assets:_get_asset_by_id( asset_id )
if asset then
if Network:is_server() and not managers.assets:get_asset_triggered_by_id( asset_id ) then
managers.assets:server_unlock_asset( asset_id )
elseif not managers.assets:get_asset_unlocked_by_id( asset_id ) then
managers.network:session():send_to_host( "server_unlock_asset", asset_id )
end
asset.show = true
else
table.insert( managers.assets._global.assets, { id=asset_id, unlocked=true, show=true, can_unlock=false } )
end
managers.assets:init_finalize()
managers.menu_component:create_asset_mission_brief ing_gui()
end
unlock_asset("safe_escape")

Серегааа
30.06.2014, 18:56
Все отлично работает, есть небольшие недочеты, но это уже сама игра. А именно, что не во всех миссиях работают определенные скрипты, но тут уже ничего поделать не можем)

CoreyTaylor13
01.07.2014, 10:15
У меня при запуске вылетает ошибка "steam must be running to play this game"
Хотя стим включён

=Storm=
02.07.2014, 12:42
У меня при запуске вылетает ошибка "steam must be running to play this game"
Хотя стим включён
Такая же проблема.

Серегааа
03.07.2014, 17:10
Только что зашел, ничего не вылетает. Значит причина в вас, ищите ее.