[Include] Actor Extensions

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

  • Rly?! Das hättest du mir auch früher sagen können, dass diese Funktion existiert :wacko:



    Is nun drinnen :P


    Was emit angeht hier das würde funktionieren


    new idx = funcidx("OnPlayerWeaponShot"),pointer;
    //new playerid = 10, weaponid = 20, hittype = 30, hitid = 20, Float:fX = 123.1, Float:fY = 123.1, Float:fZ = 173.1;
    #emit LCTRL 0x1
    #emit NEG
    #emit ADD.C 0x20
    #emit STOR.S.pri pointer
    #emit LREF.S.alt pointer
    #emit LCTRL 0x1
    #emit NEG
    #emit ADD
    #emit LOAD.S.alt idx
    #emit SHL.C.alt 0x3
    #emit ADD
    #emit STOR.S.pri pointer
    #emit LREF.S.pri pointer
    #emit STOR.S.pri pointer
    #emit PUSH.S fZ
    #emit PUSH.S fY
    #emit PUSH.S fX
    #emit PUSH.S hitid
    #emit PUSH.S hittype
    #emit PUSH.S weaponid
    #emit PUSH.S playerid
    #emit PUSH.C 0x8
    #emit LCTRL 0x6
    #emit ADD.C 0x1C
    #emit PUSH.pri
    #emit LOAD.S.pri pointer
    #emit SCTRL 0x6
    #emit STACK 0x10

  • IPrototypeI: Aber du musst vorher auch prüfen ob die Funktion implementiert ist(sollte sie eigentlich), ansonsten crasht der Server.


    if(idx != -1) :thumbup:

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

    Margarete Stokowski

  • da Kaliber meinte er kenne sich in der Materie nicht so gut aus .


    Ich habe gesagt, dass es des öftern crasht bzw nicht immer richtig aufgerufen wird...


    Genauso wie dein CMD-Prozessor...


    Es kommt da halt manchmal zu fehlern...


    Aus dem Grund benutze ich den nativen, aber dafür auch sicheren weg :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich habe gesagt, dass es des öftern crasht bzw nicht immer richtig aufgerufen wird...


    Es wird IMMER richtig aufgerufen, das Problem wie bereits gesagt, ist nunmal, das der Server crasht, wenn die Funktion nicht existiert.


    Das ist auch der Fehler in seinem Commandprozessor.
    Hier ist der Fehler nämlich nicht -> https://github.com/Reclusior/O…pe/include/cmdprocess.inc
    Dort kannst du auch die "richtige" Hookingmethode ohne CallLocalFunction sehen, mit dieser muss man die Callbacks nicht zwangsläufig hinzufügen, wie du wohl aus dem Code herauslesen kannst

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

    Margarete Stokowski


  • Das liegt an gewissen Plugins zum Beispiel beim JIT Compiler, sonst passiert das normal nicht.

  • Hier ist der Fehler nämlich nicht -> https://github.com/Reclusior/Open-Pawn/b…/cmdprocess.inc


    Das sieht ja schön optimiert aus, man kann auch strdel so besser schreiben:


    cmdtext[k+1] = '\0';


    Dann spart man sich die Funktion ;)


    Das liegt an gewissen Plugins zum Beispiel beim JIT Compiler, sonst passiert das normal nicht.


    Mag sein...


    Ist ja auch egal wir müssen uns hier jetzt nicht um ein paar ms streiten, ich habe verstanden was ihr mir sagen wolltet :rolleyes:


    IsActorInRangeOfPoint


    Ja...und jetzt? :huh:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • man kann auch strdel so besser schreiben:


    Man sollte aber wissen, was da getan wird.
    Ich will ja nicht den vorderen Teil, sondern den hinteren (die Parameter).
    Wieso sollte ich den Command als Parameter haben wollen ? :huh:


    Wenn du einen effektiveren Weg hast, um an den hinteren Teil des Strings zu kommen, dann immer her damit,
    oder stell nen pullrequest auf github :thumbup:

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

    Margarete Stokowski

  • Kannst du einfügen das der Actor schießen kann?


    Leider noch nicht.


    Man könnte zwar schieß animationen nachahmen, doch leider kein Objekt (bzw Waffe) ohne riesen Aufwand dem Actor geben.


    Müssen uns leider noch etwas gedulden :)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • @Homez:
    Die Actors sind auf keinen Fall ein Ersatz.
    Du kannst die Actors eben nur im Rahmen der Möglichkeiten einsetzen, die extra für diese Actors entwickelt wurden.
    Es können keine sonstigen Spielerfunktionen auf die Actors angewendet werden, wie etwa bei den NPC's. Demnach ist es zum Beispiel nicht möglich, den Actor mit Waffen schießen zu lassen, geschweige denn ihm überhaupt Waffen zu geben.


    Die Actors sind ein Feature von 0.3.7 und demnach nicht abwärtskompatibel.


    //E: Rechtschreibfehler

  • Ich möchte mich nicht drauf fixieren, einen Actor mit Waffen schießen zu lassen.
    Eher ob es Möglich ist, Abzufragen ob der Spieler in der Nähe eines Actors ist, also im Allgemeinen etwas mit dem Actor anstellen. (Text Label, Abfrage der Position, Skin setzten)

  • Eher ob es Möglich ist, Abzufragen ob der Spieler in der Nähe eines Actors ist,

    Möglich
    native GetActorPos(actorid, &Float:X, &Float:Y, &Float:Z);


    Text Label

    Nicht nativ möglich, wird auch schwer möglich sein, höchstens per OnPlayerUpdate() ständig über dem Actor platzieren, was aber sicher nicht unbelastend für den Server ist, ständig die Position upzudaten.


    Abfrage der Position

    möglich
    native GetActorPos(actorid, &Float:X, &Float:Y, &Float:Z);


    Alle Funktionen, die bis dato existieren, siehst du in der a_actor.inc, die mit dem 0.3.7 Server geliefert wird.
    Und halt die erweiterten Funktionen hier im Thread.

  • Nicht nativ möglich, wird auch schwer möglich sein


    Die 3DTexte müssen doch überhaupt nicht updaten.


    Die Actoren mögen sich zwar für die eingestreamten Spieler via Animation bewegen, aber für den Rest nicht.(GetActorPos gibt auch immer die position aus, an der er steht, das updated sich nicht durch die Animation)
    Deswegen ist es eigentlich quatsch, das man 3DTexte attachen o.ä. kann.


    Interessant wäre das höchtens für Objekte, um unnötige Rechnungen zu vermeiden.

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

    Margarete Stokowski

  • Und als Alternativlösung müsste man halt ein 3D TextLabel immer updaten, damit es an die Position des Actors geklatscht wird, anders geht es ja nicht.


    Bitte, lies meinen Beitrag vollständig.


    Actors, können sich nicht bewegen.
    Ja durch Animationen scheint es so, aber teste das mal mit jemanden bei dem der Actor gerade einstreamt, während er sich bewegt.
    oder Wenn er sich bewegt hat.


    GetActorPos gibt auch die Set Position des Actors aus, nicht da wo der Actor gerade (bei Spieler X) steht.

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

    Margarete Stokowski