Problema SpawnPlayer(playerid)
#1

Por que el SpawnPlayer(playerid) me envнa a esta posiciуn, si la posiciуn al terminar el registro esta bien



їAlguien sabe que motivo puede ser?
Reply
#2

Tienes solo una posiciуn?
Reply
#3

Код:
new Float:WelcomeSpawn[FOUR_POSITIONS] = { 1154.0959, -1771.2671, 16.5992, 0.0 };
Код:
    SetSpawnInfo(playerid, NO_TEAM, NEWBIE_SKIN, WelcomeSpawn[0], WelcomeSpawn[1], WelcomeSpawn[2], WelcomeSpawn[3], -1, -1, -1, -1, -1, -1);
	SetPlayerPosEx(playerid, WelcomeSpawn[0], WelcomeSpawn[1], WelcomeSpawn[2]);
    SetPlayerFacingAngle(playerid, WelcomeSpawn[3]);
Todo esta bien, pero debe haber un motivo por el cual me envнa a esa posiciуn, como si no existiera pero si existe .-.
Reply
#4

En las variables globales:

Код:
new bool:Tutorial[MAX_PLAYERS];
Cuando conecta (OnPlayerConnect), la seteas a false (0).

Код:
Tutorial[playerid] = false;
En donde finaliza el tutorial, (Antes de SpawnPlayer) la seteas a true.

Код:
Tutorial[playerid] = true;
Y en OnPlayerSpawn (funciуn llamada al usar SpawnPlayer) se comprueba si terminу el tutorial, por tanto mandбndolo a la posiciуn del SetPlayerPos, osea:
Код:
if(Tutorial[playerid] == true) {
SetPlayerPosEx(playerid, WelcomeSpawn[0], WelcomeSpawn[1], WelcomeSpawn[2]);
Tutorial[playerid] = false; // Acб seteamos de nuevo a false, ya que se le tpeу a la posiciуn de arriba. En dado caso que si no se setear y se usa SpawnPlayer volverб a aparecer en la pos de inicio.
return 1;
}
Reply
#5

Pero si no hay tutorial, Solo es un registro
Reply
#6

Esta mal tu array.

pawn Код:
// ** INCLUDES

#include <a_samp>

// ** ARRAYS AND ENUMERATORS

enum eRandomSpawns
{
    Float:random_spawn_x,
    Float:random_spawn_y,
    Float:random_spawn_z,
    Float:random_spawn_angle
};

static const aRandomSpawns[][eRandomSpawns] =
{
    {1154.0961, -1767.9318, 16.5938, 358.1200},
    {1346.0240, -1751.6771, 13.3624, 0.9422},
    {1586.1368, -1721.4606, 13.5469, 179.7958}
};

// ** MAIN

main()
{
    print("Loaded \"random_spawns.amx\".");
}

// ** CALLBACKS

public OnGameModeInit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerSpawn(playerid)
{
    new selected = random(sizeof(aRandomSpawns));
    SetPlayerPos(playerid, aRandomSpawns[selected][random_spawn_x], aRandomSpawns[selected][random_spawn_y], aRandomSpawns[selected][random_spawn_z]);
    SetPlayerFacingAngle(playerid, aRandomSpawns[selected][random_spawn_angle]);
    SetCameraBehindPlayer(playerid);
    return 1;
}
Reply
#7

Quote:
Originally Posted by wharlos
Посмотреть сообщение
Pero si no hay tutorial, Solo es un registro
El orden de los factores no altera el producto. Ya sea el fin del registro y/o tutorial...

Toma el cуdigo de Sick y fusionalo con lo que te pasй, para evitar que cuando mueras o uses SpawnPlayer aparezca en esa posiciуn, saludos.
Reply
#8

Quote:
Originally Posted by LatinZ
Посмотреть сообщение
El orden de los factores no altera el producto. Ya sea el fin del registro y/o tutorial...

Toma el cуdigo de Sick y fusionalo con lo que te pasй, para evitar que cuando mueras o uses SpawnPlayer aparezca en esa posiciуn, saludos.
Es preferible verificar booleans como:

pawn Код:
if(boolean)
= true

pawn Код:
if(!boolean)
= false
Reply
#9

Ya entendi todo. pero lo tengo como dicen uso.

Quote:

public OnPlayerConnect(playerid)
{
Logueado[playerid] = false;

Quote:

public SetPlayerPosAfterRegister(playerid)
{
Logueado[playerid] = true;

Parece que esta bien como ustedes dicen, o me equivoco?
Reply
#10

Quote:
Originally Posted by wharlos
Посмотреть сообщение
Ya entendi todo. pero lo tengo como dicen uso.





Parece que esta bien como ustedes dicen, o me equivoco?
Utiliza el ejemplo que publique y ignora lo demas.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)