1300 lines
51 KiB
Plaintext
1300 lines
51 KiB
Plaintext
|
---==================================================================================================================---
|
||
|
--- ---
|
||
|
--- Original Author(s) : NLTP_ASHES ---
|
||
|
--- Edited : N/A ---
|
||
|
--- Date : 20/02/2024 ---
|
||
|
--- License : Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) ---
|
||
|
--- ---
|
||
|
--- This script holds the 'core' of the addon. ---
|
||
|
--- Stuff that ensure proper working of the addon, or that are general purpose. ---
|
||
|
--- ---
|
||
|
--- Notable mentions are : ---
|
||
|
--- - This script is responsible for ensuring the player has the required game version and pre-requisites; ---
|
||
|
--- - This script is responsible for cleaning the save-game in case the player decides to remove the addon; ---
|
||
|
--- - This script is the source of truth for the list of items and objects added by the addon. ---
|
||
|
--- ---
|
||
|
---==================================================================================================================---
|
||
|
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
-- Constants, global variables and imported functions
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
-- Constants
|
||
|
local VERSION = "2.5.0"
|
||
|
|
||
|
-- Imported functions
|
||
|
local dbg_printf = western_goods_utils.dbg_printf
|
||
|
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
-- Core functions
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
--- Function used to print the version of the addon in the console/log.
|
||
|
--- @return nil
|
||
|
function print_addon_version()
|
||
|
UnregisterScriptCallback("on_game_load", print_addon_version)
|
||
|
printf("[WG] Western Goods version %s",VERSION)
|
||
|
end
|
||
|
|
||
|
--- Function used to delete every item added by the addon from the save file.
|
||
|
--- @author Leviathan
|
||
|
--- @return nil
|
||
|
function check_addon_removal(status)
|
||
|
if not status or not western_goods_mcm.get_config("addon_removal") then return end
|
||
|
|
||
|
dbg_printf("[WG] Core | Addon removal started...")
|
||
|
|
||
|
local released_objects = 0
|
||
|
|
||
|
dbg_printf("[WG] Core | Addon removal checking server objects...")
|
||
|
|
||
|
-- Release Western Goods items
|
||
|
western_goods_utils.server_objects_iter(function(se_obj)
|
||
|
dbg_printf("[WG] Core | Addon removal checking '%s' for deletion...", se_obj:section_name())
|
||
|
|
||
|
-- Check if is Western Goods item
|
||
|
if western_goods_items[se_obj:section_name()] then
|
||
|
released_objects = released_objects + 1
|
||
|
dbg_printf("[WG] Core | Addon removal releasing item '%s'", se_obj:section_name())
|
||
|
alife_release(se_obj)
|
||
|
return
|
||
|
end
|
||
|
|
||
|
-- Check if is Western Goods special item
|
||
|
for _,sec in pairs(western_goods_special_items) do
|
||
|
if se_obj:section_name() == sec then
|
||
|
released_objects = released_objects + 1
|
||
|
dbg_printf("[WG] Core | Addon removal releasing special item '%s'", se_obj:section_name())
|
||
|
alife_release(se_obj)
|
||
|
return
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- Check if is Western Goods squad
|
||
|
for _,sec in pairs(western_goods_squads) do
|
||
|
if se_obj:section_name() == sec then
|
||
|
released_objects = released_objects + 1 + se_obj:npc_count()
|
||
|
dbg_printf("[WG] Core | Addon removal releasing squad '%s'", se_obj:section_name())
|
||
|
SIMBOARD:remove_squad(se_obj)
|
||
|
return
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- Check if is Western Goods NPC
|
||
|
for _,sec in pairs(western_goods_npcs) do
|
||
|
if se_obj:section_name() == sec and (not western_goods_utils.get_squad_of(se_obj)) then
|
||
|
released_objects = released_objects + 1
|
||
|
dbg_printf("[WG] Core | Addon removal releasing squad-less NPC '%s'", se_obj:section_name())
|
||
|
alife():release(se_obj)
|
||
|
return
|
||
|
end
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
dbg_printf("[WG] Core | Addon removal checking info portions...")
|
||
|
|
||
|
for _,info_name in pairs(western_goods_info) do
|
||
|
western_goods_utils.rem_info(info_name)
|
||
|
end
|
||
|
|
||
|
dbg_printf("[WG] Core | Addon removal checking tasks...")
|
||
|
|
||
|
-- Cancel Western Goods tasks
|
||
|
for _,task_id in pairs(western_goods_task) do
|
||
|
task_manager.get_task_manager():set_task_cancelled(task_id)
|
||
|
end
|
||
|
|
||
|
news_manager.send_tip(db.actor, "Successfully removed all %c[yellow]" .. released_objects .. "%c[default] items added by Western Goods from the save-game.", nil, nil, 10000)
|
||
|
|
||
|
dbg_printf("[WG] Core | Addon removal finished : %s", released_objects)
|
||
|
|
||
|
western_goods_mcm.set_config("addon_removal", false)
|
||
|
end
|
||
|
|
||
|
--- Function used to detect missing translations.
|
||
|
--- This function will iterate all files in gamedata/configs/text/[eng|rus]/*.xml.
|
||
|
--- Then, it will compare the strings found, and warn if any language has missing translation.
|
||
|
--- @return nil
|
||
|
function check_missing_translations()
|
||
|
dbg_printf("[WG] Core | Starting check for missing translations...")
|
||
|
|
||
|
local profiler = profile_timer()
|
||
|
profiler:start()
|
||
|
|
||
|
local folders = { "eng", "rus" }
|
||
|
local strings = {}
|
||
|
|
||
|
for _, folder in pairs(folders) do
|
||
|
local file_list = western_goods_utils.list_files("text\\" .. folder .. "\\")
|
||
|
|
||
|
dbg_printf("[WG] Core | Gathering strings for '%s' language", folder)
|
||
|
strings[folder] = {}
|
||
|
|
||
|
for _,file_name in pairs(file_list) do
|
||
|
if string.find(file_name, "western_goods") then
|
||
|
dbg_printf("[WG] Core | Parsing file '%s'", file_name)
|
||
|
|
||
|
local xml = CScriptXmlInit()
|
||
|
xml:ParseDirFile("text\\" .. folder, file_name)
|
||
|
xml:NavigateToNode("string_table", 0)
|
||
|
|
||
|
for i=0, xml:GetNodesNum("", 0, "string") - 1 do
|
||
|
strings[folder][#strings[folder]+1] = xml:ReadAttribute("string", i, "id")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
for lang_curr, strings_curr in pairs(strings) do
|
||
|
for _, str_curr in pairs(strings_curr) do
|
||
|
for lang_other, strings_other in pairs(strings) do
|
||
|
if lang_curr ~= lang_other and not western_goods_utils.table_contains(strings_other, str_curr) then
|
||
|
printf("![WG] ERROR | Core | String '" .. str_curr .. "' found in '" .. lang_curr .. "' but not in '" .. lang_other .. "' !")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
profiler:stop()
|
||
|
dbg_printf("[WG] Core | Check for missing translations ended in %sms", profiler:time()/1000)
|
||
|
end
|
||
|
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
-- Other functions
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
--- Function called from game_tutorials.xml when the player interacts with a campfire.
|
||
|
--- @return nil
|
||
|
function use_campfire()
|
||
|
printf("[WG] Core | Use Campfire - Called from game_tutorials.xml")
|
||
|
end
|
||
|
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
-- Addons detection functions
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
--- Function used to check if the Barter UI is installed.
|
||
|
--- @return boolean
|
||
|
function is_barter_ui_installed()
|
||
|
return barter_core ~= nil
|
||
|
end
|
||
|
|
||
|
--- Function used to check if the Hideout Furniture is installed.
|
||
|
--- @return boolean
|
||
|
function is_hideout_furniture_installed()
|
||
|
return ui_furniture_light ~= nil and hf_obj_manager ~= nil
|
||
|
end
|
||
|
|
||
|
--- Function used to check if the Food, Drugs and Drinks Animations (FDDA) is installed.
|
||
|
--- @return boolean
|
||
|
function is_fdda_installed()
|
||
|
return enhanced_animations ~= nil
|
||
|
end
|
||
|
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
-- Prerequisites functions
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
--- Function used to check if the necessary pre-requisites are installed, and forcefully crash the game if they aren't.
|
||
|
--- @return nil
|
||
|
function check_prerequisites()
|
||
|
UnregisterScriptCallback("on_game_load", check_prerequisites)
|
||
|
|
||
|
-- Out-of-date game
|
||
|
assert(is_version_1_5_2(), string.format("\n\n%s\n\n%s\n\n%s\n\n%s",
|
||
|
western_goods_utils.get_translation("st_err_outdated_game_title"),
|
||
|
western_goods_utils.get_translation("st_err_outdated_game_what"),
|
||
|
western_goods_utils.get_translation("st_err_outdated_game_why"),
|
||
|
western_goods_utils.get_translation("st_err_outdated_game_where")
|
||
|
))
|
||
|
|
||
|
-- Missing DXML
|
||
|
assert(is_dxml_installed(), string.format("\n\n%s\n\n%s\n\n%s\n\n%s",
|
||
|
western_goods_utils.get_translation("st_err_missing_dxml_title"),
|
||
|
western_goods_utils.get_translation("st_err_missing_dxml_what"),
|
||
|
western_goods_utils.get_translation("st_err_missing_dxml_why"),
|
||
|
western_goods_utils.get_translation("st_err_missing_dxml_where")
|
||
|
))
|
||
|
|
||
|
-- Missing LUA unlocalizer
|
||
|
assert(is_lua_unlocalizer_installed(), string.format("\n\n%s\n\n%s\n\n%s\n\n%s",
|
||
|
western_goods_utils.get_translation("st_err_missing_unlocalizer_title"),
|
||
|
western_goods_utils.get_translation("st_err_missing_unlocalizer_what"),
|
||
|
western_goods_utils.get_translation("st_err_missing_unlocalizer_why"),
|
||
|
western_goods_utils.get_translation("st_err_missing_unlocalizer_where")
|
||
|
))
|
||
|
end
|
||
|
|
||
|
--- Function used to check if game version number is 1.5.2.
|
||
|
--- @return boolean
|
||
|
function is_version_1_5_2()
|
||
|
return string.find(GAME_VERSION,"1.5.2")
|
||
|
end
|
||
|
|
||
|
--- Function used to check if DXML is installed.
|
||
|
--- @return boolean
|
||
|
function is_dxml_installed()
|
||
|
return dxml_core ~= nil
|
||
|
end
|
||
|
|
||
|
--- Function used to check if LUA Unlocalizer is installed.
|
||
|
--- @return boolean
|
||
|
function is_lua_unlocalizer_installed()
|
||
|
return western_goods_core.VERSION == VERSION
|
||
|
end
|
||
|
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
-- Callbacks Registration
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
--- Function used to register callbacks.
|
||
|
--- @return nil
|
||
|
function on_game_start()
|
||
|
RegisterScriptCallback("on_game_load", print_addon_version)
|
||
|
RegisterScriptCallback("on_game_load", check_prerequisites)
|
||
|
RegisterScriptCallback("on_game_load", check_missing_translations)
|
||
|
RegisterScriptCallback("on_option_change", check_addon_removal)
|
||
|
end
|
||
|
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
-- ITEMS POOL
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
--
|
||
|
-- Example :
|
||
|
--
|
||
|
-- ["<section>"] = {
|
||
|
-- type = "<type>",
|
||
|
-- trader_params = {
|
||
|
-- ["<faction>"] = { qte=<quantity>, sl=<supply_level>, prob=<probability> },
|
||
|
-- ["<faction>"] = { qte=<quantity>, sl=<supply_level>, prob=<probability> }
|
||
|
-- },
|
||
|
-- corpse_params = {
|
||
|
-- ["<faction>"] = { qte=<quantity>, prob=<probability> },
|
||
|
-- ["<faction>"] = { qte=<quantity>, prob=<probability> }
|
||
|
-- },
|
||
|
-- },
|
||
|
--
|
||
|
--
|
||
|
-- Legend :
|
||
|
--
|
||
|
-- - <section> : Name of the section to spawn in traders/corpses.
|
||
|
--
|
||
|
-- - <type> : Type of the item. If you add a new one, don't forget to modify function spawn_western_goods_in_trader() to spawn the new type of item.
|
||
|
-- Range: "food", "drink", "magazine", "tech", "money".
|
||
|
--
|
||
|
-- - <faction> : Faction allowed to spawn the item in trader/corpse.
|
||
|
-- Range: "stalker", "bandit", "csky", "dolg", "freedom", "killer", "army", "ecolog", "monolith", "renegade", "greh", "isg" or "trader".
|
||
|
--
|
||
|
-- - <quantity> : Quantity of the item to spawn in traders.
|
||
|
-- Range: any positive integer value.
|
||
|
--
|
||
|
-- - <supply_level> : Required supply level to access the item in traders.
|
||
|
-- Range: an integer value between 1 and 5.
|
||
|
--
|
||
|
-- - <probability> : Spawn rate in traders/corpses.
|
||
|
-- Range: a value from 0.0 to 1.0.
|
||
|
--
|
||
|
--
|
||
|
-- Note :
|
||
|
--
|
||
|
-- If you want an item to spawn for a given faction trader, you must define all three values : qte, sl and prob.
|
||
|
-- If one is missing, it most likely won't work or it'll crash to desktop.
|
||
|
--
|
||
|
-- You can make changes to this table from another script.
|
||
|
-- This way, you can do "Western Goods rebalance" addons or something, without needing to redistribute this script.
|
||
|
-- For this, create a script and inset something like this :
|
||
|
--
|
||
|
-- == my_western_goods_edit_<some_unique_name>.script ==================================================================
|
||
|
-- function on_game_start()
|
||
|
-- RegisterScriptCallback("on_game_load", function()
|
||
|
-- western_goods_core.western_goods_items["wg_twix"].trader_params["stalker"] = { qte=1, sl=1, prob=0.2 }
|
||
|
-- end)
|
||
|
-- end
|
||
|
-- =====================================================================================================================
|
||
|
--
|
||
|
-- With this line, stalker barmen will now have a 20% chance of selling 1 Twix at Supply Level 1.
|
||
|
-- Note that callbacks are fired in a random order, so if multiple edits are made to the same object and the same
|
||
|
-- property, it's unknown what the result will be.
|
||
|
--
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
western_goods_items = {
|
||
|
["wg_twix"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["freedom"] = { qte=1, sl=1, prob=0.2 },
|
||
|
["killer"] = { qte=2, sl=1, prob=0.5 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.5 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=2, prob=0.02 },
|
||
|
["freedom"] = { qte=2, prob=0.05 },
|
||
|
["killer"] = { qte=2, prob=0.10 },
|
||
|
["monolith"] = { qte=2, prob=0.05 },
|
||
|
["renegade"] = { qte=2, prob=0.02 },
|
||
|
["isg"] = { qte=2, prob=0.10 }
|
||
|
},
|
||
|
},
|
||
|
["wg_mars"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["freedom"] = { qte=1, sl=1, prob=0.1 },
|
||
|
["killer"] = { qte=2, sl=1, prob=0.5 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.1 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.05 },
|
||
|
["killer"] = { qte=1, prob=0.10 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.10 }
|
||
|
},
|
||
|
},
|
||
|
["wg_milkyway"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["freedom"] = { qte=1, sl=1, prob=0.2 },
|
||
|
["killer"] = { qte=2, sl=1, prob=0.5 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.4 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.05 },
|
||
|
["killer"] = { qte=1, prob=0.10 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.10 }
|
||
|
},
|
||
|
},
|
||
|
["wg_snickers"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["bandit"] = { qte=1, sl=1, prob=0.8 },
|
||
|
["freedom"] = { qte=1, sl=1, prob=0.3 },
|
||
|
["killer"] = { qte=2, sl=1, prob=0.8 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.3 },
|
||
|
["renegade"] = { qte=1, sl=2, prob=0.7 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.05 },
|
||
|
["killer"] = { qte=1, prob=0.10 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.10 }
|
||
|
},
|
||
|
},
|
||
|
["wg_mnms"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=2, sl=1, prob=0.3 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.2 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=5, prob=0.02 },
|
||
|
["freedom"] = { qte=5, prob=0.05 },
|
||
|
["killer"] = { qte=5, prob=0.10 },
|
||
|
["monolith"] = { qte=5, prob=0.05 },
|
||
|
["renegade"] = { qte=5, prob=0.02 },
|
||
|
["isg"] = { qte=5, prob=0.10 }
|
||
|
},
|
||
|
},
|
||
|
["wg_mentos"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.2 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=3, prob=0.02 },
|
||
|
["freedom"] = { qte=3, prob=0.05 },
|
||
|
["killer"] = { qte=3, prob=0.10 },
|
||
|
["monolith"] = { qte=3, prob=0.05 },
|
||
|
["renegade"] = { qte=3, prob=0.02 },
|
||
|
["isg"] = { qte=3, prob=0.10 }
|
||
|
},
|
||
|
},
|
||
|
["wg_bounty"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["freedom"] = { qte=1, sl=1, prob=0.3 },
|
||
|
["killer"] = { qte=2, sl=1, prob=0.6 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.4 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.05 },
|
||
|
["killer"] = { qte=1, prob=0.10 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.10 }
|
||
|
},
|
||
|
},
|
||
|
["wg_kinder_maxi"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.3 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.05 },
|
||
|
["killer"] = { qte=1, prob=0.10 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.10 }
|
||
|
},
|
||
|
},
|
||
|
["wg_kinder_bueno"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.3 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=2, prob=0.02 },
|
||
|
["freedom"] = { qte=2, prob=0.05 },
|
||
|
["killer"] = { qte=2, prob=0.10 },
|
||
|
["monolith"] = { qte=2, prob=0.05 },
|
||
|
["renegade"] = { qte=2, prob=0.02 },
|
||
|
["isg"] = { qte=2, prob=0.10 }
|
||
|
},
|
||
|
},
|
||
|
["wg_kitkat"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.2 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=4, prob=0.01 },
|
||
|
["freedom"] = { qte=4, prob=0.02 },
|
||
|
["killer"] = { qte=4, prob=0.05 },
|
||
|
["monolith"] = { qte=4, prob=0.05 },
|
||
|
["renegade"] = { qte=4, prob=0.01 },
|
||
|
["isg"] = { qte=4, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_milka"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.2 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_lays"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["freedom"] = { qte=1, sl=1, prob=0.4 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.3 },
|
||
|
["renegade"] = { qte=1, sl=2, prob=0.6 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_doritos"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["bandit"] = { qte=1, sl=2, prob=0.7 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.2 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_pringles"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["freedom"] = { qte=1, sl=1, prob=0.3 },
|
||
|
["killer"] = { qte=2, sl=2, prob=0.4 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.2 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_hamborgir"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.5 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.03 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.02 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.10 }
|
||
|
},
|
||
|
},
|
||
|
["wg_gorbatschow_bottle"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["freedom"] = { qte=1, sl=1, prob=0.6 },
|
||
|
["killer"] = { qte=2, sl=1, prob=0.5 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.3 },
|
||
|
["renegade"] = { qte=1, sl=1, prob=0.8 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=2, prob=0.10 },
|
||
|
["freedom"] = { qte=2, prob=0.02 },
|
||
|
["killer"] = { qte=2, prob=0.05 },
|
||
|
["monolith"] = { qte=2, prob=0.05 },
|
||
|
["renegade"] = { qte=2, prob=0.05 },
|
||
|
["isg"] = { qte=2, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_cola_bottle"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=3, prob=0.01 },
|
||
|
["freedom"] = { qte=3, prob=0.02 },
|
||
|
["killer"] = { qte=3, prob=0.05 },
|
||
|
["monolith"] = { qte=3, prob=0.02 },
|
||
|
["renegade"] = { qte=3, prob=0.01 },
|
||
|
["isg"] = { qte=3, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_cola_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.02 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_sprite_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=2, sl=1, prob=0.7 },
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.02 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_redbull_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.02 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_perrier_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.02 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_rockstar_energy_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.02 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_monster_energy_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=2, sl=1, prob=0.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.02 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_wine_chateau_latour"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.02 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_yoohoo_bottle"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=2, sl=1, prob=0.1 },
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.02 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_nestea_icetea_bottle"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=2, sl=1, prob=0.3 },
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=2, prob=0.01 },
|
||
|
["freedom"] = { qte=2, prob=0.02 },
|
||
|
["killer"] = { qte=2, prob=0.05 },
|
||
|
["monolith"] = { qte=2, prob=0.02 },
|
||
|
["renegade"] = { qte=2, prob=0.01 },
|
||
|
["isg"] = { qte=2, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_mountain_dew_bottle"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=2, sl=3, prob=0.2 },
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=2, prob=0.01 },
|
||
|
["freedom"] = { qte=2, prob=0.02 },
|
||
|
["killer"] = { qte=2, prob=0.05 },
|
||
|
["monolith"] = { qte=2, prob=0.02 },
|
||
|
["renegade"] = { qte=2, prob=0.01 },
|
||
|
["isg"] = { qte=2, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_beer_86_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["bandit"] = { qte=1, sl=2, prob=0.9 },
|
||
|
["freedom"] = { qte=1, sl=1, prob=0.1 },
|
||
|
["killer"] = { qte=2, sl=1, prob=0.6 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.3 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_mountain_dew_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=2, sl=2, prob=0.8 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_fanta_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_pepsi_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_sevenup_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["freedom"] = { qte=1, sl=1, prob=0.5 },
|
||
|
["killer"] = { qte=2, sl=1, prob=0.8 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.5 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_dr_bob_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["freedom"] = { qte=1, sl=1, prob=0.6 },
|
||
|
["killer"] = { qte=2, sl=1, prob=0.8 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.5 },
|
||
|
["isg"] = { qte=3, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_lipton_icetea_can"] = {
|
||
|
type = "drink",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=2, sl=1, prob=0.8 },
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.02 },
|
||
|
["renegade"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_laptop"] = {
|
||
|
type = "tech",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=1, sl=3, prob=0.2 },
|
||
|
["isg"] = { qte=1, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["killer"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_military_radio"] = {
|
||
|
type = "tech",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=1, sl=1, prob=0.3 },
|
||
|
["isg"] = { qte=1, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["killer"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.02 }
|
||
|
},
|
||
|
},
|
||
|
["wg_gps"] = {
|
||
|
type = "tech",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=2, sl=1, prob=0.9 },
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["isg"] = { qte=1, prob=0.10 }
|
||
|
},
|
||
|
},
|
||
|
["wg_porn_mag_1"] = {
|
||
|
type = "magazine",
|
||
|
trader_params = {
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.01 },
|
||
|
["freedom"] = { qte=1, prob=0.01 },
|
||
|
["killer"] = { qte=1, prob=0.02 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_porn_mag_2"] = {
|
||
|
type = "magazine",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=1, sl=3, prob=0.4 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.02 }
|
||
|
},
|
||
|
},
|
||
|
["wg_porn_mag_3"] = {
|
||
|
type = "magazine",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=1, sl=2, prob=0.4 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.02 }
|
||
|
},
|
||
|
},
|
||
|
["wg_xbox_mag_1"] = {
|
||
|
type = "magazine",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=1, sl=1, prob=0.6 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.02 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.02 }
|
||
|
},
|
||
|
},
|
||
|
["wg_xbox_mag_2"] = {
|
||
|
type = "magazine",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=1, sl=2, prob=0.6 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.02 },
|
||
|
["renegade"] = { qte=1, prob=0.02 },
|
||
|
["isg"] = { qte=1, prob=0.02 }
|
||
|
},
|
||
|
},
|
||
|
["wg_dollars_10"] = {
|
||
|
type = "money",
|
||
|
trader_params = {
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.10 },
|
||
|
["freedom"] = { qte=1, prob=0.60 },
|
||
|
["killer"] = { qte=1, prob=0.80 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_dollars_50"] = {
|
||
|
type = "money",
|
||
|
trader_params = {
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.07 },
|
||
|
["freedom"] = { qte=1, prob=0.50 },
|
||
|
["killer"] = { qte=1, prob=0.70 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_dollars_100"] = {
|
||
|
type = "money",
|
||
|
trader_params = {
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.04 },
|
||
|
["freedom"] = { qte=1, prob=0.40 },
|
||
|
["killer"] = { qte=1, prob=0.60 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_euros_10"] = {
|
||
|
type = "money",
|
||
|
trader_params = {
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.10 },
|
||
|
["freedom"] = { qte=1, prob=0.60 },
|
||
|
["killer"] = { qte=1, prob=0.80 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_euros_50"] = {
|
||
|
type = "money",
|
||
|
trader_params = {
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.07 },
|
||
|
["freedom"] = { qte=1, prob=0.50 },
|
||
|
["killer"] = { qte=1, prob=0.70 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_euros_100"] = {
|
||
|
type = "money",
|
||
|
trader_params = {
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.04 },
|
||
|
["freedom"] = { qte=1, prob=0.40 },
|
||
|
["killer"] = { qte=1, prob=0.60 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_french_mre"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=1, sl=3, prob=0.25 },
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["killer"] = { qte=1, prob=0.01 },
|
||
|
["isg"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_sandwich"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
},
|
||
|
corpse_params = {
|
||
|
},
|
||
|
},
|
||
|
["wg_oreo"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=2, sl=2, prob=1.0 },
|
||
|
["isg"] = { qte=2, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.05 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_ferrero_rocher"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=1, sl=1, prob=0.5 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.05 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_mon_cheri"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["killer"] = { qte=1, sl=2, prob=0.6 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.05 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_toblerone"] = {
|
||
|
type = "food",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=1, sl=1, prob=1.0 },
|
||
|
["stalker"] = { qte=1, sl=3, prob=0.5 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.05 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.01 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_strana_igr_mag_1"] = {
|
||
|
type = "magazine",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=1, sl=1, prob=1.0 },
|
||
|
["stalker"] = { qte=1, sl=3, prob=0.4 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_car_mag_1"] = {
|
||
|
type = "magazine",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=1, sl=1, prob=1.0 },
|
||
|
["killer"] = { qte=1, sl=3, prob=0.6 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.04 },
|
||
|
["freedom"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_car_mag_2"] = {
|
||
|
type = "magazine",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=1, sl=1, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["bandit"] = { qte=1, prob=0.04 },
|
||
|
["freedom"] = { qte=1, prob=0.05 },
|
||
|
["renegade"] = { qte=1, prob=0.01 }
|
||
|
},
|
||
|
},
|
||
|
["wg_lighter_bic"] = {
|
||
|
type = "tech",
|
||
|
trader_params = {
|
||
|
["isg"] = { qte=1, sl=1, prob=1.0 },
|
||
|
["killer"] = { qte=2, sl=2, prob=0.9 },
|
||
|
["stalker"] = { qte=1, sl=2, prob=0.6 },
|
||
|
["freedom"] = { qte=1, sl=2, prob=0.8 },
|
||
|
["bandit"] = { qte=1, sl=2, prob=0.7 },
|
||
|
["monolith"] = { qte=1, sl=1, prob=0.7 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["stalker"] = { qte=1, prob=0.03 },
|
||
|
["bandit"] = { qte=1, prob=0.03 },
|
||
|
["freedom"] = { qte=1, prob=0.03 },
|
||
|
["renegade"] = { qte=1, prob=0.03 },
|
||
|
["killer"] = { qte=1, prob=0.05 },
|
||
|
["isg"] = { qte=1, prob=0.10 },
|
||
|
["monolith"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
},
|
||
|
["wg_rangefinder"] = {
|
||
|
type = "tech",
|
||
|
trader_params = {
|
||
|
["army"] = { qte=1, sl=2, prob=0.5 },
|
||
|
["isg"] = { qte=1, sl=1, prob=1.0 },
|
||
|
["killer"] = { qte=1, sl=2, prob=1.0 },
|
||
|
["monolith"] = { qte=1, sl=2, prob=1.0 }
|
||
|
},
|
||
|
corpse_params = {
|
||
|
["stalker"] = { qte=1, prob=0.02 },
|
||
|
["freedom"] = { qte=1, prob=0.02 },
|
||
|
["army"] = { qte=1, prob=0.03 },
|
||
|
["killer"] = { qte=1, prob=0.03 },
|
||
|
["isg"] = { qte=1, prob=0.05 },
|
||
|
["monolith"] = { qte=1, prob=0.05 }
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
-- OTHER ITEMS
|
||
|
-- ---------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
western_goods_special_items = {
|
||
|
"wg_money_suitcase",
|
||
|
"wg_act_1_task_1_quest_item",
|
||
|
"wg_act_1_task_2_quest_item_1",
|
||
|
"wg_act_1_task_2_quest_item_2",
|
||
|
"wg_act_2_task_2_quest_item",
|
||
|
"wg_danylo_pendrive_quest_item",
|
||
|
"wg_deployment_notice_quest_item",
|
||
|
"wg_stash_map_quest_item",
|
||
|
"western_goods_helicopter_landed",
|
||
|
"western_goods_helicopter",
|
||
|
}
|
||
|
|
||
|
western_goods_squads = {
|
||
|
"stalker_crew_member_squad",
|
||
|
"stalker_danylo_chernenko_squad",
|
||
|
"stalker_dunn_lynn_squad",
|
||
|
"stalker_jupiter_informant_squad",
|
||
|
"stalker_oleksandr_chernenko_squad",
|
||
|
"stalker_western_goods_trader_squad",
|
||
|
"western_goods_act_1_task_1_heli_crew_squad",
|
||
|
"western_goods_act_1_task_1_zombie_1_squad",
|
||
|
"western_goods_act_1_task_1_zombie_2_squad",
|
||
|
"western_goods_act_1_task_1_zombie_3_squad",
|
||
|
"western_goods_act_1_task_1_zombie_4_squad",
|
||
|
"western_goods_act_1_task_2_bandit_1_squad",
|
||
|
"western_goods_act_1_task_2_bandit_2_squad",
|
||
|
"western_goods_act_1_task_2_bandit_3_squad",
|
||
|
"western_goods_act_1_task_2_bandit_4_squad",
|
||
|
"western_goods_act_1_task_2_bandit_5_squad",
|
||
|
"western_goods_act_1_task_2_bandit_6_squad",
|
||
|
"western_goods_act_1_task_3_mono_bridge_1_squad",
|
||
|
"western_goods_act_1_task_3_mono_bridge_2_squad",
|
||
|
"western_goods_act_1_task_3_mono_bridge_3_squad",
|
||
|
"western_goods_act_1_task_3_mono_guards_1_squad",
|
||
|
"western_goods_act_1_task_3_mono_guards_2_squad",
|
||
|
"western_goods_act_2_task_2_army_squad",
|
||
|
"western_goods_act_2_task_2_bandit_1_squad",
|
||
|
"western_goods_act_2_task_2_bandit_2_squad",
|
||
|
"western_goods_act_2_task_2_controller_squad",
|
||
|
"western_goods_act_2_task_2_ecolog_squad",
|
||
|
"western_goods_act_2_task_2_lynn_guards_squad",
|
||
|
"western_goods_act_2_task_2_mono_squad",
|
||
|
"western_goods_act_2_task_2_snork_squad",
|
||
|
"western_goods_act_2_task_2_zombie_1_squad",
|
||
|
"western_goods_act_2_task_2_zombie_2_squad",
|
||
|
"western_goods_ssu_bounty_squad",
|
||
|
"western_goods_ssu_prisoner_squad",
|
||
|
"western_goods_ssu_supervisor_squad",
|
||
|
}
|
||
|
|
||
|
western_goods_npcs = {
|
||
|
"stalker_crew_member",
|
||
|
"stalker_danylo_chernenko",
|
||
|
"stalker_dunn_lynn",
|
||
|
"stalker_ecolog_convoy_orange",
|
||
|
"stalker_ecolog_convoy_yellow",
|
||
|
"stalker_jupiter_informant",
|
||
|
"stalker_oleksandr_chernenko",
|
||
|
"stalker_ssu_prisoner",
|
||
|
"stalker_ssu_supervisor",
|
||
|
"stalker_western_goods_trader",
|
||
|
}
|
||
|
|
||
|
western_goods_task = {
|
||
|
"western_goods_act_1_task_1",
|
||
|
"western_goods_act_1_task_2",
|
||
|
"western_goods_act_1_task_3",
|
||
|
"western_goods_act_2_task_1",
|
||
|
"western_goods_act_2_task_2",
|
||
|
"western_goods_act_3_task_1",
|
||
|
"western_goods_act_3_task_2",
|
||
|
"western_goods_act_3_task_3",
|
||
|
"western_goods_act_3_task_4",
|
||
|
}
|
||
|
|
||
|
western_goods_info = {
|
||
|
"western_goods_act_1_finished",
|
||
|
"western_goods_act_1_task_1_active",
|
||
|
"western_goods_act_1_task_1_finished",
|
||
|
"western_goods_act_1_task_1_init",
|
||
|
"western_goods_act_1_task_1_ready_finished",
|
||
|
"western_goods_act_1_task_2_active",
|
||
|
"western_goods_act_1_task_2_available",
|
||
|
"western_goods_act_1_task_2_finished",
|
||
|
"western_goods_act_1_task_2_init",
|
||
|
"western_goods_act_1_task_2_ready_finished",
|
||
|
"western_goods_act_1_task_3_active",
|
||
|
"western_goods_act_1_task_3_available",
|
||
|
"western_goods_act_1_task_3_crew_member_extracted",
|
||
|
"western_goods_act_1_task_3_finished",
|
||
|
"western_goods_act_1_task_3_init",
|
||
|
"western_goods_act_1_task_3_ready_finished",
|
||
|
"western_goods_act_2_finished",
|
||
|
"western_goods_act_2_task_1_active",
|
||
|
"western_goods_act_2_task_1_finished",
|
||
|
"western_goods_act_2_task_1_init",
|
||
|
"western_goods_act_2_task_1_ready_finished",
|
||
|
"western_goods_act_2_task_2_active",
|
||
|
"western_goods_act_2_task_2_controller_killed",
|
||
|
"western_goods_act_2_task_2_controller_killed",
|
||
|
"western_goods_act_2_task_2_controller_spawned",
|
||
|
"western_goods_act_2_task_2_ecolog_calm",
|
||
|
"western_goods_act_2_task_2_ecolog_calm",
|
||
|
"western_goods_act_2_task_2_ecolog_flee",
|
||
|
"western_goods_act_2_task_2_finished",
|
||
|
"western_goods_act_2_task_2_init",
|
||
|
"western_goods_act_2_task_2_ready_finished",
|
||
|
"western_goods_act_3_finished",
|
||
|
"western_goods_act_3_task_1_active",
|
||
|
"western_goods_act_3_task_1_finished",
|
||
|
"western_goods_act_3_task_1_init",
|
||
|
"western_goods_act_3_task_1_ready_finished",
|
||
|
"western_goods_act_3_task_2_active",
|
||
|
"western_goods_act_3_task_2_finished",
|
||
|
"western_goods_act_3_task_2_init",
|
||
|
"western_goods_act_3_task_2_ready_finished",
|
||
|
"western_goods_act_3_task_3_active",
|
||
|
"western_goods_act_3_task_3_finished",
|
||
|
"western_goods_act_3_task_3_init",
|
||
|
"western_goods_act_3_task_3_ready_finished",
|
||
|
"western_goods_act_3_task_4_active",
|
||
|
"western_goods_act_3_task_4_finished",
|
||
|
"western_goods_act_3_task_4_init",
|
||
|
"western_goods_act_3_task_4_ready_finished",
|
||
|
"western_goods_danylo_army_warehouses",
|
||
|
"western_goods_danylo_army_warehouses",
|
||
|
"western_goods_danylo_red_forest",
|
||
|
}
|