Player Spawn Bug
#1

Hey. When I run my game mode the player is supposed to spawn at the coordinates given in OnPlayerSpawn. Its works perfectly but after I press the "Spawn" button the screen flashes showing my player at the default samp coordinates(the little place with the elevators) and then spawns to the correct position. How can I fix that flash?

Код:
public OnPlayerSpawn(playerid)
{
	//Hide the textdraw when the player spawns
	TextDrawHideForPlayer(playerid, gWelcome);

	//Print a client message to all players when a player spawns
	new name[MAX_PLAYER_NAME];
	new string [128];
	GetPlayerName(playerid, name, sizeof(name));
	format(string, sizeof(string), "%s has spawned!", name);
	SendClientMessageToAll(LIGHT_GREEN, string);

	//Set the players coordinates to spawn; put camera behind player
	SetPlayerPos(playerid, 1280.5247,-813.6929,83.6532);
	SetPlayerCameraPos(playerid, 1280.5247,-813.6929,83.6532);
	SetPlayerFacingAngle(playerid, 180.0);
	SetCameraBehindPlayer(playerid);
	return 1;
}

public OnGameModeInit()
{
	SetGameModeText("Closed Beta");
	AddPlayerClass(210, 1958.3783, 1343.1572, 15.3746, 269.1425, 24, 123123, 25, 123123, 34, 123123);
	AddPlayerClass(230, 1958.3783, 1343.1572, 15.3746, 269.1425, 24, 123123, 25, 123123, 34, 123123);
	AddPlayerClass(38, 1958.3783, 1343.1572, 15.3746, 269.1425, 24, 123123, 25, 123123, 34, 123123);
	AddPlayerClass(53, 1958.3783, 1343.1572, 15.3746, 269.1425, 24, 123123, 25, 123123, 34, 123123);
 	AddPlayerClass(134, 1958.3783, 1343.1572, 15.3746, 269.1425, 24, 123123, 25, 123123, 34, 123123);
 	AddPlayerClass(170, 1958.3783, 1343.1572, 15.3746, 269.1425, 24, 123123, 25, 123123, 34, 123123);
 	AddPlayerClass(177, 1958.3783, 1343.1572, 15.3746, 269.1425, 24, 123123, 25, 123123, 34, 123123);
 	
 	//Create some nrg's
 	AddStaticVehicle(522,1293.4578,-831.7721,82.7060,2.2115,8,164);
 	AddStaticVehicle(522,1291.4998,-832.0693,82.7150,0.9063,1,89);
 	AddStaticVehicle(522,1289.1138,-832.2216,82.7144,1.8299,20,0);
	AddStaticVehicle(522,1286.9045,-832.1899,82.7124,357.0424,150,49);
	AddStaticVehicle(522,1283.9424,-832.0230,82.7132,1.8036,200,78);
	
	AddStaticVehicle(411,1242.7148,-805.3672,83.8677,178.3237,1,0); // infernous
	AddStaticVehicle(451,1248.9519,-805.4118,83.8476,178.6428,0,1); // turismo
	AddStaticVehicle(541,1255.2100,-804.8454,83.7656,184.1492,1,0); // bullet

	//Create the textdraw for welcoming the player
	gWelcome = TextDrawCreate(320.0, 240.0, "Welcome to Uuri's Mapping Server!");
	TextDrawSetShadow(gWelcome, 3);
	TextDrawSetOutline(gWelcome, 2);
	TextDrawFont(gWelcome, 3);
	TextDrawBoxColor(gWelcome, 0x003333FF);
	TextDrawAlignment(gWelcome, 2);

	//Use the running animations I like
	UsePlayerPedAnims();

	return 1;
}

public OnPlayerConnect(playerid)
{
	//Show the player the welcome textdraw
	TextDrawShowForPlayer(playerid, gWelcome);
	
	//Send a client message to all players on the current player connecting.
	new name[MAX_PLAYER_NAME];
	new string[128];
	GetPlayerName(playerid, name, sizeof(name));
	format(string, sizeof(string), "%s has connected to the server!", name);
    SendClientMessageToAll(LIGHT_GREEN, string);
    
	return 1;
	
}

public OnPlayerRequestClass(playerid, classid)
{
	SetPlayerPos(playerid, 2000.5919,1527.3319,14.6172);
	SetPlayerCameraPos(playerid, 2000.6874,1528.9332,14.6223);
	SetPlayerCameraLookAt(playerid, 2000.5919,1527.3319,14.6172);
	SetPlayerFacingAngle(playerid, 358.2982);
	
	return 1;
}
Reply
#2

It could be because you have SetPlayerCameraPos under OnPlayerSpawn.
Remove that and try again.
Reply
#3

It worked but now I can't see my skin on the skin selection screen.
Reply
#4

Hmm, try to remove SetCameraBehindPlayer under OnPlayerSpawn as well. See if it works.
Also, maybe get new coordinates for OnPlayerRequestClass. This might fix it as well.
Reply
#5

It didn't work...
Reply
#6

Bump, please help me.
Reply
#7

Try using this callback:
wiki.sa-mp.com/wiki/OnPlayerRequestSpawn

And dont use cameras functions, just set the player position.
Reply
#8

Okay I used it but now the Spawn dialog is still showing and I can't walk or do anything I copied and pasted this inside it.

Код:
        SetPlayerPos(playerid, 1280.5247,-813.6929,83.6532);	
        SetCameraBehindPlayer(playerid);
	SetPlayerFacingAngle(playerid, 180.0);
Reply
#9

Please, try to use this:

pawn Код:
public OnPlayerSpawn(playerid)
{
    //Hide the textdraw when the player spawns
    TextDrawHideForPlayer(playerid, gWelcome);

    //Print a client message to all players when a player spawns
    new name[MAX_PLAYER_NAME];
    new string [128];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s has spawned!", name);
    SendClientMessageToAll(LIGHT_GREEN, string);

    //Set the players coordinates to spawn; put camera behind player
    SetPlayerPos(playerid, 1280.5247,-813.6929,83.6532);
    SetPlayerFacingAngle(playerid, 180.0);
    return 1;
}
Don't use ANY camera function. And I'm surprised about your comment #3.

P.S: Remove OnPlayerRequestSpawn then.

P.S2: Wut dialog? I don't see any dialog function in your code.
Reply
#10

Quote:
Originally Posted by CrossOv3r
Посмотреть сообщение
Please, try to use this:

pawn Код:
public OnPlayerSpawn(playerid)
{
    //Hide the textdraw when the player spawns
    TextDrawHideForPlayer(playerid, gWelcome);

    //Print a client message to all players when a player spawns
    new name[MAX_PLAYER_NAME];
    new string [128];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s has spawned!", name);
    SendClientMessageToAll(LIGHT_GREEN, string);

    //Set the players coordinates to spawn; put camera behind player
    SetPlayerPos(playerid, 1280.5247,-813.6929,83.6532);
    SetPlayerFacingAngle(playerid, 180.0);
    return 1;
}
Don't use ANY camera function. And I'm surprised about your comment #3.

P.S: Remove OnPlayerRequestSpawn then.

P.S2: Wut dialog? I don't see any dialog function in your code.
If you use OnPlayerRequestSpawn then you'll have a dialog.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)