Guten Tag
habe ein Problem was mich ein wenig aufregt da ich es schon seid etwa einer Stunde versuche zu fixen. Der Fehler ist, das nicht erkannt wird das er eine bestimmte Taste drückt.
Bisher habe ich die Tasten "c" und "n" ausprobiert, da viele anderen schon belegt oder ungeeignet sind.
Der Spieler ist gefreezed und die camera ist 1-2m vor ihm und auf ihn gerichtet, so wie es in einer skinauswahl üblich ist.
Der Code ist ganz einfach wird aber garnichts erst aufgerufen, was bedeutet das er gar nicht die Taste drückt, bzw es nicht erkannt wird:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
print("Test 1");
if(newkeys & KEY_NO) // if(newkeys % 2) | if(newkeys & KEY_CROUCH) | if(PRESSED(2)) | if(PRESSED(KEY_CROUCH)) > funktionieren ebenso nicht
{
print("Test 2");
if(GetPVarInt(playerid,"ChoosedfSkin") >= 0 || GetPVarInt(playerid,"ChoosedzSkin") >= 0)
{
if(GetPVarInt(playerid,"ChoosedfSkin") >= 0 && Spieler[playerid][Fraktionsskin] <= 0) return 0;
SkinKaufen:
SetPVarInt(playerid,"ChoosedfSkin",-1);
SetPVarInt(playerid,"ChoosedzSkin",-1);
j_SetPlayerInterior(playerid,Spieler[playerid][LastInt]);
j_SetPlayerVirtualWorld(playerid,Spieler[playerid][LastVirt]);
j_SetPlayerPos(playerid,Spieler[playerid][LastX],Spieler[playerid][LastY],Spieler[playerid][LastZ]);
j_TogglePlayerControllable(playerid,1);
SetCameraBehindPlayer(playerid);
DestroyBincoInfo(playerid);
if(Spieler[playerid][Duty] == 1) SetPlayerSkin(playerid,Spieler[playerid][Fraktionsskin]);
//else if(Spieler[playerid][Duty] == 2) SetPlayerSkin(playerid,Nebenjobs[Spieler[playerid][Ziviljob]][jSkin]);
else if(IsAGang(Spieler[playerid][Fraktion]))
{
SetPlayerSkin(playerid,Spieler[playerid][Fraktionsskin]);
Spieler[playerid][Duty] = 1;
}
else SetPlayerSkin(playerid,Spieler[playerid][Zivilskin]);
}
}
print("Test 3");
return 1;
}
Ich frage mich echt was für ein dummer Fehler mir da unterlaufen ist. In der Serverlog wird Test 1 und Test 3 angezeigt.
Liebe Grüße