|
You last visited: Today at 15:20
Advertisement
Suche ein der mir ein kleines script umschreibt d2muddys muleog > d2bs
Discussion on Suche ein der mir ein kleines script umschreibt d2muddys muleog > d2bs within the Diablo 2 Programming forum part of the Diablo 2 category.
09/23/2013, 21:12
|
#1
|
elite*gold: 30
Join Date: Apr 2011
Posts: 779
Received Thanks: 72
|
Suche ein der mir ein kleines script umschreibt d2muddys muleog > d2bs
Code:
function MWI_WriteMuleManagerOutput(account)
{
var _items, _content, _account, _fhandle, _preData, _questData;
var i, j;
if(!account)
_account = me.account;
else
_account = account;
_fhandle = FileOpen("Logs/MuleManager/" + _account + "--" + me.charname + ".mmd", 2);
if(_fhandle)
{
_preData = _fhandle.ReadLine();
_fhandle.Close();
if(_preData)
{
_preData = _preData.split('#')[2];
_preData = _preData.substr(14, 6);
}
}
if(!_preData || _preData.length != 6)
_preData = "FFFFFF";
_questData = "";
// Imbue (3)
for(j = 0; j < 3; j++)
{
if(j != me.diff)
{
_questData += _preData.charAt(j);
continue;
}
for(i = 12; i >= 0; i--)
{
if(me.GetQuest(3, i))
{
_questData += MWI_GetHexString(i, 1);
break;
}
}
if(i < 0)
_questData += '0';
}
// Larzuk (35)
for(j = 0; j < 3; j++)
{
if(j != me.diff)
{
_questData += _preData.charAt(j + 3);
continue;
}
for(i = 12; i >= 0; i--)
{
if(me.GetQuest(35, i))
{
_questData += MWI_GetHexString(i, 1);
break;
}
}
if(i < 0)
_questData += '0';
}
_content = _account + "#" + me.charname + "#";
_content += me.classid;
_content += MWI_GetHexString(me.GetStat(12), 2); // Level
_content += MWI_GetHexString(me.GetStat(14), 5); // Chargold
_content += MWI_GetHexString(me.GetStat(15), 6); // Stashgold
_content += _questData; // Larzuk/Imbue Status
_content += (me.gametype) ? 1 : 0; // Classic/LoD
_content += (me.playertype) ? 1 : 0; // Hardcore/Softcore
_content += (me.ladder) ? 1 : 0; // Ladder/Non-Ladder
_items = me.GetItems();
if(_items)
{
for(var i = 0; i < _items.length; i++)
{
if(!_items[i].name)
continue;
_content += "\n" + _items[i].name.replace(/\n/g, "|");
_content += "#" + _items[i].code;
_content += "#" + _items[i].itemdesc.replace(/\n/g, "|");
_content += "#" + MWI_GetHexString(_items[i].classid, 3);
_content += (_items[i].itemflag&0x10) ? '1' : '0';
_content += (_items[i].itemflag&0x4000000) ? '1' : '0';
_content += (_items[i].itemflag&0x400000) ? '1' : '0';
_content += MWI_GetHexString(_items[i].itemlevel, 2);
_content += MWI_GetHexString(_items[i].itemloc, 1);
_content += MWI_GetHexString(_items[i].itemprefix, 4);
_content += MWI_GetHexString(_items[i].itemsuffix, 4);
_content += MWI_GetHexString(_items[i].itemtype, 2);
_content += MWI_GetHexString(_items[i].mode, 1);
_content += MWI_GetHexString(_items[i].quality, 1);
_content += MWI_GetHexString(_items[i].x, 2);
_content += MWI_GetHexString(_items[i].xsize, 1);
_content += MWI_GetHexString(_items[i].y, 2);
_content += MWI_GetHexString(_items[i].ysize, 1);
_content += MWI_GetHexString(_items[i].itemclass, 1);
_content += MWI_GetHexString(_items[i].GetStat(194), 1); // Sockets
_content += MWI_GetHexString(_items[i].GetStat(31), 4); // Defense
_content += MWI_GetHexString(parseInt(_items[i].GetStat(21) + (_items[i].GetStat(22) - _items[i].GetStat(21)) / 2) + _items[i].GetStat(111), 3); // Average 1H damage
_content += MWI_GetHexString(parseInt(_items[i].GetStat(23) + (_items[i].GetStat(24) - _items[i].GetStat(23)) / 2) + _items[i].GetStat(111), 3); // Average 2H damage
_content += MWI_GetHexString(_items[i].GetStat(92), 2); // Level Req
}
}
return MWC_WriteToTextfile(_content, "Logs/MuleManager/" + _account + "--" + me.charname + ".mmd", 1);
}
function MWI_GetHexString(number, length)
{
var _hexString;
if(number)
_hexString = number.toString(16);
else
_hexString = "0";
while(_hexString.length < length)
{
_hexString = '0' + _hexString;
}
return _hexString.toUpperCase();
}
Das script ist für den D2muddys Mulemanager >
da siese datei nicht im d2bs funktioniert so einfach suche ich einen, der mir das script so umschreiben kann, das ich die datei direkt aus d2bs in denn manager ziehen kann.
ich würde dafür auch etwas fgs oder runen oder unid annis zahlen.
|
|
|
09/24/2013, 10:50
|
#2
|
elite*gold: 0
Join Date: Nov 2010
Posts: 51
Received Thanks: 18
|
Hatte Muddy mal deswegen gefragt, er sagt ist in Ordnung wenn es wer umstrickt für den D2BS, er hat dafür aber keine Zeit. Würde mich auch mit einer Spende für denjenigen beteiligen, der es erfolgreich für den D2BS umschreibt. Allerdings müsste auch ein entsprechendes Entry-Skript ähnlich dem "MWTools"-Entry beim D2NT erzeugt werden.
|
|
|
09/24/2013, 19:46
|
#3
|
Administrator
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,727
Received Thanks: 12,652
|
Ich hab euch mal schnell einen Ansatz gebastelt, darauf könnt ihr dann weiter aufbauen:
Code:
function MWI_WriteMuleManagerOutput(account)
{
var i, j, k, _items, _content, _questData, _key,
_quests = [
// TODO: Could those be zero-based?
[1, 5], // Imbue
[5, 1] // Larzuk
],
_preData = '',
_account = account || me.account;
_fhandle = File.open("Logs/MuleManager/" + _account + "--" + me.charname + ".mmd", FILE_READ);
// Read existing mule manger log file to determine quest status on other difficulty levels
if(_fhandle)
{
if(_fhandle.readable)
_preData = _fhandle.readLine();
_fhandle.close();
if(_preData)
_preData = _preData.split('#')[2].substr(14, 6);
}
// Initialize with proper default value of data doesn't exist or is invalid
if(!_preData.match(/[0-9A-F]{6}/))
_preData = "FFFFFF";
_questData = "";
// Loop over all quest IDs
for(k = 0; k < _quests.length; k++)
{
// Loop over all difficulties
for(j = 0; j < 3; j++)
{
// We are not on this difficulty level, hence we can merely use the previous data as a fallback
if(j != me.diff)
{
_questData += _preData.charAt(j);
continue;
}
// We are on this difficulty, so figure out what quest stage we're at
// Loop over all quest stages (not sure why that is useful, this should basically be a bitfield)
for(i = 12; i >= 0; i--)
{
// Get actual stage of the quest (use me.getQuest(_quests[k][0], _quests[k][1]) if apply doesn't work)
if(me.getQuest.apply(me, _quests[k]))
{
_questData += MWI_GetHexString(i, 1);
break;
}
}
if(i < 0)
_questData += '0';
}
}
// Store some general information about the current char
_content = _account + "#" + me.charname + "#";
_content += me.classId;
_content += MWI_GetHexString(me.getStat(12), 2); // Level
_content += MWI_GetHexString(me.getStat(14), 5); // Chargold
_content += MWI_GetHexString(me.getStat(15), 6); // Stashgold
_content += _questData; // Larzuk/Imbue Status
_content += (me.gametype) ? 1 : 0; // Classic/LoD
_content += (me.playertype) ? 1 : 0; // Hardcore/Softcore
_content += (me.ladder) ? 1 : 0; // Ladder/Non-Ladder
_items = me.getItems();
if(_items)
{
for(i = 0; i < _items.length; i++)
{
// This one is definitely invalid, so skip it
f(!_items[i].name)
continue;
_content += "\n" + _items[i].name.replace(/\n/g, "|");
_content += "#" + _items[i].code;
_content += "#" + _items[i].description.replace(/\n/g, "|");
_content += "#" + MWI_GetHexString(_items[i].classid, 3);
_content += _items[i].getFlag(0x10) ? '1' : '0';
_content += _items[i].getFlag(0x4000000) ? '1' : '0';
_content += _items[i].getFlag(0x400000) ? '1' : '0';
_content += MWI_GetHexString(_items[i].ilvl, 2);
_content += MWI_GetHexString(_items[i].location, 1);
_content += MWI_GetHexString(_items[i].prefix, 4);
_content += MWI_GetHexString(_items[i].suffix, 4);
_content += MWI_GetHexString(_items[i].itemType, 2);
_content += MWI_GetHexString(_items[i].mode, 1);
_content += MWI_GetHexString(_items[i].quality, 1);
_content += MWI_GetHexString(_items[i].x, 2);
_content += MWI_GetHexString(_items[i].sizex, 1);
_content += MWI_GetHexString(_items[i].y, 2);
_content += MWI_GetHexString(_items[i].sizey, 1);
_content += '0'; // TODO: Find proper replacement for itemclass prop :MWI_GetHexString(_items[i].itemclass, 1);
_content += MWI_GetHexString(_items[i].getStat(194), 1); // Sockets
_content += MWI_GetHexString(_items[i].getStat(31), 4); // Defence
_content += MWI_GetHexString(parseInt(_items[i].getStat(21) + (_items[i].getStat(22) - _items[i].getStat(21)) / 2) + _items[i].getStat(111), 3); // Average 1H damage
_content += MWI_GetHexString(parseInt(_items[i].getStat(23) + (_items[i].getStat(24) - _items[i].getStat(23)) / 2) + _items[i].getStat(111), 3); // Average 2H damage
_content += MWI_GetHexString(_items[i].getStat(92), 2); // Level Req
}
}
_fhandle = File.open("Logs/MuleManager/" + _account + "--" + me.charname + ".mmd", FILE_WRITE);
if(_fhandle)
{
if(_fhandle.writeable)
_fhandle.write(_content).flush();
_fhandle.close();
}
return false;
}
function MWI_GetHexString(number, length)
{
var _hexString;
if(number)
_hexString = number.toString(16);
else
_hexString = "0";
while(_hexString.length < length)
{
_hexString = '0' + _hexString;
}
return _hexString.toUpperCase();
}
Ist absolut ungetestet und nur als Entwicklungsgrundlage gedacht. Ich bin mir gerade was Dinge wie das Auslesen der Quests angeht sehr unsicher, die  ist da leider stellenweise etwas schwammig.
Ich habe ein paar Kommentare eingefügt, falls ihr zu irgendwas nähere Informationen braucht, könnt ihr gerne fragen. Aber an sich macht die Funktion nicht mehr als ein paar Daten in eine Textdatei zu schreiben, wobei Zahlen zuvor in HEX-Werte konvertiert werden - rückblickend verstehe ich nicht, warum ich den Kram nach HEX konvertiert habe und nicht gleich Base64 genutzt habe, was von der Packungsdichte her viel effizienter wäre.
|
|
|
09/24/2013, 21:25
|
#4
|
elite*gold: 30
Join Date: Apr 2011
Posts: 779
Received Thanks: 72
|
Quote:
Originally Posted by Muddy Waters
Ich hab euch mal schnell einen Ansatz gebastelt, darauf könnt ihr dann weiter aufbauen:
Code:
function MWI_WriteMuleManagerOutput(account)
{
var i, j, k, _items, _content, _questData, _key,
_quests = [
// TODO: Could those be zero-based?
[1, 5], // Imbue
[5, 1] // Larzuk
],
_preData = '',
_account = account || me.account;
_fhandle = File.open("Logs/MuleManager/" + _account + "--" + me.charname + ".mmd", FILE_READ);
// Read existing mule manger log file to determine quest status on other difficulty levels
if(_fhandle)
{
if(_fhandle.readable)
_preData = _fhandle.readLine();
_fhandle.close();
if(_preData)
_preData = _preData.split('#')[2].substr(14, 6);
}
// Initialize with proper default value of data doesn't exist or is invalid
if(!_preData.match(/[0-9A-F]{6}/))
_preData = "FFFFFF";
_questData = "";
// Loop over all quest IDs
for(k = 0; k < _quests.length; k++)
{
// Loop over all difficulties
for(j = 0; j < 3; j++)
{
// We are not on this difficulty level, hence we can merely use the previous data as a fallback
if(j != me.diff)
{
_questData += _preData.charAt(j);
continue;
}
// We are on this difficulty, so figure out what quest stage we're at
// Loop over all quest stages (not sure why that is useful, this should basically be a bitfield)
for(i = 12; i >= 0; i--)
{
// Get actual stage of the quest (use me.getQuest(_quests[k][0], _quests[k][1]) if apply doesn't work)
if(me.getQuest.apply(me, _quests[k]))
{
_questData += MWI_GetHexString(i, 1);
break;
}
}
if(i < 0)
_questData += '0';
}
}
// Store some general information about the current char
_content = _account + "#" + me.charname + "#";
_content += me.classId;
_content += MWI_GetHexString(me.getStat(12), 2); // Level
_content += MWI_GetHexString(me.getStat(14), 5); // Chargold
_content += MWI_GetHexString(me.getStat(15), 6); // Stashgold
_content += _questData; // Larzuk/Imbue Status
_content += (me.gametype) ? 1 : 0; // Classic/LoD
_content += (me.playertype) ? 1 : 0; // Hardcore/Softcore
_content += (me.ladder) ? 1 : 0; // Ladder/Non-Ladder
_items = me.getItems();
if(_items)
{
for(i = 0; i < _items.length; i++)
{
// This one is definitely invalid, so skip it
f(!_items[i].name)
continue;
_content += "\n" + _items[i].name.replace(/\n/g, "|");
_content += "#" + _items[i].code;
_content += "#" + _items[i].description.replace(/\n/g, "|");
_content += "#" + MWI_GetHexString(_items[i].classid, 3);
_content += _items[i].getFlag(0x10) ? '1' : '0';
_content += _items[i].getFlag(0x4000000) ? '1' : '0';
_content += _items[i].getFlag(0x400000) ? '1' : '0';
_content += MWI_GetHexString(_items[i].ilvl, 2);
_content += MWI_GetHexString(_items[i].location, 1);
_content += MWI_GetHexString(_items[i].prefix, 4);
_content += MWI_GetHexString(_items[i].suffix, 4);
_content += MWI_GetHexString(_items[i].itemType, 2);
_content += MWI_GetHexString(_items[i].mode, 1);
_content += MWI_GetHexString(_items[i].quality, 1);
_content += MWI_GetHexString(_items[i].x, 2);
_content += MWI_GetHexString(_items[i].sizex, 1);
_content += MWI_GetHexString(_items[i].y, 2);
_content += MWI_GetHexString(_items[i].sizey, 1);
_content += '0'; // TODO: Find proper replacement for itemclass prop :MWI_GetHexString(_items[i].itemclass, 1);
_content += MWI_GetHexString(_items[i].getStat(194), 1); // Sockets
_content += MWI_GetHexString(_items[i].getStat(31), 4); // Defence
_content += MWI_GetHexString(parseInt(_items[i].getStat(21) + (_items[i].getStat(22) - _items[i].getStat(21)) / 2) + _items[i].getStat(111), 3); // Average 1H damage
_content += MWI_GetHexString(parseInt(_items[i].getStat(23) + (_items[i].getStat(24) - _items[i].getStat(23)) / 2) + _items[i].getStat(111), 3); // Average 2H damage
_content += MWI_GetHexString(_items[i].getStat(92), 2); // Level Req
}
}
_fhandle = File.open("Logs/MuleManager/" + _account + "--" + me.charname + ".mmd", FILE_WRITE);
if(_fhandle)
{
if(_fhandle.writeable)
_fhandle.write(_content).flush();
_fhandle.close();
}
return false;
}
function MWI_GetHexString(number, length)
{
var _hexString;
if(number)
_hexString = number.toString(16);
else
_hexString = "0";
while(_hexString.length < length)
{
_hexString = '0' + _hexString;
}
return _hexString.toUpperCase();
}
Ist absolut ungetestet und nur als Entwicklungsgrundlage gedacht. Ich bin mir gerade was Dinge wie das Auslesen der Quests angeht sehr unsicher, die  ist da leider stellenweise etwas schwammig.
Ich habe ein paar Kommentare eingefügt, falls ihr zu irgendwas nähere Informationen braucht, könnt ihr gerne fragen. Aber an sich macht die Funktion nicht mehr als ein paar Daten in eine Textdatei zu schreiben, wobei Zahlen zuvor in HEX-Werte konvertiert werden - rückblickend verstehe ich nicht, warum ich den Kram nach HEX konvertiert habe und nicht gleich Base64 genutzt habe, was von der Packungsdichte her viel effizienter wäre. 
|
danke für den ansatz  sollte erleichtern denk ich mal der es umschreiben kann  .
Quote:
Originally Posted by lejim
Hatte Muddy mal deswegen gefragt, er sagt ist in Ordnung wenn es wer umstrickt für den D2BS, er hat dafür aber keine Zeit. Würde mich auch mit einer Spende für denjenigen beteiligen, der es erfolgreich für den D2BS umschreibt. Allerdings müsste auch ein entsprechendes Entry-Skript ähnlich dem "MWTools"-Entry beim D2NT erzeugt werden.
|
Ich weiß hatte ihn ja auch im jan. 2013 gefragt.. deswegen poste ich es ja
|
|
|
 |
Similar Threads
|
Suche jemand der den script umschreibt
01/21/2013 - Metin2 Private Server - 1 Replies
Hallo liebe Com,
ich suche noch für unseren Server Arcea2 eineen der uns die Hp umskriptet und mit der Datenbak verbindet.
Was es genau zu tuhen gibt schriebe ich euch dann über skype.
Werder dafür natürlich etwas bezahlen(verhandelbar).
Skype: dominik13.09
|
[ #Suche ] einen Coder, der mir ein vorh. Script umschreibt [ #Biete ] e*gold - viel.
01/28/2012 - elite*gold Trading - 12 Replies
Hey Community,
ich habe für "Habbo" ein CMS, was man für seine eigene Preislisten-Seite nutzen kann.
Jedoch suche ich jetzt jemanden der mir das irgendwie umwandelt zu Metin2.
Das heißt einfach, das jemand es umschreibt so, dass da
statt Taler was anderes steht, und ein weiteres Feature dadran baut:
"KAUFEN" - es werden in der Dropdown-Liste Kategorien angezeigt,
wo man auf ein Item gehen kann udn es kaufen kann.
PS: Es hat schon ein vorhandenes Adminpanel für's adden des Items etc.
|
Suche jemad der kleines Script Coden kann (PHP)
01/03/2011 - Web Development - 5 Replies
Hallo,
ich suche jemand der mir ein kleines PaysafeCard Cash-In Script mit Guthaben schreibt. Das heißt Jemand lädt 10 Euro auf und bekommt auf der Seite 10 Euro gutgeschrieben...
Hoffe ihr wisst was ich meine ....
MFG
.CReaTiVe
|
suche dia script star für d2bs 1.3.2
07/11/2010 - Diablo 2 - 2 Replies
hallo zusammen :)
suche ein diarun script von star
sollte public run geeignet sein
ich use zurzeit das script is aber von start das wie folgt aussieht :
function NT_Diablo() {
print("ÿc3Starting Diablo Script");
if (!NTTM_CheckAct()) {
|
D2BS Ladderreset Script!
03/23/2010 - Diablo 2 - 20 Replies
Hi ,
die neue Ladder fängt in "wenigen" Stunden an. Daher hab ich mich heute kurz hingesetzt und mir überlegt wie ich am besten anfange zu botten in der neuen Ladder.
Da gibts nur eins: Mephisto Moat Trick -> Nackte Sorc und trotzdem auf Hell Mephisto legen. Klingt nice w00t :D?
Direkt mal auf Eon geschaut obs solche skirpts gibt und ja gibt es aber leider nur für eine alte D2NT und eine veraltete D2BS Version.
Da ich denke ,dass D2BS einer der ersten Bots sein wird die auf 1.13...
|
All times are GMT +1. The time now is 15:22.
|
|