moin moin,
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
any sugguestions? ^^
naechste idee waere die function findshrines zu splitten und eine findshrine/hotshrine function zu erstellen ;)
hier die basis functions:
idea1: sorc geht nach seis oder waehrend zum wp und telet richtung cs und dann dort die seals ab um einen es zu suchen, ihn zu nehmen und dann fortzufahren
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 :)
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 :)