Sword of the new world request

10/30/2009 08:33 improvizacion#1
hello there, i wanna ask some questions
i wanna make my own bot, and know how "update" it for each version the sotnw get.
now is 3.0.13 and rokizas369 make an AI that wotks fine, exept by disconnections (i dont judge, only clear)
and he dont have time for teach me, now, i have IPF extractor, and i got the scripts that contain ai.ipf
here is an example:
Code:
func SCR_ATTACKER_TS_KEEP(self)
{
	sleep(100);
	// start log
	AiLog('ATTACKER_TS_KEEP : Start!!!');
	// declare variables
	var selfAi = GetAiActor(self);
	var prevTS = GetPrevTS(selfAi);
	// Hold Check
	SCR_AI_LIB_UNHOLD(selfAi, prevTS);
	// Main Loop	
	while(1){
		// User Target Check
		if('ChangeTS' == SCR_AI_LIB_USERTARGET(selfAi)){
			return;
		}
		// User Skill Check
		if('ChangeTS' == SCR_AI_LIB_USERSKILL(selfAi)){
			return;
		}
		// SUBHEALING Healing Check
		/*if('ChangeTS' == SCR_AI_LIB_SUBHEALING(self, selfAi)){
			return;
		}*/
		// Near Target Check
		if('ChangeTS_BATTLE' == SCR_AI_LIB_NEARTARGET(self, selfAi)){
			ChangeTacticsAi(selfAi, 'TS_KEEP_BATTLE');
			return;
		}
		// Keep Position Check
		SCR_AI_LIB_KEEPPOSITION(selfAi);
		// Main Sleep
		sleep(100);
	}
}

func SCR_ATTACKER_TS_KEEP_BATTLE(self)
{
	sleep(100);
	// start log
	AiLog('ATTACKER_TS_KEEP_BATTLE : Start!!!');
	// declare variables
	var selfAi = GetAiActor(self);
	var prevTS = GetPrevTS(selfAi);
	//Hold Check
	SCR_AI_LIB_UNHOLD(selfAi, prevTS);
	// Attack Target
	SCR_AI_LIB_ATTACKTARGET(selfAi);
	// Main Loop
	while(1){
		// User Target Check
		if('ChangeTS' == SCR_AI_LIB_USERTARGET(selfAi)){
			return;
		}
		// User Skill Check
		if('ChangeTS' == SCR_AI_LIB_USERSKILL(selfAi)){
			return;
		}
		// SUBHEALING Healing Check
		/*if('ChangeTS' == SCR_AI_LIB_SUBHEALING(self, selfAi)){
			return;
		}*/
		// Target Available Check
		if('ChangeTS_Prev' == SCR_AI_LIB_TARGETAVAILABLE(selfAi)){
			ChangeTacticsAi(selfAi, 'TS_KEEP');
			return;
		}
		// Main Sleep
		sleep(100);
	}
}

func SCR_ATTACKER_TS_USER_SKILL(self)
{
	sleep(100);
	// start log
	AiLog('ATTACKER_TS_USER_SKILL : Start!!!');
	// declare variables
	var selfAi = GetAiActor(self);
	var prevTS = GetPrevTS(selfAi);	
	//Hold Check
	SCR_AI_LIB_UNHOLD(selfAi, prevTS);
	// Main Loop
	while(1){
		// Skill Using Check
		if('ChangeTS' == SCR_AI_LIB_SKILLUSING(selfAi, prevTS)){
			return;
		}
		// Main Sleep
		sleep(100);
	}
}

