OnPlayerSpawn
#1

Hi,
I have a problem with OnPlayerSpawn and when I want to spawn only me but we'll flashs from one place to another here is a video and code:

Video:
http://www.youtube.com/watch?v=QU6Vr...ature=*********


Code:
Код:
public OnPlayerSpawn(playerid){
TextDrawShowForPlayer(playerid,Hodiny);
TextDrawShowForPlayer(playerid,www);
TextDrawHideForPlayer(playerid, Logo);
TextDrawHideForPlayer(playerid, Logo2);
SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
Logged[playerid] = 1;
if(PlayerInfo[playerid][pPos_x] == 0 && PlayerInfo[playerid][pPos_y] == 0){
SetPlayerColor(playerid, COLOR_WRITE);
SetPlayerPos(playerid, 1689.0211,1450.3179,10.7673);
SendClientMessage(playerid, COLOR_RED, "[TiP] Hru by jsi mel zacit tim, ze navstivis hlavni centrum mesta.");
SendClientMessage(playerid, COLOR_WRITE, "Toto centrum se nachazi na hlavni tride, Emerald Isle, pobliz policejni stanice.");
SendClientMessage(playerid, COLOR_WRITE, "Muzes si zde udelat ridicsky a pilotni prukaz, nebo zazadat o vydani cestovniho pasu.");
Logged[playerid] = 1;
SpawnPlayer(playerid);
}else{
SetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
Logged[playerid] = 1;
SpawnPlayer(playerid);
}
return 1;
}
Reply
#2

Help me?
Reply
#3

Код:
public OnPlayerSpawn(playerid)
{
	TextDrawShowForPlayer(playerid,Hodiny);
	TextDrawShowForPlayer(playerid,www);
	TextDrawHideForPlayer(playerid, Logo);
	TextDrawHideForPlayer(playerid, Logo2);
	SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
	Logged[playerid] = 1;
	if(PlayerInfo[playerid][pPos_x] == 0 && PlayerInfo[playerid][pPos_y] == 0)
	{
		SetPlayerColor(playerid, COLOR_WRITE);
		SetPlayerPos(playerid, 1689.0211,1450.3179,10.7673);
		SendClientMessage(playerid, COLOR_RED, "[TiP] Hru by jsi mel zacit tim, ze navstivis hlavni centrum mesta.");
		SendClientMessage(playerid, COLOR_WRITE, "Toto centrum se nachazi na hlavni tride, Emerald Isle, pobliz policejni stanice.");
		SendClientMessage(playerid, COLOR_WRITE, "Muzes si zde udelat ridicsky a pilotni prukaz, nebo zazadat o vydani cestovniho pasu.");
		Logged[playerid] = 1;
		SpawnPlayer(playerid);
		return 1;
	}
	else
	{
		SetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
		Logged[playerid] = 1;
		SpawnPlayer(playerid);
		return 1;
	}
}
I think your script was looping because it ran through an if/else loop, and not returning a value properly. Sorry if the script wasnt working, just fixed it.
Reply
#4

it is repaired or is not a
Reply
#5

Quote:
Originally Posted by Aerotactics
Посмотреть сообщение
Код:
public OnPlayerSpawn(playerid)
{
	TextDrawShowForPlayer(playerid,Hodiny);
	TextDrawShowForPlayer(playerid,www);
	TextDrawHideForPlayer(playerid, Logo);
	TextDrawHideForPlayer(playerid, Logo2);
	SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
	Logged[playerid] = 1;
	if(PlayerInfo[playerid][pPos_x] == 0 && PlayerInfo[playerid][pPos_y] == 0)
	{
		SetPlayerColor(playerid, COLOR_WRITE);
		SetPlayerPos(playerid, 1689.0211,1450.3179,10.7673);
		SendClientMessage(playerid, COLOR_RED, "[TiP] Hru by jsi mel zacit tim, ze navstivis hlavni centrum mesta.");
		SendClientMessage(playerid, COLOR_WRITE, "Toto centrum se nachazi na hlavni tride, Emerald Isle, pobliz policejni stanice.");
		SendClientMessage(playerid, COLOR_WRITE, "Muzes si zde udelat ridicsky a pilotni prukaz, nebo zazadat o vydani cestovniho pasu.");
		Logged[playerid] = 1;
		SpawnPlayer(playerid);
		return 1;
	}
	else
	{
		SetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
		Logged[playerid] = 1;
		SpawnPlayer(playerid);
		return 1;
	}
}
I think your script was looping because it ran through an if/else loop, and not returning a value properly. Sorry if the script wasnt working, just fixed it.
If's and elses are not loops, they are conditionals, at least in PAWN. A loop is something that repeats itself a fixed number of times (can be infinite too).
Reply
#6

CuervO? How would I corrected you think?
Reply
#7

It is always returning SpawnPlayer, which causes an infinite number of OnPlayerSpawn processings. Remove SpawnPlayer at OnPlayerSpawn, it's senseless. Aerotactics was partially right though, it was an unintended loop.
Reply
#8

Quote:
Originally Posted by CuervO
Посмотреть сообщение
It is always returning SpawnPlayer, which causes an infinite number of OnPlayerSpawn processings. Remove SpawnPlayer at OnPlayerSpawn, it's senseless. Aerotactics was partially right though, it was an unintended loop.
Radi ti dobre, daj preč SpawnPlayer
Reply
#9

Thanks
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)