Jó estét mindenkinek!
Olyan problémám van, hogy van egy </spec id> parancsom, és speceli is a játékost, de miután meghalok, nem specel senkit. Berakom az egész spec parancsot, meg azt is, hogy hogyan próbáltam ezt megoldani.
CMD:spec(playerid, params[]) {
if(gTeam[playerid] == FIRST_TEAM & SECOND_TEAM)
return MSG(playerid, COLOR_RED, \"Hiba: Nem használhatod ezt a parancsot, mivel részt veszel a warban!\");
if(sscanf(params,\"u\", id))
return MSG(playerid, -1, \"Használat: /spec <JátékosNév/ID>\");
if(id == INVALID_PLAYER_ID)
return MSG(playerid, COLOR_RED, \"Hiba: Nincs ilyen játékos!\");
if(id == playerid)
return MSG(playerid, COLOR_RED, \"Hiba: Magadat nem specelheted!\");
PlayerInfo[playerid][pSpecID] = id;
TogglePlayerSpectating(playerid, true);
PlayerSpectatePlayer(playerid, id);
SetPlayerInterior(playerid, GetPlayerInterior( id ));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld( id ));
ServerInfo[specPlayer] = 1;
return ( 1 );
}
És ahogy próbáltam megcsinálni, hogy specelje továbbra is, az OnPlayerSpawn alatt:
if(ServerInfo[specPlayer] == 1) {
TogglePlayerSpectating(id, playerid);
PlayerSpectatePlayer(id, playerid);
}
Kérem, segítsenek!
public OnPlayerDeath(playerid, killerid, reason)
{
if(ServerInfo[specPlayer] == 1) {
TogglePlayerSpectating(playerid, true);
if(!IsPlayerInAnyVehicle(id[playerid])) PlayerSpectatePlayer(playerid, id[playerid]);
else PlayerSpectateVehicle(playerid, GetPlayerVehicleID(id[playerid]), SPECTATE_MODE_NORMAL);
SetPlayerInterior(playerid, GetPlayerInterior(id[playerid]));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(id[playerid]));
}
return 1;
}
Írd át az id változót a deklarálásnál. Így:
new id[MAX_PLAYERS];
Ezt azért mert ha több ember van fent a szerveren és időközben más is elkezd specelni te meghalsz akkor azt fogod specelni akit xy is néz.
Természetesen sscanf-nél is írd át. (A halálnál való specet nem teszteltem elvileg jónak kell lennie.)