Jump to content
Sign in to follow this  
unsullied

FFXIV: ARR Duty Notifier Question

Recommended Posts

unsullied

Greetings,
 
I need some input here, speculation is fine but I would prefer input with some links to supporting documenation if you have it...
 
The 'Duty Finder' (party finder for dungeons, etc.) in Final Fantasy: A Realm Reborn is terribly implemented at this point.  For various reasons (not gonna bore you with details) Tanks and Healers are in very short supply for the Duty Finder, so DPS classes end up waiting for more than an hour to get in a party sometimes.  I get bored waiting (ADHD kicks in) and I end up watching youtube or hulu on my second screen and I often miss they Duty FInder queue when the dialog pops because I am not paying attention.
 
So I wrote a script that searches a selected portion of the screen for a color present in the duty finder dialog, where I expect the dialog to be displayed, and when the dialog is displayed the script plays a .wav file to alert me the queue has popped.
 
My quandry is this:  Is this tecnically cheating?  It is not automating game play, just notifying me when a dialog is displayed... so my interpretation is that it's not a 'bot', because it isn't unattended game play.  Thoughts?  Anyone have any links to information that would clarify this one way or another?
 
I've attached my code below for review..
 
Thanks in advance for any input!
 
Cheers

#Region
#AutoIt3Wrapper_outfile=FFXIV_ARR_Duty_Notifier.exe
#AutoIt3Wrapper_Compression=4
#EndRegion

#Include <Misc.au3>

opt("SendKeyDelay",50)
HotKeySet("{pause}", "Quit")
Global $searchL, $searchT, $searchR, $searchB, $color, $timer, $queueTime, $searchPoint
$prog = "FFXIV: ARR Duty Notifier"
$winHandle = WinGetHandle("FINAL FANTASY XIV: A Realm Reborn")

Main()

Func Main()
    $ptColor = 'E0E0D6' ;color of duty finder dialog background
    ToolTip("Making FFXIV: ARR window Active",0,0,"",2)
    If WinActive($winHandle) = 0 Then WinActivate($winHandle)
    Sleep(2000)
    
    $dll = DllOpen("user32.dll") ; User32.ddl speeds up _IsPressed
    
    ; Select the lower right of the search area
    ToolTip("Click in the top left corner of the search area",0,0,"",2)
    While -1
        If WinActive($winHandle) = 0 Then WinActivate($winHandle) ; Make sure window is active while selecting position
        If _IsPressed("01",$dll) Then ExitLoop ; Exit loop when user left clicks
    WEnd
    $mouse = MouseGetPos()
    $searchL = $mouse[0]
    $searchT = $mouse[1]
    
    Sleep(500)

    ; Select the lower right of the search area
    ToolTip("Click in the bottom right corner of the search area",0,0,"",2)
    While -1
        If WinActive($winHandle) = 0 Then WinActivate($winHandle) ; Make sure window is active while selecting position
        If _IsPressed("01",$dll) Then ExitLoop ; Exit loop when user left clicks
    WEnd
    $mouse = MouseGetPos()
    $searchR = $mouse[0]
    $searchB = $mouse[1]
   
    DllClose($dll) ; Close DLL
    
    ToolTip("",0,0,"",2)
    Sleep(1000)
    $color = "0x" & $ptColor
    ToolTip("Initializing...",0,0,"",2)
    sleep(500)
    ToolTip("",0,0,"",2)
   
   $timer = TimerInit() 
   While -1
      $timerDiff = TimerDiff($timer)
      $queueTime = Floor($timerDiff/3600000) & " hours, " & _
         Floor(Mod($timerDiff,3600000)/60000) & " minutes, " & _
         Floor(Mod($timerDiff,60000)/1000) & " seconds."
      ToolTip("Waiting for Duty.. Time in queue = " & $queueTime,0,0,"",2)
      $searchPoint = PixelSearch($searchL,$searchT,$searchR,$searchB,"0x" & Hex($color,6),10,1) ; Look for specific color in the selected area
      If @error <> 1 Then ; When color is found, play notification sound and bail out of the loop
         SoundSetWaveVolume(100)
         SoundPlay("FFXIV_ARR_Duty_Notifier_Success.wav", 1)
         ExitLoop 
      EndIf
   Wend
   While -1 ;loop until pause button is pressed so user can see timer before script exits
   Wend
EndFunc

