ich machs kurz. viele werden von euch das spiel worms kennen. es basiert von der physik her auf der wurfparabel und dem stokeschen satz. (=flugbahn in abhängigkeit von wind)
ich habe also x,y koordinaten der spieler ermittelt und aufgrund der entfernung von spieler 1 zu spieler 2 unter winkel 45° ausgerechnet wie stark man schießen muss. was mir in der formel fehlt ist der gegenwind bzw wind mit dem das geschoss beschleunigt wird und ich habe keine ahnung wie ich das hinkriegen kann.
es handelt sich um das facebookspiel ddtank.
ihr könnt gerne auch den source leechen weil da paar nette sachen drin sind, aber wäre auch nett wenn mir da wer helfen könnte.
die momentane formel sieht so aus: Vo=Sqrt(g*(x*x)/((2*cos(45)*(sin(45)*x-cos(45)*y)))
ich muss da irgendwie wind reinkriegen. kann mir wer vll noch sagen wie ich die erdanziehung ermitteln könnte im spiel? momentan verwende ich einen wert den ich nach gefühl gewählt habe.
hier mal der source für alle leecher&helfer
Code:
#NoTrayIcon
#include <Misc.au3>
#include <String.au3>
#include <Array.au3>
#include <GUIConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <WinHTTP.au3>
Global $aLink,$i=25, $Winpos
Opt("WinTitleMatchMode", 3)
$width = 1000
$height = 700
HotKeySet("x", "self")
HotKeySet("{esc}", "ende")
HotKeySet("<", "save")
HotKeySet("y", "wurfweite")
$mail2 = InputBox("FB Login", "Enter your email.", "")
$pass2 = InputBox("FB Login", "Enter your password.", "", "*")
_getFlashFile($mail2,$pass2)
If IsArray($aLink) = True Then
$movie ="http://s1.ddt.facebookmmo.com/" & $aLink[0]
$filey = FileOpen("pagelink.txt", 1)
FileWrite($filey,$movie)
GUICreate("DDTank", $width, $height, (@DesktopWidth/2)-200, (@DesktopHeight/2)-200)
GUISetBkColor(0x000000)
$flash = ObjCreate("ShockwaveFlash.ShockwaveFlash.1")
GUICtrlCreateObj($flash, 0, 0, 1000, 600)
$Label1 = GUICtrlCreateLabel("Choosen Power:", 16, 648, 240, 41)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label3 = GUICtrlCreateLabel("PO", 256, 648, 50, 41)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$Label4 = GUICtrlCreateLabel("Recommended Power:", 320, 648, 327, 41)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label5 = GUICtrlCreateLabel("NA", 648, 648, 51, 41)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$Label6 = GUICtrlCreateLabel("DDT Buddy v1.0", 904, 672, 84, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
Else
MsgBox(48, "Achtung!", "Login nicht erfolgreich, entweder ist das Password falsch oder DDTank ist noch nicht als App hinzugefügt!")
EndIf
With $flash
.Movie =$movie
.ScaleMode = 0;0 showall, 1 noborder, 2 exactFit, 3 noscale
.bgcolor = "#000000"
.Loop = True
.wmode = "Opaque"
EndWith
GUISetState()
While 1
if _IsPressed ("6B") then
Sleep (100)
$i += 1
GUICtrlSetData($label3,$i)
EndIf
if _IsPressed ("6D") Then
Sleep (100)
$i -= 1
GUICtrlSetData($Label3, $i)
EndIf
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _getFlashFile($sEmail,$sPasswort)
$hOpen = _WinHttpOpen("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5")
$hConnect = _WinHttpConnect($hOpen, "www.facebook.com")
$sHTML = _WinHTTPRequest($hConnect, '/login.php?api_key=42495f32cc7f1f6e6fe6102600c721a6&v=1.0&next=http%3A%2F%2Fddt.facebookmmo.com%2Fs1.php&req_perms=publish_stream%2Cemail')
$aLSD = StringRegExp($sHTML, '"lsd" value="(.+?)"', 3)
$sHTML = _WinHTTPRequest($hConnect, '/login.php?login_attempt=1', 'charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&lsd=' & $aLSD[0] & '&next=http%3A%2F%2Fddt.facebookmmo.com%2Fs1.php&api_key=42495f32cc7f1f6e6fe6102600c721a6&return_session=0&req_perms=publish_stream%2Cemail&legacy_return=1&display=&session_key_only=0&trynum=1&charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&lsd=' & $aLSD[0] & '&email=' & $sEmail & '&pass=' & $sPasswort & '&persistent=1&default_persistent=1&login=Anmelden', '', '', True, True, 1)
_WinHttpCloseHandle($hConnect)
$aLocation = StringRegExp($sHTML, 'Location: http://ddt.facebookmmo.com/(.*)', 3)
If Not IsArray($aLocation) Then Return False
$hConnect = _WinHttpConnect($hOpen, "ddt.facebookmmo.com")
$sHTML = _WinHTTPRequest($hConnect, $aLocation[0])
_WinHttpCloseHandle($hConnect)
$aIframe = StringRegExp($sHTML, 'src="http://s1.ddt.facebookmmo.com/(.+?)"', 3)
If Not IsArray($aLocation) Then Return False
$hConnect = _WinHttpConnect($hOpen, 's1.ddt.facebookmmo.com')
$sHTML = _WinHTTPRequest($hConnect, $aIframe[0])
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hOpen)
If Not IsArray($aLocation) Then Return False
$aLink = StringRegExp($sHTML, "value='(Loading\.swf.+?)'", 3)
EndFunc
Func _WinHTTPRequest($hConnect, $sSite, $sPost = "", $sReferer = "", $sExtraHeaders = "", $bUseHTTPS = False, $bIsBinary = False, $iGetHeaderOnly = 0)
;|---------------------_WinHTTPRequest by Simon---------------------|
;| |
;| Parameter für $iGetHeaderOnly: |
;| |
;| 0 = Body zurückgeben |
;| 1 = Header zurückgeben |
;| 2 = Header und Body zurückgeben |
;|------------------------------------------------------------------|
Local $hRequest, $sData, $sMode = "GET", $sOptional = $WINHTTP_NO_REQUEST_DATA, $sHeaders = $WINHTTP_NO_ADDITIONAL_HEADERS, _
$iFlags = $WINHTTP_FLAG_ESCAPE_DISABLE, $sReferers = $WINHTTP_NO_REFERER
If $sPost <> "" Then
$sMode = "POST"
$sPost = StringReplace($sPost, "ä", "%C3%A4")
$sPost = StringReplace($sPost, "ö", "%C3%B6")
$sPost = StringReplace($sPost, "ü", "%C3%BC")
$sPost = StringReplace($sPost, "Ä", "%C3%84")
$sPost = StringReplace($sPost, "Ö", "%C3%96")
$sPost = StringReplace($sPost, "Ü", "%C3%9C")
$sPost = StringReplace($sPost, "É", "%C3%89")
$sPost = StringReplace($sPost, "é", "%C3%A9")
$sPost = StringReplace($sPost, "ß", "%C3%9F")
$sPost = StringReplace($sPost, "@", "%40")
$sOptional = $sPost
$sHeaders = "Content-Type: application/x-www-form-urlencoded" & @CRLF
EndIf
If $sReferer Then $sReferers = $sReferer
If $bUseHTTPS Then $iFlags = $WINHTTP_FLAG_SECURE
If $sExtraHeaders Then $sHeaders &= $sExtraHeaders
$hRequest = _WinHttpOpenRequest($hConnect, $sMode, $sSite, "HTTP/1.1", $sReferers, $WINHTTP_DEFAULT_ACCEPT_TYPES, $iFlags) ; Anfrage an die Seite stellen
_WinHttpSendRequest($hRequest, $sHeaders, $sOptional) ; Anfrage senden.
_WinHttpReceiveResponse($hRequest) ; Warte auf Antwort des Servers
If _WinHttpQueryDataAvailable($hRequest) Then
If $iGetHeaderOnly Then $sData = _WinHttpQueryHeaders($hRequest)
If $iGetHeaderOnly == 1 Then Return $sData
If $bIsBinary Then
$sData &= "0x"
While 1
$sTempData = _WinHttpReadData($hRequest, 2)
If @error Then ExitLoop
$sData &= StringTrimLeft($sTempData, 2)
WEnd
_WinHttpCloseHandle($hRequest)
Else
Do
$sData &= _WinHttpReadData($hRequest) ; Antwort aus dem Buffer lesen.
Until @error ; bis ein fehler auftritt (übertragung abgeschlossen)
_WinHttpCloseHandle($hRequest)
EndIf
Return $sData
EndIf
EndFunc ;==>_WinHTTPRequest
Func wurfweite()
$g = 3
$pi = 3.14159265358979
$degToRad = $pi / 180
$x0 = FileReadLine("coords.txt", 1)
$y0 = FileReadLine("coords.txt", 2)
$x1 = FileReadLine("coords.txt", 3)
$y1 = FileReadLine("coords.txt", 4)
$xdelta = $x1-$x0
$x = Sqrt($xdelta*$xdelta)*5.7
$ydelta = $y1-$y0
$y = Sqrt($ydelta*$ydelta)*5.7
$staerke = Sqrt($g*($x*$x)/((2*cos(45*$degToRad))*(sin(45*$degToRad)*$x-cos(45*$degToRad)*$y)))
$zeit = $staerke*40
Send ("{SPACE down}")
Sleep ($zeit)
Send ("{SPACE UP}")
FileDelete("coords.txt")
EndFunc
Func ende() ; logischerweise: Ende xD
FileDelete("coords.txt")
Exit
EndFunc
Func save() ;speichert die Koordinaten
$file = FileOpen("coords.txt", 1)
If $file = -1 Then Exit MsgBox(0, 'Maus-Koordinaten', 'Datei konnte nicht geöffnet werden!') ;überprüft ob die Datei schon vorhanden ist
$WinPos = WinGetPos("DDTank")
$pos = PixelSearch( $WinPos[0]+750, $WinPos[1], $WinPos[0]+1000, $WinPos[1]+200, 0xFF0000 )
if IsArray($pos) then
FileWrite($file, $pos[0] & @CRLF & $pos[1] & @CRLF)
Else
MsgBox(0,"RED","was not found.")
EndIf
$pos = PixelSearch( $WinPos[0]+750, $WinPos[1], $WinPos[0]+1000, $WinPos[1]+200, 0x0033CC)
if IsArray($pos) then
FileWrite($file, $pos[0] & @CRLF & $pos[1] & @CRLF)
Else
MsgBox(0,"BLUE","was not found.")
EndIf
If IsArray($pos) = True Then
$g = 3
$pi = 3.14159265358979
$degToRad = $pi / 180
$x0 = FileReadLine("coords.txt", 1)
$y0 = FileReadLine("coords.txt", 2)
$x1 = FileReadLine("coords.txt", 3)
$y1 = FileReadLine("coords.txt", 4)
$xdelta = $x1-$x0
$x = Sqrt($xdelta*$xdelta)*5.7
$ydelta = $y1-$y0
$y = Sqrt($ydelta*$ydelta)*5.7
$staerke = Sqrt($g*($x*$x)/((2*cos(45*$degToRad))*(sin(45*$degToRad)*$x-cos(45*$degToRad)*$y)))
GUICtrlSetData($Label5,$staerke)
Else
MsgBox(4096,"OOPS","There is no active challenge / something gone wrong. Before scanning get into a game.")
EndIf
sleep(1000)
FileClose($file)
EndFunc ;==>save
Func self()
$zeit1 = $i*40
Send ("{SPACE down}")
Sleep ($zeit1)
Send ("{SPACE UP}")
EndFunc







