Przełączanie Poziomów (Portal 2)

From Valve Developer Community
Revision as of 13:38, 22 October 2017 by Redstoncraft (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Deutsch Русский

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.