ça fait des semaines que j'arrive pas à résoudre un problème qui m’empèche d'exploiter actiona.
Dans mon scripte, je n'ai qu'une seule commande "Code" que je programme en javascript, toutes les action y sont programmées.
Je met le code à votre disposition en bas.
Mon problème, c'est que l’exécution du code s’interrompe à un endroit aléatoire.
Le code s'agit d'un certain nombre d'actions qui s’exécutent en boucle un certain nombre de fois.
Des fois, l’exécution se termine sans problèmes, alors que des fois ça s’arrente sans afficher d'erreur.
Durant l’exécution normale, le processus consomme entre 6 et 15% CPU, ce qui est tout à fait normal. Par contre, quand ça s’interrompe, la consommation baisse à 0 (aucune boucle n'est en cours d’exécution).
Quelqu'un saurai d’où viens ce problème?
Merci d'avance!
Code :
Code: Select all
//Resources
var preci = new Image("C:/Program Files (x86)/Actiona/Resources/Images/preci.png");
var dd_capture = new Image("C:/Program Files (x86)/Actiona/Resources/Images/DD_capture.png");
var filter_button = new Image("C:/Program Files (x86)/Actiona/Resources/Images/green_filter.png");
var battle_field = new Image("C:/Program Files (x86)/Actiona/Resources/Images/battle_field.png");
var first_certif = new Image("C:/Program Files (x86)/Actiona/Resources/Images/first_certif.png");
var valid_button = new Image("C:/Program Files (x86)/Actiona/Resources/Images/valid_button.png");
var destination = new Image("C:/Program Files (x86)/Actiona/Resources/Images/destination.png");
var enclos_door = new Image("C:/Program Files (x86)/Actiona/Resources/Images/enclosdoor.png");
var zaapi_menu = new Image("C:/Program Files (x86)/Actiona/Resources/Images/zaapi_menu.png");
var hdv_button = new Image("C:/Program Files (x86)/Actiona/Resources/Images/hdv_button.png");
var battle_end = new Image("C:/Program Files (x86)/Actiona/Resources/Images/battle_end.png");
var leave_spot = new Image("C:/Program Files (x86)/Actiona/Resources/Images/leave_spot.png");
var hdv_annim = new Image("C:/Program Files (x86)/Actiona/Resources/Images/hdv_annim.png");
var abra_head = new Image("C:/Program Files (x86)/Actiona/Resources/Images/abra_head.png");
var zaap_brak = new Image("C:/Program Files (x86)/Actiona/Resources/Images/zaap_brak.png");
var montable = new Image("C:/Program Files (x86)/Actiona/Resources/Images/montable.png");
var celeste = new Image("C:/Program Files (x86)/Actiona/Resources/Images/celeste.png");
var redbull = new Image("C:/Program Files (x86)/Actiona/Resources/Images/redbull.png");
var certif = new Image("C:/Program Files (x86)/Actiona/Resources/Images/certif.png");
var divine = new Image("C:/Program Files (x86)/Actiona/Resources/Images/divine.png");
var enclos = new Image("C:/Program Files (x86)/Actiona/Resources/Images/enclos.png");
var equipe = new Image("C:/Program Files (x86)/Actiona/Resources/Images/equipe.png");
var abra1 = new Image("C:/Program Files (x86)/Actiona/Resources/Images/abra1.png");
var abra2 = new Image("C:/Program Files (x86)/Actiona/Resources/Images/abra2.png");
var abra3 = new Image("C:/Program Files (x86)/Actiona/Resources/Images/abra3.png");
var abra4 = new Image("C:/Program Files (x86)/Actiona/Resources/Images/abra4.png");
var abra5 = new Image("C:/Program Files (x86)/Actiona/Resources/Images/abra5.png");
var abra6 = new Image("C:/Program Files (x86)/Actiona/Resources/Images/abra6.png");
var abra7 = new Image("C:/Program Files (x86)/Actiona/Resources/Images/abra7.png");
var ready = new Image("C:/Program Files (x86)/Actiona/Resources/Images/ready.png");
var close = new Image("C:/Program Files (x86)/Actiona/Resources/Images/close.png");
var zaapi = new Image("C:/Program Files (x86)/Actiona/Resources/Images/zaapi.png");
var amour = new Image("C:/Program Files (x86)/Actiona/Resources/Images/amour.png");
var endur = new Image("C:/Program Files (x86)/Actiona/Resources/Images/endur.png");
var mount = new Image("C:/Program Files (x86)/Actiona/Resources/Images/mount.png");
var bread = new Image("C:/Program Files (x86)/Actiona/Resources/Images/bread.png");
var power = new Image("C:/Program Files (x86)/Actiona/Resources/Images/power.png");
var level = new Image("C:/Program Files (x86)/Actiona/Resources/Images/level.png");
var sort = new Image("C:/Program Files (x86)/Actiona/Resources/Images/sort.png");
var turn = new Image("C:/Program Files (x86)/Actiona/Resources/Images/turn.png");
var lost = new Image("C:/Program Files (x86)/Actiona/Resources/Images/lost.png");
var no = new Image("C:/Program Files (x86)/Actiona/Resources/Images/no.png");
//Pixel coordinates
var pos_initial = new Point(900,800);
var pos_battle = new Point();
var pos_abra = new Point();
var pos_turn = new Point();
var pos = new Point();
//Variables
var i = 0;
var battle_lost = false;
var count = 200;
//Main loop
while(count > 0)
{
if(count > 1)
Console.print(count + " battle remaining...");
else
Console.print("last battle...");
count--;
var stop = false;
//Get the DD
if(!battle_lost)
{
Console.print("Getting the DD...");
Click_image(no,500);
Click_image(zaapi);
Click_image(hdv_button);
Click_image(hdv_annim);
Click_image(valid_button);
Click_image(enclos_door);
Console.print("Shed access.");
Click_image(certif);
Console.print("Opened the certificats tab.");
Click_image(filter_button);
Console.print("Engaged the filter.");
Click_image(montable);
Console.print("Selected \"Montable\".");
Click_image(sort);
Console.print("Sorting...");
Click_image(level,0,90);
Console.print("Sorted by level.");
Custom_drag(first_certif,equipe);
Click_image(close);
Console.print("Got the DD!");
}
//Battle preparation
Console.print("preparing for the battle...");
Click_image(redbull,0,0,6);
Click_image(bread,0,0,10);
Click_image(destination,0,0,2);
Console.print("Prepared");
//battle search
Console.print("Searching for a battle...");
var attempt = 0;
while(!Image_search(battle_field))
{
Console.print("Attempt " + (++attempt));
if(!Click_image(abra1,200,90,2))
{
Console.print("Abra 1");
if(!Click_image(abra2,200,90,2))
{
Console.print("Abra 2");
if(!Click_image(abra3,200,90,2))
{
Console.print("Abra 3");
Click_image(abra4,200,90,2);
Console.print("Abra 4");
}
}
}
Console.print("End of Attempt " + attempt);
Wait_for(battle_field,1000);
}
Console.print("Battle found!");
//Positionning
Console.print("Positionning...");
pos_initial = new Point(900,800);
Click(1, pos_initial);
pos_abra_head = Wait_for(abra_head,10000, 500).position;
pos_ready = Wait_for(ready,1000, 500).position;
pos_turn = pos_ready;
Click_image(mount,0,0,2);
Console.print("Abra found at : " + pos_abra_head.toString());
//Determine battle position
if(pos_abra_head.x == 962 || pos_abra_head.y == 600)
pos = new Point(1000,700);
else if(pos_abra_head.x == 1062 && pos_abra_head.y == 650)
pos = new Point(1000,700);
else
pos = new Point(1050,725);
//Battle start
pos_initial = new Point(1200,750);
Click(1, pos_initial);
Console.print("Battle starts!");
Click_image(ready);
Keep_waiting(turn);
Spell(power,pos_initial,1);
Spell(preci,pos_initial,1);
Click(1, pos);
Delay(1000);
Spell(divine,pos,1);
Spell(celeste,pos,1);
Spell(dd_capture,pos,1);
Click_image(turn);
var looping = true;
do
{
if(Wait_for(battle_end, 200, 200))
{
if(Wait_for(lost,100))
{
battle_lost = true;
Console.print("Defeat!")
}
else
{
Console.print("Victory!")
battle_lost = false;
}
looping = false;
}
else
{
if(Wait_for(turn,200, 200))
{
Console.print("Turn start.");
Spell(divine,pos,1);
Spell(celeste,pos,2);
Spell(divine,pos,1);
Click_image(turn,200);
Console.print("Turn end.");
}
}
}while(looping);
Console.print("Battle ends!");
Click_image(close);
Delay(100);
Click_image(close,50);
if(!battle_lost)
Click_image(leave_spot);
Keep_waiting(zaap_brak);
Console.print("Next round..");
}
Console.print("End of code");
function Spell(p,d,c)
{
for(var i = 0; i < c; i++)
{
Click_image(p,100);
Click(1,d);
Delay(100);
}
}
// ------------------------- Utilities ------------------------- //
function Drag(p1, p2, Delay)
{
//Default values
if(!Delay)
Delay = 1000;
//Content
var m = new Mouse();
m.move(p1);
Delay(80,0);
m.press();
Slide(p1, p2, Delay);
m.release();
}
function Slide(p1, p2, delay)
{
//Default values
if(!delay)
delay = 1000;
//Content
var absolute_start = Get_time();
var m = new Mouse();
var steps_count = Math.ceil(delay/5);
m.move(p1);
var error_coorection = 0;
for(var i = 1; i < steps_count; i++)
{
var start_time = Get_time();
m.move(new Point(i*(p2.x-p1.x)/steps_count + p1.x, i*(p2.y-p1.y)/steps_count + p1.y));
Delay(Math.max(0,5 - (Get_time() - start_time) - error_coorection),0);
error_coorection = (Get_time() - absolute_start)%5;
}
m.move(p2);
}
function Delay(t, incertainty)
{
//Defalut values
if(!incertainty)
incertainty = 0;
//Content
Execution.pause(Get_random(t-incertainty, t+incertainty));
}
function Get_random(limit_inf, limit_sup)
{
var result = Math.floor(Math.random()*(limit_sup-limit_inf)) + limit_inf;
return result;
}
function Get_time()
{
d = new Date();
return d.valueOf();
}
function Wait_disapear(image, loopDelay)
{
//Defaut values
if(!loopDelay)
loopDelay = 200;
var stop = false;
//Content
while(!stop)
{
var start_time = Get_time();
if(Image_search(image))
stop = true;
Delay(loopDelay - Get_time() - start_time);
}
}
function Wait_for(image, t, loopDelay, confidence)
{
//Default values
if(!t || t == 0)
t = 2000;
if(!loopDelay|| loopDelay == 0)
loopDelay = 200;
if(!confidence || confidence == 0)
confidence = 95;
//Content
var loopCount = t/loopDelay;
for(var i = 0; i < loopCount; i++)
{
var start_time = Get_time();
var result = Image_search(image,confidence);
if(result)
{
return result;
}
Delay(loopDelay - Get_time() + start_time);
}
return null;
}
function Click(n,p,interDelay,incertainty)
{
//Default values
if(!interDelay)
{
interDelay = 100;
incertainty = 50;
}
else
if(!incertainty)
incertainty = Math.min(100, interDelay/100);
//Content
var m = new Mouse();
m.move(p);
for(var i = 0; i < n; i++)
{
m.click();
Delay(interDelay, incertainty);
}
}
function Click_image(image, t, confidence, times)
{
if(!confidence || confidence == 0)
confidence = 95;
if(!t || t == 0)
t = 10000;
if(!times)
times = 1;
var r = Wait_for(image,t,200,confidence);
if (r)
{
Click(times , r.position, 20);
Delay(50);
return true;
}
return false;
}
function Wait_for_map_change(check_frequecy, confidence)
{
//Default values
if(!check_frequecy)
check_frequecy = 200;
if(!confidence)
confidence = 70;
//Content
var current = Image.takeScreenshot();
var start_time = Get_time();
while(Image_search(current, confidence))
{
Delay(Math.max(0,check_frequecy - Get_time() + start_time));
start_time = Get_time();
}
}
function Image_search(image, confidence, pyramids)
{
//Default values
if(!confidence)
confidence = 95;
if(!pyramids)
pyramids = 2;
//Content
var r = Image.takeScreenshot().findSubImage(image,
{
confidenceMinimum: confidence,
downPyramidCount: pyramids,
});
return(r);
}
function Custom_drag(p1,p2)
{
var m = new Mouse();
var tmp = Wait_for(p1,1000, 500);
if(tmp)
{
var p = tmp.position;
m.move(p);
m.press();
Slide(p,new Point(p.x+50,p.y),100);
tmp = Wait_for(p2,5000, 500);
if(tmp)
{
m.move(tmp.position);
Delay(50);
m.release();
Delay(100);
}
}
}
function Keep_waiting(image, limit, loopDelay)
{
//Default values
if(!limit)
limit = 10000;
if(!loopDelay)
loopDelay = 200;
//Content
var loopCount = limit/loopDelay;
for(var i = 0; i < loopCount; i++)
{
var start_time = Get_time();
var result = Image_search(image);
if(result)
{
return true;
}
Delay(loopDelay - Get_time() + start_time);
}
return false;
}