Gość Diegtiariow Opublikowano 8 Czerwca 2023 Zgłoś Udostępnij Opublikowano 8 Czerwca 2023 NAZWA: Zbiór skryptów [CoP] AUTOR: ? DAJEMY PRZEDMIOT GG: Spoiler Wydanie jednego przedmiotu: function nazwa_funkcji(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "nazwa_przedmiotu", "in") end Wydanie kilku jednakowych przedmiotów: function nazwa_funkcji(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "nazwa_przedmiotu", "in", ilość) end Skrypt do dialogu: <action>nazwa_skryptu.nazwa_funkcji</action> ZABIERAMY PRZEDMIOT GG: Spoiler Zabranie jednego przedmiotu: function nazwa funkcji(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "nazwa przedmiotu") end Zabranie kilku jednakowych przedmiotów: function nazwa funkcji(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "nazwa przedmiotu", liczba_przedmiotów) end Dodanie skryptu do dialogu: <action>nazwa skryptu.nazwa funkcji</action> SPAWNUJEMY PRZEDMIOT DO EKWIPUNKU GG: Spoiler function nazwa_funkcji() local obj = alife():create("RZECZ", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end Dodanie skryptu do dialogu: <action>nazwa_skryptu.nazwa_funkcji</action> SPRAWDZANIE POSIADANIA PRZEDMIOTU PRZEZ GG: Spoiler Pierwszy wariant: function nazwa_funkcji() return db.actor:object("nazwa_przedmiotu") end Drugi wariant: function nazwa_funkcji(first_speaker, second_speaker) return first_speaker:object("название предмета") ~= nil end Dodanie skryptu do dialogu: <precondition>nazwa_skryptu.nazwa_funkcji</precondition> SPRAWDZANIE POSIADANIA JEDNEGO Z KILKU PRZEDMIOTÓW GG: Spoiler function Название функции(first_speaker, second_speaker) return first_speaker:object("nazwa_przedmiotu") ~= nil or first_speaker:object("nazwa_przedmiotu") ~= nil or first_speaker:object("nazwa_przedmiotu") ~= nil end Dodanie skryptu do dialogu: <precondition>nazwa_skryptu.nazwa_funkcji</precondition> SPRAWDZANIE ILOŚCI PIENIĘDZY GG: Spoiler Pierwszy wariant: function nazwa_funkcji(first_speaker, second_speaker) return first_speaker:money() >= ilość end Drugi wariant: function nazwa_funkcji() return db.actor:money() >= ilość end Dodanie skryptu do dialogu: <precondition>nazwa_skryptu.nazwa_funkcji</precondition> NAGŁA ŚMIERĆ GG: Spoiler function nazwa_funkcji(npc, actor) npc:kill(actor) end Dodanie skryptu do dialogu: <action>nazwa_skryptu.nazwa_funkcji</action> LECZENIE GG: Spoiler Dodanie skryptu do dialogu: <action>dialogs.medic_magic_potion</action> ODDANIE PIENIĘDZY DLA GG PRZEZ NPC: Spoiler function nazwa_funkcji(first_speaker, second_speaker) dialogs.relocate_money_to_actor(first_speaker, second_speaker, ilość) end Dodanie skryptu do dialogu: <action>nazwa_skryptu.nazwa_funkcji</action> OD MAKDM: Spoiler Dla spawnu przedmiotu do inwentarza GG wystarczy wskazać ID GG: Spoiler local obj = alife():create( "RZECZ", vector(), 0, 0, db.actor:id() ) Dialog może zaczynać i NPC i GG, dlatego do niektórych funkcji, wywoływanych z dialogu, lepiej dodawać sprawdzanie: Spoiler local actor = dialogs.who_is_actor(first_speaker, second_speaker) lub local npc =dialogs. who_is_npc(first_speaker, second_speaker) Funkcje dla pliku xr_effects.script: Spoiler Czyszczenie lokacji ze zbędnej broni. Broń w schowkach nie jest usuwana: function cleaner_weapons( actor, obj ) local manag = treasure_manager.get_treasure_manager() for i = 1,65534 do local object = alife():object( i ) if object then local section = object:section_name() if string.find( section, "wpn_" ) or string.find( section, "grenade_" ) then if object.parent_id == 65535 and manag.items_from_secrets[ i ] == nil then alife():release( alife():object( object.id ), true ) end end end end end Wydanie losowych pieniędzy GG (używane przy posiadaniu elektronicznego portfela) w granicach 500 rubli lub hrywien: function give_random_money_to_actor( actor, npc ) local num = math.random( 500 ) actor:give_money( num ) xr_sound.set_sound_play( actor:id(), "pda_tips" ) news_manager.relocate_money( actor, "in" , num ) end Skierowanie kamery w stronę ścieżki podczas cut-sceny: function actor_look( actor, npc, p ) local point = patrol( p[1] ) actor:actor_look_at_point( point:point(0) ) end Zrobić squady (squad) neutralnym(-i) w stosunku do GG: function set_squads_neutral_to_actor( actor, npc, p ) if p then for k,v in pairs( p ) do local squad = get_story_squad( v ) if squad then squad:set_squad_relation("neutral") end end end end Zrobić squady (squad) wrogim(-i) w stosunku do GG: function set_squads_enemy_to_actor( actor, npc, p) if p then for k,v in pairs( p ) do local squad = get_story_squad( v ) if squad then squad:set_squad_relation("enemy") end end end end ŹRÓDŁO: https://ap-pro.ru/forums/topic/1855-cop-sborka-skriptov/ 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.