Quote:
Originally Posted by Muddy_Waters
Naja, die das Identifizieren bei Cain soll ja an sich eine gewisse Zeitersparnis bringen. Dackelt der Char danach aber trotzdem noch jedes mal zu Akara und Co. ist diese Zeitersparnis de Facto nicht vorhanden.
Ich kann gerne einbauen, dass bei Cain identifizierte Items beim Händler verkauft werden, allerdings kann ich in diesem Fall nicht nachvollziehen, warum man überhaupt zu Cain geht.
Meine Chars gehen beispielsweise allesamt nicht zu Cain, identifizieren dafür aber Items unterwegs- ich fahre damit für meinen Geschmack ziemlich gut. :)
Lg
Muddy
|
stimmt wohl, also brauchen tu ich das nicht, geht ja alles mit schriftrollen :D
mal was anderes, ich bekomme ab und an mal einen fehler ala item not defined in ntsnagit, hab mal toothless nipchecker über meine nips laufen lassen mit dem ergebnis das keine fehler enthalten sind, kann es trotzdem sein das dort irgendwas nicht stimmt? ich weiß das nicht nicht deine baustelle, ich dachte nur vielleicht liegts ja gar nicht an den nips?
hab die maxgametime jetzt einfach auf 15 min gestellt, das ist meine übliche runtime +5 min so das sie nicht ewig in der gegend rumsteht wenn der fehler kommt.
von daher so tragisch ist es nicht, mal schauen vielleicht muss ich die nips ja mal neu machen... wenn dann aber erst nach deinem update.
oh und noch etwas das einfach mal gesagt werden muss :D
die funktion NTConfig_KeepDistanceToMonsters ist einfach mal sowas von genial!
klasse idee und klasse umsetzung, das gibt dem ganzen bot quasi +250 intelligenz und -70% chicken rate :D:handsdown:
EDIT: könnte man das hier irgendwie einbauen? ist ein schrein such script für akt 1, wäre sicher ganz nett vor jedem run...
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;
}
NTTMGR_TownManager();
if(!NTTM_TownMove("waypoint"))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
return;
}
if(!NTM_TakeWaypoint(3))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTP_DoPrecast(true);
if(NTConfig_Teleport)
{
NTC_SwapWeapons(1)
}
FindShrines();
if(!me.GetState(137))
{
if(!NTM_MoveToPresetUnit(2, NTC_UNIT_OBJECT, 83))
NTM_MoveToPresetUnit(2, NTC_UNIT_OBJECT, 2);
FindShrines();
}
if(!me.GetState(137))
{
if(!NTM_MoveToStair(3, 9))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
return;
}
if(!NTM_MoveToStair(4, 10))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
return;
}
FindShrines();
}
if(!me.GetState(137))
{
if(!NTM_MoveToStair(4, 10))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
return;
}
if(!NTM_TakeStair(10))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()");
return;
}
if(!NTM_MoveToStair(10, 5))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
return;
}
if(!NTM_TakeStair(5))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()");
return;
}
FindShrines();
}
if(!me.GetState(137))
{
if(!NTM_MoveToStair(6, 11))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
return;
}
FindShrines();
}
NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}
function FindShrines()
{
var ShrineIds = [2, 83, 85, 86, 93, 96, 97, 109, 116, 120, 123, 124, 133, 134, 135, 136, 150, 151, 172, 173, 184, 190, 191, 197, 199, 200, 201, 226, 231, 232, 260, 275, 276, 277, 278, 279, 282, 299, 300, 303, 325, 361, 414, 415, 421, 422, 423, 427, 428, 464, 465, 472, 479, 483, 484, 488, 491, 492, 495, 497, 499, 503, 509, 512, 520, 521, 522];
var ShrineLocs = [];
var unit = GetPresetUnits(me.areaid);
if(unit)
{
for (var j = 0; j < unit.length; j++){
for (var c = 0; c < ShrineIds.length; c++){
if (ShrineIds[c] == unit[j].id){
ShrineLocs.push([unit[j].roomx*5+unit[j].x + 3,unit[j].roomy*5+unit[j].y])
}
}
}
}
while(ShrineLocs.length > 0)
{
ShrineLocs.sort(SortRoomInt);
var _room = ShrineLocs.shift();
NTM_MoveTo(me.areaid, _room[0], _room[1]);
var shrine = NTC_FindUnit(NTC_UNIT_OBJECT, "shrine");
if(shrine){
do{
if(GetDistance(me.x,me.y,shrine.x,shrine.y)<5){
if(shrine.shrinetype == 15)
{
NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, shrine);
break;
}
}
}while(shrine.GetNext());
}
if(me.GetState(137))
break;
}
}
function SortRoomInt(a, b)
{
if(GetDistance(me.x, me.y, a[0], a[1]) < GetDistance(me.x, me.y, b[0], b[1]))
return -1;
return 1;
}
ich hab leider keine ahnung was ich da anpassen muss damit es kompatibel ist, wenn ich es einfach unverändert lasse dann wird das script geladen und es passiert rein gar nichts...