Jump to content

Lekcje i przydatne funkcje od Panzyuza


Recommended Posts

NAZWA: Lekcje i przydatne funkcje od Panzyuza
AUTOR: Panzyuza

 

Istnieją proste funkcje, które pomogą w moddingu. Coś na początek.

 

OPIS:

Spoiler

Wielu napotkało potrzebę zdobycia portion podczas przeszukiwania zwłok NPC lub mutanta o unikalnej nazwie. Ci, którzy coś robią z all.spawn, po prostu korzystają ze standardu gry, dodając do logicznego schematu w spawnie:

[know_info]
infoportion

Ale dlaczego tylko infoportion? Po co pisać jeszcze kody dla wyłowienia infoportions podczas przeszukiwania? Jest na to prosty i niezawodny sposób.

Musisz otworzyć skrypt xr_motivator.script za pomocą notatnika i znaleźć tam następujący kod:

function motivator_binder:use_callback(obj, who)
     if self.object:alive() then
      xr_use.notify_on_use(obj, who)
      if self.st.active_section then
       xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "use_callback", obj, who)
      end
     else
      --//выдача дефолтных тайников
                    treasure_manager.get_treasure_manager():use(self.object)
     end
end

Po linii treasure_manager.get_treasure_manager():use(self.object) wstawiamy nazwa_skryptu.dead_use(victim, who).

Powinno to wyglądać mniej więcej tak:

function motivator_binder:use_callback(obj, who)
     if self.object:alive() then
      xr_use.notify_on_use(obj, who)
      if self.st.active_section then
       xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "use_callback", obj, who)
      end
     else
      --//выдача дефолтных тайников
                    treasure_manager.get_treasure_manager():use(self.object)
                    mod.dead_use(victim, who)
     end
end

Tak więc, jeśli gracz po śmierci NPC go przeszuka, to oprócz wydania schowka, zostanie wywołany jego własny skrypt.

Tworzymy skrypt i wklejamy następujący kod:

----------------------------------------------------------------------------------------------------
-- Funkcja przeszukiwania trupów NPC
-- W motivatorze, use callback wstawić nazwa_skryptu.dead_use(obj, who)
----------------------------------------------------------------------------------------------------
function dead_use(victim, who)
if not (victim and who) then return end --/>fix
local name = victim:name()
if victim and who and who:id() == db.actor:id() then
if string.find(name, "bandit_resp_veteran_dead_bor") then --nazwa NPC
db.actor:give_info_portion("PORTION") --lub wywołanie skryptowych funkcji
elseif string.find(name, "esc_lager_volk") then --przeszukanie
db.actor:give_info_portion("PORTION")
return false --powtórnego wydania nie będzie
else
return true
end
end
end

Musisz jedynie znać nazwę NPC, która jest mu nadawana podczas spawnowania. Przykład. Jeśli stworzyłeś NPC i przypisałeś mu sekcję w spawn_sections, to jego nazwa będzie nazwą sekcji, którą ustawiłeś podczas spawnowania.

To samo możesz zrobić z mutantami. Ale jest trudniej. Musisz w binderze mutantów dodać use_callback i podobnie z binderem NPC.

 

ŹRÓDŁO:

https://ap-pro.ru/forums/topic/1184-uroki-i-poleznye-funkcii-ot-panzyuza/

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.

Comunity