Skocz do zawartości

Zmiana wytrzymałości rzeczy w dowolnym momencie gry [CoP]


Gość Diegtiariow

Rekomendowane odpowiedzi

Gość Diegtiariow

NAZWA: Zmiana wytrzymałości rzeczy w dowolnym momencie gry [CoP]
AUTOR: FalkineIsaku

 

WYJAŚNIENIE:

Spoiler

Ten tutorial będzie dotyczyć tego, jak zmienić trwałość/wytrzymałość rzeczy GG w dowolnym momencie gry. (w temacie będzie na początku gry)

 

PRACA W XR_EFFECTS:

Spoiler

Są dwa sposoby:

Zmiana oryginalnej funkcji lub usunięcie starej i zrobienie nowej. (Można zostawić starą i zrobić nową)
Szukamy w naszym pliku: "function damage_actor_items_on_start", tutaj chyba zrozumiale, ale na wszelki wypadek objaśnienia:

function damage_actor_items_on_start(actor, npc)  "damage_actor_items_on_start" - można zmienić.
    local actor = db.actor  - Nie ruszać
    
    local obj = actor:object("helm_respirator") "helm_respirator" - to sekcja przedmiotu, któremu chcemy zwiększyć wytrzymałość.
    if obj ~= nil then - Nie ruszać
        obj:set_condition(0.8)  "0.8" - To nowy stan przedmiotu, który możemy ustawić.
    end - Nie ruszać
end - Nie ruszać

Zgodnie z tym schematem możliwe jest utworzenie nowej funkcji.

 

AKTYWACJA:

Spoiler

Na początek wyjaśnijmy jak usunąć standardową aktywację funkcji (na początku oryginalnego ZP na Zatonie)
Wchodzimy do "configs\scripts\zaton\zaton_a1_logic.ltx" i usuwamy %=damage_actor_items_on_start% (jest w 5 linijce)

Jak wywołać taką funkcję znowu, ale z inną nazwą i w innej logice.
Otwieramy waszą logikę restryktora i na samym początku, po pierwszym "on_info/on_game_timer" piszemy: %=nazwa_waszej_funkcji%
Przykład:

on_info = {+esc_start_game !surge_started} %=nazwa_waszej_funkcji%

I to wszystko

 

TROCHĘ SŁÓW OD DENIS2000:

Spoiler

Jest zmieniany stan obiektu (odwrotność zużycia przedmiotu). Wytrzymałość (a dokładniej stopień, z jakim psuje się przedmiot pod wpływem czynników zewnętrznych) jest ustawiany w konfigu obiektu w sekcji z nazwą wskazaną w parametrze immunities_sect.

Autorska funkcja Denis2000:

function damage_actor_items_on_start()
    local actor = db.actor
    local slot_tab = {2,3,7,12}
    for i = 1, #slot_tab do
        local item_in_slot = actor:item_in_slot(slot_tab[i])
        if item_in_slot ~= nil then
            item_in_slot:set_condition((math.random(30)+40)/100)
        end
    end
end

Zmienia ona stan przedmiotów w slotach 2,3,7,12 u GG, to znaczy broni, hełmu i pancerza. Zmienia na losową wartość w przedziale 0,4-0,7, przy tym nie ma znaczenia jaki dokładnie przedmiot jest wydany na starcie gry.

 

ŹRÓDŁO:

https://ap-pro.ru/forums/topic/3993-cop-izmenenie-prochnosti-veshtey-v-lyuboy-moment-igry/

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

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