func SCR_ATTACKER_TS_NONE(self)
{
	sleep(100);
	// start log
	AiLog('ATTACKER_TS_NONE : Start!!!');
	// declare variables
	var selfAi = GetAiActor(self);
	var prevTS = GetPrevTS(selfAi);
	
	//Hold Check
	SCR_AI_LIB_UNHOLD(selfAi, prevTS);
	// Main Loop
	while(1){
		// User Target Check
		if('ChangeTS' == SCR_AI_LIB_USERTARGET(selfAi)){
			return;
		}
		// User Skill Check
		if('ChangeTS' == SCR_AI_LIB_USERSKILL(selfAi)){
			return;
		}
		// Saved Target Check
		if('TS_BATTLE_NOMINATE' == prevTS){
			var savedTarget = GetTarget(selfAi, 'NOMINATE');
			if(nil != savedTarget){
				SetAiTarget(selfAi, savedTarget);
				if(nil != GetAiTarget(selfAi)){
					ChangeTacticsAi(selfAi, 'TS_BATTLE_NOMINATE');
					return;
				}
			}
		}
		// Main Sleep
		sleep(100);
	}
}

func SCR_ATTACKER_TS_BATTLE_NOMINATE(self)
{
	sleep(100);
	// start log
	AiLog('ATTACKER_TS_BATTLE_NOMINATE : Start!!!');
	// declare variables
	var selfAi = GetAiActor(self);
	var prevTS = GetPrevTS(selfAi);
	var targetkdchk = 0;
	var savedTarget = GetTarget(selfAi, 'NOMINATE');

	if(nil != savedTarget){
		SetAiTarget(selfAi, savedTarget);
	}
	//Hold Check
	SCR_AI_LIB_UNHOLD(selfAi, prevTS);
	// Attack Target
	SCR_AI_LIB_ATTACKTARGET(selfAi);
	while(1){
		// User Target Check
		if('ChangeTS' == SCR_AI_LIB_USERTARGET(selfAi)){
			return;
		}
		// User Skill Check
		if('ChangeTS' == SCR_AI_LIB_USERSKILL(selfAi)){
			return;
		}
		// Target Available Check
		if('ChangeTS_Prev' == SCR_AI_LIB_TARGETAVAILABLE(selfAi)){
			ChangeTacticsAi(selfAi, 'TS_NONE');
			return;
		}
		// Main Sleep
		sleep(100);
	}
}

func SCR_ATTACKER_TS_ASSAULT(self)
{
	sleep(100);
	// start log
	AiLog('ATTACKER_TS_ASSAULT : Start!!!');
	// declare variables
	var selfAi = GetAiActor(self);
	var prevTS = GetPrevTS(selfAi);
	//Hold Check
	SCR_AI_LIB_UNHOLD(selfAi, prevTS);
	// SUBHEALING Healing Check
	/*if('ChangeTS' == SCR_AI_LIB_SUBHEALING(self, selfAi)){
		return;
	}*/
	// Near Target Check
		if('ChangeTS_BATTLE' == SCR_AI_LIB_NEARTARGET(self, selfAi)){
			ChangeTacticsAi(selfAi, 'TS_ASSAULT_BATTLE');
			return;
		}
	// Move
	AssaultDestMoveTo(selfAi);
	// Main Loop
	while(1){
		// User Target Check
		if('ChangeTS' == SCR_AI_LIB_USERTARGET(selfAi)){
			return;
		}
		// User Skill Check
		if('ChangeTS' == SCR_AI_LIB_USERSKILL(selfAi)){
			return;
		}
		// SUBHEALING Healing Check
		/*if('ChangeTS' == SCR_AI_LIB_SUBHEALING(self, selfAi)){
			return;
		}*/
		// Near Target Check
		if('ChangeTS_BATTLE' == SCR_AI_LIB_NEARTARGET(self, selfAi)){
			ChangeTacticsAi(selfAi, 'TS_ASSAULT_BATTLE');
			return;
		}
		// Arrival Check 
		if(IsNearFromAssaultDestPosition(selfAi, 100) == 'YES'){
			ChangeTacticsAi(selfAi, 'TS_NONE');
			return;
		}
		// Main Sleep
		sleep(100);
	}
}

