Beitrag von Almaz ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
Vielleicht hilft dir diese Seite bei deinem Problem weiter.
Dort wird etwas näher die Funktionen von ShowMenuForPlayer erklärt, sowie wie man einen Spieler während der Menüauswahl freezen & unfreezen kann.
//e: Oder kurz erklärt:
Wenn du den Befehl eingibst & das Menü aufgerufen wird, musst du den Spieler mithilfe von
TogglePlayerControllable(playerid, 0);
freezen.
Sobald er im Menü eine Sache ausgewählt hat, unfreezt du ihn wieder mithilfe von
TogglePlayerControllable(playerid, 1);
Mit
TogglePlayerControllable(pID, true);
für freeze: TogglePlayerControllable(pID,false);
für unfreeze: TogglePlayerControllable(pID,true);
Wenn du es in beiden Fällen haben willst, dann einfach
public OnPlayerExitedMenu(playerid)
{
TogglePlayerControllable(playerid,true);
return 1;
}
und:
public OnPlayerSelectedMenuRow(playerid, row)
{
TogglePlayerControllable(playerid,true);
//...Rest hier...
Probier mal:
TogglePlayerControllable(playerid, 1);
Auch, wenn es hochwarscheinlich das gleiche ist. Ein Versuch ist es wert.
Setze mal vor beide TogglePlayerControllable einen print:
printf("Toggle: playerid = %d", playerid);
Kommt der print, wenn du ENTER drückst? Wenn nicht, dann wird das callback gar nicht aufgerufen, sprich es liegt an etwas anderem, möglicherweise an einem Filterscript, der auch Menus beinhaltet?
Vor die beiden
TogglePlayerControllable(playerid,true);
Also direkt drüber.
Kommt der print, wenn du ENTER drückst? Wenn nicht, dann wird das callback gar nicht aufgerufen, sprich es liegt an etwas anderem, möglicherweise an einem Filterscript, der auch Menus beinhaltet?
Hast du noch andere Menus in anderen Codes?
Steht etwas bei anderen Menus im Log, bzw. klappt es da?
Hast du zufällig eine mehrzeilige Meldung mit vielen Zahlen im Compiler?
Wenn weder noch, dann poste bitte mal dein OnPlayerSelectedMenuRow, das Ganze.
Ich habe es dir in Pastbin hochgeladen weil, es hier zu Lang ist.
Der Pastebin existiert nicht mehr.
Du hast das nicht so gemacht wie ich gesagt habe.
Schau mal was ich geschrieben habe: Frezze problem.
Damit war jeweils direkt die erste Zeile im Callback gemeint, das hast du nicht gemacht. Wenn du Enter drückst (das ist bei den Menus glaube ich Beenden), dann wird OnPlayerExitedMenu aufgerufen.
Klappt es, wenn du die EXIT Zeile mit der Leertaste auswählst?
Wenn ja:
Wie sieht dein OnPlayerExitedMenu aus?