|
You last visited: Today at 21:20
Advertisement
[D2NT] Public Botten for Dummies
Discussion on [D2NT] Public Botten for Dummies within the Diablo 2 forum part of the Other Online Games category.
03/17/2011, 23:57
|
#1351
|
elite*gold: 0
Join Date: Feb 2011
Posts: 394
Received Thanks: 75
|
kleine frage noch, was mir aufgefallen ist... Nachdem Baal down geht und bevor meine Chars das game leaven für ng, Bo`en die sich noch und leaven dan während dem Bo`en das game. Wie kann ich das ändern das die sich da nimma Bo`en? Das nervt weng^^
|
|
|
03/18/2011, 00:07
|
#1352
|
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,258
|
Keine Ahnung, im Baalscript gibt es nach dem töten von Baal kein Precast mehr, also sollte er sich eigentlich auch nicht buffen.
|
|
|
03/18/2011, 10:39
|
#1353
|
elite*gold: 0
Join Date: Feb 2011
Posts: 394
Received Thanks: 75
|
hmmm merwürdig. Keine ahnung woran das liegen könnte. Er macht bo bevor er zu Baal reingeht, und baal liegt ziemlich schnell, also denk ich nicht das es daran liegt das der bo abgelaufen sein könnte oder sowas. Naja und immer macht er das auch nicht ganz, aber sehr sehr häufig. Teilweise portet er sich auch zu dem ort, wo die leecher im worldstonechamber rum stehen, bo`t dan und leavt.
Aber das ist nichts schwerwiegendes, halt nur n kleiner schönheitsfehler bei mir den ich gerne irgendwie beheben würde^^
|
|
|
03/18/2011, 13:04
|
#1354
|
elite*gold: 0
Join Date: Jan 2009
Posts: 7,310
Received Thanks: 2,205
|
jo, das macht eigentlich jede der nt versionen. liegt wohl irgendwie an ner schleife die da drinn ist, aber es stört ned wirklich.
|
|
|
03/18/2011, 18:35
|
#1355
|
elite*gold: 0
Join Date: Feb 2011
Posts: 43
Received Thanks: 0
|
hab n rush script für meinen bot, das problem is nur dass ich die quests ja nit erfüllen kann die der leader schon hat ^^ kann ich irgendwie n game joinen und dem bot dann erst sagen dass der das script starten soll?
|
|
|
03/18/2011, 20:04
|
#1356
|
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,258
|
Tolle Story, aber was genau hat das mit meinem Bot zu tun?  Wenn du ein Problem in mehreren Threads postest bekommst du auch keine schnellere Hilfe, eher im Gegenteil.
|
|
|
03/19/2011, 16:20
|
#1357
|
elite*gold: 0
Join Date: Dec 2007
Posts: 280
Received Thanks: 16
|
Kann man das ganze mal beheben das der Bot immer nur 1 character invited?
Weil wenn ich hier mit 7 bots zusammen arbeite dauert es einfach ewig bis der letzte angenommen hat!
Und dann noch das Problem im CS:
Mehrere Bots versuchen gewisse positionen zu erreichen wo 1 bot steht und telen dann solange um diesen herrum bis er sich bewegt, was dann aber auch ewig dauert bis 7 bots an der stelle gewesen sind!
|
|
|
03/19/2011, 17:15
|
#1358
|
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,258
|
Quote:
Originally Posted by Dextra
Kann man das ganze mal beheben das der Bot immer nur 1 character invited?
Weil wenn ich hier mit 7 bots zusammen arbeite dauert es einfach ewig bis der letzte angenommen hat!
|
Gerade bei Bots sollte es da eigentlich keine Probleme geben, weil die immer die Gruppe annehmen. Probleme gibt es wenn dann eher weil normale Spieler drin sind und pennen. Wenn du RedVex nutzt, dann lad dir Advanced AutoParty, dann lädt er alle ein.
Zu dem CS Problem, wo genau passiert das denn? Bei den Siegeln?
|
|
|
03/19/2011, 19:25
|
#1359
|
elite*gold: 0
Join Date: Dec 2007
Posts: 280
Received Thanks: 16
|
Quote:
Originally Posted by lanara
Gerade bei Bots sollte es da eigentlich keine Probleme geben, weil die immer die Gruppe annehmen. Probleme gibt es wenn dann eher weil normale Spieler drin sind und pennen. Wenn du RedVex nutzt, dann lad dir Advanced AutoParty, dann lädt er alle ein.
Zu dem CS Problem, wo genau passiert das denn? Bei den Siegeln?
|
Bei dem letzten also bei den feuerspuckern, nach dem die down sind und das letzte siegel geöffnet wurde telen die leechfighter irgendwo neben das siegel an genau 1 bestimmte position und wenn diese von einem der bots belegt ist telen die anderen wie von einer biene gestochen um den einen herrum bis der spot frei ist!
|
|
|
03/19/2011, 19:50
|
#1360
|
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,258
|
Versuchs mal mit dieser NTDiabloLeechFight:
Code:
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
if(!NTTM_CheckAct())
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
return;
}
if(me.areaid != 103)
{
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
return;
}
if(!NTM_TakeWaypoint(103))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
}
NTTMGR_TownManager();
NTTM_TownMove("portalspot");
for(i = 0; i <= 100; i++)
{
if(NTC_InMyParty(NTConfig_Leader))
break;
Delay(200);
}
while(me.areaid == 103 && NTC_InMyParty(NTConfig_Leader))
{
if(NT_GetLeader(NTConfig_Leader).areaid >= 129)
{
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
return;
}
NTM_UsePortal("BluePortal", 108, NTConfig_Leader); // 50
Delay(1000);
}
NTP_DoPrecast(true);
NTA_ClearPosition(10, true);
NTM_MoveTo(me.areaid, 7792, 5291);
NTA_ClearPosition(20, true);
NTM_MoveTo(me.areaid, 7792, 5291);
NTA_ClearPosition(30, true);
if(NTConfig_Teleport)
{
NTC_SwapWeapons(1)
}
if(!NT_OpenSealsInt())
{
NTC_SendMsgToScript("NTBotGame.ntj", "NT_OpenSealsInt()");
return;
}
if(NTConfig_PublicMode)
Say(NTConfig_KillDiaMsg);
NTM_MoveTo(me.areaid, 7792, 5292);
NTP_DoPrecast(true);
NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100);
if(NTConfig_Teleport)
{
NTC_SwapWeapons(0)
}
NTA_KillMonster(243);
NTSI_PickItems();
Say(NTConfig_DiaNxtGame);
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
// Internal function
function NT_OpenSealsInt()
{
var i, _unit;
var _result;
_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
if(!_unit)
return false;
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 396)
{
if(_unit[i].roomy*5 + _unit[i].y == 5275)
_result = NT_OpenVizierSealInt(1);
else
_result = NT_OpenVizierSealInt(2);
break;
}
}
if(!_result)
return false;
NTA_ClearPosition(30, true, 2);
NTP_DoPrecast(false);
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 394)
{
if(_unit[i].roomx*5 + _unit[i].x == 7773)
_result = NT_OpenDeSeisSealInt(1);
else
_result = NT_OpenDeSeisSealInt(2);
break;
}
}
if(!_result)
return false;
NTA_ClearPosition(30, true, 2);
NTP_DoPrecast(true);
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 392)
{
if(_unit[i].roomx*5 + _unit[i].x == 7893)
_result = NT_OpenVenomSealInt(1);
else
_result = NT_OpenVenomSealInt(2);
break;
}
}
return _result;
}
function NT_OpenVizierSealInt(type)
{
var _monstername = GetLocaleString(2851);
var i, n;
var i, n;
var _attackpos = [7740, 5300, 7792, 5291, 7740, 5280, 7720, 5280, 7720, 5300];
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
}
NTM_MoveTo(me.areaid, 7735, 5291);
NTA_ClearPosition(40, true, 2);
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
NTM_MoveTo(me.areaid, 7695, 5293);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7664, 5314);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7673, 5293);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7662, 5276);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7676, 5294);
NTA_ClearPosition(60, true, 2);
if(me.classid == NTC_CHAR_CLASS_PALADIN)
NTM_MoveTo(me.areaid, 7678, 5292);
}
else
{
NTM_MoveTo(me.areaid, 7695, 5316);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7664, 5314);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7654, 5281);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7695, 5316);
NTA_ClearPosition(60, true, 2);
if(me.classid == NTC_CHAR_CLASS_PALADIN)
NTM_MoveTo(me.areaid, 7676, 5320);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTConfig_Teleport)
{
NTC_SwapWeapons(0)
}
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition(40);
NTSI_PickItems();
if(NTConfig_Teleport)
{
NTC_SwapWeapons(1)
}
return NTM_MoveTo(me.areaid, 7792, 5291);
}
}
}
return false;
}
function NT_OpenDeSeisSealInt(type)
{
var i, n;
var _monstername = GetLocaleString(2852);
var _attackpos = [7780, 5255, 7800, 5255, 7800, 5235, 7780, 5235, 7774, 5214];
var _monstername = GetLocaleString(2852);
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
}
NTM_MoveTo(me.areaid, 7790, 5244);
NTA_ClearPosition(40, true, 2);
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
NTM_MoveTo(me.areaid, 7773, 5194);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7813, 5188);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7809, 5155);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7777, 5155);
NTA_ClearPosition(60, true, 2);
if(me.classid == NTC_CHAR_CLASS_PALADIN)
NTM_MoveTo(me.areaid, 7768, 5206);
else
NTM_MoveTo(me.areaid, 7774, 5220);
}
else
{
NTM_MoveTo(me.areaid, 7810, 5202);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7774, 5180);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7785, 5153);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7809, 5154);
NTA_ClearPosition(60, true, 2);
if(me.classid == NTC_CHAR_CLASS_PALADIN)
NTM_MoveTo(me.areaid, 7773, 5178);
else
NTM_MoveTo(me.areaid, 7788, 5192);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTConfig_Teleport)
{
NTC_SwapWeapons(0)
}
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition(40);
NTSI_PickItems();
if(NTConfig_Teleport)
{
NTC_SwapWeapons(1)
}
NTP_DoPrecast(false);
return NTM_MoveTo(me.areaid, 7792, 5291);
}
}
}
return false;
}
function NT_OpenVenomSealInt(type)
{
var i, n;
var _monstername = GetLocaleString(2853);
var _attackpos = [7835, 5280, 7835, 5300, 7855, 5300, 7855, 5280];
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
}
NTM_MoveTo(me.areaid, 7843, 5292);
NTA_ClearPosition(40, true, 2);
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
NTM_MoveTo(me.areaid, 7871, 5293);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7893, 5307);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7912, 5280);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7931, 5293);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7908, 5293);
NTA_ClearPosition(60, true, 2);
if(me.classid == NTC_CHAR_CLASS_PALADIN)
NTM_MoveTo(me.areaid, 7892, 5298);
}
else
{
NTM_MoveTo(me.areaid, 7893, 5274);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7927, 5280);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7930, 5308);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7929, 5294);
NTA_ClearPosition(60, true, 2);
if(me.classid == NTC_CHAR_CLASS_PALADIN)
NTM_MoveTo(me.areaid, 7927, 5275);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTConfig_Teleport)
{
NTC_SwapWeapons(0)
}
if(NTA_KillMonster(_monstername))
{
NTSI_PickItems();
NTA_ClearPosition(40, true, 2);
}
if(NTConfig_Teleport)
{
NTC_SwapWeapons(1)
}
if(NTC_PutSkill(124, NTC_HAND_RIGHT))
NTC_PingDelay(1000);
}
return true;
}
return false;
}
function NT_GetLeader(_name)
{
_player = GetPlayerUnit();
if(_player)
{
while(_player.GetNext())
{
if(_player.name == _name)
{ return _player; }
}
}
}
}
|
|
|
03/19/2011, 20:04
|
#1361
|
elite*gold: 0
Join Date: Dec 2007
Posts: 280
Received Thanks: 16
|
Quote:
Originally Posted by lanara
Versuchs mal mit dieser NTDiabloLeechFight:
Code:
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
if(!NTTM_CheckAct())
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
return;
}
if(me.areaid != 103)
{
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
return;
}
if(!NTM_TakeWaypoint(103))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
}
NTTMGR_TownManager();
NTTM_TownMove("portalspot");
for(i = 0; i <= 100; i++)
{
if(NTC_InMyParty(NTConfig_Leader))
break;
Delay(200);
}
while(me.areaid == 103 && NTC_InMyParty(NTConfig_Leader))
{
if(NT_GetLeader(NTConfig_Leader).areaid >= 129)
{
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
return;
}
NTM_UsePortal("BluePortal", 108, NTConfig_Leader); // 50
Delay(1000);
}
NTP_DoPrecast(true);
NTA_ClearPosition(10, true);
NTM_MoveTo(me.areaid, 7792, 5291);
NTA_ClearPosition(20, true);
NTM_MoveTo(me.areaid, 7792, 5291);
NTA_ClearPosition(30, true);
if(NTConfig_Teleport)
{
NTC_SwapWeapons(1)
}
if(!NT_OpenSealsInt())
{
NTC_SendMsgToScript("NTBotGame.ntj", "NT_OpenSealsInt()");
return;
}
if(NTConfig_PublicMode)
Say(NTConfig_KillDiaMsg);
NTM_MoveTo(me.areaid, 7792, 5292);
NTP_DoPrecast(true);
NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100);
if(NTConfig_Teleport)
{
NTC_SwapWeapons(0)
}
NTA_KillMonster(243);
NTSI_PickItems();
Say(NTConfig_DiaNxtGame);
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
// Internal function
function NT_OpenSealsInt()
{
var i, _unit;
var _result;
_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
if(!_unit)
return false;
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 396)
{
if(_unit[i].roomy*5 + _unit[i].y == 5275)
_result = NT_OpenVizierSealInt(1);
else
_result = NT_OpenVizierSealInt(2);
break;
}
}
if(!_result)
return false;
NTA_ClearPosition(30, true, 2);
NTP_DoPrecast(false);
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 394)
{
if(_unit[i].roomx*5 + _unit[i].x == 7773)
_result = NT_OpenDeSeisSealInt(1);
else
_result = NT_OpenDeSeisSealInt(2);
break;
}
}
if(!_result)
return false;
NTA_ClearPosition(30, true, 2);
NTP_DoPrecast(true);
_result = false;
for(i = 0 ; i < _unit.length ; i++)
{
if(_unit[i].id == 392)
{
if(_unit[i].roomx*5 + _unit[i].x == 7893)
_result = NT_OpenVenomSealInt(1);
else
_result = NT_OpenVenomSealInt(2);
break;
}
}
return _result;
}
function NT_OpenVizierSealInt(type)
{
var _monstername = GetLocaleString(2851);
var i, n;
var i, n;
var _attackpos = [7740, 5300, 7792, 5291, 7740, 5280, 7720, 5280, 7720, 5300];
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
}
NTM_MoveTo(me.areaid, 7735, 5291);
NTA_ClearPosition(40, true, 2);
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
NTM_MoveTo(me.areaid, 7695, 5293);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7664, 5314);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7673, 5293);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7662, 5276);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7676, 5294);
NTA_ClearPosition(60, true, 2);
if(me.classid == NTC_CHAR_CLASS_PALADIN)
NTM_MoveTo(me.areaid, 7678, 5292);
}
else
{
NTM_MoveTo(me.areaid, 7695, 5316);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7664, 5314);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7654, 5281);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7695, 5316);
NTA_ClearPosition(60, true, 2);
if(me.classid == NTC_CHAR_CLASS_PALADIN)
NTM_MoveTo(me.areaid, 7676, 5320);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTConfig_Teleport)
{
NTC_SwapWeapons(0)
}
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition(40);
NTSI_PickItems();
if(NTConfig_Teleport)
{
NTC_SwapWeapons(1)
}
return NTM_MoveTo(me.areaid, 7792, 5291);
}
}
}
return false;
}
function NT_OpenDeSeisSealInt(type)
{
var i, n;
var _monstername = GetLocaleString(2852);
var _attackpos = [7780, 5255, 7800, 5255, 7800, 5235, 7780, 5235, 7774, 5214];
var _monstername = GetLocaleString(2852);
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
}
NTM_MoveTo(me.areaid, 7790, 5244);
NTA_ClearPosition(40, true, 2);
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
NTM_MoveTo(me.areaid, 7773, 5194);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7813, 5188);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7809, 5155);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7777, 5155);
NTA_ClearPosition(60, true, 2);
if(me.classid == NTC_CHAR_CLASS_PALADIN)
NTM_MoveTo(me.areaid, 7768, 5206);
else
NTM_MoveTo(me.areaid, 7774, 5220);
}
else
{
NTM_MoveTo(me.areaid, 7810, 5202);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7774, 5180);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7785, 5153);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7809, 5154);
NTA_ClearPosition(60, true, 2);
if(me.classid == NTC_CHAR_CLASS_PALADIN)
NTM_MoveTo(me.areaid, 7773, 5178);
else
NTM_MoveTo(me.areaid, 7788, 5192);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTConfig_Teleport)
{
NTC_SwapWeapons(0)
}
if(NTA_KillMonster(_monstername))
{
NTA_ClearPosition(40);
NTSI_PickItems();
if(NTConfig_Teleport)
{
NTC_SwapWeapons(1)
}
NTP_DoPrecast(false);
return NTM_MoveTo(me.areaid, 7792, 5291);
}
}
}
return false;
}
function NT_OpenVenomSealInt(type)
{
var i, n;
var _monstername = GetLocaleString(2853);
var _attackpos = [7835, 5280, 7835, 5300, 7855, 5300, 7855, 5280];
for(i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(25, true, 2);
}
NTM_MoveTo(me.areaid, 7843, 5292);
NTA_ClearPosition(40, true, 2);
for(i = 0 ; i < 3 ; i++)
{
if(type == 1)
{
NTM_MoveTo(me.areaid, 7871, 5293);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7893, 5307);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7912, 5280);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7931, 5293);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7908, 5293);
NTA_ClearPosition(60, true, 2);
if(me.classid == NTC_CHAR_CLASS_PALADIN)
NTM_MoveTo(me.areaid, 7892, 5298);
}
else
{
NTM_MoveTo(me.areaid, 7893, 5274);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7927, 5280);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7930, 5308);
NTA_ClearPosition(25, true, 2);
NTM_MoveTo(me.areaid, 7929, 5294);
NTA_ClearPosition(60, true, 2);
if(me.classid == NTC_CHAR_CLASS_PALADIN)
NTM_MoveTo(me.areaid, 7927, 5275);
}
for(n = 0 ; n < 10 ; n++)
{
NTC_Delay(200);
if(NTConfig_Teleport)
{
NTC_SwapWeapons(0)
}
if(NTA_KillMonster(_monstername))
{
NTSI_PickItems();
NTA_ClearPosition(40, true, 2);
}
if(NTConfig_Teleport)
{
NTC_SwapWeapons(1)
}
if(NTC_PutSkill(124, NTC_HAND_RIGHT))
NTC_PingDelay(1000);
}
return true;
}
return false;
}
function NT_GetLeader(_name)
{
_player = GetPlayerUnit();
if(_player)
{
while(_player.GetNext())
{
if(_player.name == _name)
{ return _player; }
}
}
}
}
|
Mein Fehler, hab die Baalleechfight editiert net dia 
Muss mein system mal neustarten das macht hier faxxen und spuckt irgenwie alle weile bluescreens raus!
Melde mich wenn ich wieder da bin!
Und das mit redvex passt mir auch nicht so richtig denn wenn 2 charactere versuchen sich gleichzeitig einzuloggen kommt immer nur 1er rein!
Edit: Also bin wieder da, die Bluescreens sind weg und das problem mit dem invite ohne redvex besteht weiterhin!
Kann man da nicht evtl was machen? :P Du bist doch so allwissend und kannst das doch sicherlich beheben das er anstatt den nächsten in der liste alle inviten soll
Edit2: Mein Botpartner hat das problem das wenn seine Leechfighter im chat stehen und /f l machen diese das im sekundentackt spammen. Woran liegt das?
Dann noch: Wenn meine leechfighter einem game joinen schreiben die (soweit ich es erkennen kann) /f x in den chat was aber kein richtiger befehlt ist und es daher eine fehlermeldung gibt. Woran liegt das?
Und noch ein Wunsch von meinem Bot partner:
Wäre es möglich es so zu dreichseln das der leechpaladin sein holyshield schon in der stadt anschmeißt? Oder er zu einem WP geht sich bo´t und schild anschmießt?
|
|
|
03/19/2011, 22:09
|
#1362
|
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,258
|
Quote:
Originally Posted by Dextra
Mein Fehler, hab die Baalleechfight editiert net dia 
Muss mein system mal neustarten das macht hier faxxen und spuckt irgenwie alle weile bluescreens raus!
Melde mich wenn ich wieder da bin!
Und das mit redvex passt mir auch nicht so richtig denn wenn 2 charactere versuchen sich gleichzeitig einzuloggen kommt immer nur 1er rein!
Edit: Also bin wieder da, die Bluescreens sind weg und das problem mit dem invite ohne redvex besteht weiterhin!
Kann man da nicht evtl was machen? :P Du bist doch so allwissend und kannst das doch sicherlich beheben das er anstatt den nächsten in der liste alle inviten soll
Edit2: Mein Botpartner hat das problem das wenn seine Leechfighter im chat stehen und /f l machen diese das im sekundentackt spammen. Woran liegt das?
Dann noch: Wenn meine leechfighter einem game joinen schreiben die (soweit ich es erkennen kann) /f x in den chat was aber kein richtiger befehlt ist und es daher eine fehlermeldung gibt. Woran liegt das?
Und noch ein Wunsch von meinem Bot partner:
Wäre es möglich es so zu dreichseln das der leechpaladin sein holyshield schon in der stadt anschmeißt? Oder er zu einem WP geht sich bo´t und schild anschmießt?
|
So viel auf einmal. :P Fangen wir mal beim ersten an, dem Invite Problem. Versuch mal diese NTToolsThread.ntj zu nehmen (befindet sich im Ordner scripts\NTBot\tools), habs allerdings nicht getestet, also keine Ahnung obs klappt.
Code:
var _NTLW_timerLastDrink = new Array(5);
function NTMain()
{
Include("libs/common/NTCommon.ntl");
Include("libs/common/NTCubing.ntl");
NTC_IncludeConfig("NTBot/char_configs");
var _count = 0;
var _LifeMax, _ManaMax;
var _merc;
var _player, _mypartyid;
var _ping = 0;
Print("ÿc3Loaded ToolsThread script");
NT_LoadConfig();
_LifeMax = me.hpmax;
_ManaMax = me.mpmax;
if(NTConfig_LifeChicken > 0)
me.chickenhp = parseInt((_LifeMax*NTConfig_LifeChicken)/100);
if(NTConfig_ManaChicken > 0)
me.chickenmp = parseInt((_ManaMax*NTConfig_ManaChicken)/100);
for(var i = 0 ; i < 5 ; i++)
_NTLW_timerLastDrink[i] = 0;
while(1)
{
if(!NTC_InTown())
{
if(_LifeMax != me.hpmax)
{
_LifeMax = me.hpmax;
if(NTConfig_LifeChicken > 0)
me.chickenhp = parseInt((_LifeMax*NTConfig_LifeChicken)/100);
}
if(_ManaMax != me.mpmax)
{
_ManaMax = me.mpmax;
if(NTConfig_ManaChicken > 0)
me.chickenmp = parseInt((_ManaMax*NTConfig_ManaChicken)/100);
}
if(parseInt(me.hp*100/_LifeMax) < NTConfig_LifeRejuvThresh || parseInt(me.mp*100/_ManaMax) < NTConfig_ManaRejuvThresh)
NTLW_DrinkPotInt(2);
else
{
if(parseInt(me.hp*100/_LifeMax) < NTConfig_LifeThresh)
NTLW_DrinkPotInt(0);
if(parseInt(me.mp*100/_ManaMax) < NTConfig_ManaThresh)
NTLW_DrinkPotInt(1);
}
_merc = NTC_GetMerc();
if(_merc)
{
if(parseInt(_merc.hp*100/_merc.hpmax) < NTConfig_MercChicken)
{
var _area;
_area = GetArea();
if(_area)
SendCopyData("D2NT Manager", null, 7<<16, "ÿE00000Game is terminated by chicken (" + _area.name + ")");
else
SendCopyData("D2NT Manager", null, 7<<16, "ÿE00000Game is terminated by chicken (unknown area)");
ExitGame();
break;
}
if(parseInt(_merc.hp*100/_merc.hpmax) < NTConfig_MercRejuvThresh)
NTLW_DrinkPotInt(4);
else if(parseInt(_merc.hp*100/_merc.hpmax) < NTConfig_MercLifeThresh)
NTLW_DrinkPotInt(3);
}
}
if(_count++ > 10)
{
if(NTConfig_PublicMode)
{
_player = GetPlayerUnit();
if(_player)
{
_mypartyid = _player.partyid;
while(_player.GetNext())
{
if(_player.partyid == 65535 || _player.partyid != _mypartyid)
{
if(_player.partyflag == 2)
{
me.ClickParty(_player, 2);
}
NTC_Delay(NTC_DELAY_FRAME);
}
}
}
}
_count = 0;
}
if(me.ping >= 900)
{
_ping++;
if(_ping % 5 == 0)
Print("ÿc3" + "High ping:" + "ÿc4" + me.ping);
if(_ping >= 50)
{
NTC_SendLogToOOG(NTC_LOG_COMMON, "ÿc3" + "High ping. Exiting game.");
NTC_Delay(250);
ExitGame();
}
}
else
_ping = 0;
NTC_Delay(200);
}
}
// Internal function
function NTLW_DrinkPotInt(type)
{
var _pottype;
var _result;
var _tNow = new Date();
if(type == 2 || type == 4)
{
if(_NTLW_timerLastDrink[type] && (_tNow-_NTLW_timerLastDrink[type] < 600))
return false;
}
else
{
if(_NTLW_timerLastDrink[type] && (_tNow-_NTLW_timerLastDrink[type] < 3000))
return false;
}
if(me.mode == 0 || me.mode == 17 || me.mode == 18)
return false;
switch(type)
{
case 0:
case 3:
_pottype = "hp";
break;
case 1:
_pottype = "mp";
break;
default:
_pottype = "rv";
break;
}
for(var i = 0 ; i < 4 ; i++)
{
if(NTConfig_BeltColType[i] == _pottype)
{
if(type < 3)
_result = me.UseBelt(i);
else
_result = me.UseBelt(i, true);
if(_result)
{
_NTLW_timerLastDrink[type] = new Date();
return true;
}
}
}
return false;
}
Weiter gehts mit dem Leecher, der soll diese NTBotLeech als Entry Point nehmen nehmen:
Code:
//###################################################################
//###########################Einstellungen###########################
//###################################################################
var leaderAccountName = "Leader Account Name";
var leaderName = "Leader Char Name";
var gamepassword = "Game Password";
var JoinGameAgain = false; // wenn der Bot nach chicken oder disconnect ins selbe Spiel nochmal gehen soll, auf true stellen
var UseCDKeyChangeTrick = false; // Wenn der LeechBot mehrere CD Keys nutzen soll, dann auf true stellen.
var joinRandomChannel = false;
var joinChannelInChat = "OP MyBaal";
var firstJoinMessage = ""; // Soll der leechbot etwas sagen, wenn er in den Chat kommt, dann hier eintragen
var chatMessageAfterGame = ""; // Soll der leechbot etwas sagen, wenn er aus dem Spiel kommt, dann hier eintragen
//###################################################################
//##############################Delays###############################
//###################################################################
var gameMinLength = 180000;
// realm delays (minutes)
var unableToConnectRetry = 2;
var realmDownRetry = 60;
var disconnectedRetry = 2;
var cdkeyInUseRetry = 2;
// interface delays (milliseconds)
var connectingToBnetTimeout = 20000;
var characterScreenTimeout = 10000;
var pleaseWaitTimeout = 10000;
var createGameThreshold = 10000;
var createGameThresholdRandom = 1000;
var createGameTimeout = 15000;
var waitInLineTimeout = 15000;
var characterSelectDelay = 1000;
var loginDelay = 1000;
var clickDelay = 500;
var textDelay = 500;
var clickDelayRandom = 500;
var textDelayRandom = 500;
var gameDoesNotExistDelayMin = 600000;
var gameDoesNotExistDelayMax = 900000;
var gameDoesNotExistTimeout = 30000;
var waitBeforeEnterChatMin = 1000;
var waitBeforeEnterChatMax = 2000;
var waitInChatBeforeActionsMin = 2000;
var waitInChatBeforeActionsMax = 3000;
// Only for JoinBot (friend list delay, milliseconds)
var LeaderOfflineDelay = 30000;
var LeaderInChatDelay = 10000;
var GameIsFullDelay = 30000;
//###################################################################
//###################################################################
//###############DO NOT CHANGE ANYTHING BELOW THIS###################
//###################################################################
//###################################################################
//D2NT Manager Command
const D2NT_MGR_LOADING = 1;
const D2NT_MGR_READY = 2;
const D2NT_MGR_LOGIN = 3;
const D2NT_MGR_CREATE_GAME = 4;
const D2NT_MGR_INGAME = 5;
const D2NT_MGR_RESTART = 6;
const D2NT_MGR_CHICKEN = 7;
const D2NT_MGR_PRINT_STATUS = 8;
const D2NT_MGR_PRINT_LOG = 9;
var lastGameMade = GetTickCount();
var lastGameStatus = 0;
var nextGameMake = 0;
var inGameAt = 0;
var chatActionsDone = false;
var lastGameFailed = false;
var sayChatMsgAfterGame = false;
Include("libs/controlInfo.ntl");
var controlData = new controlInfo();
var samegame = '';
var oldgame = '';
var game = '';
var _gamename = "";
var _gamepassword = "";
var _leaderOfflineTick = -LeaderOfflineDelay;
var _leaderInChatTick = -LeaderInChatDelay;
var _GameIsFullTick = -GameIsFullDelay;
var Debug = false;
var joinChatAfterGame = true;
function NTMain()
{
Delay(1000);
var _ingame = false;
controlData.clickDelay = clickDelay;
controlData.textDelay = textDelay;
controlData.clickDelayRandom = clickDelayRandom;
controlData.textDelayRandom = textDelayRandom;
while(1)
{
if(me.ingame)
{
_gamename = me.gamename;
_gamepassword = me.gamepassword;
if(!inGameAt)
inGameAt = GetTickCount();
if(!_ingame)
{
RunGC(); // run garbage collector between each game
if(Load("NTBot/NTBotGame.ntj"))
{
_ingame = true;
if(me.playtype > 0)
sendEventToOOG(D2NT_MGR_INGAME, "In Game[IP:" + me.gameserverip.split(".")[3] + "]", 0);
else
sendEventToOOG(D2NT_MGR_INGAME, "In Game", 0);
lastGameStatus = 2; // in game successful
// To exit game as soon as the leader quits
//Load("NTBot/NTCheckLeader.ntj");
// to party only the leader
//Load("NTBot/tools/NTTools_AutoPartyJoinFriendGames.ntj");
}
}
Delay(1000);
}
else
{
if(_ingame)
{
_ingame = false;
sayChatMsgAfterGame = true;
sendEventToOOG(D2NT_MGR_READY, "", 0);
}
locationAction(controlData.getLocation());
Delay(500);
}
}
}
function locationAction(location)
{
switch(location.id)
{
case 3: // Lobby Chat
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
if(!chatActionsDone)
{
Delay(Random(waitInChatBeforeActionsMin, waitInChatBeforeActionsMax));
if(joinRandomChannel || joinChannelInChat != "")
{
Say("/join " + (joinRandomChannel ? getRandomString(Random(3,10)) : joinChannelInChat));
Delay(1000);
}
if(firstJoinMessage)
{
Say(firstJoinMessage);
Delay(200);
}
chatActionsDone = true;
}
if (chatMessageAfterGame && _gamename != "" && sayChatMsgAfterGame == true)
{
Say(chatMessageAfterGame);
sayChatMsgAfterGame = false;
Delay(200);
}
game = '';
var _tick = GetTickCount();
if ((_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick)
&& (_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick)
&& (_GameIsFullTick < 0 || (_GameIsFullTick + GameIsFullDelay) < _tick))
{
DebugInOOG('Locating the leader : '+leaderAccountName);
Delay(6000);
Say('/f l');
Delay(1500);
}
if(chat = controlData.get(controlData.controls.lobby.chat.textBox.channelText))
{
var found_leader = false;
lines = chat.GetText();
for (var line_id = lines.length - 1; line_id > -1; line_id--)
{
if (found_leader) // useless... :/
break;
if (lines[line_id].substring(0,1) == " ")
continue;
// retrieving the whole message
var msg = lines[line_id].replace(/^\s+|\s+$/, "");
var msglines = 1;
while (lines[line_id+msglines] != undefined && lines[line_id+msglines].substring(0,2) == " ")
{
msg += " " + lines[line_id+msglines].replace(/^\s+|\s+$/, "");
msglines++;
}
if (msg.lastIndexOf(leaderName) >= 0)
DebugInOOG("yc8found him :;"+msg);
// checking if the msg is a friendly whisper
if (msg.lastIndexOf(leaderName + ' (*' +leaderAccountName+')') > -1)
{
var regGameNameWhispered=/^.*(game|partie|spiel|partita|partida).*(nomm[^\s]*|called|chiamata)\s*([\w\s-]*\w)\s*\.\s*$/gi;
if (msg.match(regGameNameWhispered))
game = msg.replace(regGameNameWhispered, "$3");
if (game != '')
{
found_leader = true;
break;
}
}
// checking if the msg is from the friend list
if (msg.lastIndexOf(': '+leaderAccountName+',') > -1)
{
found_leader = true;
var regOffline=/^.*(offline|desconectado).*$/gi;
var regInChat=/^.*(channel|canale?)\s*([\w\s-]*\w)\.?\s*$/gi;
var regGameName=/^.*(game|partie|spiel|partita|partida)\s*([\w\s-]*\w)\s*\(priv[^\)]*\)\.\s*$/gi;
if (msg.match(regOffline)
&& (_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick))
{
DebugInOOG('Leader is offline, delay '+Math.round(LeaderOfflineDelay/1000)+' sec for next /f l.');
_leaderOfflineTick = GetTickCount();
}
else if (msg.match(regInChat)
&& (_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick))
{
DebugInOOG('Leader is in the chat "'+msg.replace(regInChat, "$2")+'", delay '+Math.round(LeaderInChatDelay/1000)+' sec for next /f l.');
_leaderInChatTick = GetTickCount();
}
else if (msg.match(regGameName)
&& ((_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick)
&& (_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick)))
{
game = msg.replace(regGameName, "$2");
}
else if ((_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick)
&& (_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick))
{
// unhandled line, supposelly "In Realm"
DebugInOOG('The leader was in the the lobby but not in chat, delay '+Math.round(LeaderInChatDelay/1000)+' sec for next /f l.');
_leaderInChatTick = GetTickCount();
}
break;
}
}
if (found_leader == false)
DebugInOOG('I couldn\'t find the leader in my friend list!');
if (game!="")
{
DebugInOOG('Leader is in the game "' + game + '"');
//controlData.click(controlData.controls.lobby.button.join);
//Delay(100);
if(!JoinGameAgain)
{
if (game != samegame)
{
if (UseCDKeyChangeTrick)
{
// increasing the number of runs in the OOG (for CDKey switch)
// Problem : the gamename/gamepassword set in your OOG will be typed in the lobbyChat
// this may output a red message in the lobby chat if you have a password set (not a real problem)
// I recommend to set a gamename like "Run" and no gamepassword in your OOG. -> this will output "Run-01", "Run-02", etc in lobby chat before joining games
sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
Delay(1000);
}
controlData.click(controlData.controls.lobby.button.join);
Delay (200);
}
else
Delay(30000);
}
else
{
if (UseCDKeyChangeTrick)
{
// increasing the number of runs in the OOG (for CDKey switch)
// Problem : the gamename/gamepassword set in your OOG will be typed in the lobbyChat
// this may output a red message in the lobby chat if you have a password set (not a real problem)
// I recommend to set a gamename like "Run" and no gamepassword in your OOG. -> this will output "Run-01", "Run-02", etc in lobby chat before joining games
sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
Delay(1000);
}
controlData.click(controlData.controls.lobby.button.join);
Delay (200);
}
}
}
else
{
DebugInOOG('I can\'t read the chat!');
//DebugInOOG('You probably haven\'t added the lobby chat controlinfo coordinates!');
Delay(30000);
}
if(game != '')
samegame = game;
break;
case 1: // Lobby
if(location.id == 1 && joinChatAfterGame)
{
Delay(Random(waitBeforeEnterChatMin, waitBeforeEnterChatMax));
controlData.click(controlData.controls.lobby.button.enterChat);
break;
}
break;
case 2: // Waiting In Line
if(GetTickCount()-lastGameMade > waitInLineTimeout)
controlData.click(controlData.controls.lobby.inLine.button.cancel);
break;
case 4: // Create Game
if(!controlData.get(controlData.controls.lobby.create.editBox.gameName))
{
controlData.click(controlData.controls.lobby.button.join);
Delay (500);
controlData.click(controlData.controls.lobby.button.create);
Delay (500);
break;
}
sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
locationTimeout(5000, location);
lastGameMade = GetTickCount();
lastGameStatus = 1; // pending creation
break;
case 5: // Join Game
if (game)
{
controlData.setText( controlData.controls.lobby.join.editBox.gameName, game);
Delay (100);
controlData.setText( controlData.controls.lobby.join.editBox.password, gamepassword);
Delay (100);
controlData.click(controlData.controls.lobby.join.button.joinGame);
RunGC(); // run garbage collector between each game
locationTimeout(5000, location);
lastGameStatus = 1; // pending join
}
else
{
DebugInOOG('No game to join : cancelling');
me.Cancel(1);
Delay(1000);
}
break;
case 6: // Ladder
break;
case 7: // Channel List
break;
case 8: // Main Menu
if(controlData.getCurrentRealmIndex() == me.gatewayid)
{
outputGameLength();
controlData.click(controlData.gameTypes[me.playtype]);
}
else
controlData.click(controlData.controls.mainMenu.button.gateway);
break;
case 9: // Login
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
Delay(loginDelay);
controlData.setText(controlData.controls.login.editBox.accountName, me.account);
sendEventToOOG(D2NT_MGR_LOGIN, location.name, 0);
locationTimeout(5000, location);
break;
case 10: // Login Error (this is a fatal error, so stop)
sendEventToOOG(D2NT_MGR_RESTART, location.name, 10);
Delay(3500);
break;
case 11: // Unable To Connect
timeoutDelay(unableToConnectRetry*60*1000, location)
controlData.click(controlData.controls.login.unableToConnect.button.ok);
break;
case 12: // Character Select
var _time, _control;
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
for(_time = 0 ; _time < characterScreenTimeout ; _time += 500)
{
_control = controlData.get(controlData.controls.characterSelect.textBox.characterInfo[me.charloc]);
if(_control && _control.GetText() != undefined)
break;
Delay(500);
}
if(_time < characterScreenTimeout)
{
Delay(characterSelectDelay);
controlData.click(controlData.controls.characterSelect.textBox.characters[me.charloc], 0, 0, 1);
controlData.click(controlData.controls.characterSelect.textBox.characterInfo[me.charloc], 0, 0, 1);
// reset last game made, so it doesnt make a game immediately
inGameAt = 0;
setNextGameMake();
}
else
{
controlData.click(controlData.controls.characterSelect.button.exit);
timeoutDelay(realmDownRetry*60*1000, location);
}
break;
case 13: // Realm Down - Character Select screen
controlData.click(controlData.controls.characterSelect.button.exit);
timeoutDelay(realmDownRetry*60*1000, location);
break;
case 14: // Character Select - Disconnected
timeoutDelay(disconnectedRetry*60*1000, location);
controlData.click(controlData.controls.characterSelect.disconnected.button.ok);
break;
case 15: // New Character
break;
case 16: // Character Select - Please Wait popup
if(!locationTimeout(pleaseWaitTimeout, location))
controlData.click(controlData.controls.characterSelect.pleaseWait.button.cancel);
break;
case 17: // Lobby - Lost Connection - just click okay, since we're toast anyway
controlData.click(controlData.controls.lobby.lostConnection.button.ok);
break;
case 18: // D2 Splash
controlData.click(controlData.controls.d2Splash.textBox.copyright);
break;
case 19: // Login - Cdkey In Use
timeoutDelay(cdkeyInUseRetry*60*1000, location);
controlData.click(controlData.controls.login.cdkeyInUse.button.ok);
break;
case 20: // Single Player - Select Difficulty
controlData.click(controlData.singlePlayerDifficulties[me.diff]);
break;
case 21: // Main Menu - Connecting
if(!locationTimeout(connectingToBnetTimeout, location))
controlData.click(controlData.controls.mainMenu.connecting.button.cancel);
break;
case 22: // Login - Invalid Cdkey (classic or xpac)
sendEventToOOG(D2NT_MGR_RESTART, location.name, 3600);
Delay(3500);
break;
case 23: // Character Select - Connecting
if(!locationTimeout(characterScreenTimeout, location))
controlData.click(controlData.controls.characterSelect.button.exit);
break;
case 24: // Server Down - not much to do but wait..
break;
case 25: // Lobby - Please Wait
if(!locationTimeout(pleaseWaitTimeout, location))
controlData.click(controlData.controls.lobby.pleaseWait.button.cancel);
break;
case 26: // Lobby - Game Name Exists
sendEventToOOG(D2NT_MGR_PRINT_LOG, "yE00000Game already exists", 0);
inGameAt = 0;
lastGameStatus = 0;
setNextGameMake();
locationTimeout(15000, location);
break;
case 27: // Gateway Select
controlData.clickRealmEntry(me.gatewayid);
controlData.click(controlData.controls.gateway.button.ok);
break;
case 28: // Lobby - Game Does Not Exist
inGameAt = Random(gameDoesNotExistDelayMin, gameDoesNotExistDelayMax);
lastGameStatus = 0;
setNextGameMake();
locationTimeout(gameDoesNotExistTimeout, location);
break;
default:
DebugInOOG("Unhandled location : "+location.id);
break;
}
DebugInOOG("Location : "+location.id);
}
function sendEventToOOG(locationId, statusString, pendingTime)
{
return SendCopyData("D2NT Manager", null, (locationId<<16)|pendingTime, statusString);
}
function setNextGameMake()
{
lastGameMade = GetTickCount();
nextGameMake = lastGameMade + createGameThreshold + Random(0-createGameThresholdRandom, createGameThresholdRandom) + inGameAt;
inGameAt = 0;
chatActionsDone = false;
}
function outputGameLength()
{
if(inGameAt)
{
duration = GetTickCount() - inGameAt;
inGameAt = (duration < gameMinLength ? gameMinLength - duration : 0);
}
}
function locationTimeout(time, location)
{
endtime = GetTickCount() + time;
while(controlData.getLocation().id == location.id && endtime > GetTickCount())
{
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name + " (" + parseInt((endtime-GetTickCount())/1000) + "s)", 0);
Delay(500);
}
return (controlData.getLocation().id != location.id);
}
function timeoutDelay(time, location)
{
endtime = GetTickCount() + time;
while(endtime > GetTickCount())
{
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name + " (" + parseInt((endtime-GetTickCount())/1000) + "s)", 0);
Delay(1000);
}
}
function getRandomString(_length)
{
_retString = "";
_charSet = "0123456789abcdefghijklmnopqrstuvwxyz";
while(_length--)
{
_retString += _charSet.charAt(Random(0, _charSet.length-1));
Delay(1);
}
return _retString;
}
function DebugInOOG(logString)
{
if (Debug)
return SendCopyData("D2NT Manager", null, 9<<16, "-- Debug : " + logString);
else
return false;
}
Desweiteren sollte er im Profil einen Name bei Room Name eintragen. Und zu dem Prebuffen, soll er mal diese NTBaalLeechFight nehmen:
Code:
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);
if(!NTTM_CheckAct())
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
return;
}
if(me.areaid != 109)
{
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
return;
}
if(!NTM_TakeWaypoint(109))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
}
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
return;
}
if(!NTM_TakeWaypoint(111))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTP_DoPrecast(true);
if(!NTM_TakeWaypoint(109))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTTMGR_TownManager();
NTTM_TownMove("portalspot");
for(i = 0; i <= 100; i++)
{
if(NTC_InMyParty(NTConfig_Leader))
break;
Delay(200);
}
while(me.areaid == 109 && NTC_InMyParty(NTConfig_Leader))
{
if(NTConfig_CoLeechTPMsg == "")
NTM_UsePortal("BluePortal", 131, NTConfig_Leader); // 50
Delay(1000);
}
NTA_ClearPosition(20, true, 2);
NTP_DoPrecast(false);
while(NTC_InMyParty(NTConfig_Leader))
{
NT_ClearThroneInt();
while(1)
{
if(me.classid == NTC_CHAR_CLASS_PALADIN || me.classid == NTC_CHAR_CLASS_BARBARIAN)
NTM_MoveTo(me.areaid, 15092, 5028);
else
NTM_MoveTo(me.areaid, 15089, 5010);
if(me.GetState(2))
NTC_PutSkill(109, NTC_HAND_RIGHT);
for(i = 0 ; i < 6 ; i++)
{
_wave = NT_ThroneCheckInt();
if(_wave > 0)
break;
NTC_Delay(500);
}
_starttick = GetTickCount();
while(_wave == 0)
{
if(!NT_ThronePreAttackInt())
NTC_Delay(200);
if(GetTickCount()-_starttick > 15000)
{
NT_ClearThroneInt();
_starttick = GetTickCount();
}
_wave = NT_ThroneCheckInt();
}
switch(_wave)
{
case 1:
NTA_ClearPosition(40, true, 2);
NTP_DoPrecast(true);
break;
case 2:
NTM_MoveTo(me.areaid, me.x, me.y-1);
NTA_ClearPosition(40, true);
NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
break;
case 3:
NTM_MoveTo(me.areaid, me.x, me.y-1);
NTA_ClearPosition(40, true, 2);
NTSI_PickItems();
NT_CheckHydraInt();
break;
case 4:
NTM_MoveTo(me.areaid, me.x, me.y-1);
NTA_ClearPosition(40, true, 2);
break;
case 5:
NTM_MoveTo(me.areaid, me.x, me.y-1);
NTA_ClearPosition(40, true, 2);
break;
default:
NTA_ClearPosition(40, true, 1);
break;
}
if(_wave == 5)
break;
}
if(NTConfig_KillBaal)
{
var _portal;
if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTMGR_CheckSafe()");
return;
}
NTM_MoveTo(me.areaid, 15092, 5010);
NTP_DoPrecast(true);
while(NTC_FindUnit(NTC_UNIT_MONSTER, 543))
NTC_Delay(500);
_portal = NTC_FindUnit(NTC_UNIT_OBJECT, 563, 1);
if(!_portal)
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTC_FindUnit()");
return;
}
if(!NTM_UsePortal("Portal", 132, null, _portal))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_UsePortal()");
return;
}
NTM_MoveTo(me.areaid, 15138, 5916);
NTA_Initialize()
if(!NTA_KillMonster(544))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTA_KillMonster()");
return;
}
NTSI_PickItems();
}
}
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}
// Internal function
function NT_ClearThroneInt()
{
var _attackpos = [15083, 5014, 15092, 5028, 15107, 5059, 15081, 5056, 15095, 5067];
for(var i = 0 ; i < _attackpos.length ; i += 2)
{
NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
NTA_ClearPosition(30, true, 2);
}
NTM_MoveTo(me.areaid, 15093, 5041);
NTA_ClearPosition(50, true, 2);
}
function NT_ThroneCheckInt()
{
var _monster;
if(!NTC_FindUnit(NTC_UNIT_MONSTER, 543))
return 5;
_monster = NTC_FindUnit(NTC_UNIT_MONSTER);
if(_monster)
{
do
{
if(NTA_IsValidMonster(_monster))
{
if(_monster.classid == 23 || _monster.classid == 62)
return 1;
if(_monster.classid == 105 || _monster.classid == 381)
return 2;
if(_monster.classid == 557)
return 3;
if(_monster.classid == 558)
return 4;
if(_monster.classid == 571)
return 5;
}
} while(_monster.GetNext());
}
return 0;
}
function NT_ThronePreAttackInt()
{
if(me.classid == NTC_CHAR_CLASS_SORCERESS)
{
if(NTConfig_AttackSkill[3] == 56 || NTConfig_AttackSkill[3] == 59)
return NTC_CastSkill(NTConfig_AttackSkill[3], 0, 15092, 5028);
}
else if(me.classid == NTC_CHAR_CLASS_PALADIN)
{
if(NTConfig_AttackSkill[3] == 112)
{
if(NTConfig_AttackSkill[4] > 0)
NTC_PutSkill(NTConfig_AttackSkill[4], NTC_HAND_RIGHT);
return NTC_CastSkill(NTConfig_AttackSkill[3], 2);
}
}
return false;
}
function NT_CheckHydraInt()
{
var _hydra1, _hydra2, _hydra3;
_hydra1 = NTC_FindUnit(NTC_UNIT_MONSTER, 351);
_hydra2 = NTC_FindUnit(NTC_UNIT_MONSTER, 352);
_hydra3 = NTC_FindUnit(NTC_UNIT_MONSTER, 353);
if((_hydra1 && _hydra1.GetStat(172) != 2 && _hydra1.GetState(105))
|| (_hydra2 && _hydra2.GetStat(172) != 2 && _hydra2.GetState(105))
|| (_hydra3 && _hydra3.GetStat(172) != 2 && _hydra3.GetState(105)))
{
NTM_MoveTo(me.areaid, 15118, 5002);
if(me.GetState(2))
NTC_PutSkill(109, NTC_HAND_RIGHT);
NTC_PingDelay(5000);
}
}
function NT_GameMsgEvents(msg, type)
{
if(type == 0 && msg.indexOf(NTConfig_Leader) != -1 && msg.indexOf(NTConfig_CoLeechTPMsg) != -1 && NTConfig_CoLeechTPMsg != "")
{
while(me.areaid == 109)
{
NTM_UsePortal("BluePortal", 131, NTConfig_Leader);
}
}
}
|
|
|
03/19/2011, 22:51
|
#1363
|
elite*gold: 0
Join Date: Dec 2007
Posts: 280
Received Thanks: 16
|
Also das invite script funktioniert gar nicht!
Da geht gar nix...
Zu den anderen scripts kann ich noch nix sagen da wir beide es gerade hinbekommen haben das ein volles games mehr oder weniger stabil läuft
die testen wir morgen ^^
|
|
|
03/19/2011, 22:54
|
#1364
|
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,258
|
Dann kA, der Rest funktioniert aber.  Verstehe wie gesagt sowieso nicht, warum es in einem Game voller Bots da zu Problemen kommen sollte, schließlich sind die ja nicht AFK und nehmen daher die Gruppe immer an.
|
|
|
03/19/2011, 23:02
|
#1365
|
elite*gold: 0
Join Date: Dec 2007
Posts: 280
Received Thanks: 16
|
Ja, das problem liegt bei diablo:
wenn es mal etwas länger dauert mit dem invite dann kommt der letzte nicht pünktlichen zum öffnen der seals und schrottet damit das script!
Daher ist es mir eigentlich wichtig!
Edit:
1 Problem bei meinem Partner:
Seine charactere bekommen öffters mal den Enigma bug den ich noch nie bekommen habe!
Woran kann dieses problem liegen?
|
|
|
 |
