Pl/Level Transition (Portal 2)
Coop
To jest metoda przełącznia poziomów w co-op
Stwórz swoją mape
Najpierw stwórz mape co-op. Dodaj func_instance, jako VMF file ustaw instances/coop/coop_lighting_ents.vmf
Zmodyfikowany "endlevel"
Cały end-of-map logic jest w instances/coop/coop_endlevel_room.vmf instance. Skopiuj ten plik do np moj_coop_endlevel_room.vmf.
W małym pomieszczeniu w tej mapie znajdziesz logic_script nazwany "transition_script". (Możesz go znaleźć używając Find Entities command.) Jego skryptem jest debug_scripts/mp_coop_transition_list.nut.
Nie ruszaj tego pliku! Jest to część portala 2 i nie chcesz jej zepsóć. Zamiast tego zmień skrypt na np. moj_coop_script.nut i zapisz mapę.
Wróć do twojej mapy i zmień func_instance na zmodyfikowaną.
Zmodyfikowany Skrypt
Teraz idź do scripts/vscripts/debugscripts i stwórz ten skrypt. (Nie dotykaj skryptów valve.) Wszystko co potrzebujesz to coś takiego:
// Kolejność map
MapPlayOrder<- [
"mp_coop_easiest",
"mp_coop_easiest_two"
]
function TransitionFromMap()
{
local nextmap = -2
// Loop through maps
foreach( index, map in MapPlayOrder )
{
if( GetMapName() == MapPlayOrder[index] )
{
// This is the map we're on
nextmap = -1
}
else
{
if (nextmap == -1)
{
// This is the first map past that one
nextmap = index
}
}
}
printl( "nextmap = " + nextmap )
if (nextmap > 0)
{
// We found a map; go to it
EntFire( "@command", "command", "changelevel " + MapPlayOrder[nextmap], 1.0 )
}
else
{
// No map found; we're done
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 singleplayerze jest podobny.
Zmodyfikowany skryp przełączania
W singleplayerze skrypt ten jest w func_instance arrival_departure_transition_ents.vmf w maps/instances/transitions. Załaduj tą mape 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/moj_sp_transition_list.nut.
Save your modified VMF file.
Zmodyfikowany Skrypt
W skrypcie portala 2 jest mnóstwo żeczy 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
// ---------------------------------------------------
"your_first_level",
"your_second_level"
]
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 )
po tych:
EntFire( "@command", "Command", "disconnect", 2.0 )
Zapisz plik.