|
You last visited: Today at 13:54
Advertisement
[Release] AutoMule mit Muddies D2NT
Discussion on [Release] AutoMule mit Muddies D2NT within the Diablo 2 Programming forum part of the Diablo 2 category.
05/27/2011, 11:37
|
#196
|
elite*gold: 0
Join Date: Aug 2009
Posts: 435
Received Thanks: 159
|
beim ersten Versuch krieg ich das auch immer, aber sobald er dann auf den Charscreen wechselt und dann den Char erneute erstellt funktioniert es bei mir, musste mal ausprobieren^^
|
|
|
05/27/2011, 12:05
|
#197
|
elite*gold: 0
Join Date: Mar 2010
Posts: 539
Received Thanks: 418
|
Kann es sein, dass die Accountnamen zu lang werden?
Versuche mal mit gleich langen Namen selber Accounts erstellen und bedenke, dass durch die Scripts nochmals Zeichen für den Account dazukommen!
|
|
|
05/27/2011, 12:29
|
#198
|
elite*gold: 0
Join Date: Aug 2004
Posts: 233
Received Thanks: 39
|
Hallo,
Falls ihr Automule und Muddy's mule Manager verwendet habe ich hier vielleicht etwas für euch:
Im Spoiler befindet sich meine Muddy's D2NT\scripts\NTBot\NTMule.ntj.
Damit wird der Inhalt des Mules beim mulen geupdated und in den Mulemanager aufgenommen.
Gruß
letsid
Code:
var CurScriptIndex = 0;
var LastScript = false;
var CloneDiabloString;
var CloneDiabloNotify = false;
var _xpgamestart;
var _xpcurrent;
var _gainperboss;
var _runstartshere;
var _runendshere;
var Account = "";
function NTMain()
{
RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);
Delay(1000);
Include("libs/common/MWItemlogger.ntl");
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
Include("NTBot/char_configs/NTConfig.ntl");
Include("NTBot/mule_configs/NTConfig_mule.ntl");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
if(NTConfig_StartDelay > 0);
NTC_Delay(NTConfig_StartDelay);
SetUIState(0x0A, true);
NTT_GetCorpses();
if(NTConfig_Script.length > 0)
{
//NTCU_InitCubing();
//NTT_ClearInventory();
//NTT_ClearBelt();
//Load("NTBot/tools/NTToolsThread.ntj");
if(NTConfig_CheckCloneDiablo)
{
CloneDiabloString = GetLocaleString(11005);
}
RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);
RegisterEvent(EVENT_KEYDOWN, NT_KeyEvents);
RegisterEvent(EVENT_SCRIPTMSG, NT_ScriptMsgEvents);
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex][0]);
SetStatusText("˙c2Running ˙c4" + NTConfig_Script[CurScriptIndex][0]);
Say("/whoami");
while(!LastScript || CloneDiabloNotify)
{
NTC_Delay(500);
Say("/whoami");
}
}
Say("/whoami");
sendEventToOOG(9, "˙48A209Game" + (parseInt(me.gamename.split("-")[1]) ? " ("+ parseInt(me.gamename.split("-")[1]) + ") " : " ") + "was finished successfully!", 0);
ExitGame();
}
function NT_GameMsgEvents(msg, type)
{
if(!Account && type == 3 && msg.indexOf("<BattleNet>") > -1)
{
Account = msg.replace(/<BattleNet>(.)+\(\*([A-Za-z0-9_.:'+!^\-\[\]\(\)]{1,15})(#[0-9])?\),(.)+/gi, "$2");
if(Account.length > 15)
Account = "FORMAT_ERROR";
Print("˙c2Accountname registered! (" + Account + ")");
MWI_WriteMuleManagerOutput(Account);
}
if(type == 4)
{
if(SojSoldString.length > 1 && msg.indexOf(SojSoldString) != -1)
{
var _sojCountString = msg.split(" ")[0];
var preCount = SojCount;
if(!SojCount)
{
InitialSojCount = parseInt(_sojCountString);
preCount = InitialSojCount;
InitialTime = GetTickCount();
}
SojCount = parseInt(_sojCountString);
NTC_SendLogToOOG(NTC_LOG_COMMON, "˙c4" + msg + ";˙c0Game:˙c8 " + me.gamename + "\n˙c0Password:˙c8 " + me.gamepassword + "\n˙c0ServerIP:˙c8 " + me.gameserverip.split(".")[3] + "\n˙c0Message Count:˙c8 " + (MessageCount+1) + "\n˙c0Sojs sold:˙c8 " + (SojCount-preCount) + "\n˙c0Total Sojs sold:˙c8 " + (SojCount-InitialSojCount) + "\n˙c0Time Passed Since First Message:˙c8 " + (parseInt((GetTickCount()-InitialTime)/60000)) + "m" + (parseInt((GetTickCount()-InitialTime)/1000)%60) + "s" + "\n˙c0Waiting˙c8 " + (MessageCount+1)*5 + " ˙c0minutes");
me.maxgametime = 0;
NTC_StopScript(NTConfig_Script[CurScriptIndex][0]);
NTC_Delay(1000);
RunScript = false;
if(!LoopRunning)
{
LoopRuntime = ++MessageCount*10*60E3;
LoopMode = 1;
NT_AntiIdle();
}
else
LoopRuntime = ++MessageCount*5*60E3;
if(!LoopRunning)
{
RunScript = true;
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex][0]);
SetStatusText("˙c2Running ˙c4" + NTConfig_Script[CurScriptIndex][0]);
}
}
if(CloneDiabloString.length > 1 && msg.indexOf(CloneDiabloString) != -1)
{
CloneDiabloNotify = true;
NTC_SendLogToOOG(NTC_LOG_COMMON, "˙c4" + CloneDiabloString + ";˙c0Game:˙c8 " + me.gamename + "\n˙c0Password:˙c8 " + me.gamepassword + "\n˙c0ServerIP:˙c8 " + me.gameserverip.split(".")[3] + "\n˙c0Total Sojs sold:˙c8 " + (SojCount-InitialSojCount) + "\n˙c0Time Passed Since First Message:˙c8 " + (parseInt((GetTickCount()-InitialTime)/60000)) + "m" + (parseInt((GetTickCount()-InitialTime)/1000)%60) + "s" + "\n˙c0Message Count:˙c8 " + (MessageCount+1));
SetStatusText("˙c8" + CloneDiabloString);
me.maxgametime = 0;
NTC_StopScript(NTConfig_Script[CurScriptIndex][0]);
NTC_Delay(1000);
RunScript = false;
LoopRuntime = 0;
LoopMode = 0;
NT_AntiIdle();
}
}
}
function NT_KeyEvents(keycode)
{
//Print("Keycode: " + keycode);
var _script = NTC_FindScript(NTConfig_Script[CurScriptIndex][0]);
switch(keycode)
{
case 19: // pause (PAUSE)
if(_script)
{
if(_script.running)
{
ShowStatusText = false;
_script.Stop();
me.maxgametime = 0;
NTC_Delay(300);
ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
SetStatusText("˙c1Stopped ˙c4" + NTConfig_Script[CurScriptIndex][0]);
NTC_Delay(2000);
SetStatusText("˙c1Max game length set to infinite!");
}
else
{
if(!RunScript)
{
RunScript = true;
NTC_Delay(2000);
}
NT_ResetTicks();
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex][0]);
}
NT_ScriptMsgEvents("SET_DEFAULT_STATUS");
}
break;
case 33: // Skip (PGUP)
ShowStatusText = false;
SetStatusText("˙c1Skipping current script...");
RunScript = true;
if(!_script)
break;
if(_script.running)
_script.Stop();
NTTM_CheckAct();
NTC_PingDelay(500);
NT_ScriptMsgEvents("SCRIPT_END");
break;
case 34: // Repeat (PGDN)
ShowStatusText = false;
SetStatusText("˙c1Repeating previous script...");
RunScript = true;
if(!_script)
break;
if(_script.running)
_script.Stop();
NTTM_CheckAct();
NTC_PingDelay(500);
NT_ScriptMsgEvents("SCRIPT_REPEAT");
break;
case 36: // Show coordinates (POS1/HOME)
Print("Current Position: (˙c2" + me.x + "˙c0|˙c1" + me.y + "˙c0) [˙c7" + me.areaid + "˙c0]");
var _object = NTC_FindUnit(NTC_UNIT_OBJECT);
var _count = 0;
if(_object)
{
do
{
if(_object.name != GetLocaleString(5386))
Print(NTC_GetRandomColor() + "[" + (_count++) + "] " + _object.name + " (ID: " + _object.classid + ") [Mode: " + _object.mode + "] (Dist: " + GetDistance(me, _object) + ") [Pos: (" + _object.x + "|" + _object.y + ")]");
} while(_object.GetNext());
}
break;
case 46: // Exit (DEL)
RunScript = true;
ShowStatusText = false;
SetStatusText("˙c1Exiting game...");
OutputString = "˙258CDDGame" + ((me.gamename.slice(me.gamename.lastIndexOf('-') + 1)) ? " (" + me.gamename.slice(me.gamename.lastIndexOf('-') + 1) + ") " : " ") + "was finished by User!;";
NT_SetTooltipString();
NTC_SendLogToOOG(NTC_LOG_COMMON, OutputString);
if(NTConfig_PublicMode)
Say("Next game!");
NTC_PingDelay(2000);
Say("/whoami");
ExitGame();
break;
case 35: // Clear current XML logfile (END)
if(NTConfig_UseXMLItemlog)
{
ShowStatusText = false;
SetStatusText("˙c1Deleting current XML-Logfile...");
NTC_PingDelay(1000);
SetStatusText("˙c8Creating new XML-Logfile...");
NTC_PingDelay(500);
var dateString = new Date().toLocaleFormat("%m-%d-%y");
var fhandle = FileOpen("logs/"+me.charname+"/"+dateString+"_itemlog.xml", 1);
if(fhandle)
{
fhandle.WriteLine("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>");
fhandle.WriteLine("<?xml-stylesheet href=\"itemlog.xsl\" type=\"text/xsl\"?>");
fhandle.WriteLine("<itemlog>");
fhandle.WriteLine("</itemlog>");
fhandle.Close();
SetStatusText("˙c8Done!");
}
NT_ScriptMsgEvents("SET_DEFAULT_STATUS");
}
break;
case 45: // Log stashed items (INS)
ShowStatusText = false;
SetStatusText("˙c8Logging current stash to " + ((NTConfig_LogStashToTxt) ? "TXT" : "XML") + "...");
if(NTI_LogStashedItems())
SetStatusText("˙c8Done!");
else
SetStatusText("˙c1Logging failed!");
NT_ScriptMsgEvents("SET_DEFAULT_STATUS");
break;
case 8: // Show Item Info (UNDO)
NTI_ShowItemInfo();
break;
}
}
function NT_ScriptMsgEvents(msg)
{
var _area;
if(msg.split("_")[0] == "SET" && msg.indexOf("SET_DEFAULT_STATUS") == -1)
{
_isDataInput = true;
NT_EvaluateInputData(msg);
return;
}
switch(msg)
{
case "SCRIPT_END":
ShowStatusText = false;
var _script = NTC_FindScript(NTConfig_Script[CurScriptIndex][0]);
if(_script && _script.running)
_script.Stop();
if(++CurScriptIndex < NTConfig_Script.length)
{
if(NTConfig_ShowGoldPickupsPerScript)
{
if(GoldPerScript > 0)
Print("˙c8Picked up " + (GoldPerScript / 1E3).toFixed(1) + "k gold running ˙c;" + NTConfig_Script[CurScriptIndex - 1][0]);
GoldPerScript = 0;
}
NTTM_CheckAct();
NT_ResetTicks();
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex][0]);
ShowStatusText = true;
}
else
LastScript = true;
break;
case "SCRIPT_REPEAT":
ShowStatusText = false;
if(CurScriptIndex - 1 >= 0)
{
CurScriptIndex--;
NTTM_CheckAct();
NT_ResetTicks();
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex][0]);
}
else
{
SetStatusText("˙c1Cannot repeat - Invalid Index!");
NTC_PingDelay(2000);
NTTM_CheckAct();
NT_ResetTicks();
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex][0]);
}
ShowStatusText = true;
break;
case "SET_DEFAULT_STATUS":
NTC_Delay(3000);
ShowStatusText = true;
break;
case "STOP_STATUS_TEXT_UPDATE":
ShowStatusText = false;
break;
case "RESET_TICKS":
NT_ResetTicks();
break;
default:
Print("˙c1" + NTConfig_Script[CurScriptIndex][0] + " : " + msg + " failed");
_area = GetArea();
if(_area)
NTC_SendLogToOOG(NTC_LOG_COMMON, "˙E00000" + NTConfig_Script[CurScriptIndex][0] + " : " + msg + " failed (" + _area.name + ")");
else
NTC_SendLogToOOG(NTC_LOG_COMMON, "˙E00000" + NTConfig_Script[CurScriptIndex][0] + " : " + msg + " failed (unknown area)");
Errors++;
NT_ScriptMsgEvents("SCRIPT_END");
break;
}
}
function NT_ResetTicks()
{
CurScriptStartTick = GetTickCount();
if(NTConfig_Script[CurScriptIndex].length == 2 && !isNaN(NTConfig_Script[CurScriptIndex][1]))
CurScriptEndTick = CurScriptStartTick + 6E4 * NTConfig_Script[CurScriptIndex][1];
}
function NT_AntiIdle()
{
var _endtime, _starttick, _loops;
_loops = 0;
LoopRunning = true;
_starttick = GetTickCount();
if(LoopMode == 0)
LoopRuntime = NTConfig_WorldEventWaitTime;
if(GetUIState(0x01) || GetUIState(0x0C))
me.Cancel(1);
while((!LoopRuntime || LoopRuntime + _starttick > GetTickCount()) && !RunScript)
{
if(_loops % 10 == 0)
{
if(NTConfig_WorldEventAccount)
{
if(LoopMode == 0)
Say("/w *" + NTConfig_WorldEventAccount + " World Event in " + me.gamename + "//" + me.gamepassword + "!");
else
Say("/w *" + NTConfig_WorldEventAccount + " Soj Count in " + me.gamename + "//" + me.gamepassword + " (" + SojCount + ((SojCount - InitialSojCount) ? " [+" + (SojCount - InitialSojCount)+ "]" : "") + " sold)!");
}
}
SetStatusText("˙c8Switching to Act " + (1 +_loops % 5) + "...");
NTTM_CheckAct(1 + _loops % 5);
SetStatusText("˙c8Moving to Portal Spot...");
NTTM_TownMove("portalspot");
_endtime = GetTickCount() + 60E3; // Wait 60 seconds in each act
while(_endtime > GetTickCount() && ((LoopRuntime) ? (LoopRuntime + _starttick > GetTickCount()) : true) && !RunScript)
{
if(LoopMode == 0)
SetStatusText("˙c8Diablo Walks the Earth! (" + ((parseInt((GetTickCount() - _starttick) / 36E5) >= 1) ? parseInt((GetTickCount() - _starttick) / 36E5) + "h" : "") + (parseInt((GetTickCount() - _starttick) / 6E4) % 60) + "m" + (parseInt((GetTickCount() - _starttick) / 1E3) % 60) +"s)");
else
SetStatusText("˙c8Awaiting Soj Sale... (" + ((parseInt((LoopRuntime + _starttick- GetTickCount()) / 36E5) >= 1) ? parseInt((LoopRuntime + _starttick - GetTickCount()) / 36E5) + "h" : "") + (parseInt((LoopRuntime + _starttick - GetTickCount()) / 6E4) % 60) + "m" + (parseInt((LoopRuntime + _starttick - GetTickCount()) / 1E3) % 60) + "s)");
NTC_Delay(1000);
}
_loops++;
}
LoopRunning = false;
if(LoopMode != 0)
NTC_SendLogToOOG(NTC_LOG_COMMON, "˙c4Proceeding...;˙c0Total Sojs sold:˙c8 " + (SojCount - InitialSojCount) + "\n˙c0Waited˙c8 " + (parseInt((GetTickCount() - _starttick) / 6E4) % 60) + "m" + (parseInt((GetTickCount() - _starttick) / 1E3) % 60) + "s");
NTC_Delay(1000);
}
function NT_EvaluateInputData(msg)
{
switch(msg.split("_")[1])
{
case "SHRINEACTIVATED":
ActivatedShrinesCount++;
break;
case "CHESTOPENEND":
OpenedChestsCount++;
break;
case "LOOTED":
LootedMonstersCount++;
break;
case "PICKED":
PickedItemsCount++;
break;
case "SCRIPTGOLD":
GoldPerScript += parseInt(msg.split("_")[2]);
break;
case "HPDRANK":
HpUsed++;
break;
case "MPDRANK":
MpUsed++;
break;
case "RVDRANK":
RvUsed++;
break;
}
}
function NT_SetTooltipString()
{
OutputString += (GameStartCharLevel != NT_GetRequiredExp(me.GetStat(12)) && NT_GetRequiredExp(me.GetStat(12)) != -1) ? "˙c2!!! Level up (" + me.GetStat(12) + ") !!!\n" : "";
OutputString += "˙c0Game Duration:˙c8 " + ((parseInt((GetTickCount() - GameStartTick) / 36E5) >= 1) ? parseInt((GetTickCount() - GameStartTick) / 36E5) + "h " : "") + (parseInt((GetTickCount() - GameStartTick) / 6E4)) + "m " + (parseInt((GetTickCount() - GameStartTick) / 1E3) % 60) + "s";
OutputString += ((me.GetStat(13) - GameStartExp) && (GameStartCharLevel == NT_GetRequiredExp(me.GetStat(12))) ? "\n˙c0Absolute Experience Gain:˙c8 " + (me.GetStat(13) - GameStartExp) : "");
OutputString += ((me.GetStat(13) - GameStartExp) && (GameStartCharLevel == NT_GetRequiredExp(me.GetStat(12))) ? "\n˙c0Relative Experience Gain:˙c8 " + ((NT_GetRequiredExp(me.GetStat(12) + 1) - NT_GetRequiredExp(me.GetStat(12)) != 0) ? ((me.GetStat(13) - GameStartExp) / (NT_GetRequiredExp(me.GetStat(12) + 1) - NT_GetRequiredExp(me.GetStat(12))) * 100).toFixed(4) + "%" : "Invalid") : "");
OutputString += ((RvUsed || MpUsed || HpUsed) ? "\n˙c0Potions Used:˙c1 [" + HpUsed + "]˙c3 [" + MpUsed + "]˙7E0064 [" + RvUsed + "]" : "");
OutputString += ((NTC_MyGold() - PreGold > 0) ? "\n˙c0Total Gold Gathered:˙c8 " + ((NTC_MyGold() - PreGold <= 1E5) ? ((NTC_MyGold() - PreGold) / 1E3).toFixed(1) + "k" : ((NTC_MyGold() - PreGold) / 1E6).toFixed(2) + "mio") : "");
OutputString += (PickedItemsCount) ? "\n˙c0Items Picked:˙c8 " + PickedItemsCount : "";
OutputString += (LootedMonstersCount) ? "\n˙c0Corpses Looted:˙c8 " + LootedMonstersCount : "";
OutputString += (OpenedChestsCount) ? "\n˙c0Chests Opened:˙c8 " + OpenedChestsCount : "";
OutputString += (ActivatedShrinesCount) ? "\n˙c0Shrines activated:˙c8 " + ActivatedShrinesCount : "";
OutputString += (Errors) ? "\n˙c1Error Occurrence: " + Errors : "";
}
function NT_GetRequiredExp(level)
{
// Returns the experience necessary for the specified level
var _reqExp = -1;
if(!level || level < 2 || level > 99)
return _reqExp;
switch(level)
{
case 99:
_reqExp = 3520485254;
break;
case 98:
_reqExp = 3229426756;
break;
case 97:
_reqExp = 2962400612;
break;
case 96:
_reqExp = 2717422497;
break;
case 95:
_reqExp = 2492671933;
break;
case 94:
_reqExp = 2286478756;
break;
case 93:
_reqExp = 2097310703;
break;
case 92:
_reqExp = 1923762030;
break;
case 91:
_reqExp = 1764543065;
break;
case 90:
_reqExp = 1618470619;
break;
case 89:
_reqExp = 1484459201;
break;
case 88:
_reqExp = 1361512946;
break;
case 87:
_reqExp = 1248718217;
break;
case 86:
_reqExp = 1145236814;
break;
case 85:
_reqExp = 1050299747;
break;
case 84:
_reqExp = 963201521;
break;
case 83:
_reqExp = 883294891;
break;
case 82:
_reqExp = 809986056;
break;
case 81:
_reqExp = 742730244;
break;
case 80:
_reqExp = 681027665;
break;
case 79:
_reqExp = 624419793;
break;
case 78:
_reqExp = 572485967;
break;
case 77:
_reqExp = 524840254;
break;
case 76:
_reqExp = 481128591;
break;
case 75:
_reqExp = 441026148;
break;
case 74:
_reqExp = 404234916;
break;
case 73:
_reqExp = 370481492;
break;
case 72:
_reqExp = 339515048;
break;
case 71:
_reqExp = 311105466;
break;
case 70:
_reqExp = 285041630;
break;
case 69:
_reqExp = 261129853;
break;
case 68:
_reqExp = 239192444;
break;
case 67:
_reqExp = 219066380;
break;
case 66:
_reqExp = 200602101;
break;
case 65:
_reqExp = 183662396;
break;
case 64:
_reqExp = 168121381;
break;
case 63:
_reqExp = 153863570;
break;
case 62:
_reqExp = 140783010;
break;
case 61:
_reqExp = 128782495;
break;
case 60:
_reqExp = 117772849;
break;
case 59:
_reqExp = 107672256;
break;
case 58:
_reqExp = 98405658;
break;
case 57:
_reqExp = 89904191;
break;
case 56:
_reqExp = 82104680;
break;
case 55:
_reqExp = 74949165;
break;
case 54:
_reqExp = 68384473;
break;
case 53:
_reqExp = 62361819;
break;
case 52:
_reqExp = 56836449;
break;
case 51:
_reqExp = 51767302;
break;
case 50:
_reqExp = 47116709;
break;
case 49:
_reqExp = 42850109;
break;
case 48:
_reqExp = 38935798;
break;
case 47:
_reqExp = 35344686;
break;
case 46:
_reqExp = 32050088;
break;
case 45:
_reqExp = 29027522;
break;
case 44:
_reqExp = 26254525;
break;
case 43:
_reqExp = 23710491;
break;
case 42:
_reqExp = 21376515;
break;
case 41:
_reqExp = 19235252;
break;
case 40:
_reqExp = 17270791;
break;
case 39:
_reqExp = 15468534;
break;
case 38:
_reqExp = 13815086;
break;
case 37:
_reqExp = 12298162;
break;
case 36:
_reqExp = 10906488;
break;
case 35:
_reqExp = 9629723;
break;
case 34:
_reqExp = 8458379;
break;
case 33:
_reqExp = 7383752;
break;
case 32:
_reqExp = 6397855;
break;
case 31:
_reqExp = 5493363;
break;
case 30:
_reqExp = 4663553;
break;
case 29:
_reqExp = 3902260;
break;
case 28:
_reqExp = 3203826;
break;
case 27:
_reqExp = 2563061;
break;
case 26:
_reqExp = 2050449;
break;
case 25:
_reqExp = 1640359;
break;
case 24:
_reqExp = 1312287;
break;
case 23:
_reqExp = 1049830;
break;
case 22:
_reqExp = 839864;
break;
case 21:
_reqExp = 671891;
break;
case 20:
_reqExp = 537513;
break;
case 19:
_reqExp = 430010;
break;
case 18:
_reqExp = 344008;
break;
case 17:
_reqExp = 275207;
break;
case 16:
_reqExp = 220165;
break;
case 15:
_reqExp = 176132;
break;
case 14:
_reqExp = 140906;
break;
case 13:
_reqExp = 112725;
break;
case 12:
_reqExp = 90180;
break;
case 11:
_reqExp = 72144;
break;
case 10:
_reqExp = 57715;
break;
case 9:
_reqExp = 44396;
break;
case 8:
_reqExp = 32886;
break;
case 7:
_reqExp = 22680;
break;
case 6:
_reqExp = 14175;
break;
case 5:
_reqExp = 7875;
break;
case 4:
_reqExp = 3750;
break;
case 3:
_reqExp = 1500;
break;
case 2:
_reqExp = 500;
}
return _reqExp;
}
function NT_GetScriptRuntimeMinutes()
{
return parseInt((GetTickCount() - CurScriptStartTick) / 6E4) % 60;
}
function NT_GetScriptRuntimeSeconds()
{
return parseInt((GetTickCount() - CurScriptStartTick) / 1E3) % 60;
}
function NT_SetStatusText()
{
if(!ShowStatusText)
return;
var _seconds, _minutes, _script, _scriptName, _text;
_script = NTC_FindScript(NTConfig_Script[CurScriptIndex][0]);
_seconds = NT_GetScriptRuntimeSeconds();
_minutes = NT_GetScriptRuntimeMinutes();
_scriptName = "";
_text = "";
if(_script && _script.running)
{
_scriptName = NTConfig_Script[CurScriptIndex][0];
if(_minutes == 0 && _seconds <= 3 || !isNaN(NTConfig_Script[CurScriptIndex][1]) && _minutes >= NTConfig_Script[CurScriptIndex][1] && 0 < NTConfig_Script[CurScriptIndex][1])
{
if(isNaN(NTConfig_Script[CurScriptIndex][1]) || NTConfig_Script[CurScriptIndex][1] <= 0)
_text = "˙c2Running ˙c4" + _scriptName + " ˙c8[+Inf]";
else
_text = "˙c2Running ˙c4" + _scriptName + " ˙c8[" + NTConfig_Script[CurScriptIndex][1] + ":00]";
}
else
_text = "˙c2Running ˙c4" + _scriptName + " [" + ((_minutes < 10) ? '0' : "") + _minutes + ":" + ((_seconds < 10) ? '0' : "") + _seconds + "]";
}
else
_text = "˙c1Stopped ˙c4" + NTConfig_Script[CurScriptIndex][0];
if(_text.length > 39 && _text.length - _scriptName.length + 3 <= 39) // Trim the script name in case the output text exceeds the maximum length of 39 characters
_text = _text.replace(_scriptName, _scriptName.substring(0, _scriptName.length - 3 - (_text.length - 39)) + "...");
SetStatusText(_text);
}
|
|
|
05/27/2011, 12:37
|
#199
|
elite*gold: 0
Join Date: Mar 2010
Posts: 539
Received Thanks: 418
|
Quote:
Originally Posted by letsid
Hallo,
Falls ihr Automule und Muddy's mule Manager verwendet habe ich hier vielleicht etwas für euch:
Im Spoiler befindet sich meine Muddy's D2NT\scripts\NTBot\NTMule.ntj.
Damit wird der Inhalt des Mules beim mulen geupdated und in den Mulemanager aufgenommen.
Gruß
letsid
Code:
var CurScriptIndex = 0;
var LastScript = false;
var CloneDiabloString;
var CloneDiabloNotify = false;
var _xpgamestart;
var _xpcurrent;
var _gainperboss;
var _runstartshere;
var _runendshere;
var Account = "";
function NTMain()
{
RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);
Delay(1000);
Include("libs/common/MWItemlogger.ntl");
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
Include("NTBot/char_configs/NTConfig.ntl");
Include("NTBot/mule_configs/NTConfig_mule.ntl");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
if(NTConfig_StartDelay > 0);
NTC_Delay(NTConfig_StartDelay);
SetUIState(0x0A, true);
NTT_GetCorpses();
if(NTConfig_Script.length > 0)
{
//NTCU_InitCubing();
//NTT_ClearInventory();
//NTT_ClearBelt();
//Load("NTBot/tools/NTToolsThread.ntj");
if(NTConfig_CheckCloneDiablo)
{
CloneDiabloString = GetLocaleString(11005);
}
RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);
RegisterEvent(EVENT_KEYDOWN, NT_KeyEvents);
RegisterEvent(EVENT_SCRIPTMSG, NT_ScriptMsgEvents);
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex][0]);
SetStatusText("˙c2Running ˙c4" + NTConfig_Script[CurScriptIndex][0]);
Say("/whoami");
while(!LastScript || CloneDiabloNotify)
{
NTC_Delay(500);
Say("/whoami");
}
}
Say("/whoami");
sendEventToOOG(9, "˙48A209Game" + (parseInt(me.gamename.split("-")[1]) ? " ("+ parseInt(me.gamename.split("-")[1]) + ") " : " ") + "was finished successfully!", 0);
ExitGame();
}
function NT_GameMsgEvents(msg, type)
{
if(!Account && type == 3 && msg.indexOf("<BattleNet>") > -1)
{
Account = msg.replace(/<BattleNet>(.)+\(\*([A-Za-z0-9_.:'+!^\-\[\]\(\)]{1,15})(#[0-9])?\),(.)+/gi, "$2");
if(Account.length > 15)
Account = "FORMAT_ERROR";
Print("˙c2Accountname registered! (" + Account + ")");
MWI_WriteMuleManagerOutput(Account);
}
if(type == 4)
{
if(SojSoldString.length > 1 && msg.indexOf(SojSoldString) != -1)
{
var _sojCountString = msg.split(" ")[0];
var preCount = SojCount;
if(!SojCount)
{
InitialSojCount = parseInt(_sojCountString);
preCount = InitialSojCount;
InitialTime = GetTickCount();
}
SojCount = parseInt(_sojCountString);
NTC_SendLogToOOG(NTC_LOG_COMMON, "˙c4" + msg + ";˙c0Game:˙c8 " + me.gamename + "\n˙c0Password:˙c8 " + me.gamepassword + "\n˙c0ServerIP:˙c8 " + me.gameserverip.split(".")[3] + "\n˙c0Message Count:˙c8 " + (MessageCount+1) + "\n˙c0Sojs sold:˙c8 " + (SojCount-preCount) + "\n˙c0Total Sojs sold:˙c8 " + (SojCount-InitialSojCount) + "\n˙c0Time Passed Since First Message:˙c8 " + (parseInt((GetTickCount()-InitialTime)/60000)) + "m" + (parseInt((GetTickCount()-InitialTime)/1000)%60) + "s" + "\n˙c0Waiting˙c8 " + (MessageCount+1)*5 + " ˙c0minutes");
me.maxgametime = 0;
NTC_StopScript(NTConfig_Script[CurScriptIndex][0]);
NTC_Delay(1000);
RunScript = false;
if(!LoopRunning)
{
LoopRuntime = ++MessageCount*10*60E3;
LoopMode = 1;
NT_AntiIdle();
}
else
LoopRuntime = ++MessageCount*5*60E3;
if(!LoopRunning)
{
RunScript = true;
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex][0]);
SetStatusText("˙c2Running ˙c4" + NTConfig_Script[CurScriptIndex][0]);
}
}
if(CloneDiabloString.length > 1 && msg.indexOf(CloneDiabloString) != -1)
{
CloneDiabloNotify = true;
NTC_SendLogToOOG(NTC_LOG_COMMON, "˙c4" + CloneDiabloString + ";˙c0Game:˙c8 " + me.gamename + "\n˙c0Password:˙c8 " + me.gamepassword + "\n˙c0ServerIP:˙c8 " + me.gameserverip.split(".")[3] + "\n˙c0Total Sojs sold:˙c8 " + (SojCount-InitialSojCount) + "\n˙c0Time Passed Since First Message:˙c8 " + (parseInt((GetTickCount()-InitialTime)/60000)) + "m" + (parseInt((GetTickCount()-InitialTime)/1000)%60) + "s" + "\n˙c0Message Count:˙c8 " + (MessageCount+1));
SetStatusText("˙c8" + CloneDiabloString);
me.maxgametime = 0;
NTC_StopScript(NTConfig_Script[CurScriptIndex][0]);
NTC_Delay(1000);
RunScript = false;
LoopRuntime = 0;
LoopMode = 0;
NT_AntiIdle();
}
}
}
function NT_KeyEvents(keycode)
{
//Print("Keycode: " + keycode);
var _script = NTC_FindScript(NTConfig_Script[CurScriptIndex][0]);
switch(keycode)
{
case 19: // pause (PAUSE)
if(_script)
{
if(_script.running)
{
ShowStatusText = false;
_script.Stop();
me.maxgametime = 0;
NTC_Delay(300);
ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
SetStatusText("˙c1Stopped ˙c4" + NTConfig_Script[CurScriptIndex][0]);
NTC_Delay(2000);
SetStatusText("˙c1Max game length set to infinite!");
}
else
{
if(!RunScript)
{
RunScript = true;
NTC_Delay(2000);
}
NT_ResetTicks();
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex][0]);
}
NT_ScriptMsgEvents("SET_DEFAULT_STATUS");
}
break;
case 33: // Skip (PGUP)
ShowStatusText = false;
SetStatusText("˙c1Skipping current script...");
RunScript = true;
if(!_script)
break;
if(_script.running)
_script.Stop();
NTTM_CheckAct();
NTC_PingDelay(500);
NT_ScriptMsgEvents("SCRIPT_END");
break;
case 34: // Repeat (PGDN)
ShowStatusText = false;
SetStatusText("˙c1Repeating previous script...");
RunScript = true;
if(!_script)
break;
if(_script.running)
_script.Stop();
NTTM_CheckAct();
NTC_PingDelay(500);
NT_ScriptMsgEvents("SCRIPT_REPEAT");
break;
case 36: // Show coordinates (POS1/HOME)
Print("Current Position: (˙c2" + me.x + "˙c0|˙c1" + me.y + "˙c0) [˙c7" + me.areaid + "˙c0]");
var _object = NTC_FindUnit(NTC_UNIT_OBJECT);
var _count = 0;
if(_object)
{
do
{
if(_object.name != GetLocaleString(5386))
Print(NTC_GetRandomColor() + "[" + (_count++) + "] " + _object.name + " (ID: " + _object.classid + ") [Mode: " + _object.mode + "] (Dist: " + GetDistance(me, _object) + ") [Pos: (" + _object.x + "|" + _object.y + ")]");
} while(_object.GetNext());
}
break;
case 46: // Exit (DEL)
RunScript = true;
ShowStatusText = false;
SetStatusText("˙c1Exiting game...");
OutputString = "˙258CDDGame" + ((me.gamename.slice(me.gamename.lastIndexOf('-') + 1)) ? " (" + me.gamename.slice(me.gamename.lastIndexOf('-') + 1) + ") " : " ") + "was finished by User!;";
NT_SetTooltipString();
NTC_SendLogToOOG(NTC_LOG_COMMON, OutputString);
if(NTConfig_PublicMode)
Say("Next game!");
NTC_PingDelay(2000);
Say("/whoami");
ExitGame();
break;
case 35: // Clear current XML logfile (END)
if(NTConfig_UseXMLItemlog)
{
ShowStatusText = false;
SetStatusText("˙c1Deleting current XML-Logfile...");
NTC_PingDelay(1000);
SetStatusText("˙c8Creating new XML-Logfile...");
NTC_PingDelay(500);
var dateString = new Date().toLocaleFormat("%m-%d-%y");
var fhandle = FileOpen("logs/"+me.charname+"/"+dateString+"_itemlog.xml", 1);
if(fhandle)
{
fhandle.WriteLine("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>");
fhandle.WriteLine("<?xml-stylesheet href=\"itemlog.xsl\" type=\"text/xsl\"?>");
fhandle.WriteLine("<itemlog>");
fhandle.WriteLine("</itemlog>");
fhandle.Close();
SetStatusText("˙c8Done!");
}
NT_ScriptMsgEvents("SET_DEFAULT_STATUS");
}
break;
case 45: // Log stashed items (INS)
ShowStatusText = false;
SetStatusText("˙c8Logging current stash to " + ((NTConfig_LogStashToTxt) ? "TXT" : "XML") + "...");
if(NTI_LogStashedItems())
SetStatusText("˙c8Done!");
else
SetStatusText("˙c1Logging failed!");
NT_ScriptMsgEvents("SET_DEFAULT_STATUS");
break;
case 8: // Show Item Info (UNDO)
NTI_ShowItemInfo();
break;
}
}
function NT_ScriptMsgEvents(msg)
{
var _area;
if(msg.split("_")[0] == "SET" && msg.indexOf("SET_DEFAULT_STATUS") == -1)
{
_isDataInput = true;
NT_EvaluateInputData(msg);
return;
}
switch(msg)
{
case "SCRIPT_END":
ShowStatusText = false;
var _script = NTC_FindScript(NTConfig_Script[CurScriptIndex][0]);
if(_script && _script.running)
_script.Stop();
if(++CurScriptIndex < NTConfig_Script.length)
{
if(NTConfig_ShowGoldPickupsPerScript)
{
if(GoldPerScript > 0)
Print("˙c8Picked up " + (GoldPerScript / 1E3).toFixed(1) + "k gold running ˙c;" + NTConfig_Script[CurScriptIndex - 1][0]);
GoldPerScript = 0;
}
NTTM_CheckAct();
NT_ResetTicks();
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex][0]);
ShowStatusText = true;
}
else
LastScript = true;
break;
case "SCRIPT_REPEAT":
ShowStatusText = false;
if(CurScriptIndex - 1 >= 0)
{
CurScriptIndex--;
NTTM_CheckAct();
NT_ResetTicks();
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex][0]);
}
else
{
SetStatusText("˙c1Cannot repeat - Invalid Index!");
NTC_PingDelay(2000);
NTTM_CheckAct();
NT_ResetTicks();
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex][0]);
}
ShowStatusText = true;
break;
case "SET_DEFAULT_STATUS":
NTC_Delay(3000);
ShowStatusText = true;
break;
case "STOP_STATUS_TEXT_UPDATE":
ShowStatusText = false;
break;
case "RESET_TICKS":
NT_ResetTicks();
break;
default:
Print("˙c1" + NTConfig_Script[CurScriptIndex][0] + " : " + msg + " failed");
_area = GetArea();
if(_area)
NTC_SendLogToOOG(NTC_LOG_COMMON, "˙E00000" + NTConfig_Script[CurScriptIndex][0] + " : " + msg + " failed (" + _area.name + ")");
else
NTC_SendLogToOOG(NTC_LOG_COMMON, "˙E00000" + NTConfig_Script[CurScriptIndex][0] + " : " + msg + " failed (unknown area)");
Errors++;
NT_ScriptMsgEvents("SCRIPT_END");
break;
}
}
function NT_ResetTicks()
{
CurScriptStartTick = GetTickCount();
if(NTConfig_Script[CurScriptIndex].length == 2 && !isNaN(NTConfig_Script[CurScriptIndex][1]))
CurScriptEndTick = CurScriptStartTick + 6E4 * NTConfig_Script[CurScriptIndex][1];
}
function NT_AntiIdle()
{
var _endtime, _starttick, _loops;
_loops = 0;
LoopRunning = true;
_starttick = GetTickCount();
if(LoopMode == 0)
LoopRuntime = NTConfig_WorldEventWaitTime;
if(GetUIState(0x01) || GetUIState(0x0C))
me.Cancel(1);
while((!LoopRuntime || LoopRuntime + _starttick > GetTickCount()) && !RunScript)
{
if(_loops % 10 == 0)
{
if(NTConfig_WorldEventAccount)
{
if(LoopMode == 0)
Say("/w *" + NTConfig_WorldEventAccount + " World Event in " + me.gamename + "//" + me.gamepassword + "!");
else
Say("/w *" + NTConfig_WorldEventAccount + " Soj Count in " + me.gamename + "//" + me.gamepassword + " (" + SojCount + ((SojCount - InitialSojCount) ? " [+" + (SojCount - InitialSojCount)+ "]" : "") + " sold)!");
}
}
SetStatusText("˙c8Switching to Act " + (1 +_loops % 5) + "...");
NTTM_CheckAct(1 + _loops % 5);
SetStatusText("˙c8Moving to Portal Spot...");
NTTM_TownMove("portalspot");
_endtime = GetTickCount() + 60E3; // Wait 60 seconds in each act
while(_endtime > GetTickCount() && ((LoopRuntime) ? (LoopRuntime + _starttick > GetTickCount()) : true) && !RunScript)
{
if(LoopMode == 0)
SetStatusText("˙c8Diablo Walks the Earth! (" + ((parseInt((GetTickCount() - _starttick) / 36E5) >= 1) ? parseInt((GetTickCount() - _starttick) / 36E5) + "h" : "") + (parseInt((GetTickCount() - _starttick) / 6E4) % 60) + "m" + (parseInt((GetTickCount() - _starttick) / 1E3) % 60) +"s)");
else
SetStatusText("˙c8Awaiting Soj Sale... (" + ((parseInt((LoopRuntime + _starttick- GetTickCount()) / 36E5) >= 1) ? parseInt((LoopRuntime + _starttick - GetTickCount()) / 36E5) + "h" : "") + (parseInt((LoopRuntime + _starttick - GetTickCount()) / 6E4) % 60) + "m" + (parseInt((LoopRuntime + _starttick - GetTickCount()) / 1E3) % 60) + "s)");
NTC_Delay(1000);
}
_loops++;
}
LoopRunning = false;
if(LoopMode != 0)
NTC_SendLogToOOG(NTC_LOG_COMMON, "˙c4Proceeding...;˙c0Total Sojs sold:˙c8 " + (SojCount - InitialSojCount) + "\n˙c0Waited˙c8 " + (parseInt((GetTickCount() - _starttick) / 6E4) % 60) + "m" + (parseInt((GetTickCount() - _starttick) / 1E3) % 60) + "s");
NTC_Delay(1000);
}
function NT_EvaluateInputData(msg)
{
switch(msg.split("_")[1])
{
case "SHRINEACTIVATED":
ActivatedShrinesCount++;
break;
case "CHESTOPENEND":
OpenedChestsCount++;
break;
case "LOOTED":
LootedMonstersCount++;
break;
case "PICKED":
PickedItemsCount++;
break;
case "SCRIPTGOLD":
GoldPerScript += parseInt(msg.split("_")[2]);
break;
case "HPDRANK":
HpUsed++;
break;
case "MPDRANK":
MpUsed++;
break;
case "RVDRANK":
RvUsed++;
break;
}
}
function NT_SetTooltipString()
{
OutputString += (GameStartCharLevel != NT_GetRequiredExp(me.GetStat(12)) && NT_GetRequiredExp(me.GetStat(12)) != -1) ? "˙c2!!! Level up (" + me.GetStat(12) + ") !!!\n" : "";
OutputString += "˙c0Game Duration:˙c8 " + ((parseInt((GetTickCount() - GameStartTick) / 36E5) >= 1) ? parseInt((GetTickCount() - GameStartTick) / 36E5) + "h " : "") + (parseInt((GetTickCount() - GameStartTick) / 6E4)) + "m " + (parseInt((GetTickCount() - GameStartTick) / 1E3) % 60) + "s";
OutputString += ((me.GetStat(13) - GameStartExp) && (GameStartCharLevel == NT_GetRequiredExp(me.GetStat(12))) ? "\n˙c0Absolute Experience Gain:˙c8 " + (me.GetStat(13) - GameStartExp) : "");
OutputString += ((me.GetStat(13) - GameStartExp) && (GameStartCharLevel == NT_GetRequiredExp(me.GetStat(12))) ? "\n˙c0Relative Experience Gain:˙c8 " + ((NT_GetRequiredExp(me.GetStat(12) + 1) - NT_GetRequiredExp(me.GetStat(12)) != 0) ? ((me.GetStat(13) - GameStartExp) / (NT_GetRequiredExp(me.GetStat(12) + 1) - NT_GetRequiredExp(me.GetStat(12))) * 100).toFixed(4) + "%" : "Invalid") : "");
OutputString += ((RvUsed || MpUsed || HpUsed) ? "\n˙c0Potions Used:˙c1 [" + HpUsed + "]˙c3 [" + MpUsed + "]˙7E0064 [" + RvUsed + "]" : "");
OutputString += ((NTC_MyGold() - PreGold > 0) ? "\n˙c0Total Gold Gathered:˙c8 " + ((NTC_MyGold() - PreGold <= 1E5) ? ((NTC_MyGold() - PreGold) / 1E3).toFixed(1) + "k" : ((NTC_MyGold() - PreGold) / 1E6).toFixed(2) + "mio") : "");
OutputString += (PickedItemsCount) ? "\n˙c0Items Picked:˙c8 " + PickedItemsCount : "";
OutputString += (LootedMonstersCount) ? "\n˙c0Corpses Looted:˙c8 " + LootedMonstersCount : "";
OutputString += (OpenedChestsCount) ? "\n˙c0Chests Opened:˙c8 " + OpenedChestsCount : "";
OutputString += (ActivatedShrinesCount) ? "\n˙c0Shrines activated:˙c8 " + ActivatedShrinesCount : "";
OutputString += (Errors) ? "\n˙c1Error Occurrence: " + Errors : "";
}
function NT_GetRequiredExp(level)
{
// Returns the experience necessary for the specified level
var _reqExp = -1;
if(!level || level < 2 || level > 99)
return _reqExp;
switch(level)
{
case 99:
_reqExp = 3520485254;
break;
case 98:
_reqExp = 3229426756;
break;
case 97:
_reqExp = 2962400612;
break;
case 96:
_reqExp = 2717422497;
break;
case 95:
_reqExp = 2492671933;
break;
case 94:
_reqExp = 2286478756;
break;
case 93:
_reqExp = 2097310703;
break;
case 92:
_reqExp = 1923762030;
break;
case 91:
_reqExp = 1764543065;
break;
case 90:
_reqExp = 1618470619;
break;
case 89:
_reqExp = 1484459201;
break;
case 88:
_reqExp = 1361512946;
break;
case 87:
_reqExp = 1248718217;
break;
case 86:
_reqExp = 1145236814;
break;
case 85:
_reqExp = 1050299747;
break;
case 84:
_reqExp = 963201521;
break;
case 83:
_reqExp = 883294891;
break;
case 82:
_reqExp = 809986056;
break;
case 81:
_reqExp = 742730244;
break;
case 80:
_reqExp = 681027665;
break;
case 79:
_reqExp = 624419793;
break;
case 78:
_reqExp = 572485967;
break;
case 77:
_reqExp = 524840254;
break;
case 76:
_reqExp = 481128591;
break;
case 75:
_reqExp = 441026148;
break;
case 74:
_reqExp = 404234916;
break;
case 73:
_reqExp = 370481492;
break;
case 72:
_reqExp = 339515048;
break;
case 71:
_reqExp = 311105466;
break;
case 70:
_reqExp = 285041630;
break;
case 69:
_reqExp = 261129853;
break;
case 68:
_reqExp = 239192444;
break;
case 67:
_reqExp = 219066380;
break;
case 66:
_reqExp = 200602101;
break;
case 65:
_reqExp = 183662396;
break;
case 64:
_reqExp = 168121381;
break;
case 63:
_reqExp = 153863570;
break;
case 62:
_reqExp = 140783010;
break;
case 61:
_reqExp = 128782495;
break;
case 60:
_reqExp = 117772849;
break;
case 59:
_reqExp = 107672256;
break;
case 58:
_reqExp = 98405658;
break;
case 57:
_reqExp = 89904191;
break;
case 56:
_reqExp = 82104680;
break;
case 55:
_reqExp = 74949165;
break;
case 54:
_reqExp = 68384473;
break;
case 53:
_reqExp = 62361819;
break;
case 52:
_reqExp = 56836449;
break;
case 51:
_reqExp = 51767302;
break;
case 50:
_reqExp = 47116709;
break;
case 49:
_reqExp = 42850109;
break;
case 48:
_reqExp = 38935798;
break;
case 47:
_reqExp = 35344686;
break;
case 46:
_reqExp = 32050088;
break;
case 45:
_reqExp = 29027522;
break;
case 44:
_reqExp = 26254525;
break;
case 43:
_reqExp = 23710491;
break;
case 42:
_reqExp = 21376515;
break;
case 41:
_reqExp = 19235252;
break;
case 40:
_reqExp = 17270791;
break;
case 39:
_reqExp = 15468534;
break;
case 38:
_reqExp = 13815086;
break;
case 37:
_reqExp = 12298162;
break;
case 36:
_reqExp = 10906488;
break;
case 35:
_reqExp = 9629723;
break;
case 34:
_reqExp = 8458379;
break;
case 33:
_reqExp = 7383752;
break;
case 32:
_reqExp = 6397855;
break;
case 31:
_reqExp = 5493363;
break;
case 30:
_reqExp = 4663553;
break;
case 29:
_reqExp = 3902260;
break;
case 28:
_reqExp = 3203826;
break;
case 27:
_reqExp = 2563061;
break;
case 26:
_reqExp = 2050449;
break;
case 25:
_reqExp = 1640359;
break;
case 24:
_reqExp = 1312287;
break;
case 23:
_reqExp = 1049830;
break;
case 22:
_reqExp = 839864;
break;
case 21:
_reqExp = 671891;
break;
case 20:
_reqExp = 537513;
break;
case 19:
_reqExp = 430010;
break;
case 18:
_reqExp = 344008;
break;
case 17:
_reqExp = 275207;
break;
case 16:
_reqExp = 220165;
break;
case 15:
_reqExp = 176132;
break;
case 14:
_reqExp = 140906;
break;
case 13:
_reqExp = 112725;
break;
case 12:
_reqExp = 90180;
break;
case 11:
_reqExp = 72144;
break;
case 10:
_reqExp = 57715;
break;
case 9:
_reqExp = 44396;
break;
case 8:
_reqExp = 32886;
break;
case 7:
_reqExp = 22680;
break;
case 6:
_reqExp = 14175;
break;
case 5:
_reqExp = 7875;
break;
case 4:
_reqExp = 3750;
break;
case 3:
_reqExp = 1500;
break;
case 2:
_reqExp = 500;
}
return _reqExp;
}
function NT_GetScriptRuntimeMinutes()
{
return parseInt((GetTickCount() - CurScriptStartTick) / 6E4) % 60;
}
function NT_GetScriptRuntimeSeconds()
{
return parseInt((GetTickCount() - CurScriptStartTick) / 1E3) % 60;
}
function NT_SetStatusText()
{
if(!ShowStatusText)
return;
var _seconds, _minutes, _script, _scriptName, _text;
_script = NTC_FindScript(NTConfig_Script[CurScriptIndex][0]);
_seconds = NT_GetScriptRuntimeSeconds();
_minutes = NT_GetScriptRuntimeMinutes();
_scriptName = "";
_text = "";
if(_script && _script.running)
{
_scriptName = NTConfig_Script[CurScriptIndex][0];
if(_minutes == 0 && _seconds <= 3 || !isNaN(NTConfig_Script[CurScriptIndex][1]) && _minutes >= NTConfig_Script[CurScriptIndex][1] && 0 < NTConfig_Script[CurScriptIndex][1])
{
if(isNaN(NTConfig_Script[CurScriptIndex][1]) || NTConfig_Script[CurScriptIndex][1] <= 0)
_text = "˙c2Running ˙c4" + _scriptName + " ˙c8[+Inf]";
else
_text = "˙c2Running ˙c4" + _scriptName + " ˙c8[" + NTConfig_Script[CurScriptIndex][1] + ":00]";
}
else
_text = "˙c2Running ˙c4" + _scriptName + " [" + ((_minutes < 10) ? '0' : "") + _minutes + ":" + ((_seconds < 10) ? '0' : "") + _seconds + "]";
}
else
_text = "˙c1Stopped ˙c4" + NTConfig_Script[CurScriptIndex][0];
if(_text.length > 39 && _text.length - _scriptName.length + 3 <= 39) // Trim the script name in case the output text exceeds the maximum length of 39 characters
_text = _text.replace(_scriptName, _scriptName.substring(0, _scriptName.length - 3 - (_text.length - 39)) + "...");
SetStatusText(_text);
}
|
Funktioniert das wirklich?
Mir kommt vor, das die NTMule.ntj von "Muddy's D2NT mit Automule" gar nicht mehr verwendet wird?
Bei mir habe ich die aufgerufenen Scripts NTPickStuff.ntl & NTPermAndMuleGame.ntl dementsprechend angepasst.
|
|
|
05/27/2011, 13:36
|
#200
|
elite*gold: 0
Join Date: May 2008
Posts: 12
Received Thanks: 0
|
Quote:
Originally Posted by TheCrazy11
Kann es sein, dass die Accountnamen zu lang werden?
Versuche mal mit gleich langen Namen selber Accounts erstellen und bedenke, dass durch die Scripts nochmals Zeichen für den Account dazukommen!
|
also an der acc länge liegts nicht... komischerweise funktioniert es mit den beiden sosos ohne probleme... zumindest starttet das spiel und er kann sich einloggen. Beim ersten mal hats mit dem pala auch geklappt... nur jetz iwie nich mehr.
|
|
|
05/27/2011, 15:08
|
#201
|
elite*gold: 0
Join Date: Mar 2010
Posts: 539
Received Thanks: 418
|
In der NTBot.ntj hast du folgendes verändert?
Code:
...
[COLOR="Red"]// Mule Settings
var UsePremadeMuleAccounts = false; // 'true' uses NTConfig_AutoMule.ntl, 'false' uses NTConfig_FullAuto.ntl
var JoinRetries = 5; // How many Attempts before giving up the Mule game?
var JoinRetryDelay = 55; // Seconds to wait between Retry Attempts
var TimeBeforeMuleGame = 9; // Minutes to wait before creating the MuleGame
var TimeAfterMule = 1; // Minutes to wait before logging back to Bot Account[/COLOR]
// DONT EDIT ANYTHING BELOW THIS
[COLOR="red"]// AutoMule Variables and Stuff
var isMuling = false;
var preventRecover = false;
var isWaiting = false;
var MuleState = "notmuling";
var DGCurrentAcc = 0;
DGDebug = false;
// Creat New Account Variables
var createNewAccount = false;
var CharCreateNumber = -1;
var RegMail = "";
var muleFull = false;
var _NewAccName;
var _NewAccPW;
var AccPrefix;
var MuleAccSuffix;
var NewAccPW;
var DGNipFiles;
var UseNumbers;
var isLadder;
var isHC;
var isClassic;
var RandomNameLength;
var MuleGame;
var MuleGamePassword;
var DGMuleAccs;
var DGMulePws;
var DGNipFiles;
var MuleCharLocation;
// Auto Mule Variables
var JoinBug;
var NewCharBug = 0;
if (UsePremadeMuleAccounts)
Include("NTBot/mule_configs/NTConfig_AutoMule.ntl");
else
Include("NTBot/mule_configs/NTConfig_FullAuto.ntl");
NT_LoadMuleConfig();
Include("libs/common/NTMuleFunctions.ntl");[/COLOR]
// D2NT Manager Command
...
Bei der NTConfig_FullAuto.ntl hast du den Account des Hammerdins richtig geschrieben?
Ansonsten kannst du mal folgendes hinzufügen:
Code:
case "hammer":
[COLOR="Red"]default:[/COLOR]
AccPrefix...
Ist jedoch relativ gefährlich/unschön, da dann für alle Bots, die nicht aufgeführt sind, die Einstellungen von "hammer" verwendet werden...
|
|
|
05/27/2011, 16:14
|
#202
|
elite*gold: 0
Join Date: Aug 2004
Posts: 233
Received Thanks: 39
|
seems 2 work @thecrazy11
|
|
|
05/27/2011, 17:23
|
#203
|
elite*gold: 0
Join Date: May 2008
Posts: 12
Received Thanks: 0
|
Mulebot trägt keinen gamenamen/pw ein
das erste Problem ist schonmal gelöst(Absurz beim starten von d2)... dieses Problem ensteht immer dann wenn der bot wartet ein mulegame zu erstellen und man den bot in dieser wartephase unterbricht(ausstellt/abstürzt). Da hilft dann nur eine Neuinstallation. Jetz läuft der spaß soweit... einziges Problem ist, dass der Bot ein spiel erstellen möchte aber weder Spielname noch Passwort einträgt... Hoffe ihr könnt mir auch bei diesem Problem helfen.
|
|
|
05/27/2011, 17:28
|
#204
|
elite*gold: 0
Join Date: Mar 2010
Posts: 539
Received Thanks: 418
|
Quote:
Originally Posted by letsid
seems 2 work @thecrazy11 
|
Aktualisiert er auch die Logs?
Bei mir habe ich die NTMule.ntj nämlich gelöscht und es läuft alles noch...
|
|
|
05/27/2011, 17:35
|
#205
|
elite*gold: 0
Join Date: Aug 2004
Posts: 233
Received Thanks: 39
|
hmmmm. vll hab ich noch irgendwo anders was geändert war da auch sehr spät (irgendwann nachts um 4) abger gerade wüsste ich es nicht.
Mal gucken.
|
|
|
05/28/2011, 07:26
|
#206
|
elite*gold: 0
Join Date: Nov 2010
Posts: 17
Received Thanks: 1
|
Einstellung
So kann man eig sagen das ein char von einen Acc z.b Runen aufhebt und 1 char vom selben ACC Pgms?
Und ein danke für diese tolle erweiterung
Mfg
AndreundNina
Und wie geht das ^^ z.b wenn ich die chars schon vor benene z.b Runen Pgms das der Runen auch die runen nimmt? Beschreibung wäre nett danke
|
|
|
05/28/2011, 07:30
|
#207
|
elite*gold: 160
Join Date: Apr 2011
Posts: 77
Received Thanks: 18
|
Quote:
Originally Posted by AndreundNina
So kann man eig sagen das ein char von einen Acc z.b Runen aufhebt und 1 char vom selben ACC Pgms?
Und ein danke für diese tolle erweiterung
Mfg
AndreundNina
|
In der Theorie ja und bei vielen scheint es auch zu funktionieren, allerdings hat es bei mir in der Praxis NICHT geklappt. Das doofe ist halt, dass er sich die Accounts selbst erstellt und wenn da was schief läuft ist der Kram weg.
|
|
|
05/28/2011, 12:59
|
#208
|
elite*gold: 0
Join Date: May 2008
Posts: 12
Received Thanks: 0
|
Mulebot trägt keinen gamenamen/pw ein
So Leute... da ich immernoch nicht meinen fehler entdeckt habe werde ich mal nach und nach meine schritte posten die ich durchgeführt habe und hoffe ihr könnt mir weiterhelfen.
1. Habe ich das Archiv entpackt.
2. Habe ich im Ordner mule configs drei *.ntl dateien kopiert und den jeweiligen charnamen eingetragen.
3. Habe ich die fullauto.ntl datei editiert der Quellcode sieht wie folgt aus:
Code:
function NT_LoadMuleConfig()
{
switch(me.account)
{
////////////////////////////////////////////////////////
// //
// COPY THIS PART BELOW FOR EACH ACCOUNT YOU BOT WITH //
// //
// Make sure you add the same amount of Accounts, PWs,//
// Nipfiles AND columns to MuleCharLocation! //
// And make sure to chose a different mule game name //
// for each of your accounts //
// //
// best regards //
// Ldevil //
// //
case "sorc":
AccPrefix = "bL"; // What Prefix you want to use for new Accounts & Chars (~2-4 characters)
MuleAccSuffix = ["spirit","schmuck","runes","rest"]; // Defin what Type should be used for Accounts and Chars (~2-5 characters)
NewAccPW = ["***","***","***","***"]; // If empty random Password will be used!
DGNipFiles = ["mule/spirit.nip","mule/schmuck.nip","mule/hrunes.nip","default"]; // This is just an example, please change!
UseNumbers = false; // true = Accounts will be Numbered, false = Accounts use Letters
isLadder = true; // Are you Botting Ladder?
isHC = false; // Are you Botting HC?
isClassic = false; // Are you Botting Classic?
RandomNameLength = 8; // Length of char name (0 = Same as account with I, II, III, IV, V, VI, VII, VIII)
// Using 0 might result in a fatal error and item loss!
MuleGame = "abcmuleftw"; // This will be the Name of your Mulegame
MuleGamePassword ="qwe"; // This will be the PW of your Mulegame
break;
case "sorc2":
AccPrefix = "bL"; // What Prefix you want to use for new Accounts & Chars (~2-4 characters)
MuleAccSuffix = ["spiritII","schmuckII","runesII","restII"]; // Defin what Type should be used for Accounts and Chars (~2-5 characters)
NewAccPW = ["***","***","***","***"]; // If empty random Password will be used!
DGNipFiles = ["mule/spirit.nip","mule/schmuck.nip","mule/hrunes.nip","default"]; // This is just an example, please change!
UseNumbers = false; // true = Accounts will be Numbered, false = Accounts use Letters
isLadder = true; // Are you Botting Ladder?
isHC = false; // Are you Botting HC?
isClassic = false; // Are you Botting Classic?
RandomNameLength = 8; // Length of char name (0 = Same as account with I, II, III, IV, V, VI, VII, VIII)
// Using 0 might result in a fatal error and item loss!
MuleGame = "cbamuleftw"; // This will be the Name of your Mulegame
MuleGamePassword ="qwe"; // This will be the PW of your Mulegame
break;
case "hammer":
AccPrefix = "bL"; // What Prefix you want to use for new Accounts & Chars (~2-4 characters)
MuleAccSuffix = ["spiritIII","schmuckIII","runesIII","restIII"]; // Defin what Type should be used for Accounts and Chars (~2-5 characters)
NewAccPW = ["***","***","***","***"]; // If empty random Password will be used!
DGNipFiles = ["mule/spirit.nip","mule/schmuck.nip","mule/hrunes.nip","default"]; // This is just an example, please change!
UseNumbers = false; // true = Accounts will be Numbered, false = Accounts use Letters
isLadder = true; // Are you Botting Ladder?
isHC = false; // Are you Botting HC?
isClassic = false; // Are you Botting Classic?
RandomNameLength = 8; // Length of char name (0 = Same as account with I, II, III, IV, V, VI, VII, VIII)
// Using 0 might result in a fatal error and item loss!
MuleGame = "bacmuleftw"; // This will be the Name of your Mulegame
MuleGamePassword ="qwe"; // This will be the PW of your Mulegame
break;
// //
Natürlich sind die Sternchen durch richtige Passwörter ersetzt die ich hier nur ungern posten möchte
4. Habe ich in dem ordner itemconfigs/mule die nip dateien spirit, schmuck, hrunes erstellt.
5. Habe ich in der globalsettings file die DGFreeSpace = 22 gesetzt.
6. Habe ich meine charconfigs aus meinem vorherigen bot eingefügt. der Bot lief vorher ohne Problem aber halt ohne automule.
7. Habe ich im manager 3 verschiedene Bots erstellt und zwar mit den namen hammer,sorc, sorc2 so wie sie in der config aus heissen.
8. Habe ich überprüft ob in der NTbot.ntj var UsePremadeMuleAccounts = false; eingetragen ist. Dies ist der Fall.
Jedoch ist mein Bot nicht in der Lage zu mulen. Jedesmal wenn er versucht zu mulen versucht er ein spiel zu erstellen. Er stellt schwierigkeit normal ein und drückt auf spiel erstellen. Er trägt aber weder gamename noch pw ein. Bitte um Hilfe
|
|
|
05/28/2011, 22:21
|
#209
|
elite*gold: 0
Join Date: Jul 2006
Posts: 469
Received Thanks: 235
|
Quote:
Originally Posted by .bLade
das erste Problem ist schonmal gelöst(Absurz beim starten von d2)... dieses Problem ensteht immer dann wenn der bot wartet ein mulegame zu erstellen und man den bot in dieser wartephase unterbricht(ausstellt/abstürzt). Da hilft dann nur eine Neuinstallation. Jetz läuft der spaß soweit... einziges Problem ist, dass der Bot ein spiel erstellen möchte aber weder Spielname noch Passwort einträgt... Hoffe ihr könnt mir auch bei diesem Problem helfen.
|
Du hast die Configs nicht richtig erstellt. Entweder hast du die falsche Config geändert oder du hast deinen Bot Account Namen im Manager nicht gleich wie in der Config. Es ist egal wie der in echt lautet "MyBOT", wenn ihr den im Manager als "mybot" eingetragen habt, muss der auch in der Config als "mybot" rein und nicht als "MyBOT", oder "MyBot" oder was weiss ich... ist casesensitiv!
Quote:
Originally Posted by TheCrazy11
Aktualisiert er auch die Logs?
Bei mir habe ich die NTMule.ntj nämlich gelöscht und es läuft alles noch...
|
Quote:
Originally Posted by letsid
hmmmm. vll hab ich noch irgendwo anders was geändert war da auch sehr spät (irgendwann nachts um 4) abger gerade wüsste ich es nicht.
Mal gucken.
|
Ich wollte das einbauen, aber da ich WinXP habe läuft der bei mir ja eh nicht. Ihr müsst aber natürlich nicht Mule.ntj anpassen, sondern die Stelle wo er Loggt... (in der NTPickStuff.ntj")
Code:
if(MWI_LogStashedItems())
SetStatusText("˙c8Done!");
else
SetStatusText("˙c1Logging failed!");
Das ist das alte, ihr müsst es mit der Funktion die für den MMM verwendet wird ersetzten und schon klappt das. Natürlich nur wenn ihr den MMM entsprechend eingebaut habt
Quote:
Originally Posted by AndreundNina
So kann man eig sagen das ein char von einen Acc z.b Runen aufhebt und 1 char vom selben ACC Pgms?
Und ein danke für diese tolle erweiterung
Mfg
AndreundNina
Und wie geht das ^^ z.b wenn ich die chars schon vor benene z.b Runen Pgms das der Runen auch die runen nimmt? Beschreibung wäre nett danke
|
Ihr macht einfach ein .nip, wo nur Runen drin sind und eins wo nur die Gems dirn sind. Packt die in das "item_configs/mule" und packt das dann entsprechend in die Config:
Code:
NTMConfig_NipFiles = ["mule/runes.nip","mule/gems.nip","default"];
Wobei "default" einfach alles andere aufnimmt.
Ihr müsst halt aufpassen, dass ihr nicht zuviele Accs macht. Das ist zwar sicher schön für's aufräumen, aber ihr riskiert RDs!
Quote:
Originally Posted by DjCybo
In der Theorie ja und bei vielen scheint es auch zu funktionieren, allerdings hat es bei mir in der Praxis NICHT geklappt. Das doofe ist halt, dass er sich die Accounts selbst erstellt und wenn da was schief läuft ist der Kram weg.
|
Nur weil DU den Bot nicht korrekt konfigurierst musst du noch lange nicht hier rum meckern. Das ganze hat nunmal einfach NICHTS mit dem Account erstellen zu tun! Du kannst auch die andere Version verwenden, wo du die Accounts selber erstellst, auch da kannst du verschiedene Accounts machen, die verschiedene Sachen aufnehmen.
Ob dir das hilft weiss ich nicht, denn wenn du's nicht mal mit dem Video Tutorial schaffst den Bot korrekt zu konfigurieren, dann bezweifle ich stark, dass du die andere Variante ganz ohne Tutorial konfigurieren kannst.
Noch einmal für alle: Nix für Anfänger!
edit: Da hab ich noch einen übersehen wie's scheint:
Quote:
Originally Posted by .bLade
So Leute... da ich immernoch nicht meinen fehler entdeckt habe werde ich mal nach und nach meine schritte posten die ich durchgeführt habe und hoffe ihr könnt mir weiterhelfen.
1. Habe ich das Archiv entpackt.
2. Habe ich im Ordner mule configs drei *.ntl dateien kopiert und den jeweiligen charnamen eingetragen.
3. Habe ich die fullauto.ntl datei editiert der Quellcode sieht wie folgt aus:
4. Habe ich in dem ordner itemconfigs/mule die nip dateien spirit, schmuck, hrunes erstellt.
5. Habe ich in der globalsettings file die DGFreeSpace = 22 gesetzt.
6. Habe ich meine charconfigs aus meinem vorherigen bot eingefügt. der Bot lief vorher ohne Problem aber halt ohne automule.
7. Habe ich im manager 3 verschiedene Bots erstellt und zwar mit den namen hammer,sorc, sorc2 so wie sie in der config aus heissen.
8. Habe ich überprüft ob in der NTbot.ntj var UsePremadeMuleAccounts = false; eingetragen ist. Dies ist der Fall.
Jedoch ist mein Bot nicht in der Lage zu mulen. Jedesmal wenn er versucht zu mulen versucht er ein spiel zu erstellen. Er stellt schwierigkeit normal ein und drückt auf spiel erstellen. Er trägt aber weder gamename noch pw ein. Bitte um Hilfe 
|
- Was war dein vorheriger Bot? Falls nicht Muddies 1.2, dann bitte Char Configs neu erstellen!
- Es geht nicht um den Profil Namen sondern um den Account Namen (der aus dem Manager, aber der ist ja kaum hammer, sorc und sorc2)! Der is sowas wie Blade oder Blade99
Wie schon etwa 100 Mal gepostet. Der Fehler liegt zu 99% daran, dass du die Account Namen nicht korrekt eingetragen hast!
|
|
|
06/02/2011, 18:52
|
#210
|
elite*gold: 0
Join Date: Nov 2009
Posts: 130
Received Thanks: 22
|
hi erstmal ich habe mir vor kurzen den bot runter geladen.
meine fragen sind:
1. was ist besser für public bot automule oder full mule.
2. AccPrefix = ""; (was soll man da eintragen)
3. MuleAccSuffix (muss man das eintragen was im video zu sehen ist)
4. gibt es kleine tipps wie man ein man einen publicbot ladder einstellen soll?
5. wie kann man das einstellen das zb. ein acc nur pgems soll auf den anderen acc keys und auf den anderen der rest?
6. mein baba mit raserei steht viel zu weit weg und atk die luft wo stell ich das ein das er genau auf den boss/mob drauf telet
7. kann man einstellen das er fade ancastet bevor er los legt?
|
|
|
 |
|
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
|
[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...
|
Automule Beta
09/03/2010 - Diablo 2 - 152 Replies
wäre doll wenn n paar leute lust haben das automule feature bissl zu testen
Download im Anhang
BEKANNTE BUGS:
Bitte den LobbyChat nicht nützen dort gibts noch bugs!
|
wie sicher d2nt-automule
06/01/2010 - Diablo 2 - 4 Replies
hi, wie sicher ist denn das auto-mule script? der ersteltl ja ein game in der hoffnung es bleibt offen wenn man es leaved?
danke
|
D2NT mit Automule?
01/30/2010 - Diablo 2 - 8 Replies
Hi,
Jo ich bin mal wieder :D
Ist es möglich den D2NT mit automule auszustatten ich verwände ATM v 1.9
steig aber auchw ieder auf 1.7 um wenn man da automulen kann :)
also kennt jemand ein script ich hab noch nix gefunden :)
|
All times are GMT +1. The time now is 13:54.
|
|