add game&rawdata

This commit is contained in:
Vasily Petrov 2026-06-17 23:06:51 +03:00
parent 0133cd976c
commit 49b34b5546
45731 changed files with 709831 additions and 0 deletions

450
gamedata/scripts/pda.script Normal file
View file

@ -0,0 +1,450 @@
-- вызывается 1 раз в 3 секунды
function fill_faction_state(state)
local board = sim_board.get_sim_board()
state.member_count = 0
state.resource = 0
state.power = 0
state.actor_goodwill = 3000
state.name = "ui_inGame2_hint_wnd_bar"
state.icon = "ui_inGame2_hint_wnd_bar"
state.icon_big = "logos_big_empty"
state.target = game.translate_string("ui_st_no_faction")
state.target_desc = "aaa"
state.location = "a"
state.war_state1 = "a"
state.war_state_hint1 = "1"
state.war_state2 = "3"
state.war_state_hint2 = "2"
state.war_state3 = "33"
state.war_state_hint3 = ""
state.war_state4 = "23"
state.war_state_hint4 = ""
state.war_state5 = "5"
state.war_state_hint5 = "5"
state.bonus = 0
end
--int get_max_member_count (); ------ 1 раз в 3 секунды
--float get_max_resource();
--float get_max_power();
function get_max_member_count()
return 10
end
function get_max_resource()
return 10
end
function get_max_power()
return 10
end
-- потом это нужно стереть
-- int mode:
-- 0 = Undefined = закрыто
-- 1 = Inventory
-- 2 = Trade
-- 3 = Upgrade
-- 4 = DeadBodySearch
-- 10 = Talk dialog show
-- 11 = Talk dialog hide
local last_mode = 0
dialog_closed = false
trade_closed = false
upgrade_closed = false
function actor_menu_mode(mode)
if(mode==0) then
if(last_mode==1) then
inventory_wnd_closed()
elseif(last_mode==2) then
trade_wnd_closed()
elseif(last_mode==3) then
upgrade_wnd_closed()
elseif(last_mode==4) then
dead_body_search_wnd_closed()
end
last_mode = 0
elseif(mode==1) then
last_mode = 1
inventory_wnd_opened()
elseif(mode==2) then
last_mode = 2
trade_wnd_opened()
elseif(mode==3) then
last_mode = 3
upgrade_wnd_opened()
elseif(mode==4) then
last_mode = 4
dead_body_search_wnd_opened()
elseif(mode==10) then
dialog_wnd_showed()
elseif(mode==11) then
dialog_wnd_closed()
end
end
function inventory_wnd_opened()
--printf("---:>Inventory opened")
end
function inventory_wnd_closed()
--printf("---:>Inventory closed")
end
function trade_wnd_opened()
dialog_closed = false
--printf("---:>Trade opened")
end
function trade_wnd_closed()
--printf("---:>Trade closed")
trade_closed = true
end
function upgrade_wnd_opened()
dialog_closed = false
--printf("---:>Upgrade opened")
end
function upgrade_wnd_closed()
--printf("---:>Upgrade closed")
upgrade_closed = true
end
function dead_body_search_wnd_opened()
--printf("---:>DeadBodySearch opened")
end
function dead_body_search_wnd_closed()
--printf("---:>DeadBodySearch closed")
end
function dialog_wnd_showed()
dialog_closed = false
for k,v in pairs(db.storage) do
local npc = v.object
if npc ~= nil then
local npc_id = npc:id()
if npc:is_talking() and npc_id ~= db.actor:id() then
local sound_theme = xr_sound.sound_table[npc_id]
if sound_theme and sound_theme.reset then
sound_theme:reset(npc_id)
end
break
end
end
end
--printf("---:>Talk Dialog show")
end
function dialog_wnd_closed()
--printf("---:>Talk Dialog hide")
dialog_closed = true
end
-- CoCray
function get_time_elapsed()
local s_time = level.get_start_time()
local seconds = tonumber(game.get_game_time():diffSec(s_time))
if (seconds < 60) then
return string.format("%d %s",seconds,game.translate_string("ui_st_secs"))
elseif (seconds < 3600) then
return string.format("%d %s",seconds/60,game.translate_string("ui_st_mins"))
elseif (seconds < 86400) then
return string.format("%d %s",seconds/60/60,game.translate_string("ui_st_hours"))
end
return string.format("%d %s",seconds/60/60/24,game.translate_string("ui_st_days"))
end
--//
function get_stat(index) -- index= int return string
if(index==0) then
return tostring(get_time_elapsed())
elseif(index==1) then
return tostring(xr_statistic.actor_statistic.surges)
elseif(index==2) then
return tostring(xr_statistic.actor_statistic.completed_quests)
elseif(index==3) then
return tostring(xr_statistic.actor_statistic.killed_monsters)
elseif(index==4) then
return tostring(xr_statistic.actor_statistic.killed_stalkers)
elseif(index==5) then
return tostring(xr_statistic.actor_statistic.artefacts_founded)
elseif(index==6) then
return tostring(xr_statistic.actor_statistic.founded_secrets)
end
return "Unknown"
end
killed_monsters_tbl =
{
bloodsucker_weak = {back = "ui_inGame2_Krovosos", icon = ""},
bloodsucker_normal = {back = "ui_inGame2_Krovosos_1", icon = ""},
bloodsucker_strong = {back = "ui_inGame2_Krovosos_2", icon = ""},
boar_weak = {back = "ui_inGame2_Kaban_1", icon = ""},
boar_strong = {back = "ui_inGame2_Kaban", icon = ""},
burer = {back = "ui_inGame2_Burer", icon = ""},
chimera = {back = "ui_inGame2_Himera", icon = ""},
controller = {back = "ui_inGame2_Controller", icon = ""},
dog = {back = "ui_inGame2_Blind_Dog", icon = ""},
flesh_weak = {back = "ui_inGame2_Flesh", icon = ""},
flesh_strong = {back = "ui_inGame2_Flesh_1", icon = ""},
gigant = {back = "ui_inGame2_Pseudo_Gigant", icon = ""},
poltergeist_tele = {back = "ui_inGame2_Poltergeyst", icon = ""},
poltergeist_flame = {back = "ui_inGame2_Poltergeist_1", icon = ""},
psy_dog_weak = {back = "ui_inGame2_PseudoDog_1", icon = ""},
psy_dog_strong = {back = "ui_inGame2_PseudoDog", icon = ""},
pseudodog_weak = {back = "ui_inGame2_PseudoDog_1", icon = ""},
pseudodog_strong = {back = "ui_inGame2_PseudoDog", icon = ""},
snork = {back = "ui_inGame2_Snork", icon = ""},
tushkano = {back = "ui_inGame2_Tushkan", icon = ""},
none = {back = "", icon = ""}
}
function get_monster_back()
if not(xr_statistic.actor_statistic.best_monster) or not(killed_monsters_tbl[xr_statistic.actor_statistic.best_monster]) then
return tostring(killed_monsters_tbl.none.back)
end
return tostring(killed_monsters_tbl[xr_statistic.actor_statistic.best_monster].back)
end
function get_monster_icon()
if not(xr_statistic.actor_statistic.best_monster) or not(killed_monsters_tbl[xr_statistic.actor_statistic.best_monster]) then
return tostring(killed_monsters_tbl.none.icon)
end
return tostring(killed_monsters_tbl[xr_statistic.actor_statistic.best_monster].icon)
end
function get_favorite_weapon()
if not(xr_statistic.actor_statistic.favorite_weapon_sect) then
return "wpn_knife"
end
return xr_statistic.actor_statistic.favorite_weapon_sect
end
local primary_objects_tbl =
{
{target="zat_b55_spot", hint="st_zat_b55_name"},
{target="zat_b100_spot", hint="st_zat_b100_name"},
{target="zat_b104_spot", hint="st_zat_b104_name"},
{target="zat_b38_spot", hint="st_zat_b38_name"},
{target="zat_b40_spot", hint="st_zat_b40_name"},
{target="zat_b56_spot", hint="st_zat_b56_name"},
{target="zat_b5_spot", hint="st_zat_b5_name"},
{target="zat_a2_spot", hint="st_zat_a2_name"},
{target="zat_b20_spot", hint="st_zat_b20_name"},
{target="zat_b53_spot", hint="st_zat_b53_name"},
{target="zat_b101_spot", hint="st_zat_b101_name"},
{target="zat_b106_spot", hint="st_zat_b106_name"},
{target="zat_b7_spot", hint="st_zat_b7_name"},
{target="zat_b14_spot", hint="st_zat_b14_name"},
{target="zat_b52_spot", hint="st_zat_b52_name"},
{target="zat_b39_spot", hint="st_zat_b39_name"},
{target="zat_b33_spot", hint="st_zat_b33_name"},
{target="zat_b18_spot", hint="st_zat_b18_name"},
{target="zat_b54_spot", hint="st_zat_b54_name"},
{target="zat_b12_spot", hint="st_zat_b12_name"},
{target="zat_b28_spot", hint="st_zat_b28_name"},
{target="zat_b103_spot", hint="st_zat_b103_name"},
{target="jup_b1_spot", hint="st_jup_b1_name"},
{target="jup_b46_spot", hint="st_jup_b46_name"},
{target="jup_b202_spot", hint="st_jup_b202_name"},
{target="jup_b211_spot", hint="st_jup_b211_name"},
{target="jup_b200_spot", hint="st_jup_b200_name"},
{target="jup_b19_spot", hint="st_jup_b19_name"},
{target="jup_a6_spot", hint="st_jup_a6_name"},
{target="jup_b25_spot", hint="st_jup_b25_name"},
{target="jup_b6_spot", hint="st_jup_b6_name"},
{target="jup_b205_spot", hint="st_jup_b205_name"},
{target="jup_b206_spot", hint="st_jup_b206_name"},
{target="jup_b32_spot", hint="st_jup_b32_name"},
{target="jup_a10_spot", hint="st_jup_a10_name"},
{target="jup_b209_spot", hint="st_jup_b209_name"},
{target="jup_b208_spot", hint="st_jup_b208_name"},
{target="jup_a12_spot", hint="st_jup_a12_name"},
{target="jup_b212_spot", hint="st_jup_b212_name"},
{target="jup_b9_spot", hint="st_jup_b9_name"},
{target="jup_b201_spot", hint="st_jup_b201_name"},
{target="jup_a9_spot", hint="st_jup_a9_name"},
{target="pri_a28_spot", hint="st_pri_a28_name"},
{target="pri_b36_spot", hint="st_pri_b36_name"},
{target="pri_b303_spot", hint="st_pri_b303_name"},
{target="pri_b301_spot", hint="st_pri_b301_name"},
{target="pri_a17_spot", hint="st_pri_a17_name"},
{target="pri_b306_spot", hint="st_pri_b306_name"},
{target="pri_a16_spot", hint="st_pri_a16_name"},
{target="pri_a25_spot", hint="st_pri_a25_name"},
{target="pri_b35_spot", hint="st_pri_b35_name"},
{target="pri_a21_spot", hint="st_pri_a21_name"},
{target="pri_b304_spot", hint="st_pri_b304_name"},
{target="pri_a18_spot", hint="st_pri_a18_name"}
}
local change_objects_tbl =
{
{target = "jup_b32_spot", hint = "st_jup_b32_name", zone = "jup_b32_anomal_zone", group = "jup_b32_scanner_1_placed", enabled = false},
{target = "jup_b201_spot", hint = "st_jup_b201_name", zone = "jup_b201_anomal_zone", group = "jup_b32_scanner_2_placed", enabled = false},
{target = "jup_b209_spot", hint = "st_jup_b209_name", zone = "jup_b209_anomal_zone", group = "jup_b32_scanner_3_placed", enabled = false},
{target = "jup_b211_spot", hint = "st_jup_b211_name", zone = "jup_b211_anomal_zone", group = "jup_b32_scanner_4_placed", enabled = false},
{target = "jup_b1_spot", hint = "st_jup_b1_name", zone = "jup_b10_anomal_zone", group = "jup_b32_scanner_5_placed", enabled = false},
}
local sleep_zones_tbl =
{
{target = "zat_a2_sr_sleep_id", hint = "st_ui_pda_sleep_place"},
{target = "jup_a6_sr_sleep_id", hint = "st_ui_pda_sleep_place"},
{target = "pri_a16_sr_sleep_id", hint = "st_ui_pda_sleep_place"},
}
function fill_primary_objects()
for k,v in pairs(primary_objects_tbl) do
local obj_id = get_story_object_id(v.target)
if(obj_id) then
level.map_add_object_spot(obj_id, "primary_object", v.hint)
end
end
change_anomalies_names()
fill_sleep_zones()
end
function fill_sleep_zones()
for k,v in pairs(sleep_zones_tbl) do
local obj_id = get_story_object_id(v.target)
if(obj_id and db.storage[obj_id] and db.storage[obj_id].object) then
if(db.storage[obj_id].object:position():distance_to(db.actor:position())<=150 and level.map_has_object_spot(obj_id, "ui_pda2_actor_sleep_location")==0) then
level.map_add_object_spot(obj_id, "ui_pda2_actor_sleep_location", v.hint)
elseif(db.storage[obj_id].object:position():distance_to(db.actor:position())>150 and level.map_has_object_spot(obj_id, "ui_pda2_actor_sleep_location")~=0) then
level.map_remove_object_spot(obj_id, "ui_pda2_actor_sleep_location")
end
end
end
end
function add_quick_slot_items_on_game_start()
local _ini = system_ini()
local str = utils.cfg_get_string(_ini, "actor", "quick_item_1", db.actor, false, "", "")
get_console():execute("slot_0 "..str)
local str = utils.cfg_get_string(_ini, "actor", "quick_item_2", db.actor, false, "", "")
get_console():execute("slot_1 "..str)
local str = utils.cfg_get_string(_ini, "actor", "quick_item_3", db.actor, false, "", "")
get_console():execute("slot_2 "..str)
local str = utils.cfg_get_string(_ini, "actor", "quick_item_4", db.actor, false, "", "")
get_console():execute("slot_3 "..str)
end
function change_anomalies_names()
if has_alife_info("jup_b32_scanner_reward") then
for k,v in pairs(change_objects_tbl) do
if has_alife_info(v.group) and not v.enabled then
v.enabled = true
end
end
end
if level.name() ~= "jupiter" then
return
end
for k,v in pairs(change_objects_tbl) do
if v.enabled then
local obj_id = get_story_object_id(v.target)
if (obj_id) and (level.map_has_object_spot(obj_id, "primary_object") ~= 0) then
level.map_remove_object_spot(obj_id, "primary_object")
end
local hint = game.translate_string(v.hint).."\\n".." \\n"
local has_af = false
local af_table = {}
has_af, af_table = xr_conditions.anomaly_has_artefact(db.actor, nil, {v.zone})
if has_af then
hint = hint..game.translate_string("st_jup_b32_has_af")
for k,v in pairs(af_table) do
hint = hint.."\\n"..game.translate_string("st_"..v.."_name")
end
else
hint = hint..game.translate_string("st_jup_b32_no_af")
end
if (obj_id) and level.map_has_object_spot(obj_id, "primary_object") == 0 then
level.map_add_object_spot(obj_id, "primary_object", hint)
end
end
end
end
-- CoCray
----------------------------------------------------------------------------
-- Engine->lua function calls
----------------------------------------------------------------------------
-- PDA Tabs
-- It's now possible to add new button tabs to pda*.xml.
-- You can use ActorMenu.get_pda_menu():GetActiveSection() to find out active pda tab
-- UI returned must be CUIScriptWnd
function set_active_subdialog(section)
--printf("section=%s",section)
if (section == "eptTasks") then
elseif (section == "eptRanking") then
elseif (section == "eptLogs") then
return nil
elseif (section == "eptRelations") then
--return ui_pda_relations_tab.get_ui()
elseif (section == "eptContacts") then
--return ui_pda_contacts_tab.get_ui()
elseif (section == "eptEncyclopedia") then
--return ui_pda_encyclopedia_tab.get_ui()
end
end
function property_box_clicked(property_ui)
-- See CoC for implmentation
end
function property_box_add_properties(property_ui,id,level_name,hint)
-- See CoC for implmentation
end
-- called from engine! It's how many character rankings to display! u8 (max 255)
function get_rankings_array_size()
return 1
end
-- called from engine! must return bool!
function coc_rankings_can_show(index)
return false
end
-- called from engine! must return string!
function coc_rankings_set_name(index)
return ""
end
-- called from engine! must return string!
function coc_rankings_set_hint(index)
return ""
end
-- called from engine! must return string!
function coc_rankings_set_description(index)
return ""
end
-- called from engine! must return string!
function coc_rankings_set_icon(index)
return ""
end
-- //