Respawn Problem
#1

Hi guys
I Need Help With this When Player Goto minigame And After When he died he Don't back to minigame Why?
pawn Код:
YCMD:mini(playerid,params[], help)
{
     IsInMini[playerid] = 1;
     SetPlayerPos(playerid,2543.462646,-1308.379882,1026.728393);
     SetPlayerInterior(playerid, 2);
     ResetPlayerWeapons(playerid);
     GivePlayerWeapon(playerid, 38, 999999);
     SetPlayerHealth(playerid, 100);
     SetPlayerVirtualWorld(playerid,50);
     return 1;
}
YCMD:exit(playerid,params[], help)
{
     IsInMini[playerid] = 0;
     ResetPlayerWeapons(playerid);
     SetPlayerInterior(playerid, 0);
     SetPlayerVirtualWorld(playerid,0);
     return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
pawn Код:
new killer[129],killed[129];
     GetPlayerName(killerid,killer,sizeof(killer));
     GetPlayerName(playerid,killed,sizeof(killed));
     if(IsInMini[playerid] == 1)
     {
           new killmsg[129];
           format(killmsg,sizeof(killmsg),"%s has killed %s",killer,killed);
           SendClientMessageToAll(0xFFF000FF,killmsg);
           GivePlayerMoney(killerid,3000);
           SetPlayerScore(killerid, GetPlayerScore(killerid)+3);
    }
What is Wrong?
Reply
#2

You forgot to set his position, to set his virtual world, to give him weapons and to set his interior.
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
     new killer[129],killed[129];
     GetPlayerName(killerid,killer,sizeof(killer));
     GetPlayerName(playerid,killed,sizeof(killed));
     if(IsInMini[playerid] == 1)
     {
           new killmsg[129];
           format(killmsg,sizeof(killmsg),"%s has killed %s",killer,killed);
           SendClientMessageToAll(0xFFF000FF,killmsg);
           GivePlayerMoney(killerid,3000);
           SetPlayerScore(killerid, GetPlayerScore(killerid)+3);
           SetPlayerPos(playerid,2543.462646,-1308.379882,1026.728393);
           SetPlayerInterior(playerid, 2);
           ResetPlayerWeapons(playerid);
           GivePlayerWeapon(playerid, 38, 999999);
           SetPlayerVirtualWorld(playerid,50);
    }
    return 1;
}
Reply
#3

Try putting this under OnPlayerDeath

pawn Код:
if(IsInMini[playerid] == 0)
{
     IsInMini[playerid] = 1;
     SetPlayerPos(playerid,2543.462646,-1308.379882,1026.728393);
     SetPlayerInterior(playerid, 2);
     ResetPlayerWeapons(playerid);
     GivePlayerWeapon(playerid, 38, 999999);
     SetPlayerHealth(playerid, 100);
     SetPlayerVirtualWorld(playerid,50);
     return 1;
}
Reply
#4

Don't Work guys
Reply
#5

pawn Код:
new killer[129],killed[129];
     GetPlayerName(killerid,killer,sizeof(killer));
     GetPlayerName(playerid,killed,sizeof(killed));
     if(IsInMini[playerid] == 1)
     {
           new killmsg[129];
           format(killmsg,sizeof(killmsg),"%s has killed %s",killer,killed);
           SendClientMessageToAll(0xFFF000FF,killmsg);
           GivePlayerMoney(killerid,3000);
           SetPlayerScore(killerid, GetPlayerScore(killerid)+3);
           SetPlayerPos(playerid,2543.462646,-1308.379882,1026.728393);
           SetPlayerInterior(playerid, 2);
           ResetPlayerWeapons(playerid);
           GivePlayerWeapon(playerid, 38, 999999);
           SetPlayerHealth(playerid, 100);
           SetPlayerVirtualWorld(playerid,50);
    }
Reply
#6

You cannot set a player's position when they're dead, so under OnPlayerSpawn, if you have a variable on them and it equals it, set their position back to where they were.
pawn Код:
public OnPlayerSpawn(playerid)
{
    if(IsInMini[playerid] == 1)
    {
        SetPlayerPos(playerid,2543.462646,-1308.379882,1026.728393);
        SetPlayerInterior(playerid, 2);
        ResetPlayerWeapons(playerid);
        GivePlayerWeapon(playerid, 38, 999999);
        SetPlayerHealth(playerid, 100);
        SetPlayerVirtualWorld(playerid,50);
    }
    return 1;
}
And why not instead of just changing their interior and virtual world when they type /exit, do this:
pawn Код:
YCMD:exit(playerid,params[], help)
{
     IsInMini[playerid] = 0;
     ResetPlayerWeapons(playerid);
     SetPlayerInterior(playerid, 0);
     SetPlayerVirtualWorld(playerid,0);
     SpawnPlayer(playerid);
     return 1;
}
Spawn the player so that they won't be at that position stuck in an interior.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)