Interpolacja komend nazwy serwera
Interpolacja komend nazwy serwera (SNCI) to funkcja zawarta w Megapatch II.
Zapewnia prostą i łatwą formę skryptowania nazwy serwerów. Można ich również używać w tytule listy graczy.
Jak używać SNCI
Składnia poleceń umieszczanych w nazwie serwera to {command_name,arg1,arg2,arg...}.
Aby użyć znaków { , } , lub , w nazwie należy użyć symbolu backslash (\) przed { , } , lub ,.
Białe znaki nazwy polecenia lub argumentów nie są obcinane.
Przykłady
W tym scenariuszu nazwa serwera będzie następująca:
<color=#b0b>Mój serwer SCP:SL</color>\n<color=#{random_list,b00,0b0,b0b}>Anarchia bez zasad</color>\n<color=#fc0><size=10>
{scp_counter} SCP | {add,{alive_team,1},{alive_team,3}} Personel fundacji | {add,{alive_team,2},{alive_team,4}}
Powstańców/Więźniów {warhead_detonated,| ☢ GŁOWICA ZDETONOWANA ☢,}\n[{round_duration_minutes}:{round_duration_seconds}]
</size></color>
Na liście serwerów jest on wyświetlany jako serwer 20/20 z nazwą:
<color=#b0b>Mój serwer SCP:SL</color>
<color=#b00>Anarchia bez zasad</color>
<color=#fc0><size=10>3/5 SCP | 12 Personel fundacji | 4 Powstańców/Więźniów | ☢ GŁOWICA ZDETONOWANA ☢ [8:29]</size></color>
Przyczyną wyświetlania jest:
- Interpolator napotyka {random_list,b00,0b0,b0b}.
- Interpolator wybiera losową liczbę z zakresu 1-3 (liczba elementów).
- Interpolator rozwiązuje ten element na wypadek, gdyby zawierał w sobie zamknięcia.
- Zwraca b00.
- Następnie interpolator przechodzi do {scp_counter}.
- Na początku było 5 SCP.
- Teraz są tylko 3.
- Zwraca 3/5.
- Interpolator porusza się dalej i znajduje {add,{alive_team,MTF},{alive_team,RSC}}.
- Interpolator rozwiązuje argumenty.
- {alive_team,1} rozwiązuje się do 9.
- {alive_team,3} rozwiązuje się do 3.
- Interpolator dodaje wyniki do siebie.
- Zwraca 12.
- Interpolator przewija i widzi {add,{alive_team,2},{alive_team,4}}. To jest to samo co #3, więc zwrócił 4 i pominiemy to.
- Interpolator przechodzi do następnego zamknięcia: {warhead_detonated,| ☢ WARHEAD DETONATED ☢,}
- Głowica została zdetonowana, więc wybiera pierwszy argument.
- Interpolator rozwiązuje pierwszy argument.
- Zwraca | ☢ GŁOWICA ZDETONOWANA ☢
- Interpolator dociera do {round_duration_minutes}.
- Runda trwa już 8 minut i 29 sekund.
- Zwraca 8.
- Interpolator w końcu osiąga {round_duration_seconds}.
- Runda trwa już 8 minut i 29 sekund.
- Zwraca 29.
Komendy
Nazwa
|
Argumenty
|
Wynik
|
ip
|
Brak
|
Adres IP serwera.
|
port
|
Brak
|
Port serwera.
|
number
|
Brak
|
Zakładając, że port zaczyna się od 7777, jest to numer serwera.
|
version
|
Brak
|
Wiodąca kompatybilna wersja.
|
Liczby graczy
Nazwa
|
Argumenty
|
Wynik
|
player_count
|
Brak
|
Aktualna liczba graczy na serwerze
|
full_player_count
|
Brak; [full]
|
Aktualna maksymalna liczba graczy na serwerze lub full, jeśli serwer jest pełny.
|
max_players
|
Brak
|
Maksymalna liczba graczy na serwerze.
|
Nazwa
|
Argumenty
|
Wynik
|
round_duration_minutes
|
Brak
|
Długość rundy w minutach.
|
round_duration_seconds
|
Brak
|
Długość rundy w sekundach z ignoracją minut (zawsze <60).
|
kills
|
Brak
|
Łączna liczba zabójstw w rundzie.
|
kills_frag
|
Brak
|
Łącznie granaty odłamkowe zabite w rundzie.
|
mtf_respawns
|
Brak
|
Łączna liczba odrodzeń MTF w rundzie.
|
warhead_detonated
|
Brak;[detonated][undetonated]
|
Zdetonowana lub niezdetonowana (domyślnie "☢ WARHEAD DETONATED☢" lub pusta) w zależności od tego, czy głowica została zdetonowana.
|
Żywi gracze
Nazwa
|
Argumenty
|
Wynik
|
alive_role
|
[ID Roli]
|
Liczba graczy z daną rolą przy życiu. Identyfikator roli może być nazwą lub liczbą całkowitą.
|
alive_team
|
[ID Drużyny]
|
Liczba żywych graczy w tej drużynie. Identyfikator drużyny może być nazwą lub liczbą całkowitą.
|
Numery drużyn dla alive_team
Nazwa drużyny
|
Numer drużyny
|
SCP
|
0
|
MTF & Facility Guard
|
1
|
Chaos Insurgency
|
2
|
Scientist
|
3
|
ClassD
|
4
|
Spectator
|
5
|
Tutorial
|
6
|
Nazwa
|
Argumenty
|
Wynik
|
scp_counter
|
Brak
|
Żywe SCP (z wyjątkiem zombie) z początku rundy.
|
scp_start
|
Brak
|
Początkowa liczba SCP.
|
scp_killed
|
Brak
|
Liczba zabitych SCP w rundzie.
|
scp_kills
|
Brak
|
Liczba zabitych przez SCP w rundzie.
|
zombies_recalled
|
Brak
|
Liczba wskrzeszonych zombie.
|
Nazwa
|
Argumenty
|
Wynik
|
classd_counter
|
Brak
|
Escaped Class Ds out of initial Class Ds of the round.
|
classd_start
|
Brak
|
Początkowa liczba Klas D w rundy.
|
classd_escaped
|
Brak
|
Class Ds escapees this round.
|
Nazwa
|
Argumenty
|
Wynik
|
scientist_counter
|
Brak
|
Escaped scientists out of initial scientists of the round.
|
scientist_start
|
Brak
|
Initial scientists of the round.
|
scientist_escaped
|
Brak
|
Scientist escapees this round
|
Losowość
Nazwa
|
Argumenty
|
Wynik
|
random
|
[max]; [min] [max]
|
Losowa liczba dziesiętna pomiędzy wartością minimalną (domyślnie 0) i maksymalną.
|
random_list
|
[przedmiot 1] [przedmiot 2] […]
|
Losowy przedmiot
|
Stałe
Nazwa
|
Argumenty
|
Wynik
|
constant_e
|
Brak
|
Liczba Eulera
|
constant_pi
|
Brak
|
Pi (π).
|
Operacie
Nazwa
|
Argumenty
|
Wynik
|
add
|
[a] [b]
|
a + b
|
subtract
|
[a] [b]
|
a - b
|
multiply
|
[a] [b]
|
a * b
|
division
|
[a] [b]
|
a / b
|
power
|
[a] [b]
|
a ^ b
|
log
|
[value]; [base] [value]
|
Log [base] (podstawowo 10) z [value].
|
ln
|
[value]
|
Logarytm naturalny z [value]
|
Zaokrąglenia
Nazwa
|
Argumenty
|
Wynik
|
round
|
[value]
|
Zaokrągla do najbliższej liczby całkowitej.
|
round_up
|
[value]
|
Zaokrągla w górę do najbliższej liczby całkowitej.
|
round_down
|
[value]
|
Zaokrągla w dół do najbliższej liczby całkowitej.
|
Porównania
Nazwa
|
Argumenty
|
Wynik
|
equals
|
[a] [b]
|
Checks equality of [a] and [b] by string representation.
|
greater
|
[a] [b]
|
"True" if [a] > [b], else "False".
|
lesser
|
[a] [b]
|
"True" if [a] < [b], else "False".
|
greater_or_equal
|
[a] [b]
|
"True" if [a] >= [b], else "False".
|
lesser_or_equal
|
[a] [b]
|
"True" if [a] <= [b], else "False".
|
Boolean Logic
Nazwa
|
Argumenty
|
Wynik
|
not
|
[wartość]
|
Inverts [wartość].
|
or
|
[a] [b]
|
"True" if [a] OR [b] are true, else "False".
|
and
|
[a] [b]
|
"True" if [a] AND [b] are true, else "False".
|
xor
|
[a] [b]
|
"True" if [a] OR [b] but NOT [a] AND [B], else "False".
|
if
|
[condition] [a]; [condition] [a] [b]
|
[a] if [condition] is true else [b] (default empty)
|