Skocz do zawartości
Damianu

Teleport,prosty i łatwy do wykonania

Rekomendowane odpowiedzi

Witam pisze ten poradnik ponieważ tamten nie zachwyca od razu mówię że to mój 1 poradnik.

#include <a_samp>
Ta linijka musi być na początku każdego skryptu. Wywołuje ona include a_samp Teraz public:
public OnPlayerCommandText(playerid, cmdtext[]) 
{ 
Wykonuje się on kiedy ktoś wpisze komende Podstawowy kod komendy:
if (strcmp("/komenda", cmdtext, true, 10) == 0) 
{ 
Zamiast /komenda wpisać własną nazwę komendy Na początek sprawdzimy czy gracz jest w pojeździe:
if(IsPlayerInAnyVehicle(playerid)) 
{
Więc już wiemy że gracz jest w pojeździe.Więc zmienimy nie pozycje gracza lecz pojazdu.
SetVehiclePos(GetPlayerVehicleID(playerid),posx,posy,posz);
Ej zaraz! ale co oznacza
GetPlayerVehicleID(playerid)
jest to funkcja zwracająca id pojazdu w jakim siedzi gracz. No dobra ale co sie stanie jeśli gracz nie siedzi w pojeździe? więc musimy użyć funkcji else. czyli:
else 
{
I w tej funkcji ustawić pozycje gracza no bo w końcu gracz nie siedzi w pojeździe więc robimy tak:
SetPlayerPos(playerid,posx,posy,posz);
możemy dodać jeszcze:
SetPlayerInterior(playerid, id inta);
Zamiast id inta dajemy swoje id No i na koniec :
return 1;
spowoduje to zatrzymanie dalszego kodu gdyż nie musi on być dalej spełniony i kończy się na nim każda komenda Teraz wystarczy pozamykać odpowiednio klamry i gotowe. Gotowy kod:
public OnPlayerCommandText(playerid, cmdtext[])
{ 
if (strcmp("/komenda", cmdtext, true, 10) == 0) 
{
if(IsPlayerInAnyVehicle(playerid)) 
{
SetVehiclePos(GetPlayerVehicleID(playerid),posx,posy,posz);
}
else
{
SetPlayerPos(playerid,posx,posy,posz);
SetPlayerInterior(playerid, id inta);
}
return 1;
}

return 0;
}
posx,posy oraz posz musimy uzupełnić pozycjami. Pozycje zdobędziemy wpisując w wybranym miejscu na serwerze /save. Jest tu też do tego poradnik ale go znajdziecie sami. Proszę zgłaszać błędy w poradniku tutaj. Jeśli masz 26 errorów to przeczytaj poradnik dla całkowicie zielonych i zobacz jak zamykać klamry. Warto też przeczytać poradnik o układaniu kodu aby nie mieć warringów. Poradnik pisany z pamięci w przeglądarce od zera. Jeśli masz mnie oczerniać poproszę o dowód. Mogę odpowiedzieć co robi jaka funkcja Nowość!! tu 2 sposób:
public Teleport(playerid, cmdtext[], cmd[], Float:posx, Float:posy, Float:posz, int)
{
	if (strcmp(cmd, cmdtext, true, 10) == 0)
	{
		if(IsPlayerInAnyVehicle(playerid))
		{
			SetVehiclePos(GetPlayerVehicleID(playerid),posx,posy,posz);
			LinkVehicleToInterior(GetPlayerVehicleID(playerid), int);
			SetPlayerInterior(playerid,int);
			return 1;
		}
		else
		{
			SetPlayerPos(playerid,posx,posy,posz);
			SetPlayerInterior(playerid,int);
			return 1;
		}
	}
	return 0;
}

to jest funkcja używamy to tak:

Teleport(playerid, cmdtext[], "/komenda", PosX, PosY, PosZ,int,admin);

Wklejamy to zamiast komendy i zmieniamy tylko posx posy posz na wlasne i nazwe

int to interior do jakiego nas teleportuje

admin ustawiamy 1 lub 0 1 jesli musi byc adminem 2 jesli nie.

komendy

niedługo:

-wybranie interioru

-wybranie obrotu auta/gracza

@edit teraz powinna działać, uznałem że admin nie potrzebny jedanek był.

PS. Działała tylko nie zwracała że komenda istnieje

Za reputacje bym się nie obraził

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×