szóval van egy kapu oda megyek bizonyos távolságra és magától kinyílik mintha fotocellás lenne és az is jó lenne hogyha 2 team csak a saját kapuit tudja nyitni
Nagyon egyszerû, de viszont kell hozzá egy úgynevezett
PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
függvény.
1. Lépésként létrehozol egy timer-t (lehetõleg elég gyors legyen 1mp elég)
Ezután létrehozunk egy bool-t
new bool: nyitva[MAX_PLAYERS];
2. Lépésként ami idõnként megfog hívni a timer, ami nálam ez a
MozgoKapuk();
3. Beilleszted a függvényt, célszerû ini-be hogy fölöslegesen ne foglaljon helyet a módban
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
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;
}
Ha mind ezzel megvagy akkor most jön maga a
MozgoKapuk();
4. Létrehozzuk a mozgó kapukat!
forward MozgoKapuk();
public MozgoKapuk()
{
return 1;
}
new bool: sampforum-gate1[MAX_PLAYERS];
sampforum-gate1 = CreateObject(x,y,z,rx,ry,rz);
public MozgoKapuk()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerToPoint(15.0, i, 2096.30004883,1720.69995117,12.50000000)&& Nyitva == false) //ha ott van és zárva
{
sampforum-gate1 = true;
MoveObject(sampforum-gate1, 2096.30004883,1720.69995117,12.50000000-6, 2);
}
else if(!PlayerToPoint(15.0, i, 2096.30004883,1720.69995117,12.50000000) && Nyitva == true) //ha nincs ott és nyitva
{
sampforum-gate1 = false;
MoveObject(sampforum-gate1, 2096.30004883,1720.69995117,12.50000000, 2);
}
}
return 1;
}