Code:
; *********************************************************
;
; Author: rootm0s
; URL: http://github.com/rootm0s
; Description: Sends JUMP to Neverwinter to interrupt the
; AFK-timer they have.
;
; *********************************************************
; Run as Admin, fixes UAC issues sometimes. Wizard YAY!
; *********************************************************
if not A_IsAdmin
{
DllCall("shell32\ShellExecuteA", uint, 0, str, "RunAs", str, A_AhkPath
, str, """" . A_ScriptFullPath . """", str, A_WorkingDir, int, 1)
ExitApp
}
#SingleInstance force ; Only one instance
#InstallKeybdHook ; InstallKeybdHook.
; *********************************************************
; Create our banner from PNGdata stores inside script if
; the png is not found in script directory
; *********************************************************
IfNotExist, %A_ScriptDir%\banner_trans.png
{
GoSub, LoadPNGDATA
Bytes := Base64Dec( BIN, PNGDATA )
VarZ_Save( BIN, Bytes, "banner_trans.png" )
VarSetcapacity( PNGDATA, 0 )
}
; *********************************************************
; GUI
; *********************************************************
Gui , p0nyGui:Color,FFFFFF
Gui , p0nyGui:+AlwaysOnTop
Gui , p0nyGui:Font,S8 CDefault, Arial
Gui , p0nyGui:Add,ListView, x12 y150 w310 h210 vResponseLog, Log
Gui , p0nyGui:Add,Edit, x12 y90 w130 h20 vGuiTimeInputBox,
Gui , p0nyGui:Add,Button, x152 y90 w50 h20 gSubmit, Submit
Gui , p0nyGui:Add,Button, x212 y90 w50 h20 gStart, Start
Gui , p0nyGui:Add,Button, x272 y90 w50 h20 gStop, Stop
Gui , p0nyGui:Add,Button, x272 y115 w50 h20 gClearDebugView, Clear
Gui , p0nyGui:Add,Picture, x55 y2, banner_trans.png
Gui , p0nyGui:Font,S8 CDefault Bold, Arial
Gui , p0nyGui:Add,Text, x12 y70 h20 , Jump time in milisec:
Gui , p0nyGui:Add,Text, x12 y130 w210 h20 , Debug
Gui , p0nyGui:Show,x364 y148 h379 w338 Center, p0ny
; *********************************************************
; Check if time is submitted by user else prompt guide
; *********************************************************
ReadFromReg("Timer")
if (Errorlevel=1) {
MsgBoxFunc("Is this the first time you run p0ny?`n`n"
. "You need to submit a jump-time before you press start! "
. "This time will be saved into the computers registry so we can easly grab it again next time."
,"p0ny","0x1040L")
} else {
LV_Add("Message","[+] Im ready! Press Start to enable.")
LV_ModifyCol()
}
Return
; *********************************************************
; Set Time interval, import our value into reg so
; we can easily grab it again. See function in the end
; *********************************************************
Submit:
GuiControlGet ,GuiTimeInputBox,
If GuiTimeInputBox contains q,w,e,r,t,y,u,i,o,p,å,a,s,d,f,g,h
,j,k,l,l,ö,ä,z,x,c,v,b,n,m,Q,W,E
,R,T,Y,U,I,O,P,Å,A,S,D,F,G,H,J,K
,L,Ö,Ä,Z,X,C,V,B,N,M
{
LV_Add("Message","[-] Error adding time interval")
LV_ModifyCol()
} else {
; Writes our time to registry if VAR didn't contain any letters, only lower-case.
WriteToReg("Timer",GuiTimeInputBox)
if (Errorlevel=0) {
LV_Add("Message","[+] Added new time to the interval")
LV_ModifyCol()
} else {
LV_Add("Message","[-] Error adding time interval")
LV_ModifyCol()
}
}
Return
; *********************************************************
; Our timer and jump function
;
; SPACE down
; dllcall("keybd_event", int, 32, int, 57, int, 0, int, 0)
; SPACE up
; dllcall("keybd_event", int, 32, int, 57, int, 2, int, 0)
; *********************************************************
Start:
LV_Add("Message","[+] Enabled, will start in a few seconds")
LV_ModifyCol()
Sleep 10000 ; Give the user some time to change to
; change to neverwinter window.
IfWinActive ,Neverwinter
{
LV_Add("Message","[+] Attached to GameClient window")
LV_ModifyCol()
Sleep 4000
SetTimer ,JumpTimer,30000 ;Check every 30 seconds
JumpTimer:
if (A_TimeIdle >= %GetTimeFromReg%)
Send {space down ; Jump (down)
Sleep 4000 ; Slow it down a bit. Game seems to bug out sometimes.
Send {space up} ; Jump (release)
LV_Add("Message","[+] Interrupted GameClient")
LV_ModifyCol()
Return
} else {
SetTimer , JumpTimer, Off
LV_Add("Message","[-] Could not attach GameClient window")
LV_ModifyCol()
Return
}
Return
; *********************************************************
; Stop the Anti-AFK timer.
; *********************************************************
Stop:
SetTimer , JumpTimer, Off
LV_Add("Message","[+] Disabled p0ny")
LV_ModifyCol()
Return
; *********************************************************
; Clear debug listview
; *********************************************************
ClearDebugView:
LV_Delete() ; Clear listview
LV_ModifyCol()
Return
; *********************************************************
; Help Window using MsgBoxFunc()
; *********************************************************
F1::
MsgBoxFunc("Creds:`trootm0s`nURL:`thttps://github.com/rootm0s/Neverwinter-ANTI-AFK-script"
. "`nUpdates:`tDownload new source code from Github","p0ny","0x1040L")
Return
; *********************************************************
; When GUI is closed, ExitApp
; *********************************************************
GuiClose:
ExitApp
Return
; *********************************************************
; Function to read value in users registry, can be
; reused for future purpose.
;
; ReadFromReg("Timer") ; Timer is the key we want to
; get value of.
;
; WriteToReg("Timer",5000) ; Timer is the key we want
; to get value of.
; *********************************************************
ReadFromReg(GetRegValue) {
RegRead ,GetTimeFromReg,HKEY_CURRENT_USER,SOFTWARE\p0ny,%GetRegValue%
}
WriteToReg(arg1,arg2) {
RegWrite ,REG_SZ,HKEY_CURRENT_USER,SOFTWARE\p0ny,%arg1%,%arg2%
}
; *********************************************************
; Msgbox using Dllcall, adjustments are easy now.
; Can we reused later on to tweak popups in a fanzy
; way.
;
; MsgBoxFunc("The Message","Title Goes here","0x1040L")
; *********************************************************
MsgBoxFunc(Message,MessageBoxTitle,Icon) {
DllCall("MessageBox","Uint",0,"Str"
,Message,"Str" ; The message Var
,MessageBoxTitle,"Uint" ; Title Var
,Icon) ; Icon Var (in Hex)
}
; *********************************************************
; Our banner_trans.png picture stored inside the script
; *********************************************************
Base64dec( ByRef OutData, ByRef InData ) {
DllCall( "Crypt32.dll\CryptStringToBinary" ( A_IsUnicode ? "W" : "A" ), UInt,&InData
, UInt,StrLen(InData), UInt,1, UInt,0, UIntP,Bytes, Int,0, Int,0, "CDECL Int" )
VarSetCapacity( OutData, Req := Bytes * ( A_IsUnicode ? 2 : 1 ) )
DllCall( "Crypt32.dll\CryptStringToBinary" ( A_IsUnicode ? "W" : "A" ), UInt,&InData
, UInt,StrLen(InData), UInt,1, Str,OutData, UIntP,Req, Int,0, Int,0, "CDECL Int" )
Return Bytes
}
VarZ_Save( ByRef Data, DataSize, TrgFile ) {
hFile := DllCall( "_lcreat", ( A_IsUnicode ? "AStr" : "Str" ),TrgFile, UInt,0 )
IfLess, hFile, 1, Return "", ErrorLevel := 1
nBytes := DllCall( "_lwrite", UInt,hFile, UInt,&Data, UInt,DataSize, UInt )
DllCall( "_lclose", UInt,hFile )
Return nBytes
}
LoadPNGDATA:
PNGData=
(
iVBORw0KGgoAAAANSUhEUgAAAOMAAABHCAMAAADC3QCGAAAC2VBMVEUAAACHBQCP
FwyOCACRCwGlIQafHgSUDwKiGgawOg6aEwOkJAWcGQSqIAX18+urLAmfGQTuOgi4
UBTv59ff4OBaUCy5Kge0OgusIwbXGwvESAu/XQ/7/PaoKQn06uDy8+7qzLfCSQz7
/PjhGg3DHQqYIAzPq5TDLwjGXg5IORW8PQuOg23GMAneQQyyJge4QAnYxri0Sw6o
GwzJSzvWUAvQVhDw8O/rVxHrZg/lWRC5KQfOdQzDbjK0KQbgLQdrPS+BTDrbKAfQ
NwraXwmPb13msp3PXwe9Hwafe2jVbBfNRQrSl4XKLAbIQAzJWg3fwK/m08CuLgjt
5tuPi3zPQyziPxfoeA/hmjrHIQm+MwnYlRTLOg22mobFqJfIopK8Xhx8GxX8lQe7
OivDdRbGKxr0hxnFPQvDXEjwyk7rpRK0dWDmulnhhXHipx2yhnHbhDTSgHDEi3bP
iijfrp7IaSGXkH/+/vz9qTBxIxPzbwn1oDT212S+MQ7rmTPcpWBwaUTIraL94GH8
sw+fQQ/HXUeqORKqUjfFTw2WYUi+ZFTdbBzWPQfmnovXmDnQiFCVg236wBqZKh/n
hgvdVi6ecFnlix+GX1DqeSDfSRDVbweoiXeoGwTLgTC4JgSsNir3cyXPixjbW0nt
l1KjeDjCc1rswirNZFLjfxzafRTUfiX9tEr94T/644nmbV7uvUavVkrgeBLiawbk
kBGrJQmDXSUrIRGWTz7x1He+g2vrtpBZQRzJnUrx2aKBGgpmSyATDwcoBQYGAwWb
DgdoCAaPEgi4KRezEwvpUwZzBAaoDgWGDQT8hAp+DgqoLQi0IwjTLB+KIxrXTwvL
GQvBDAX6YgjfRwVFAwSGFRXYOBH8Tw7NQAu1PAsZAgP+zUL9nxlYBgR2MSaIKwTt
RCY7BAX4ijXzYjTWXxJ0Ew1PDgrVLQf+6m1ZJhnpLQ9lFg6ociSCQBz1Ggb//YP+
vXEkIg0uAAAAwHRSTlMABRYKD0E0HC5aITomUzhNKvttZAaPjmRc/pmAKEhGI5iK
G/7+/bWblJN/b/7id3ZzYv78xrMN+/vntKSMbPv69+3c1NK1qObKtrSyrKmjiYJl
VDX9+u/Ozsm9vLijknf+/v38+/r68e3p3NrT0s7JxsKkm5pNFP7+/vf15uPAjGv+
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
)
Return