Sveiki, šioje pamokoje išmokinsiu jus padaryti automatiškai atsidarančiu vartus taigi pradėkim
Prieš tai per MTA susidekime uzdarytų ir atidarytų vartų kordinates ir jas sukonvertuokite, kaip viska padaryti neaaiškinsiu yra pamoka forume. 1.Susikuriam kintamuosius ir forward'us:
Kodas: Pasirinkti visus
new Vartai; //Musu kuriamu vartu pavadinimas.
new bool:AutoVartai; //Šitas tikrins ar vartai atidaryti ar neatidaryti.
forward AutomVartai(); //Šitas reikalingas, kad galetume sukurti nauja callback'a.
2.Tada po OnGameModeInit() sukuriam savo vartus ir timer'i:
Kodas: Pasirinkti visus
SetTimer("AutomVartai",1000,1); //Kas sekunde tikrins ar žaidejas yra nustatytame taške.
Vartai = CreateObject(ID, X, Y, Z, rX, rY, rZ); //Čia nieko neaiškinsiu.
3.Po to kur nors mode idedame funkcija kuri pades timer'iui tikrinti ar žaidejas yra nustatytame taške:
Kodas: Pasirinkti visus
stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}
4.Na ir galu gale sukuriame callback'a:
Kodas: Pasirinkti visus
public AutomVartai()
{
if(PlayerToPoint(5,playerid,X,Y,Z)) //Vietoj X,Y,Z irašome savo vartų kordinates.
{
if(!AutoVartai)
{
MoveObject(Vartai,X,Y,Z,3); //Vietoj X,Y,Z irašome savo atidarytų vartų kordinates.
AutoVartai = true; // Nustatom, kad vartai yra atidaryti.
return 1;
}
}
else
{
if(AutoVartai)
{
MoveObject(Vartai,X,Y,Z,3); //Vietoj X,Y,Z irašome savo uždarytų vartų kordinates.
AutoVartai = false; // Nustatome, kad vartai yra uždaryti.
return 1;
}
}
return 1;
}
Na viskas dabar jūsu vartai atsidarys automatiškai kai jūs prie ju prieisite