Hali. :)
Van ez a kódom az OnPlayerDeath alatt:
SetSpawnInfo(playerid, 0, 217, 1184.3917,-1323.8950,13.5747, 90, 1,2, 26,70, 20,75);
Azt akarom megcsinálni hogy ha valaki meghal akkor ne a 217-es skint használja hanem azzal amelyikkel halál elõtt ment, de ha beírom a 0-t akkor a CJ skinre állítja. És hiába van beállítva a kórház koordinátája, mégis a Random Spawnok közül választ.
Random Spawnok:
public SetPlayerRandomSpawn(playerid)
{
if (iSpawnSet[playerid] == 1)
{
new rand = random(sizeof(gCopPlayerSpawns));
SetPlayerPos(playerid, gCopPlayerSpawns[rand][0], gCopPlayerSpawns[rand][1], gCopPlayerSpawns[rand][2]); // Warp the player
SetPlayerFacingAngle(playerid, 270.0);
}
else if (iSpawnSet[playerid] == 0)
{
new rand = random(sizeof(gRandomPlayerSpawns));
SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); // Warp the player
}
return 1;
}
Röviden: Bugos.
Hosszabban: anno a WRP esetében én is használtam a setspawninfo függvényt, és arra kellett rájönnöm, hogy elég sok bug van benne. Skint nem mindig állítja be, sõt, olyan is van, hogy ha meghívod a függvényt, akkor a játékosra meghívódik az onplayerdeath callback is.. Szóval érdekes kis függvény, már vagy 4 verzió óta vannak benne ezek a bugok, de szerintem sosem fogják kijavítani...
Esetedben az lesz a gond, hogy a SetPlayerRandomSpawn meghívódik valahol, keress rá hogy hol, gondolom onplayerspawn alatt, vagy hasonló. Ki kommenteled a sort, és megoldva, nem fogja random spawnhelyre tenni.
Skinnel kapcsolatban: nos, sokszor bugos lesz, és elõfordul hogy mást lát az egyik játékos, és mást a másik. Leggyakoribb hiba, hogy akinek beállítod, õ CJ-t lát majd, a többiek viszont a rendes skint.
Az, hogy azt kapja majd, amiben meghalt, kérd le a skin id-t, mikor meghal, és úgy állítsd be a spawn-t. pl.
public OnPlayerDeath(...)
{
SetSpawnInfo(playerid, 0, GetPlayerSkin(playerid), 1184.3917,-1323.8950,13.5747, 90, 1,2, 26,70, 20,75);
//stb...
}