[REÅ ENO]Pitanje


Započeo Pshyotic, Jun 06, 2016, 16:23:45 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:Radim svoju od nula
Detaljan opis problema: Eh sada sam sve zavrsio napravio sam i interijer, ubacio ga u pawno i sve odradio, sad me zanima kako da kada igrac (player) koji se konektovao izadje iz tog interjera, i da ustvari on kad izadje da se spawna tu ispred zgrade... Interijer sam mapao u zraku tkd...
Ako vam nije jasno ovo, evo jos jedan primjer: Ulazim u banku u Los Santosu (Beogradu kako je to kod balkanskih samp servera) i kada kliknem enter da udjem ja ulazim u interijer banke, eh sada koja komanda i kako da isto to ja uradim ? ... I da li isto vazi za izlazenje iz interijera
Dio skripte: //
Neke slike/video za lakse dobivanje pomoci(neobavezno): //
Poslednja Izmena: Jun 07, 2016, 12:20:26 POSLE PODNE od â–… â–† â–ˆ Rudimental â–ˆ â–† â–…

Te stvari su jako jednostavne, uzmes kordinatu pomocu komande /save znaci 1 kordinatu uzmes iz enterijera kod tih vrata gde se izlazi a drugu uzmes gde zelis da spawnas igraca kada on izadje iz tog enterijera znaci odma tu negde ispred banke u ovom tvom sada slucaju. I posle samo pomocu IsPlayerInRangeOfPoint odradis te provere i sta ti tu jos treba.
Evo ti i primer.
if (IsPlayerInRangeOfPoint(playerid, 2.0, x, y ,z)) // Ovde stavis kordinatu od tih vrata iz enterijera
{ 
	SetPlayerPos(playerid, x, y, z); // Ovde ti ide kordinata spawna odnosno gde zelis da igrac bude kada izadje iz te banke
	// E sada fali ti jos da postavis igracu enterijer na 0 ako si mu na ulazu postavio na neki drugi broj
	// Takodje mozes i neke poruke il gametext da ispises igracu da je izasao mislim kako hoces ali vecina tako radi
}


public OnPlayerSpawn(playerid)
{
SetPlayerSkin (playerid, 299); 
GivePlayerMoney (playerid, 20000);
SetPlayerPos (playerid, 1318.94177, -1051.68970, 3359.60522);   // znaci to mi je mjesto spawna kada se loguje na server..
SetPlayerFacingAngle (playerid,  90.3600);
SetPlayerInterior (playerid, 0);
}

I znaci sada kad zavrsim bilo gdje dodam to i zavrseno mi je ?

Ne mozes bilo gde to da dodajes treba da definises kako ces ulaziti u enterijere da li komandom ili nekim dugmetom. Ja cu ti dati primer za dugme znaci evo primer f ili ti enter dugme ako hoces neko drugo izaberi sam https://wiki.sa-mp.com/wiki/Keys

Znaci u public OnPlayerKeyStateChange definises dugme f ili ti enter evo primera.
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if (newkeys & KEY_SECONDARY_ATTACK) // Znaci ovde definisemo dugme f ili ti enter
    {
        // I ovde sada stavljas one provere za ulaz/izlaz iz enterijera
    }
    return 1;
}

Rijeseno, imo sam par errora al mi je pomogao jedan lik mislim da je to bio Ophion (Mickey Edwards fb name)
//======================Text za ulaz i izlaz objekata==============================//
	Create3DTextLabel("Za ulazak u zgradu | Pritisnite Enter", 0xFFFFFFAA, 1780.8400, -1805.9613, 13.5082, 300.0, 0);
	Create3DTextLabel("Za izlazak iz zgrade | Pritisnite Enter", 0xFFFFFFAA, 1330.6825, -1063.7704, 3359.6814, 300.0, 0);
	return 1;
}
//======================Izlazak i ulazak u objekte==============================//
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	if( newkeys == KEY_SECONDARY_ATTACK ) // Ako igrac pritisne enter ili f *-->mozete umjesto KEY_SECONDARY_ATTACK staviti nesta drugo...npr.KEY_SPRINT
	{
		if( IsPlayerInRangeOfPoint( playerid, 3.0, 1780.8400, -1805.9613, 13.5082) ) // ako je *igrac blizu kordinata koje postavite
		{
			SetPlayerPos(playerid, 1330.6825, -1063.7704, 3359.6814); // X, Y, Z - gdje ce se igrac spawnati u interijer(kordinate interijera)
			SetPlayerInterior(playerid, 1); // ID interijera
			GameTextForPlayer(playerid, "Nalazite se u spawn zgradi", 3000, 1 ); // Salje igracu nekakvu poruku
		}
	}
	if( newkeys == KEY_SECONDARY_ATTACK ) // Ako igrac pritisne enter ili f
	{
		if( IsPlayerInRangeOfPoint( playerid, 3.0, 1330.6825, -1063.7704, 3359.6814 ) ) //ako je igrac blizu vasih kordinata za izlazak
		SetPlayerPos( playerid, 1780.8400, -1805.9613, 13.5082 ); // mjesto gdje ce se igrac spawnati
		SetPlayerInterior( playerid, 0); // id interijera (pretezito je 0 jer cete raditi komandu za izlazak van,a vanjskog interijera nema pa je on 0)
		GameTextForPlayer( playerid, "Dobro dosli u Beograd", 3000, 1 ); // nekakva poruka koju dobiva igrac
	}
	return 1;
}