Gość Diegtiariow Opublikowano 9 Czerwca 2023 Zgłoś Udostępnij Opublikowano 9 Czerwca 2023 NAZWA: Logika restryktora AUTOR: AziatkaVictor Ten temat został stworzony w celu zebrania wszystkich "sekcji sr" w jednym miejscu. Informacje mogą być uniwersalne dla różnych części serii. SR_IDLE: Spoiler Ten schemat w rzeczywistości nie ma żadnych funkcji. Zwykle jest używany do używania timerów i warunków włączenia lub jako połączenie między sekcjami. Jest używany wszędzie i często, bez niego nie można było normalnie napisać logiki. Struktura: [sr_idle] *Działania* Przykład 1: [logic] active = sr_idle [sr_idle] on_actor_inside = {+val_raid_start -esc_return -esc_trader_speak} nil %=esc_return_dv +esc_return +esc_trader_speak% W przykładzie taka logika: Cytat Jeśli GG znajduje się wewnątrz tego restryktora i mamy infoportion "val_raid_start" i brakuje "esc_return" i "esc_trader_speak", to dadzą nam "esc_return" oraz "esc_trader_speak", i wykonuje się funkcja "esc_return_dv". Przykład 2: [logic] active = sr_idle@start [sr_idle@start] on_game_timer = 100 | sr_idle@end %+info1% [sr_idle@end] on_info = {+info2} nil %+info3% W przykładzie 2 taka logika: Cytat 10 sekund po uruchomieniu logiki (on_game_timer liczy czas gry, więc mnożymy sekundy przez time_factor, który domyślnie wynosi 10), pojawia się infoportion "info1", a aktywną sekcja staje się "sr_idle@end", gdzie mając infoportion "info2", wydadzą nam "info3" i logika się zakończy. Plik: gamedata\scripts\sr_idle.script P.S. Pisanie "nil" jest OBOWIĄZKOWE, w przeciwnym wypadku wasza logika może po prostu utknąć w tej sekcji i będzie się dziwić, czemu dostajesz tysiąc zadań lub wiadomości. Zamiast "nil" można stworzyć pustą sekcję i po prostu przełączać na nią, ale nie wiadomo, jak może to wpłynąć na wydajność przy częstym używaniu. SR_NO_WEAPON: Spoiler Sekcja służy do zabraniania GG wyciągania broni w określonej strefie, nie ma żadnych ustawień i tak naprawdę ich nie potrzebuje. Struktura: [logic] active = sr_no_weapon [sr_no_weapon] Plik: gamedata\scripts\sr_no_weapon.script SR_SOUND: Spoiler Schemat ma na celu odtworzenie dźwięku, gdy aktor wejdzie w space_restrictor. Istnieje również analogia w postaci funkcji "=play_sound()". Parametry: snd - ścieżka do dźwięku lub listy dźwięków oddzielonych przecinkami (ścieżka jest względna w stosunku do folderu gamedata\sounds). type - rodzaje dźwięków oddzielonych przecinkami. Dla wygody, rodzaje zestawów dźwięków zostały wprowadzone do tabeli sound_types pliku kontrolnego. W sumie są trzy: floor_wooden; rats_panic; random. delay - opóźnienie odtwarzania dźwięku w sekundach czasu rzeczywistego, domyślnie 0. idle - długość opóźnienia po rozpoczęciu ostatnio odtwarzanego dźwięku. Żeby np. "wycie" było nie częściej niż raz na kilka minut. Określane w sekundach czasu gry, tj. "sekundy * time_factor". Wartość domyślna = 0. rnd - prawdopodobieństwo (w procentach), że dźwięk zostanie odtworzony. Wartość domyślna to 100. position - ustawia nazwę ścieżki, w której wierzchołkach może być odtwarzany dźwięk. Istnieje zastrzeżona wartość "random". Oznacza losową miejsce w promieniu od 15 do 50 metrów od gracza. Jeśli ten parametr nie zostanie ustawiony, przyjmowana jest pozycja gracza. slide_velocity - prędkość (m/s) przemieszczania dźwięku wzdłuż punktów patrolowej ścieżki. Wartość domyślna to 3. slide_sound_once = true/false - jeśli ustawione na true, odtworzy dźwięk raz, nawet jeśli nie dotarł do ostatniego punktu ścieżki, jeśli false, to gdy dźwięk się skończy i nie dotrze do ostatniego punktu ścieżki , Zagraj jeszcze raz. Wartość domyślna to fałsz. play_at_actor = true/false - powoduje, że dźwięk odtwarzany jest cały czas z pozycji aktora. Jeśli jest równe "true" i jest ustawiona ścieżka przemieszczenia dźwięku (lub losowo), wówczas złapiesz wylot. Struktura: [logic] active = sr_sound [sr_sound] snd = dźwięk Przykład: [logic] active = sr_idle [sr_idle] on_actor_inside = sr_sound@shooting [sr_sound@shooting] snd = characters_voice\scenario\garbage\grey_grey_1 play_at_actor = true on_signal = sound_end| nil on_timer = 20000| nil W przykładzie taka logika: Cytat Kiedy GG wchodzi w restrykktor, to sekcja zmienia się na "sr_sound@shooting" i zaczyna odtwarzać dźwięk i po 2000 sekundach lub kiedy zakończy się dźwięk - logika kończy się. Plik: gamedata\scripts\sr_sound.script SR_TIP: Spoiler Sekcja służy do wysyłania wiadomości do GG, często wykorzystywana w fabularnych modach. Parametry: name - linia z id tekstu zarejestrowanego w folderze gamedata\config\text. type = news/tips - parametr jest elementarny i na nic nie wpływa. sender - ustawia warunkowy identyfikator ikonki postaci, od którego przyszła wiadomość. Domyślnie to ikonka handlarza. W SoC możliwe są następujące wartości: default, trader, dolg, freedom, ecolog, arena, stalker, krot, barman, wolf, o_soznanie, monolith, saharov, prizrak, killer. W CoP używane są ikonki, które zostały zapisane w news_manager.script cond = {+info -info =func !func ~number} - potrzebne logiczne warunki, dzięki którym podpowiedź zadziała. single = true/false - jeśli jest true, to wiadomość zostanie wydana tylko raz. Domyślnie false. timeout - opóźnienie wyświetlenie wiadomości w sekundach. Domyślnie - 0. showtime - czas wyświetlenia wiadomości na ekranie. Ustawiane w milisekundach. Domyślnie - 5000. Struktura: [sr_tip] name = rad_barman_spam type = tips cond = {+bar_deactivate_radar_done} sender = barman showtime = 25000 Plik: gamedata\scripts\sr_tip.script SR_LIGHT: Spoiler Logika włączająca lub wyłączająca latarki w restryktorze u NPC. Struktura: [sr_light] light_on = true/false Plik: gamedata\scripts\sr_light.script SR_TERRITORY: Spoiler Schemat ten polega na tym, że wychwytuje wszelkiego rodzaju zdarzenia zachodzące wewnątrz restryktora. Jak dotąd wyłapuje tylko trafienia i śmierć NPC. Jednakże schemat działa tylko z graczem, trafienia i śmierć są liczone tylko od gracza. Parametry: territory_hit = {+info -info =func !func ~number} %+info -info =func% - efekty, które wystąpią po zadaniu trafienia graczowi znajdującemu się w tej strefie. territory_death = {+info -info =func !func ~number} %+info -info =func% - efekty, które wystąpią po śmierci z "rąk" gracza znajdującego się w tej strefie. Struktura: [logic] active = sr_territory [sr_territory] territory_death = nil %+info% Plik: gamedata\scripts\sr_territory.script SR_MAPSPOT: Spoiler Po wejściu na restryktora podświetla się on na mapie. Parametry: hint - linijka z id tekstu zarejestrowanego w folderze gamedata\config\text. location - nazwa rodzaju znacznika, zarejestrowanego w pliku config\ui\map_spots.xml i wszystkiego, co jest po include. Domyślnie - crlc_small. Struktura: [sr_mapspot] hint = gar_swamp location = crcl_big Plik: gamedata\scripts\sr_mapspot.script SR_PARTICLE: Spoiler System ten odtwarza cząsteczki, zarówno statyczne, jak i poruszające się, w określonym miejscu i czasie. Ten schemat polega na śledzeniu cząstek/particles, gracz nie musi do niego wchodzić. Parametry: name - ścieżka do cząstki względem pliku particles.xr. path - ścieżki poruszania się cząstki. Możliwe są dwa przypadki: Kiedy zostaje ukazana ścieżka animacji kamery (ścieżka jest względna do folderu gamedata\anims). Dla nazwy pliku trzeba obowiązkowo dodać rozszerzenie .anm (np. arena.anm). Kiedy zostanie podana nazwa ścieżki patrolowej. mode - parametr obowiązkowy i ma ustawiane dwie wartości: 1 - w przypadku wskazania animacji kamery dla parametru path; 2 - w przypadku wskazania patrolowej ścieżki dla parametru path. looped = true/false - flaga zapętlenia cząstek. Przy true, po zakończeniu odtwarzania cząstek, będą uruchamiane od początku, ale bez opóźnień. Jednakże sygnał particle_end nie zostanie wydany. Przy false sygnał zostanie wydane, kiedy wszystkie źródła cząsteczek zostaną odtworzone. Struktura: [logic] active = sr_particle [sr_particle] name = anomaly2\gravity_blast_03 path = ścieżka mode = 2 looped = false on_signal = particle_end | nil Plik: gamedata\scripts\sr_particle.script SR_SOUND_ACT: Spoiler Schemat odtwarza dźwięk w głowie aktora. Wszelkiego rodzaju rozmowy w PDA i inne rzeczy. Jeśli określono theme, dźwięk będzie odtwarzany w pętli, losowo wybierając jeden z dźwięków określonych w theme, jeśli określony jest dźwięk, zostanie on odtworzony raz. Parametry: snd - nazwa dźwiękowego pliku względem folderu gamedata\sounds. delay - opóźnienie przed odtworzeniem. Domyślnie - 0. delay_max - między odtwarzaniem dźwięku zostanie wzięty losowy odstęp czasu pomiędzy delay i delay_max. theme - nazwa utworu z pliku sound_theme.script. stereo = true/false - przy ustawieniu tego parametru do pliku, który jest ustawiony przez parametr snd lub w dźwiękowym theme, automatycznie zostaną dodane sufiksy _r i _l w celu wczytania lewego i prawego kanałów i odpowiednio wszystko to zostanie odtworzone. Struktura: [logic] active = sr_sound_act [sr_sound_act] theme = sar_monolith_call delay = 10000 delay_max = 15000 stereo = true Plik: gamedata\scripts\sr_sound2d.script SR_TIMER: Spoiler Schemat do wykonania dowolnej akcji w zależności od stanu timera. Parametry: type - typ licznika. dec - dekrementujący, tzn. liczący w dół; inc - inkrementujący, tzn. liczący do góry. start_value - początkowa wartość licznika w rzeczywistych milisekundach. Dla dekrementujących liczników ustawiać obowiązkowo. Dla inkrementujących, jeśli nie ustawiono, to liczy się od 0. on_value = число | %+info -info =func% sekcja - wykonuje działanie w zależności od stanu licznika. string - linia z id tekstu zarejestrowanego w folderze gamedata\config\text. Struktura: [logic] active = sr_timer [sr_timer] type = dec start_value = 1000000 on_value = 5 | %=play_snd(characters_voice\scenario\radar\rad_hat_2)% | 0 | nil %=aes_kill_actor% string = st_helmet_countdown Plik: gamedata\scripts\sr_timer.script SR_PSY_ANTENNA: Spoiler Strefy z tą sekcją pozwalają kontrolować efekty psi-oddziaływania (na Jantarze i Radarze). Teraz możesz kontrolować intensywność promieniowania i intensywność otrzymania obrażeń. Parametry: eff_intensity - zwiększenie/zmniejszenie w procentach od bazowej wartości intensywności psi-oddziaływania. hit_intensity - zwiększenie/zmniejszenie w procentach od bazowej wartości zadanych obrażeń. phantom_prob - prawdopodobieństwo pojawienia się fantomów w procentach. Domyślnie - 0. postprocess - plik posteffectu, względem folderu gamedata\anims. Rozszerzenie dodawać obowiązkowo! Domyślnie - psy_antenna.ppe. mute_sound_threshold - limit do którego można obniżyć dźwięk poziomu. 0 - głuszy całkowicie, domyślna wartość. Struktura: [logic] active = sr_psy_antenna [sr_psy_antenna] eff_intensity = -10 hit_intensity = 0 phantom_prob = 45 Plik: gamedata\scripts\sr_psy_antenna.script SR_TELEPORT: Spoiler Schemat pozwala na teleportację aktora w obrębie lokacji. Parametry: point - patrolowa ścieżka z jednego punktu, dokąd przemieści się aktor. look - patrolowa ścieżka z jednego punktu, gdzie będzie patrzył aktor po przemieszczeniu się. prob - prawdopodobieństwo przemieszczenia się do danego punktu. Domyślnie - 100. timeout - opóźnienie teleportacji w milisekundach. Domyślnie - 900. Struktura: [logic] active = sr_teleport [sr_teleport] point1 = aes2_teleport_walk_exit1 look1 = aes2_teleport_look_exit1 prob1 = 10 point2 = aes2_teleport_walk_exit2 look2 = aes2_teleport_look_exit2 prob2 = 20 timeout = 0 Plik: gamedata\scripts\sr_teleport.script SR_CUTSCENE: Spoiler Ten schemat ma na celu odgrywanie animację kamery z pewnym efektem (pp_effector). Sekwencja działań realizowana przez schemat, polega na natychmiastowym przeniesieniu gracza na początek ścieżki point i skierowaniu jego wzroku na początek ścieżki look, utracie kontroli nad graczem i rozpoczęciu animacji kamery cam_effector, po zakończeniu której gracz odzyskuje kontrolę. Parametry: point - ścieżka do pierwszego punktu, do którego przenosi się gracz. look - ścieżka do pierwszego punktu, na który patrzy gracz. pp_effector - plik, znajdujący się w folderze gamedata\anims\ i zawierający efekt (nazwa pliku jest zapisywana bez rozszerzenia). cam_effector - plik, znajdujący się w folderze gamedata\anims\camera_effects\ i zawierający animację kamery (nazwa pliku jest zapisywana bez rozszerzenia). Struktura: [logic] active = sr_cutscene [sr_cutscene] point = agr_cutscene_walk look = agr_cutscene_look cam_effector = agroprom_demo on_signal = cameff_end | nil Plik: gamedata\scripts\sr_cutscene.script ŹRÓDŁO: https://ap-pro.ru/forums/topic/2173-logika-restriktora/ 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.