Ich habe mal schnell ein Script dafür geschrieben, wobei ich direkt mal dazu sage, dass ich es wenig bis garnicht getestet habe und es durchaus noch fehlerlastig sein könnte:
Code:
/**
* This file was written by [Only registered and activated users can see links. Click Here To Register...]
* Check the programming section for updates and further scripts
* Last Update: 13:45 05.10.2011
*/
var Runtimes = "16:00-22:00;23:00-6:00";
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
MWC_Initialize();
var _now, _runtimes, _startTime, _endTime;
var i;
NTTMGR_TownManager();
me.maxgametime = 0;
_runtimes = Runtimes.replace(/ /g, "").split(";");
_startTime = new Array();
_endTime = new Array();
for(var i = 0; i < _runtimes.length; i++)
_runtimes[i] = _runtimes[i].replace(/0([0-9])/g, "$1"); // Get rid of zeroes at that might lead to misinterpretations when parsing.
while(true)
{
_now = new Date();
if(_now)
{
for(i = 0; i < _runtimes.length; i++)
{
_startTime.hours = parseInt(_runtimes[i].split("-")[0].split(":")[0]);
_startTime.minutes = parseInt(_runtimes[i].split("-")[0].split(":")[1]);
_endTime.hours = parseInt(_runtimes[i].split("-")[1].split(":")[0]);
_endTime.minutes = parseInt(_runtimes[i].split("-")[1].split(":")[1]);
if(isNaN(_startTime.hours) || isNaN(_startTime.minutes) || isNaN(_endTime.hours) || isNaN(_endTime.minutes) || _startTime.hours == _endTime.hours && _startTime.minutes == _endTime.minutes)
continue;
if(_startTime.hours < _endTime.hours)
{
if(_startTime.hours <= _now.getHours() && _endTime.hours > _now.getHours())
{
if(_startTime.hours == _now.getHours() && _startTime.minutes <= _now.getMinutes() || _endTime.hours == _now.getHours() && _endTime.minutes > _now.getMinutes())
break;
}
}
else if(_startTime.hours == _endTime.hours)
{
if(_startTime.hours == _now.getHours() && _startTime.minutes <= _now.getMinutes() && _endTime.minutes >= _now.getMinutes())
break;
}
else
{
if(_startTime.hours <= _now.getHours() || _endTime.hours > _now.getHours())
{
if(_startTime.hours == _now.getHours() && _startTime.minutes <= _now.getMinutes() || _endTime.hours == _now.getHours() && _endTime.minutes > _now.getMinutes())
break;
}
}
}
if(i < _runtimes.length)
break;
}
if(me.act != 1 || !NTC_InTown())
NTTM_CheckAct(1, true);
switch(Random(0, 200))
{
case 0:
NTTM_TownMove("gheed")
break;
case 25:
NTTM_TownMove("charsi")
break;
case 50:
NTTM_TownMove("akara")
break;
case 75:
NTTM_TownMove("kashya")
break;
case 100:
NTTM_TownMove("cain")
break;
case 125:
NTTM_TownMove("stash")
break;
case 150:
NTTM_TownMove("portalspot")
break;
case 175:
NTTM_TownMove("waypoint")
break;
case 200:
NTTM_TownMove("warriv")
break;
default:
NTC_Delay(2500);
break;
}
NTC_Delay(1000);
}
NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
Du gibst oben analog zu dem verwendeten Format die Zeiträume (beliebig viel, getrennt mit Semikola) ein, in denen dein Bot laufen soll. Wenn du das Bot Scripst nun einfügst (sinnvollerweise als erstes Script) führt es ein Delay und einige zufällige Positionswechsel in einer Endlosschleife aus.
Bei jedem Durchlauf wird die aktuelle Uhrzeit geprüft, sobald diese in einem der angegebenen Intervalle liegt, wird das Script beendet.
Probier es am besten einfach mal aus. :)
LG
Muddy