Jump to content
Adexx

Uszkodzony Drop

Recommended Posts

Witajcie.

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 ??

 

Z góry dziękuję za pomoc

Share this post


Link to post
Share on other sites

gamedata\scripts\death_manager.script

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

Share this post


Link to post
Share on other sites

Dziękuję za pomoc.

U mnie ścieżka wygląda nieco inaczej.

Poniżej podaje Przykład:

Cytat

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

        condition = (( (math.random(cwc_min, cwc_max) + math.random(rwc_min, rwc_max)) * math.random(wcf_min, wcf_max))/100)

 

Jestem akurat w tej kwesji lekko zielony więc prosiłbym o małą podpowiedź

Share this post


Link to post
Share on other sites

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ć :)

Share this post


Link to post
Share on other sites

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 ?

 

Edited by Adexx

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Cytat

 function set_outfit_drop_condition(npc)

[......]

local condition = (math.random(25)+5)/100

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... 

condition = (( (math.random(cwc_min, cwc_max) + math.random(rwc_min, rwc_max)) * math.random(wcf_min, wcf_max))/100)

...obniżyć pogrubioną liczbę

Share this post


Link to post
Share on other sites

Albo zamiast

condition = (( (math.random(cwc_min, cwc_max) + math.random(rwc_min, rwc_max)) * math.random(wcf_min, wcf_max))/100)

użyć

condition  = math.random(100)/100

i będziesz miał całkowitą losowość w dropie broni. Stan będzie od 1% do 100%.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.

Społeczność
Discord