Herausfinden ob Objekt angehittet wurde

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,
    Ich habe eine "Waffe".
    WEAPON_CHAINSAW


    Ich will abfragen, ob ich ein Objekt damit angehittet habe. Habe ich das Objekt paar mal angehittet soll es verschwinden.
    Ich finde nichts dazu, gibt es da etwas was funktioniert?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

    • Offizieller Beitrag

    Eher nicht



    Zitat

    Only bullet weapons are supported.

    Ich würde eher zu [wiki]OnPlayerGiveDamage[/wiki] tendieren


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • Alle 3 Funktionen kann ich nicht logisch verwenden, aber ich hab oft gesehen, dass dies möglich ist.
    Ist es möglich abzufragen, wenn der Spieler "zuschlägt" mit einer Kettensägen und inRangeOfPoint ist von einem Objekt, dass dann etwas passiert?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Ja, mit dem Baum wollte ich das austesten und der Kettensäge.
    Anhitten, zuschlagen ist ja das Selbe.


    Wenn ich das Objekt (Baum) mit der Kettensäge schaden zufüge, soll es verschwinden.


    Ich hätte ja wie zuvor gesagt es so gemacht, das ich beim zuschlagen abfrage ob der Spieler in RangeOfPoint von dem Baum ist, leider finde ich dazu auch nichts.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Du könntest mit Areas arbeiten und denn prüfen ob eine bestimmte Animation ausgeführt wurde und so den Hit zählen.

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

    Margarete Stokowski

  • Das wäre eine Lösung, ich glaube aber nicht die Richtige Lösung.


    Gibt es die Möglichkeit, wenn ich mit einer Kettensäge zuschlage z.B eine Nachricht erscheint als Beispiel? Das muss doch möglich sein.
    Ich glaube wenn ich jetzt mit 50Areas arbeite ist es nicht so schlau

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Das geht mit KeyStateChange, KeyFire und GetPlayerWeapon.


    Du kommst aber nicht darum irgendwie zu prüfen ob du in der Nähe eines Baumes bist.
    mMn sinnvoll wäre Streamer Areas und dann über das Callback gehen das der Spieler in eine Baum Area gegangen ist.


    So würdest du dir eine Schleifen sparen um zu checken ob der Spieler in der Nähe eines Baumes ist.

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

    Margarete Stokowski

  • Die Frage ist jetzt:
    Was ist sinnvoller, eine Schleife die dann läuft, wenn er wirklich zuschlägt und wirklich die Säge in der Hand hat oder eine Area die durchgehend prüft?


    //Edit
    Ich mache es mit den Areas, scheint im Endeffekt besser zu sein.


    C
    if(GetPlayerAnimationIndex(playerid) == 17)
        	{
        	    SCM(playerid,-1,"X1");
        	}

    Warum kann ich so nicht den Index abfragen? (In der Area)
    Es ist der selbe Index aber er gibt mir nicht die Testnachricht raus

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

    Einmal editiert, zuletzt von Jameso ()

  • //Edit


    C
    public OnPlayerEnterDynamicArea(playerid, areaid)
    {

    Hier prüft er das ganze nur, wenn ich in die Area rein gehe. Wie frage ich die Sachen durchgängig ab?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

    Einmal editiert, zuletzt von Jameso ()

  • Wenn der Spieler die Area betritt legst du nur fest bei welchem Baum er steht.


    Danach schaust du mit OnPlayerKeyStateChange, ob der Spieler mit einer Chainsaw angreift.

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

    Margarete Stokowski

  • Habe ich alles, danke!
    Ich verzweifel gerade, ich weiß nicht wie ich herausfinde ob er das Objekt anschaut?
    Das scheint kompliziert zu sein.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Wenn du die Coordinaten von [wiki]GetPlayerCameraPos[/wiki] und [wiki]GetPlayerCameraFrontVector[/wiki] zusammen rechnest hast bekommst du den Punkt wo der Spieler hinzielt / hinguckt.


    Damit kannst du prüfen ob sich das/ein Objekt in der Nähe des Punktes befindet

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

    Margarete Stokowski

  • Die beste Lösung wäre meiner Meinung nach, alle Bäume in ein Enum zu speichern.
    Anschließend mit IsPlayerInRangeOfPoint das Enum durchgehen, sobald er eine Chainsaw in der Hand hat und KEY_FIRE nutzt.


    Sollte simpel sein.