KEY_UP etc. funktioniert nicht ! [Hilfe]

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
  • Ich habe ein Problem,
    #define PRESSED(%0) \
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))

    if (PRESSED( KEY_UP | KEY_DOWN | KEY_LEFT | KEY_RIGHT ))


    Ist unter OnPlayerKeyStateChange, alles ist richtig, 0 Errors aber wenn ich jetzt einen Motorschaden mit meinem Auto mache (Das ist unter OnPlayerStateChange)
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new vehicleid = GetPlayerVehicleID(playerid), Float:vhp;
    if(IsPlayerInVehicle(playerid,vehicleid))
    GetVehicleHealth(vehicleid, vhp);
    if(vhp<= 300)
    {
    new Float:vx, Float:vy, Float:vz;
    SetVehicleVelocity(vehicleid, vx*0, vy*0, vz*0);
    SendClientMessage(playerid,0xFF0000FF,"Das Fahrzeug hat einen Motorschaden!");
    }
    }


    Dann kommt keine Meldung, dass ich einen Motorschaden habe, und kann einfach Weiterfahren...


    Interessant ist jedoch, das wenn ich aus dem Auto dann wieder Aussteige und wieder Einsteige, dass mir dann erst gesagt wird das ich einen Motorschaden habe, ich jedoch einfach weiter fahren kann!


    Habs auch schon mit HOLDING-KEY probiert, ging auch nicht mit den Variablen Wert der Tasten auch schon, was aber auch nicht ging, nur weiß ich nicht wieso...
    ich hoffe mir kann schnell jemand helfen!

  • Ganz ehrlich,Ich versteh den Zusammenhang nicht zwischen OnPlayerKeyStateChange und OnPlayerStateChange in deinem Code.
    Was passiert denn bei OnPlayerKeyStateChange aus der Abfrage mit den KEYS ? Hast du Debug-Notes eingefügt um zu schauen ob die KEY Abfrage wirklich fehl schlägt ?


    if(vhp<= 300) Da brennt das Fahrzeug schon längst.Glaube bei 400 fängt das Fahrzeug an zu brennen,also nimm mal lieber 450.
    new Float:vx, Float:vy, Float:vz;
    SetVehicleVelocity(vehicleid, vx*0, vy*0, vz*0);

    Geil.Wie wäre es so

    SetVehicleVelocity(vehicleid, 0.0,0.0, 0.0);

  • Nochmal, dein PRESSED Ausschnitt hat nichts mit dem Ausschnitt von OnPlayerStateChange zu tun. Es besteht keine Verbindungen zwischen den beiden Snippets.

    GameMode / Filterscript / Plugin Development via
    - PAWN / C/C++
    - Database (mySQL) & Filebased - Systems


    Webdevelopment / Interfaces Webapplications - SA:MP Server via
    - HTML & CSS
    - PHP, JavaScript, Ajax

  • Ist doch jetzt egal


    B2T:


    OnPlayerKeyStateChange will be called each time a key state is changed. It will never be called for up, down, left and right.


    Heißt das nun ich kann damit nicht arbeiten?
    Denn das muss ich wissen...


    Zudem, wie schaffe ich es denn nun, das eine Message kommt wenn Vehicle Health bei 400 ist ?

  • Ich denke nicht, dass Du wirklich etwas von dem was hier zwecks deines Problems geschildert wurde (inkl. meines Beitrags) durchgelesen hast.



    Zitat

    Zudem, wie schaffe ich es denn nun, das eine Message kommt wenn Vehicle Health bei 400 ist ?


    Musst Dir überlegen wie Du möglichst geschickt und ressourcensparend überprüfen kannst ob ein Wagen Schaden genommen hat und dadurch die VehicleHealth unter 400 geraten ist.

    GameMode / Filterscript / Plugin Development via
    - PAWN / C/C++
    - Database (mySQL) & Filebased - Systems


    Webdevelopment / Interfaces Webapplications - SA:MP Server via
    - HTML & CSS
    - PHP, JavaScript, Ajax