; Quit the script when the user presses {pause}
Func Quit()
    Exit
EndFunc

Share this post


Link to post
Share on other sites
TheSaint

Welcome to the forum.

You appear to have missed some of the rules on your way in.

Please check the section on Game Automation.

We do not assist with that at all here ... no exceptions whatsoever.

We look forward to other queries from you here, not game related or to this post/topic.

A MOD will be along shortly to lock this topic.

Cheers!

EDIT

Just now, read your whole post. Anything to do with Game interaction, is classed as Game automation, sorry!

While you might be a genuine good person, the same cannot be said for all who see any code, help, etc.

So over the years here, the powers that be have found it best not to allow any exceptions at all.

Edited by TheSaint
  • Like 1

AutoIt.4.Life Clubrooms - Life is like a Donut (secret key)

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Share this post


Link to post
Share on other sites
unsullied

This does not do any game automation whatsoever, that's my point.  all it does it notify me when a dialog is displayed based on the colors displayed on the screen. it does not click anything, it does not do anything with the game, which is why I think it's a 'grey' area, thus my point of posting.

I mean, when it notifies me the color is found (i.e. the dialog has been displayed), I am still required to manually click the button on the dialog, otherwise nothing happens.  No automated interaction is performed.  No game interaction is performed with the script at all.

The (AutoIt) rules that I have found that might pertain to this situation are:

  • Automation of software/sites contrary to their EULA (see Reporting bullet below).
  • Launching, automation or script interaction with games or game servers, regardless of the game.

This script does not violate the EULA for FFXIV: ARR, I've checked, and I submitted a support ticket asking if 'attended automation with no game interaction' was a violation and they replied it was not.

And this script does not 'launch, automate or interact' with the game in any fashion.  I still have to be sitting at the computer, and I have to click the button to join the party and play the game.  So... it appears to be ok from the EULA perspective, the question is more of an ethical one and one for the AutoIt developer community...

Edited by unsullied

Share this post


Link to post
Share on other sites
TheSaint

Anything related to elements that interact with a Game, be it Windows, Dialogs, Colors, etc is still interacting with the Game.

We have had many discussions over the years about all this, and now just have a blanket rule.

It's never based on your intent or how similar it may be to regular AutoIt use.

Once a Game is mentioned or insinuated, that topic is locked and any related topics too.

  • Like 1

AutoIt.4.Life Clubrooms - Life is like a Donut (secret key)

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Share this post


Link to post
Share on other sites
unsullied

Interesting. 

So is it a liability issue?  I mean is AutoIt potentially liable if people are posting game automation topics?

If I didn't mention the name of the game, would it be a valid topic for discussion?

Thanks for the info, guess I misinterpreted the rules.

Share this post


Link to post
Share on other sites
TheSaint

AutoIt has a reputation to uphold, and issues with Anti-Virus companies, Game/Program manufacturers and Website controllers, etc can, have and do cause problems.

As to your question, the key is in the word I said - insinuated.

P.S. That also means, don't (like many fools in the past) just change your topic to exclude references that seem Game related. It's essentially too late for that topic and any bearing resemblance.

P.S.S. The MODS must be busy elsewhere, being Sunday I guess, as you don't usually get to have this discussion before a topic is closed. Once you qualify for the Chat section, then you can search and find plenty of topics on Game Automation there.

Edited by TheSaint
  • Like 1

AutoIt.4.Life Clubrooms - Life is like a Donut (secret key)

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Share this post


Link to post
Share on other sites
unsullied

wow that really tells me nothing. thanks, i guess.

but i suppose it's about on par with the rest of the useless information you've provided.

bravo.

now i see why you get flamed all the time on your posts, 'TheSaint'

ROFLMAO

  • Like 1

Share this post


Link to post
Share on other sites
TheSaint

Well, I guess all my time being civil to you and giving you an explanation, where most here wouldn't have bothered, has paid off, as we now know the cut of your jib. Have a good life.  ;)  :*  >_<

  • Like 1

AutoIt.4.Life Clubrooms - Life is like a Donut (secret key)

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Share this post


Link to post
Share on other sites
Melba23

unsullied,

What you want to do is "game interaction" in my opinion - which is the one that counts. ;)

And any flex I might have been prepared to show disappeared the moment you started attacking a forum MVP. So despite your name, your reputation here is now firmly "sullied" and this thread is locked. :naughty:

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×