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? :(
zu 2.:Quote:
Hi Leute habe mal drei fragen,
1.
2.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?
3.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 ??)
wenn ja welche befehle sind das?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?
hoffe habt verstanden was ich meine ;D
//------------------------------------------------------------------------------ // 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!";
MWConfig_Script.push(["NTBaalLeechFight.ntj", 10]); NTConfig_KillBaal = true; MWConfig_DoBaalPreAttack = true; MWConfig_EnterUnsafeTP = true; NTConfig_Leader = "LeaderNameGoesHere";
check keys/runQuote:
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? :(
Wie erkennt der bot das er das tp bei baal macht.?Quote:
MWConfig_GlobalSettings.ntj
undCode://------------------------------------------------------------------------------ // 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!";
Char Config.
Code:MWConfig_Script.push(["NTBaalLeechFight.ntj", 10]); NTConfig_KillBaal = true; MWConfig_DoBaalPreAttack = true; MWConfig_EnterUnsafeTP = true; NTConfig_Leader = "LeaderNameGoesHere";
MWConfig_Announcements.BaalTpNone = "TP up, no monsters close!";
if(NTConfig_PublicMode)
{
NTM_MoveTo(me.areaid, 15112, 5004, 1, true);
NTM_MakeTP();
if(MWConfig_Announcements.BaalTpSafe)
Say(MWConfig_Announcements.BaalTpSafe);
}
MWConfig_Announcements.CowTpNone = "TP up, no monsters close!";
Welcher Bot soll was erkennen ?Quote:
Wie erkennt der bot das er das tp bei baal macht.?
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);
}
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);
}
MWConfig_Script.push(["NTBaalLeech.ntj", 10]); NTConfig_KillBaal = true; MWConfig_EnterUnsafeTP = false; NTConfig_Leader = "LeaderNameGoesHere";
var _AllowedToEnterTP = false; // erlaubt durchs portal zu gehen = false
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;
}
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;
}
}
}
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);
}
/** * This file was modified by [email][Only registered and activated users can see links. Click Here To Register...][/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); }
/** * This file was modified by [Only registered and activated users can see links. Click Here To Register...] * 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; }
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;
// ##### Keys ########################## [Name] == KeyOfTerror [Name] == KeyOfHate [Name] == KeyOfDestruction // ##### Organs ########################## [Name] == Diablo'sHorn [Name] == Baal'sEye [Name] == Mephisto'sBrain
Was genau ist denn an Grundwissen vorhanden? Wie Funktionen in JS funktionieren und was es mit Scopes auf sich hat ist bekannt?Quote:
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?
RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);
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)?Quote:
kleine techniche frage ich benutze
undCode: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;
sind auch aktivCode:// ##### Keys ########################## [Name] == KeyOfTerror [Name] == KeyOfHate [Name] == KeyOfDestruction // ##### Organs ########################## [Name] == Diablo'sHorn [Name] == Baal'sEye [Name] == Mephisto'sBrain
blos der bot schmeißt immer die organe weg kann man das auch iwie beheben?
weil ich bin ja nicht ständig am pc ^^
// 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;
//-----------------------------------------------------------------------------------
// 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 ^^Quote:
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");
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;
/** * This file was modified by [Only registered and activated users can see links. Click Here To Register...] * 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); }
/** * This file was modified by [Only registered and activated users can see links. Click Here To Register...] * 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; }
Quote:
Hi Leute habe mal drei fragen,
1.
2.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?
3.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 ?
wenn ja welche befehle sind das?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?
hoffe habt verstanden was ich meine ;D
Stelle mal in der Char-Config des Leechers "NTConfig_LeechExitDelay = 1000;" ein, das könnte eine Ursache dafür sein.Quote:
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