Jump to content


Photo

Unpacking Dialogue Information Packet


    2 replies to this topic

    #1 Dunigs

    Dunigs

      Newbie

    • Members
    • Pip
    • 1 posts

      Posted 03 April 2016 - 10:31 PM

      Hi all,

       

      I am attempting to write an addon to simplify the WKR process, particularly during the campaign where kills can occur very fast so moving multiple characters between zones and restocking key items can be troublesome.

       

      I've gotten the KI restock and an HP warp system down without much difficulty and was hoping to simplify entry into the WKR with a open menu > escape menu = enter as opposed to having to click the required menu options to enter.

       

      I've gotten the info from dialogue choice to handle exchanging the KI for the buff, and the data to build the warp request packet on the fly to get you to where it would normally put you after. My problem is it seems incomplete because it skips the fade out/fade in cutscene and just automatically spits you out in the proper location. Based on the packet flow I assume these are in the dialogue information packet (goes Choice > Information > Warp Request > Information #2 > Reposition > Spawn >Choice, if I'm recalling correctly).

       

      So few questions:

      1) Am I correct in assuming the Information packet may contain the trigger for this fade in/out (or boat ride in Foret's case) cutscene?

       

      2) Is it worth trying to capture and replicate this packet in order to make the addon more "legitimate"? I'm not sure if this incomplete packet cycle with the warp request would be a potential red flag to SE or not and would like to avoid being banned. Continuing with this idea, how necessary would implementing the Reposition/Spawn packets be? Based on how Warp behaves it seems like I'd only need this to fix the position my character is facing upon entry, which I'd imagine is not necessary, but I may be completely wrong. I have the data for these.

       

      3) If it's something I should pursue, what's the best way to get the contents of the dialogue information packet? I'm largely unfamiliar with packing/unpacking and usually rely on the fields file to parse and inject packets. I have no problem entering/leaving as needed to see what it's doing, just not sure how to read the fields.

       

      Thanks in advanced for any assistance!



      #2 ibm2431

      ibm2431

        Newbie

      • Members
      • Pip
      • 3 posts

        Posted 12 April 2016 - 10:27 AM

        My general assumption for animations with warp requests is that the client itself plays the animation when you use its menus, then sends the outgoing packet during the animation. This is pretty apparent when you have Windower print outgoing packets while you use the Runic Portal in Whitegate. You select the option and the animation starts playing, but no packets are sent until the animation is done.  By sending the outgoing packet yourself, you're simply bypassing the built-in client animations.

         

        Although I would love confirmation on this assumption from a dev I trust more than myself.

         

        In either case, if you're concerned about red flags, I'd recommend you at least delay the warping packet for a bit after the KI/buff exchange to account for time during which the client "should" be animating.



        #3 Iryoku

        Iryoku

          Advanced Member

        • Windower Staff
        • 488 posts

          Posted 13 April 2016 - 07:31 AM

          The menus you see in game are essentially minimal cutscenes triggered by an event start packet. Depending on which options you choose, the cutscene can end by returning to normal gameplay, fading out, or even playing a more elaborate cutscene sequence; this is all handled client-side. Then the results of that cutscene are sent to the server as an event result packet. Since the event start packet is never received to open the menu cutscene, no fade out will play.

           

          Technically, this kind of interaction is quite easy to detect server-side, because (at least in principle) the server knows it never sent you the event start packet to open up that menu. Now, in reality, it seems that the server doesn't actually maintain any kind of state about cutscenes, so you're probably OK, but you can make this much harder to detect by simulating the NPC interaction necessary to get the server to send the event start packet. Then blocking and responding to that packet automatically with the response needed to trigger the warp. You still won't see the fade out, but that's only because you've blocked the packet that would have triggered it to avoid the menu.






          1 user(s) are reading this topic

          0 members, 1 guests, 0 anonymous users