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); } }
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^^