No one has a working Glad,Bard or Cleric Script :/ ?
I'am working since Day's on it go get it done... but it's to hard to get a Perfect Script that works for Trash/Bosses.. The Best script aviable is only for Assassin. But i need for Gladi,Bard or a working Cleric Script
Gladiator OGF Drive for EU
fast 0 brain gladi script. good for follow and dps wifhout breaks
Code:
--[[
--------------------------------------------------
Copyright (C) 2014 VaanC
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
--------------------------------------------------
]]--
-- This is the class chain information list. It is NOT a priority list, this is merely to help the class know when it has
-- started a chain so it knows to only use skills from that chain until the target dies OR until the chain times out.
local m_chain_info =
{
["Weakening Severe Blow"] = { "Weakening Severe Blow", "Energy Impact" },
["Ferocious Strike"] = { "Ferocious Strike", "Robust Blow", "Wrathful Strike" },
["Ferocious Strike"] = { "Ferocious Strike", "Robust Blow", "Rupture", "Reckless Strike" },
["Sure Strike"] = { "Sure Strike", "Energy Impact" },
["Weakening Blow"] = { "Severe Weakening Blow", "Energy Impact" },
["Severe Precision Cut"] = { "Severe Precision Cut", "Energy Impact" },
["Fury Absorption"] = { "Fury Absorption", "Pressure Wave", "Seismic Billow" },
["Fury Absorption"] = { "Fury Absorption", "Absorption Wave", "Seismic Billow" },
["Cleave"] = { "Cleave", "Force Cleave" },
["Cleave"] = { "Cleave", "Great Cleave", "Righteous Cleave" },
["Body Smash"] = { "Reapeated Body Smash", "Reapeated Body Smash", "Body Blow" },
["Exhausting Wave"] = { "Exhausting Wave","Exhausting Wave", "Revival Wave" },
["Remove Shock"] = { "Remove Shock", "Wrathful Explosion" }
};
-- Buffs you want to apply before starting an attack or while traveling.
local m_pre_attack_buffs =
{
--{ skill_name = "Armor of Attrition", conditions = { { condition_type = "Buff_Not_Active" } } },
};
-- Buffs or self-skills you want to use in the middle of battle
local m_attack_buffs =
{
{ skill_name = "Armour of Attrition", conditions = { { condition_type = "Buff_Not_Active" } } },
{ skill_name = "Shadow Rage", conditions = { { condition_type = "Buff_Not_Active" } } },
{ skill_name = "Daevic Fury", conditions = { { condition_type = "Buff_Not_Active" }, { condition_type = "Player_DP", compare = ">=", compare_value = "2000" } } }
};
-- Skills you want to use to START an attack. I do not recommend chain skills here since there is too long of a delay in AS between attacks at this point for some reason and they tend to time-out
local m_pull_skills =
{
{ skill_name = "Taunt", conditions = { { condition_type = "arg_range", compare = ">=", compare_value = "10" } } },
{ skill_name = "Cleave", conditions = { { condition_type = "arg_range", compare = ">=", compare_value = "10" } } },
{ skill_name = "Attack/Chat" }
};
-- Conditional skills are priority skills which rely on special conditions that usually need to be responded to no matter what (like Remove Shock...if its available you probably need it NOW :) )
local m_conditional_skills =
{
{ skill_name = "Remove Shock", break_chain = true },
{ skill_name = "Improved Stamina", conditions = { { condition_type = "Player_Health_Percent", compare = "<", compare_value = "80" } }, break_chain = true },
{ skill_name = "Second Wind", conditions = { { condition_type = "Player_Health_Percent", compare = "<", compare_value = "60" } }, break_chain = true },
{ skill_name = "Fury Absorption", conditions = { { condition_type = "Player_Health_Percent", compare = "<", compare_value = "90" }, { condition_type = "arg_range", compare = "<=", compare_value = "5" } }, break_chain = true }
};
-- You MUST list the skills from LAST in chain to first for them to fire properly (Aion reports earlier skills as off CD even if you've moved to next step in chain)
local m_chain_skills =
{
{ skill_name = "Energy Impact" },
{ skill_name = "Wrathful Strike" },
{ skill_name = "Reckless Strike" },
{ skill_name = "Rupture" },
{ skill_name = "Wrathful Strike" },
{ skill_name = "Robust Blow" },
{ skill_name = "Seismic Billow" },
{ skill_name = "Shock Wave" },
{ skill_name = "Righteous Cleave" },
{ skill_name = "Great Cleave" },
{ skill_name = "Force Cleave" },
{ skill_name = "Body Slice" },
{ skill_name = "Body Combo" },
{ skill_name = "Roiling Hack" },
{ skill_name = "Revival Wave" },
{ skill_name = "Draining Blow" },
{ skill_name = "Final Strike" },
{ skill_name = "Crippling Cut" },
{ skill_name = "Springing Slice" },
{ skill_name = "Crashing Blow" }
};
-- Skills to use during normal attack (not pull, not chain, just attacking)
local l_attack_skills =
{
{ skill_name = "Seething Explosion", conditions = { { condition_type = "Player_DP", compare = ">=", compare_value = "3000" } } },
{ skill_name = "Fury Absorption", conditions = { { condition_type = "Player_Health_Percent", compare = "<", compare_value = "90" }, { condition_type = "arg_range", compare = "<=", compare_value = "5" } } },
{ skill_name = "Cleave", conditions = { { condition_type = "arg_range", compare = ">=", compare_value = "10" } } },
{ skill_name = "Severe Blow" },
{ skill_name = "Ferocious Strike" },
{ skill_name = "Aerial Lockdown" },
{ skill_name = "Sure Strike" },
{ skill_name = "Weakening Blow" },
{ skill_name = "Severe Precision Cut" },
{ skill_name = "Fury Absorption", conditions = { { condition_type = "arg_range", compare = "<=", compare_value = "5" } } },
{ skill_name = "Body Smash" },
{ skill_name = "Exhausting Wave" },
{ skill_name = "Lockdown" },
{ skill_name = "Precision Cut" },
{ skill_name = "Force Blast" },
{ skill_name = "Attack/Chat" }
};
-- Flag telling us when we are mid-chain
local m_doing_chain_skills = false;
-- Time to add to "now" to wait for another chain skill to successfully fire before giving up
local m_chain_timeout_interval = 1500;
-- Literal time in milliseconds of time when we should give up on current chain of skills
local m_chain_timeout_time = 0;
-- Index into the list of skills for last chain skill used
local m_chain_index = -1;
-- Holds the list of chain skills
local m_current_chain = nil;
-- Skill name of start of current chain
local m_chain_start_skill = nil;
-- Current target for attack, used to know if we are mid-fight or starting a pull
local m_target = nil;
-- Reset all the chain related variables, used when we either killed a target or a chain timed out.
function _reset_chain_variables()
-- Flag telling us when we are mid-chain
m_doing_chain_skills = false;
-- Timeout to give up on a chain to avoid getting stuck
m_chain_timeout_time = 0;
-- Index into the list of skills for last chain skill used
m_chain_index = -1;
-- Holds the list of chain skills
m_current_chain = nil;
-- Skill name of start of current chain
m_chain_start_skill = nil;
return true;
end
-- Check to see if all the conditions specified for a skill have been met
function _check_conditions( arg_skill_info, arg_target, arg_range, arg_stunned )
-- Default result if there are no conditions is true...so all skills can be run through here and quickly result in true
local l_result = false;
local l_player_pos = Player:GetPosition();
local l_range = l_player_pos:DistanceToPosition( arg_target:GetPosition() );
local l_target_state = arg_target:GetState();
local l_attack_range = Player:GetAttackRange();
local l_player_state = Player:GetState();
local l_skill_name = arg_skill_info.skill_name;
local l_conditions = arg_skill_info.conditions;
local l_value_compare_types =
{
["arg_range"] = true,
["Player_Health_Percent"] = true,
["Player_Mana_Percent"] = true,
["Target_Health_Percent"] = true,
["Player_DP"] = true
};
-- If there are NO conditions to check then return true
if l_conditions == nil then
return true;
end
-- For each set of condition parameters
for key, l_condition in ipairs(l_conditions) do
local l_first_value = nil;
local l_second_value = nil;
local l_compare = nil;
local l_condition_type = l_condition.condition_type;
-- If the condition type was NOT set to something then write a warning message and return false (no condition is okay, but a condition with a nil type is not good)
if (l_condition_type == nil) then
--Write("Condition type was nil for skill '" .. l_skill_name .. "' so returning false, but this is a bug in your skills list.");
return false;
else -- If we got a condition type, then set up the comparison values (first and second) or do any special case tests
if l_condition_type == "arg_range" then
l_first_value = tonumber(l_range);
l_second_value = tonumber(l_condition.compare_value);
elseif l_condition_type == "Player_Health_Percent" then
l_first_value = tonumber(Player:GetHealth());
l_second_value = tonumber(l_condition.compare_value);
elseif l_condition_type == "Player_Mana_Percent" then
l_first_value = tonumber(Player:GetMana());
l_second_value = tonumber(l_condition.compare_value);
elseif l_condition_type == "Target_Health_Percent" then
l_first_value = tonumber(arg_target:GetHealth());
l_second_value = tonumber(l_condition.compare_value);
elseif l_condition_type == "Player_DP" then
l_first_value = tonumber(Player:GetDP());
l_second_value = tonumber(l_condition.compare_value);
elseif l_condition_type == "Target_Casting" then
if (arg_target:GetSkillID() ~= 0) and (SkillList[arg_target:GetSkillID()]:IsMagical()) and (arg_target:GetSkillTime() >= 500) then
l_result = true;
end
elseif l_condition_type == "Skill_On_Cooldown" then
if (l_condition.compare_value == nil) then
--Write("Comparison value (should be skill name) was nil for skill '" .. l_skill_name .. "' for skill on cooldown condition so returning false, but this is a bug in your skills list.");
return false;
else
-- The test condition is TRUE if the skill is NOT available, meaning it is on cool down.
l_result = not Helper:CheckAvailable(l_condition.compare_value);
end
elseif l_condition_type == "Buff_Not_Active" then
local l_target_state = arg_target:GetState();
l_result = (l_target_state:GetState( Helper:CheckName( l_skill_name )) == nil);
end
-- More efficient way to check if the condition type is one which requires numerically comparing values
if l_value_compare_types[l_condition_type] ~= nil then
l_compare = l_condition.compare;
-- Check to make sure we were given a comparison operator
if (l_compare == nil) then
--Write("Condition comparison operator was nil for skill '" .. l_skill_name .. "' so returning false, but this is a bug in your skills list.");
return false;
end
-- Check to make sure we were given a comparison value to compare the in game variable to
if l_second_value == nil then
Write(l_condition_type .. " condition for skill '" .. l_skill_name .. "' has nil comparison value so returning false, but this is a bug in your skills list.");
return false;
end
-- Now check which type of comparison operator to use and perform that comparison (first OPERATOR second)
if l_compare == ">" then
l_result = (l_first_value > l_second_value);
elseif l_compare == ">=" then
l_result = (l_first_value >= l_second_value);
elseif l_compare == "<" then
l_result = (l_first_value < l_second_value);
elseif l_compare == "<=" then
l_result = (l_first_value <= l_second_value);
elseif l_compare == "==" then
l_result = (l_first_value == l_second_value);
end
end
end
-- End the loop as soon as we fail any condition
if not l_result then
break;
end
end
return l_result;
end
-- Search through the list of skills until one is found which is both available and meets any conditions specified for it, then execute it.
function _do_skills(arg_skills, arg_target, arg_range, arg_stunned)
-- Loop through the given skill list checking if the skill is available and any conditions included test as true
for key, l_skill_info in ipairs(arg_skills) do
local l_skill_name = l_skill_info.skill_name;
if (l_skill_name ~= nil) then
local l_conditions_passed = self:_check_conditions( l_skill_info, arg_target, arg_range, arg_stunned );
if (l_conditions_passed) then
local l_available = Helper:CheckAvailable( l_skill_name );
if l_available then
-- Check if this is the start of a chain
if m_chain_info[l_skill_name] ~= nil then
m_doing_chain_skills = true;
m_chain_index = 1;
m_current_chain = m_chain_info[l_skill_name];
m_chain_start_skill = l_skill_name;
Helper:CheckExecute( l_skill_name, arg_target );
m_chain_timeout_time = Time() + m_chain_timeout_interval;
return false;
elseif m_doing_chain_skills then
local l_found_skill_in_chain = false;
for chain_index, chain_skill in ipairs(m_current_chain) do
if l_skill_name == chain_skill then
l_found_skill_in_chain = true;
if chain_index >= m_chain_index then
m_chain_index = chain_index;
Helper:CheckExecute( l_skill_name, arg_target );
m_chain_timeout_time = Time() + m_chain_timeout_interval;
return false;
end
end
end
-- If this skill isn't part of the chain AND the skill has the break_chain flag set to true, then we execute it.
if (not l_found_skill_in_chain) and (l_skill_info.break_chain == true) then
Helper:CheckExecute( l_skill_name, arg_target );
return false;
end
else
Helper:CheckExecute( l_skill_name, arg_target );
return false;
end
end
end
end
end
-- Indicate nothing done so other actions can potentially be taken this tick.
return true;
end
--- Perform the attack routine on the selected target.
--
-- [MENTION=1985011]param[/MENTION] Entity Contains the entity we have targeted.
-- [MENTION=1985011]param[/MENTION] double Contains the distance to the target
-- [MENTION=1985011]param[/MENTION] bool Indicates whether or not the target is stunned.
-- [MENTION=326673]return[/MENTION] bool
function Attack( arg_target, arg_range, arg_stunned )
--Food Checks / Scrolls;
if Settings.CritFood then
self:CheckCritFood();
end
if Settings.AttackFood then
self:CheckAttackFood();
end
if Settings.NaturalHeal then
self:CheckNaturalHeal();
end
if Settings.AttackScroll then
self:CheckAttackScroll();
end
if Settings.RunScroll then
self:CheckRunScroll();
end
if arg_target:IsDead() then
self.m_target = nil
end
-- If we haven't started attacking this entity yet...do pre-attack buffs, then attack buffs, then the actual pull
if (self.m_target ~= arg_target:GetID()) and (not arg_target:IsDead()) then
--Write ("Starting new pull.");
-- If starting a new pull then not doing a chain (even though sometimes Aion will let you finish a chain on a different mob...we will ignore that glitch)
self:_reset_chain_variables();
-- If we are doing a pre-attack buff, then return false to indicate nothing more can be done until next tick
if not self:_do_skills(m_pre_attack_buffs, Player) then
return false;
end
-- If we are doing a mid-attack buff (pre-attack only happens once, but during attack can happen pre-pull or mid attack), then return false to indicate nothing more can be done this tick.
if not self:_do_skills(m_attack_buffs, Player) then
return false;
end
-- If we actually manage to execute a pull attack, then return false to indicate nothing more can be done this tick.
if not self:_do_skills( m_pull_skills, arg_target, arg_range, arg_stunned ) then
self.m_target = arg_target:GetID();
return false;
end
-- Else we HAVE started attacking this entity already so do full attack routine
elseif (not arg_target:IsDead()) then
--Write ("Continuing after pull.");
-- If we're doing a chain and the chain has timed out (too long between chain skills) then reset to not doing a chain and move on.
if ( m_doing_chain_skills ) and ( Time() > m_chain_timeout_time ) then
--Write("Chain '" .. m_chain_start_skill .. "' timed out so resetting variables.");
self:_reset_chain_variables();
end
if ( m_doing_chain_skills ) then
-- Conditionals override everything...should be critical skills...
--Write("In middle of chain skill, checking conditional skills.");
if not self:_do_skills( m_conditional_skills, arg_target, arg_range, arg_stunned ) then
return false;
else
--Write("In middle of chain skill, checking chain skills.");
-- Check to see if we do any chain skills, and return false to indicate nothing more can be done until next tick.
if not self:_do_skills( m_chain_skills, arg_target, arg_range, arg_stunned ) then
return false;
end
end
else
-- Check to see if we do any conditional skills (entity stunned, player stunned, etc etc skills), and return false to indicate nothing more can be done until next tick.
if not self:_do_skills( m_conditional_skills, arg_target, arg_range, arg_stunned ) then
return false;
-- Check to see if we do any chain skills, and return false to indicate nothing more can be done until next tick.
elseif not self:_do_skills( m_chain_skills, arg_target, arg_range, arg_stunned ) then
return false;
-- Check if need to do any mid-attack buffs, and return false to indicate nothing more can be done until next tick if we perform a buff
elseif not self:_do_skills(m_attack_buffs, Player) then
return false;
-- Check to see if we do any normal attack skills, and return false to indicate nothing more can be done until next tick.
elseif not self:_do_skills( l_attack_skills, arg_target, arg_range, arg_stunned ) then
return false;
end
end
end
-- Indicate nothing done so other actions can potentially be taken this tick.
return true;
end
--- Perform the required pause checks.
--
-- [MENTION=326673]return[/MENTION] bool
function Pause()
if not self:_do_skills( m_pre_attack_buffs, Player ) then
return false;
end
-- Nothing was executed, continue with other functions.
return true;
end
-- Handle any tasks which should happen when the current target is killed
function TargetDied(arg_target)
m_target = nil;
-- Nothing was executed, continue with other functions.
return true;
end
---------------Bufovani-------------
function CheckCritFood()
stateID = {10224,10225,9976,9989,10051,10064};
foodName = {"Calydon Meat Dumpling","Wild Ginseng Pickle","Tasty Calydon Meat Dumpling","Tasty Wild Ginseng Pickle","Innesi Herb Dumpling","Poma Wine Herb Dumpling","Tasty Innesi Herb Dumpling","Tasty Poma Wine Herb Dumpling"};
flag = 0;
for _,v in ipairs(stateID) do
if Player:GetState():GetState( v ) ~= nil then
flag = flag + 1;
end
end
if flag == 0 then
for a,b in ipairs(foodName) do
if Helper:CheckAvailableInventory( b ) then
PlayerInput:Inventory( b );
break;
end
end
end
return true;
end
--------------------------------
function CheckAttackFood()
stateID = {10051,10064,10224,10225,9976,9989};
foodName = {"Minor Focus Agent","Lesser Focus Agent","Focus Agent","Greater Focus Agent","Major Focus Agent","Fine Focus Agent"};
flag = 0;
for _,v in ipairs(stateID) do
if Player:GetState():GetState( v ) ~= nil then
flag = flag + 1;
end
end
if flag == 0 then
for a,b in ipairs(foodName) do
if Helper:CheckAvailableInventory( b ) then
PlayerInput:Inventory( b );
break;
end
end
end
return true;
end
-----------------------------------
function CheckNaturalHeal()
stateID = {10044,10094};
foodName = {"Minor Rally Serum","Lesser Rally Serum","Rally Serum","Greater Rally Serum","Major Rally Serum","Fine Rally Serum","Tasty Ormea Cocktail"};
flag = 0;
for _,v in ipairs(stateID) do
if Player:GetState():GetState( v ) ~= nil then
flag = flag + 1;
end
end
if flag == 0 then
for a,b in ipairs(foodName) do
if Helper:CheckAvailableInventory( b ) then
PlayerInput:Inventory( b );
break;
end
end
end
return true;
end
-------------------------------------
function CheckAttackScroll()
stateID = {9959};
foodName = {"Greater Courage Scroll"};
flag = 0;
for _,v in ipairs(stateID) do
if Player:GetState():GetState( v ) ~= nil then
flag = flag + 1;
end
end
if flag == 0 then
for a,b in ipairs(foodName) do
if Helper:CheckAvailableInventory( b ) then
PlayerInput:Inventory( b );
break;
end
end
end
return true;
end
--------------------------
function CheckRunScroll()
stateID = {9960};
foodName = {"Greater Running Scroll"};
flag = 0;
for _,v in ipairs(stateID) do
if Player:GetState():GetState( v ) ~= nil then
flag = flag + 1;
end
end
if flag == 0 then
for a,b in ipairs(foodName) do
if Helper:CheckAvailableInventory( b ) then
PlayerInput:Inventory( b );
break;
end
end
end
return true;
end
Hi guys, just because developer of AionScript dont giving a **** about support of AS software for really long time (since 2013), I'll share my own support for everyone for free. I'll try to post new updates when I have free time. AionScript designed for x86 client only(32bit).
In this version we have support of latest RU, NA, EU and RU 5.0 PTS clients.
archive packed by 7zip before extraction, unblock the file if button is available in properties of archive
VT:
Enjoy your hacking!
UPD: 27.04.2016 for EU 4.9 part 2
just overwrite old file in your folder with a hack
Since I took a lot from this, I'll share my contribute. It is the Bard script for grinder, taken from Nusxxx file and modified for better performance. I assure you it never dies and Chilling Harmony chain is smoother
Since I took a lot from this, I'll share my contribute. It is the Bard script for grinder, taken from Nusxxx file and modified for better performance. I assure you it never dies and Chilling Harmony chain is smoother
What happened to aionscript ? 08/30/2013 - Aion - 2 Replies Took a summerbreak from aion and coming back the website is down?
Is aionscript no more ?
Aionscript 08/29/2013 - Aion - 4 Replies Why is Aionscript not working anymore and do they have a ETA on this fix?
AionScript 02/26/2013 - Aion - 2 Replies - Does it still works?
- What can a sorc do with it at the moment?
- Do ppl. get banned for using it or banned because of own stupidy
(: showing the hack when ppl. are near and so on).
Thanks
- Aion EU!
Aionscript and other Bots 01/18/2013 - Aion - 0 Replies Hey
Blastradius isnt supporting AS longer i think because he doesnt answer us... . Do u know another bots which can do solo bosses with no gravity and teleport hack ?
Fragen zu AionScript 04/24/2012 - Aion - 0 Replies Ich würde gerne einen Kleriker hinter meinem Ranger herlaufen lassen und diesen als Healbot zu benutzen. Allerdings funzt es nicht so wie es soll, besser gesagt der Kleri macht gar nichts.
Ich gehe folgendermassen vor:
Ich starte 2 mal das Spiel und logge mich ein
Ich starte Aion Script und wähle den Prozess mit meinem Kleri aus.
Dann wähle ich das OffizialGrinderFramework aus und klicke auf "on"
soweit so gut, aber wenn ich dann in gruppe bin und mein jäger schaden bekommt macht der...