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

View file

@ -0,0 +1,87 @@
--[[----------------------------------------------------------------------------
Õðàíèëèùå òåêñòîâûõ èíòåðïðåòàöèé ðàíãîâ è ôóíêöèè äëÿ ðàáîòû ñ íèì.
×óãàé Àëåêñàíäð
------------------------------------------------------------------------------]]
-- ðàíãè. ôîðìàò: {novice={0,30}, experienced={30,60}, ...}
local stalker_rank_intervals
local monster_rank_intervals
local stalker_max_rank_name
local monster_max_rank_name
local ranks_loaded = false
-- ïàðñèò çàäàííóþ ñòðîêó ðàíãîâ â çàäàííóþ òàáëèöó.
-- âîçâðàùàåò íàçâàíèå ìàêñèìàëüíîãî ðàíãà
function parse_ranks( s, tbl )
s = "0," .. s .. ",10000"
local t = parse_names( s )
local i = 2
while i < #t do
tbl[t[i]] = { tonumber(t[i-1]), tonumber(t[i+1]) }
i = i + 2
end
return t[i-2]
end
-- âû÷èòûâàåò ñòàëêåðñêèå è ìîíñòðÿ÷èå ðàíãè èç game_relations.ltx
function read_all_ranks()
stalker_rank_intervals = {}
monster_rank_intervals = {}
local ltx = system_ini()
stalker_max_rank_name = parse_ranks( ltx:r_string( "game_relations", "rating" ), stalker_rank_intervals )
monster_max_rank_name = parse_ranks( ltx:r_string( "game_relations", "monster_rating" ), monster_rank_intervals )
ranks_loaded = true
-- print_table( stalker_rank_intervals )
end
--
function get_rank_name( rank, tbl )
for name, interval in pairs( tbl ) do
if rank >= interval[1] and rank < interval[2] then
return name
end
end
return nil
end
-- âîçâðàùàåò íàçâàíèå ðàíãà çàäàííîãî game_object (ïåðñîíàæà)
function get_obj_rank_name( obj )
if not ranks_loaded then
read_all_ranks()
end
local obj_rank
-- HACK
if obj.m_story_id ~= nil then
obj_rank = obj:rank()
else
obj_rank = obj:character_rank()
end
if IsStalker(obj) then
return get_rank_name( obj_rank, stalker_rank_intervals ) or stalker_max_rank_name
else
return get_rank_name( obj_rank, monster_rank_intervals ) or monster_max_rank_name
end
end
-- âîçâðàùàåò òàáëè÷êó ñ èíòåðâàëîì ðàíãîâ äëÿ çàäàííîãî íàçâàíèÿ èíòåðâàëà
function get_rank_interval( name )
if not ranks_loaded then
read_all_ranks()
end
return stalker_rank_intervals[name] or monster_rank_intervals[name]
end