|
You last visited: Today at 11:41
Advertisement
[Release] Muddy's D2NT
Discussion on [Release] Muddy's D2NT within the Diablo 2 Programming forum part of the Diablo 2 category.
04/01/2011, 17:45
|
#1051
|
elite*gold: 0
Join Date: Oct 2010
Posts: 105
Received Thanks: 11
|
Quote:
Originally Posted by Muddy_Waters
Alles klar, Super Chests in dem Sinne (also solche die auch so aussehen als wären sie super) sind das dann wohl nicht, was auch erklärt, warum sie in meinem Script nicht enthalten sind.
Du kannst einfach dein Mephisto Script durch den Inhalt der [Code]-Box ersetzen.
Lg
Muddy
|
Ich werde nochmal nachlesen, wie das genau in Unter Kurast war. Wenn ich Belege dafür hab, dass droprate besser ist, lass ich dirs zukommen.
ok, meph läuft. Er nimmt jetzt auch brav den Rüstungsständer mit, jedoch nur den rechts. Kann der linke auch noch mit?
|
|
|
04/01/2011, 18:29
|
#1052
|
elite*gold: 0
Join Date: Aug 2009
Posts: 435
Received Thanks: 159
|
was mir gerade beim zuschauen auffällt: meiner trinkt verhältnismäßig oft seine Pots nicht -.-
eigentlich so gut wie gar nicht wenn ich zuschaue 
Einstellungen sehen so aus:
Code:
NTConfig_LifeThresh = 75; // Drink a normal potion if under this percent of life.
NTConfig_LifeRejuvThresh = 50; // Drink a rejuvenation potion if under this percent of life.
NTConfig_ManaThresh = 30; // Drink a normal potion if under this percent of mana.
NTConfig_ManaRejuvThresh = 0; // Drink a rejuvenation potion if under this percent of mana.
NTConfig_MercLifeThresh = 60; // This is the threshold to use a life potion on your merc in percent.
NTConfig_MercRejuvThresh = 30; // This is the threshold to use a rejuv potion on your merc in percent.
was ist da los?
edit: na gut er trinkt sie doch, aber kann es sein, dass das Delay dazwischen relativ hoch ist? er trinkt einen doch es dauert ne halbe Ewigkeit bis er den nächsten trinkt...
muss wohl besseres Equip her^^
edit2: das mit dem aus dem Ordner nehmen, also den Unterordner umgehen hat noch nicht geholfen... Problem bleibt bestehen... welche Funktion/welcher Aufruf ist denn dafür zuständig? dann kann ich selbst mal nachgucken^^
|
|
|
04/01/2011, 18:43
|
#1053
|
elite*gold: 0
Join Date: Feb 2011
Posts: 394
Received Thanks: 75
|
was mir mal aufgefallen ist, bei den grundeinstellungen der soso war bei mir
NTConfig_LifeRejuvThresh = 30
und chicken war ebenfalls auf 30 eingestellt^^ hatte daher anfangst irgendwie viele chickens.
Würd aber das weng runterstellen evt. Halt das dein life tresh bei 67 nimmst und rejuv bei 37 und chicken bei 30. So hab ich das eingestellt und es läuft prima  Und meine sorc hat ziemlichen crapgear an. Musst aber sonst selbst mal weng schaun, welche einstellungen für dich gut sind und bisschen austesten, wann er genau welche tränke trinken sollte.
|
|
|
04/01/2011, 19:15
|
#1054
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
Quote:
Originally Posted by getgoodson
Ich werde nochmal nachlesen, wie das genau in Unter Kurast war. Wenn ich Belege dafür hab, dass droprate besser ist, lass ich dirs zukommen.
ok, meph läuft. Er nimmt jetzt auch brav den Rüstungsständer mit, jedoch nur den rechts. Kann der linke auch noch mit? 
|
Faulheit meinerseits...
Versuch es mal so:
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 19:14 01.04.2011
*/
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
MWC_Initialize();
var _chest, _portal;
if(!NTTM_CheckAct(me.act, true))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_CheckAct, 20, me.act, true);
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_TownMove, 28, "waypoint");
return;
}
if(!NTM_TakeWaypoint(101))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeWaypoint, 34, 101);
return;
}
NTP_DoPrecast(true);
if(!NTM_MoveToStair(me.areaid, 102))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToStair, 42, me.areaid, 102);
return;
}
if(!NTM_TakeStair(102))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeStair, 48, 102);
return;
}
if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTMGR_CheckSafe, 54, NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
return;
}
if(!NTM_MoveTo(me.areaid, 17564, 8069))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveTo, 60, me.areaid, 17564, 8069);
return;
}
NTC_Delay(200);
if(me.classid != NTC_CHAR_CLASS_PALADIN && me.classid != NTC_CHAR_CLASS_BARBARIAN)
NTM_MoveTo(me.areaid, 17573, 8071);
if(!NTA_KillMonster(242))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTA_KillMonster, 71, 242);
return;
}
if(NTConfig_ClearPosition)
NTA_ClearPosition();
NTSI_PickItems();
NTM_MoveTo(me.areaid, 17590, 8070);
NTM_WalkTo(17590, 8069);
if(MWConfig_OpenMephistoChest)
{
if(NTM_MoveTo(me.areaid, 17520, 8063))
NTA_ClearPosition(30, true);
_chest = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3260), 1);
if(_chest)
{
do
{
if(_chest.x == 17513 && _chest.y == 8063)
{
if(NTC_OpenChest(_chest))
NTSI_PickItems();
break;
}
} while(_chest.GetNext());
}
}
if(MWConfig_MephistoClearArea)
{
// Left room
if(NTM_MoveTo(me.areaid, 17607, 8126))
NTA_ClearPosition(30, true);
if(NTM_MoveTo(me.areaid, 17569, 8125))
NTA_ClearPosition(25, true);
}
if(MWConfig_OpenMephistoChest)
{
NTM_MoveTo(me.areaid, 17570, 8018)
_chest = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3247), 1);
if(_chest && NTC_OpenChest(_chest))
NTSI_PickItems();
}
if(MWConfig_MephistoClearArea)
{
// Center
if(NTM_MoveTo(me.areaid, 17630, 8069))
NTA_ClearPosition(40, true);
// Right room
if(NTM_MoveTo(me.areaid, 17607, 8015))
NTA_ClearPosition(30, true);
if(NTM_MoveTo(me.areaid, 17569, 8010))
NTA_ClearPosition(25, true);
}
if(MWConfig_OpenMephistoChest)
{
NTM_MoveTo(me.areaid, 17570, 8118)
_chest = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3248), 1);
if(_chest && NTC_OpenChest(_chest))
NTSI_PickItems();
}
NTSI_PickItems(true);
NTM_MoveTo(me.areaid, 17590, 8069);
_portal = NTC_FindUnit(NTC_UNIT_OBJECT, 342, 1);
if(_portal)
NTM_UsePortal("Portal", 103, "dummy", _portal);
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
Quote:
Originally Posted by DeathFromHeaven
was mir gerade beim zuschauen auffällt: meiner trinkt verhältnismäßig oft seine Pots nicht -.-
eigentlich so gut wie gar nicht wenn ich zuschaue 
Einstellungen sehen so aus:
Code:
NTConfig_LifeThresh = 75; // Drink a normal potion if under this percent of life.
NTConfig_LifeRejuvThresh = 50; // Drink a rejuvenation potion if under this percent of life.
NTConfig_ManaThresh = 30; // Drink a normal potion if under this percent of mana.
NTConfig_ManaRejuvThresh = 0; // Drink a rejuvenation potion if under this percent of mana.
NTConfig_MercLifeThresh = 60; // This is the threshold to use a life potion on your merc in percent.
NTConfig_MercRejuvThresh = 30; // This is the threshold to use a rejuv potion on your merc in percent.
was ist da los?
edit: na gut er trinkt sie doch, aber kann es sein, dass das Delay dazwischen relativ hoch ist? er trinkt einen doch es dauert ne halbe Ewigkeit bis er den nächsten trinkt...
muss wohl besseres Equip her^^
edit2: das mit dem aus dem Ordner nehmen, also den Unterordner umgehen hat noch nicht geholfen... Problem bleibt bestehen... welche Funktion/welcher Aufruf ist denn dafür zuständig? dann kann ich selbst mal nachgucken^^
|
Das mit den Tränken werde ich mal nachvollziehen. Da ich den Tools Thread zum Großteil neu geschrieben habe, kann es durchaus sein, dass sich Fehler eingeschlichen haben.
Zu deinem anderen Problem:
Bitte poste mal das betreffende Script, würde da gerne mal reinschauen.
Quote:
Originally Posted by Shrims
was mir mal aufgefallen ist, bei den grundeinstellungen der soso war bei mir
NTConfig_LifeRejuvThresh = 30
und chicken war ebenfalls auf 30 eingestellt^^ hatte daher anfangst irgendwie viele chickens.
Würd aber das weng runterstellen evt. Halt das dein life tresh bei 67 nimmst und rejuv bei 37 und chicken bei 30. So hab ich das eingestellt und es läuft prima  Und meine sorc hat ziemlichen crapgear an. Musst aber sonst selbst mal weng schaun, welche einstellungen für dich gut sind und bisschen austesten, wann er genau welche tränke trinken sollte.
|
Also bei mir ist es in der Default Config anders, aber ich kann mich natürlich irren.
Ansonsten habe ich das natürlich mit völliger Absicht eingebaut, um sicherzustellen, dass man beim Einstellen mitdenkt.
Meine Sorcs laufen mittlerweile auch halbwegs, auch wenn das aus meiner Sicht zum Großteil auf FastMod in Verbindung mit meinem Ausweichalgorithmus zurückgeht.
Lg
Muddy
|
|
|
04/01/2011, 19:48
|
#1055
|
elite*gold: 0
Join Date: Oct 2010
Posts: 105
Received Thanks: 11
|
Quote:
Originally Posted by Muddy_Waters
Faulheit meinerseits...
Versuch es mal so:
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 19:14 01.04.2011
*/
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
MWC_Initialize();
var _chest, _portal;
if(!NTTM_CheckAct(me.act, true))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_CheckAct, 20, me.act, true);
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_TownMove, 28, "waypoint");
return;
}
if(!NTM_TakeWaypoint(101))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeWaypoint, 34, 101);
return;
}
NTP_DoPrecast(true);
if(!NTM_MoveToStair(me.areaid, 102))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToStair, 42, me.areaid, 102);
return;
}
if(!NTM_TakeStair(102))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeStair, 48, 102);
return;
}
if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTMGR_CheckSafe, 54, NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
return;
}
if(!NTM_MoveTo(me.areaid, 17564, 8069))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveTo, 60, me.areaid, 17564, 8069);
return;
}
NTC_Delay(200);
if(me.classid != NTC_CHAR_CLASS_PALADIN && me.classid != NTC_CHAR_CLASS_BARBARIAN)
NTM_MoveTo(me.areaid, 17573, 8071);
if(!NTA_KillMonster(242))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTA_KillMonster, 71, 242);
return;
}
if(NTConfig_ClearPosition)
NTA_ClearPosition();
NTSI_PickItems();
NTM_MoveTo(me.areaid, 17590, 8070);
NTM_WalkTo(17590, 8069);
if(MWConfig_OpenMephistoChest)
{
if(NTM_MoveTo(me.areaid, 17520, 8063))
NTA_ClearPosition(30, true);
_chest = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3260), 1);
if(_chest)
{
do
{
if(_chest.x == 17513 && _chest.y == 8063)
{
if(NTC_OpenChest(_chest))
NTSI_PickItems();
break;
}
} while(_chest.GetNext());
}
}
if(MWConfig_MephistoClearArea)
{
// Left room
if(NTM_MoveTo(me.areaid, 17607, 8126))
NTA_ClearPosition(30, true);
if(NTM_MoveTo(me.areaid, 17569, 8125))
NTA_ClearPosition(25, true);
}
if(MWConfig_OpenMephistoChest)
{
[COLOR="Red"]NTM_MoveTo(me.areaid, 17570, 8118)[/COLOR]
_chest = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3247), 1);
if(_chest && NTC_OpenChest(_chest))
NTSI_PickItems();
}
if(MWConfig_MephistoClearArea)
{
// Center
if(NTM_MoveTo(me.areaid, 17630, 8069))
NTA_ClearPosition(40, true);
// Right room
if(NTM_MoveTo(me.areaid, 17607, 8015))
NTA_ClearPosition(30, true);
if(NTM_MoveTo(me.areaid, 17569, 8010))
NTA_ClearPosition(25, true);
}
if(MWConfig_OpenMephistoChest)
{
[COLOR="Red"]NTM_MoveTo(me.areaid, 17570, 8018)[/COLOR]
_chest = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3248), 1);
if(_chest && NTC_OpenChest(_chest))
NTSI_PickItems();
}
NTSI_PickItems(true);
NTM_MoveTo(me.areaid, 17590, 8069);
_portal = NTC_FindUnit(NTC_UNIT_OBJECT, 342, 1);
if(_portal)
NTM_UsePortal("Portal", 103, "dummy", _portal);
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
Lg
Muddy
|
hehe, jetzt telt er zu beiden ständern, klickt sie aber nicht an 
gleich haben wirs!
|
|
|
04/01/2011, 21:49
|
#1056
|
elite*gold: 0
Join Date: Oct 2010
Posts: 211
Received Thanks: 44
|
Huhu,
deine Lösung bezüglich Mausoleum scheint zu funktionieren(nicht das ich daran gezweifelt hätte  )
Muss aber gleich mit nem anderen Problem nerven 
Habe nun mal Duriel hinzugefügt und eingestellt und naja, die ersten 3 Runs liefen problemlos, bis ich eben wiederkam und folgendes vorfinde
Hab den Code mal direkt hier drin
Code:
function NTIPCheckItem(item, checkQuantity, nipDebug)
{
var i;
var _identified;
var _result = 0;
var _quantity, _quantityString, _replacedCheckListItem, _specs;
_identified = item.itemflag & 0x10;
if(arguments.length < 2)
checkQuantity = false;
if(arguments.length < 3)
nipDebug = false;
for(i = 0 ; i < _NTIP_CheckList.length ; i++)
{
if(_NTIP_CheckList[i][0].length > 0)
{
if(_NTIP_CheckList[i][0].indexOf("maxquantity") == -1)
{
if(eval(_NTIP_CheckList[i][0]))
{
if(_NTIP_CheckList[i][1].length > 0)
{
[color=red]if(eval(_NTIP_CheckList[i][1]))[/color]
{
if(nipDebug)
return new Array(1, _NTIP_CheckList[i][2], _NTIP_CheckList[i][3], _NTIP_CheckList[i][4], _NTIP_CheckList[i][0] + " && " + _NTIP_CheckList[i][1]);
return 1;
}
else if(!_identified && _result == 0)
_result = -1;
}
else
{
if(nipDebug)
return new Array(1, _NTIP_CheckList[i][2], _NTIP_CheckList[i][3], _NTIP_CheckList[i][4], _NTIP_CheckList[i][0]);
return 1;
}
}
}
else
{
// Extract the quantity from the string and cast it to integer
_quantityString = _NTIP_CheckList[i][0].split("&&")[0];
for(var n = 0; n < _quantityString.length; n++)
{
if(!isNaN(_quantityString.charAt(n)))
{
_quantity = parseInt(_quantityString.substring(n, _quantityString.length));
break;
}
}
// Remove the quantity definition from the nip string in JavaScript Syntax
_replacedCheckListItem = _NTIP_CheckList[i][0].replace(/maxquantity==\d+&&/gi,"");
if(eval(_replacedCheckListItem))
{
if(_NTIP_CheckList[i][1].length > 0)
{
if(eval(_NTIP_CheckList[i][1]) && (!checkQuantity || MWIPCheckItemQuantity(_quantity, _replacedCheckListItem + "&&" + _NTIP_CheckList[i][1], item.gid)))
{
if(nipDebug)
return new Array(1, _NTIP_CheckList[i][2], _NTIP_CheckList[i][3], _NTIP_CheckList[i][4], _replacedCheckListItem + " && " + _NTIP_CheckList[i][1]);
return 1;
}
else if(!_identified && _result == 0)
_result = -1;
else
_result = 3;
}
else if(!checkQuantity || MWIPCheckItemQuantity(_quantity, _replacedCheckListItem, item.gid))
{
if(nipDebug)
return new Array(1, _NTIP_CheckList[i][2], _NTIP_CheckList[i][3], _NTIP_CheckList[i][4], _replacedCheckListItem);
return 1;
}
else
_result = 3;
}
}
}
else if(_NTIP_CheckList[i][1].length > 0)
{
if(eval(_NTIP_CheckList[i][1]))
return 1;
else if(!_identified && _result == 0)
_result = -1;
}
}
return _result;
}
Hoffe man sieht den roten Bereich, das ist Zeile 96(Als Orientierungshilfe, falls du es dir nicht eh Lokal öffnest). Ich hab versucht mal drüberzuschaun, aber natürlich fällt mir nichts auf^^
Der Bot stand wieder da und hat nichts gemacht, weil er sich auf Pause gestellt hat
Er läuft gerade wieder an, mal schaun ob das öfters kommt
Falls du mal Zeit hast, würd ich mich freuen
Grüße
/edit: Per Google hab ich nichts gefunden, scheint also noch nicht so oft vorgekommen zu sein
Den Klammerfehler im Cowscript hab ich zumindest so gefunden
|
|
|
04/01/2011, 22:17
|
#1057
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
@getgoodson
Ich habe es mal in deinen Beitrag reineditiert.
Ich vermute ich habe die beiden Seiten genau vertauscht, schau mal ob es so funktioniert.
@Aceridos
Ich meine mich dazu schonmal geäußert zu haben.
An dieser Stelle wird ein JavaScript Ausdruck evaluiert, der aus einer Zeile in deinen .nip Files generiert wurde.
Dieser JavaScript Ausdruck ist aber offensichtlich syntaktisch falsch, was auf einen Fehler in einen .nip Files deutet.
Scheint irgendwie öfter vorzukommen, ich denke ich setze mal eine Funktion zur automatischen Überprüfung der .nip Files mit auf meine ToDo List.
Sowas sollte angesichts meiner Vorarbeit eigentlich schnell gemacht sein.
Für den Moment müsstest du aber wohl suchen - welche Zeile falsch ist, ist so nämlich nicht ersichtlich.
Lg
Muddy
|
|
|
04/01/2011, 22:59
|
#1058
|
elite*gold: 0
Join Date: Oct 2010
Posts: 211
Received Thanks: 44
|
Also ist z.b. ein Item gedropt, welches in den Nipfiles falsch eingefügt wurde? Deswegen kam dann der Fehler? Frag mich nur warum der Fehler nicht schon z.b. gestern auftaucht
Ich schau aber mal die Files durch oder mach nen Test mit sternenlooper, der hat ja glaub ich so ein Check der Nipfiles drin und außer dem MaxQuantity nutzt ihr die gleichen Syntaxe, wenn nicht werd ichs eh merken
Danke dir
|
|
|
04/01/2011, 23:31
|
#1059
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
Quote:
Originally Posted by Aceridos
Also ist z.b. ein Item gedropt, welches in den Nipfiles falsch eingefügt wurde? Deswegen kam dann der Fehler? Frag mich nur warum der Fehler nicht schon z.b. gestern auftaucht
Ich schau aber mal die Files durch oder mach nen Test mit sternenlooper, der hat ja glaub ich so ein Check der Nipfiles drin und außer dem MaxQuantity nutzt ihr die gleichen Syntaxe, wenn nicht werd ichs eh merken
Danke dir
|
Ja, im Grunde siehst du das schon richtig.
Man muss sich nur anschauen, wie der Abgleich stattfindet.
Geht auch ein bisschen in die Grundlagen der Logik, wobei die Begriffe "hinreichend" und "notwendig" interessant sind.
Hier nochmal das Ziel des Abgleichs:
Das Auffinden einer Zeile, die das Aufheben eines Item rechtfertigt.
Man sollte sich auch nochmal vor Augen führen, dass sich eine Zeile in zwei Abschnitte unterteilt, in .nip Syntax gekennzeichnet durch das #.
Dass nun der erste Abschnitt einer solchen Zeile zu einer Übereinstimmung führt, ist notwendige Bedingung dafür, dass der Zweite Teil überhaupt überprüft wird.
Ausserdem gilt:
Dass Auffinden der ersten Zeile, die zu einer kompletten Übereinstimmung führt, ist hinreichende Bedingung dafür, dass die Funktion abgebrochen wird und keine weiteren Zeilen überprüft werden.
(Denn eine solche Übereinstimmung ist nicht mehr steigerungsfähig)
Aus obiger Betrachtung ergeben sich zwei Möglichkeiten, die dazu führen, dass die Fehlermeldung erst bei einem gewissen Item auftaucht: - Der Fehler befindet sich im Abschnitt hinter dem # (wahrscheinlich)
- Der Fehler befindet sich am Anfang einer Zeile, die aber so weit hinten liegt, dass sie nie erreicht wird (unwahrscheinlich)
Solltest also in erster Linie immer nach dem # schauen, alles andere ist nicht wahrscheinlich.
Lg
Muddy
|
|
|
04/02/2011, 00:16
|
#1060
|
elite*gold: 0
Join Date: Oct 2010
Posts: 211
Received Thanks: 44
|
Da fällts mir auch wieder ein... ich hab die Pickit im Sternenlooper editiert und dann wieder zurückkopiert, da war dann auch die geänderte [MaxMana] (deine version) = [MaxMP] (sternenlooper) enthalten wegen der Sternenlooper beim chestrun testen rumgemeckert hat
War bei den Rare Circlets oder Diademen gestanden, evtl auch bei den Crafts
Sollte den Fehler also haben, ich schau aber nochmal zur Sicherheit, welche Variable du verwendest, nicht das ich 2 Unterschiedliche habe und die eigentlich richtige in eine falsche umwandle
Dankeschön
P.S. Bist du eigentlich Lehrer o.ä.?
Diese Geduld und die Fähigkeit den Sachverhalt so gut zu beschreiben bzw. die Dinge zu erklären. Find ich irgendwie beeindruckend :top:
/e: Variablen natürlich vertauscht haha
|
|
|
04/02/2011, 15:31
|
#1061
|
elite*gold: 0
Join Date: Aug 2009
Posts: 435
Received Thanks: 159
|
so hab festgestellt, dass es manchmal funktioniert und manchmal nicht... auch so, dass es bei einem script nicht funktionierte aber beim nächsten schon und bei dem danach wieder nicht...
hier mal ein script:
Code:
////////////////////////////////////////////
//Botscripts modificated by njomnjomnjom //
////////////////////////////////////////////
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
MWC_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(79))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTP_DoPrecast(true);
Delay(500);
_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
if(_unit)
{
for(n = 0 ; n < _unit.length ; n++)
{
if(_unit[n].id == 580)
{
NTM_MoveTo(me.areaid, _unit[n].roomx*5+_unit[n].x, _unit[n].roomy*5+_unit[n].y);
_chest = NTC_FindUnit(NTC_UNIT_OBJECT, "chest");
if(_chest)
{
do
{
if(NTC_OpenChest(_chest))
NTSI_PickItems();
}while(_chest.GetNext());
}
}
}
}
if(!NTM_MoveToStair(80, 92))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveToStair()");
return;
}
Delay(500);
_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
if(_unit)
{
for(n = 0 ; n < _unit.length ; n++)
{
if(_unit[n].id == 580)
{
NTM_MoveTo(me.areaid, _unit[n].roomx*5+_unit[n].x, _unit[n].roomy*5+_unit[n].y);
_chest = NTC_FindUnit(NTC_UNIT_OBJECT, "chest");
if(_chest)
{
do
{
if(NTC_OpenChest(_chest))
NTSI_PickItems();
}while(_chest.GetNext());
}
}
}
}
if(!NTM_MoveToStair(81, 92))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveToStair()");
return;
}
Delay(500);
_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
if(_unit)
{
for(n = 0 ; n < _unit.length ; n++)
{
if(_unit[n].id == 580)
{
NTM_MoveTo(me.areaid, _unit[n].roomx*5+_unit[n].x, _unit[n].roomy*5+_unit[n].y);
_chest = NTC_FindUnit(NTC_UNIT_OBJECT, "chest");
if(_chest)
{
do
{
if(NTC_OpenChest(_chest))
NTSI_PickItems();
}while(_chest.GetNext());
}
}
}
}
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
und ein weiteres:
Code:
////////////////////////////////////////////
//Botscripts modificated by njomnjomnjom //
////////////////////////////////////////////
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
MWC_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(3))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTP_DoPrecast(true);
if(!NTM_MoveToStair(17, 19))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveToStair()");
return;
}
if(!NTM_TakeStair(19))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeStair()");
return;
}
if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_OBJECT, 397, -10, 0))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveToPresetUnit()");
return;
}
Delay(50);
if(NTConfig_OpenChest)
{
var _chest;
_chest = NTC_GetSpecialChest();
if(_chest)
{
if(!NTM_MoveTo(me.areaid, _chest.x+1, _chest.y))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
for(i = 0; i <= 5; i++)
{
if(GetDistance(me.x,me.y,_chest.x,_chest.y) < 5 )
{
if(NTC_OpenChest(_chest))
{
NTSI_PickItems();
break;
}
}
else
{
Print("ÿc8Gegner mit Knockback???");
NTM_MoveTo(me.areaid, _chest.x+1, _chest.y)
}
}
}
else
{
Print("ÿc8Keine Chest gefunden.");
Print("ÿc8Verzweiflungsschlag wird ausgeführt.");
var _randomchest;
_randomchest = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3260));
if(_randomchest)
{
if(!NTM_MoveTo(me.areaid, _randomchest.x+1, _randomchest.y))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
for(i = 0; i <= 5; i++)
{
if(GetDistance(me.x,me.y,_randomchest.x,_randomchest.y) < 5 )
{
if(NTC_OpenChest(_randomchest))
{
NTSI_PickItems();
break;
}
}
else
{
Print("ÿc8Gegner mit Knockback???");
NTM_MoveTo(me.areaid, _randomchest.x+1, _randomchest.y)
}
}
}
else
{
Print("ÿc8Scheisse");
}
}
}
Delay(500);
_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
if(_unit)
{
for(n = 0 ; n < _unit.length ; n++)
{
if(_unit[n].id == 580)
{
NTM_MoveTo(me.areaid, _unit[n].roomx*5+_unit[n].x, _unit[n].roomy*5+_unit[n].y);
_chest = NTC_FindUnit(NTC_UNIT_OBJECT, "chest");
if(_chest)
{
do
{
if(NTC_OpenChest(_chest))
NTSI_PickItems();
}while(_chest.GetNext());
}
}
}
}
if(!NTM_MoveToStair(19, 17))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveToStair()");
return;
}
if(!NTM_TakeStair(17))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeStair()");
return;
}
if(!NTM_MoveToStair(17, 18))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveToStair()");
return;
}
if(!NTM_TakeStair(18))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeStair()");
return;
}
if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_OBJECT, 397, -10, 0))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveToPresetUnit()");
return;
}
if(NTConfig_OpenChest)
{
var _chest;
_chest = NTC_GetSpecialChest();
if(_chest)
{
if(!NTM_MoveTo(me.areaid, _chest.x+1, _chest.y))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
for(i = 0; i <= 5; i++)
{
if(GetDistance(me.x,me.y,_chest.x,_chest.y) < 5 )
{
if(NTC_OpenChest(_chest))
{
NTSI_PickItems();
break;
}
}
else
{
Print("ÿc8Gegner mit Knockback???");
NTM_MoveTo(me.areaid, _chest.x+1, _chest.y)
}
}
}
else
{
Print("ÿc8Keine Chest gefunden.");
Print("ÿc8Verzweiflungsschlag wird ausgeführt.");
var _randomchest;
_randomchest = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3260));
if(_randomchest)
{
if(!NTM_MoveTo(me.areaid, _randomchest.x+1, _randomchest.y))
{
NTC_SendMsgToScript("MWBotGame.ntj", "NTM_MoveTo()");
return;
}
for(i = 0; i <= 5; i++)
{
if(GetDistance(me.x,me.y,_randomchest.x,_randomchest.y) < 5 )
{
if(NTC_OpenChest(_randomchest))
{
NTSI_PickItems();
break;
}
}
else
{
Print("ÿc8Gegner mit Knockback???");
NTM_MoveTo(me.areaid, _randomchest.x+1, _randomchest.y)
}
}
}
else
{
Print("ÿc8Scheisse");
}
}
}
Delay(500);
_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
if(_unit)
{
for(n = 0 ; n < _unit.length ; n++)
{
if(_unit[n].id == 580)
{
NTM_MoveTo(me.areaid, _unit[n].roomx*5+_unit[n].x, _unit[n].roomy*5+_unit[n].y);
_chest = NTC_FindUnit(NTC_UNIT_OBJECT, "chest");
if(_chest)
{
do
{
if(NTC_OpenChest(_chest))
NTSI_PickItems();
}while(_chest.GetNext());
}
}
}
}
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
ansonsten sieht die Restart-Quote bei Chestruns auch auf Hell ganz gut aus, aber nur mal probeweise Mauso laufen lassen schon siehts wieder schlechter aus  also da muss was in dem script sein.
Kann es vlt sein, dass es mit "clearlevel" zu tun haben könnte? nur so ne Vermutung, da es ja nur bei großflächigen Gebieten vorkommt, wo wesentlich mehr als nur ein Mob abgearbeitet wird^^
|
|
|
04/02/2011, 15:40
|
#1062
|
elite*gold: 0
Join Date: Jun 2009
Posts: 45
Received Thanks: 6
|
Hey ^^
ich hab meine soso jetz auf blizzard gemacht..läuft super nur hab ich noch ein paar schwierigkeiten bei den attacken..
zur zeit sieht es so aus im der config
Code:
// Specify your attack skills below. NOTE: Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
NTConfig_AttackSkill[0] = MWS_ICE_BLAST; // This skill is used once whenever attacking a new target. Set to 0 to deactivate.
NTConfig_AttackSkill[1] = MWS_BLIZZARD; // Primary skill to bosses.
NTConfig_AttackSkill[2] = MWS_ICE_BLAST; // Primary untimed skill to boss. Set to 0 to deactivate.
NTConfig_AttackSkill[3] = MWS_BLIZZARD; // Primary skill to others.
NTConfig_AttackSkill[4] = MWS_BLIZZARD; // Primary untimed skill to others. Set to 0 to deactivate.
NTConfig_AttackSkill[5] = MWS_BLIZZARD; // Secondary skill in case monster is immune to primary skill. Set to 0 to deactivate.
NTConfig_AttackSkill[6] = MWS_ICE_BLAST; // Secondary untimed skill. Set to 0 to deactivate.
NTConfig_AttackSkill[7] = MWS_ICE_BLAST; // Alternative untimed skill which is used if the target is immune to your untimed skill - mostly useful for FB/FO/Meteor sorcs or other sorcs that are using the same untimed skills. Set to 0 to deactivate.
d.h er greift allerdings viel zu häufig mit blizzard an un macht fast nichts mit Iceblast...
egal wie ich es drehe und wende xD entweder greift er hauptsächlich mit blizzard an un verwendet FAST kein iceblast...oder umgekehrt..
aber ich möchte das er einmal blizzard casted dann paar mal iceblast dann wieder blizzard usw usw..
wie mach ich das :>?
|
|
|
04/02/2011, 16:41
|
#1063
|
elite*gold: 0
Join Date: Apr 2010
Posts: 27
Received Thanks: 10
|
Hallo!
Habe ein Problem mit Soso bei Gräfin.
Wenn ich auf Alp Gräfin mache funktioniert der neue Bot ganz normal.
Wenn ich auf Hell Gräfin bote kommt Fehlermeldung:
NTCountess.ntj : NTA_KillMonster() failed (Tower Cellar Level5)
Woran könnte das liegen.Verwende Muddys 1.2
Danke im Voraus
Gery
|
|
|
04/02/2011, 16:42
|
#1064
|
elite*gold: 0
Join Date: Oct 2010
Posts: 105
Received Thanks: 11
|
Quote:
Originally Posted by WeeDling
Hey ^^
ich hab meine soso jetz auf blizzard gemacht..läuft super nur hab ich noch ein paar schwierigkeiten bei den attacken..
zur zeit sieht es so aus im der config
Code:
// Specify your attack skills below. NOTE: Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
NTConfig_AttackSkill[0] = MWS_ICE_BLAST; // This skill is used once whenever attacking a new target. Set to 0 to deactivate.
NTConfig_AttackSkill[1] = MWS_BLIZZARD; // Primary skill to bosses.
NTConfig_AttackSkill[2] = MWS_ICE_BLAST; // Primary untimed skill to boss. Set to 0 to deactivate.
NTConfig_AttackSkill[3] = MWS_BLIZZARD; // Primary skill to others.
NTConfig_AttackSkill[4] = MWS_BLIZZARD; // Primary untimed skill to others. Set to 0 to deactivate.
NTConfig_AttackSkill[5] = MWS_BLIZZARD; // Secondary skill in case monster is immune to primary skill. Set to 0 to deactivate.
NTConfig_AttackSkill[6] = MWS_ICE_BLAST; // Secondary untimed skill. Set to 0 to deactivate.
NTConfig_AttackSkill[7] = MWS_ICE_BLAST; // Alternative untimed skill which is used if the target is immune to your untimed skill - mostly useful for FB/FO/Meteor sorcs or other sorcs that are using the same untimed skills. Set to 0 to deactivate.
d.h er greift allerdings viel zu häufig mit blizzard an un macht fast nichts mit Iceblast...
egal wie ich es drehe und wende xD entweder greift er hauptsächlich mit blizzard an un verwendet FAST kein iceblast...oder umgekehrt..
aber ich möchte das er einmal blizzard casted dann paar mal iceblast dann wieder blizzard usw usw..
wie mach ich das :>?
|
Code:
// Specify your attack skills below. NOTE: Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
NTConfig_AttackSkill[0] = 0; // This skill is used once whenever attacking a new target. Set to 0 to deactivate.
NTConfig_AttackSkill[1] = MWS_BLIZZARD; // Primary skill to bosses.
NTConfig_AttackSkill[2] = MWS_GLACIAL_SPIKE; // Primary untimed skill to boss. Set to 0 to deactivate.
NTConfig_AttackSkill[3] = MWS_BLIZZARD; // Primary skill to others.
NTConfig_AttackSkill[4] = MWS_GLACIAL_SPIKE; // Primary untimed skill to others. Set to 0 to deactivate.
NTConfig_AttackSkill[5] = 0; // Secondary skill in case monster is immune to primary skill. Set to 0 to deactivate.
NTConfig_AttackSkill[6] = 0; // Secondary untimed skill. Set to 0 to deactivate.
NTConfig_AttackSkill[7] = MWS_ICE_BLAST; // Alternative untimed skill which is used if the target is immune to your untimed skill - mostly useful for FB/FO/Meteor sorcs or other sorcs that are using the same untimed skills. Set to 0 to deactivate.
versuchs mal so (ist meine und bin sehr zufrieden damit). blizzard ist halt kein guter untimed skill (feuerball, eisstoss etc bieten sich da an)
ich hab übrigends glacial spike genommen, weil es normale monster freezt...kannst aber überall wo glacial spike steht auch eisstoss reinschreiben..
|
|
|
04/02/2011, 17:07
|
#1065
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
@Aceridos
Nein, ich bin zwar Student, aber mit Pädagogik habe ich absolut nichts am Hut.
Ich bin einfach generell geduldig im Umgang mit Menschen und teile gerne mein Wissen, sofern denn vorhanden.
@DeathFromHeaven
So direkt fällt mir nichts auf.
Was mir aber auffällt, ist, dass das relativ schlampig programmiert ist.
Teilweise schlecht eingerückt, undeklarierte Laufvariablen, fehlende Semikola.
Es würde mich daher nicht wundern, wenn die Bot Scripte für sich Fehler enthalten.
Auch wenn das nicht deine Probleme erklärt, daher bin ich mit dieser Erklärung irgendwie noch etwas unzufrieden.
Und natürlich ist das mit dem Mausoleum möglich, ich muss aber sagen, dass meine Sorcs auch beide diese Ebene säubern und derzeit liege ich bei weniger als 1 Restart auf 30 Runs.
@WeeDling
Siehe getgoodson, so sieht es aus.
Solltest aber bedenken, dass Glacial Spike kein klassischer untimed Skill ist, ein gewisses Cast Delay ist vorhanden, in Verbindung mit Blizzard funktioniert das aber dennoch recht gut.
@gery68
Könnte es vielleicht damit zusammenhängen, dass die Dame auf Hell grundsätzlich Feuer- und Kälteimmun ist?
Dass der normale Angriff dann in die Hose geht ist verständlich, man könnte es eventuell über die selbst definierte Immunität lösen. Allerdings bin ich unsicher, ob das mit der derzeit veröffentlichten Version so möglich ist, ich meine ich habe es für meine neuen Ladder Sorcs etwas angepasst.
Lg
Muddy
|
|
|
 |
|
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 11:41.
|
|