init code
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
load_code('general')
|
||||
load_code('fight')
|
||||
load_code('int-base')
|
||||
load_code('range')
|
||||
@@ -0,0 +1,4 @@
|
||||
load_code('general')
|
||||
load_code('fight')
|
||||
load_code('int-base')
|
||||
load_code('range')
|
||||
@@ -0,0 +1,4 @@
|
||||
load_code('general')
|
||||
load_code('fight')
|
||||
load_code('int-base')
|
||||
load_code('range')
|
||||
@@ -0,0 +1,4 @@
|
||||
load_code('general')
|
||||
load_code('fight')
|
||||
load_code('int-base')
|
||||
load_code('range')
|
||||
@@ -0,0 +1,4 @@
|
||||
load_code('general')
|
||||
load_code('fight')
|
||||
load_code('int-base')
|
||||
load_code('range')
|
||||
@@ -0,0 +1,4 @@
|
||||
load_code('general')
|
||||
load_code('fight')
|
||||
load_code('int-base')
|
||||
load_code('range')
|
||||
@@ -0,0 +1,2 @@
|
||||
load_code('general')
|
||||
load_code('items')
|
||||
@@ -0,0 +1,45 @@
|
||||
// =========================>
|
||||
// Default Loop Configs
|
||||
// =========================>
|
||||
load_code("utils_default")
|
||||
|
||||
const attackLoop = new ToggleLoop({
|
||||
id: "AttkLoop",
|
||||
label: "AutoAttk",
|
||||
fn: auto_attck,
|
||||
top: false,
|
||||
interval: 1000 / 4,
|
||||
});
|
||||
|
||||
|
||||
// =========================>
|
||||
// functions
|
||||
// =========================>
|
||||
async function auto_attck () {
|
||||
use_hp_or_mp();
|
||||
loot();
|
||||
|
||||
if( character.rip || is_moving(character) ) return;
|
||||
|
||||
var target=get_targeted_monster();
|
||||
if(!target) {
|
||||
target=get_nearest_monster({min_xp:100,max_att:120});
|
||||
if(target) change_target(target);
|
||||
else {
|
||||
set_message("No Monsters");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(!is_in_range(target)) {
|
||||
move(
|
||||
character.x+(target.x-character.x)/2,
|
||||
character.y+(target.y-character.y)/2
|
||||
);
|
||||
// Walk half the distance
|
||||
}
|
||||
else if(can_attack(target)) {
|
||||
set_message("Attacking");
|
||||
attack(target);
|
||||
}
|
||||
}
|
||||
+154
@@ -0,0 +1,154 @@
|
||||
// =========================>
|
||||
// config
|
||||
// =========================>
|
||||
var send_target = "AnimaLucri"
|
||||
|
||||
// =========================>
|
||||
// loop config
|
||||
// =========================>
|
||||
load_code("utils_default")
|
||||
const craftLoop = new ToggleLoop({
|
||||
id: "UpgradeLoop",
|
||||
label: "AutoUpgrade",
|
||||
fn: auto_upgrade,
|
||||
interval: 30000,
|
||||
});
|
||||
|
||||
// =========================>
|
||||
// buttons
|
||||
// =========================>
|
||||
// add_top_button("autocraft", "AutoCraft", main);
|
||||
add_top_button("itemsendall", "Send Items", send_all_items_to);
|
||||
|
||||
|
||||
// =========================>
|
||||
// functions
|
||||
// =========================>
|
||||
load_code("npc")
|
||||
|
||||
async function auto_upgrade() {
|
||||
target = find_npc_by_name("Cue")
|
||||
diff = 500
|
||||
if (
|
||||
( character.x + diff > target.x ) && ( character.x - diff < target.x )
|
||||
&& ( character.y + diff > target.y ) && ( character.y - diff < target.y )
|
||||
) {
|
||||
var level_items = count_level_items()
|
||||
for (let item in level_items) {
|
||||
await do_upgrade(item, 6, 0.4)
|
||||
await do_combine(item, 3, 0.4)
|
||||
}
|
||||
} else {
|
||||
await smart_move(target)
|
||||
}
|
||||
}
|
||||
|
||||
async function send_all_items_to() {
|
||||
for ( let i = 0; i < 42; i++ ) {
|
||||
if (character.items[i]) {
|
||||
if (
|
||||
G.items[ character.items[i].name ].upgrade
|
||||
|| G.items[ character.items[i].name ].compound
|
||||
) {
|
||||
send_item(send_target, i)
|
||||
}
|
||||
}
|
||||
}
|
||||
send_gold(send_target, 100000000)
|
||||
}
|
||||
|
||||
function count_level_items() {
|
||||
// count all items in inventory they have a level
|
||||
let inventar = {}
|
||||
for (let item of character.items) {
|
||||
if ( item == null ) { continue; }
|
||||
if (! ("level" in item) ) { continue; }
|
||||
if ( item.name in inventar ) {
|
||||
inventar[item.name]++
|
||||
} else {
|
||||
inventar[item.name] = 1
|
||||
}
|
||||
}
|
||||
if ( debug ) console.log ( "count_level_items(): ", inventar )
|
||||
return inventar
|
||||
}
|
||||
|
||||
function locate_all_item(name) {
|
||||
let slots = {}
|
||||
for (var i = 0; i < character.items.length; i++) {
|
||||
if (character.items[i] && character.items[i].name == name) {
|
||||
slots[i] = character.items[i]
|
||||
};
|
||||
}
|
||||
if ( debug ) console.log ( "locate_all_item(): ", slots )
|
||||
return slots
|
||||
}
|
||||
|
||||
function locate_all_item_by_level(name, level) {
|
||||
let slots = {}
|
||||
for (var i = 0; i < character.items.length; i++) {
|
||||
if ( character.items[i] == null ) { continue; }
|
||||
if ( ! ("level" in character.items[i]) ) { continue; }
|
||||
if (
|
||||
( character.items[i] && character.items[i].name == name )
|
||||
&& ( character.items[i].level == level)
|
||||
) {
|
||||
slots[i] = character.items[i]
|
||||
};
|
||||
}
|
||||
if ( debug ) console.log ( "locate_all_item_by_level(): ", slots )
|
||||
return slots
|
||||
}
|
||||
|
||||
async function do_upgrade(item, level = 5, min_change = 0.5) {
|
||||
if ( ! G.items[item].upgrade ) { return; }
|
||||
for (let lv = 0; lv < level; lv++) {
|
||||
var slots = locate_all_item_by_level(item, lv)
|
||||
for ( let index in slots ) {
|
||||
var upgrade_scroll = "scroll0"
|
||||
if ( lv >= 5 ) {
|
||||
upgrade_scroll = "scroll1"
|
||||
}
|
||||
|
||||
if ( locate_item(upgrade_scroll) == -1 ) {
|
||||
await buy(upgrade_scroll)
|
||||
}
|
||||
var preview = await upgrade( index, locate_item(upgrade_scroll), null, true )
|
||||
if ( preview.chance >= min_change ) {
|
||||
await upgrade( index, locate_item(upgrade_scroll)).then(function(data){
|
||||
if(data.success) game_log("I have a +"+data.level+" "+item+" now!");
|
||||
else game_log("Rip " + item);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function do_combine(item, level = 5, min_change = 0.5) {
|
||||
if ( ! G.items[item].compound ) { return; }
|
||||
for (let lv = 0; lv < level; lv++) {
|
||||
var slots = locate_all_item_by_level(item, lv)
|
||||
const keys = Object.keys(slots).map(Number);
|
||||
if ( keys.length <= 3 ) { continue; }
|
||||
for ( let i = 0; i + 2 < keys.length; i += 3) {
|
||||
var upgrade_scroll = "cscroll0"
|
||||
if ( lv >= 5 ) {
|
||||
upgrade_scroll = "cscroll1"
|
||||
}
|
||||
|
||||
if ( locate_item(upgrade_scroll) == -1 ) {
|
||||
await buy(upgrade_scroll)
|
||||
}
|
||||
var preview = await compound( keys[i], keys[i+1], keys[i+2], locate_item(upgrade_scroll), null, true )
|
||||
if ( preview.chance >= min_change ) {
|
||||
await compound(
|
||||
keys[i], keys[i+1], keys[i+2], locate_item(upgrade_scroll)
|
||||
).then(function(data){
|
||||
if(data.success) game_log("I have a +"+data.level+" "+item+" now!");
|
||||
else game_log("Rip " + item);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
function find_npc_by_name(npc) {
|
||||
for (const [key, value] of Object.entries( G.npcs )) {
|
||||
if ( value.name == npc) {
|
||||
return find_npc(key)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
class ToggleLoop {
|
||||
constructor({ id, label, fn, interval, top=true, onColor = "#00AA00", offColor = "#AA0000" }) {
|
||||
this.id = id;
|
||||
this.label = label;
|
||||
this.fn = fn;
|
||||
this.interval = interval;
|
||||
this.onColor = onColor;
|
||||
this.offColor = offColor;
|
||||
this.loopId = null;
|
||||
|
||||
this.render();
|
||||
var btn_fn = add_bottom_button
|
||||
if ( top ) { btn_fn = add_top_button }
|
||||
btn_fn(this.id, `${this.label}: AUS`, () => this.toggle());
|
||||
}
|
||||
|
||||
get running() {
|
||||
return this.loopId !== null;
|
||||
}
|
||||
|
||||
start() {
|
||||
if (this.running) return;
|
||||
this.loopId = setInterval(this.fn, this.interval);
|
||||
this.render();
|
||||
}
|
||||
|
||||
stop() {
|
||||
if (!this.running) return;
|
||||
clearInterval(this.loopId);
|
||||
this.loopId = null;
|
||||
this.render();
|
||||
}
|
||||
|
||||
toggle() {
|
||||
this.running ? this.stop() : this.start();
|
||||
}
|
||||
|
||||
render() {
|
||||
try {
|
||||
set_button_value(this.id, `${this.label}: ${this.running ? "AN" : "AUS"}`);
|
||||
set_button_color(this.id, this.running ? this.onColor : this.offColor);
|
||||
} catch (e) {}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user