Skocz do zawartości

Logika restryktora


Rekomendowane odpowiedzi

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/

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.