ReSpawn ultima posiciуn. -
Lunnatiicz - 02.06.2011
Muy buenas a todos e.e
Hace poco hice un sistemilla para respawnear al jugador en el lugar donde era asesinado dicho player.
Acб el codigo
pawn Код:
new ReSpawn[MAX_PLAYERS];
new Float: Coord[3];
public OnPlayerConnect(playerid)
{
ReSpawn[playerid] = 0; //para que al conectarse no tenga valor ._.
return 1;
}
public OnPlayerSpawn(playerid)
{
ReSpawn[playerid] = 0;
new randomspawn = random(7);
switch(randomspawn)
{
case 0: SetPlayerPos(playerid, -2245.2019,2281.0889,4.9697);
case 1: SetPlayerPos(playerid, -2277.9546,2280.1367,4.9703);
case 2: SetPlayerPos(playerid, -2245.8184,2342.5278,4.9811);
case 3: SetPlayerPos(playerid, -2233.8311,2401.9553,2.4891);
case 4: SetPlayerPos(playerid, -2214.4700,2422.6782,2.4967);
case 5: SetPlayerPos(playerid, -2229.7439,2437.7734,2.4947);
case 6: SetPlayerPos(playerid, -2250.2766,2418.7981,2.4961);
}
if(IsPlayerInDynamicArea(playerid, LV)){
SetPlayerPos(playerid, Coord[0], Coord[1], Coord[2]);
SendClientMessage(playerid, COLOR_WHITE, "Has ReSpawneado en la zona en donde te encontrabas, para salir simplemente sal del area marcada");
ReSpawn[playerid] = 0;
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(IsPlayerInDynamicArea(playerid, LV)){
if(IsPlayerConnected(playerid))
{
GetPlayerPos(playerid, Coord[0], Coord[1], Coord[2]);
ReSpawn[playerid] = 1;
}
}
return 1;
}
Pero el error que hay es que cuando sales del servidor todo bien, relogeas y apareces en Red Country y no en las coordenadas indicadas en OnPlayerSpawn ._.
їPorquй? se que algo tengo mal o pйsimo e.e
Respuesta: ReSpawn ultima posiciуn. -
admantis - 02.06.2011
Con Red County a donde te refieres?
Supongo que debes hacer una array multi-dimensional, ya que asн entonces todos los jugadores estuvieran usando una misma variable, cuando se debe que cada quien tenga su propia. Por ejemplo:
pawn Код:
new Float:Coord[MAX_PLAYERS][3];
// Su uso es:
SetPlayerPos(playerid, Coord[playerid][0], Coord[playerid][1], Coord[playerid][2]);
Saludos.
Re: ReSpawn ultima posiciуn. -
SeQu4lX - 02.06.2011
El error se va si guardas las coords en la cuenta porque si entra otro usuario con la ID del que murio va a aparecer donde guardaste la pos del otro player, tambien puede que definas cada array en onplayerconnect y se borran las coords por si tal vez lo tienes asi revisa siempre sigilosamente y como escribio el de arriba, cada array que va a guardar info de un player en especifico tienes que hacerlo de 1 dimension mas sino se utilizara 1 solo array para todos entonces [MAX_PLAYERS];
Respuesta: ReSpawn ultima posiciуn. -
Lunnatiicz - 02.06.2011
Quote:
Originally Posted by admantis
Con Red County a donde te refieres?
Supongo que debes hacer una array multi-dimensional, ya que asн entonces todos los jugadores estuvieran usando una misma variable, cuando se debe que cada quien tenga su propia. Por ejemplo:
pawn Код:
new Float:Coord[MAX_PLAYERS][3];
// Su uso es: SetPlayerPos(playerid, Coord[playerid][0], Coord[playerid][1], Coord[playerid][2]);
.
|
A el Spawn que creo que SAMP Trae predeterminadamente eso creo xd probarй y si funciona, te digo
Saludos
Quote:
Originally Posted by SeQu4lX
El error se va si guardas las coords en la cuenta porque si entra otro usuario con la ID del que murio va a aparecer donde guardaste la pos del otro player, tambien puede que definas cada array en onplayerconnect y se borran las coords por si tal vez lo tienes asi revisa siempre sigilosamente y como escribio el de arriba, cada array que va a guardar info de un player en especifico tienes que hacerlo de 1 dimension mas sino se utilizara 1 solo array para todos entonces [MAX_PLAYERS];
|
No las guardo en cuentas, sуlo es el tiempo que X jugador estй conectado, igualmente, gracias :B
EDIT: Me refiero a este pueblo
Verбs como spawnea ahн, las coordenadas de spawn que puse yo es en una parte de SF y no ahн, eso es cuando me conecto, si me voy a X lugar y muero, respawneo ahн, salgo del juego, entro de nuevo y estoy en ese pueblo ._. cuando por defecto mio deberнa ser en SF D:
їMe explico?
Respuesta: Re: ReSpawn ultima posiciуn. -
admantis - 02.06.2011
Quote:
Originally Posted by SeQu4lX
El error se va si guardas las coords en la cuenta porque si entra otro usuario con la ID del que murio va a aparecer donde guardaste la pos del otro player, tambien puede que definas cada array en onplayerconnect y se borran las coords por si tal vez lo tienes asi revisa siempre sigilosamente y como escribio el de arriba, cada array que va a guardar info de un player en especifico tienes que hacerlo de 1 dimension mas sino se utilizara 1 solo array para todos entonces [MAX_PLAYERS];
|
Es bбsicamente lo que yo dije pero explicado.
їSirviу o no?
Respuesta: Re: ReSpawn ultima posiciуn. -
Lunnatiicz - 02.06.2011
Quote:
Originally Posted by admantis
Es bбsicamente lo que yo dije pero explicado.
їSirviу o no?
|
No habнa encontrado ese bug, pero me salvaron de una :B
Lee el Edit de mi mensaje anterior
Respuesta: ReSpawn ultima posiciуn. -
admantis - 02.06.2011
Spawneas ahн ya que al conectarte la variable de Coords es cero ya que no has muerto, y cero es el medio del mapa (el pueblito ese), por lo tanto :
pawn Код:
if(IsPlayerInDynamicArea(playerid, LV) && ReSpawn[playerid] == 1){
SetPlayerPos(playerid, Coord[0], Coord[1], Coord[2]);
SendClientMessage(playerid, COLOR_WHITE, "Has ReSpawneado en la zona en donde te encontrabas, para salir simplemente sal del area marcada");
ReSpawn[playerid] = 0;
}
return 1;
Respuesta: ReSpawn ultima posiciуn. -
Lunnatiicz - 02.06.2011
Quote:
Originally Posted by admantis
Spawneas ahн ya que al conectarte la variable de Coords es cero ya que no has muerto, y cero es el medio del mapa (el pueblito ese), por lo tanto :
pawn Код:
if(IsPlayerInDynamicArea(playerid, LV) && ReSpawn[playerid] == 1){ SetPlayerPos(playerid, Coord[0], Coord[1], Coord[2]); SendClientMessage(playerid, COLOR_WHITE, "Has ReSpawneado en la zona en donde te encontrabas, para salir simplemente sal del area marcada"); ReSpawn[playerid] = 0; } return 1;
|
Al conectarme me spawnea perfecto, en donde deberнa de ser al conectarse, pero a ir a X lugar y morir, me vuelve a spawnear en el connect, cuando deberнa de spawnear en el X punto donde moriste ._.
Re: ReSpawn ultima posiciуn. -
SeQu4lX - 02.06.2011
no sera porque pones respawn[playerid] en 0?
Respuesta: ReSpawn ultima posiciуn. -
Lunnatiicz - 02.06.2011
Segъn yo eso setearнa la posiciуn antes escrita & la renovarнa al morir no?