Abfragen ob man schiest ? (Ohne OnPlayerKeyState bzw. KEY_FIRE!)

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Hi Leudes,
    also ich habe folgendes:
    Ich habe eine Tuning Garage gescriptet / gemappt und da kann man später tunen und sowas halt.
    Und es gibt einen Farbschrank, da drückt man enter, dann kommt Dialog, dann wählt man die Farbe aus(Rot,Gelb,Grün,Blau,Pink,Weiss,Schwarz).
    Dann wird "ResetPlayerWeapons(playerid);" ausgeführt und man bekommt eine Spraydose mit 50 Munition, damit man nicht auf 150 oder so kommt, wird jedes mal "ResetPlayerWeapons(playerid);" ausgeführt.
    ________________________________________________________
    Wenn man die jetzt hat und laut "Anweisung" zu einer Hebebühne geht und schiesen drückt, soll abgefragt werden:
    1. ist er an einer der Hehebühnen (Koords bestimme ich natürlich selbst^^)
    2. Was passiert wenn
    3. Was passiert wenn er nicht an einer Hehebühne ist.


    Alo eig. will ich nur eine Funktion, wie man abfragen kann, ob man schiest.
    Weil dann man in die luft sprint und KEY_FIRE drückt, wird die Spraydosen Munitiun 1. nicht weniger,
    2. Wird es trotz sprung ausgeführt das abfragen und 3. die Sprayanimation wird nicht ausgeführt.
    Vielleicht kann man das irgendwie mit einem Timer machen ? Der abfragt, ob die Munition (GetPlayerAmmo(playerid)) weniger wird ?
    Wenn ja, dann schiest er ?


    //EDIT Überschrift bearbeitet


    MfG
    MrS.

  • Man benutzername!
    Lies doch mal!

    Zitat

    Alo eig. will ich nur eine Funktion, wie man abfragen kann, ob man schiest.
    Weil dann man in die luft springt und KEY_FIRE drückt, wird die Spraydosen Munitiun 1. nicht weniger,
    2. Wird das mit dem Farbschange des Autos trotz sprung ausgeführt das abfragen und 3. die Sprayanimation wird nicht ausgeführt.


    MfG
    MrScripter

  • also du könntest ihn in der nähe des autos freezen lassen und ihn somit zwingen seine sprühdose leer zu sprühen und danach fragst ihn ab mit mit dem native GetPlayerAmmo
    wenn es die Munition kleiner als 1 ist das er wieder entfreezt wird.

  • if(newkeys == KEY_FIRE && oldkeys != KEY_JUMP)
    {
    if(IsPlayerInRangeOfPoint(playerid, 2.0, x,y,z))
    {
    if(GetPlayerWeapon(playerid) == 41)
    {
    //deine funktion dann
    }
    }
    }



    So vielleicht?



    Maddin is my Lord and Master :D
    Musel my one and only b0wm
    Bisafloah is the pokemon that pwns a lot of goddamn ponys.

  • du könntest ein checkpoint erstellen das er nur in dem checkpoint sprühen kann


    SetPlayerCheckpoint(playerid,Float:x,Float:y,Float:z,Float:size)


    und um zu überprüfen ob er drinne ist


    IsPlayerInCheckpoint(playerid)


    da brauchst du die abfrage garnicht ob er in der nähe vom auto ist du plazierst einfach den checkpoint am auto vllt lässt du das auto auch an einem bestimmten punkt nur parken



    xD hab nicht richtig lesen das von Ramion ist das was du genau willst


    //edit kleiner erklärung


    if(newkeys == KEY_FIRE && oldkeys != KEY_JUMP)


    oldkey bewirkt in dem fall das es nur geht wenn KEY_FIRE als erstes gedrückt wird nicht wenn man davor eine andere taste drückt


    Mehr Infos findest du natürlich auch im wiki


    http://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange

    Einmal editiert, zuletzt von IPrototypeI ()

  • Ramino!
    Das ist das selbe was benutzername sagte mein gott!
    ES IST FALSCH
    das habe ich deutslich in dem Beitrag oben beschrieben, LERN bitte LESEN.
    Und wieso sollte man springen, das war ein beispiel!


    @Der mit dem Checkpoint.
    Das wäre zu aufwendig :/


    MfG
    MrS.

  • "OnPlayerShootPlayer"


    es gibt ein include ist wohl ganz sinnvoll


    oder bei 0.3D "OnPlayerTakeDemage"

  • Huch da wurd ich ja n bisschen durcheinander gebracht. Ich weiß ja wie OnPlayerKeyStateChange funktioniert. Halt nur grad nicht so ausm Kopf. Und da dachte ich die Weise der Abfragen wären richtig. Naja, wie schon gesagt das mit dem Checkpoint wär ne Altnernative auch wenns etwas länger dauert.


    //E:


    Reloadet!


    Ich kenn den Include zwar nicht aber logisch gesehen wird der nur ausgeführt wenn ein Spieler beschossen wird. Und das ist ja hier nicht der Fall. Hier wird sozusagen das Auto beschossen.


    OnPlayerTakeDamage im 0.3d wird auch nur ausgeführt wenn ein Spieler Schaden abbekommt.



    Maddin is my Lord and Master :D
    Musel my one and only b0wm
    Bisafloah is the pokemon that pwns a lot of goddamn ponys.

  • OnPlayerShootPlayer ich mit leider nicht die natives dazu angeschaut aber ich vermute mal das ist die gleiche abfrage wie bei newkeys == KEY_FIRE
    ist nur sinnvoll beim abschießen von anderen spielern obwohl es alles abfrägt was du genau willst


    OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid)

  • Theoretisch könnte man in das Auto einen Bot setzen und dann das per OnPlayerGiveDamage abfragen.


    Denn OnPlayerGiveDamage wird im gegensatz zu OnPlayerTakeDamage ausgeführt wenn auf dem Spielerscreen der Spieler Schaden nimmt.


    Wiki:http://wiki.sa-mp.com/wiki/OnPlayerGiveDamage

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Okay^^
    Ich habe nur mich aufgeregt, weil benutzername nicht richtig gelesen hat, und danach direkt einer mit dem gleichen wie benutzername hat -.-
    Das gleiche und es falsch ist, deswegen rege ich mich auf, weil die beiden einfach nicht lesen können -.-


    Also B2T:
    Ich will es nicht selbst machen, weil ich es nicht kann.
    Und das mit Dem Checkpoint wäre irgendwie doof.
    Es soll halt rl sein, wenn man schiest, wird ein timer gestartet, wenn 3 sekunden vorbei sind und man dauerhaft geschossen/gesprüht hat wird sich die Autofarbe ändern.
    Wenn man 2 sekunden durchdrückt und loslässt, wird der Timer gekilt.
    Aber wenn man im rennen dann schiesen drückt dann wird der Timer trotzdem gestartetm obwohl der spieler garnicht sprüht, daher ist das doof.
    Deswegen suche ich hier eine Lösung :)


    MfG
    MrS.


    Habe es anders gemacht, mit OnPlayerKeyStateChange und KEY_FIRE.
    Wenn er die steh Animation macht und an einer der Hehebühnen ist,
    dann wird dass erst gemacht und der timer gesetzt.
    Wenn er los lässt wird der timer gekillt.


    Jetzt habe ich noch folgendes Problem:
    Abfragen ob ein Fahrzeug an einer bestimmten stelle ist ?


    MfG
    MrS.

    2 Mal editiert, zuletzt von MrScripter ()