Hallo Zusammen
Ich beschäftige mich seit ca. 2 Wochen mit meinem Selfmade-Script und wollte nun ein Autohaus erstellen.
Dafür beschäftige ich mit OnPlayerKeyStateChange. Kenne mich da jedoch noch nicht so gut aus bzw. hab da immer Wiki zur Hilfe
Zum eigentlichen Problem:
Ich hab im OnPlayerKeyStateChange eine normale If-Abfrage. Doch aus unbekannten Gründen wird diese nicht richtig ausgeführt.
Es wird geprüft, ob der Spieler genug Geld dabei hat und ansonsten kann der Spieler das Auto logischerweise nicht kaufen.
Dann erhält er die Nachricht "Du hast nicht genug Geld".
Doch manchmal erhält er immer die Nachricht(auch wenn er genug Geld hat) und manchmal kann er das Auto immer kaufen...
Die Unterschiede haben mit dem return zu tun gehabt (weglassen, 1 oder 0).
Im Wiki ist das return jedoch als "weiterer Gebrauch" definiert:
"Returns1 - Allows this callback to be called in other scripts. It is always called first in gamemodes so retuning 0 there blocks filterscripts from seeing it."
Darum nun zu meiner Frage: Was mache ich falsch?
Wieso wird die Abfrage nicht korrekt ausgeführt?
Nebst der Hauptfrage, hab ich noch eine kleinere Frage:
Im Moment habe ich den KEY_JUMP als Bestätigung.
Ich wollte jedoch die Enter-Taste. Als welchen Key ist diese definiert? Habs mit KEY_ACTION probiert, passierte dann aber nichts.
Script:
else if(newkeys == KEY_JUMP)
{
if(Daten[playerid][Geld]>=Autokauf[aID][preis])
{
SetCameraBehindPlayer(playerid);
SetPlayerVirtualWorld(playerid,0);
TogglePlayerControllable(playerid,1);
GivePlayerMoney(playerid,-Autokauf[aID][preis]);
CreateVehicle(Autokauf[aID][amodelid],Autokauf[aID][posx],Autokauf[aID][posy],Autokauf[aID][posz],Autokauf[aID][posa],-1,-1,-1);
aID = 0;
return 0;
}
else
{
aID = 0;
SetCameraBehindPlayer(playerid);
SetPlayerVirtualWorld(playerid,0);
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid,rot,"Du hast nicht genug Geld!");
return 0;
}
}
}
Mfg
Hund