|
You last visited: Today at 19:40
Advertisement
[Release] Muddy's D2NT
Discussion on [Release] Muddy's D2NT within the Diablo 2 Programming forum part of the Diablo 2 category.
09/14/2010, 18:47
|
#271
|
elite*gold: 0
Join Date: May 2010
Posts: 212
Received Thanks: 40
|
Quote:
Originally Posted by Muddy_Waters
Ich muss mich erstmal entschuldigen, dass ich mich hier so wenig beteilige.
Aber momentan siehts bei mir zeitlich ziemlich mau aus...
Und da ich auf der Arbeit auch schon den ganzen Tag programmiere, widme ich mich nach Feierabend lieber meiner Gitarre, als der D2NT Programmierung.
Mal schauen ob ich die Tage mal wieder Lust habe, dann werde ich mal ein paar der hier genannten Änderungen umsetzen, allen voran ldevils AutoMule Implementierung, für dessen schöne PMs ich mich an dieser Stelle nochmal herzlich bedanken möchte!
Lg
Muddy
|
Tja Muddy, dann schlag ich dir mal einen Rollentausch vor.
Du schickst mir deine "Gitarre", das Bissel am Hals touchen und dann rumkrabbeln, das bekomme ich wohl auch noch hin. Im Gegensatz zum intelligenten Script. 
Ich müsste dann nicht mehr am Daumen lutschen, deiner Gitarre gings vielleicht genau so gut, aaaaber, wir wären alle glücklich !!!

