197 lines
4.3 KiB
Plaintext
197 lines
4.3 KiB
Plaintext
local loot_coefficient = 1.0
|
|
local safe_uninstall = false
|
|
|
|
local itemlist={}
|
|
itemlist.akvatab={
|
|
novice=0,
|
|
trainee=0,
|
|
experienced=0,
|
|
professional=0,
|
|
veteran=0,
|
|
expert=0,
|
|
master=0,
|
|
legend=0}
|
|
itemlist.morphine={
|
|
novice=0,
|
|
trainee=0,
|
|
experienced=0,
|
|
professional=0,
|
|
veteran=0,
|
|
expert=0,
|
|
master=0,
|
|
legend=0}
|
|
itemlist.adrenalin={
|
|
novice=0,
|
|
trainee=0,
|
|
experienced=0,
|
|
professional=0,
|
|
veteran=0,
|
|
expert=0,
|
|
master=0,
|
|
legend=0}
|
|
itemlist.jgut={
|
|
novice=0,
|
|
trainee=0,
|
|
experienced=0,
|
|
professional=0,
|
|
veteran=0,
|
|
expert=0,
|
|
master=0,
|
|
legend=0}
|
|
itemlist.splint={
|
|
novice=0.03,
|
|
trainee=0.05,
|
|
experienced=0.03,
|
|
professional=0,
|
|
veteran=0,
|
|
expert=0,
|
|
master=0,
|
|
legend=0}
|
|
itemlist.alu_splint={
|
|
novice=0,
|
|
trainee=0,
|
|
experienced=0.02,
|
|
professional=0.03,
|
|
veteran=0.04,
|
|
expert=0.05,
|
|
master=0.06,
|
|
legend=0.07}
|
|
itemlist.analgin={
|
|
novice=0.1,
|
|
trainee=0.1,
|
|
experienced=0.08,
|
|
professional=0.07,
|
|
veteran=0.07,
|
|
expert=0.06,
|
|
master=0.05,
|
|
legend=0.05}
|
|
itemlist.cms={
|
|
novice=0,
|
|
trainee=0,
|
|
experienced=0,
|
|
professional=0.03,
|
|
veteran=0.04,
|
|
expert=0.05,
|
|
master=0.06,
|
|
legend=0.07}
|
|
itemlist.sj1={
|
|
novice=0.00,
|
|
trainee=0.00,
|
|
experienced=0.00,
|
|
professional=0.03,
|
|
veteran=0.05,
|
|
expert=0.07,
|
|
master=0.08,
|
|
legend=0.1}
|
|
itemlist.sj6={
|
|
novice=0.00,
|
|
trainee=0.00,
|
|
experienced=0.00,
|
|
professional=0.00,
|
|
veteran=0.02,
|
|
expert=0.03,
|
|
master=0.06,
|
|
legend=0.08}
|
|
itemlist.etg={
|
|
novice=0.00,
|
|
trainee=0.00,
|
|
experienced=0.00,
|
|
professional=0.00,
|
|
veteran=0.02,
|
|
expert=0.03,
|
|
master=0.06,
|
|
legend=0.08}
|
|
itemlist.propital={
|
|
novice=0.00,
|
|
trainee=0.00,
|
|
experienced=0.00,
|
|
professional=0.03,
|
|
veteran=0.05,
|
|
expert=0.07,
|
|
master=0.08,
|
|
legend=0.1}
|
|
itemlist.zagustin={
|
|
novice=0.00,
|
|
trainee=0.00,
|
|
experienced=0.00,
|
|
professional=0.03,
|
|
veteran=0.05,
|
|
expert=0.07,
|
|
master=0.08,
|
|
legend=0.1}
|
|
itemlist.bandage_army={
|
|
novice=0.00,
|
|
trainee=0.00,
|
|
experienced=0.03,
|
|
professional=0.04,
|
|
veteran=0.05,
|
|
expert=0.06,
|
|
master=0.07,
|
|
legend=0.08}
|
|
itemlist.surginst={
|
|
novice=0.03,
|
|
trainee=0.05,
|
|
experienced=0.05,
|
|
professional=0.03,
|
|
veteran=0.00,
|
|
expert=0.00,
|
|
master=0.00,
|
|
legend=0.00}
|
|
|
|
function values(t)
|
|
local i = 0
|
|
return function() i = i + 1; return t[i] end
|
|
end
|
|
|
|
function delete_addon_items()
|
|
for i = 1, 65534 do
|
|
local obj = alife_object(i)
|
|
if obj then
|
|
for itemname in pairs(itemlist) do
|
|
if string.match(obj:name(), tostring(itemname)) then
|
|
printf("Deleting %s, Itemname: %s", obj:name(), itemname)
|
|
alife_release(obj)
|
|
break
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function on_option_change()
|
|
loot_coefficient = zzz_player_injuries_mcm.get_config("loot_coefficient")
|
|
safe_uninstall = zzz_player_injuries_mcm.get_config("safe_uninstall")
|
|
|
|
if safe_uninstall and level.present() then
|
|
delete_addon_items()
|
|
zzz_player_injuries_mcm.set_config("safe_uninstall", false)
|
|
end
|
|
end
|
|
|
|
function actor_on_first_update()
|
|
on_option_change()
|
|
end
|
|
|
|
local orig_spawn_cosmetics = death_manager.spawn_cosmetics
|
|
function death_manager.spawn_cosmetics(npc, npc_id, npc_comm, npc_rank, visual, rand_condition)
|
|
orig_spawn_cosmetics(npc, npc_id, npc_comm, npc_rank, visual, rand_condition)
|
|
printf("BHSRO Possible spawns:")
|
|
for objname, rank in pairs(itemlist) do
|
|
local max_uses = SYS_GetParam(2, objname, "max_uses", 1)
|
|
local do_uses = math.random(max_uses)
|
|
local chance = (itemlist[objname][npc_rank] or 0.05) * loot_coefficient
|
|
if (chance>0) then
|
|
printf("Object: %s Chance: %s%",objname, itemlist[objname][npc_rank]*100)
|
|
end
|
|
if math.random() < chance then
|
|
printf("Spawned %s with %s uses",objname,do_uses)
|
|
alife_create_item(objname, npc, { ["uses"] = do_uses })
|
|
end
|
|
end
|
|
end
|
|
|
|
function on_game_start()
|
|
RegisterScriptCallback("on_option_change", on_option_change)
|
|
RegisterScriptCallback("actor_on_first_update", actor_on_first_update)
|
|
end
|