ReSpawn ultima posiciуn.
#1

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
Reply
#2

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.
Reply
#3

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];
Reply
#4

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?
Reply
#5

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?
Reply
#6

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
Reply
#7

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;
Reply
#8

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 ._.
Reply
#9

no sera porque pones respawn[playerid] en 0?
Reply
#10

Segъn yo eso setearнa la posiciуn antes escrita & la renovarнa al morir no?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)