Przełączanie Poziomów (Portal 2)
Co-op
To jest metoda przełączania poziomów w co-op.
Stwórz swoją mapę
Najpierw stwórz mapę co-op. Dodaj do niej func_instance, jako plik VMF ustaw instances/coop/coop_lighting_ents.vmf.
Zmodyfikowany koniec poziomu
Cała logika końca mapy jest w instancji instances/coop/coop_endlevel_room.vmf. Skopiuj ten plik do np. my_coop_endlevel_room.vmf.
W małym pomieszczeniu w tej mapie znajdziesz logic_script nazwany "transition_script". (Możesz go znaleźć używając komendy Find Entities.) Jego skryptem jest debug_scripts/mp_coop_transition_list.nut.
Nie ruszaj tego pliku! Jest to część Portala 2 i nie chcesz jej zepsuć. Zamiast tego zmień skrypt na np. my_coop_script.nut i zapisz mapę.
Wróć do twojej mapy i zmień func_instance na zmodyfikowaną wersję.
Zmodyfikowany skrypt
Teraz idź do scripts/vscripts/debugscripts i stwórz ten skrypt. (Nie dotykaj oryginalnych skryptów.) Wszystko co potrzebujesz to coś takiego:
// Kolejność map
MapPlayOrder<- [
"mp_coop_easiest",
"mp_coop_easiest_two"
]
function TransitionFromMap()
{
local nextmap = -2
// Sprawdzanie map
foreach( index, map in MapPlayOrder )
{
if( GetMapName() == MapPlayOrder[index] )
{
// To mapa, na której jesteśmy
nextmap = -1
}
else
{
if (nextmap == -1)
{
// To następna mapa
nextmap = index
}
}
}
printl( "nextmap = " + nextmap )
if (nextmap > 0)
{
// Znaleziono mapę; zmiana mapy
EntFire( "@command", "command", "changelevel " + MapPlayOrder[nextmap], 1.0 )
}
else
{
// Nie znaleziono mapy; powrót do menu
EntFire( "@command", "command", "disconnect", 2.0 )
}
}
By iść do lobby po skończeniu map dodaj "mp_coop_lobby_2" na końcu listy (MapPlayOrder).
Single-player
Sposób w single-playerze jest dosyć podobny.
Zmodyfikowany skrypt przełączania
W single-playerze skrypt ten jest w func_instance arrival_departure_transition_ents.vmf w maps/instances/transitions. Załaduj tą mapę w Hammerze i zapisz pod inną nazwą np. my_sp_transition.vmf.
W najmniejszym pokoju jest logic_script nazwany @transition_Script. Jego skryptem jest transitions/sp_transition_list.nut.
Nie modyfikuj tego pliku. Zamiast tego zmień na własny skrypt np. transitions/my_sp_transition_list.nut.
Zapisz swój zmodyfikowany plik VMF.
Zmodyfikowany skrypt
W skrypcie Portala 2 jest mnóstwo rzeczy, które przełączają mapy. To jest minimum które musisz mieć:
Pod Demo Files jest kategoria "Your Title", dodaj w niej swoje mapy.
Efekt powinien wyglądać tak:
// ---------------------------------------------------
// Demo files
// ---------------------------------------------------
"demo_intro",
"demo_underground",
"demo_paint",
// ---------------------------------------------------
// Your title
// ---------------------------------------------------
"pierwsza_mapa",
"druga_mapa"
]
By po skończeniu gry wyjść do menu dodaj te wiersze:
EntFire( "end_of_playtest_text", "display", 0 )
EntFire( "@end_of_playtest_text", "display", 0 )
a za nimi:
EntFire( "@command", "Command", "disconnect", 2.0 )
Zapisz plik.