|
You last visited: Today at 17:16
Advertisement
[Release] Muddy's D2NT
Discussion on [Release] Muddy's D2NT within the Diablo 2 Programming forum part of the Diablo 2 category.
04/11/2013, 17:56
|
#6871
|
elite*gold: 20
Join Date: Apr 2011
Posts: 300
Received Thanks: 20
|
Hey,,,, all my chars works great, but with my hdin, full d2 window closed when diablo / baal are killed,and starts new... anyone know why?
|
|
|
04/11/2013, 19:37
|
#6872
|
elite*gold: 0
Join Date: Jan 2009
Posts: 3,170
Received Thanks: 1,191
|
Quote:
Originally Posted by NerDxx™
Hi Leute habe mal drei fragen,
1.
Code:
Ist es möglich wenn der leader das tp aufmacht das er wartet bis 1 oder alle Leecher durch gehen und dann erst anfängt zu kämpfen?
2.
Code:
Ist es möglich das der Leader zb sagt Tp is safe! und der Leecher erkennt die nachricht und geht dann durch das tp ? ( das er die nachricht vom leader erkennt nicht zb wenn jemand anderes die nachricht sendet ??)
3.
Code:
Wenn der Leader ein spiel öffnet und der Leecher joint , sagt der Leader Tristrun und der Leecher macht Tristrun , dann sagt der Leader Cowrun und der Leecher macht Cowrun , ist das möglich das der Leecher die Scripts Reihenfolge aus dem Chat auslesen kann?
wenn ja welche befehle sind das?
hoffe habt verstanden was ich meine ;D
|
zu 2.:
Code:
//------------------------------------------------------------------------------
// Chat Announcements
//------------------------------------------------------------------------------
// These announcements will not be made unless NTConfig_PublicMode is set to true. Set to "" not to post a message.
// NOTE: You have to set a TPSafe message when using leechers and not entering unsafe TPs.
MWConfig_Announcements.BaalThrone = "There are %d monster(s) in Throne!";
MWConfig_Announcements.BaalTpNone = "TP up, no monsters close!";
MWConfig_Announcements.BaalTpCold = "TP cold, %d monsters close!";
MWConfig_Announcements.BaalTpWarm = "TP warm, %d monsters close!";
MWConfig_Announcements.BaalTpHot = "TP hot, %d monsters close!";
MWConfig_Announcements.BaalTpSafe = "TP is safe!";
MWConfig_Announcements.BaalPreChamber = "Killing Baal!";
MWConfig_Announcements.BaalKilled = "Next game!";
MWConfig_Announcements.DiabloTpNone = "TP up, no monsters close!";
MWConfig_Announcements.DiabloTpCold = "TP cold, %d monsters close!";
MWConfig_Announcements.DiabloTpWarm = "TP warm, %d monsters close!";
MWConfig_Announcements.DiabloTpHot = "TP hot, %d monsters close!";
MWConfig_Announcements.DiabloTpSafe = "TP is safe!";
MWConfig_Announcements.DiabloPre = "Killing Diablo!";
MWConfig_Announcements.DiabloKilled = "Next game!";
und
Code:
MWConfig_Script.push(["NTBaalLeechFight.ntj", 10]); NTConfig_KillBaal = true; MWConfig_DoBaalPreAttack = true; MWConfig_EnterUnsafeTP = true; NTConfig_Leader = "LeaderNameGoesHere";
Quote:
Originally Posted by TomekkXo
Hey,,,, all my chars works great, but with my hdin, full d2 window closed when diablo / baal are killed,and starts new... anyone know why? 
|
check keys/run
|
|
|
04/11/2013, 23:19
|
#6873
|
elite*gold: 0
Join Date: Mar 2010
Posts: 559
Received Thanks: 71
|
Quote:
Originally Posted by mirkoregge
MWConfig_GlobalSettings.ntj
Code:
//------------------------------------------------------------------------------
// Chat Announcements
//------------------------------------------------------------------------------
// These announcements will not be made unless NTConfig_PublicMode is set to true. Set to "" not to post a message.
// NOTE: You have to set a TPSafe message when using leechers and not entering unsafe TPs.
MWConfig_Announcements.BaalThrone = "There are %d monster(s) in Throne!";
MWConfig_Announcements.BaalTpNone = "TP up, no monsters close!";
MWConfig_Announcements.BaalTpCold = "TP cold, %d monsters close!";
MWConfig_Announcements.BaalTpWarm = "TP warm, %d monsters close!";
MWConfig_Announcements.BaalTpHot = "TP hot, %d monsters close!";
MWConfig_Announcements.BaalTpSafe = "TP is safe!";
MWConfig_Announcements.BaalPreChamber = "Killing Baal!";
MWConfig_Announcements.BaalKilled = "Next game!";
MWConfig_Announcements.DiabloTpNone = "TP up, no monsters close!";
MWConfig_Announcements.DiabloTpCold = "TP cold, %d monsters close!";
MWConfig_Announcements.DiabloTpWarm = "TP warm, %d monsters close!";
MWConfig_Announcements.DiabloTpHot = "TP hot, %d monsters close!";
MWConfig_Announcements.DiabloTpSafe = "TP is safe!";
MWConfig_Announcements.DiabloPre = "Killing Diablo!";
MWConfig_Announcements.DiabloKilled = "Next game!";
und
Char Config.
Code:
MWConfig_Script.push(["NTBaalLeechFight.ntj", 10]); NTConfig_KillBaal = true; MWConfig_DoBaalPreAttack = true; MWConfig_EnterUnsafeTP = true; NTConfig_Leader = "LeaderNameGoesHere";
|
Wie erkennt der bot das er das tp bei baal macht.?
Code:
MWConfig_Announcements.BaalTpNone = "TP up, no monsters close!";
Vielleicht in der NTBaal.ntj Selbst?
zb
Code:
if(NTConfig_PublicMode)
{
NTM_MoveTo(me.areaid, 15112, 5004, 1, true);
NTM_MakeTP();
if(MWConfig_Announcements.BaalTpSafe)
Say(MWConfig_Announcements.BaalTpSafe);
}
zb bei Cow Leech, wie stellt man das da ein ?
Code:
MWConfig_Announcements.CowTpNone = "TP up, no monsters close!";
|
|
|
04/12/2013, 01:42
|
#6874
|
elite*gold: 0
Join Date: May 2011
Posts: 66
Received Thanks: 7
|
Ich bin mir gerade nicht sicher ob ich die Frage richtig verstehe.
Quote:
Originally Posted by NerDxx™
Wie erkennt der bot das er das tp bei baal macht.?
|
Welcher Bot soll was erkennen ?
Der Leader portet zum Thronsaal und dann passiert folgendes (Aus der "NTBaal.ntj"):
Code:
if(NTConfig_PublicMode)
{
if(_monsterCount > 1 && MWConfig_Announcements.BaalThrone)
Say(MWConfig_Announcements.BaalThrone.replace(/%d/gi, _monsterCount));
NTM_MoveTo(me.areaid, 15116, 5068);
_monsterCount = MW_CountMonstersInThrone(20);
if(_monsterCount > 1)
{
if(_monsterCount < 3 && MWConfig_Announcements.BaalTpCold)
Say(MWConfig_Announcements.BaalTpCold.replace(/%d/gi, _monsterCount));
else if(_monsterCount < 6 && MWConfig_Announcements.BaalTpWarm)
Say(MWConfig_Announcements.BaalTpWarm.replace(/%d/gi, _monsterCount));
else if(MWConfig_Announcements.BaalTpHot)
Say(MWConfig_Announcements.BaalTpHot.replace(/%d/gi, _monsterCount));
}
else if(MWConfig_Announcements.BaalTpNone)
Say(MWConfig_Announcements.BaalTpNone);
NTM_MakeTP();
NTA_ClearPosition(25, true, 2);
}
NT_ClearThroneInt();
if(NTConfig_PublicMode)
{
NTM_MoveTo(me.areaid, 15112, 5004, 1, true);
NTM_MakeTP();
if(MWConfig_Announcements.BaalTpSafe)
Say(MWConfig_Announcements.BaalTpSafe);
}
Er zählt erst wieviele Monster im Thron sind und gibt dies als Text aus. Dann entscheidet er ob das TP Cold, Warm, Hot ist oder ob keine Gegner in der nähe sind (in der Reihenfolge) und gibt dies als Text aus. Dann macht er ein TP auf mit "NTM_MakeTP();". Anschliessend säubert er den Thronsaal mit "NT_ClearThroneInt();". Ist alles gesäubert teleportiert er zu einem bestimmten Punkte, öffnet ein TP und sagt, dass der Thron Safe ist.
Der Leecher hingegen steht in Town und sucht erstmal nach einem TP des Leaders.
z.B. in der "NTBaalLeech.ntj" findet man:
Code:
for(var i = 0; i <= 200; i++)
{
if(NTC_InMyParty(NTConfig_Leader))
break;
if(!NTConfig_Leader)
{
_portal = NTM_FindPortalAreaInt(131, 0);
if(_portal != -1)
{
_owner = _portal.GetParent();
if(_owner && !NTC_InMyParty(_owner))
NTConfig_Leader = _owner;
}
}
NTC_Delay(200);
}
Ist ein TP gefunden kannst du selbst festlegen, ob dein Leecher erst joinen soll wenn das TP safe ist, oder ob er direkt reingehen soll. Die Abfrage danach kommt sofort nach dem Code, den ich oben gepostet habe und den Wert dazu gibst du in der Charconfig selbst an. Beim Beispiel des BaalLeech sollte folgendes in der Charconfig stehen:
Code:
MWConfig_Script.push(["NTBaalLeech.ntj", 10]); NTConfig_KillBaal = true; MWConfig_EnterUnsafeTP = false; NTConfig_Leader = "LeaderNameGoesHere";
wobei du dann bei "MWConfig_EnterUnsafeTP = false" angibst ob er auf ein Safe TP warten soll oder nicht.
Zum Cowleech kann ich dir nichts sagen, da ich spontan kein Cowleech Skript gefunden habe.
|
|
|
04/12/2013, 07:18
|
#6875
|
elite*gold: 0
Join Date: Jul 2010
Posts: 197
Received Thanks: 127
|
Quote:
Originally Posted by whoranzone123
Zum Cowleech kann ich dir nichts sagen, da ich spontan kein Cowleech Skript gefunden habe.
|
Sowas ist auch gar nicht implementiert. Reiner Leech ist nur bei Baalruns, Leechfight bei Diablo und Baal möglich.
|
|
|
04/12/2013, 13:13
|
#6876
|
elite*gold: 0
Join Date: Mar 2010
Posts: 559
Received Thanks: 71
|
Quote:
Originally Posted by whoranzone123
Ich bin mir gerade nicht sicher ob ich die Frage richtig verstehe.
Welcher Bot soll was erkennen ?
Der Leader portet zum Thronsaal und dann passiert folgendes (Aus der "NTBaal.ntj"):
Code:
if(NTConfig_PublicMode)
{
if(_monsterCount > 1 && MWConfig_Announcements.BaalThrone)
Say(MWConfig_Announcements.BaalThrone.replace(/%d/gi, _monsterCount));
NTM_MoveTo(me.areaid, 15116, 5068);
_monsterCount = MW_CountMonstersInThrone(20);
if(_monsterCount > 1)
{
if(_monsterCount < 3 && MWConfig_Announcements.BaalTpCold)
Say(MWConfig_Announcements.BaalTpCold.replace(/%d/gi, _monsterCount));
else if(_monsterCount < 6 && MWConfig_Announcements.BaalTpWarm)
Say(MWConfig_Announcements.BaalTpWarm.replace(/%d/gi, _monsterCount));
else if(MWConfig_Announcements.BaalTpHot)
Say(MWConfig_Announcements.BaalTpHot.replace(/%d/gi, _monsterCount));
}
else if(MWConfig_Announcements.BaalTpNone)
Say(MWConfig_Announcements.BaalTpNone);
NTM_MakeTP();
NTA_ClearPosition(25, true, 2);
}
NT_ClearThroneInt();
if(NTConfig_PublicMode)
{
NTM_MoveTo(me.areaid, 15112, 5004, 1, true);
NTM_MakeTP();
if(MWConfig_Announcements.BaalTpSafe)
Say(MWConfig_Announcements.BaalTpSafe);
}
Er zählt erst wieviele Monster im Thron sind und gibt dies als Text aus. Dann entscheidet er ob das TP Cold, Warm, Hot ist oder ob keine Gegner in der nähe sind (in der Reihenfolge) und gibt dies als Text aus. Dann macht er ein TP auf mit "NTM_MakeTP();". Anschliessend säubert er den Thronsaal mit "NT_ClearThroneInt();". Ist alles gesäubert teleportiert er zu einem bestimmten Punkte, öffnet ein TP und sagt, dass der Thron Safe ist.
Der Leecher hingegen steht in Town und sucht erstmal nach einem TP des Leaders.
z.B. in der "NTBaalLeech.ntj" findet man:
Code:
for(var i = 0; i <= 200; i++)
{
if(NTC_InMyParty(NTConfig_Leader))
break;
if(!NTConfig_Leader)
{
_portal = NTM_FindPortalAreaInt(131, 0);
if(_portal != -1)
{
_owner = _portal.GetParent();
if(_owner && !NTC_InMyParty(_owner))
NTConfig_Leader = _owner;
}
}
NTC_Delay(200);
}
Ist ein TP gefunden kannst du selbst festlegen, ob dein Leecher erst joinen soll wenn das TP safe ist, oder ob er direkt reingehen soll. Die Abfrage danach kommt sofort nach dem Code, den ich oben gepostet habe und den Wert dazu gibst du in der Charconfig selbst an. Beim Beispiel des BaalLeech sollte folgendes in der Charconfig stehen:
Code:
MWConfig_Script.push(["NTBaalLeech.ntj", 10]); NTConfig_KillBaal = true; MWConfig_EnterUnsafeTP = false; NTConfig_Leader = "LeaderNameGoesHere";
wobei du dann bei "MWConfig_EnterUnsafeTP = false" angibst ob er auf ein Safe TP warten soll oder nicht.
Zum Cowleech kann ich dir nichts sagen, da ich spontan kein Cowleech Skript gefunden habe.
|
Danke für den ausführlichen beitrag wieder etwas dazu gelernt,
Quote:
Originally Posted by fghtrt
Sowas ist auch gar nicht implementiert. Reiner Leech ist nur bei Baalruns, Leechfight bei Diablo und Baal möglich.
|
ist möglich mann muss nur einige sachen einfügen / entfernen
möchte mehrere scripts auf leechfight bearbeiten,
zb bei cow bin ich grade soweit das mein leecher durch das blaue portal geht möchte aber das er wartet bis der leader sagt tp is safe erst dann soll er durch gehen!!!
mir fehlt die Erfahrung , habe mich nie mit den scripts befasst Grund wissen ist vorhanden ;D
Wie erkennt der Leecher wann das tp safe ist?
welcher befehl in der "NTBaalLeech.ntj" ist das?
Korrigiere mich falls ich falsch liege
Code:
var _AllowedToEnterTP = false; // erlaubt durchs portal zu gehen = false
Der Leecher liest die nachrichten aus dem chat,
Code:
RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);
var i;
var _wave, _monsterCount, _starttick, _loops, _placedTraps, _portal, _owner;
if(!NTTM_CheckAct(5, true))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_CheckAct, 27, 5, true);
return;
}
Der Leecher geht zum Portalfeld
und sucht nach dem Portal vom leader der in der party ist.
Code:
NTTM_TownMove("portalspot");
for(i = 0; i <= 200; i++)
{
if(NTC_InMyParty(NTConfig_Leader))
break;
if(!NTConfig_Leader)
{
_portal = NTM_FindPortalAreaInt(131, 0);
if(_portal != -1)
{
_owner = _portal.GetParent();
if(_owner && !NTC_InMyParty(_owner))
NTConfig_Leader = _owner;
}
}
Code:
}
NTC_Delay(200);
}
if(MWConfig_EnterUnsafeTP)
_AllowedToEnterTP = true; // wenn in der config erlaubt ist geht er durchs unsafetp = true
while(NTC_InTown() && NTC_InMyParty(NTConfig_Leader))
{
if(_AllowedToEnterTP)
NTM_UsePortal("BluePortal", 131, NTConfig_Leader); // wenn der Leader in der party ist geht er durch blaue portal.
NTC_Delay(500);
}
Cow Leader Blue Portal
Code:
/**
* This file was modified by [email] [/email]
* Check the programming section for updates and further scripts
* Last Update: 22:45 24.08.2011
*/
const _NTR_STRING_COW_KING = GetLocaleString(2850);
const _NTR_COW_KING_RANGE = 80;
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
MWC_Initialize();
var _wirtbody, _cube, _leg, _portal, _stash, _npc;
var i;
if(!NTTM_CheckAct(me.act, true))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_CheckAct, 24, me.act, true);
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_TownMove, 32, "waypoint");
return;
}
if(!NTM_TakeWaypoint(4))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeWaypoint, 38, 4);
return;
}
NTP_DoPrecast(true);
if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_MONSTER, 737, 10, 10))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToPresetUnit, 46, me.areaid, NTC_UNIT_MONSTER, 737, 10, 10);
return;
}
if(!NTM_UsePortal("Portal", 38))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_UsePortal, 52, "Portal", 38);
return;
}
NTM_MoveTo(me.areaid, 25047, 5178);
if(NTA_ClearPosition(10))
NTSI_PickItems();
_wirtbody = NTC_FindUnit(NTC_UNIT_OBJECT, 268);
if(!_wirtbody)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTC_FindUnit, 63, NTC_UNIT_OBJECT, 268);
return;
}
if(NTM_MoveTo(_wirtbody.areaid, _wirtbody.x + 3, _wirtbody.y))
{
if(NTC_OpenChest(_wirtbody))
{
for(i = 0; i < 40; i++)
{
NTC_Delay(NTC_DELAY_FRAME);
_leg = NTC_FindUnit(NTC_UNIT_ITEM, 88, 1);
if(_leg)
break;
}
if(!NTT_CheckSpace(_leg.xsize, _leg.ysize))
NTTMGR_VisitTown();
if(MWSI_PickupItem(_leg.classid))
Print("ÿc4Got Leg");
}
}
if(!_leg)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTC_FindUnit, 79, NTC_UNIT_ITEM, 88, 1);
return;
}
NTTM_CheckAct();
NTTM_TownMove("akara");
for(var i = 0; i < 10; i++)
{
_npc = NTC_FindUnit(NTC_UNIT_NPC, NTC_NPC_ID_AKARA);
if(_npc)
break;
}
if(_npc)
{
if(NTT_DoInteract(_npc))
{
if(NTT_DoTrade(_npc))
{
NTT_FillTome(_npc, 1);
NTT_FillTome(_npc, 0);
NTT_SecondTomeTP(_npc, "tbk", 1);
_portal = NTR_GetTP();
if(!_portal)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTR_GetTP, 121);
return;
}
}
}
me.Cancel(1);
}
if(MWT_OpenStash())
{
_cube = me.GetItems(NTC_UNIT_CUBE);
if(!_cube[0])
{
NTC_SendMsgToScript("MWBotGame.ntj", me.GetItems, 136, NTC_UNIT_CUBE);
return;
}
if(NTCU_CheckCubeInventoryInt() > 0)
{
NTCU_OpenCubeInt(_cube[0]);
if(NTCU_ClearCubeInt() < 1)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTCU_ClearCubeInt, 148);
return;
}
NTCU_CloseCubeInt();
}
NTCU_MoveItemToCubeInt(_cube[0],_leg);
NTCU_MoveItemToCubeInt(_cube[0],_portal);
MWCU_Transmute(_cube[0]);
NTCU_CloseCubeInt();
me.Cancel(1);
NTC_Delay(250);
}
if(!NTR_TakeCowPortal(12))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTR_TakeCowPortal, 169, 12);
return;
}
NTM_MakeTP();
if(MWConfig_Announcements.CowTpSafe)
Say(MWConfig_Announcements.CowTpSafe);
NTP_DoPrecast();
NTR_ClearRooms(150, NTC_UNIT_MONSTER, 773, _NTR_COW_KING_RANGE);
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
// Internal functions
function NTR_GetTP()
{
var _portals = me.GetItems("tbk");
if (_portals)
{
for (var i = 0; i < _portals.length; i++)
{
if (_portals[i].mode == 0 && (_portals[i].itemloc != 0 || NTConfig_Columns[_portals[i].y][_portals[i].x] > 0))
{
return _portals[i];
}
}
}
return false;
}
function NTR_TakeCowPortal(range)
{
var _portal;
_portal = NTC_FindUnit(NTC_UNIT_OBJECT, 60, 5);
if(_portal)
return NTM_UsePortal("Portal", 39, "dummy", _portal);
return false;
}
function NTR_ClearRooms(range, type, id, distance)
{
var i;
var _unit;
var _preRoom;
var _addRooms = new Array();
var _removeRooms = new Array();
if (distance)
{
_unit = GetPresetUnits(me.areaid, type, id);
if (!_unit || _unit.length < 1)
return false;
}
_preRoom = GetRoom();
if (_preRoom)
{
do
{
if (distance)
{
if (GetDistance(_preRoom.x * 5, _preRoom.y * 5, _unit[0].roomx * 5, _unit[0].roomy * 5) < distance)
continue;
}
_addRooms.push([_preRoom.x * 5, _preRoom.y * 5]);
} while (_preRoom.GetNext());
}
if (_addRooms.length < 1)
return false;
_preRoom = [me.x, me.y];
while (_addRooms.length > 0)
{
_addRooms.sort(function (a, b) { return (GetDistance(_preRoom[0], _preRoom[1], a[0], a[1]) - GetDistance(_preRoom[0], _preRoom[1], b[0], b[1])); });
_removeRooms.push([_addRooms[0][0], _addRooms[0][1]]);
for (i = 1; i < _addRooms.length; i++)
{
if (GetDistance(_preRoom[0], _preRoom[1], _addRooms[i][0], _addRooms[i][1]) <= GetDistance(_preRoom[0], _preRoom[1], _addRooms[0][0], _addRooms[0][1]))
{
_removeRooms.push([_addRooms[i][0], _addRooms[i][1]]);
}
else
break;
}
if (_removeRooms.length > 1)
{
_removeRooms.sort(function (a, b) { return (b[0] - a[0]); });
if (_removeRooms[0][0] <= _preRoom[0])
{
_removeRooms.sort(function (a, b) { return (b[1] - a[1]); });
if (_removeRooms[0][1] <= _preRoom[1])
{
_removeRooms.sort(function (a, b) { return (a[0] - b[0]); });
if (_removeRooms[0][0] >= _preRoom[0])
_removeRooms.sort(function (a, b) { return (a[1] - b[1]); });
}
}
}
if (!range || GetDistance(me.x, me.y, _removeRooms[0][0], _removeRooms[0][1]) < range)
{
if (NTR_MoveTo(me.areaid, _removeRooms[0][0], _removeRooms[0][1], 3, true))
_preRoom = _removeRooms[0];
}
for (i = 0; i < _addRooms.length; i++)
{
if (_addRooms[i][0] == _removeRooms[0][0] && _addRooms[i][1] == _removeRooms[0][1])
{
_addRooms.splice(i, 1);
break;
}
}
_removeRooms.length = 0;
}
return true;
}
function NTR_MoveTo(areaId, x, y, retry, isClearPath)
{
if (x == me.x && y == me.y)
return true;
if (arguments.length < 4)
retry = 3;
if (arguments.length < 5)
isClearPath = false;
var j;
var _path;
var _preX, _preY;
_path = GetPath(areaId, me.x, me.y, x, y, true);
if (!_path)
return false;
for (var i = 0; i < _path.length; i++)
{
if (NTR_CheckCowKing() || NTR_CheckSafe(_path[i][0], _path[i][1], 15))
{
for (j = 0; j < retry; j++)
{
if (NTM_MoveTo(me.areaid, _path[i][0], _path[i][1]))
break;
}
if (j >= retry)
return false;
}
if (isClearPath && !NTR_CheckCowKing())
{
_preX = me.x;
_preY = me.y;
if(!MWR_ClearPosition(30, true))
return false;
NTP_DoPrecast();
if (me.x != _preX || me.y != _preY)
{
if (!NTM_MoveTo(me.areaid, _preX, _preY))
return false;
}
}
}
return true;
}
function NTR_CheckCowKing()
{
var _cowKing = NTC_FindUnit(NTC_UNIT_MONSTER, _NTR_STRING_COW_KING);
return (_cowKing && GetDistance(me, _cowKing) < _NTR_COW_KING_RANGE);
}
function NTR_CheckSafe(x, y, range)
{
var i;
var _target = NTC_FindUnit(NTC_UNIT_MONSTER);
if (_target)
{
do
{
if (GetDistance(x, y, _target.x, _target.y) < range && _target.IsAttackable())
{
for (i = 0; i < 6; i++)
{
if (NTConfig_AttackSkill[i] && NTA_GetResistance(_target, _NTA_SkillDamage[i]) < 100)
return false;
}
}
} while (_target.GetNext());
}
return true;
}
function MWR_ClearPosition(range, pickitem, safelevel, openchests, usefinditem)
{
var _orgx, _orgy;
var _skiplist;
var _attackcount = 0;
var _target;
var _distance, _mingid, _mindistance;
var _result;
switch(arguments.length)
{
case 0:
range = 20;
case 1:
pickitem = false;
case 3:
openchests = true;
case 4:
usefinditem = true;
default:
if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
safelevel = 0;
break;
}
_orgx = me.x;
_orgy = me.y;
for(var i = 0; i < 3; i++)
{
_skiplist = new Array();
while(_attackcount < (i+1)*100)
{
if(NTR_CheckCowKing())
return false;
_mindistance = 1E6;
_target = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_target)
{
do
{
if(_skiplist.indexOf(_target.gid) < 0)
{
if(_target.IsAttackable())
{
if(GetDistance(_orgx, _orgy, _target.x, _target.y) <= range && NTA_IsValidMonster(_target))
{
_distance = GetDistance(me, _target);
if(_distance < _mindistance)
{
_mingid = _target.gid;
_mindistance = _distance;
}
}
}
else
_skiplist.push(_target.gid);
}
} while(_target.GetNext());
}
if(_mindistance < 1E6)
{
_target = NTC_FindUnit(NTC_UNIT_MONSTER, _mingid, 1);
if(_target)
{
if(MWConfig_ShowOverheadStatus)
Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");
_result = NTA_Attack(_target, (_attackcount % 30) == 0);
if(MWConfig_ShowOverheadStatus)
Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");
switch(_result)
{
case 1:
_skiplist.push(_mingid);
break;
case 2:
case 3:
if(MWConfig_PickItemsInstantly && (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12))
NTSI_PickItems();
_attackcount++;
break;
default:
_attackcount = 1E6;
}
}
}
else
break;
}
}
if(_attackcount > 2)
{
switch(me.classid)
{
case NTC_CHAR_CLASS_PALADIN:
if(parseInt(me.hp * 100 / me.hpmax) < NTConfig_UseRedemptionHP || parseInt(me.mp * 100 / me.mpmax) < NTConfig_UseRedemptionMP)
{
if(NTC_PutSkill(124, NTC_HAND_RIGHT))
NTC_PingDelay(1000);
}
break;
case NTC_CHAR_CLASS_BARBARIAN:
if(usefinditem && MWConfig_UseFindItem && !NTR_CheckCowKing())
MWL_FindItem(MWConfig_FindItemRange);
break;
case NTC_CHAR_CLASS_NECROMANCER:
if(!NTR_CheckCowKing())
MWA_RaiseMinions();
break;
}
}
if(pickitem && _attackcount > 0)
NTSI_PickItems();
if(MWConfig_OpenContainerMode == 2 && openchests && !NTR_CheckCowKing())
MWL_OpenNearbyChests(MWConfig_OpenChestsRange);
if(MWConfig_ActivateNearbyShrines)
MWL_ActivateNearbyShrines();
switch(safelevel)
{
case 1:
return NTTMGR_CheckSafe(0x00, NTConfig_CheckMercSafe&0x01);
case 2:
return NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
}
if(MWConfig_IdentAfterPickup)
MWL_IDItemsAfterPickup();
return true;
}
function NTT_SecondTomeTP(npc, type, amount)
{
var _items;
var _counter = 0;
if(arguments.length < 1)
return false;
if(arguments.length < 2)
type = 0;
if(arguments.length < 0)
amount = 1;
if(amount == 0)
return false;
if(type)
_items = npc.GetItems("tbk");
if(_items)
{
if(_items.length > 0)
{
for(var i = 0 ; i < amount ; i++)
{
if(NTT_ShopItem(_items[0], npc, 2))
_counter++;
}
}
}
return (_counter > 0);
}
CowLeechfight Blue Portal
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 22:45 24.08.2011
*/
const _NTR_STRING_COW_KING = GetLocaleString(2850);
const _NTR_COW_KING_RANGE = 80;
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
MWC_Initialize();
var _portal;
var i;
if(!NTTM_CheckAct(1, true))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_CheckAct, 26, 1, true);
return;
}
NTTM_TownMove("portalspot");
for(i = 0; i <= 300; i++)
{
if(NTC_InMyParty(NTConfig_Leader))
break;
Delay(200);
}
while(me.areaid == 1 && NTC_InMyParty(NTConfig_Leader))
{
NTM_UsePortal("BluePortal", 38, NTConfig_Leader);
}
NTP_DoPrecast();
NTR_ClearRooms(150, NTC_UNIT_MONSTER, 773, _NTR_COW_KING_RANGE);
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
function NTR_TakeCowPortal(range)
{
var _portal;
_portal = NTC_FindUnit(NTC_UNIT_OBJECT, 60, 5);
if(_portal)
return NTM_UsePortal("Portal", 39, "dummy", _portal);
return false;
}
function NTR_ClearRooms(range, type, id, distance)
{
var i;
var _unit;
var _preRoom;
var _addRooms = new Array();
var _removeRooms = new Array();
if (distance)
{
_unit = GetPresetUnits(me.areaid, type, id);
if (!_unit || _unit.length < 1)
return false;
}
_preRoom = GetRoom();
if (_preRoom)
{
do
{
if (distance)
{
if (GetDistance(_preRoom.x * 5, _preRoom.y * 5, _unit[0].roomx * 5, _unit[0].roomy * 5) < distance)
continue;
}
_addRooms.push([_preRoom.x * 5, _preRoom.y * 5]);
} while (_preRoom.GetNext());
}
if (_addRooms.length < 1)
return false;
_preRoom = [me.x, me.y];
while (_addRooms.length > 0)
{
_addRooms.sort(function (a, b) { return (GetDistance(_preRoom[0], _preRoom[1], a[0], a[1]) - GetDistance(_preRoom[0], _preRoom[1], b[0], b[1])); });
_removeRooms.push([_addRooms[0][0], _addRooms[0][1]]);
for (i = 1; i < _addRooms.length; i++)
{
if (GetDistance(_preRoom[0], _preRoom[1], _addRooms[i][0], _addRooms[i][1]) <= GetDistance(_preRoom[0], _preRoom[1], _addRooms[0][0], _addRooms[0][1]))
{
_removeRooms.push([_addRooms[i][0], _addRooms[i][1]]);
}
else
break;
}
if (_removeRooms.length > 1)
{
_removeRooms.sort(function (a, b) { return (b[0] - a[0]); });
if (_removeRooms[0][0] <= _preRoom[0])
{
_removeRooms.sort(function (a, b) { return (b[1] - a[1]); });
if (_removeRooms[0][1] <= _preRoom[1])
{
_removeRooms.sort(function (a, b) { return (a[0] - b[0]); });
if (_removeRooms[0][0] >= _preRoom[0])
_removeRooms.sort(function (a, b) { return (a[1] - b[1]); });
}
}
}
if (!range || GetDistance(me.x, me.y, _removeRooms[0][0], _removeRooms[0][1]) < range)
{
if (NTR_MoveTo(me.areaid, _removeRooms[0][0], _removeRooms[0][1], 3, true))
_preRoom = _removeRooms[0];
}
for (i = 0; i < _addRooms.length; i++)
{
if (_addRooms[i][0] == _removeRooms[0][0] && _addRooms[i][1] == _removeRooms[0][1])
{
_addRooms.splice(i, 1);
break;
}
}
_removeRooms.length = 0;
}
return true;
}
function NTR_MoveTo(areaId, x, y, retry, isClearPath)
{
if (x == me.x && y == me.y)
return true;
if (arguments.length < 4)
retry = 3;
if (arguments.length < 5)
isClearPath = false;
var j;
var _path;
var _preX, _preY;
_path = GetPath(areaId, me.x, me.y, x, y, true);
if (!_path)
return false;
for (var i = 0; i < _path.length; i++)
{
if (NTR_CheckCowKing() || NTR_CheckSafe(_path[i][0], _path[i][1], 15))
{
for (j = 0; j < retry; j++)
{
if (NTM_MoveTo(me.areaid, _path[i][0], _path[i][1]))
break;
}
if (j >= retry)
return false;
}
if (isClearPath && !NTR_CheckCowKing())
{
_preX = me.x;
_preY = me.y;
if(!MWR_ClearPosition(30, true))
return false;
NTP_DoPrecast();
if (me.x != _preX || me.y != _preY)
{
if (!NTM_MoveTo(me.areaid, _preX, _preY))
return false;
}
}
}
return true;
}
function NTR_CheckCowKing()
{
var _cowKing = NTC_FindUnit(NTC_UNIT_MONSTER, _NTR_STRING_COW_KING);
return (_cowKing && GetDistance(me, _cowKing) < _NTR_COW_KING_RANGE);
}
function NTR_CheckSafe(x, y, range)
{
var i;
var _target = NTC_FindUnit(NTC_UNIT_MONSTER);
if (_target)
{
do
{
if (GetDistance(x, y, _target.x, _target.y) < range && _target.IsAttackable())
{
for (i = 0; i < 6; i++)
{
if (NTConfig_AttackSkill[i] && NTA_GetResistance(_target, _NTA_SkillDamage[i]) < 100)
return false;
}
}
} while (_target.GetNext());
}
return true;
}
function MWR_ClearPosition(range, pickitem, safelevel, openchests, usefinditem)
{
var _orgx, _orgy;
var _skiplist;
var _attackcount = 0;
var _target;
var _distance, _mingid, _mindistance;
var _result;
switch(arguments.length)
{
case 0:
range = 20;
case 1:
pickitem = false;
case 3:
openchests = true;
case 4:
usefinditem = true;
default:
if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
safelevel = 0;
break;
}
_orgx = me.x;
_orgy = me.y;
for(var i = 0; i < 3; i++)
{
_skiplist = new Array();
while(_attackcount < (i+1)*100)
{
if(NTR_CheckCowKing())
return false;
_mindistance = 1E6;
_target = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_target)
{
do
{
if(_skiplist.indexOf(_target.gid) < 0)
{
if(_target.IsAttackable())
{
if(GetDistance(_orgx, _orgy, _target.x, _target.y) <= range && NTA_IsValidMonster(_target))
{
_distance = GetDistance(me, _target);
if(_distance < _mindistance)
{
_mingid = _target.gid;
_mindistance = _distance;
}
}
}
else
_skiplist.push(_target.gid);
}
} while(_target.GetNext());
}
if(_mindistance < 1E6)
{
_target = NTC_FindUnit(NTC_UNIT_MONSTER, _mingid, 1);
if(_target)
{
if(MWConfig_ShowOverheadStatus)
Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");
_result = NTA_Attack(_target, (_attackcount % 30) == 0);
if(MWConfig_ShowOverheadStatus)
Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");
switch(_result)
{
case 1:
_skiplist.push(_mingid);
break;
case 2:
case 3:
if(MWConfig_PickItemsInstantly && (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12))
NTSI_PickItems();
_attackcount++;
break;
default:
_attackcount = 1E6;
}
}
}
else
break;
}
}
if(_attackcount > 2)
{
switch(me.classid)
{
case NTC_CHAR_CLASS_PALADIN:
if(parseInt(me.hp * 100 / me.hpmax) < NTConfig_UseRedemptionHP || parseInt(me.mp * 100 / me.mpmax) < NTConfig_UseRedemptionMP)
{
if(NTC_PutSkill(124, NTC_HAND_RIGHT))
NTC_PingDelay(1000);
}
break;
case NTC_CHAR_CLASS_BARBARIAN:
if(usefinditem && MWConfig_UseFindItem && !NTR_CheckCowKing())
MWL_FindItem(MWConfig_FindItemRange);
break;
case NTC_CHAR_CLASS_NECROMANCER:
if(!NTR_CheckCowKing())
MWA_RaiseMinions();
break;
}
}
if(pickitem && _attackcount > 0)
NTSI_PickItems();
if(MWConfig_OpenContainerMode == 2 && openchests && !NTR_CheckCowKing())
MWL_OpenNearbyChests(MWConfig_OpenChestsRange);
if(MWConfig_ActivateNearbyShrines)
MWL_ActivateNearbyShrines();
switch(safelevel)
{
case 1:
return NTTMGR_CheckSafe(0x00, NTConfig_CheckMercSafe&0x01);
case 2:
return NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
}
if(MWConfig_IdentAfterPickup)
MWL_IDItemsAfterPickup();
return true;
}
|
|
|
04/12/2013, 17:01
|
#6877
|
elite*gold: 0
Join Date: Nov 2009
Posts: 130
Received Thanks: 22
|
kleine techniche frage ich benutze
Code:
MWConfig_Script.push(["MWOrganHarvest.ntj", 30]); MWConfig_EnterInvalidUberPortals = true; MWConfig_PauseOnLackOfKeys = false; MWConfig_IntendedUberPortal = 0; // Matron's Den: 133; Forgotten Sands: 134; Furnace Of Pain: 135;
und
Code:
// ##### Keys ##########################
[Name] == KeyOfTerror
[Name] == KeyOfHate
[Name] == KeyOfDestruction
// ##### Organs ##########################
[Name] == Diablo'sHorn
[Name] == Baal'sEye
[Name] == Mephisto'sBrain
sind auch aktiv
blos der bot schmeißt immer die organe weg kann man das auch iwie beheben?
weil ich bin ja nicht ständig am pc ^^
|
|
|
04/12/2013, 19:19
|
#6878
|
Administrator
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,652
|
Quote:
Originally Posted by NerDxx™
mir fehlt die Erfahrung , habe mich nie mit den scripts befasst Grund wissen ist vorhanden ;D
Wie erkennt der Leecher wann das tp safe ist?
welcher befehl in der "NTBaalLeech.ntj" ist das?
|
Was genau ist denn an Grundwissen vorhanden? Wie Funktionen in JS funktionieren und was es mit Scopes auf sich hat ist bekannt?
Die Erkennung läuft in der Tat über den Chat. Dazu wird zu Beginn des Scripts ein Event Handler für Chats Ereignisse zugewiesen. Dieser Event Handler ist nichts anderes als eine Funktion, die jedes mal aufgerufen wird, wenn ein Chat Event eintritt, also z.B. dann, wenn jemand etwas im Chat schreibt, aber etwa auch bei Server Nachrichten (z.B. bei World Events).
Das sieht dann so aus:
Code:
RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);
Dabei ist RegisterEvent() eine globale Funktion zum anhängen von Event Handlern, EVENT_GAMEMSG eine globale Konstante, die festlegt, dass hier ein Handler für Events vom Typ Game Message zugewiesen wird und zu guter letzt NT_GameMsgEvents als eine Funktion, die im Kontext, aus dem RegisterEvent() aufgerufen wird, definiert ist. Dem Namen nach zu urteilen ist NT_GameMsgEvents vermutlich im gleichen Script auf global Scope Ebene implementiert.
Quote:
Originally Posted by OxolarsoxO
kleine techniche frage ich benutze
Code:
MWConfig_Script.push(["MWOrganHarvest.ntj", 30]); MWConfig_EnterInvalidUberPortals = true; MWConfig_PauseOnLackOfKeys = false; MWConfig_IntendedUberPortal = 0; // Matron's Den: 133; Forgotten Sands: 134; Furnace Of Pain: 135;
und
Code:
// ##### Keys ##########################
[Name] == KeyOfTerror
[Name] == KeyOfHate
[Name] == KeyOfDestruction
// ##### Organs ##########################
[Name] == Diablo'sHorn
[Name] == Baal'sEye
[Name] == Mephisto'sBrain
sind auch aktiv
blos der bot schmeißt immer die organe weg kann man das auch iwie beheben?
weil ich bin ja nicht ständig am pc ^^
|
Bindest du die entsprechenden NIP-Datei denn überhaupt bei dir in der Char Config ein (von Haus aus sollte eben diese Datei nicht eingebunden sein)?
|
|
|
04/12/2013, 19:27
|
#6879
|
elite*gold: 0
Join Date: Nov 2009
Posts: 130
Received Thanks: 22
|
meinst du das?
Code:
// Set to true to always check the selected Nips for errors after including them. Check "..\scripts\Logs\NipErrors.txt" for a precise error description!
MWConfig_RunNipCheck = false;
das einfach auf true?
|
|
|
04/12/2013, 19:53
|
#6880
|
Administrator
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,652
|
Nein, ich meine den Teil wo du festlegst, welche NIP-Dateien inkludiert werden sollen. Sieht ungefähr so aus:
Code:
//-----------------------------------------------------------------------------------
// NipFile Configuration
//-----------------------------------------------------------------------------------
NTConfig_NIPFilePath.push("private/normal.nip");
NTConfig_NIPFilePath.push("private/magic_rare.nip");
NTConfig_NIPFilePath.push("private/set.nip");
NTConfig_NIPFilePath.push("private/unique.nip");
NTConfig_NIPFilePath.push("private/craft.nip");
NTConfig_NIPFilePath.push("private/temp.nip");
|
|
|
04/12/2013, 19:57
|
#6881
|
elite*gold: 0
Join Date: Nov 2009
Posts: 130
Received Thanks: 22
|
Quote:
Originally Posted by Muddy Waters
Nein, ich meine den Teil wo du festlegst, welche NIP-Dateien inkludiert werden sollen. Sieht ungefähr so aus:
Code:
//-----------------------------------------------------------------------------------
// NipFile Configuration
//-----------------------------------------------------------------------------------
NTConfig_NIPFilePath.push("private/normal.nip");
NTConfig_NIPFilePath.push("private/magic_rare.nip");
NTConfig_NIPFilePath.push("private/set.nip");
NTConfig_NIPFilePath.push("private/unique.nip");
NTConfig_NIPFilePath.push("private/craft.nip");
NTConfig_NIPFilePath.push("private/temp.nip");
|
oh man ich bin so dumm dumm dumm  danke ^^
kann man den mulestatus der am anfang kommt im d2nt manager kommt auch reseten? weil zb meine ersten chars sind wieder leer wird aber immer noch mit 100% angezeigt
|
|
|
04/12/2013, 21:32
|
#6882
|
Administrator
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,652
|
Optimalerweise verwendest du zum Zugriff auf die Mulis den MWTools Entry Point und verlässt das Spiel dabei immer mit Druck auf die DEL-Taste - dabei wird das jeweilige Logfile überschrieben.
Alternativ kannst du auch einfach die zugehörigen  Logfiles löschen, diese sollten sich im Ordner ./scripts/Logs/MuleManager befinden.
|
|
|
04/12/2013, 23:57
|
#6883
|
elite*gold: 0
Join Date: Mar 2010
Posts: 559
Received Thanks: 71
|
Wer es Braucht hier,
Einfach nur etwas ändern , ihr müsst den Leader angeben
Code:
1. Im script
var _leader = "Euren Leader Name";
2.
In de Char config.
WConfig_Script.push(["XXXXXXX.ntj", 10]); NTConfig_Leader = "Leader Name"; MWConfig_EnterUnsafeTP = false;
Cow Leader ( Blaue Portal - Mit "Tp is safe!" Nachricht )
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 22:45 24.08.2011
*/
const _NTR_STRING_COW_KING = GetLocaleString(2850);
const _NTR_COW_KING_RANGE = 80;
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
MWC_Initialize();
var _wirtbody, _cube, _leg, _portal, _stash, _npc;
var i;
if(!NTTM_CheckAct(me.act, true))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_CheckAct, 24, me.act, true);
return;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_TownMove, 32, "waypoint");
return;
}
if(!NTM_TakeWaypoint(4))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeWaypoint, 38, 4);
return;
}
NTP_DoPrecast(true);
if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_MONSTER, 737, 10, 10))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveToPresetUnit, 46, me.areaid, NTC_UNIT_MONSTER, 737, 10, 10);
return;
}
if(!NTM_UsePortal("Portal", 38))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTM_UsePortal, 52, "Portal", 38);
return;
}
NTM_MoveTo(me.areaid, 25047, 5178);
if(NTA_ClearPosition(10))
NTSI_PickItems();
_wirtbody = NTC_FindUnit(NTC_UNIT_OBJECT, 268);
if(!_wirtbody)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTC_FindUnit, 63, NTC_UNIT_OBJECT, 268);
return;
}
if(NTM_MoveTo(_wirtbody.areaid, _wirtbody.x + 3, _wirtbody.y))
{
if(NTC_OpenChest(_wirtbody))
{
for(i = 0; i < 40; i++)
{
NTC_Delay(NTC_DELAY_FRAME);
_leg = NTC_FindUnit(NTC_UNIT_ITEM, 88, 1);
if(_leg)
break;
}
if(!NTT_CheckSpace(_leg.xsize, _leg.ysize))
NTTMGR_VisitTown();
if(MWSI_PickupItem(_leg.classid))
Print("ÿc4Got Leg");
}
}
if(!_leg)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTC_FindUnit, 79, NTC_UNIT_ITEM, 88, 1);
return;
}
NTTM_CheckAct();
NTTM_TownMove("akara");
for(var i = 0; i < 10; i++)
{
_npc = NTC_FindUnit(NTC_UNIT_NPC, NTC_NPC_ID_AKARA);
if(_npc)
break;
}
if(_npc)
{
if(NTT_DoInteract(_npc))
{
if(NTT_DoTrade(_npc))
{
NTT_FillTome(_npc, 1);
NTT_FillTome(_npc, 0);
NTT_SecondTomeTP(_npc, "tbk", 1);
_portal = NTR_GetTP();
if(!_portal)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTR_GetTP, 121);
return;
}
}
}
me.Cancel(1);
}
if(MWT_OpenStash())
{
_cube = me.GetItems(NTC_UNIT_CUBE);
if(!_cube[0])
{
NTC_SendMsgToScript("MWBotGame.ntj", me.GetItems, 136, NTC_UNIT_CUBE);
return;
}
if(NTCU_CheckCubeInventoryInt() > 0)
{
NTCU_OpenCubeInt(_cube[0]);
if(NTCU_ClearCubeInt() < 1)
{
NTC_SendMsgToScript("MWBotGame.ntj", NTCU_ClearCubeInt, 148);
return;
}
NTCU_CloseCubeInt();
}
NTCU_MoveItemToCubeInt(_cube[0],_leg);
NTCU_MoveItemToCubeInt(_cube[0],_portal);
MWCU_Transmute(_cube[0]);
NTCU_CloseCubeInt();
me.Cancel(1);
NTC_Delay(250);
}
if(!NTR_TakeCowPortal(12))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTR_TakeCowPortal, 169, 12);
return;
}
NTM_MakeTP();
if(MWConfig_Announcements.BaalTpSafe)
Say(MWConfig_Announcements.BaalTpSafe);
NTP_DoPrecast();
NTR_ClearRooms(150, NTC_UNIT_MONSTER, 773, _NTR_COW_KING_RANGE);
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
// Internal functions
function NTR_GetTP()
{
var _portals = me.GetItems("tbk");
if (_portals)
{
for (var i = 0; i < _portals.length; i++)
{
if (_portals[i].mode == 0 && (_portals[i].itemloc != 0 || NTConfig_Columns[_portals[i].y][_portals[i].x] > 0))
{
return _portals[i];
}
}
}
return false;
}
function NTR_TakeCowPortal(range)
{
var _portal;
_portal = NTC_FindUnit(NTC_UNIT_OBJECT, 60, 5);
if(_portal)
return NTM_UsePortal("Portal", 39, "dummy", _portal);
return false;
}
function NTR_ClearRooms(range, type, id, distance)
{
var i;
var _unit;
var _preRoom;
var _addRooms = new Array();
var _removeRooms = new Array();
if (distance)
{
_unit = GetPresetUnits(me.areaid, type, id);
if (!_unit || _unit.length < 1)
return false;
}
_preRoom = GetRoom();
if (_preRoom)
{
do
{
if (distance)
{
if (GetDistance(_preRoom.x * 5, _preRoom.y * 5, _unit[0].roomx * 5, _unit[0].roomy * 5) < distance)
continue;
}
_addRooms.push([_preRoom.x * 5, _preRoom.y * 5]);
} while (_preRoom.GetNext());
}
if (_addRooms.length < 1)
return false;
_preRoom = [me.x, me.y];
while (_addRooms.length > 0)
{
_addRooms.sort(function (a, b) { return (GetDistance(_preRoom[0], _preRoom[1], a[0], a[1]) - GetDistance(_preRoom[0], _preRoom[1], b[0], b[1])); });
_removeRooms.push([_addRooms[0][0], _addRooms[0][1]]);
for (i = 1; i < _addRooms.length; i++)
{
if (GetDistance(_preRoom[0], _preRoom[1], _addRooms[i][0], _addRooms[i][1]) <= GetDistance(_preRoom[0], _preRoom[1], _addRooms[0][0], _addRooms[0][1]))
{
_removeRooms.push([_addRooms[i][0], _addRooms[i][1]]);
}
else
break;
}
if (_removeRooms.length > 1)
{
_removeRooms.sort(function (a, b) { return (b[0] - a[0]); });
if (_removeRooms[0][0] <= _preRoom[0])
{
_removeRooms.sort(function (a, b) { return (b[1] - a[1]); });
if (_removeRooms[0][1] <= _preRoom[1])
{
_removeRooms.sort(function (a, b) { return (a[0] - b[0]); });
if (_removeRooms[0][0] >= _preRoom[0])
_removeRooms.sort(function (a, b) { return (a[1] - b[1]); });
}
}
}
if (!range || GetDistance(me.x, me.y, _removeRooms[0][0], _removeRooms[0][1]) < range)
{
if (NTR_MoveTo(me.areaid, _removeRooms[0][0], _removeRooms[0][1], 3, true))
_preRoom = _removeRooms[0];
}
for (i = 0; i < _addRooms.length; i++)
{
if (_addRooms[i][0] == _removeRooms[0][0] && _addRooms[i][1] == _removeRooms[0][1])
{
_addRooms.splice(i, 1);
break;
}
}
_removeRooms.length = 0;
}
return true;
}
function NTR_MoveTo(areaId, x, y, retry, isClearPath)
{
if (x == me.x && y == me.y)
return true;
if (arguments.length < 4)
retry = 3;
if (arguments.length < 5)
isClearPath = false;
var j;
var _path;
var _preX, _preY;
_path = GetPath(areaId, me.x, me.y, x, y, true);
if (!_path)
return false;
for (var i = 0; i < _path.length; i++)
{
if (NTR_CheckCowKing() || NTR_CheckSafe(_path[i][0], _path[i][1], 15))
{
for (j = 0; j < retry; j++)
{
if (NTM_MoveTo(me.areaid, _path[i][0], _path[i][1]))
break;
}
if (j >= retry)
return false;
}
if (isClearPath && !NTR_CheckCowKing())
{
_preX = me.x;
_preY = me.y;
if(!MWR_ClearPosition(30, true))
return false;
NTP_DoPrecast();
if (me.x != _preX || me.y != _preY)
{
if (!NTM_MoveTo(me.areaid, _preX, _preY))
return false;
}
}
}
return true;
}
function NTR_CheckCowKing()
{
var _cowKing = NTC_FindUnit(NTC_UNIT_MONSTER, _NTR_STRING_COW_KING);
return (_cowKing && GetDistance(me, _cowKing) < _NTR_COW_KING_RANGE);
}
function NTR_CheckSafe(x, y, range)
{
var i;
var _target = NTC_FindUnit(NTC_UNIT_MONSTER);
if (_target)
{
do
{
if (GetDistance(x, y, _target.x, _target.y) < range && _target.IsAttackable())
{
for (i = 0; i < 6; i++)
{
if (NTConfig_AttackSkill[i] && NTA_GetResistance(_target, _NTA_SkillDamage[i]) < 100)
return false;
}
}
} while (_target.GetNext());
}
return true;
}
function MWR_ClearPosition(range, pickitem, safelevel, openchests, usefinditem)
{
var _orgx, _orgy;
var _skiplist;
var _attackcount = 0;
var _target;
var _distance, _mingid, _mindistance;
var _result;
switch(arguments.length)
{
case 0:
range = 20;
case 1:
pickitem = false;
case 3:
openchests = true;
case 4:
usefinditem = true;
default:
if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
safelevel = 0;
break;
}
_orgx = me.x;
_orgy = me.y;
for(var i = 0; i < 3; i++)
{
_skiplist = new Array();
while(_attackcount < (i+1)*100)
{
if(NTR_CheckCowKing())
return false;
_mindistance = 1E6;
_target = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_target)
{
do
{
if(_skiplist.indexOf(_target.gid) < 0)
{
if(_target.IsAttackable())
{
if(GetDistance(_orgx, _orgy, _target.x, _target.y) <= range && NTA_IsValidMonster(_target))
{
_distance = GetDistance(me, _target);
if(_distance < _mindistance)
{
_mingid = _target.gid;
_mindistance = _distance;
}
}
}
else
_skiplist.push(_target.gid);
}
} while(_target.GetNext());
}
if(_mindistance < 1E6)
{
_target = NTC_FindUnit(NTC_UNIT_MONSTER, _mingid, 1);
if(_target)
{
if(MWConfig_ShowOverheadStatus)
Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");
_result = NTA_Attack(_target, (_attackcount % 30) == 0);
if(MWConfig_ShowOverheadStatus)
Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");
switch(_result)
{
case 1:
_skiplist.push(_mingid);
break;
case 2:
case 3:
if(MWConfig_PickItemsInstantly && (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12))
NTSI_PickItems();
_attackcount++;
break;
default:
_attackcount = 1E6;
}
}
}
else
break;
}
}
if(_attackcount > 2)
{
switch(me.classid)
{
case NTC_CHAR_CLASS_PALADIN:
if(parseInt(me.hp * 100 / me.hpmax) < NTConfig_UseRedemptionHP || parseInt(me.mp * 100 / me.mpmax) < NTConfig_UseRedemptionMP)
{
if(NTC_PutSkill(124, NTC_HAND_RIGHT))
NTC_PingDelay(1000);
}
break;
case NTC_CHAR_CLASS_BARBARIAN:
if(usefinditem && MWConfig_UseFindItem && !NTR_CheckCowKing())
MWL_FindItem(MWConfig_FindItemRange);
break;
case NTC_CHAR_CLASS_NECROMANCER:
if(!NTR_CheckCowKing())
MWA_RaiseMinions();
break;
}
}
if(pickitem && _attackcount > 0)
NTSI_PickItems();
if(MWConfig_OpenContainerMode == 2 && openchests && !NTR_CheckCowKing())
MWL_OpenNearbyChests(MWConfig_OpenChestsRange);
if(MWConfig_ActivateNearbyShrines)
MWL_ActivateNearbyShrines();
switch(safelevel)
{
case 1:
return NTTMGR_CheckSafe(0x00, NTConfig_CheckMercSafe&0x01);
case 2:
return NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
}
if(MWConfig_IdentAfterPickup)
MWL_IDItemsAfterPickup();
return true;
}
function NTT_SecondTomeTP(npc, type, amount)
{
var _items;
var _counter = 0;
if(arguments.length < 1)
return false;
if(arguments.length < 2)
type = 0;
if(arguments.length < 0)
amount = 1;
if(amount == 0)
return false;
if(type)
_items = npc.GetItems("tbk");
if(_items)
{
if(_items.length > 0)
{
for(var i = 0 ; i < amount ; i++)
{
if(NTT_ShopItem(_items[0], npc, 2))
_counter++;
}
}
}
return (_counter > 0);
}
Cow Leechfight ( Blaue Portal - Mit "Tp is safe!" Nachricht )
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 22:45 24.08.2011
*/
var _AllowedToEnterTP = false;
const _NTR_STRING_COW_KING = GetLocaleString(2850);
const _NTR_COW_KING_RANGE = 80;
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
MWC_Initialize();
RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);
var _leader = "Leader Name"; // Name of leader's character in game (exactly)
var _portal;
var i;
if(!NTTM_CheckAct(1, true))
{
NTC_SendMsgToScript("MWBotGame.ntj", NTTM_CheckAct, 26, 1, true);
return;
}
NTTM_TownMove("portalspot");
for(i = 0; i <= 200; i++)
{
if(NTC_InMyParty(NTConfig_Leader))
break;
if(!NTConfig_Leader)
{
_portal = NTM_FindPortalAreaInt(38, 0);
if(_portal != -1)
{
_owner = _portal.GetParent();
if(_owner && !NTC_InMyParty(_owner))
NTConfig_Leader = _owner;
}
}
NTC_Delay(200);
}
if(MWConfig_EnterUnsafeTP)
_AllowedToEnterTP = true;
while(NTC_InTown() && NTC_InMyParty(NTConfig_Leader))
{
if(_AllowedToEnterTP)
NTM_UsePortal("BluePortal", 38, NTConfig_Leader);
NTC_Delay(500);
}
NTP_DoPrecast();
NTR_ClearRooms(150, NTC_UNIT_MONSTER, 773, _NTR_COW_KING_RANGE);
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
function NTR_TakeCowPortal(range)
{
var _portal;
_portal = NTC_FindUnit(NTC_UNIT_OBJECT, 60, 5);
if(_portal)
return NTM_UsePortal("Portal", 39, "dummy", _portal);
return false;
}
function NTR_ClearRooms(range, type, id, distance)
{
var i;
var _unit;
var _preRoom;
var _addRooms = new Array();
var _removeRooms = new Array();
if (distance)
{
_unit = GetPresetUnits(me.areaid, type, id);
if (!_unit || _unit.length < 1)
return false;
}
_preRoom = GetRoom();
if (_preRoom)
{
do
{
if (distance)
{
if (GetDistance(_preRoom.x * 5, _preRoom.y * 5, _unit[0].roomx * 5, _unit[0].roomy * 5) < distance)
continue;
}
_addRooms.push([_preRoom.x * 5, _preRoom.y * 5]);
} while (_preRoom.GetNext());
}
if (_addRooms.length < 1)
return false;
_preRoom = [me.x, me.y];
while (_addRooms.length > 0)
{
_addRooms.sort(function (a, b) { return (GetDistance(_preRoom[0], _preRoom[1], a[0], a[1]) - GetDistance(_preRoom[0], _preRoom[1], b[0], b[1])); });
_removeRooms.push([_addRooms[0][0], _addRooms[0][1]]);
for (i = 1; i < _addRooms.length; i++)
{
if (GetDistance(_preRoom[0], _preRoom[1], _addRooms[i][0], _addRooms[i][1]) <= GetDistance(_preRoom[0], _preRoom[1], _addRooms[0][0], _addRooms[0][1]))
{
_removeRooms.push([_addRooms[i][0], _addRooms[i][1]]);
}
else
break;
}
if (_removeRooms.length > 1)
{
_removeRooms.sort(function (a, b) { return (b[0] - a[0]); });
if (_removeRooms[0][0] <= _preRoom[0])
{
_removeRooms.sort(function (a, b) { return (b[1] - a[1]); });
if (_removeRooms[0][1] <= _preRoom[1])
{
_removeRooms.sort(function (a, b) { return (a[0] - b[0]); });
if (_removeRooms[0][0] >= _preRoom[0])
_removeRooms.sort(function (a, b) { return (a[1] - b[1]); });
}
}
}
if (!range || GetDistance(me.x, me.y, _removeRooms[0][0], _removeRooms[0][1]) < range)
{
if (NTR_MoveTo(me.areaid, _removeRooms[0][0], _removeRooms[0][1], 3, true))
_preRoom = _removeRooms[0];
}
for (i = 0; i < _addRooms.length; i++)
{
if (_addRooms[i][0] == _removeRooms[0][0] && _addRooms[i][1] == _removeRooms[0][1])
{
_addRooms.splice(i, 1);
break;
}
}
_removeRooms.length = 0;
}
return true;
}
function NTR_MoveTo(areaId, x, y, retry, isClearPath)
{
if (x == me.x && y == me.y)
return true;
if (arguments.length < 4)
retry = 3;
if (arguments.length < 5)
isClearPath = false;
var j;
var _path;
var _preX, _preY;
_path = GetPath(areaId, me.x, me.y, x, y, true);
if (!_path)
return false;
for (var i = 0; i < _path.length; i++)
{
if (NTR_CheckCowKing() || NTR_CheckSafe(_path[i][0], _path[i][1], 15))
{
for (j = 0; j < retry; j++)
{
if (NTM_MoveTo(me.areaid, _path[i][0], _path[i][1]))
break;
}
if (j >= retry)
return false;
}
if (isClearPath && !NTR_CheckCowKing())
{
_preX = me.x;
_preY = me.y;
if(!MWR_ClearPosition(30, true))
return false;
NTP_DoPrecast();
if (me.x != _preX || me.y != _preY)
{
if (!NTM_MoveTo(me.areaid, _preX, _preY))
return false;
}
}
}
return true;
}
function NTR_CheckCowKing()
{
var _cowKing = NTC_FindUnit(NTC_UNIT_MONSTER, _NTR_STRING_COW_KING);
return (_cowKing && GetDistance(me, _cowKing) < _NTR_COW_KING_RANGE);
}
function NTR_CheckSafe(x, y, range)
{
var i;
var _target = NTC_FindUnit(NTC_UNIT_MONSTER);
if (_target)
{
do
{
if (GetDistance(x, y, _target.x, _target.y) < range && _target.IsAttackable())
{
for (i = 0; i < 6; i++)
{
if (NTConfig_AttackSkill[i] && NTA_GetResistance(_target, _NTA_SkillDamage[i]) < 100)
return false;
}
}
} while (_target.GetNext());
}
return true;
}
function MWR_ClearPosition(range, pickitem, safelevel, openchests, usefinditem)
{
var _orgx, _orgy;
var _skiplist;
var _attackcount = 0;
var _target;
var _distance, _mingid, _mindistance;
var _result;
switch(arguments.length)
{
case 0:
range = 20;
case 1:
pickitem = false;
case 3:
openchests = true;
case 4:
usefinditem = true;
default:
if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
safelevel = 0;
break;
}
_orgx = me.x;
_orgy = me.y;
for(var i = 0; i < 3; i++)
{
_skiplist = new Array();
while(_attackcount < (i+1)*100)
{
if(NTR_CheckCowKing())
return false;
_mindistance = 1E6;
_target = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_target)
{
do
{
if(_skiplist.indexOf(_target.gid) < 0)
{
if(_target.IsAttackable())
{
if(GetDistance(_orgx, _orgy, _target.x, _target.y) <= range && NTA_IsValidMonster(_target))
{
_distance = GetDistance(me, _target);
if(_distance < _mindistance)
{
_mingid = _target.gid;
_mindistance = _distance;
}
}
}
else
_skiplist.push(_target.gid);
}
} while(_target.GetNext());
}
if(_mindistance < 1E6)
{
_target = NTC_FindUnit(NTC_UNIT_MONSTER, _mingid, 1);
if(_target)
{
if(MWConfig_ShowOverheadStatus)
Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");
_result = NTA_Attack(_target, (_attackcount % 30) == 0);
if(MWConfig_ShowOverheadStatus)
Say("!Attacking " + _target.name + " (" + (_target.hp * 100 / _target.hpmax).toFixed(0) + "%)");
switch(_result)
{
case 1:
_skiplist.push(_mingid);
break;
case 2:
case 3:
if(MWConfig_PickItemsInstantly && (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12))
NTSI_PickItems();
_attackcount++;
break;
default:
_attackcount = 1E6;
}
}
}
else
break;
}
}
if(_attackcount > 2)
{
switch(me.classid)
{
case NTC_CHAR_CLASS_PALADIN:
if(parseInt(me.hp * 100 / me.hpmax) < NTConfig_UseRedemptionHP || parseInt(me.mp * 100 / me.mpmax) < NTConfig_UseRedemptionMP)
{
if(NTC_PutSkill(124, NTC_HAND_RIGHT))
NTC_PingDelay(1000);
}
break;
case NTC_CHAR_CLASS_BARBARIAN:
if(usefinditem && MWConfig_UseFindItem && !NTR_CheckCowKing())
MWL_FindItem(MWConfig_FindItemRange);
break;
case NTC_CHAR_CLASS_NECROMANCER:
if(!NTR_CheckCowKing())
MWA_RaiseMinions();
break;
}
}
if(pickitem && _attackcount > 0)
NTSI_PickItems();
if(MWConfig_OpenContainerMode == 2 && openchests && !NTR_CheckCowKing())
MWL_OpenNearbyChests(MWConfig_OpenChestsRange);
if(MWConfig_ActivateNearbyShrines)
MWL_ActivateNearbyShrines();
switch(safelevel)
{
case 1:
return NTTMGR_CheckSafe(0x00, NTConfig_CheckMercSafe&0x01);
case 2:
return NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
}
if(MWConfig_IdentAfterPickup)
MWL_IDItemsAfterPickup();
return true;
}
function NT_GameMsgEvents(msg, type)
{
var _msg = msg.toLowerCase();
if(type == 0 && _msg.indexOf(NTConfig_Leader.toLowerCase()) > -1 && MWConfig_Announcements.BaalTpSafe && _msg.indexOf(MWConfig_Announcements.BaalTpSafe.toLowerCase()) > -1)
_AllowedToEnterTP = true;
}
Um eine meiner drei Frage zu beantworten
Quote:
Originally Posted by NerDxx™
Hi Leute habe mal drei fragen,
1.
Code:
Ist es möglich wenn der leader das tp aufmacht das er wartet bis 1 oder alle Leecher durch gehen und dann erst anfängt zu kämpfen?
2.
Code:
Ist es möglich das der Leader zb sagt Tp is safe! und der Leecher erkennt die nachricht und geht dann durch das tp ?
3.
Code:
Wenn der Leader ein spiel öffnet und der Leecher joint , sagt der Leader Tristrun und der Leecher macht Tristrun , dann sagt der Leader Cowrun und der Leecher macht Cowrun , ist das möglich das der Leecher die Scripts Reihenfolge aus dem Chat auslesen kann?
wenn ja welche befehle sind das?
hoffe habt verstanden was ich meine ;D
|
Frage 2 unten im Spoiler,
Code:
[]
[]
[]
[]
[]
--------------------
In Dem Script zb Baal Leech,
--------------------
[]
--------------------
!!! GANZ OBEN !!!!
var _AllowedToEnterTP = false;
!!!!!!
--------------------
[]
[]
[]
--------------------
Oben Einfügen !!
--------------------
Oben Einfügen !!
--------------------
--------------------
RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);
var _leader = "Leader Name"; // Name of leader's character in game (exactly)
--------------------
[]
[]
[]
[]
[]
--------------------
Ab Hier Ersetzen !!
--------------------
Ab Hier Kopieren !!
--------------------
[]
[]
[]
[]
[]
--------------------
NTTM_TownMove("portalspot");
for(i = 0; i <= 200; i++)
{
if(NTC_InMyParty(NTConfig_Leader))
break;
if(!NTConfig_Leader)
{
_portal = NTM_FindPortalAreaInt(38, 0);
if(_portal != -1)
{
_owner = _portal.GetParent();
if(_owner && !NTC_InMyParty(_owner))
NTConfig_Leader = _owner;
}
}
NTC_Delay(200);
}
if(MWConfig_EnterUnsafeTP)
_AllowedToEnterTP = true;
while(NTC_InTown() && NTC_InMyParty(NTConfig_Leader))
{
if(_AllowedToEnterTP)
NTM_UsePortal("BluePortal", 38, NTConfig_Leader);
NTC_Delay(500);
}
NTP_DoPrecast();
--------------------
[]
[]
[]
[]
[]
--------------------
Bis Hier Ersetzen !!
--------------------
Bis Hier Ersetzen !!
--------------------
[]
[]
[]
[]
[]
--------------------
In der Char config.
--------------------
--------------------
WConfig_Script.push(["XXXXXXX.ntj", 10]); NTConfig_Leader = "Leader Name"; MWConfig_EnterUnsafeTP = false;
--------------------
[]
[]
[]
[]
[]
--------------------
Ganz unten im script einfügen,
--------------------
[]
[]
[]
[]
[]
--------------------
function NT_GameMsgEvents(msg, type)
{
var _msg = msg.toLowerCase();
if(type == 0 && _msg.indexOf(NTConfig_Leader.toLowerCase()) > -1 && MWConfig_Announcements.BaalTpSafe && _msg.indexOf(MWConfig_Announcements.BaalTpSafe.toLowerCase()) > -1)
_AllowedToEnterTP = true;
}
--------------------
[]
[]
[]
[]
[]
[]
[]
[]
_
|
|
|
04/16/2013, 14:12
|
#6884
|
elite*gold: 0
Join Date: Apr 2013
Posts: 2
Received Thanks: 0
|
bitte im hilfe ka an was es liegt
Meine bots laufen ganz normal von cow bis baal am schluss wenn sie baal gekillt haben stürzen sie ab und müssen sich neu einlogen wie kann man das beheben
|
|
|
04/16/2013, 15:16
|
#6885
|
elite*gold: 315
Join Date: Jul 2008
Posts: 3,284
Received Thanks: 1,133
|
Quote:
Originally Posted by cyborg1992
Meine bots laufen ganz normal von cow bis baal am schluss wenn sie baal gekillt haben stürzen sie ab und müssen sich neu einlogen wie kann man das beheben
|
Stelle mal in der Char-Config des Leechers "NTConfig_LeechExitDelay = 1000;" ein, das könnte eine Ursache dafür sein.
So ist es zumindest beim Etal, weiß nicht ob Muddy dieselbe Funktion hat.
|
|
|
 |
|
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
|
[Realease] Muddy's Waypoint Catcher
08/21/2013 - Diablo 2 Programming - 46 Replies
Moin zusammen,
hier mal die erste Release Version eines kleinen Scripts genannt Waypoint Catcher. Das ganze ist jetzt nichtmal 24h alt, dementsprechend sind vermutlich noch einige Bugs vorhanden. Hinweise dazu nehme ich gerne entgegen. ;)
Features:
- Suchen sämtlicher Wegpunkte mit Ausnahme, wobei in Akt ein durch Probleme im Jail Bereich nach dem Wegpunkt Outer Cloister abgebrochen wird
- Wahlweise auch mit TP an jedem gefundenen Wp, sodass man damit auch anderen (nicht-Bots) die...
|
[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...
|
D2NT 3.0 Pickit release
10/22/2010 - Diablo 2 - 77 Replies
edit
|
Muddy's D2NT Help
07/29/2010 - Diablo 2 - 3 Replies
hi i just started to use the bot it work's great.
how do i set up the skill's i use on my Sorc and pick up itme's?
.....
if you reply to this post please use english
|
All times are GMT +1. The time now is 17:17.
|
|