Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Guild Wars > GW Bots
You last visited: Today at 17:24

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[My personal Problem Thread xD ]

Discussion on [My personal Problem Thread xD ] within the GW Bots forum part of the Guild Wars category.

Reply
 
Old   #1
 
elite*gold: 18
Join Date: Jun 2009
Posts: 1,213
Received Thanks: 56
[My personal Problem Thread xD ]

Moin Liebe Community ich brauch mal wieder ein wenig Hilfe da ich wieder aufm Schlauch stehe und da ich net jedesmal mit nem neuen Thread rumspammen will, mach ich jetzt einfach mal nen großen Thread für alle meine Fragen, falls das O.K ist.

So mein Problem ist diesmal das ich einen Nestlinge-Bot schreiben möchte der in Rata Sum anfängt und danach ins Portal läuft. So weit erstmal. Mein Problem ist nun das 1. Der Cha nie 100% genau an der selben Stelle steht ( z.b. beim neubetreten von Rata Sum)
2. Das wenn ich mit Hilfe der x/y +/- abfrage der Interval die er tolerieren soll zu groß ist. Damit meine ich zb. das ich die koords habe wenn ich auf der rechten Seite stehen würde und ich aber auf der Linken Seite stehe. So nun toleriert er zb. diese kp 1200 in dem x-Wert aber läuft jetzt als ob er auf der rechten Seite stehen würde = falsch.
Muss man net unbedingt verstehen xD.

Jetzt hatte ich die Idee das ich es so ca. mache

Das wäre die Berechnung der Toleranz des Checkpoints.

PHP Code:
    Const $memx =             IniRead("update.ini","SECTION D","-24272","Not found")         ; position x
Const $memy =             IniRead("update.ini","SECTION D","-5717","Not found")         ; position y

Func CheckArea
($xval$yval)
    
$xval 14452
    $yval 
14949
    $ret 
False
    $pX 
_memoryread($memx,$hprocess,'float')
    
