[DUV] Quando morre, escolher skin de novo '-'
#1

Olб povo, meu GM й de RPG, nгo й GF, nгo sei qual suas origens, sу sei que me deram ele, e eu editei.
Й o seguinte, no 0.3, nгo й com todos os players que acontece isso, quando morre, aparece aquela tela para escolher o skin, o player fica congelado aonde ele estб setado para nascer (em sua casa), e aparece lб pra clicar, (<< , >> ou SPAWN), alguйm sabe porque dб isso ? Ainda nгo mexi com as funзхes do 0.3, entгo nгo tenho noзгo do que pode ser '-' OnPlayerRequestClass ? OnPlayerSpawn ? OnPlayerDeath ? Help ._.
O certo era nascer no hospital, mas nгo nasce '-'
Reply
#2

Tenta algo como isso no OnPlayerDeath:

pawn Code:
SetSpawnInfo(playerid, 0, GetPlayerSkin(playerid), x, y, z, a, 0, 0, 0, 0, 0, 0);
Onde "x", "y", "z" sгo as coordenadas do hospital, e "a" й o вngulo em que o jogador nasce, assim quando ele morrer, o prуximo spawn dele й suposto a ser esse.
Reply
#3

Tem isso aн, mas estгo assim
pawn Code:
if(GetClosestHospital(playerid) == 0){
    SetSpawnInfo(playerid, 1, udb_getSkin(PlayerName(playerid)), -2651.6501, 634.4510, 14.4531, 180.0000, 0, 0, 0, 0, 0, 0);
    }
  if(GetClosestHospital(playerid) == 1){
    SetSpawnInfo(playerid,1,udb_getSkin(PlayerName(playerid)),1173.5842,-1324.5615,15.1953,278.4624,0,0,0,0,0,0);
    }
  if(GetClosestHospital(playerid) == 2){
    SetSpawnInfo(playerid,1,udb_getSkin(PlayerName(playerid)),2031.9415,-1404.3578,17.2614,165.8180,0,0,0,0,0,0);
    }
  if(GetClosestHospital(playerid) == 3){
    SetSpawnInfo(playerid,1,udb_getSkin(PlayerName(playerid)),1582.5615,1768.7921,10.8203,93.7454,0,0,0,0,0,0);
  }
Devo tirar esse if ?
Reply
#4

Manda o OnPlayerDeath inteiro, pode ter alguma coisa nele que impeзa que chegue nesta funзгo aн (talvez um return).
Reply
#5

Okay
Ele й todo bagunзado ._.

Look: http://pastebin.com/m57e83d05
Reply
#6

Agora passa o seu GetClosestHospital, acho que ai, saberemos o erro.
Reply
#7

pawn Code:
public GetClosestHospital(playerid)
{
    if(!IsPlayerConnected(playerid)){
      return -1;
    }
    new Float:prevdist = 100000.000;
    new prevhosp;
    for(new hospid = 0; hospid < 4; hospid++){
      new Float:dist;
      if(hospid == 0){
      dist = GetPlayerDistanceToPoint(playerid,-2651.6501,634.1177);
        }
        else if(hospid == 1){
          dist = GetPlayerDistanceToPoint(playerid,1173.5842,-1324.5615);
        }
        else if(hospid == 2){
          dist = GetPlayerDistanceToPoint(playerid,2031.9415,-1404.3578);
        }
        else if(hospid == 3){
          dist = GetPlayerDistanceToPoint(playerid,1582.5615,1768.7921);
        }
        if((dist < prevdist)){
          prevdist = dist;
          prevhosp = hospid;
        }
    }
  return prevhosp;
}
Reply
#8

Manda o OnPlayerSpawn e OnPlayerRequestClass (este ъltimo mais importante)...
Reply
#9

Se nгo haver nada no OnPlaerSpawn que esteja interferindo o SetSpawnInfo, entгo o problema sгo as coordenadas, caso nгo seja, tenta isso:

pawn Code:
new Float:hospital[4][2] =
{
    {-2651.650,  634.1177},
    {1173.5842, -1324.5615},
    {2031.9415, -1404.3578},
    {1582.5615, 1768.7921}
};

public GetClosestHospital(playerid)
{
    if(!IsPlayerConnected(playerid))
    {
        return -1;
    }
    new Float:prevdist = 0x7F800000, prevhosp;
    for(new hospid = 0; hospid < sizeof hospital; hospid++)
    {
        new Float:dist;
        dist = GetPlayerDistanceToPoint(playerid, hospital[hospid][0], hospital[hospid][1]);
        if(dist < prevdist)
        {
            prevdist = dist;
            prevhosp = hospid;
        }
    }
    return prevhosp;
}
Reply
#10

Ok, vou tentar, depois posto aqui o resultado, Thanks
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)