TT6 MoveTo engine public

02/26/2009 19:09 Painful Pete#466
Quote:
ich hätte nochmal eine Frage zu dem Mode 3.

Ich hab da jetzt einen Check eingebaut, ob er geblockt ist, und wenn er geblockt ist, soll er sich befreien.

Funktioniert soweit eigtl ganz gut.
Jetzt hab ich nur das Problem, dass er auf dieses $gotBlocked ÄUßERST sensibel reagiert.
Also selbst wenn ich nur einen minimalen Ruckler durch Lag oder was auch immer habe, dann versucht er SOFORT was dagegen zu machen, obwohl er den Punkt noch leicht erreichen würde.

Gibt es da eine Möglichkeit, das ein wenig sanfter einzustellen, oder geht das nicht und ich muss mir was einfallen lassen?
Das wäre super, wenn da jemand ne Antwort wüsste.
Das andere Problem ist noch, dass wenn er den Distrikt wechselt, und wieder spawnt, dann wieder rauslaufen will, aber dann nicht den üblichen Weg läuft und dann ständig hängen bleibt. :confused:
02/27/2009 23:54 tonitusch666#467
Also der blockcheck erkennt das dadurch, dass er prüft, ob sich nach 500ms der Distanzwert nicht verändert hat. Wenn Du so lange lags hast, dass es zu Fehlerkennung kommt, dann verändere in der Zeile
Code:
	If Mod($callcnt, 50) = 0 Then
den Modulo wert entsprechend, also 50 * 10ms = 500ms, wenn Du zB 1s haben willst dann trag 100 ein...

Update: Habe V1.4 hochgeladen, die ein paar Verbesserungen bzgl. Robustheit hat und 2 debug flags die ganz nützlich sind wenn man längere Wege verbessern will, weil man in der Console sieht welches Segment gerade durchlaufen wird...
02/28/2009 00:13 NBA#468
Sag ma Tony...kannst du die collectloot() func so umbauen, das gewisse Blocks von gewissen Dingen (z.B. Adepten) nichts ausmachen? Versteh leider kaum was davon.

MfG,
NBArena
immernochvote4sticky :)
02/28/2009 00:16 kknb#469
in der loot func ist keine kollisionsabfrage oder sowas drin, verstehe die frage auch nicht wirklich.
02/28/2009 00:20 NBA#470
Also:
Ich habe das Problem, dass wenn ich das Loot mit CollectLoot aufsammeln will, mit ein Gegenstand bzw. NPC blockt, und mich damit vom aufsammeln abhält. Was ich bräuchte ist etwas, das wenn eine Kollision zufolge kommt, der Bot um das Kollisionsgebiet rum läuft, während es die Drops sammelt.

Doch ich habe von Kollisionsabfrage etcbb. keine Ahnung :)
02/28/2009 00:20 NBA#471
Also:
Ich habe das Problem, dass wenn ich das Loot mit CollectLoot aufsammeln will, mich ein Gegenstand bzw. NPC blockt, und mich damit vom aufsammeln abhält. Was ich bräuchte ist etwas, das wenn eine Kollision zufolge kommt, der Bot um das Kollisionsgebiet rum läuft, während es die Drops sammelt.

Doch ich habe von Kollisionsabfrage etcbb. keine Ahnung :)

Mit MoveTo(vor das Kollisionsgebiet) gehts leider auch nicht, da die Drops trotzdem geblockt werden(wenn sie zu weit auseinander liegen).
02/28/2009 00:26 kknb#472
das ist vom prinzip her einfach.

einfach die id des items auslesen. deine position beim lootvorgang auslesen. wenn sich deine position nicht ändert und die item id gleich bleibt kannst du davon ausgehen das du irgendwo geblockt wirst. dann einfach einen umweg laufen lassen. dumm ist es nur wenn du ein schild oder sonstige items anvisierst die du nicht auheben kannst.
02/28/2009 00:32 NBA#473
Das item ist - höchstwahrscheinlich - variabel. Ist nunmal ein einem erforschbaren Gebiet. Naja, danke für den Ansatz, werd mich morgen mal dran setzen und versuchen was daraus zu machen :) (bei Bedarf reich ich den Code nach, den könnte man ja dann evtl. in die tt6 reinbasteln ;) )
02/28/2009 00:35 kknb#474
ist doch egal ob die item id variabel ist oder nicht, geht doch nur darum das du checken kannst ob du das anvisierte item bereits aufgenommen hast oder nicht.
02/28/2009 00:37 tonitusch666#475
Jepp, das Problem hab ich auch, ich hab das bis jetzt nur recht simpel gelöst, ich mach 2 CollectLoot und wenn dann noch was "liegt", dann dreh ich mich mit x und lauf 2s weg und probiers nochmal. Hat aber auch nur ne Trefferquote von 50%, dummerweise passt in mein A/E build kein "jump" mehr rein um mich an einen ungeblockten Ausgangspunkt zu teleportieren.

Also die Loot Funktion ist echt noch recht simpel, ich hab mir da so mehrere Varianten überlegt, eine nur schnell aufheben wie bei Byzzr, eine die auch längere Wege abwartet wenn man erst hinrennen muss und dann wäre auch ne "blacklist" denkbar, wo man ablegt was er nicht "aufheben" soll und dann mit nextitem überspringt wie zB truhen oder schilder o.ä., dass kann ich aber bis jetzt nur mit pixelchecksum lösen...
Geht natürlich auch mit ner "sammelliste", die nur goldene oder event items enthält...
02/28/2009 08:23 Frutex#476
Quote:
Originally Posted by tonitusch666 View Post
Jepp, das Problem hab ich auch, ich hab das bis jetzt nur recht simpel gelöst, ich mach 2 CollectLoot und wenn dann noch was "liegt", dann dreh ich mich mit x und lauf 2s weg und probiers nochmal. Hat aber auch nur ne Trefferquote von 50%, dummerweise passt in mein A/E build kein "jump" mehr rein um mich an einen ungeblockten Ausgangspunkt zu teleportieren.

Also die Loot Funktion ist echt noch recht simpel, ich hab mir da so mehrere Varianten überlegt, eine nur schnell aufheben wie bei Byzzr, eine die auch längere Wege abwartet wenn man erst hinrennen muss und dann wäre auch ne "blacklist" denkbar, wo man ablegt was er nicht "aufheben" soll und dann mit nextitem überspringt wie zB truhen oder schilder o.ä., dass kann ich aber bis jetzt nur mit pixelchecksum lösen...
Geht natürlich auch mit ner "sammelliste", die nur goldene oder event items enthält...
Also da hat sich ja jemand etwas vorgenommen.
Das könnte auch wenn du mit Pixelchecksum arbeitest ne scheiß arbeit werden und außerdem kann der Bot dann nicht im inkativen Fenster laufen..
Na ja dann wünsche ich ir auf jeden fall viel spaß ;)
02/28/2009 10:50 tonitusch666#477
Also so schwer ist das nicht, ich müsst mich halt mal ne Stunde hinsetzen und das runtercoden, aber das Problem ist, dass wie Du auch schon erwähnt hast es dann nicht mehr im Hintergrund läuft und v.a. sich jeder die Checksums selber erzeugen muss, daher macht das in einer public Version vielleicht nicht so viel Sinn, weil dann zu viele es nicht gescheit zum laufen bekommen...
02/28/2009 12:47 _revo#478
blacklist kannst erstellen, indem du bevor items droppen (z.B. am anfang des fightvorgangs) mit "next item" alle gegenstände/schilder/truhen etc. durchgehst und von jedem die id speicherst.
beim looten die dann mit ner if abfrage vom einsammeln ausschließen
02/28/2009 12:51 kknb#479
jo ist wohl die einfachste möglichkeit.
02/28/2009 13:19 Cr33p#480
hey...ich hab das prob,dass er geblockt wird,aber eben nich stehen bleibt,sondern immer an der Wand hin und her läuft...kann mir da ein moveTo-mode helfen oder muss ich das anders lösen?