Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma compile(Out, DBDRKNFIX.exe)
- #pragma compile(ProductName, DBDRKNFIX)
- #pragma compile(ProductVersion, 1.0)
- #pragma compile(FileVersion, 1.0)
- #pragma compile(FileDescription, Исправляет ошибку 300 в игре Dead By Daylight, путём установки статических IP адресов серверам игры)
- #pragma compile(LegalCopyright, 'Просто Ярик')
- #include <GUIConstantsEx.au3>
- #include <ColorConstants.au3>
- #include "GUIHyperLink.au3"
- #include <File.au3>
- #RequireAdmin
- $mainwindow=GUICreate("DBD RKN FIX", 400,80)
- GUISetState(@SW_SHOW, $mainwindow)
- $host1=GUICtrlCreateLabel("latest.live.dbd.bhvronline.com",8,5)
- $ip1=GUICtrlCreateLabel("255.255.255.255",180,5)
- $state1=GUICtrlCreateLabel(" ",280,5)
- $rotor1=GUICtrlCreateLabel(" |",335,5)
- $host2=GUICtrlCreateLabel("s3.amazonaws.com",8,25)
- $ip2=GUICtrlCreateLabel("255.255.255.255",180,25)
- $state2=GUICtrlCreateLabel(" ",280,25)
- $rotor2=GUICtrlCreateLabel(" |",335,25)
- $button=GUICtrlCreateButton("Записать в Hosts",5,45)
- GUICtrlSetState($button,$GUI_DISABLE)
- $nAutoItScript_Ru_HyperLink = _GUICtrlHyperLink_Create("Информация", 325, 60, 130, 15, 0x0000FF, 0x551A8B, _
- -1, 'http://steamcommunity.com/sharedfiles/filedetails/?id=1404565482', 'Руководство в Steam', $mainwindow)
- sleep(500)
- readhosts ( @WindowsDir & "\system32\drivers\etc\hosts")
- While 1
- if GUICtrlGetState ($button) = 144 Then
- if guictrlread($state1) = "OK!" and guictrlread($state2) = "OK!" Then
- GUICtrlSetState($button,$GUI_ENABLE)
- TCPShutdown()
- EndIf
- EndIf
- if guictrlread($state1) <> "OK!" Then checkstate(1)
- if guictrlread($state2) <> "OK!" Then checkstate(2)
- Switch GUIGetMsg()
- Case $GUI_EVENT_CLOSE
- ExitLoop
- Case $button
- writehosts ( @WindowsDir & "\system32\drivers\etc\hosts")
- ExitLoop
- EndSwitch
- WEnd
- func checkstate ($num)
- ;~ Оставлю как есть - слишком много возни для такого мелкого скрипта. Надеюсь не придётся масштабировать
- Switch $num
- Case 1
- $host=guictrlread($host1)
- Case 2
- $host=guictrlread($host2)
- EndSwitch
- TCPStartup()
- $IPaddress=TCPNameToIP($host)
- Switch $num
- Case 1
- GUICtrlSetData($ip1,$IPAddress)
- Case 2
- GUICtrlSetData($ip2,$IPAddress)
- EndSwitch
- ;~ йобанный хардкод когда разберусь, как проверять доступность сервера - уберу. Сейчас серваки не пингуются, не отдают html а просто говорят, что могут обрабатывать метод GET
- if $ipaddress="52.202.38.248" Then
- ;~ проверил реестр РКН вручную - из известных мне адресов, этот - единственный не в бане. Оставлю как есть, потому что для опроса этих серверов с закрытым API придётся творить какую-то безумную конструкцию, которую я вряд ли осилю.
- GUICtrlSetColor($state1,$color_green)
- GUICtrlSetData($state1,"OK!")
- GUICtrlSetData($rotor1, "")
- return 1
- EndIf
- if ping($IPAddress,1000) Then
- Switch $num
- Case 1
- GUICtrlSetColor($state1,$color_green)
- GUICtrlSetData($state1,"OK!")
- GUICtrlSetData($rotor1, "")
- Case 2
- GUICtrlSetColor($state2,$color_green)
- GUICtrlSetData($state2,"OK!")
- GUICtrlSetData($rotor2, "")
- EndSwitch
- return 1
- Else
- Switch $num
- Case 1
- GUICtrlSetColor($state1,$color_red)
- GUICtrlSetData($state1,"OFFLINE")
- Case 2
- GUICtrlSetColor($state2,$color_red)
- GUICtrlSetData($state2,"OFFLINE")
- EndSwitch
- refresh($num)
- return 0
- EndIf
- EndFunc
- func refresh ($num)
- Switch $num
- Case 1
- $rotor=guictrlread($rotor1)
- Case 2
- $rotor=guictrlread($rotor2)
- EndSwitch
- switch $rotor
- Case " |"
- $rotor="/"
- Case "/"
- $rotor="--"
- Case "--"
- $rotor="\"
- Case "\"
- $rotor=" |"
- EndSwitch
- Switch $num
- Case 1
- GUICtrlSetData($rotor1,$rotor)
- Case 2
- GUICtrlSetData($rotor2,$rotor)
- EndSwitch
- ;~ Это не обязательно и не знаю как будет работать, если сам днс сервер кэширует запросы. А ещё на это может ругаться антивирус, но пока - пусть будет
- Run(@ComSpec & " /c " & 'ipconfig /flushdns', "", @SW_HIDE)
- EndFunc
- func readhosts ($file)
- local $line1=0
- local $line2=0
- for $i=1 to _FileCountLines($file)
- ;~ добавь проверку на случай, если будет больше двух записей
- if stringinstr(filereadline($file,$i),guictrlread($host1)) then $line1=$i
- if stringinstr(filereadline($file,$i),guictrlread($host2)) then $line2=$i
- Next
- if $line1+$line2<>0 Then
- if msgbox(1,"","Обнаружены строки:" & @crlf & filereadline($file,$line1) & @crlf & filereadline($file,$line2) & @crlf & "При продолжении, они будут удалены")=2 Then
- Exit
- Else
- ;~ добавь проверку на содержимое удаляемой строки.
- _FileWritetoLine($file,$line2,"",1)
- _FileWritetoLine($file,$line1,"",1)
- EndIf
- EndIf
- EndFunc
- func writehosts ($file)
- if filewriteline($file, @CRLF) Then
- if filewriteline($file, guictrlread($ip1)& " " & guictrlread($host1)) Then
- If filewriteline($file, guictrlread($ip2)& " " & guictrlread($host2)) Then
- MsgBox ("","","Запись произведена. Можно запускать игру")
- Else
- MsgBox ("","","Ошибка записи. Попробуйте перезапустить скрипт с правами администратора")
- EndIf
- EndIf
- EndIf
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement