|
You last visited: Today at 12:58
Advertisement
[D2NT]Problem mit der NTExp.ntl bei der Runberechnung
Discussion on [D2NT]Problem mit der NTExp.ntl bei der Runberechnung within the Diablo 2 Programming forum part of the Diablo 2 category.
09/03/2011, 02:52
|
#1
|
elite*gold: 0
Join Date: Jul 2010
Posts: 213
Received Thanks: 36
|
[D2NT]Problem mit der NTExp.ntl bei der Runberechnung
hi,
habe mir den etalbot geladen und wollte nun einige scripte in meinen d2nt übernehmen... ich dachte mir das kann ja nicht so schwer sein
anfangen wollte ich mit der NTExp.ntl, diese zeigt im d2nt manager immer an wieviel xp im letzten run gemacht wurde usw.
allerdings funktioniert bei mir die berechnung der runs nicht die er noch braucht bis zum nächsten level...
die codestelle sieht so aus:
Code:
// Calculate percent of Exp obtained toward next level
// Remaining Exp / Exp needed to level
var _progressPercent = parseInt(1000 * (_endExp - _endLvlExp) / _ExpToNextLvl[_endLvl],10) / 10;
if(_progressPercent >= 0) { var _prop = _progressPercent + "%"; } else { var _prop = "0%"; };
// Estimate number of runs remaining until next level based on Exp gained
// Remaining Exp needed to level / Exp Gained
if(_expGained > 0)
{ var _runsToLevel = _ExpToNextLvl[_endLvl] / _expGained;
//if(_runsToLevel > 10) {_runsToLevel = parseInt(_runsToLevel,10); } else { _runsToLevel = parseInt(100 * _runsToLevel,10) / 100; };
//_runsToLvl = addSeparatorsNF(_runsToLevel, ",", ".", ",")
}
else {if(_endLvl == 99) {var _runsToLvl = 'You have reached Level 99';} else {var _runsToLvl = 'NA'}}
habe ein paar zeilen auskommentiert, da ich schon viel rumprobiert habe. das problem ist, dass im manager nur "undefined" ausgegeben wird anstatt der runzahl.
soweit ich das beurteilen konnte, sind alle variablen die er in der funktion verwendet die etwas mit der xp zu tun haben auch belegt. das nehme ich an weil die funktion dadrüber die gleichen variablen verwendet und auch das richtige ergebnis bringt.
mein einziger lösungsansatz sieht so aus:
ich musste bis jetzt immer folgende zeile aus der funktion auskommentieren:
_runsToLvl = addSeparatorsNF(_runsToLevel, ",", ".", ",")
da addSeperators aber anscheinend nur die formatierung des strings/des integers(?) ändert, weiss ich nicht ob das so große auswirkungen haben kann...
diese zeile musste ich bis jetzt immer auskommentieren da ich in der zeile sonst immer einen fehler kriege: addSeperators is not defined.
was soll das?^^ is das nicht eine java-eigene funktion? wieso is die nicht definiert.
ich habe das script so wie es ist aus der etal version genommen also weiss ich nich wieso es nicht einfach läuft^^ bzw wieso genau dieser teil nicht funktioniert.
|
|
|
09/04/2011, 23:38
|
#2
|
elite*gold: 0
Join Date: Jul 2010
Posts: 213
Received Thanks: 36
|
keiner ne idee was da los is?
|
|
|
09/05/2011, 00:00
|
#3
|
Administrator
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
|
Selten sowas unleserliches gesehen, stairbuilder sollte seiner Truppe mal Beine machen.
Wenn man es mal etwas ordnet sieht es immerhin schonmal so aus:
Code:
[B][I][Color=Navy]var[/Color][/I][/B] _prop, _runsToLvl, _runsToLevel;
[Color=Green]// Calculate percent of Exp obtained toward next level[/Color]
[Color=Green]// Remaining Exp / Exp needed to level[/Color]
[B][I][Color=Navy]var[/Color][/I][/B] _progressPercent = parseInt([Color=Red]100[/Color] * (_endExp - _endLvlExp) / _ExpToNextLvl[_endLvl]).toFixed([Color=Red]1[/Color]);
[B][I][Color=Navy]if[/Color][/I][/B](_progressPercent >= [Color=Red]0[/Color])
_prop = _progressPercent + [Color=Gray]"%"[/Color];
[B][I][Color=Navy]else[/Color][/I][/B]
_prop = [Color=Gray]"0%"[/Color];
[Color=Green]// Estimate number of runs remaining until next level based on Exp gained[/Color]
[Color=Green]// Remaining Exp needed to level / Exp Gained[/Color]
[B][I][Color=Navy]if[/Color][/I][/B](_expGained > [Color=Red]0[/Color])
{
_runsToLevel = _ExpToNextLvl[_endLvl] / _expGained;
[B][I][Color=Navy]if[/Color][/I][/B](_runsToLevel > [Color=Red]10[/Color])
_runsToLevel = parseInt(_runsToLevel);
[B][I][Color=Navy]else[/Color][/I][/B]
_runsToLevel = parseInt([Color=Red]100[/Color] * _runsToLevel) / [Color=Red]100[/Color];
_runsToLvl = addSeparatorsNF(_runsToLevel, [Color=Gray]","[/Color], [Color=Gray]"."[/Color], [Color=Gray]","[/Color]);
}
[B][I][Color=Navy]else[/Color][/I][/B]
{
[B][I][Color=Navy]if[/Color][/I][/B](_endLvl == [Color=Red]99[/Color])
_runsToLvl = [Color=Gray]"You have reached Level 99"[/Color];
[B][I][Color=Navy]else[/Color][/I][/B]
_runsToLvl = [Color=Gray]"NA"[/Color];
}
Ich hätte trotzdem gerne noch etwas mehr Kontext, ich kann so noch nicht nachvollziehen was was ist und was die Funktion eigentlich machen soll.
Und mir ist nicht bekannt, dass die D2NT API eine Funktion namens addSeparatorsNF() bereitstellt, ich habe meine Funktion zur Zahlenformatierung jedenfalls selber geschrieben.
LG
Muddy
|
|
|
09/05/2011, 00:29
|
#4
|
elite*gold: 0
Join Date: Jul 2010
Posts: 213
Received Thanks: 36
|
ok dann hier mal alle infos die ich zu diesem script habe^^
Die komplette NTExp.ntl im Original aus dem etalbot:
PHP Code:
// Original Concept and Code by petrus2
// Modified by Provalone
// Updated by petrus2 Oct 12th, 2010
// Updated by petrus2 and Spermatossauro Jun 11th, 2011
var _TotalExp = [0, 0, 500, 1500, 3750, 7875, 14175, 22680, 32886, 44396, 57715, 72144, 90180, 112725, 140906, 176132, 220165, 275207, 344008, 430010, 537513, 671891, 839864, 1049830, 1312287, 1640359, 2050449, 2563061, 3203826, 3902260, 4663553, 5493363, 6397855, 7383752, 8458379, 9629723, 10906488, 12298162, 13815086, 15468534, 17270791, 19235252, 21376515, 23710491, 26254525, 29027522, 32050088, 35344686, 38935798, 42850109, 47116709, 51767302, 56836449, 62361819, 68384473, 74949165, 82104680, 89904191, 98405658, 107672256, 117772849, 128782495, 140783010, 153863570, 168121381, 183662396, 200602101, 219066380, 239192444, 261129853, 285041630, 311105466, 339515048, 370481492, 404234916, 441026148, 481128591, 524840254, 572485967, 624419793, 681027665, 742730244, 809986056, 883294891, 963201521, 1050299747, 1145236814, 1248718217, 1361512946, 1484459201, 1618470619, 1764543065, 1923762030, 2097310703, 2286478756, 2492671933, 2717422497, 2962400612, 3229426756, 3520485254, 0, 0];
var _ExpToNextLvl = [0, 500, 1000, 2250, 4125, 6300, 8505, 10206, 11510, 13319, 14429, 18036, 22545, 28181, 35226, 44033, 55042, 68801, 86002, 107503, 134378, 167973, 209966, 262457, 328072, 410090, 512612, 640765, 698434, 761293, 829810, 904492, 985897, 1074627, 1171344, 1276765, 1391674, 1516924, 1653448, 1802257, 1964461, 2141263, 2333976, 2544034, 2772997, 3022566, 3294598, 3591112, 3914311, 4266600, 4650593, 5069147, 5525370, 6022654, 6564692, 7155515, 7799511, 8501467, 9266598, 10100593, 11009646, 12000515, 13080560, 14257811, 15541015, 16939705, 18464279, 20126064, 21937409, 23911777, 26063836, 28409582, 30966444, 33753424, 36791232, 40102443, 43711663, 47645713, 51933826, 56607872, 61702579, 67255812, 73308835, 79906630, 87098226, 94937067, 103481403, 112794729, 122946255, 134011418, 146072446, 159218965, 173548673, 189168053, 206193177, 224750564, 244978115, 267026144, 291058498, 0, 0];
var _startLvl;
var _startExp;
var _startTime;
function NTE_InitializeStats() {
_startLvl = me.GetStat(12);
_startExp = me.GetStat(13);
if (_startExp < 0 || _startLvl >= 86) { _startExp = (2147483648 + _startExp); }
if (_startExp < 2147483648 && _startLvl >= 97) { _startExp = (2147483648 + _startExp); }
_startTime = GetTickCount();
//Print("Exp = " + _startExp);
//Print("Level = " + _startLvl);
}
function NTE_GetStats() {
Print(_startLvl);
}
function NTE_ComputeStats(chickenFlag) {
var _endLvl = me.GetStat(12);
var _lvlsGained = _endLvl - _startLvl;
var _endExp = me.GetStat(13);
if (_endExp < 0 || _endLvl >= 86) { _endExp = (2147483648 + _endExp); }
if (_endExp < 2147483648 && _endLvl >= 97) { _endExp = (2147483648 + _endExp); }
var _endLvlExp = _TotalExp[_endLvl];
var _expGained = _endExp - _startExp;
var _endTime = GetTickCount();
if (_expGained <= 0) { _expGained = '0'; }
// Calculate percent of Exp obtained toward next level
// Remaining Exp / Exp needed to level
var _progressPercent = parseInt(1000 * (_endExp - _endLvlExp) / _ExpToNextLvl[_endLvl],10) / 10;
if(_progressPercent >= 0) { var _prop = _progressPercent + "%"; } else { var _prop = "0%"; };
// Estimate number of runs remaining until next level based on Exp gained
// Remaining Exp needed to level / Exp Gained
if(_expGained > 0)
{ var _runsToLevel = (100 - _progressPercent) * _ExpToNextLvl[_endLvl] / (100 * _expGained);
if(_runsToLevel > 10) {_runsToLevel = parseInt(_runsToLevel,10); } else { _runsToLevel = parseInt(100 * _runsToLevel,10) / 100; };
_runsToLvl = addSeparatorsNF(_runsToLevel, ",", ".", ",")
}
else {if(_endLvl == 99) {var _runsToLvl = 'You have reached Level 99';} else {var _runsToLvl = 'NA'}}
var GameIP = me.gameserverip.split(".")[3];
if(!GameIP) { GameIP = "Single Player"; }
var RunTime = parseInt(((_endTime - _startTime) / 60000),10) + "m " + (parseInt(((_endTime - _startTime) / 1000),10) - parseInt(((_endTime - _startTime) / 60000),10) * 60) + "s";
if (!chickenFlag) {
// Messages to Console
NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_1 + "--------------------------------------------------");
NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_4 + "Est. Runs Until Next Level: " + COLOR_2 + _runsToLvl);
NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_4 + "Current Level Progress: " + COLOR_2 + _prop);
NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_4 + "Experience Gained: " + COLOR_2 + addSeparatorsNF(_expGained, ",", ".", ","));
NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_4 + "Character Level: " + COLOR_2 + _endLvl);
if (_lvlsGained > 0) { NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_1 + "====>>Levels Gained WOOT WOOT: " + COLOR_1 + _lvlsGained); }
NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_4 + "Elapsed time: " + COLOR_2 + RunTime);
NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_4 + "Game IP Was" + COLOR_2 + "[" + GameIP + "]", 0);
NTC_SendLogToOOG(NTC_LOG_COMMON, COLOR_1 + "--------------------------------------------------");
}
}
in der NTBotGame.ntj wird das script relativ am anfang erwähnt:
PHP Code:
var CurScriptIndex = 0;
var LastScript = false;
//var TestRev = '$Rev: 844 $';
//var Rev = 'r' + TestRev.split(' ')[1] + '.b';
var Rev = "r844.P";
// Provalone Edit //
//Include("libs/common/NTExp.ntl");
//NTE_InitializeStats();
//
var SoJNotify = false;
var CloneDiabloString = GetLocaleString(11005);
var SoJString = GetLocaleString(11004).substr(3);
var CloneDiabloNotify = false;
var SoJNotify = false;
var SoJElapsedTime = 0;
function D2NTStatus(where, time, message) { return SendCopyData('D2NT Manager', null, where << 16 | time, message); }
function NTMain()
{
Delay(1000);
//Print(COLOR_4 + "[+] NTBot 4.2 [+]");
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
Include("libs/common/NTExp.ntl"); <------------------------
NT_LoadConfig();
NTE_InitializeStats();
if(NTConfig_FreeSpace == 0)
Print(COLOR_2 + "Please don't forget to set NTConfig_FreeSpace in your character config to avoid your inv filling");
NT_ClearMessages(); // leech improvements
........
...
wie gesagt, das einbinden des scripts an sich hat funktioniert, nur diese eine funktion gibt keinen wert aus...
|
|
|
 |
Similar Threads
|
D2nT 3.1 Problem
05/01/2011 - Diablo 2 - 1 Replies
Hey Leute,
ich habe folgendes Problem:
NT_LoadConfig is not defined
Wäre nett, wenn einer mir dabei helfen könnte. Tut mir Leid, wenn die Lösung simple ist :P
MfG Shindo
|
D2nt Problem
05/08/2010 - Diablo 2 - 1 Replies
Hi Leute
so ich habe folgendes problem sobald mein bot AlteTunnels machen soll bleibt er einfach stehen woran kann das liege?^^
so wäre nett wenn mir jemand hilft :p
|
D2NT problem
04/06/2010 - Diablo 2 - 9 Replies
Hi,
Hab mir gerade mal D2NT runtergeladen und wollte ihn gleich testen.
Hat eigendlich alles super funktioniert,
Er Startet D2.
Logt sich ein
Nimmt meinen Char.
Joint in ein Game
|
Problem mit d2nt
11/12/2009 - Diablo 2 - 5 Replies
Ich habe im Moment 4 Accounts laufen,die gleichzeitig botten.
Als ich mir heute morgen die erbueteten Gegenstände ansehen wollte, sah ich dass alle 4 Bots ggn halb 2 heute nacht einen timeban bekommen haben....
Jedoch macht keiner von ihnen mehr als 20 games pro Stunde, insofern kann ich mir nicht erklaeren woher dieser kommt...
Kann mir da jemand weiterhelfen?
Greetz Nicnov
|
Problem mit d2nt
07/29/2009 - Diablo 2 - 3 Replies
und zwar
bei hammerdin
wenn er bei boss ist
hat er auf beiden seiten:
link = hammer stehen
rechts = hammer stehen
|
All times are GMT +1. The time now is 12:58.
|
|