Beitrag von Almaz ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
Unter welchem Callback steht der Code?
Wie hast du newcar deklariert und welchen Wert weißt du ihm zu?
forward IsARomero(carid);
public IsARomero(carid)
{
new modelid = GetVehicleModel(carid);
if(modelid == 442)
{
return 1;
}
return 0;
}
if(IsARomero(GetPlayerVehicleID(playerid)))
{
if(PlayerInfo[playerid][pJob] == 33 || IsPlayerNPC(playerid))
{
SendClientMessage(playerid,COLOR_GREY," Du bist kein Bestatter !");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
Wie ist es denn bei dir aufgebaut? Sind alle Jobs Bestatter, außer der 33? Wenn nicht, ändere es zu:
if(IsARomero(GetPlayerVehicleID(playerid)))
{
if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
{
SendClientMessage(playerid,COLOR_GREY," Du bist kein Bestatter !");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
Oder hast du eventuell noch andere Job IDs für Bestatter?
Debugge es bitte mal und poste dann was im Log steht wenn du in das Fahrzeug einsteigst:
printf("IsARomero: %d / playerid: %d / model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
if(IsARomero(GetPlayerVehicleID(playerid)))
{
printf("Job: %d / NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));
if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
{
printf("Entfernt.");
SendClientMessage(playerid,COLOR_GREY," Du bist kein Bestatter !");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
Das ist schlecht.
Dann liegt der Fehler an einer Stelle über diesem Code im Callback.
Poste mal das gesamte Callback.
Naja, das bringt nur nichts, wenn der Code nicht aufgerufen wird.
Füge den Bestatter Code
printf("IsARomero: %d / playerid: %d / model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
if(IsARomero(GetPlayerVehicleID(playerid)))
{
printf("Job: %d / NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));
if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
{
printf("Entfernt.");
SendClientMessage(playerid,COLOR_GREY," Du bist kein Bestatter !");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
mal ganz als erstes bei OnPlayerStateChange ein, also direkt unter die erste öffnende geschwungene Klammer. Geht es dann?
Mehr nicht? Der Print mit dem Job muss auch kommen.
Oder klappt alles bereits?
Das ist komisch.
Hast du im Compiler eine mehrzeilige Meldung mit vielen Zahlen? Wenn nein, dann nimm die Print Zeile mit dem Job und füge sie über die andere Print Zeile ein, die die kommt. Kommt der Job Print dann?
Wenn du eine mehrzeilige Meldung hast, dann füge unter den Includes
#pragma dynamic 100000
ein.
Eine Meldung mit Heap Size und ganz vielen Zahlen.
Unter die letzte Include die du angegeben hast.