Od niedawana gram n modzie do CoP Missery. Szukam w pliku który odpowiada za drop z zabitych przeciwników. Chodzi dokładnie o to by przy trupach bronie nie były tak strasznie uszkodzone. Przeciwnik wali do mnie jakby z nowiutkiej spluwy która się nie ma prawa zaciąć a jak już go poskładam to przy zwłokach broń ma 10% stanu. Gdzie mogę zmienić wartość danego uszkodzenia przedmiotów przy zwłokach ??
function keep\_item(npc, item) item:set\_condition((math.random(20)+5)/100) ---\> jakość broni w procentach. function set\_weapon\_drop\_condition(item) local condition = (math.random(15)+5)/100 ---\> jakość broni w procentach.
W Misery wartości mogą być inne, to przykład z moda M.S.O
function set_outfit_drop_condition(npc)
local spawned_outfit = db.storage[npc:id()].spawned_outfit
if (spawned_outfit ~= nil ) then
local item = npc:object(spawned_outfit)
–’ TODO: condition by configuration
local condition = (math.random(25)+5)/100
item:set_condition( condition )
end
end
—’ Papa ScarabParamit say’s:
—’ Script for condition of looted items, don’t change until You read “death_loot_settings_OVERALL.ltx”
function set_weapon_drop_condition(item, npc)
if (npc ~= nil) then
local NPC_community = character_community(npc)
local NPC_rank = ranks.get_obj_rank_name(npc)
local cwc_max = (community_weapon_condition_max[NPC_community] * 100)
local cwc_min = (community_weapon_condition_min[NPC_community] * 100)
local rwc_max = (rank_weapon_condition_max[NPC_rank] * 100)
local rwc_min = (rank_weapon_condition_min[NPC_rank] * 100)
local wcf_max = weapon_condition_factor.max
local wcf_min = weapon_condition_factor.min
Musisz poszukać jakie wartości mają zmienne cwc_min, cwc_max, rwc_min, rwc_max, wcf_min, wcf_max i pozmieniać na takie jakie Ci pasują.
Funkcja math.random generuje liczbę z jakiegoś zakresu. W moim przykładzie math.random(15) będzie to zakres 1-15.
(math.random(15) +5)/100 –> generuje jakąś wartość z zakresu 1 - 15, dodaje do niej 5 i całość dzieli przez 100. Minimalna jakość broni to 1 + 5 podzielone przez 100 czyli 0,06. Maksymalna 15 + 5 podzielone przez 100 czyli 0,2.
W Misery początek i koniec zakresu definiują zmienne wymienione wyżej.
Musisz się sam z tym pobawić, tylko pamiętaj o zrobieniu kopii zapasowej tego pliku!
Ewentualnie jak nie czujesz się na siłach z samodzielnym eksperymentowaniem możesz wartość stanu broni ustawić “na sztywno”.
condition = 1 –> każda broń z trupa będzie miała 100% stanu
condition = 0,5 –> każda broń z trupa będzie miała 50% stanu
condition = 0,3 –> każda broń z trupa będzie miała 30% stanu
itd itp
Funkcja function set_outfit_drop_condition(npc) robi to samo ale dla pancerzy znajdowanych w trupach. Tu wszystko jest łatwiejsze bo ich stan określa linia local condition = (math.random(25)+5)/100. A to chyba będziesz wiedział jak zmienić
No sporo zabawy przy tym ale coś na pewno uda się wyskrobać. Szukam też opcji zmniejszenia uszkodzeń pancerzy przynajmniej tych podstawowych bo naprawa ich jest nieopłacalna na samym początku właśnie z braku środków na życie. Mod jest genialny tylko kilka drobnych poprawek i będzie idealny.
pytanie tylko jak ustawie “condition = 0.75” broń oczywiście w w takim stanie mi się pojawia z trupów. to czy amunicja poleci lub inne graty mam rozumieć, że odpowiada za to inny scrypt ?
Już nie pamiętam które pliki za co odpowiadają. Najlepiej poszperać po necie, szczególnie po rosyjskojęzycznych forach poświęconych modowaniu Stalkera. Tu niestety barierą dla większości z nas będzie język.
to linijka odpowiedzialna za kondycję znalezionych pancerzy przy truchłach poległych
Na powyższym przykładzie wiesz, że minimalna kondycja znalezionego odzienia to 5% a maksymalna - 30%, bo do tych bazowych 5 dodaje losowy numer w przedziale od 0 do 25.
Co do broni… tu już trochę bardziej skomplikowane bo dochodzi ranga i doświadczenie poległego.
Cytat
local NPC_community = character_community(npc)
local NPC_rank = ranks.get_obj_rank_name(npc)
local cwc_max = (community_weapon_condition_max[NPC_community] * 100)
local cwc_min = (community_weapon_condition_min[NPC_community] * 100)
local rwc_max = (rank_weapon_condition_max[NPC_rank] * 100)
local rwc_min = (rank_weapon_condition_min[NPC_rank] * 100)
local wcf_max = weapon_condition_factor.max
local wcf_min = weapon_condition_factor.min
CWC - to bonus do kondycji znalezionej broni ze względu na przynależność do danego ugrupowania.
RWC - bonus zależny od rangi postaci, im bardziej doświadczona
I teraz - wydaje mi się że albo musisz znaleźć linijki weapon_condition_factor max i min albo…