Mach dir nix draus, war halt zu verlockend 
LG
|
|
|
09/15/2010, 00:09
|
#272
|
elite*gold: 0
Join Date: Jul 2006
Posts: 469
Received Thanks: 235
|
Gern geschehen
@fred9x9: Danke, war Mal so frei und hab's "formatiert", da ja die ganzen Tabs fehlen... so kann das ja keiner lesen. Hast nähmlich nen Fehler drin, das sieht man auch wenn's korrekt formatiert ist:
Code:
else //ff long
NTM_MoveTo(me.areaid, 7660, 5310); //ff
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
{
NT_OpenSealInt(395, 7650, 5276);
NT_OpenSealInt(396, 7651, 5310);
NTA_ClearPosition(); //ff
NTSI_PickItems(); //ff
}
Ich nehm an, dass sollte eigentlich so aussehen:
Code:
else //ff long
{
NTM_MoveTo(me.areaid, 7660, 5310); //ff
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
NT_OpenSealInt(395, 7650, 5276);
NT_OpenSealInt(396, 7651, 5310);
NTA_ClearPosition(); //ff
NTSI_PickItems(); //ff
}
|
|
|
09/15/2010, 00:47
|
#273
|
elite*gold: 0
Join Date: May 2010
Posts: 212
Received Thanks: 40
|
Quote:
Originally Posted by ldevil
Gern geschehen
@fred9x9: Danke, war Mal so frei und hab's "formatiert", da ja die ganzen Tabs fehlen... so kann das ja keiner lesen. Hast nähmlich nen Fehler drin, das sieht man auch wenn's korrekt formatiert ist:
Code:
else //ff long
NTM_MoveTo(me.areaid, 7660, 5310); //ff
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
{
NT_OpenSealInt(395, 7650, 5276);
NT_OpenSealInt(396, 7651, 5310);
NTA_ClearPosition(); //ff
NTSI_PickItems(); //ff
}
Ich nehm an, dass sollte eigentlich so aussehen:
Code:
else //ff long
{
NTM_MoveTo(me.areaid, 7660, 5310); //ff
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
NT_OpenSealInt(395, 7650, 5276);
NT_OpenSealInt(396, 7651, 5310);
NTA_ClearPosition(); //ff
NTSI_PickItems(); //ff
}
|
Tut mir leid, habs extra als "tablecode" über den button eingegeben. Bei mir ist alles schön formattiert (Notepad++). Deshalb wurde wohl auch einiges abgeschnitten. K. A. wie das sonst geht.
Da sieht man wieder den Programmierer, ja, denke du hast Recht. Aber macht es einen Unterschied?
Kommt davon, wenn man Subs zusammenklaut :-))
HF
|
|
|
09/15/2010, 01:44
|
#274
|
elite*gold: 0
Join Date: Jul 2006
Posts: 469
Received Thanks: 235
|
Quote:
Originally Posted by fred9x9
Tut mir leid, habs extra als "tablecode" über den button eingegeben. Bei mir ist alles schön formattiert (Notepad++). Deshalb wurde wohl auch einiges abgeschnitten. K. A. wie das sonst geht.
|
[Table]-Code ist für Tabellen  das korrekte wäre der "[code]-Code" Heisst aber Code einfügen [Code] und ist als Button ein Rautezeichen (#).
Hier steht eigentlich ein Quote aber das will das Forum gar nicht zulassen -.-
Jep es macht nen unterschied  dafür muss man aber das ganze if..else anschauen:
Code:
if(type == 1) //ff river
{
NT_OpenSealInt(395, 7654, 5310);
NT_OpenSealInt(396, 7659, 5277);
NTM_MoveTo(me.areaid, 7665, 5277);
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
}
else //ff long
NTM_MoveTo(me.areaid, 7660, 5310); //ff
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
{
NT_OpenSealInt(395, 7650, 5276);
NT_OpenSealInt(396, 7651, 5310);
NTA_ClearPosition(); //ff
NTSI_PickItems(); //ff
}
So wird im "else" nur das "NTM_MoveTo" gemacht und der ganze Rest in jedem Fall. Die geschweiften Klammern unten haben so gar keinen Effekt
Wenn also type == 1 ist, dann wird folgendes ausgeführt:
Code:
NT_OpenSealInt(395, 7654, 5310);
NT_OpenSealInt(396, 7659, 5277);
NTM_MoveTo(me.areaid, 7665, 5277);
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
NT_OpenSealInt(395, 7650, 5276);
NT_OpenSealInt(396, 7651, 5310);
NTA_ClearPosition(); //ff
NTSI_PickItems(); //ff
Was natürlich nicht korrekt ist. Ich weiss nicht wie sehr es stört, wenn er 2 Mal versucht die Siegel zu öffnen, aber anders rum ist's sicher besser
|
|
|
09/15/2010, 11:19
|
#275
|
elite*gold: 0
Join Date: May 2010
Posts: 212
Received Thanks: 40
|
Quote:
Originally Posted by ldevil
[Table]-Code ist für Tabellen  das korrekte wäre der "[code]-Code" Heisst aber Code einfügen [Code] und ist als Button ein Rautezeichen (#).
Hier steht eigentlich ein Quote aber das will das Forum gar nicht zulassen -.-
Jep es macht nen unterschied  dafür muss man aber das ganze if..else anschauen:
Code:
if(type == 1) //ff river
{
NT_OpenSealInt(395, 7654, 5310);
NT_OpenSealInt(396, 7659, 5277);
NTM_MoveTo(me.areaid, 7665, 5277);
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
}
else //ff long
NTM_MoveTo(me.areaid, 7660, 5310); //ff
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
{
NT_OpenSealInt(395, 7650, 5276);
NT_OpenSealInt(396, 7651, 5310);
NTA_ClearPosition(); //ff
NTSI_PickItems(); //ff
}
So wird im "else" nur das "NTM_MoveTo" gemacht und der ganze Rest in jedem Fall. Die geschweiften Klammern unten haben so gar keinen Effekt
Wenn also type == 1 ist, dann wird folgendes ausgeführt:
Code:
NT_OpenSealInt(395, 7654, 5310);
NT_OpenSealInt(396, 7659, 5277);
NTM_MoveTo(me.areaid, 7665, 5277);
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
NT_OpenSealInt(395, 7650, 5276);
NT_OpenSealInt(396, 7651, 5310);
NTA_ClearPosition(); //ff
NTSI_PickItems(); //ff
Was natürlich nicht korrekt ist. Ich weiss nicht wie sehr es stört, wenn er 2 Mal versucht die Siegel zu öffnen, aber anders rum ist's sicher besser 
|
Danke für die Hilfe und die tolle Erläuterung,
nun weiss ich, warum die nach Typ 1 und kill, nochmal knapp an den Seals vorbeiturnt und kurz rumdummt. Es geht zwar weiter, aber ich wunderte mich schon 
Hast ja wohl gesehen, für nen gut equipped LOD player sind es natürlich zuviele Punkte und auch zuviele check-selfsaves, aber in classic brauchste diese. Denke auch mit besserer Ausrüstung, als ich sie habe.
Letztlich wäre ein Botrun mit Sosoleader und Babafollower sehr genehm, aber das geht mit Muddys wohl nicht. Soso über bot und Baba manuell nachsenden ist problemlos und gibt bisher 0 chickens, aaaber, die sollen ja laufen, wenn ich zu faul bin, oder schlafe. 
hf
fred
|
|
|
09/15/2010, 13:26
|
#276
|
elite*gold: 0
Join Date: Sep 2010
Posts: 16
Received Thanks: 0
|
Hi,
mir wurde dieser D2NT hier empfohlen, weil es die Möglichkeit gibt ne Sorc bei den Gegnern etwas auf Abstand zu halten ..
Allerdings klappt das bei mir überhaupt nicht. Die Gute bleibt gerne mal in Monstermengen stehen und macht wenig Anstalten sich um neue Tränke etc. zu kümmern.
Vorhin habe ich 2x nen Baalrun ausprobiert. Beim ersten Mal wurde die Option "MWConfig_SkipBaalOnSouls = true;" ignoriert und es gab nen Chicken, weil die Teile mit geröstet haben, beim zweiten Mal dann war es relativ easy zu Baal zu kommen. Den hatte ich auf 1/4 seines Lebens runter, aber dann gabs nen Chicken, weil ich keine Tränke mehr hatte und die Sorc nicht in die Stadt gegangen ist.
Zudem könnte man noch nen ChickenTele einbauen, wenn der Merc zu viel Leben verliert, oder?
Wäre cool, wenns für die Probleme einigermaßen einfache Lösungen gäbe
|
|
|
09/15/2010, 13:42
|
#277
|
elite*gold: 0
Join Date: Aug 2010
Posts: 91
Received Thanks: 4
|
also evade funzt bei mir perfekt, abgesehen innerhalb des diablo scripts, auch bei baal funzt es wie gewollt, aber da kommt ich wegen des 0x000005 fehlers nicht über die zweite welle hinaus wenn ich muddys script verwende, mit anderen gehts, auch mit muddys d2nt und manuellem zocken gehts.
wobei das sie sich um pötte oder ums IDn kümmert in mosterhorden ist mir auch schon mal aufgefallen, ist aber die absolute ausnahme und selbst wenn das mal der fall war ist es dadurch nie zum chicken oder tod gekommen.
tipp: mach mal GreaterManaPotion in deinen nips aus, dann werden nur noch SuperManaPotions gesammelt und der bot sortiert nicht mehr greatermanapots aus wenn er supermanapots findet.
EDIT:
ich wollte nur mal berichten das ich mit diesem script hier den ersten diablo run gemacht hab, war sogar verdammt locker.
hab schon alles abgeändert, einfach in eine textdatei kopieren, als .ntj in den ordner bots speichern und mit in eure config eintragen
Code:
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
if(!NTTM_CheckAct())
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_TownMove()");
return;
}
if(!NTM_TakeWaypoint(107))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTP_DoPrecast(true);
if(!NTM_MoveTo(108, 7797, 5560))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
if(NTConfig_PublicMode)
{
var _attackpos = [7792, 5525, 7793, 5501, 7773, 5495, 7768, 5480, 7767, 5458, 7770, 5438, 7774, 5417, 7767, 5391, 7768, 5369, 7769, 5345, 7770, 5320, 7780, 5308];
if(!NTM_MoveTo(me.areaid, 7790, 5544))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
NTA_ClearPosition(20, false, 2);
NTM_MoveTo(me.areaid, 7790, 5544);
NTC_PingDelay(1000);
NTA_ClearPosition(20, true, 2);
NTM_MoveTo(me.areaid, 7790, 5544);
NTM_MakeTP();
Say("TP is safe!");
for(var i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
}
NTP_DoPrecast(true);
}
if(!NT_OpenSealsInt())
{
NTC_SendMsgToScript("MWBotGame.ntj", "NT_OpenSealsInt()");
return;
}
if(NTConfig_PublicMode)
Say("Killing Diablo");
NTP_DoPrecast(true);
//if(!NTM_MoveTo(me.areaid, 7792, 5292)) mitte stern
NTC_Delay(200);
// NTM_WalkTo( 7814, 5302)bringt fehlermeldung,sollte von der mitte runter zu dem punkt gehn und merc dadurch stehn lassen in d. mitte
if(!NTM_MoveTo(me.areaid, 7814, 5302))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe|0x01, NTConfig_CheckMercSafe))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTTMGR_CheckSafe()");
return;
}
NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100);
if(!NTA_KillMonster(243))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTA_KillMonster()");
return;
}
NTSI_PickItems();
if(NTConfig_PublicMode)
Say("Next game");
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
// Internal function
function NT_OpenSealsInt()
{
var i, _unit;
var _result;
_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
if(!_unit)
return false;
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 396)
{
if(_unit[i].roomy*5 + _unit[i].y == 5275)
_result = NT_OpenVizierSealInt(1);
else
_result = NT_OpenVizierSealInt(2);
break;
}
}
if(!_result)
return false;
NTP_DoPrecast(false);
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 394)
{
if(_unit[i].roomx*5 + _unit[i].x == 7773)
_result = NT_OpenDeSeisSealInt(1);
else
_result = NT_OpenDeSeisSealInt(2);
break;
}
}
if(!_result)
return false;
NTP_DoPrecast(false);
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 392)
{
if(_unit[i].roomx*5 + _unit[i].x == 7893)
_result = NT_OpenVenomSealInt(1);
else
_result = NT_OpenVenomSealInt(2);
break;
}
}
return _result;
}
function NT_OpenVizierSealInt(type)
{
var i, n;
var _attackpos = [7740, 5300, 7740, 5280, 7720, 5280, 7720, 5300];
var _monstername = GetLocaleString(2851);
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
}
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
NT_OpenSealInt(395, 7654, 5310);
NT_OpenSealInt(396, 7659, 5277);
NTM_MoveTo(me.areaid, 7665, 5277);
}
else
{
NT_OpenSealInt(395, 7650, 5276);
NT_OpenSealInt(396, 7651, 5310);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition();
NTSI_PickItems();
return NTM_MoveTo(me.areaid, 7750, 5280);
}
}
}
return false;
}
function NT_OpenDeSeisSealInt(type)
{
var i, n;
var _attackpos = [7780, 5255, 7800, 5255, 7800, 5235, 7780, 5235, 7800, 5189, 7771, 5196];
var _monstername = GetLocaleString(2852);
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(30, true, 2);
}
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
NT_OpenSealInt(394, 7769, 5158);
NTC_Delay(100);
NT_OpenSealInt(394, 7778, 5157);
NTC_Delay(100);
NT_OpenSealInt(394, 7779, 5159);
NTC_Delay(100);
NTM_MoveTo(me.areaid, 7771, 5196);
NTC_Delay(100);
NTM_MoveTo(me.areaid, 7796, 5226);
}
else
{
NT_OpenSealInt(394, 7810, 5156);
NTC_Delay(200);
NT_OpenSealInt(394, 7810, 5156);
NTC_Delay(200);
NTM_MoveTo(me.areaid, 7770, 5169);
NTC_Delay(100);
NTM_MoveTo(me.areaid, 7800, 5189);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
//NTA_ClearPosition(35);
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition(35);
NTSI_PickItems();
return NTM_MoveTo(me.areaid, 7800, 5255);
}
}
}
return false;
}
function NT_OpenVenomSealInt(type)
{
var i, n;
var _attackpos = [7835, 5280, 7835, 5300, 7855, 5300, 7855, 5280];
var _monstername = GetLocaleString(2853);
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
}
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
NT_OpenSealInt(393, 7915, 5280);
NT_OpenSealInt(392, 7895, 5318);
NTM_MoveTo(me.areaid, 7892, 5298);
}
else
{
NT_OpenSealInt(393, 7905, 5277);
NT_OpenSealInt(392, 7916, 5310);
NTM_MoveTo(me.areaid, 7937, 5305);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTA_KillMonster(_monstername))
{
NTSI_PickItems();
if(NTC_PutSkill(124, NTC_HAND_RIGHT))
NTC_PingDelay(1000);
return true;
}
}
}
return false;
}
function NT_OpenSealInt(classid, x, y)
{
var _seal;
NTM_MoveTo(me.areaid, x, y);
NTA_ClearPosition(25, true, 2);
_seal = NTC_FindUnit(NTC_UNIT_OBJECT, classid, 5);
if(!_seal)
return false;
if(_seal.mode > 0)
return true;
for(var i = 0 ; i < 4 ; i++)
{
if((i % 2) == 0)
{
if(GetDistance(me, _seal) > 2)
NTM_MoveTo(_seal.areaid, _seal.x+1, _seal.y);
NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _seal);
}
NTC_Delay(500);
if(_seal.mode > 0)
return true;
}
return false;
}
hab ihn aus irgendeiner signatur geklaut :P
den bug mit evade -> de seis -> evade gibts immer noch (wenn man evade an hat bzw. keine evade exeption definiert hat), aber nicht mehr so "scharf" weil die teleport positionen hier vieeel besser sind als bei dem beiliegenden script, das wohl eher für paladine gemacht zu sein scheint.
viel spaß!
ich hoffe muddy bekommt das XML log gefixt in den 2 wochen bis ladder reset, wär cool funktionierende log files über die drops von anfang der ladder zu haben 
oh und bitte auch das mehrfache eintragen fixen muddy sonst kann man so schlecht mit tools drüber und zählen lassen ...
lg
jules
|
|
|
09/15/2010, 15:02
|
#278
|
elite*gold: 0
Join Date: Sep 2010
Posts: 16
Received Thanks: 0
|
GreaterPotions werden bei mir nicht eingesammelt.
Ka woran das mit dem evade liegt, werde da wohl nochmal n bissl rumprobieren.
Was aber def. bei mir nicht funktioniert sind die SkipBaalOnDolls und -Souls. Da interessiert es den nicht, ob welche davon im Thronsaal sind, weswegen ich da dauernd n Chicken hab
/edit
Und schon wieder bleibt die Sorc in Hydren stehen und macht somit n Chicken.
Kann es sein, dass der Bot das sich auffüllende Leben als richtiges Leben interpretiert?
|
|
|
09/15/2010, 15:51
|
#279
|
elite*gold: 0
Join Date: Aug 2010
Posts: 91
Received Thanks: 4
|
SkipBaalOnDolls und die anderen beiden skip on x funktionen haben bei mir auch noch nie das gewünschte ergebnis erzielt.
war aber auch nie so das prob, meine sorc hat die souls einfach mit nem virtel FO lang gemacht
das problem mit dem restart des games nach der 2. welle wenn sie wieder an die ausgangsposition porten will hat also niemand ausser mir?
|
|
|
09/15/2010, 16:01
|
#280
|
elite*gold: 0
Join Date: Jul 2006
Posts: 469
Received Thanks: 235
|
Ok, ist mir grade eingefallen, daher will ich's rasch posten bevor ich's wieder vergesse. Wer das dann schlussendlich umsetzt, oder auch nicht ist ja Nebensache
Die Idee wäre aber, dass man statt all den Spells die man momentan zuweisen kann und im Endeffekt doch nicht so wirklich funktionieren einfach eine priorisierte Liste geben kann?
Sprich sowas:
NT_TimedSpells = [59];
NT_UntimedSpells = [48,47,55];
Und der Bot würde dann halt den ersten Timed & Untimed Spell nehmen gegen welchen das Monster nicht immune ist. Und die Bedingung für Immunität wäre dann sowas wie "Monster ist gegen alle Spells Immune"
Dazu könnte man dann wieder die Unterteilung Bosse / andere machen. Aber zumindest mir würde die Variante besser gefallen - nur muss ich mich dann erst Mal in das NT_Attack Dingens einarbeiten, denn da hab ich den Durchblick noch lange nicht. Aber sollte etwa so gemacht werden können:
Code:
//Pseudo Code!
for (i=0, i<NT_TimedSpells.length, i++)
{
if (!IsImmuneTo(_monster, NT_TimedSpells[i]))
break;
}
NTConfig_AttackSkill[0] = NT_TimedSpells[i];
Und dass dann noch für den anderen Untimed Skill. Weil eigentlich braucht man ja nur die beiden zu definieren, oder? Klar ist's nicht ganz so einfach, aber halt so als Idee
|
|
|
09/15/2010, 17:00
|
#281
|
elite*gold: 0
Join Date: Jun 2010
Posts: 162
Received Thanks: 16
|
also rennt soweit gut aber eins nervt a bissal der bot (mein mf baba) die gefundenen items picked idented und dann in der city dropped -- der soll den kack verkaufen -- wo stell ich das ein?
|
|
|
09/15/2010, 17:31
|
#282
|
elite*gold: 0
Join Date: Aug 2010
Posts: 91
Received Thanks: 4
|
Quote:
Originally Posted by cx23
also rennt soweit gut aber eins nervt a bissal der bot (mein mf baba) die gefundenen items picked idented und dann in der city dropped -- der soll den kack verkaufen -- wo stell ich das ein?
|
stell mal MWConfig_MinItemsToIdent auf 3-4, dann gehts öfters zum händler, du kannst auch MWConfig_IdentAfterPickup auf false stellen, dann sollte der bot immer zum händler gehen. (ungetestet)
würde ich aber nicht empfehlen, so kommt zwar nicht sehr viel gold rein, dafür spart man sich sehr viel zeit durch gerenne in der stadt und hat mehr zeit für die eigentlichen runs.
meiner verkauft auch kaum items, besonders geil ist immer wenn ein run zuende ist, sie alle items pickt, IDt und dann in die stadt zum händler geht um pötte zu kaufen :ugly:
wenn dort mehr items liegen würden als sie tragen kann macht das ja sinn, aber da liegen halt nur 3 und die passen auch ins inventar, trotzdem macht sie manchmal einfach Ident bei mephi z.B. und macht danach n TP.
ist mir aber relativ egal, gameln ist eh fürn eimer wenn man kein goldbarb ist, finde ich.
hauptsache man hat genug geld falls der merc dann doch mal rippen sollte, aber das sollte eigentlich nie zum problem werden.
gambeln tut sie dann halt nicht so oft, aber hin und wieder.
|
|
|
09/15/2010, 18:09
|
#283
|
elite*gold: 0
Join Date: Sep 2010
Posts: 16
Received Thanks: 0
|
Quote:
Originally Posted by immuf
GreaterPotions werden bei mir nicht eingesammelt.
Ka woran das mit dem evade liegt, werde da wohl nochmal n bissl rumprobieren.
Was aber def. bei mir nicht funktioniert sind die SkipBaalOnDolls und -Souls. Da interessiert es den nicht, ob welche davon im Thronsaal sind, weswegen ich da dauernd n Chicken hab
/edit
Und schon wieder bleibt die Sorc in Hydren stehen und macht somit n Chicken.
Kann es sein, dass der Bot das sich auffüllende Leben als richtiges Leben interpretiert?
|
Das gleiche Prob jetzt mit Manatränken .. die Sorc holt einfach keine obwohl das Mana leer ist. Ich fürchte es könnte daran liegen, dass ich noch Rejv Tränke im Inv hab ..
|
|
|
09/15/2010, 19:17
|
#284
|
elite*gold: 0
Join Date: Aug 2010
Posts: 91
Received Thanks: 4
|
Quote:
Originally Posted by immuf
Das gleiche Prob jetzt mit Manatränken .. die Sorc holt einfach keine obwohl das Mana leer ist. Ich fürchte es könnte daran liegen, dass ich noch Rejv Tränke im Inv hab ..
|
hast du MWConfig_BuyPotionsOnLackOfMana auf true? dann müsste das eigentlich funktionieren, tut es bei mir zumindest, egal wie viele RV pots ich noch hab.
nur mit HP geht das ganze nicht, die funktion ist nur für mana pötte gedacht, was eigentlich sehr schade ist, da es so vorkommen kann das der char sich zu tode/chicken kämpft (oder pots findet), aber das ist ein anderes thema.
EDIT:
falls das gar nicht geht mach mal folgenden workaround, so hab ich es gemacht als es die funktion MWConfig_BuyPotionsOnLackOfMana noch nicht gab bzw. eher als ich noch sternenloopers benutz hab.
set einfach NTConfig_ManaRejuvThresh auf 1-3% dann nimmt sie zur not einen RV trank wenn das mana unter dem eingestellten wert ist, hat "damals" (vor 2 wochen als ich NT das erste mal kennengelernt hab^^) immer sehr gut funktioniert.
|
|
|
09/15/2010, 19:47
|
#285
|
elite*gold: 0
Join Date: May 2010
Posts: 212
Received Thanks: 40
|
Classic Soso script Cs
Einen Fehler bei deSeis behoben dank der Hilfe von IDevil.
Danke nochmal.
Einen weiteren bei deSeis gefunden und behoben.
Nun habe ich bei Venom noch ein Problem.
Es kommt vor, dass Venom tot ist und meine Soso nicht zu Dia will.
Und wenn ich es richtig sehe, unabhängig vom Standort der seals.
Kann da bitte mal jemand drüberschauen und mir nen Tipp geben?
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 09/05/2010
* Modyfied for Classic Soso by
* Last update 09/15/2010
*/
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
if(!NTTM_CheckAct())
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_TownMove()");
return;
}
if(!NTM_TakeWaypoint(107))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTP_DoPrecast(true);
if(!NTM_MoveTo(108, 7797, 5560))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
if(!MWConfig_StartAtStar)
{
var _attackpos = [7792, 5525, 7793, 5501, 7773, 5495, 7768, 5480, 7767, 5458, 7770, 5438, 7774, 5417, 7767, 5391, 7768, 5369, 7769, 5345, 7770, 5320, 7780, 5308];
if(!NTM_MoveTo(me.areaid, 7790, 5544))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
if(NTConfig_PublicMode)
{
var _monsterCount = MWA_FindNearbyMonsters(20);
if(_monsterCount)
{
if(_monsterCount < 3)
Say("TP cold, " + _monsterCount + " Monsters close!");
else if(_monsterCount < 6)
Say("TP warm, " + _monsterCount + " Monsters close!");
else
Say("TP hot, " + _monsterCount + " Monsters close!");
}
else
Say("TP up, no Monsters close!");
NTM_MakeTP();
}
NTA_ClearPosition(25, false, 2);
NTM_MoveTo(me.areaid, 7790, 5544);
NTC_PingDelay(1000);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7790, 5544);
if(NTConfig_PublicMode)
{
if(MWA_FindNearbyMonsters(15) < 2)
Say("TP should be safe now!");
else
Say("TP still might be warm!");
}
for(var i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1], 3, true);
NTA_ClearPosition(35, true, 2);
}
}
NTM_MoveTo(me.areaid, 7792, 5292);
if(NTConfig_PublicMode)
{
if(MWConfig_StartAtStar)
{
var _monsterCount = MWA_FindNearbyMonsters(25);
if(_monsterCount)
{
if(_monsterCount < 3)
Say("TP cold, cleaning Star, then Vizier, " + _monsterCount + " Monsters close!");
else if(_monsterCount < 6)
Say("TP warm, cleaning Star, then Vizier, " + _monsterCount + " Monsters close!");
else
Say("TP hot, cleaning Star, then Vizier, " + _monsterCount + " Monsters close!");
}
else
Say("TP up, no Monsters close!");
}
Say("Cleaning Star, then Vizier!");
Say("Let me open Seals !");
NTM_MakeTP();
}
NTC_Delay(1000);
NTP_DoPrecast(true);
NTA_ClearPosition(30);
NTM_MoveTo(me.areaid, 7792, 5292, 3, true);
if(!NT_OpenSealsInt())
{
NTC_SendMsgToScript("MWBotGame.ntj", "NT_OpenSealsInt()");
return;
}
if(NTConfig_PublicMode)
Say("Killing Diablo");
if(!NTM_MoveTo(me.areaid, 7792, 5292))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
NTP_DoPrecast(true);
if(me.classid == NTC_CHAR_CLASS_PALADIN && !MWC_CheckForExpShrineUsers())
NTC_PutSkill(109, NTC_HAND_RIGHT);
if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTTMGR_CheckSafe()");
return;
}
NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100);
if(!NTA_KillMonster(243))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTA_KillMonster()");
return;
}
NTSI_PickItems();
if(NTConfig_PublicMode)
Say("Next game");
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
// Internal function
function NT_OpenSealsInt()
{
var i, _unit;
var _result;
_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
if(!_unit)
return false;
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 396)
{
if(_unit[i].roomy*5 + _unit[i].y == 5275)
_result = NT_OpenVizierSealInt(1);
else
_result = NT_OpenVizierSealInt(2);
break;
}
}
if(!_result)
return false;
NTM_MoveTo(me.areaid, 7792, 5292, 3, true);
NTA_ClearPosition(40);
NTP_DoPrecast();
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 394)
{
if(_unit[i].roomx*5 + _unit[i].x == 7773)
_result = NT_OpenDeSeisSealInt(1);
else
_result = NT_OpenDeSeisSealInt(2);
break;
}
}
if(!_result)
return false;
NTM_MoveTo(me.areaid, 7792, 5292, 3, true);
NTA_ClearPosition(40);
NTP_DoPrecast(true);
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 392)
{
if(_unit[i].roomx*5 + _unit[i].x == 7893)
_result = NT_OpenVenomSealInt(1);
else
_result = NT_OpenVenomSealInt(2);
break;
}
}
return _result;
}
function NT_OpenVizierSealInt(type)
{
var i, n;
var _attackpos = [7793, 5267, 7815, 5288, 7798, 5314, 7770, 5288, 7750, 5308, 7730, 5300, 7720, 5306, 7700, 5300, 7680, 5300, 7670, 5300, 7660, 5315, 7660, 5292]; //ff
var _monstername = GetLocaleString(2851);
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1], 3, true);
NTA_ClearPosition(30, true, 2);
NTSI_PickItems(); //ff
}
for(i = 0 ; i < 3 ; i++)
{
if(type == 1) //ff river
{
NT_OpenSealInt(395, 7654, 5310);
NT_OpenSealInt(396, 7659, 5277);
NTM_MoveTo(me.areaid, 7665, 5277);
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
}
else //ff long
{
NTM_MoveTo(me.areaid, 7660, 5310); //ff
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
NT_OpenSealInt(395, 7650, 5276);
NT_OpenSealInt(396, 7651, 5310);
NTA_ClearPosition(); //ff
NTSI_PickItems(); //ff
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition();
NTSI_PickItems();
return NTM_MoveTo(me.areaid, 7750, 5280);
}
}
}
return false;
}
function NT_OpenDeSeisSealInt(type)
{
Say("DeSeis now, let me open Seal!"); //ff
var i, n;
var _attackpos = [7781, 5260, 7783, 5245, 7786, 5253, 7802, 5253, 7814, 5253, 7775, 5238]; //ff
var _monstername = GetLocaleString(2852);
var _deSeis, _dist;
switch(me.classid)
{
case NTC_CHAR_CLASS_BARBARIAN:
case NTC_CHAR_CLASS_PALADIN:
_dist = 8;
break;
case NTC_CHAR_CLASS_DRUID:
_dist = 10;
break;
default:
_dist = 12;
}
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
NTSI_PickItems(); //ff
}
for(i = 0 ; i < 3 ; i++)
{
if(type == 1) //ff long
NTM_MoveTo(me.areaid, 7769, 5210); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7769, 5190); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7817, 5170); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7817, 5160); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7817, 5156); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7790, 5158); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTTMGR_CheckSafe(NTConfig_CheckSelfSafe); //ff
NTC_Delay(200);
NT_OpenSealInt(394, 7769, 5159); // war 5158
_deSeis = NTC_FindUnit(NTC_UNIT_MONSTER, _monstername, 5);
NTM_MoveTo(me.areaid, 7790, 5194); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7771, 5196);
NTA_ClearPosition(30);
NTSI_PickItems(); //ff
//ff NTM_MoveTo(me.areaid, 7771, 5196);
if(_deSeis)
{ //ff
NTM_MoveTo(me.areaid, 7776, _deSeis.y + _dist);
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7776, 5195); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
} //ff
else //ff short
{
NTM_MoveTo(me.areaid, 7773, 5189); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7773, 5153); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NT_OpenSealInt(394, 7810, 5156);
_deSeis = NTC_FindUnit(NTC_UNIT_MONSTER, _monstername, 5);
NTM_MoveTo(me.areaid, 7790, 5156); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7780, 5156); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
NTM_MoveTo(me.areaid, 7800, 5193); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
// ff NTM_MoveTo(me.areaid, 7770, 5169);
_deSeis = NTC_FindUnit(NTC_UNIT_MONSTER, _monstername, 5);
if(_deSeis && _deSeis.y + _dist <= 5201)
{ //ff
NTM_MoveTo(me.areaid, 7776, _deSeis.y + _dist);
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
} // ff
else
{ // ff
NTM_MoveTo(me.areaid, 7776, 5195);
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
} // ff
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
NTA_ClearPosition(30); //ff
NTSI_PickItems(); //ff
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition(30);
NTSI_PickItems();
return NTM_MoveTo(me.areaid, 7800, 5255);
}
}
}
return false;
}
function NT_OpenVenomSealInt(type)
{
Say("Venom now, let me open Seals!")
var i, n;
var _attackpos = [7817, 5274, 7825, 5280, 7835, 5292, 7835, 5283, 7855, 5288];
var _monstername = GetLocaleString(2853);
NTP_DoPrecast(true); //ff
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1], 3, true);
NTA_ClearPosition(15, true, 2); //ff war 30, true, 2
NTSI_PickItems(); //ff
}
for(i = 0 ; i < 3 ; i++)
{
if(type == 1) //ff short
{
NTM_MoveTo(me.areaid, 7875, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7895, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7910, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7920, 5300); //ff
NTA_ClearPosition(); //ff
NTSI_PickItems(30);
NT_OpenSealInt(393, 7915, 5280);
NT_OpenSealInt(392, 7895, 5318);
NTM_MoveTo(me.areaid, 7880, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7890, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7895, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7900, 5300); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7905, 5300); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(30);
//ff NTM_MoveTo(me.areaid, 7892, 5298);
}
else //ff long
{
NTM_MoveTo(me.areaid, 7875, 5277); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7895, 5277); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7910, 5277); //ff
NTA_ClearPosition(); //ff
NTSI_PickItems(30);
NT_OpenSealInt(393, 7905, 5277);
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7931, 5272); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7934, 5285); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7935, 5305); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7931, 5310); //ff
NTA_ClearPosition(); //ff
NTM_MoveTo(me.areaid, 7921, 5310); //ff
NTA_ClearPosition(); //ff
NTSI_PickItems(30);
NT_OpenSealInt(392, 7916, 5310);
NTM_MoveTo(me.areaid, 7937, 5310); //ff
NTA_ClearPosition(30); //ff
NTM_MoveTo(me.areaid, 7937, 5300); //ff
NTA_ClearPosition(30); //ff
NTM_MoveTo(me.areaid, 7937, 5290); //ff
NTA_ClearPosition(30); //ff
NTM_MoveTo(me.areaid, 7937, 5280); //ff
NTA_ClearPosition(30); //ff
NTM_MoveTo(me.areaid, 7880, 5275); //ff
NTA_ClearPosition(30); //ff
NTSI_PickItems(30);
//ff NTM_MoveTo(me.areaid, 7937, 5305);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems(); //ff
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition(30, true, 2); //ff
NTSI_PickItems();
if(NTC_PutSkill(124, NTC_HAND_RIGHT))
NTC_PingDelay(1000);
NTA_ClearPosition(30, true, 2); //ff
return true;
}
}
}
return false;
}
function NT_OpenSealInt(classid, x, y)
{
var _seal;
NTM_MoveTo(me.areaid, x, y);
NTA_ClearPosition(30, true, 2);
NTSI_PickItems(); //ff
_seal = NTC_FindUnit(NTC_UNIT_OBJECT, classid, 5);
if(!_seal)
return false;
if(_seal.mode > 0)
return true;
for(var i = 0 ; i < 4 ; i++)
{
if((i % 2) == 0)
{
if(GetDistance(me, _seal) > 2)
NTM_MoveTo(_seal.areaid, _seal.x-1, _seal.y+1);
NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _seal);
}
NTC_Delay(500);
if(_seal.mode > 0)
return true;
}
return false;
}
Danke für die Mühe.
|
|
|
 |
