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): //
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.
[pawn]
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
}
[/pawn]
[pawn]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);
}[/pawn]
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.
[pawn]
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;
}
[/pawn]
Rijeseno, imo sam par errora al mi je pomogao jedan lik mislim da je to bio Ophion (Mickey Edwards fb name)
[pawn] //======================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;
}[/pawn]