Jump to content

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


Recommended Posts

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/

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