func SCR_ATTACKER_TS_ASSAULT_BATTLE(self)
{
	sleep(100);
	// start log
	AiLog('ATTACKER_TS_ASSAULT_BATTLE : Start!!!');
	// declare variables
	var selfAi = GetAiActor(self);
	var prevTS = GetPrevTS(selfAi);
	//Hold Check
	SCR_AI_LIB_UNHOLD(selfAi, prevTS);
	// Attack Target
	SCR_AI_LIB_ATTACKTARGET(selfAi);
	// Main Loop
	while(1){
		// User Target Check
		if('ChangeTS' == SCR_AI_LIB_USERTARGET(selfAi)){
			return;
		}
		// User Skill Check
		if('ChangeTS' == SCR_AI_LIB_USERSKILL(selfAi)){
			return;
		}
		// SUBHEALING Healing Check
		/*if('ChangeTS' == SCR_AI_LIB_SUBHEALING(self, selfAi)){
			return;
		}*/
		// Target Available Check
		if('ChangeTS_Prev' == SCR_AI_LIB_TARGETAVAILABLE(selfAi)){
			// Near Target Check
			if('ChangeTS_BATTLE' == SCR_AI_LIB_NEARTARGET(self, selfAi)){
				ChangeTacticsAi(selfAi, 'TS_ASSAULT_BATTLE');
				return;
			}
			ChangeTacticsAi(selfAi, 'TS_ASSAULT');
			return;
		}
		// Main Sleep
		sleep(100);
	}
}

func SCR_ATTACKER_TS_HOLD(self)
{
	sleep(100);
	// Start Log
	AiLog('ATTACKER_TS_HOLD : Start!');
	// Declare Variables
	var selfAi = GetAiActor(self);
	// Hold
	SCR_AI_LIB_HOLD(selfAi);
	// Main Loop
	while(1){
		// User Target Check
		if('ChangeTS' == SCR_AI_LIB_USERTARGET(selfAi)){
			return;
		}
		// User Skill Check
		if('ChangeTS' == SCR_AI_LIB_USERSKILL(selfAi)){
			return;
		}
		// SUBHEALING Healing Check
		/*if('ChangeTS' == SCR_AI_LIB_SUBHEALING(self, selfAi)){
			return;
		}*/
		// Near Target Check
		SCR_AI_LIB_NEARTARGET_ON_HOLD(self, selfAi);
		// Main Sleep
		sleep(100);
	}
}

func SCR_ATTACKER_TS_HOLD_BATTLE(self)
{
	sleep(100);
	// Start Log
	AiLog('ATTACKER_TS_HOLD_BATTLE : Start!!!');
	// Declare Variables
	var selfAi = GetAiActor(self);
	// Target Out Of Range Check 
	if('ChangeTS_Prev' == SCR_AI_LIB_OUTOFRANGE(selfAi)){
		ChangeTacticsAi(selfAi, 'TS_HOLD');
		return;
	}
	// Attack Target
	SCR_AI_LIB_ATTACKTARGET(selfAi);
	// Main Loop
	while(1){
		// User Target Check
		if('ChangeTS' == SCR_AI_LIB_USERTARGET(selfAi)){
			return;
		}
		// User Skill Check
		if('ChangeTS' == SCR_AI_LIB_USERSKILL(selfAi)){
			return;
		}
		// SUBHEALING Healing Check
		/*if('ChangeTS' == SCR_AI_LIB_SUBHEALING(self, selfAi)){
			return;
		}*/
		// Target Available Check
		if('ChangeTS_Prev' == SCR_AI_LIB_TARGETAVAILABLE(selfAi)){
			//AiLog("Target Range Not Available!!!");
			ChangeTacticsAi(selfAi, 'TS_HOLD');
			return;
		}
		// Target Out Of Range Check 
		if('ChangeTS_Prev' == SCR_AI_LIB_OUTOFRANGE(selfAi)){
			//AiLog("Target Out of Range!!! [Main Loop]");
			ChangeTacticsAi(selfAi, 'TS_HOLD');
			return;
		}
		// Main Sleep
		sleep(100);
	}
}

