Dividing and Transforming Monsters Version: 1.0
By: Orochii Zouveleki / L'ark Mitsinikos (both myself, but are my usernames on different forums)
- Using Queex Tagnotes' Module -
Introduction
Maybe a Final Fantasy fan that has played the NES/DS FF3 knows about dividing monsters. So that's it. If you don't know what is it, well, is self-explanatory :P. When the monster is attacked, it will divide. If the weapon has a determined element, that monster not divides. (And later on) If an spell has *element* on it, the monster will divide.
Everything using tags... as I prefer to edit in the database rather than scripting, at least is more comfortable for me :3.
The side-effect (feature number Two!!) is transforming, it WILL work similar to dividing, if *element* is/isn't on the weapon's element pool, blablablah. But for now, it just works as spell (mimicking the RM2k3 style) or as monster property (doing it more reliable I think).
Features
Screenshots
Since an screenshot has no purpose for this (one slime => two slimes ¬¬), I'm refraining from putting this "section". Hope'ing it doesn't make angry someone...
Demo
English releases
DEMO and script txt
DEMO only
Spanish Releases - Huh... well, as this exists, i will leave it here.
DEMO and script txt
DEMO only
AN IMPORTANT NOTE: DEMO and demo with txts include the Queex Tagnotes module script, so if you don't have it, well you can get it there. BUT remember to make a little effort to look some original post of it, if you can, as a token of appreciation for his work
.
Script
Instructions
Nº1-Put script above Main (see non-printed-nor-released documentation, figure 1),
-BUT remember to include the Queex's Tagnotes above this script.
-That's it, now use tags on notefields and stuff and you're ready to be rumble'd!
(not really, at least if your game is well-balanced in terms of monsterVSheroes stats ;D).
FAQ
If there are suggestions, post them :3. If answers are what you're searching, post your question and I will gladly :') respond them ;D.
Compatibility
Not fully compatible (sadly) with Tanketai (transformations doesn't work on it, as the enemy graphic doesn't changes). I will try try try! to fix it, as compatibility blablablah.
If not compatible with other battle system,I will commit suicide let me know it please
.
Credits and Thanks
Thanks/credits/creditcard (that last is not to be there) to Queex for his Tagnotes, as it is the... heh, core of this system. That saved me time investigating how to do it
, and also made me more optimistic, as is easier to code with some help :3.
Also I give my thanks to TywinLannister, as I (hopefully) said, this script, apart from my lil', comfortable and very appreciated NES FF3, was inspired by seeing his BOF3-mimicking scripts.
Author's Notes
This will be updated, so stay sync ;D... well you can get some sleep and eat, but not more than that!
And... uhhh, well, that's all.
AN IMPORTANT NOTE: DEMO and demo with txts include the Queex Tagnotes module script, so if you don't have it, well you can get it there. BUT remember to make a little effort to look some original post of it, if you can, as a token of appreciation for his work
.
Other important note: If you see that english is not well used, excuse me, my native is spanish (I'm not Spanish, I talk it). Also, if something hasstupidly sadly not been translated, sorry, I forgot. If you point me, I will translate it if it makes you happier xD (talking about MY script, don't send me spanish text for your homework xDDD, also a joke ;D).
Terms and Conditions
This script is meant to be used below Creative Commons Attribution-ShareAlike 3.0 Unported License
But anyhow, you can still use it without putting me on a great pedestal and making some sacrifices (TRANSLATION: make a little credit scene with my name and host of others), as you say me a little thanks I will be pleased
. Even if I'm dead xD... anyway.
Hope that you don't dislike it (my personal cliché, don't ask),
Orochii Zouveleki
By: Orochii Zouveleki / L'ark Mitsinikos (both myself, but are my usernames on different forums)
- Using Queex Tagnotes' Module -
Introduction
Maybe a Final Fantasy fan that has played the NES/DS FF3 knows about dividing monsters. So that's it. If you don't know what is it, well, is self-explanatory :P. When the monster is attacked, it will divide. If the weapon has a determined element, that monster not divides. (And later on) If an spell has *element* on it, the monster will divide.
Everything using tags... as I prefer to edit in the database rather than scripting, at least is more comfortable for me :3.
The side-effect (feature number Two!!) is transforming, it WILL work similar to dividing, if *element* is/isn't on the weapon's element pool, blablablah. But for now, it just works as spell (mimicking the RM2k3 style) or as monster property (doing it more reliable I think).
Features
- Inclusion of tag-based monster properties: dividing and transforming.
- Transforming includes spell/property functionalities.
- Dividing includes "Don't restore HP" (copies actual HP value from original) and "Element ID" properties.
- The "Reverse Divide", meaning that instead of the element nullifying division, it will cause it on the monster.
- "Ultradivide" property, it simply does that the monster, even if collapsing, will divide itself before. NOT compatible with "Don't restore HP", since it would make 0HP monsters (simple to repair, but maybe later, as the non-compatibility with reverse-divide haves my attention by now, and now I said it :P).
Screenshots
Since an screenshot has no purpose for this (one slime => two slimes ¬¬), I'm refraining from putting this "section". Hope'ing it doesn't make angry someone...
Demo
English releases
DEMO and script txt
DEMO only
Spanish Releases - Huh... well, as this exists, i will leave it here.
DEMO and script txt
DEMO only
AN IMPORTANT NOTE: DEMO and demo with txts include the Queex Tagnotes module script, so if you don't have it, well you can get it there. BUT remember to make a little effort to look some original post of it, if you can, as a token of appreciation for his work
Script
Code:
#==============================================================
#FF3-styled Enemies' Division and Transformation
#Orochii Zouveleki, as the scripter
#
#Special thanks to Queex's Tagnotes, and TywinLannister because his
#BOF_EnemySkills were my... well they made me wonder about this and that
#and stuff. No more commentaries haha... anyway.
#
#Part of Orochii's own testing, dont sell or rent it,
#idea inspired (or copied?) from FF3's dividing monsters,
#from NES (or DS, but it doesn't have the oldie magic :3).
#==============================================================
#¿WTHIT? (WTH's this)
#==============================================================
#Simply consists on including a tag on database notes that makes the monster duplicate itself
#when attacked or when some spells are used on it. Or vice-versa, it will not duplicate if
#not attacked with specific weapons or when used determined spells.
#*When the monster divides, it will *create* a duplicate of itself, same stats, same HP
#(if hp property isn't present, it will instead use maxHP).
#Later on, the divided monsters will have possibility to use percentages of stats (HP included)
#but for now, it is at is it.
#And also will be the summoning, so don't worry, that's in my mind :3.
#
#Out of spamming, you can play (if comprehension==null) some hours FF3 and fight against Hazazel/Chronos
#monsters, as they are the hated and goddamned dividing monsters! (and a host of others). And I HATE Them.
#The other functionality is transforming, later I will add the element stuff.
#==============================================================
#USING METHOD
#==============================================================
#The script works by tag inclusions in the database note fields (spell and monster).
#Mainly, the tags are: <divide>, <reverse_divide>, <ultradivide> and <transform>, that
#will be explained shortly.
#Also there's a little default configuration (search "module OROCHII_MONSTERS", without quotes).
#The config fields are a little self explanatory, if not, there's a little description above them.
#=========== DIVIDIN' MONSTERS ===========#
#--<divide>
#When used in the notefield, the monster will be divided. The "extra properties" are explained below.
#-<divide hp>
#When <divide hp>, the monster will copy the original monster's HP (not monster's original HP ;P).
#-<divide hp ID>
#As the tagnotes module has some... limitations (less complicated for me, not THAT complicated for you),
#you must include hp tag (if hp tag isn't "hp", it will "ignore it" ;D, sou dun wuh-rie).
#The id "property" specifies the element ID that will use for exception (dividing nullificator).
#-<reverse_divide>
#When used (along with <divide> tag), it will cause a reverse-functionality on the divide property. Instead of
#ID being exception for dividing, it will be the exception for not dividing (hope it doesn't sound weird).
#<ultradivide>
#Used along with <divide> tag. Not compatible with <reverse_divide> (nor "hp" property) by now (some "if" nonsense, that's the error
¬¬, I will fix it later :P, as code itself is... uhh).
#Ultradivide removes the death restriction, as the monsters normally will not divide when dying.
#=========== TRANSFORMIN' MONSTERS ===========#
#-<transform ID>
#When included in the enemy's notefield, the monster will divide when attacked.
#When included instead in skill's notefield, it will act as transforming spell. It doesn't
#works with heroes/allies, as it's not implemented by now (MAYBE later), and also the
#hero can transform enemies, but by now there's no restriction (later it will be by element
or state).
#Transformation works in maker itself (without this script), but I wanted to add some
#little and easy-to-use functionalities. Hope that doesn't make things boring... hahaha.
#==============================================================
#Install Notes - The real part is here >:D - Joking... of course:
#==============================================================
# Nº1-Put script above Main (see non-printed-nor-released documentation, figure 1),
# -BUT remember to include the Queex's Tagnotes above this script.
# -That's it, now use tags on notefields and stuff and you're ready to be rumble'd!
#(not really, at least if your game is well-balanced in terms of monsterVSheroes stats ;D).
#==============================================================
#----------------------------------------------------------------------------------------------------------------------------
#Espero que les agrade ;D. (Hope you don't dislike it, I'm more pesimistic today xD).
#
# C'EST FINIS!
#==============================================================
module OROCHII_MONSTERS
#Element used as exception for dividing (used as default value).
DIVIDE_ELEMENT = 2
#Minimum HP percentage for monster to divide.
MIN_HP = 10
#Maximum of enemies (Use 8 if you haven't done something with the battlestatus window :P,
#I will not make anything with this as compatibility is my name). LATER will be the MAX_ACTIVE_ENEMIES,
#self explanatory right?
MAX_ENEMIES = 24 #<-You can use any number, but...
#Distance unity, for randomized position calculation.
DISTANCE_UNITY = 16
#Maximum random X value. Remember: It will be multiplied by DISTANCE_UNITY!
RANDOM_X = 20
#Maximum random Y value. Remember: It will be multiplied by DISTANCE_UNITY!
RANDOM_Y = 5
end
class Spriteset_Battle
def enemy_sprites
return @enemy_sprites
end
def viewport1
return @viewport1
end
end
class Scene_Battle
def add_battler(enemy)
@spriteset.enemy_sprites.push(Sprite_Battler.new(@spriteset.viewport1, enemy))
end
end
class Game_Battler
include OROCHII_MONSTERS
if not include?(TAGNOTE)
include TAGNOTE
end
#--------------------------------------------------------------------------
# alias listings
#--------------------------------------------------------------------------
alias zorochii_make_obj_damage_value make_obj_damage_value
alias zorochii_make_attack_damage_value make_attack_damage_value
#--------------------------------------------------------------------------
# * Calculation of Damage Caused by Skills or Items
#--------------------------------------------------------------------------
def make_obj_damage_value(user, obj)
zorochii_make_obj_damage_value(user, obj)
if self.is_a?(Game_Enemy)
make_transformation(0,obj.id)
item_note=$data_enemies[self.enemy_id].note
if has_tag?(item_note,"divide")
if obj.element_set.include?(OROCHII_MONSTERS::DIVIDE_ELEMENT)
divide_monster
end
end
end
end
#--------------------------------------------------------------------------
# * Calculation of Damage From Normal Attack
#--------------------------------------------------------------------------
def make_attack_damage_value(attacker)
zorochii_make_attack_damage_value(attacker)
if self.is_a?(Game_Enemy)
make_transformation(1)
item_note=$data_enemies[self.enemy_id].note
if has_tag?(item_note,"reverse_divide")
if has_tag?(item_note,"divide")
if get_additional_tag(item_note,"divide",2) != nil
if attacker.element_set.include?(get_additional_tag(item_note,"divide",1))
divide_monster if self.hp > @hp_damage or has_tag?(item_note,"ultradivide")
end
else
if attacker.element_set.include?(OROCHII_MONSTERS::DIVIDE_ELEMENT)
divide_monster if self.hp > @hp_damage or has_tag?(item_note,"ultradivide")
end
end
end
else
if has_tag?(item_note,"divide")
if get_additional_tag(item_note,"divide",2) != nil
if not attacker.element_set.include?(get_additional_tag(item_note,"divide",1))
divide_monster if self.hp > @hp_damage or has_tag?(item_note,"ultradivide")
end
else
if not attacker.element_set.include?(OROCHII_MONSTERS::DIVIDE_ELEMENT)
divide_monster if self.hp > @hp_damage or has_tag?(item_note,"ultradivide")
end
end
end
end
end
end
def make_transformation(type,id=0)
if type == 0
item_note=$data_skills[id].note
elsif type == 1
item_note=$data_enemies[self.enemy_id].note
end
enemy = $game_troop.members[self.index]
if enemy != nil and has_tag?(item_note,"transform")
enemy.transform(get_tag(item_note,"transform").to_i)
$game_troop.make_unique_names
end
end
def divide_monster
if $game_troop.members.size < OROCHII_MONSTERS::MAX_ENEMIES
hp_perc = 100*self.hp / self.maxhp
if hp_perc >= OROCHII_MONSTERS::MIN_HP
enemy = Game_Enemy.new($game_troop.members.size, self.enemy_id)
item_note=$data_enemies[self.enemy_id].note
if has_tag_value?(item_note,"divide","hp") and not has_tag?(item_note,"ultradivide")
enemy.hp=self.hp - @hp_damage
elsif has_tag_value?(item_note,"divide","hp") and has_tag?(item_note,"ultradivide")
if self.hp > @hp_damage
enemy.hp=self.hp - @hp_damage
else
enemy.hp=1
end
end
enemy.hidden = self.hidden
enemy.immortal = self.immortal
dunit = OROCHII_MONSTERS::DISTANCE_UNITY
ran_x = OROCHII_MONSTERS::RANDOM_X
ran_y = OROCHII_MONSTERS::RANDOM_Y
enemy.screen_x = self.screen_x + (rand(ran_x)*dunit) - (rand(ran_x)*dunit)
if enemy.screen_x < 0
enemy.screen_x +=ran_x*dunit
elsif enemy.screen_x > 544
enemy.screen_x -=ran_x*dunit
end
enemy.screen_y = self.screen_y + (rand(ran_y)*dunit) - (rand(ran_y)*dunit)
if enemy.screen_y < 0
enemy.screen_x +=ran_y*dunit
elsif enemy.screen_y > 416
enemy.screen_x -=ran_y*dunit
end
enemy.screen_z
$game_troop.members.push(enemy)
$game_troop.make_unique_names
$scene.add_battler(enemy)
$game_troop.update
end
end
end
end
Instructions
Nº1-Put script above Main (see non-printed-nor-released documentation, figure 1),
-BUT remember to include the Queex's Tagnotes above this script.
-That's it, now use tags on notefields and stuff and you're ready to be rumble'd!
(not really, at least if your game is well-balanced in terms of monsterVSheroes stats ;D).
FAQ
If there are suggestions, post them :3. If answers are what you're searching, post your question and I will gladly :') respond them ;D.
Compatibility
Not fully compatible (sadly) with Tanketai (transformations doesn't work on it, as the enemy graphic doesn't changes). I will try try try! to fix it, as compatibility blablablah.
If not compatible with other battle system,
Credits and Thanks
Thanks/credits/creditcard (that last is not to be there) to Queex for his Tagnotes, as it is the... heh, core of this system. That saved me time investigating how to do it
Also I give my thanks to TywinLannister, as I (hopefully) said, this script, apart from my lil', comfortable and very appreciated NES FF3, was inspired by seeing his BOF3-mimicking scripts.
Author's Notes
This will be updated, so stay sync ;D... well you can get some sleep and eat, but not more than that!
And... uhhh, well, that's all.
AN IMPORTANT NOTE: DEMO and demo with txts include the Queex Tagnotes module script, so if you don't have it, well you can get it there. BUT remember to make a little effort to look some original post of it, if you can, as a token of appreciation for his work
Other important note: If you see that english is not well used, excuse me, my native is spanish (I'm not Spanish, I talk it). Also, if something has
Terms and Conditions
This script is meant to be used below Creative Commons Attribution-ShareAlike 3.0 Unported License

But anyhow, you can still use it without putting me on a great pedestal and making some sacrifices (TRANSLATION: make a little credit scene with my name and host of others), as you say me a little thanks I will be pleased
Hope that you don't dislike it (my personal cliché, don't ask),
Orochii Zouveleki