|
Similar Threads
|
[D2NT] How to do Public
07/04/2011 - Diablo 2 - 51 Replies
Also da ich gefragt wurde ob ich das nicht machen könnte, habe ich mir gedacht da ich grade nichts zu tuen habe, wieso den eigentlich nicht.
Falls jemand Maphack im Fullwindow spielen will:
http://img824.imageshack.us/img824/1725/66387846. png
Hacken Raus nehmen.
CREADITS TO:
Sternlooper
TheBluebird
Muddy_Waters
|
D2Nt Public Pickit
10/18/2010 - Diablo 2 - 4 Replies
Der Bot ist super aber er pickt einfach sachen viel zu langsame zb small charms. Da sind normale Spieler schneller. Kann man das einstellen das er sachen sofort beim droppen pickt??
|
Classic botten mit D2nt
07/09/2010 - Diablo 2 Programming - 2 Replies
Huhu :) ich möchte classic anfangen und wollte mal fragen ob es tolle d2nt classic scripts gibt, bzw. was ich ändern muss oder ob es auch non enigma scripts gibt für paladin oder so^^
Gibt aufjeden ein THX :)
Und eine Pickit für Classic wäre auch nice^^
Oder gibs andere Classic bots ?
|
Public Baal mit D2NT
04/13/2009 - Diablo 2 - 3 Replies
könnt ihr mir vll sagen was ich machen muss um mit den bot public baals runs zu machen wäre echt cool in dern config auf true stellen ist mir klar aber wie stell ich game name und sowas alles ein und brauch ich dafür nicht wieder eine config datei wäre echt cool wenn ihr mir helfen könntet ;)
|
All times are GMT +1. The time now is 21:20.
|
|