GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: sticky2 - 2012. Október 20. - 10:45:32

Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: sticky2 - 2012. Október 20. - 10:45:32
Üdv mindenki!Lehetséges az,hogy ha kilép egy \'quboid\' formájú zónából a játékos,akkor lefegyverezze?
Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: Johnies00 - 2012. Október 20. - 11:15:24
quboid formájú zónából(?)
Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: sticky2 - 2012. Október 20. - 11:27:44
http://www.google.hu/imgres?um=1&hl=hu&sa=N&biw=1280&bih=633&tbm=isch&tbnid=m5XIW-X0nXcqTM:&imgrefurl=http://de.wikipedia.org/wiki/Datei:Quader-Quboid.png&docid=1wHgGLGgAmKF2M&imgurl=http://upload.wikimedia.org/wikipedia/de/8/82/Quader-Quboid.png&w=1003&h=594&ei=c26CUN_sOufZ4QSSr4GwCQ&zoom=1&iact=rc&dur=5&sig=114579354385547824826&page=1&tbnh=127&tbnw=236&start=0&ndsp=17&ved=1t:429,r:4,s:0,i:80&tx=112&ty=77
Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: Johnies00 - 2012. Október 20. - 11:34:13
Hát ismerek 1 hasonló függvényt amivel majdnem megoldható.
 
SetPlayerWorldBounds(playerid,Float:x_max,Float:x_min,Float:y_max,Float:y_min)

 
Csak ezzel az a baj hogy magasságot nem lehet megadni, mennyire fontos szempont a magasság?
Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: sticky2 - 2012. Október 20. - 11:53:41
Ha ki akarja vinni a területrõl a fegyvert,ne sikerüljön neki :D
Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: Johnies00 - 2012. Október 20. - 12:08:27
Mivel nem a pozícióidat neked kell lemérned õket. (egy helyen save poz1, mész elõre ameddig akarod és poz2, és a 2 x pozícióbol és a poz1 x koordináta lesz a mettõl, a poz2 x koordináta pedig a meddig, y -al ugyan így.)

De én inkább az egyszerûbb megoldást javaslom (bár ez nem négyzet alapú terület hanem kör), a láthatatlan Checkpoint-os módszert.


Létrehozol pl groove streeten egy pozíciót, megadod a sugarat és beleírod a módba hogy ha valamelyik játékos kijött onnan akkor fegyverezze le.


Ha nem érted megcsinálom neked, csak adj megy egy pozíciót és egy sugarat. (Sugarat tesztelgesd SetPlayerCheckpoint fügvénnyel)
Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: Kovacs_Richard - 2012. Október 20. - 12:13:30
Idézetet írta: Johnies00 date=1350725653\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28780\" data-ipsquote-contentclass=\"forums_Topic
Hát ismerek 1 hasonló függvényt amivel majdnem megoldható.
 
SetPlayerWorldBounds(playerid,Float:x_max,Float:x_min,Float:y_max,Float:y_min)

 
Csak ezzel az a baj hogy magasságot nem lehet megadni, mennyire fontos szempont a magasság?
 
ezzel nem megoldható...õ nem bent akarja tartani a zónában hanem amikor kilép a zónából akkor elvenni a fegyvereit !
ez a függvény egy timer-el ötvözve megoldaná szerintem a problémádat:
 
stock IsPlayerInCube(playerid, xmin, ymin, zmin, xmax, ymax, zmax)
{
  new Float:x, Float:y, Float:z;
  GetPlayerPos(playerid, x, y, z);
  if( x > xmin && y > ymin && z > zmin && x < xmax && y < ymax && z < zmax) return 1;
  return 0;
}
Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: sticky2 - 2012. Október 20. - 12:18:33
ez a függvény egy timer-el ötvözve megoldaná szerintem a problémádat:
Kód: [Kijelölés]
stock IsPlayerInCube(playerid, xmin, ymin, zmin, xmax, ymax, zmax)
{
  new Float:x, Float:y, Float:z;
  GetPlayerPos(playerid, x, y, z);
  if( x > xmin && y > ymin && z > zmin && x < xmax && y < ymax && z < zmax) return 1;
  return 0;
}
[/quote]
Hát ebbõl szinte semmit nem értem :D :D

Dupla hozzászólás automatikusan összefûzve. ( 2012. Október 20. - 12:21:10 )


stock IsPlayerInCube(playerid, xmin, ymin, zmin, xmax, ymax, zmax) //itt ugye a koordinátákat kell, a két sarokról
{
  new Float:x, Float:y, Float:z; //ez nem tudom :D
  GetPlayerPos(playerid, x, y, z); //itt lecsekkolja hogy hol van
  if( x > xmin && y > ymin && z > zmin && x < xmax && y < ymax && z < zmax) return 1; //és ide megint azt kell írni,mint az eslõhöz
  return 0;
}

 
valahogy így?
Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: Johnies00 - 2012. Október 20. - 12:23:14
Idézetet írta: Kovacs_Richard date=1350728010\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28780\" data-ipsquote-contentclass=\"forums_Topic


Hát ismerek 1 hasonló függvényt amivel majdnem megoldható.
 
SetPlayerWorldBounds(playerid,Float:x_max,Float:x_min,Float:y_max,Float:y_min)

 
Csak ezzel az a baj hogy magasságot nem lehet megadni, mennyire fontos szempont a magasság?
 
ezzel nem megoldható...õ nem bent akarja tartani a zónában hanem amikor kilép a zónából akkor elvenni a fegyvereit !
 
[/quote]
Igazad van...  :D
Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: Kovacs_Richard - 2012. Október 20. - 12:31:41
0. bemásolod a kódodba azt a függvényt amit írtam...
1. létrehozol egy timer ( vagy ha már van ami alkalmas akkor azt használd ! )
http://wiki.sa-mp.com/wiki/SetTimer
2. timer-en belül ellenõrzöd egy ciklussal a játékosokat
 
for(new i; i < GetMaxPlayers(); i++)
{
    if(KellETorolniAFegyveret && !IsPlayerInCube(i,...)) { ResetPlayerWeapons(i); }
}

 
KellETorolniAFegyveret ennek a helyére beírod hogy milyen változó vagy függvény ellenõrzi hogy kell e elvenni a fegyverét...gondolom a terroristás játékodhoz kell ez a cucc...szóval ami alapján a szerver tudja hogy a játékos bent játszik ott az a kód megfelel ide is...
Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: Johnies00 - 2012. Október 20. - 12:34:46
Ezt a függvényt elmentem mert nekem is szükségem lehet rá, köszi Kovacs.  :D
Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: Kovacs_Richard - 2012. Október 20. - 12:36:17
Idézetet írta: Johnies00 date=1350729286\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28780\" data-ipsquote-contentclass=\"forums_Topic
Ezt a függvényt elmentem mert nekem is szükségem lehet rá, köszi Kovacs.  :D
 
itt a forrás és még van itt egy pár száz hasznos kód :)
http://forum.sa-mp.com/showthread.php?t=38965
jó csemegézést...
Cím: Ha kilép a játékos egy adott zónából,fegyverezze le
Írta: sticky2 - 2012. Október 20. - 12:54:48
Köszönöm a segítségeteket.