Szerző Téma: hogy lehet olyat csinálni hogyha odamegy a kapuhoz az ember akkor kinyiljon?  (Megtekintve 961 alkalommal)

Nem elérhető buci11

  • 502
    • Profil megtekintése
0 Show voters
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

hogy lehet olyat csinálni hogyha odamegy a kapuhoz az ember akkor kinyiljon?
« Válasz #1 Dátum: 2011. November 17. - 19:33:45 »
0 Show voters
Én segítek neked,ha felveszel xfiren,és megadod a szükséges kódokat :)
Xfire: kamionsofor

Nem elérhető buci11

  • 502
    • Profil megtekintése
hogy lehet olyat csinálni hogyha odamegy a kapuhoz az ember akkor kinyiljon?
« Válasz #2 Dátum: 2011. November 17. - 19:38:02 »
0 Show voters
felvettelek köszi

hogy lehet olyat csinálni hogyha odamegy a kapuhoz az ember akkor kinyiljon?
« Válasz #3 Dátum: 2011. November 18. - 06:44:59 »
0 Show voters
Idézetet írta: buci11 date=1321553377\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"13487\" data-ipsquote-contentclass=\"forums_Topic
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;
}

hogy lehet olyat csinálni hogyha odamegy a kapuhoz az ember akkor kinyiljon?
« Válasz #4 Dátum: 2011. November 18. - 14:46:16 »
0 Show voters
Énmár egyszer megcsináltam neki

hogy lehet olyat csinálni hogyha odamegy a kapuhoz az ember akkor kinyiljon?
« Válasz #5 Dátum: 2011. November 18. - 15:13:01 »
0 Show voters
Idézetet írta: Ð í e s e £ date=1321623976\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"13487\" data-ipsquote-contentclass=\"forums_Topic
Énmár egyszer megcsináltam neki
 
Attól még segíthetek neki nem? :)
Attól h megcsináltad nem fogja megtanulni!

hogy lehet olyat csinálni hogyha odamegy a kapuhoz az ember akkor kinyiljon?
« Válasz #6 Dátum: 2011. November 18. - 15:50:19 »
0 Show voters
Idézetet írta: Fellner96 date=1321625581\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"13487\" data-ipsquote-contentclass=\"forums_Topic


Énmár egyszer megcsináltam neki
 
Attól még segíthetek neki nem? :)
Attól h megcsináltad nem fogja megtanulni!
 
[/quote]
Felõlem segíts,de szerintem kicsit túlbonyolítottad,ez a PlayerToPoint függvény össze zavarhatja,miért nem jó az alap IsPlayerInRangeOfPoint?

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal