@muddy
Ich wollte das NTBotGame-Skript so abändern, dass es auch für Leute funktioniert, die nicht "deinen" Bot benützen und nur die Exp anzeige haben wollen....
Klappt bis jetzt auch alles, das einzige Problem ist, dass wenn ein Skript zu Ende läuft, das nächste nicht beginnt
Code:
var CurScriptIndex = 0;
var LastScript = false;
var CurScriptIndex = 0;
var LastScript = false;
// World Event/Soj Sale
var MessageCount = 0;
var SojSoldString = "";
var SojCount = 0;
var InitialSojCount = 0;
var InitialTime;
var RunScript = false;
var LoopRunning = false;
var LoopRuntime = 0;
var LoopMode = -1;
var CloneDiabloString = "";
var CloneDiabloNotify = false;
// Statistics... :)
var GameStartTick;
var GameStartExp;
var TotalGold = 0;
var Errors = 0;
var GameStartCharLevel;
var GoldPerScript = 0;
var PreGold;
var OutputString;
var RvUsed = 0;
var MpUsed = 0;
var HpUsed = 0;
var LootedMonstersCount = 0;
var PickedItemsCount = 0;
var myCounter = 0;
function NTMain()
{
GameStartTick = GetTickCount();
SetStatusText("ÿc8Initializing...");
Delay(1000);
//Print("ÿc4[+] NTBot 4.2 [+]");
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
if(NTConfig_StartDelay > 0);
NTC_Delay(NTConfig_StartDelay);
SetUIState(0x0A, true);
NTT_GetCorpses();
GameStartExp = me.GetStat(13);
GameStartCharLevel = NT_GetRequiredExp(me.GetStat(12));
PreGold = NTC_MyGold();
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]);
SetStatusText("Running " + NTConfig_Script[CurScriptIndex]);
while(!LastScript || CloneDiabloNotify)
{
NTC_Delay(500);
}
}
SetStatusText("ÿc1Exiting game...");
if(Errors > 1)
OutputString = "ÿc1Game" + ((me.gamename.slice(me.gamename.lastIndexOf('-')+1))? " ("+ me.gamename.slice(me.gamename.lastIndexOf('-')+1) + ") " : " ") + "was finished!;";
else
OutputString = "ÿ48A209Game" + ((me.gamename.slice(me.gamename.lastIndexOf('-')+1))? " ("+ me.gamename.slice(me.gamename.lastIndexOf('-')+1) + ") " : " ") + "was finished successfully!;";
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)/1000)%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 += (Errors)?"\nÿc1Error Occurrence: " + Errors : "";
NTC_SendLogToOOG(NTC_LOG_COMMON, OutputString);
ExitGame();
}
function NT_GameMsgEvents(msg, type)
{
if(type == 4 && msg.indexOf(CloneDiabloString) != -1)
{
CloneDiabloNotify = true;
NTC_SendLogToOOG(NTC_LOG_COMMON, "ÿc4" + CloneDiabloString);
SetStatusText(CloneDiabloString);
me.maxgametime = 0;
NTC_StopScript(NTConfig_Script[CurScriptIndex]);
NTC_Delay(500);
NTTM_CheckAct();
}
}
function NT_KeyEvents(keycode)
{
//Print("Keycode: " + keycode);
var _script = NTC_FindScript(NTConfig_Script[CurScriptIndex]);
switch(keycode)
{
case 19: // pause (PAUSE)
if(_script)
{
if(_script.running)
{
_script.Stop();
NTC_Delay(300);
ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
SetStatusText("ÿc1Stopped ÿc4" + NTConfig_Script[CurScriptIndex]);
}
else
{
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex]);
SetStatusText("ÿc2Running ÿc4" + NTConfig_Script[CurScriptIndex]);
}
}
break;
case 36: // show coordinates (POS1/HOME)
Print("Current Position: (ÿc2" + me.x + "ÿc0|ÿc1" + me.y + "ÿc0) [ÿc7" + me.areaid + "ÿc0]");
break;
case 46: // exit (DEL)
RunScript = true;
SetStatusText("ÿc1Exiting game...");
OutputString = "ÿ258CDDGame" + ((me.gamename.slice(me.gamename.lastIndexOf('-')+1))? " ("+ me.gamename.slice(me.gamename.lastIndexOf('-')+1) + ") " : " ") + "was finished by User!;";
OutputString += (GameStartCharLevel != NT_GetRequiredExp(me.GetStat(12)))? "ÿc1Level Up!\n" : "";
OutputString += "ÿc0Game Duration:ÿc8 " + ((parseInt((GetTickCount()-GameStartTick)/36E5) >= 1) ? parseInt((GetTickCount()-GameStartTick)/36E5) + "h " : "") + (parseInt((GetTickCount()-GameStartTick)/6E4)) + "m " + (parseInt((GetTickCount()-GameStartTick)/1000)%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 += (Errors)?"\nÿc1Error Occurrence: " + Errors : "";
NTC_SendLogToOOG(NTC_LOG_COMMON, OutputString);
if(NTConfig_PublicMode)
Say("Next game!");
NTC_PingDelay(2000);
ExitGame();
break;
}
}
function NT_ScriptMsgEvents(msg)
{
var _area;
switch(msg)
{
case "SCRIPT_END":
if(++CurScriptIndex < NTConfig_Script.length)
{
if(NTConfig_ShowGoldPickupsPerScript)
{
if(GoldPerScript > 0)
Print("ÿc8Picked " + (GoldPerScript/1E3).toFixed(1) + "k gold running " + NTConfig_Script[CurScriptIndex-1]);
GoldPerScript = 0;
}
NTTM_CheckAct();
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex]);
SetStatusText("ÿc2Running ÿc4" + NTConfig_Script[CurScriptIndex]);
}
else
LastScript = true;
break;
case "SET_DEFAULT_STATUS":
var _script = NTC_FindScript(NTConfig_Script[CurScriptIndex]);
if(_script)
{
NTC_Delay(2500);
if(_script.running)
SetStatusText("ÿc2Running ÿc4" + NTConfig_Script[CurScriptIndex]);
else
SetStatusText("ÿc1Stopped ÿc4" + NTConfig_Script[CurScriptIndex]);
}
else
SetStatusText("ÿc1Cannot set default status!");
break;
default:
Print("ÿc1" + NTConfig_Script[CurScriptIndex] + " : " + msg + " failed");
_area = GetArea();
if(_area)
NTC_SendLogToOOG(NTC_LOG_COMMON, "ÿE00000" + NTConfig_Script[CurScriptIndex] + " : " + msg + " failed (" + _area.name + ")");
else
NTC_SendLogToOOG(NTC_LOG_COMMON, "ÿE00000" + NTConfig_Script[CurScriptIndex] + " : " + msg + " failed (unknown area)");
Errors++;
if(++CurScriptIndex < NTConfig_Script.length)
{
NTTM_CheckAct();
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex]);
SetStatusText("ÿc2Running ÿc4" + NTConfig_Script[CurScriptIndex]);
}
else
LastScript = true;
break;
}
}
function NT_EvaluateInputData(msg)
{
switch(msg.split("_")[1])
{
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_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;
}
Hast du eine Ahnung woran das liegen könnte? Ich habe eigentlich keine Ahnung von dem Zeugs, und habe nur bischen zusammenkopiert und gelöscht.. wird aber wohl ein kleiner Fehler sein?!