Beitrag von Almaz ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
Nein, nicht irgendwo. Natürlich dort, wo du im Gamemode den Job 33 startest.
Außerdem muss der Filterscript geladen sein, und das forward/public in dem Filterscript drin sein.
Um Nachrichten zu empfangen ob jemand Gestorben ist muss mann erst in den Dienst Tretten wer es da ideal für die Abfrage aber du meinst ya was anderes.[/font]
Ich meine was anderes? Ich weiß nicht genau was du jetzt meinst. Du musst die CallRemoteFunction dort aufrufen, wo du im GameMode dem Spieler die pJob Variable auf 33 setzt. Wo das ist weiß ich nicht.
Du kannst den Code ja auch mal posten, wo du pJob auf 33 setzt.
Ich meine was anderes? Ich weiß nicht genau was du jetzt meinst. Du musst die CallRemoteFunction dort aufrufen, wo du im GameMode dem Spieler die pJob Variable auf 33 setzt. Wo das ist weiß ich nicht.
Du kannst den Code ja auch mal posten, wo du pJob auf 33 setzt.
[pwn=1337]case 17:
{
strmid(jgtext,"Bestatter",0,strlen("Bestatter"),255), GettingJob[playerid] = 33;
}[/pwn]
Da fügst du jetzt unter der strmid Zeile das hier ein:
CallRemoteFunction("SetJob", "dd", playerid, 33);
Achte auch darauf, dass der Filterscript geladen ist.
Hat es eigentlich einen Grund, dass du bei OnPlayerStateChange nicht nach
GettingJob[playerid]
abfragst, sondern nach
PlayerInfo[playerid][pJob]
?
Das scheint mir irgendwie nicht ganz richtig, außer da ist ein Sinn dahinter.
Alles anzeigenDa fügst du jetzt unter der strmid Zeile das hier ein:
CallRemoteFunction("SetJob", "dd", playerid, 33);
Achte auch darauf, dass der Filterscript geladen ist.
Hat es eigentlich einen Grund, dass du bei OnPlayerStateChange nicht nach
GettingJob[playerid]
abfragst, sondern nach
PlayerInfo[playerid][pJob]
?
Das scheint mir irgendwie nicht ganz richtig, außer da ist ein Sinn dahinter.
Funktioniert nicht, meinst du das Liegt daran Weil, das PlayerInfo[playerid][pJob] steht? und ich GettingJob[playerid] habe?
Ja, ändere das mal.
Die Methode mit dem Filterscript sollte aber trotzdem Funktionieren, wenn du es richtig gemacht hast.
if(!(GettingJob[playerid][pJob] != 33 || IsPlayerNPC(playerid))
zu:
if(GettingJob[playerid] != 33 || IsPlayerNPC(playerid))
Hast du den Filterscript noch am laufen? Wenn ja, entferne den, sonst geht es nicht. Du kannst nur in einem von beidem die Abfrage machen, in beiden macht es keinen Sinn.
Das tut ja anscheinend bei dir nicht. Wo hast du denn das mit dem GettingJob[playerid] jetzt gemacht? Im Filterscript?
Wenn ja, poste mal bitte deinen Filterscript, komplett.
Also, dann: Im GameMode:
case 17:
{
strmid(jgtext,"Bestatter",0,strlen("Bestatter"),255), GettingJob[playerid] = 33;
}
zu:
case 17:
{
strmid(jgtext,"Bestatter",0,strlen("Bestatter"),255), GettingJob[playerid] = 33;
CallRemoteFunction("SetJob", "dd", playerid, 33);
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
printf("IsARomero: %d | playerid: %d | model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
printf("Job: %d | NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));
if(IsARomero(GetPlayerVehicleID(playerid)))
{
if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
{
printf("Entfernt.");
SendClientMessage(playerid,COLOR_GREY," Du bist kein bestatter !");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
return 1;
}
zu:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
Und dann den Filterscript in die server.cfg schreiben, sodass er geladen wird.
Wie gesagt, dann machst du irgendetwas anderes falsch. Beides Code-Varianten funktionieren bei mir ohne Probleme. Wenn es bei dir nicht geht liegt es nicht an dem Code.
Lade dir TeamViewer herunter und schicke mir deine Daten in PN, dann schaue ich es mir kurz an.