OnPlayerKeyStateChange Bug oder Script Fehler ?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey,
    habe ein kleines Problem mit meinem Motor System. Eigentlich funktioniert es einwandfrei. Wenn man die Taste 'n' drückt soll der Motor ein/ausgeschaltet werden. Wenn man alleine auf dem Server ist klappt alles gut, nur wenn mehr als eine Person auf dem Server ist, funktioniert es nicht mehr. Dann funktioniert entweder garnichts oder man muss die Taste 1000mal drücken. Was mache ich falsch ?
    if(newkeys == (KEY_NO) )
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return 1;
    new vID=GetPlayerVehicleID(playerid),tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective;
    GetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    new id = GetMyCarID(vID);
    if(tmp_engine==1){
    tmp_engine = 0;
    GameTextForPlayer(playerid, "~r~Engine turned off", 2000, 3);
    new ownertext[128];
    format(ownertext,sizeof(ownertext),"{FFFFFF}%s\n{FF0000}Owner %s",GetVehicleName(cInfo[id][id_x]),getPlayerName(playerid));
    ownedtext[cInfo[id][id_x]] = Create3DTextLabel( ownertext, COLOR_WHITE, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle( ownedtext[cInfo[id][id_x]] ,cInfo[id][id_x], 0.0, 0.0, 0.5);
    }else{
    //if(FuelState[vID] == 0) return 0;
    tmp_engine = 1;
    GameTextForPlayer(playerid, "~r~Engine turned on", 2000, 3);
    Delete3DTextLabel(ownedtext[cInfo[id][id_x]]);
    }
    SetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    }

  • Leider geht gerade garnichts mehr, egal ob ein oder mehrere Spieler. Das gleiche gillt auch für if(newkeys == (KEY_NO) ){ und if(newkeys & (KEY_NO) ){
    if(newkeys == (KEY_NO) ){
    if(GetPlayerState(playerid)== 2) {
    new vID=GetPlayerVehicleID(playerid),tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective;
    GetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    new id = GetMyCarID(vID);
    if(tmp_engine==1){
    tmp_engine = 0;
    GameTextForPlayer(playerid, "~r~Engine turned off", 2000, 3);
    if(IsPrivateCar(vID)){
    new ownertext[128];
    format(ownertext,sizeof(ownertext),"{FFFFFF}%s\n{FF0000}Owner %s",GetVehicleName(cInfo[id][id_x]),getPlayerName(playerid));
    ownedtext[cInfo[id][id_x]] = Create3DTextLabel( ownertext, COLOR_WHITE, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle( ownedtext[cInfo[id][id_x]] ,cInfo[id][id_x], 0.0, 0.0, 0.5);
    }
    }else{
    //if(FuelState[vID] == 0) return 0;
    tmp_engine = 1;
    GameTextForPlayer(playerid, "~r~Engine turned on", 2000, 3);
    if(IsPrivateCar(vID)){
    Delete3DTextLabel(ownedtext[cInfo[id][id_x]]);
    }
    }
    SetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    }
    }
    ManualVehicleEngineAndLights(); habe ich auch unter OnGameModeInit

    Einmal editiert, zuletzt von Oskaar1994 ()

  • Mach mal


    if(newkeys & KEY_NO && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)


    Bei mir funzt das immer :huh: