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^^






