ich moechte mit eurer hilfe das bereits existente essorc script veraendern sodass die sorc nicht mehr dazu genoetigt ist act1 abzuklappern
zuerst kam mir in den sinn die stairid auszutauschen was allerdings nicht funktioniert hat ;X
Code:
if(!NTM_TakeWaypoint(107))
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
return;
}
NTP_DoPrecast(true);
if(!me.GetState(137))
{
if(!NTM_MoveToStair(108, 8)) //CS entry
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
return;
}
FindShrines();
naechste idee waere die function findshrines zu splitten und eine findshrine/hotshrine function zu erstellen
hier die basis functions:
Code:
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;
}
idea2: sorc sucht waehrend des laufenden main-scripts die shrines , speichert die location, und holt sich den es bei bedarf durch "hotshrine"
bin offen fuer anregungen






