Spawning [+REP] - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Spawning [+REP] (
/showthread.php?tid=440828)
Spawning [+REP] -
EliteApple - 31.05.2013
After a player logs in, they should spawn at a certain location - however when I hit login, my character is sent into the air.
Codes:
Under DialogResponse(snipet):
Код:
SetCameraBehindPlayer( playerid );
LoadAccountVariables( playerid );
gPlayerLogged[playerid] = 1;
LoadAccountVar:
Код:
stock LoadAccountVariables( playerid )
{
if( IsPlayerConnected( playerid ) )
{
new DataString[ 1536 ], Query[ 1536 ];
format( Query, sizeof( Query ), "SELECT * FROM `Accounts` WHERE `UserID` = '%d'", PlayerInfo[playerid][pDatabaseID] );
if(mysql_query( Query ))
{
mysql_store_result();
} else {
mysql_free_result();
SendClientMessage( playerid, COLOR_WHITE, "MYSQL ERROR LAV, feel free to report this bug by SS'ing it and send it to a dev." );
printf("Could not call loadaccountvariables query %d %d",playerid,PlayerInfo[playerid][pDatabaseID]);
Kick(playerid);
}
printf(" SQL: %s",Query);
mysql_fetch_field( "Rank", DataString );
PlayerInfo[ playerid ][ pRank ] = strval( DataString );
mysql_fetch_field( "Admin", DataString );
PlayerInfo[ playerid ][ pAdmin] = strval( DataString );
SpawnPlayer( playerid );
SetPlayerSpawn(playerid);
}
else
{
printf( "[error] LoadAccountVariables() was called, but to a non-connected ID.", playerid );
}
}
SetPlayerSpawn:
Код:
forward SetPlayerSpawn(playerid);
public SetPlayerSpawn(playerid)
{
SetPlayerPos(playerid,1742.8767,-1863.5521,13.5749);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
SetPlayerFacingAngle(playerid,0);
SetPlayerHealth(playerid,100);
gPlayerLogged[playerid] = 1;
if(PlayerInfo[playerid][pAdmin] > 0)
{
new string2[64];
format(string2, sizeof(string2), "SERVER: You are logged in as a level %d admin",PlayerInfo[playerid][pAdmin]);
SendClientMessage(playerid, COLOR_WHITE,string2);
}
return 1;
}
OnPlayerRequestClass:
Код:
public OnPlayerRequestClass(playerid, classid)
{
if(IsPlayerNPC(playerid)) return 1;
SetPlayerSkin(playerid, 71);
if(gPlayerLogged[playerid] != 1)
{
InitPlayerConnection( playerid );
} else {
SpawnPlayer(playerid);
}
return 0;
}
PlayerRequestSpawn:
Код:
public OnPlayerRequestSpawn(playerid)
{
if(IsPlayerNPC(playerid)) return 1;
if(gPlayerLogged[playerid] == 1)
{ return 1; }
else {
if(SpawnAttempts[playerid] >= MAX_SPAWN_ATTEMPTS)
{
Kick(playerid);
return 1;
}
SpawnAttempts[playerid] ++;
return 0;
}
}
Please help me, as I need this fixed ASAP.
Re: Spawning [+REP] -
Kovon - 31.05.2013
Insert this right before you use SpawnPlayer
Код:
SetSpawnInfo(playerid, 0, 1, 1742.8767,-1863.5521,13.5749, 0.0, -1, -1, -1, -1, -1, -1);
//Explanation of the function below:
//SetSpawnInfo(playerid, Team, Skin id, x, y, z, angle, Weapon 1, Ammo 1, -Weapon 2, Ammo 2, Weapon 3, Ammo 3);