$pY _memoryread($memy,$hprocess,'float')
if (
$pX $xval 250) And ($pX $xval 250) And ($pY $yval 250) And ($pY $yval 250Then
        $ret 
True
    
EndIf
    Return 
$ret 
Und dann alle 4 Spawnpunkte abfrage:
PHP Code:
Checkarea(1445214949Then
Moveto
ElseIf Checkarea(1637519403Then
    Moveto
ElseIf Checkarea(1774814503Then
    Moveto
ElseIf Checkarea(1629819528Then
    Moveto
ElseIf Checkarea (1457514863)
EndIf 
Jetzt müsste er ja den 1 Punkt abfragen gucken ob der Bereich innerhalb der Toleranz von +/- 250 liegt und geht dann da und da lang. Falls nicht Prüft er Punkt 2 ab, ob der Cha dort steht berücksichtig dort wieder die 250 geht gegebenfalls diese Strecke lang usw.

Jetzt weiß ich aber nicht genau, wie ich es schreibe das er bei jedem Checkarea diese Toleranz von 250 berücksichtig. Weil bei dem definieren der x/y Werte würde er ja nur 1 Punkt abchecken lassen.

Falls in meiner Theorie etwas falsch ist oder mir sonst irgendwie jemand helfen kann, ich bin für alles offen und hoffe auf Hilfe.
Ich hoffe man hat es so weit verstanden, wenn das nicht der Fall sein sollte einfach schreiben xD.
TurboGolom is offline  
Old 11/07/2010, 21:10   #2
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
entferne die koordinaten aus der checkarea funktion, die haben dort nichts zu suchen. du übergibst die parameter doch mit dem funktionsaufruf. dann funktioniert das auch. btw wird dein letztes elseif so nicht funktionieren. außerdem solltest du noch drüber nachdenken was dein bot machen soll falls keine der koordinaten passen...else...

vielleicht solltest du erstmal mit etwas leichterem anfangen, wenn dass hier schon nichts wird dann aeg ich ehrlich gesagt bei der umfangreichen fight funktion schwarz.
kknb is offline  
Thanks
1 User
Old 11/07/2010, 21:32   #3
 
elite*gold: 0
Join Date: Oct 2009
Posts: 557
Received Thanks: 160
Schon mal was von rezonen gehört damit kannste dir den ganzen kram sparen.

Lass den Cahrakter 1mal aus Ratasum aus dem richtigen Portale laufen und lauf wieder rein ... nu musst du nur noch nach jedem run resignen und er steht immer an der gleichen stelle.
Jonas_93 is offline  
Old 11/07/2010, 22:06   #4
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
das bringt ihm auch nichts wenn er weiterhin funktionen verstümmelt.
kknb is offline  
Thanks
1 User
Old 11/08/2010, 17:59   #5
 
elite*gold: 18
Join Date: Jun 2009
Posts: 1,213
Received Thanks: 56
K Kknb hat wahrscheinlich recht und ich lass es erstmal mit Nestlinge und bastel ein wenig an meinem Tore von Kryta-Bot weiter. Allerdings wollte ich gerne das von Nestlinge noch geklärt haben da ich da einfach net weiter weiß und mich das gerade tierisch wurmt.

PHP Code:
Func Goout ()
        
prepmoveto ()
        
    If 
Checkarea (1450514827Then 
MoveTo(11475715137)
MoveTo(11520315423)
MoveTo(11581415813)
MoveTo(11637015782)
MoveTo(11701715732)
MoveTo(11746715802)
MoveTo(11775316081)
MoveTo(11788916456)
MoveTo(11797416826)
MoveTo(11831016839)
MoveTo(11874116835)
MoveTo(11920616832)
MoveTo(11969216835)        

ElseIf 
Checkarea (1788114435Then
MoveTo
(11795814593)
MoveTo(11833714971)
MoveTo(11876815314)
MoveTo(11909515577)
MoveTo(11936515848)
MoveTo(11940716251)
MoveTo(11940016601)
MoveTo(11939516816)
MoveTo(11962116849)

ElseIf 
Checkarea (1628019519Then
MoveTo
(11653819416)
MoveTo(11703719128)
MoveTo(11748718868)
MoveTo(11775118499)
MoveTo(11783118027)
MoveTo(11786117568)
MoveTo(11793817108)
MoveTo(11799416866)
MoveTo(11853816881)
MoveTo(11914016869)
MoveTo(11957416852)


ElseIf 
Checkarea (1637519512Then
    MoveTo
(11653819416)
MoveTo(11703719128)
MoveTo(11748718868)
MoveTo(11775118499)
MoveTo(11783118027)
MoveTo(11786117568)
MoveTo(11793817108)
MoveTo(11799416866)
MoveTo(11853816881)
MoveTo(11914016869)
MoveTo(11957416852)
EndIf
keepmoveto()
loadout()
EndFunc 
Und ich gerade nicht wirklich weiß warum er mir anzeigt das er bei Func goout anzeigt das der passende EndFunc befehl fehlt. Das mein letztes ElseIf net gehen sollte, da weiß ich auch nicht genau warum. Über eine Erklärung wäre ich sehr dankbar.

Btw. Kknb hast du vllt Ideen wie ich einfacher in Sachen botten in bezug auf Gw anfangen kann =?
TurboGolom is offline  
Old 11/09/2010, 19:23   #6
 
Cr33p's Avatar
 
elite*gold: 0
The Black Market: 133/0/1
Join Date: Mar 2008
Posts: 820
Received Thanks: 156
Einfacher als das wird wohl schwer werden :P
Wenn loadout und keepmoveto auch definiert sind, dann müsste es so gehen. Wenn du den Code in AutoIT offen hast dann drück mal strg + f5...und sag was für ein error angezeigt wird.

Btw als kleiner Tipp: Da die Spawnpoints variieren würde ich bei wayouts nach den verschiedenen Ifs und Elseifs immer ein Else changedis() oder so etwas machen. Also so:
PHP Code:
Func Goout ()
        
prepmoveto ()
        
    If 
Checkarea (1450514827Then 
MoveTo(...
)    

ElseIf 
Checkarea (1788114435Then
MoveTo
(...
)

ElseIf 
Checkarea (1628019519Then
MoveTo
(...
)

ElseIf 
Checkarea (1637519512Then
MoveTo
(...
)

Else 
changedis()
EndIf

keepmoveto()
loadout()
EndFunc 
Changedis ist dann halt die Func zum Dis wechseln.
Cr33p is offline  
Old 11/09/2010, 21:16   #7
 
elite*gold: 18
Join Date: Jun 2009
Posts: 1,213
Received Thanks: 56
Jup ich schick morgen nach dem ich an dem Script noch ein bissche gebastelt habe es mal hier rein falls es dann immernoch net geht.

Btw. weiß wer warum bei dieser Skillreihenfolge ständig die 8 gedrückt wird ?


PHP Code:
For $i 1 To 3
    Send 
("(c)")
    
Send("{space}")
    
Sleep(2000)
    
Send("6")
    
Sleep(1000)
    
Send("1")
    
Sleep(5000
    
Send ("(2)")
    
Sleep (2000)
    
Send("{space}"
    
Sleep (3000)
    
Send("{space}"
    
sleep (5000)
    
Send ("(6")
    
sleep (1000)
    
Send("{space}"
    
sleep (4000)
    
Next 
Ich vermute das es am space liegt aber unter einstellungen und skill 8 ist nur die taste 8 definiert.^^
TurboGolom is offline  
Old 11/11/2010, 01:00   #8
 
in MIND's Avatar
 
elite*gold: 0
Join Date: Apr 2009
Posts: 442
Received Thanks: 189
Deswegen: Send("(c)").
So wie du das gerne möchtest müsste es Send("c") heissen.
Tatsächlich geschrieben wird allerdings (c) und da "(" Shift+8 entspricht wird auch Shift+8 gesendet. Wenn du das mal in GW drückst wirst du sehen, dass Skill 8 aktiviert wird.

Der ganze Teil da müsste korrekt so heissen:
PHP Code:
For $i 1 To 3 
    Send 
("c"
    
Send("{space}"
    
Sleep(2000
    
Send("6"
    
Sleep(1000
    
Send("1"
    
Sleep(5000)  
    
Send ("2"
    
Sleep (2000
    
Send("{space}")  
    
Sleep (3000
    
Send("{space}")  
    
sleep (5000
    
Send ("6"
    
sleep (1000
    
Send("{space}")  
    
sleep (4000
Next 
Allerdings glaube ich ehrlich gesagt nicht, dass da was Vernünftiges rauskommt, da Send-Bots in der Regel viel zu ungenau sind.
in MIND is offline  
Old 11/11/2010, 22:08   #9
 
elite*gold: 18
Join Date: Jun 2009
Posts: 1,213
Received Thanks: 56
achso k danke dir vielmals. wie meinste das mit ungenau und welche möglichkeit gebe es dies genauer zu machen ? würde mich dann auch gleich dies bezüglich belesen.
Edit:
hab jetzt das Script so weot fertig das er erstmal ausm Portal laufen müsste aber er motzt ein bisschen bei prepmoveto und bei der keepmoveto weil ich net genau weiß wie ich keepmoveto definieren soll

hier erstmal das script:
PHP Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>



#Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Basti\Eigene Dateien\Downloads\Vaettire bot\GUI Nestlinge.kxf
$Form1 GUICreate("GW Nestlinge Bot"633447192124)
$Tab1 GUICtrlCreateTab(6448465305)
GUICtrlSetResizing(-1$GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
GUICtrlCreateTabItem("")
$Button1 GUICtrlCreateButton("Start"803048141$WS_GROUP)
$Button2 GUICtrlCreateButton("Pause"4243049741$WS_GROUP)
$Input_Place GUICtrlCreateInput(""104403321)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

WinWaitActive ("Guild Wars")

Hotkeyset("{F2}","End")

Func End()
    Exit
EndFunc

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
Case 
$Button1
            sleep 
(2000)
     
GoOut()
     
loadout ()
            
    EndSwitch
WEnd






Func GoOut
()
    
prepmoveto()
    
    Const 
$memx =             IniRead("update.ini","SECTION D","POSX","Not found")         ; position x
Const $memy =             IniRead("update.ini","SECTION D","POSY","Not found")            ; position y

Func CheckArea
($xval$yval)
    
$ret False
    $pX 
_memoryread($memx,$hprocess,'float')
    
$pY _memoryread($memy,$hprocess,'float')

    if (
$pX $xval 250) And ($pX $xval 250) And ($pY $yval 250) And ($pY $yval 250Then
        $ret 
True
    
EndIf
    Return 
$ret    
    
If Checkarea (1450514827Then 
MoveTo(11475715137)
MoveTo(11520315423)
MoveTo(11581415813)
MoveTo(11637015782)
MoveTo(11701715732)
MoveTo(11746715802)
MoveTo(11775316081)
MoveTo(11788916456)
MoveTo(11797416826)
MoveTo(11831016839)
MoveTo(11874116835)
MoveTo(11920616832)
MoveTo(11969216835)        

ElseIf 
Checkarea (1788114435Then
MoveTo
(11795814593)
MoveTo(11833714971)
MoveTo(11876815314)
MoveTo(11909515577)
MoveTo(11936515848)
MoveTo(11940716251)
MoveTo(11940016601)
MoveTo(11939516816)
MoveTo(11962116849)

ElseIf 
Checkarea (1628019519Then
MoveTo
(11653819416)
MoveTo(11703719128)
MoveTo(11748718868)
MoveTo(11775118499)
MoveTo(11783118027)
MoveTo(11786117568)
MoveTo(11793817108)
MoveTo(11799416866)
MoveTo(11853816881)
MoveTo(11914016869)
MoveTo(11957416852)


ElseIf 
Checkarea (1637519512Then
    MoveTo
(11653819416)
MoveTo(11703719128)
MoveTo(11748718868)
MoveTo(11775118499)
MoveTo(11783118027)
MoveTo(11786117568)
MoveTo(11793817108)
MoveTo(11799416866)
MoveTo(11853816881)
MoveTo(11914016869)
MoveTo(11957416852)
EndIf
keepmoveto()
loadout()
    
EndFunc
    
    Func loadout
()
While 
_memoryread($memmap$hprocess) <> 1
Sleep
(500)
WEnd
EndFunc 
Ach er meckert einfach überall -.-

Hier mal der Fehlerlog

PHP Code:
>C:\Programme\AutoIt3\SciTE\..\au3check.exe "C:\Dokumente und Einstellungen\Basti\Eigene Dateien\Downloads\Vaettire bot\Nestlinge Farmbot.au3"
AutoIt3 Syntax Checker v1.54.8  Copyright (cTylo 2007

bot
\Nestlinge Farmbot.au3(51,1) : ERRORsyntax error
Func
^
bot\Nestlinge Farmbot.au3(35,12) : ERRORloadout(): undefined function.
     
loadout ()
    ~~~~~~~~~~^
C:\Dokumente und Einstellungen 2 error(s), 0 warning(s)
>Exit 
code2    Time0.311 
TurboGolom is offline  
Old 11/13/2010, 15:35   #10
 
in MIND's Avatar
 
elite*gold: 0
Join Date: Apr 2009
Posts: 442
Received Thanks: 189
1. Deine Funktion GoOut() hat kein EndFunc
2. Du rufst die Funktion loadout() auf, die allerdings nicht vorhanden ist.
in MIND is offline  
Reply




All times are GMT +2. The time now is 17:24.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.