OnPlayerRequestSpawn
#1

Hello SA-MP forum.

If I try to compile this code

pawn Код:
public OnPlayerRequestSpawn(playerid)
{
    new tmp[128], pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    if(PlayerInfo[playerid][pTeam] == 1)
    {
        format(tmp,sizeof(tmp),"%s has spawned",pName);
        SendClientMessageToAll(-1,tmp);
        return 1;
    }
    else
    {
        SendClientMessage(playerid, Red, "You are not in this team");
        return 0;
    }
    return 1;
}
It'll return the unreachable code error, but if I remove one of the return it wouldn't work.

https://sampwiki.blast.hk/wiki/OnPlayerRequestSpawn

Returning 0 in this callback will prevent the player from spawning

Thanks
Reply
#2

pawn Код:
public OnPlayerRequestSpawn(playerid)
{
    new tmp[128], pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    if(PlayerInfo[playerid][pTeam] == 1)
    {
        format(tmp,sizeof(tmp),"%s has spawned",pName);
        SendClientMessageToAll(-1,tmp);
        SpawnPlayer(playerid);
        return 1;
    }
    else
    {
        SendClientMessage(playerid, Red, "You are not in this team");
    }
    return 0;
}
Reply
#3

Returning zero will fail. This is just as good. Since its an "if else" block there is no reason to return (early).
pawn Код:
public OnPlayerRequestSpawn(playerid)
{
    new tmp[128], pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    if(PlayerInfo[playerid][pTeam] == 1)
    {
        format(tmp,sizeof(tmp),"%s has spawned",pName);
        SendClientMessageToAll(-1,tmp);
        SpawnPlayer(playerid);
    }
    else
    {
        SendClientMessage(playerid, Red, "You are not in this team");
        return 0;
    }
    return 1;
}
EDIT: just realised what you wanted. I was wrong returning zero wouldn't make it fail.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)