Jump to content

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

Link to comment
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

  • Positive 1
Link to comment
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ź

Link to comment
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ć :)

  • Positive 1
Link to comment
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
Link to comment
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ę

  • Positive 1
Link to comment
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%.

 

Link to comment
Share on other sites

  • Meta locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

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