Skocz do zawartości

Uszkodzony Drop


Rekomendowane odpowiedzi

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

Odnośnik do komentarza
Udostępnij na innych stronach

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

  • Dodatnia 1
Odnośnik do komentarza
Udostępnij na innych stronach

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ź

Odnośnik do komentarza
Udostępnij na innych stronach

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

  • Dodatnia 1
Odnośnik do komentarza
Udostępnij na innych stronach

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 ?

 

Edytowane przez Adexx
Odnośnik do komentarza
Udostępnij na innych stronach

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ę

  • Dodatnia 1
Odnośnik do komentarza
Udostępnij na innych stronach

  • Meta zablokował(a) ten temat
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.