|
Similar Threads
|
[Release] D2NT 3.1 1.13c
07/17/2016 - Diablo 2 - 91 Replies
hi,
hab eben den d2nt3.1 gefunden. ein neues baba script is dabei.
release thread eon
D2NT3.1
|
[Realease] Muddy's Waypoint Catcher
08/21/2013 - Diablo 2 Programming - 46 Replies
Moin zusammen,
hier mal die erste Release Version eines kleinen Scripts genannt Waypoint Catcher. Das ganze ist jetzt nichtmal 24h alt, dementsprechend sind vermutlich noch einige Bugs vorhanden. Hinweise dazu nehme ich gerne entgegen. ;)
Features:
- Suchen sämtlicher Wegpunkte mit Ausnahme, wobei in Akt ein durch Probleme im Jail Bereich nach dem Wegpunkt Outer Cloister abgebrochen wird
- Wahlweise auch mit TP an jedem gefundenen Wp, sodass man damit auch anderen (nicht-Bots) die...
|
[D2NT] Long Dia Release
05/10/2011 - Diablo 2 Programming - 28 Replies
Ein kleines Script für diablo, es startet beim eingang macht ein tp cleart den weg zum star macht am star noch ein tp dann läufts wie das normale nur cleart es schöner :)
hoffe euch gefällts ich habs noch nicht wirklich getestet (2-3 runs) bugs können gerne hier gepostet werden verbesserungs vorschläge auch :D
installation:
1.)Script in den Bot ordner kopieren
2.)Script im editor oder vergleichbaren öffnen
3.) Msg´s anpassen (ist nicht schwer)
4.) in der char config die zeile...
|
D2NT 3.0 Pickit release
10/22/2010 - Diablo 2 - 77 Replies
edit
|
Muddy's D2NT Help
07/29/2010 - Diablo 2 - 3 Replies
hi i just started to use the bot it work's great.
how do i set up the skill's i use on my Sorc and pick up itme's?
.....
if you reply to this post please use english
|
All times are GMT +1. The time now is 19:41.
|
|