Quasi ABS

View the Project on GitHub quasixi/Quasi-MV-ABS-Demo

Based off version: 0.98
Install the plugin
The plugin manager
Parameters
Skill Keys
Default Configuration
In Game Configuration
Via Classes
Via Weapons
Skill Configuration
Skill Settings
Skill Action Sequence
Skill On Damage
Enemy Configuration
Enemy Settings
Via Database
Via Events
Enemy AI
Default AI
Custom AI
States
Script Calls
Co-Working Plugin
Must Have
Quasi Movement
Optional
Quasi Pathfind
Quasi Sight
Quasi Movement Plus
Quasi Sprite
Recommended
Preload Manager
Orange HUD
Plugin Add-ons
Quasi ABS Gauges
Quasi ABS HUD A
Copyright/Usage/Credit/Notes
Links/Useful Stuff

Installing the plugin:

You can download the plugin here:
Github

The plugin manager:

First of all, we need to set up the plugin via the plugin manager. image002 Here are the parameters that you can change.

Quick Target:

Boolean. If set to true, ground targeting skills will automatically cast at mouse location.

Lock when Targeting:

Boolean. If set to true, the player won’t be able to move when ground/target selecting.

Attack Towards Mouse:

Boolean. If set to true, all the player’s actions will be made towards the mouse location.

Attack Moves Towards Mouse:

Boolean. If set to true, all move actions are set towards mouse location.

Loot Decay:

Integer. Number of frames before the loot disappears.

AoE Loot:

Boolean. If set to true, all the nearby loot will be collected at once on press. However, if set to false, each item will be picked up one by one.

Gold Icon:

Integer. Icon index used for gold loot. Set to 0 for no icon

Level Animation:

Integer. Animation index to play when the player gains a level. Set to 0 for no animation

Move Resistance Rate Stat:

Code. Defines the stat to use for the Move Resistance Rate

AI Default Sight Range:

Integer. Range of the circle of sight of monsters in pixels. Monsters will attack you only if you are in this range.

AI Use Quasi Sight:

Boolean. If set to true, will activate Quasi Sight features for the AI (http://quasixi.com/quasi-sight/). Only works if the plugin is installed.

AI Action Wait:

Integer. Number of frames to wait between each skill cast

AI Pathfind Chase:

Boolean. If set to true, will activate Quasi Pathfind features for the AI (http://quasixi.com/quasi-pathfind/). Only works if the plugin is installed.

Skill Keys

Skill Keys are the inputs used to cast a skill. They can be set to be deactivated, use a defined input, cast a default skill and if they can be reassigned in game.

Default Configuration:

The default configuration is set in the plugin manager. You can have up to 12 active skill keys. image004

Skill Key X:

X is an integer between 1 and 12. String. Leave empty to deactivate. Otherwise, set the input you want to use. By default, it uses Quasi Input (http://quasixi.com/quasi-input/), but you can use any key mapper you’d like, or even MV’s default input class.

Skill Key X Rebind:

X is an integer between 1 and 12. Boolean. If set to true, the key will be able to be reassigned later in game.

Skill Key X Skill:

X is an integer between 1 and 12. Integer. ID of the default skill that the key will cast. Leave empty to set in game.

In Game Configuration

Keys can be reassigned in game via classes or via weapons.

Via Classes:

When creating a new class, you can chose to change the skill keys using the note tag. You have to use the <skillKeys>. image006 The parameter is written like this:
[code][Skill Key ID]: [Skill ID] [Skill Rebind?][/code]
Skill Key ID being the ID of the skill from 1 to 12 in the plugin’s parameters
Skill ID being the ID of the Skill in the Skill tab of MV’s Database
Skill Rebind being a Boolean value (true or false) to set if the key can be reassigned later (using another class)
If <skillKeys> tag is used in a class it will override the parameters skill keys and use these values instead but you still need to set skill input key in the parameters. However, these will not overwrite skills you can’t reassign.

Via Weapons:

When creating a new weapon, you can chose to have skills that are added if you possess and equip the weapon. You have to use <absSkills> image008 The parameter is written like this:
[code][Skill Key ID]: [Skill ID][/code]
Skill Key ID being the ID of the skill from 1 to 12 in the plugin’s parameters
Skill ID being the ID of the Skill in the Skill tab of MV’s Database
If <absSkills> tag is used in a weapon, it will override the parameters skill keys and use these values instead but you still need to set skill input key in the parameters. It will also force overwrite skills that you shouldn’t be able to reassigned.

Skills Configuration:

Skills are the basis of this ABS. To configure them, you have to go through three steps.

Skill Settings

First of all, you have to input the skill settings by using <absSettings> in the skill’s note. image010 There are many settings you can set. Here is the list:
collider: shape, width, height
offset: integer
infront: boolean
rotate: boolean
cooldown: integer
through: integer
overwater: boolean
passabilityLevel: integer
groundtarget: integer
selecttarget: integer
If you chose not to write some of those settings, default values will be used. All distances are in pixels. Ground targeting and Select Targeting can’t be used at the same time.

Collider:

shape: box or circle
width: the width of the box or diameter Y of circle
height: the height of the box or diameter X of circle
Default: No collider

Offset:

Set to a distance to offset the collider. Default: 0

Infront:

Set to true or false. When true, the collider will appear infront of the user. When false, the collider will center with the user. Default: false

Rotate:

Set to true or false. When true, the collider will rotate based on user’s direction. When false, the collider will not rotate.

Cooldown:

Set to a number in frames until you can use the skill again. 60 frames is 1 second. Default: 0

Through:

Set to 0, 1, 2 or 3.
0 - goes through events and tiles
1 - goes through tiles, and stops when hits an event.
2 - goes through events, and stops when hits a tile.
3 - stops when hits an event or tile.
Default: 0

Overwater:

Set to true or false. When true, the skill can go over water tiles.

Passability Level:

Passability levels are a new feature which sets wither a character can walk over water or deep water tiles.
Set to 0, 1, 2 or 3.
0 – Default, Can only move on passable tiles
1 – Boat, Can only move on water 1 tiles
2 – Ship, Can only move on water 1 and water 2 tiles
3 – NEW, Can move on passable tiles and water 1 tiles
4 – NEW, Can move on passable tiles, water 1 and water 2 tiles
Default: 0

Groundtarget:

Set to the max distance for targeting. If value is 0, groundtargeting will not be used. Default: 0

Selecttarget:

Set to the max distance for targeting. If value is 0, selecttargeting will not be used. Default: 0

Skill Action Sequence:

When a skill is casted, an action sequence can be played. This is done by using <absSequence> tag in the skill’s note. image012 There are many actions you can use. Here is the list:
user casting [true OR false]
user lock
user unlock
user speed [inc OR dec] [amount]
user move [forward OR backward] [distance in pixels] [wait for completion? Default: false]
user jump [forward OR backward] [distance in pixels] [wait for completion? Default: false]
user jumphere [wait for completion? Default: false]
user slide [wait for completion? Default: false]
user teleport
user directionfix [true OR false]
user pose [poseName] [wait for completion? Default: false]
user forceskill [skillId] [angleOffset]
user animation [animationId]
trigger
store
clearstore
movetostored
move [forward OR backward] [distance in pixels] [duration] [wait for completion? Default: false]
wave [forward OR backward] [amplitude] [harmonics] [distance in pixels] [duration in frames] [wait for completion? Default: false]
picture [fileName] [rotatable? Default: false] [baseDirection]
trail [fileName] [rotatable? Default: false] [baseDirection]
collider [show OR hide]
animation [animationID]
wait [duration]
se [name] [volume] [pitch] [pan]
globallock
globalunlock

User:

These actions will act on the user.

user casting [true OR false]

When set to true the user will be marked as "casting". If he is hit with a skill that has "cancel" on damage, this skill will be canceled.

user lock

Prevent any movement of the player until unlock

user unlock

The player will be able to move again

user speed [inc OR dec] [amount]

Increase or decrease the player’s move speed by X amount

user move [forward OR backward] [distance] [wait for completion? Default: false]

Moves the player forward or backward by X pixels. If wait for completion is set to true, then the ABS will wait until the player has finished moving before going to the next step.

user jump [forward OR backward] [distance in pixels] [wait for completion? Default: false]

Makes the player jump forward or backward by X pixels, in Y frames. If wait for completion is set to true, then the ABS will wait until the player has finished moving before going to the next step.

user jumphere [wait for completion? Default: false]

Make the player jump to skill’s location. If wait for completion is set to true, then the ABS will wait until the player has finished moving before going to the next step.

user slide [wait for completion? Default: false]

Make the player slide to skill’s location. If wait for completion is set to true, then the ABS will wait until the player has finished moving before going to the next step.

user teleport

Make the player instantly teleport to skill’s location.

user directionfix [true OR false]

If set to true, it will lock the player’s direction to the current one. If set to false, it will unlock it.

user pose [poseName] [wait for completion? Default: false]

Make the player change its animation for a set pose. Needs Quasi Sprite to work.

user forceskill [skillId]

Forces the player to cast a skill, even if he didn’t learn it.

user animation [animationId] [angleOffset]

Plays an animation at the users location.

Skill/collider:

These actions will act on the skill/collider.

trigger

This will trigger the skill. This is necessary for the skill to set damage, to have its animation showed, and to be used at all.

store

This will store the current colliders position. To be used with movetostored

clearstore

This will clear the stored colliders position. To be used with movetostored

movetostore

This will move the collider to the stored position.

move [forward OR backward] [distance in pixels] [duration] [wait for completion? Default: false]

Moves the skill forward or backward by X pixels for Y number of frames. If wait for completion is set to true, then the ABS will wait until the player has finished moving before going to the next step.

wave [forward OR backward] [amplitude] [harmonics] [distance in pixels] [duration in frames] [wait for completion? Default: false]

Moves the skill forward or backward in a wave pattern, using the amplitude and harmonics parameters, for X pixels, in Y frames. If wait for completion is set to true, then the ABS will wait until the player has finished moving before going to the next step.

picture [fileName] [rotatable? Default: false] [baseDirection]

Set the skill to be represented by a picture (e.g. for an arrow). Set the file name to the name of the picture without the extension. If rotatable is set to true, then the picture will rotate depending on the player’s angle. Set base direction to where the picture is facing by default. 2 means facing down, 4 means facing left, 6 means facing right and 8 means facing up. You can set the picture to have an animation. For that, make your animation on a single line, going from left to right. Then in the filename, add #[numberOfFrames-WaitTimeBetweenFrames].
Let’s take an example:
image013 In this case, if I want it to wait 15 frames between each animation frame the picture would be named whatever#[3-15]. image015

trail [fileName] [rotatable? Default: false] [baseDirection]

Set the skill to have a trail (e.g. for a grappling hook). Set the file name to the name of the picture without the extension. If rotatable is set to true, then the picture will rotate depending on the skill’s angle. Set base direction to where the picture is facing by default. 2 means facing down, 4 means facing left, 6 means facing right and 8 means facing up.

collider [show OR hide]

Set to show or hide the skill’s collider. This also shows the ground targeting and select targeting zones.

animation [animationID]

Play animation number [animationID] at skill’s location.

Other:

wait [duration]

Waits for [duration] frames before going to the next step

se [name] [volume] [pitch] [pan]

Plays a sound effect by [name] and set its [volume], [pitch] and [pan]

globallock

Locks every movement. Events and player. Only works if Quasi Movement Plus is installed

globalunlock

Unlocks every movement. Events and player. Only works if Quasi Movement Plus is installed

Skills On Damage

When a skill hits an enemy, some actions can be set to run. This is done by using <absOnDamage> tag in the skill’s note. image017 There are a few actions you can use. Here is the list:
target move [towards OR away] [distance in pixels]
target jump [towards OR away] [distance in pixels]
target pose [poseName]
target cancel
user forceskill [skillId] [angleOffset]
animationTarget [target]

target move [towards OR away] [distance in pixels]

Moves the target forward or backward by X pixels.

target jump [towards OR away] [distance in pixels]

Makes the target jump forward or backward by X pixels

target pose [poseName]

Makes the target take a set pose. Need Quasi Sprite to work

target cancel

Cancels target’s current skill.

user forceskill [skillId] [angleOffset]

Forces the player to cast a skill, even if he didn’t learn it.

animationTarget [0 OR 1]

Set to 0 to play animation at collider location. Set to 1 to play at targets location. Default: 0

Enemies Configuration:

Enemies are the main goal of an ABS. So they need to be created using a proper technique.

Enemy Settings:

First of all, you have to set up the enemy. To make this work, you must go through two steps:

Via Database:

First of all, you must create the enemy in the database. You should set its stats, its skills, its effects, and so on. image019 then you set up the enemy’s ABS settings in the Notes. image020 There are a few note tags you can use. Here is the list:
<noAI>
<noPopup>
<noHpBar>
<range>
<team>
<respawn:X>
<ondeath>
javascriptcode
</ondeath>
<dontErase>

<noAI>

Deactivates the default AI for this enemy. Useful, if you want to make a custom AI or a passive enemy.

<noPopup>

Deactivates numbers popup when this enemy gets hit.

<noHpBar>

Deactivates the HP Gauge for this enemy. Only matters if the add-on Quasi ABS Gauges is activated.

<range:X>

Change the AI range for this enemy. Default: value from Plugin Parameter "AI Default Sight Range"

<team:X>

Change the team this enemy is on. 0 - Neutral, 1 - Player, 2+ - Enemy. Default: 2

<respawn: X>

Time in frames to wait before the enemy is recreated. By default, it does not respawn (if note tag is not used).

<onDeath></onDeath>

Runs some Javascript code when this enemy dies. You can write whatever code you want, as long as it is correct.

<dontErase>

The event won't be erased when the enemy is killed. Can be used together with onDeath for some nice effects.

Via Events:

The enemies are set into the database. Now we need to have this enemy appear in game. Simply create an event and add <enemy:X>l; in the note box image022 After that, you can do whatever you want using that event. The only thing to remember is that the event gets deleted on enemy death.

Enemy AI:

The enemies should be a tiny bit intelligent. And thus, knowing how to use their skills, and how to attack is crucial. Remember to set the enemy’s skills in his page in the database.

Default AI:

The default AI comes built in with Quasi ABS. It basically runs through all possible actions for the enemy and automatically chooses what the best action to do is. It also manages the enemy’s movements.
To activate this, simply put the enemy’s skills in the database, and do not put the <noAI> in the notes, and everything should be fine. This AI should be just fine for any random mob you can encounter.

Custom AI:

Creating a custom AI is indeed possible. For this, you should add the <noAI> note tag in his page of the database.
The custom AI is going to be managed via eventing. You can event mostly whatever you want to event.
image024 Custom AIs are basically just events in which you can use some plugin commands related to Quasi’s plugins.
Here is a short list of a few you can use:
qabs [event OR player OR eventID] usebestskill
qabs [event OR player OR eventID] useskill SKILLID
qabs [event OR player OR eventID] forceskill SKILLID
qabs [event OR player OR eventID] disable

qabs [event OR player OR eventID] usebestskill

This will return the best skill that the user can use, or false if no skill will hit.

qabs [event OR player OR eventID] useskill SKILLID

This will make that event use that skill. This will only work if the event is an enemy, and if the enemy has that skill learned.

qabs [event OR player OR eventID] forceskill SKILLID

This will make that event use that skill. This will only work if the event is an enemy, no matter if the enemy has the skill learned or not.

qabs [event OR eventID] disable

This will disable the event's enemy until enabled again.

States:

Quasi ABS also offers a few options on states. image026 Here is the list of the few you can use:
<stun>
<moveSpeed:x>

stun:

If a character has a state with this tag, he won't be able to use any skills until the state is removed.

moveSpeed:

If a character has a state with this tag, it will change the character move speed by X value, can be negative (it’s using MV’s default speeds; 1=8x slower, 4=Normal, 6=4xFaster)

Script Calls:

There are a few script calls that can be used, but most are recommended for experience users only. So I will only list the script calls that are helpful and easy to use.

Enable ABS

You can turn on the ABS by using the following script call:
QuasiABS.enable();

Disable ABS

You can turn off the ABS by using the following script call:
QuasiABS.disable();

Co-working Plugins:

Must Have:

Quasi Movement:

That is the only plugin Quasi ABS really depends on. As that plugin manages every movement that are later used in the ABS, it’s logical that it must be installed. Also, don’t forget to put it on top of every other Quasi plugins that need it to work.
More information here: http://quasixi.com/quasi-movement/

Optional:

Quasi Pathfind:

This enables you to use the pathfinding for enemy movements
More information here: http://quasixi.com/quasi-pathfind/

Quasi Sight:

This enables you to have advanced sight with shadow casting for enemies
More information here: http://quasixi.com/quasi-sight/

Quasi Movement Plus:

This enables you to have globallock and globalunlock actions working.
More information here: http://quasixi.com/quasi-movement/

Quasi Sprite:

This enables you to use poses for your sprites.
More information here: http://quasixi.com/quasi-sprite/

Recommended:

Preload Manager:

This plugin permits you to preload part of the game files on launch, so it avoids having lag, and thus removes the annoying default MV loading screen.
More information here: http://forums.rpgmakerweb.com/index.php?/topic/46515-preload-manager/

Orange HUD:

This plugin lets you fully create a HUD for your game. It has a lot of add-ons and a lot of features.
More information here: http://forums.rpgmakerweb.com/index.php?/topic/47186-orange-hud/

Plugin Add-ons:

Quasi ABS Gauges:

This adds gauges for enemies.
image028

Quasi ABS HUD A:

This adds a MMORPG style hotbar for skills.
image030

Copyright/Usage/Credit/Notes:

Please visit https://github.com/quasixi/Quasi-MV-ABS-Demo/blob/master/README.md for any up-to-date copyright/usage/credit stuff.

Links/Useful Stuff:

Github: https://github.com/quasixi/
Rpg Maker Website: http://www.rpgmakerweb.com/
Rpg Maker Web Forums: http://forums.rpgmakerweb.com/