So, dann pack ich es noch mal in die Programming Section ^_^
Hallo zusammen,
da ich schon seit geraumer Zeit bei euch mitlese, möchte ich nun auch eine Kleinigkeit beisteuern.
Wie der Titel schon sagt handelt es sich um ein Aura-Auto-Stack Script für einen Auradin und kann wahlweise für den Helm oder die Rüstung angewendet werden.
Ich lasse derzeit das Script für einen BaalLeechFight follow bot auf HC laufen und bin mitlerweile bei Run 483 (4 Chicken, 4 Restarts), was ca. 32h Laufzeit entspricht.
Ich habe versucht das Script so sicher wie irgend möglich zu machen, soll heißen: der Bot soll tunlichst seine Dreams nich wegwerfen
Daher wird fast alles doppelt und dreifach geprüft und wiederholt da durch Lags, Interrups, fragmentiertem Speicher, etc. es doch mal passieren kann das kurzfristig ein falscher Zustand angenommen wird und eine Schleife fälschlicherweise verlassen wird.
Also nich wundern das im Script zum Teil die selbe Schleife zwei bis vier Mal hintereinander auftaucht bzw. geprüft wird.
Verbesserungsvorschläge und Co. sind immer gern gesehn.
EDIT: das Präfix für Dream lautet 0x5037 ---> thx Muddy
Btw. kann mir bitte wer das Itemprefix für Dream zukommen lassen?
Dann könnte ich noch ein SwapWeapon() einbaun für den Fall das der Char grad nicht sein Dream Schilt auf Tasche hat.
So, dann noch viel Spass beim austesten.
Best regards
easy7going aka eukl1d
Die schlechte Einrückung werd ich morgen nochmal überarbeiten, keine Ahnung warum es so ausgegeben wird.
PHP Code:
//
//script: NTAuraAutoSTACK.ntj
//description:
//the script will auto-stack your aura for a Dream helm or a Dragon armor
//
//location:
//store the script in the folder: D2NT\scripts\NTBot\bots\
//and name it for example: NTAuraAutoSTACK.ntj
//
//how to start the script:
//make a push-call in your char config: NTConfig_Paladin_YOURcharNAMEhere.ntl at the start via:
//NTConfig_Script.push("NTAuraAutoSTACK.ntj");
//
//
//
//HOW SAFE IS IT?????
// ---> SHORT version: its pretty safe, but its impossible to bring it up to a 100%
//
// ---> EXTENDED version:
//well, i use that script in HC for my BaalLeechFight-Bot (Follow-Bot) and the bot still wear his Dreams after 483 runs, even if i accidentally clicked around or pressed a button (like Esc/M/I/O/..) during the stack-task
//the script will double and tripple check everything but thats not a 100% warranty!!!
//so, the chance to lose your items should be incredibly small (as long as you don't click around during the stack-task)
// NEVER FORGET === >the chance to lose your items will rise if you click around!! even if the script intercepts most of it ---------------->TRY TO AVOID THAT<----------------------
//if you aren't sure about the script ---> try it with a dummy
//
//ya, maybe its a bit overdone with all the security checks/delays etc... but hey, as long as it works that well ^_^
//
//
//best regards
//eukl1d
//////////////
////////////////////////////////////////////////////////
//|###########|
//|##OPTIONS##|
//|###########|
//
//Stack Item --> Helm = 1 , Armor = 3
var bodyPart = 1;
//
//********stack amount***********
var stack_AMOUNT = 100; //around 35sec for 100 stacks
//
//******delay between each action******
var stack_delay = 60; // do not change! + don't change any other delay! if you still want to change it --> test it with a DUMMY!
//
////////////////////////////////////////////////////////
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("NTBotGame.ntj", "NTTM_CheckAct()");
return;
}
NTC_PingDelay(500);
var _merc = NTC_GetMerc();
NTC_PingDelay(50);
if(_merc) //merc alive = true, else the script will stop
{
var _items = _merc.GetItems();
if((bodyPart!=1)&&(bodyPart!=3))
{
bodyPart=1;
}
//double check
NTC_PingDelay(150);
NT_ITEMonCURSOR_securityCHECK(); //security check
NTC_PingDelay(150);
NT_ITEMonCURSOR_securityCHECK(); //security check
if(_items)
{
NTC_PingDelay(stack_delay);
SetUIState(0x01, true);
SetUIState(0x24, true);
NTC_PingDelay(50);
if(me.ClickMercItem(bodyPart))
{
NTC_PingDelay(100);
if(me.itemoncursor)
{
for(var count = 0; count< stack_AMOUNT; count++ ){
NTC_PingDelay(stack_delay);
SetUIState(0x01, true);
SetUIState(0x24, true);
me.ClickItem(bodyPart);
NTC_PingDelay(stack_delay);
SetUIState(0x01, true);
SetUIState(0x24, true);
me.ClickMercItem(bodyPart);
NTC_PingDelay(stack_delay);
}
SetUIState(0x01, false); // close inv
SetUIState(0x24, false); // close inv merc
NTC_PingDelay(stack_delay);
NT_ITEMonCURSOR_securityCHECK(); //security check
}
}
}
NTC_PingDelay(1000);
}
//quadro check
NT_ITEMonCURSOR_securityCHECK(); //security check
NTC_PingDelay(500);
NT_ITEMonCURSOR_securityCHECK(); //security check
NTC_PingDelay(500);
NT_ITEMonCURSOR_securityCHECK(); //security check
NTC_PingDelay(500);
NT_ITEMonCURSOR_securityCHECK(); //security check
NTC_PingDelay(500);
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}
//security check, if item on cursor
function NT_ITEMonCURSOR_securityCHECK()
{
while(me.itemoncursor)
{
NTC_PingDelay(500);
SetUIState(0x01, true); // open inv
SetUIState(0x24, true); // open inv merc
NTC_PingDelay(50);
me.ClickItem(bodyPart);
NTC_PingDelay(500);
if(me.itemoncursor)
{
SetUIState(0x01, true); // open inv
SetUIState(0x24, true); // open inv merc
NTC_PingDelay(50);
me.ClickMercItem(bodyPart);
NTC_PingDelay(500);
}
SetUIState(0x01, false); // close inv
SetUIState(0x24, false); // close inv merc
NTC_PingDelay(50);
}
}