[Duda] Diferencia -
VodKa' - 10.09.2012
їCual es la diferencia entre GetPlayerPos y SetPlayerPos? Por que necesito hacer que si un jugador esta en "X" area pase "X" cosa.
Pero no entiendo la diferencia entre esos 2.
Respuesta: [Duda] Diferencia -
TheChaoz - 10.09.2012
GetPlayerPos obtiene la posicion actual del jugador, mientras que
SetPlayerPos cambia la posicion actual del jugador a la indicada.
Respuesta: [Duda] Diferencia -
spell - 10.09.2012
para hacer "si un jugador esta en X area pase X cosa" podes usar IsPlayerInRangeOfPoint(id,radio,cordenadas X Y Z)
Respuesta: [Duda] Diferencia -
TheChaoz - 10.09.2012
Quote:
Originally Posted by spell
para hacer "si un jugador esta en X area pase X cosa" podes usar IsPlayerInRangeOfPoint(id,radio,cordenadas X Y Z)
|
De hecho, lo que deberia utilizar es IsPlayerInArea (nativa en caso de utilizar el Streamer de incognito con el nombre de "IsPlayerInDynamicArea").
pawn Код:
stock IsPlayerInArea(playerid, Float:minX, Float:minY, Float:maxX, Float:maxY)
{
if(!IsPlayerConnected(playerid))
return 0;
new Float:P[3];
GetPlayerPos(playerid, P[0], P[1], P[2]);
if((maxX-P[0]) >= 0 && (P[0]-minX) >= 0 && (maxY-P[1]) >= 0 && (P[1]-minY) >= 0)
return 1;
return 0;
}
Re: [Duda] Diferencia -
VodKa' - 10.09.2012
Las coordenadas que voy a utilizar son estas:
X min: 1740.234375
Y min: 2859.375
X max: 1792.96875
Y max: 2783.203125
Entonces me quedaria asi:
PHP код:
stock IsPlayerInArea(playerid, 1740.234375, 2859.375, 1792.96875, 2783.203125)
{
if(!IsPlayerConnected(playerid))
return 0;
new Float:P[3];
GetPlayerPos(playerid, P[0], P[1], P[2]);
if((maxX-P[0]) >= 0 && (P[0]-minX) >= 0 && (maxY-P[1]) >= 0 && (P[1]-minY) >= 0)
return 1;
return 0;
}
Respuesta: [Duda] Diferencia -
TheChaoz - 10.09.2012
No, lo que yo te di es la definicion de una funcion.
Su forma de uso es la siguiente:
pawn Код:
//Donde lo necesites:
if(IsPlayerInArea(playerid, 1740.234375, 2859.375, 1792.96875, 2783.203125))
{
//Aqui realizas la accion, ya que el jugador estara dentro del area indicada.
}
//Fuera de cualquier callback y/o funcion
stock IsPlayerInArea(playerid, Float:minX, Float:minY, Float:maxX, Float:maxY)
{
if(!IsPlayerConnected(playerid))
return 0;
new Float:P[3];
GetPlayerPos(playerid, P[0], P[1], P[2]);
if((maxX-P[0]) >= 0 && (P[0]-minX) >= 0 && (maxY-P[1]) >= 0 && (P[1]-minY) >= 0)
return 1;
return 0;
}
Re: [Duda] Diferencia -
VodKa' - 10.09.2012
Pero si quiero teletransportar al player a esa area? Uso SetPlayerPos?
Respuesta: [Duda] Diferencia -
TheChaoz - 10.09.2012
Quote:
Originally Posted by VodKa'
Pero si quiero teletransportar al player a esa area? Uso SetPlayerPos?
|
Eso ya te lo respondi:
Quote:
Originally Posted by the_chaoz
GetPlayerPos obtiene la posicion actual del jugador, mientras que SetPlayerPos cambia la posicion actual del jugador a la indicada.
|
Re: [Duda] Diferencia -
VodKa' - 10.09.2012
Sisi, pero la funciуn es asi:
SetPlayerPos(playerid,Float
![angry](images/smilies/mad.gif)
,Float:y,Float:z)
Y en las coordenadas cual pongo? X min o X max?
Respuesta: Re: [Duda] Diferencia -
TheChaoz - 10.09.2012
Quote:
Originally Posted by VodKa'
Sisi, pero la funciуn es asi:
SetPlayerPos(playerid,Float ![angry](images/smilies/mad.gif) ,Float:y,Float:z)
Y en las coordenadas cual pongo? X min o X max?
|
Estas con un mal concepto de las funciones. Mira te hago un dibujo asi entiendes como funciona:
Код:
(minX;minY)++++++++++++++(minX;maxY)
+ +
+ +
+ +
+ +
+ +
+ P +
+ +
+ +
(maxX;minY)+++++++++++++(maxX;maxY)
P repesenta una posicion dentro del area y tiene sus propias coordenadas (X, Y, Z).
Dentro de
SetPlayerPos utilizas el X, Y, Z correspondientes a la posicion que quieres. Y en IsPlayerInArea, utilizas los expremos de las areas.