Prisijungti
Pagrindinis
Kontaktai
Sunday, 2024-12-01, 2:29 PM
Welcome Guest
[ New messages · Members · Forum rules · Search · RSS ]
  • Page 1 of 1
  • 1
Automatiškai atsidarantis vartai
DusleraDate: Monday, 2010-04-05, 11:27 PM | Message # 1
Private
Group: Administrators
Messages: 9
Reputation: 24
Status: Offline
Sveiki, šioje pamokoje išmokinsiu jus padaryti automatiškai atsidarančiu vartus taigi pradėkim smile
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 smile

 
  • Page 1 of 1
  • 1
Search:

Reklama
Paieska
Reklama