Pl/Level Transition (Portal 2): Difference between revisions

From Valve Developer Community
< Pl
Jump to navigation Jump to search
No edit summary
(Lots of fixes)
Line 4: Line 4:
}}
}}


=Coop=
=Co-op=
To jest metoda przełącznia poziomów w co-op
To jest metoda przełączania poziomów w co-op.


==Stwórz swoją mape==
==Stwórz swoją mapę==
Najpierw stwórz mape co-op. Dodaj func_instance, jako VMF file ustaw instances/coop/coop_lighting_ents.vmf
Najpierw stwórz mapę co-op. Dodaj do niej func_instance, jako plik VMF ustaw instances/coop/coop_lighting_ents.vmf.


==Zmodyfikowany "endlevel"==
==Zmodyfikowany koniec poziomu==
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.
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 Find Entities command.) Jego skryptem jest debug_scripts/mp_coop_transition_list.nut.  
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 zepsóć.  Zamiast tego zmień skrypt na np. moj_coop_script.nut i zapisz mapę.
'''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ą.
Wróć do twojej mapy i zmień func_instance na zmodyfikowaną wersję.


==Zmodyfikowany Skrypt==
==Zmodyfikowany skrypt==
Teraz idź do scripts/vscripts/debugscripts i stwórz ten skrypt. (Nie dotykaj skryptów valve.) Wszystko co potrzebujesz to coś takiego:  
Teraz idź do scripts/vscripts/debugscripts i stwórz ten skrypt. (Nie dotykaj oryginalnych skryptów.) Wszystko co potrzebujesz to coś takiego:  


<source lang="text">
<source lang="text">
Line 33: Line 33:
local nextmap = -2
local nextmap = -2
// Loop through maps
// Sprawdzanie map
foreach( index, map in MapPlayOrder )
foreach( index, map in MapPlayOrder )
{
{
if( GetMapName() == MapPlayOrder[index] )
if( GetMapName() == MapPlayOrder[index] )
{
{
// This is the map we're on
// To mapa, na której jesteśmy
nextmap = -1
nextmap = -1
}
}
Line 45: Line 45:
if (nextmap == -1)
if (nextmap == -1)
{
{
// This is the first map past that one
// To następna mapa
nextmap = index
nextmap = index
}
}
Line 55: Line 55:
if (nextmap > 0)
if (nextmap > 0)
{
{
// We found a map; go to it
// Znaleziono mapę; zmiana mapy
EntFire( "@command", "command", "changelevel " + MapPlayOrder[nextmap], 1.0 )
EntFire( "@command", "command", "changelevel " + MapPlayOrder[nextmap], 1.0 )
}
}
else
else
{
{
// No map found; we're done
// Nie znaleziono mapy; powrót do menu
EntFire( "@command", "command", "disconnect", 2.0 )
EntFire( "@command", "command", "disconnect", 2.0 )
}
}
Line 69: Line 69:


=Single-player=
=Single-player=
Sposób w singleplayerze jest podobny.
Sposób w single-playerze jest dosyć podobny.


==Zmodyfikowany skryp przełączania==
==Zmodyfikowany skrypt 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 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.
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.
'''Nie modyfikuj tego pliku.'''  Zamiast tego zmień na własny skrypt np. transitions/my_sp_transition_list.nut.


Save your modified VMF file.
Zapisz swój zmodyfikowany plik VMF.


==Zmodyfikowany Skrypt==
==Zmodyfikowany skrypt==
W skrypcie portala 2 jest mnóstwo żeczy które przełączają mapy. To jest minimum które musisz mieć
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.
Pod Demo Files jest kategoria "Your Title", dodaj w niej swoje mapy.
Line 98: Line 98:
// Your title
// Your title
// ---------------------------------------------------
// ---------------------------------------------------
"your_first_level",
"pierwsza_mapa",
"your_second_level"
"druga_mapa"
]
]
</source>
</source>
Line 109: Line 109:
</source>
</source>


po tych:
a za nimi:
<source lang="text">
<source lang="text">
EntFire( "@command", "Command", "disconnect", 2.0 )
EntFire( "@command", "Command", "disconnect", 2.0 )

Revision as of 12:49, 26 February 2021

Template:Otherlang2

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.