Gość Diegtiariow Opublikowano 10 Czerwca 2023 Zgłoś Udostępnij Opublikowano 10 Czerwca 2023 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/ Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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.