func SCR_ATTACKER_TS_HARVEST(self)
{
	sleep(100);
	// Start Log
	AiLog('ATTACKER_TS_HARVEST : Start!!!');
	// declare variables
	var selfAi = GetAiActor(self);
	var prevTS = GetPrevTS(selfAi);
	//Hold Check
	SCR_AI_LIB_UNHOLD(selfAi, prevTS);
	// Near Item
		if('ChangeTS' == SCR_AI_LIB_NEARITEM(selfAi)){
			return;
		}
	// Move
	HarvestDestMoveTo(selfAi);
	// Main Loop
	while(1){
		// User Target Check
		if('ChangeTS' == SCR_AI_LIB_USERTARGET(selfAi)){
			return;
		}
		// User Skill Check
		if('ChangeTS' == SCR_AI_LIB_USERSKILL(selfAi)){
			return;
		}
		// Near Item
		if('ChangeTS' == SCR_AI_LIB_NEARITEM(selfAi)){
			return;
		}
		// Arrival Check
//		if(IsNearFromHarvestDestPosition(selfAi, 100) == 'YES'){
//			ChangeTacticsAi(selfAi, 'TS_NONE');
//			return;
//		}
		// Main Sleep
		sleep(100);
	}
}

func SCR_ATTACKER_TS_HARVEST_PICK(self)
{
	sleep(100);
	// Start Log
	AiLog('ATTACKER_TS_HARVEST_PICK : Start!!!');
	// declare variables
	var selfAi = GetAiActor(self);
	// Main Loop
	while(1){
		// User Target Check
		if('ChangeTS' == SCR_AI_LIB_USERTARGET(selfAi)){
			return;
		}
		// User Skill Check
		if('ChangeTS' == SCR_AI_LIB_USERSKILL(selfAi)){
			return;
		}
		// Target Item Check
		if('ChangeTS_Prev' == SCR_AI_LIB_TARGETITEM(selfAi)){
			ChangeTacticsAi(selfAi, 'TS_HARVEST');
			return;
		}
		// Main Sleep		
		sleep(500);
	}
}

func SCR_ATTACKER_TS_PICK_ITEM(self)
{
	sleep(100);
	// Start Log
	AiLog('ATTACKER_TS_PICK_ITEM : Start!!!');
	// declare variables
	var selfAi = GetAiActor(self);
	var prevTS = GetPrevTS(selfAi);
	//Hold Check
	SCR_AI_LIB_UNHOLD(selfAi, prevTS);
	// Main Loop
	while(1){
		// User Target Check
		if('ChangeTS' == SCR_AI_LIB_USERTARGET(selfAi)){
			return;
		}
		// User Skill Check
		if('ChangeTS' == SCR_AI_LIB_USERSKILL(selfAi)){
			return;
		}
		// Target Item Check
		if('ChangeTS_Prev' == SCR_AI_LIB_TARGETITEM(selfAi)){
			ChangeTacticsAi(selfAi, 'TS_NONE');
			return;
		}
		// Main Sleep	
		sleep(500);
	}
}

func SCR_ATTACKER_TS_MOVE(self)
{
	sleep(100);
	// Start Log
	AiLog('ATTACKER_TS_MOVE : Start!!!');
	// declare variables
	var selfAi = GetAiActor(self);
	var prevTS = GetPrevTS(selfAi);	
	// Hold Check
	SCR_AI_LIB_UNHOLD(selfAi, prevTS);
	// Main Loop
	while(1){
		// User Target Check
		if('ChangeTS' == SCR_AI_LIB_USERTARGET(selfAi)){
			return;
		}
		// User Skill Check
		if('ChangeTS' == SCR_AI_LIB_USERSKILL(selfAi)){
			return;
		}
		// Arrival 
		if(IsNearFromMoveDestPosition(selfAi, 100) == 'YES'){
			ChangeTacticsAi(selfAi, 'TS_NONE');
			return;
		}
		// Main Sleep
		sleep(100);
	}
}
the name of the txt file is attacker, so this oviously are the codes for attack, now, i wanna know, if get the script from old ai, how could i repack it to ai.ipf?
and for dont get the error "version dont mach" or something like this, how can i bypass, or what should i do for can play and use my own script and hotkeys?


well if some1 can answer me, pls pm me or post here, dont metter, please, thx^^