Jump to content


Photo

Gearswap Bug


    3 replies to this topic

    #1 Lightvision

    Lightvision

      Newbie

    • Members
    • Pip
    • 5 posts

      Posted 05 September 2014 - 12:54 PM

      Hi,

       

      while i was writing and testing my Gearswap script i found an unusual bug allowing you to perform weaponskills whilst your not engaged. i have checked this in game while not running windower and with windower.

       

      I did suspect another addon that was causing this to heppen but i found out that its gearswap causing it

       

      Steps to reproduce

       

      1. Agro/pull mob and be facing it
      2. Do not engage
      3. Get enough TP to weaponskill
      4. Do not engage and Use a weaponskill (i done via macro and typing)
      5. Watch your character weapon skill whilst not being "Engaged"

       

      i have tested this under the following conditions

       

      1. Without Windower, Vanila FFXI
        • Result: you can only use that command during battle
      2. With Windower, Gearswap unloaded
        • Result: you can only use that command during battle
      3. With Windower, Gearswap Loaded, My own LUA Loaded
        • Result: Weapon Skill Executes
      4. With Windower, Gearswap Loaded, Blank LUA loaded
        • Result: Weapon Skill Executes
      5. With Windower, Gearswap Loaded, My Debug LUA loaded
        • Result: Weapon Skill Executes

      My Debug LUA file just contains add_to_chat commands so i can see what stuff is doing, names etc. without having to mess up my current file i am making. only reason why i am mentioning this is because Gearswap is causing you to do something that you should not be able to so. i have checked this mutiple times and there is no way that its automatically making you engage > WS > disengage. i added 

       

      function status_change(new,old)
      	add_to_chat(207,"Player Status: "..player.status)
      end
      

      so that i could see if it would change status to engaged and it does not. if it was auto engaging my character  > WSing and disengaging then i should have seen msg's in the chat

       

      Gearswap is doing something wrong here that it should not be



      #2 Arcon

      Arcon

        Advanced Member

      • Windower Staff
      • 1189 posts
      • LocationMunich, Germany

      Posted 05 September 2014 - 06:48 PM

      This is known, GS has always been doing that. Apparently there are no plans to fix this, as it's not a major unfair benefit for anyone, since you'll usually be engaged to the mob you're fighting anyway. And even if not, just engaging and then WSing doesn't really take significant effort either.

       

      The reason that this works is simply that SE's servers do not verify if you're engaged. That check is done entirely client-side in POL. However, since GS injects packets directly without consulting POL itself first, the check is never performed and the WS goes through. If you're paranoid about them detecting it it's easy to add a check for it yourself.



      #3 Wildman

      Wildman

        Advanced Member

      • Members
      • PipPipPip
      • 72 posts

        Posted 05 September 2014 - 08:44 PM

        if player.status ~= 'Engaged' then 
                                    cancel_spell()                            
                                    return
        end
        

        If your really worried about you can put some code similar to this in your function you use for weaponskilling. Only job i seen that really benefits from this is range type job like ranger to where you can run around and never engage but WS the mob. Just don't do it in front of people you don't know :P

         



        #4 sdahlka

        sdahlka

          Advanced Member

        • Members
        • PipPipPip
        • 324 posts

          Posted 05 September 2014 - 09:14 PM

          that wont let you use any spells or abilitys when not in battle

          so i suggest to stop weaponskill's when not in battle use:

          if player.status ~= 'Engaged' and spell.type == 'WeaponSkill' then
             cancel_spell() 
             return
          end
           

           






          1 user(s) are reading this topic

          0 members, 1 guests, 0 anonymous users