Well I tried like that but it failed.
I've been giving a search to try via SQL and it worked out fine:
query_sql "SELECT `guild_id` FROM `rwoe` ORDER BY `kd` DESC LIMIT 3",.@guild_id;
for(.@i=0; .@i<getarraysize(.@guild_id); .@i++){
query_sql "UPDATE rwoe SET ord = "+(.@i+1)+" WHERE guild_id="+.@guild_id[.@i]+"";
}
query_sql "SELECT `guild_id`,`ord` FROM `rwoe` WHERE `ord`=1",.@guild_id1,.@top1; // G1
query_sql "SELECT `guild_id`,`ord` FROM `rwoe` WHERE `ord`=2",.@guild_id2,.@top2; // G2
query_sql "SELECT `guild_id`,`ord` FROM `rwoe` WHERE `ord`=3",.@guild_id3,.@top3; // G3
soon after I joined with an If:
if(.@top1 == 1){ // TOP 1
query_sql "SELECT `char_id` FROM `char` WHERE `guild_id`="+.@guild_id1+"",.@charid;
for(.@i=0; .@i<getarraysize(.@charid); .@i++) {
.@sender$ = "1";
.@title$ = "1";
.@body$ = "1";
.@zeny = 0;
setarray .@mailitem[0], 607, 608, 609, 613;
setarray .@mailamount[0], 10, 5, 1, 1;
setarray .@mailcard0[0], 0, 0, 0, 0;
setarray .@mailcard1[0], 0, 0, 0, 0;
setarray .@mailcard2[0], 0, 0, 0, 0;
mail .@charid[.@i], .@sender$, .@title$, .@body$, .@zeny, .@mailitem, .@mailamount, .@mailcard0, .@mailcard1, .@mailcard2;
}
One for each TOP.