Jump to content

Logika restryktora


Recommended Posts

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/

  • Positive 1
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.