Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Ronivan

1
Resources / Ronivan's Tileset [MV]
July 27, 2016, 02:09:36 am
So hello everyone! Its been quite a while since I last posted something here. I've changed to RPG Maker MV now, and of course, still there are no good battle system yet. So I decided
to tweak a little in creating my own Tilesets for it. So far thats all I have done.

Spoiler'd images - KK20
Spoiler: ShowHide

Spoiler: ShowHide

Spoiler: ShowHide

Spoiler: ShowHide

Spoiler: ShowHide


I'm still learning how to create tilesets for it. I started this project in RPG Maker MV forums, but I'll be very happy to publish it here too. Hope its of everyone taste.

You can download it here:
https://drive.google.com/file/d/0B4o_oljSQH76SF9DQWNxbHZvVlU/view?usp=sharing
2
Script Requests / [XP] HP/MP Absorb
June 06, 2015, 01:15:48 am
I open this topic because I'm in need of a HP/MP Absorb script. I did some searching but the ones I've found don't work with my Battle System. I just need perhaps some different scripts, but google didn't helped much. I would appreaciate any help.

Edit: My custom battle system is Atoa Custom Battle System
3
Hello again friends.
I was wondering if its possible to delay the damage popup number after the animation, because some of my spells the damage popups in the middle or even before the animation is finished. I want some help or advice to how fix this problem. Thanks again.
4
RPG Maker Scripts / [XP]Items Limit
March 02, 2015, 09:53:10 am
Hello everyone!
This the MOG Item Limit V1.7

Description
This is a script that limits the number of items which you can carry with you, just like series Tales. Instead of 99 items, you can determine the number of items you can carry of a specific item, changing or adding new
lines in the script Items Limit, like this: A => B  (A= Item ID in the Database, B = amount limit). You can add as many lines as you wish, just follow the same pattern as it is in the script.
Also the script has specific sections for items, weapons, armors and money.

How to use
There are two scripts, must be placed one bellow the other, just like the order I have posted here. Put them in the order above Main. Edit the items limit in the first script.

Credits
All credits go to Moghunter for making the script.


Scripts
(place them in the same order I have posted here, and above main)

1º Items Limit
#_______________________________________________________________________________
# MOG Item Limit V1.7
#_______________________________________________________________________________
# By Moghunter
# http://www.atelier-rgss.com
#_______________________________________________________________________________
# Portuguese:
# Permite definir o limite maximo para cada item, armas
# ou armaduras.
#
# English:
# Set the maximum limit for each item, weapons
# Or armor.
#_______________________________________________________________________________
module MOG
#-------------------------------------------------------------------------------
# Definição do limite padrão.
# Items Limit Definition
#-------------------------------------------------------------------------------
DEFAULT_LIMIT = 99
#-------------------------------------------------------------------------------
# A => B
#
# A = ID do item, armadura ou arma (ID of the item, weapon or armor).
# B = Quantidade de itens maximo (amount of maximum items).
#
#-------------------------------------------------------------------------------
#Definição do limite maximo de Itens.
#Definition of Item maximum limit.
#-------------------------------------------------------------------------------
ITEM_LIMIT = {
1=>20, #Vera Nut
2=>20, #Vera Tonic
3=>20, #Vera Potion
4=>10, #Vera Medicine
5=>20, #Mana Seeds
6=>20, #Mana Tonic
7=>20, #Mana Potion
8=>10, #Mana Spirit
9=>7,  #Vera Elixir
10=>7,  #Mana Elixir
11=>10, #Yggdrasil Seed
12=>10, #Yggdrasil Berry
13=>5,  #Elixir Vitae
14=>1,  #--------------
15=>30, #Antidote Pills
16=>30, #Eye Drops
17=>30, #Clear Mint
18=>30, #Ammonia
19=>30, #Soft
20=>30, #Holy Water
21=>30, #Winter Booze
22=>30, #Stardust Herb
23=>15, #Panacea

}
#-------------------------------------------------------------------------------
#Definição do limite maximo de armas.
#Definition of weapons maximum limit.
#-------------------------------------------------------------------------------
WEAPON_LIMIT = {
1=>9, #Bronze Sword
2=>6, #Iron Sword
3=>3, #Steel Sword
4=>1, #Mythril Sword
5=>9, #Bronze Spear
6=>6, #Iron Spear
7=>3, #Steel Spear
8=>1 #Mythril Spear
}
#-------------------------------------------------------------------------------
#Definição do limite maximo de armaduras.
#Definition of armors maximum limit.
#-------------------------------------------------------------------------------
ARMOR_LIMIT = {
1=>20, #Bronze Shield
2=>15, #Iron Shield
5=>20, #Bronze Helm
13=>10 #Bronze Armor
}
#-------------------------------------------------------------------------------
#Definição do limite maximo de dinheiro
#Definition of maximum money limit.
#-------------------------------------------------------------------------------
GOLD_LIMIT = 1000000000
#-------------------------------------------------------------------------------
end
$mogscript = {} if $mogscript == nil
$mogscript["Item_Limit"] = true
##############
# Game_Party #
##############
class Game_Party
alias mog45_gain_item gain_item
def gain_item(item_id, n)
if item_id > 0
item_limit = MOG::ITEM_LIMIT[item_id]
if item_limit != nil
@items[item_id] = [[item_number(item_id) + n, 0].max, item_limit].min
else
@items[item_id] = [[item_number(item_id) + n, 0].max, MOG::DEFAULT_LIMIT].min
end
end
return
mog45_gain_item(item_id, n)
end
alias mog45_gain_weapon gain_weapon
def gain_weapon(weapon_id, n)
if weapon_id > 0
weapon_limit = MOG::WEAPON_LIMIT[weapon_id]
if weapon_limit !=nil
@weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, weapon_limit].min
else
@weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, MOG::DEFAULT_LIMIT].min
end
end
return
mog45_gain_weapon(weapon_id, n)
end
alias mog45_gain_armor gain_armor
def gain_armor(armor_id, n)
if armor_id > 0
armor_limit = MOG::ARMOR_LIMIT[armor_id]
if armor_limit != nil
@armors[armor_id] = [[armor_number(armor_id) + n, 0].max, armor_limit].min
else
@armors[armor_id] = [[armor_number(armor_id) + n, 0].max, MOG::DEFAULT_LIMIT].min
end
end
return
mog45_gain_armor
end
def gain_gold(n)
@gold = [[@gold + n, 0].max, MOG::GOLD_LIMIT].min
end
end
##############
# Scene_Shop #
##############
class Scene_Shop
alias mog45_update update
def update
if @sell_window.active == true
$sell = true
else
$sell = false
end
mog45_update
end
alias mog45_update_buy update_buy
def update_buy
if Input.trigger?(Input::C)
@item = @buy_window.item
case @item
when RPG::Item
number = $game_party.item_number(@item.id)
item_limit = MOG::ITEM_LIMIT[@item.id]
if item_limit != nil
if number >= item_limit
$game_system.se_play($data_system.buzzer_se)
return
end
else
if number == MOG::DEFAULT_LIMIT
$game_system.se_play($data_system.buzzer_se)
return
end
end
when RPG::Weapon
number = $game_party.weapon_number(@item.id)
weapon_limit = MOG::WEAPON_LIMIT[@item.id]
if weapon_limit != nil
if number >= weapon_limit
$game_system.se_play($data_system.buzzer_se)
return
end
else
if number == MOG::DEFAULT_LIMIT
$game_system.se_play($data_system.buzzer_se)
return
end
end
when RPG::Armor
number = $game_party.armor_number(@item.id)
armor_limit = MOG::ARMOR_LIMIT[@item.id]
if armor_limit != nil
if number >= armor_limit
$game_system.se_play($data_system.buzzer_se)
return
end
else
if number == MOG::DEFAULT_LIMIT
$game_system.se_play($data_system.buzzer_se)
return
end
end
end
end
mog45_update_buy
end
end
#####################
# Window_ShopNumber #
#####################
class Window_ShopNumber < Window_Base
alias mog45_set set
def set(item, max, price)
@item = item
case @item
when RPG::Item
number = $game_party.item_number(@item.id)
item_limit = MOG::ITEM_LIMIT[@item.id]
if item_limit!= nil
if $sell == true
valor = item_limit - number
@max = item_limit - valor
else
@max = item_limit - number
end
else
if $sell == true
valor = MOG::DEFAULT_LIMIT - number
@max = MOG::DEFAULT_LIMIT - valor
else
@max = MOG::DEFAULT_LIMIT - number
end
end
when RPG::Weapon
number = $game_party.weapon_number(@item.id)
weapon_limit = MOG::WEAPON_LIMIT[@item.id]
if weapon_limit!= nil
if $sell == true
valor = weapon_limit - number
@max = weapon_limit - valor
else
@max = weapon_limit - number
end
else
if $sell == true
valor = MOG::DEFAULT_LIMIT - number
@max = MOG::DEFAULT_LIMIT - valor
else
@max = MOG::DEFAULT_LIMIT - number
end
end
when RPG::Armor
number = $game_party.armor_number(@item.id)
armor_limit = MOG::ARMOR_LIMIT[@item.id]
if armor_limit!= nil
if $sell == true
valor = armor_limit - number
@max = armor_limit - valor
else
@max = armor_limit - number
end
else
if $sell == true
valor = MOG::DEFAULT_LIMIT - number
@max = MOG::DEFAULT_LIMIT - valor
else
@max = MOG::DEFAULT_LIMIT - number
end
end
end
@price = price
@number = 1
refresh
return
mog45_set set(item, max, price)
end
end
###############
# Window_Item #
###############
class Window_Item < Window_Selectable
def draw_item(index)
item = @data[index]
case item
when RPG::Item
number = $game_party.item_number(item.id)
item_number = MOG::ITEM_LIMIT[item.id]
when RPG::Weapon
number = $game_party.weapon_number(item.id)
item_number = MOG::WEAPON_LIMIT[item.id]
when RPG::Armor
number = $game_party.armor_number(item.id)
item_number = MOG::ARMOR_LIMIT[item.id]
end
if item.is_a?(RPG::Item) and
$game_party.item_can_use?(item.id)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
x = 4 + index % 2 * (288 + 32)
y = index / 2 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
if item_number != nil
self.contents.draw_text(x + 220, y, 60, 32, number.to_s + " / " + item_number.to_s, 2)
else
max_limit = MOG::DEFAULT_LIMIT
self.contents.draw_text(x + 220, y, 60, 32, number.to_s + " / " + max_limit.to_s, 2)
end
end
end



2º Items Limit EX
##################
# Window_Item_Ex #
##################
class Window_Item_Ex < Window_Selectable
def draw_item(index)
item = @data[index]
case item
when RPG::Item
number = $game_party.item_number(item.id)
item_number = MOG::ITEM_LIMIT[item.id]
end
if item.is_a?(RPG::Item) and
$game_party.item_can_use?(item.id)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
x = 4 + index % 1 * (288 + 32)
y = index / 1 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.font.name = "Georgia"
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 190, 32, item.name, 0)
if item_number != nil
self.contents.draw_text(x + 195, y, 60, 32, number.to_s + " / " + item_number.to_s, 2)
else
max_limit = MOG::DEFAULT_LIMIT
self.contents.draw_text(x + 195, y, 60, 32, number.to_s + " / " + max_limit.to_s, 2)
end
end
end
#################
# Window_Weapon #
#################
class Window_Weapon < Window_Selectable
def draw_item(index)
item = @data[index]
case item
when RPG::Weapon
number = $game_party.weapon_number(item.id)
item_number = MOG::WEAPON_LIMIT[item.id]
end
if item.is_a?(RPG::Item) and
$game_party.item_can_use?(item.id)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
x = 4 + index % 1 * (288 + 32)
y = index / 1 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.font.name = "Georgia"
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 190, 32, item.name, 0)
if item_number != nil
self.contents.draw_text(x + 195, y, 60, 32, number.to_s + " / " + item_number.to_s, 2)
else
max_limit = MOG::DEFAULT_LIMIT
self.contents.draw_text(x + 195, y, 60, 32, number.to_s + " / " + max_limit.to_s, 2)
end
end
end
################
# Window_Armor #
################
class Window_Armor < Window_Selectable
def draw_item(index)
item = @data[index]
case item
when RPG::Armor
number = $game_party.armor_number(item.id)
item_number = MOG::ARMOR_LIMIT[item.id]
end
if item.is_a?(RPG::Item) and
$game_party.item_can_use?(item.id)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
x = 4 + index % 1 * (288 + 32)
y = index / 1 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.font.name = "Georgia"
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 190, 32, item.name, 0)
if item_number != nil
self.contents.draw_text(x + 195, y, 60, 32, number.to_s + " / " + item_number.to_s, 2)
else
max_limit = MOG::DEFAULT_LIMIT
self.contents.draw_text(x + 195, y, 60, 32, number.to_s + " / " + max_limit.to_s, 2)
end
end
end
#####################
# Window_ShopStatus #
#####################
class Window_ShopStatus < Window_Base
alias mog45_refresh refresh
def refresh
if $mogscript["menu_shop"] == true
mog45_refresh
return false
end
self.contents.clear
if @item == nil
return
end
case @item
when RPG::Item
number = $game_party.item_number(@item.id)
item_max = MOG::ITEM_LIMIT[@item.id]
when RPG::Weapon
number = $game_party.weapon_number(@item.id)
item_max = MOG::WEAPON_LIMIT[@item.id]
when RPG::Armor
number = $game_party.armor_number(@item.id)
item_max = MOG::ARMOR_LIMIT[@item.id]
end
self.contents.font.color = system_color
self.contents.draw_text(4, 0, 200, 32, "Stock")
self.contents.font.color = normal_color
if item_max != nil
self.contents.draw_text(155, 0, 80, 32, number.to_s + " / " + item_max.to_s, 2)
else
max_limit = MOG::DEFAULT_LIMIT
self.contents.draw_text(155, 0, 80, 32, number.to_s + " / " + max_limit.to_s, 2)
end
if @item.is_a?(RPG::Item)
return
end
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
if actor.equippable?(@item)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
self.contents.draw_text(4, 64 + 64 * i, 120, 32, actor.name)
if @item.is_a?(RPG::Weapon)
item1 = $data_weapons[actor.weapon_id]
elsif @item.kind == 0
item1 = $data_armors[actor.armor1_id]
elsif @item.kind == 1
item1 = $data_armors[actor.armor2_id]
elsif @item.kind == 2
item1 = $data_armors[actor.armor3_id]
else
item1 = $data_armors[actor.armor4_id]
end
if actor.equippable?(@item)
if @item.is_a?(RPG::Weapon)
atk1 = item1 != nil ? item1.atk : 0
atk2 = @item != nil ? @item.atk : 0
change = atk2 - atk1
end
if @item.is_a?(RPG::Armor)
pdef1 = item1 != nil ? item1.pdef : 0
mdef1 = item1 != nil ? item1.mdef : 0
pdef2 = @item != nil ? @item.pdef : 0
mdef2 = @item != nil ? @item.mdef : 0
change = pdef2 - pdef1 + mdef2 - mdef1
end
self.contents.draw_text(124, 64 + 64 * i, 112, 32,
sprintf("%+d", change), 2)
end
if item1 != nil
x = 4
y = 64 + 64 * i + 32
bitmap = RPG::Cache.icon(item1.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 212, 32, item1.name)
end
end
return true
mog45_refresh
end
end
###################
# Window_ShopSell #
###################
class Window_ShopSell < Window_Selectable
def initialize
if $mogscript["menu_shop"] == true
super(-10, 180, 305, 225)
self.opacity = 0
@column_max = 1
refresh
self.index = 0
else
super(0, 128, 640, 352)
@column_max = 2
refresh
self.index = 0
end
end
def draw_item(index)
item = @data[index]
case item
when RPG::Item
number = $game_party.item_number(item.id)
item_number = MOG::ITEM_LIMIT[item.id]
when RPG::Weapon
number = $game_party.weapon_number(item.id)
item_number = MOG::WEAPON_LIMIT[item.id]
when RPG::Armor
number = $game_party.armor_number(item.id)
item_number = MOG::ARMOR_LIMIT[item.id]
end
if item.price > 0
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
if $mogscript["menu_shop"] == nil
x = 4 + index % 2 * (288 + 32)
y = index / 2 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
if item_number != nil
self.contents.draw_text(x + 220, y, 60, 32, number.to_s + " / " + item_number.to_s, 2)
else
max_limit = MOG::DEFAULT_LIMIT
self.contents.draw_text(x + 220, y, 60, 32, number.to_s + " / " + max_limit.to_s, 2)
end
else
self.contents.font.name = "Georgia"
x = 4 + index % 1 * (288 + 32)
y = index / 1 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 150, 32, item.name, 0)
self.contents.font.color = Color.new(50,250,150,255)
prc = item.price / 2
self.contents.draw_text(x + 180, y, 80, 32, "+G " + prc.to_s, 2)
end
end
end




I hope it may be usefull for you guys! Punch me if I have done something wrong.
5
Script Requests / [XP] Chrono Trigger CMS Work Request
February 24, 2015, 10:48:07 pm
So I'm working with Chrono Trigger CMS, so for I did all customization to my project, but this CMS has a deadly flaw. The ''Items Menu'' don't actually have any kind of cursor which
you can select the items within it. It just goes through the items in the menu blindly, with the cursor sound, but no cursor over the items. For the everything else the cursor work fine,
its just in the Items Menu that this thing happens. I tryed some work, but my skills with ruby are still very noob for that, so I would ask if anyone could help making the Items Menu cursor work for
me? My edited Chrono Trigger CMS link is bellow. Note some of the players position in there could be a little out of position, thats because of my project, so don't botter with that. Just need the cursor
work for Items Menu. I would be thankfull if anyone could do look to that and see if this is possible, and help customizing it.

Chrono Trigger CMS Edited: http://www.4shared.com/rar/rYgaGPAhba/Chrono_Trigger__CMS_Windowskin.html

My thanks!
6
General Discussion / [XP] Anyone have a portable version?
February 24, 2015, 09:55:13 am
Hello buddies.
My game in RPG Maker XP is going well, but now I spend most of my time in universit, and I have lot of free time in some moments. I can't install the RPG-XP on the computers there, cause I don't have
Admin permission to that. So I was wondering if anyone have the portable version of RPG Maker XP. The only version I've found here but the link is broken.
If anyone still have a portable version of RPG Maker XP would help me a lot.
Thanks!
7
Script Requests / [XP] BGM Change by Call Script
February 15, 2015, 07:43:21 pm
Hello again everybody.
I was wondering if its possible to change battle bgm by Call Script command in a event.
The system which I'm working don't allow me to change the battle BGM, but the battle system itself is based on Call Script commands line. So I was wondering if its possible
to add a line that change Battle BGM by Call Script. I would be gratefull for any help.
8
Script Requests / Window Menu Resolution
February 08, 2015, 02:09:35 pm
I'm using ForeverZer0 and KK20 Resolution script for RPG Maker XP, and it work as wonder, but it don't change the size of the Menus windows, and the most important is the Menu itself.
I was wondering if anyone have solved the problem of menu size resolution and make it fit a desired size. Its tha last issue I had with the size resolution script, so I would appreciate any help with it.
9
I'm in need of help with ForeverZer0 Custom Resolution. The script work as it should, exept for one problem, it don't change the resolution of weather effects.
I've tryed both types of weather effect, the RPG Maker XP custom weather and weather effects by scripts, both don't feet the new resolution of screen, the weather
just stays at the standard resolution of 640x480 of the upper left side of the screen. Anyone have solve this problem? I need help to solve this.
10
Script Requests / Blizz ABS Multi Frame Script
November 20, 2013, 07:37:56 pm
Hello my friends!
I'm looking for some time for a multi-frames script that works with blizz abs. Does anyone have any suggestions for one?
I already used the Script Cogwheel and he has conflict with the module Blizz. I am looking for one that works with Blizz, if you can show me one I will be very grateful.
11
Script Troubleshooting / Blizz ABS Auto Frame Bug
November 18, 2013, 06:19:47 am
Hello my friends, I decided to develop my project and go to Blizz ABS 2.84. But there was a serious problem with one of my most important scripts, including one made by KK20 here Chaos Project.
The problem is that it has a bug if it is placed below Blizz-ABS v2.84 Part 2, with the following Message:

Script Error in Blizz-ABS v2.84 Part 2 in 2219 in line 'NoMethodError'
Undefined method 'refresh' for # <Game_Player:0xdd597a8>

If I cannot use my script Auto-Frame, I cannot work with Blizz ABS. Even if I put the Script Auto-frames above the Blizz-ABS v2.84 Part 2, it does not work.
Below here is the Script Auto-Frames that I use, if someone can do some modification or can help in anything, again I will be very grateful.

#==============================================================================
# Extra Frames
# por COGHWELL
# Edit by KK20
# http://members.jcom.home.ne.jp/cogwheel/
#==============================================================================
# KK20's Note: The following instructions are no longer relevant to this script.
# The number of frames a character sprite uses is determined by the amount
# configured in the configuration below.
#==============================================================================
module ExtraFramesConfig
 def self.char_frames(name)
   case name
   #--------------------------------------------------------------------------
   # Begin Configuration
   # Format:
   #             when 'filename' then return FRAMES
   #
   # Any names not configured will be assumed to have 4 frames (RMXP default)
   #--------------------------------------------------------------------------
   when '001-A' then return 16
   when '001-B' then return 16
   when 'Measure - Gear 1 L' then return 16
   when 'Measure - Gear 1 R' then return 16
   when 'Measure - Gear 2 LR' then return 16
   when 'Measure - Gear 3 Half Down' then return 16
   when 'ABS Rohan 1 (Guardian)' then return 8
   when 'ABS Rohan 1 (Guardian)_quarter' then return 4
   when 'ABS Rohan 1 (Guardian)_ACT' then return 7
   when 'ABS Rohan 1 (Guardian)_ANI' then return 8
   when 'ABS Rohan 1 (Guardian)_BOW_01' then return 5
   when 'ABS Rohan 1 (Guardian)_dash' then return 8
   when 'ABS Rohan 1 (Guardian)_HIT' then return 3
   when 'ABS Rohan 1 (Guardian)_Holding' then return 6
   when 'ABS Rohan 1 (Guardian)_jump' then return 4
   when 'ABS Rohan 1 (Guardian)_Pickup' then return 3
   when 'ABS Rohan 1 (Guardian)_SWD_01' then return 8
   when 'ABS Rohan 1 (Guardian)_throw' then return 5
   when 'ABS Rohan 1 (Guardian)_TRW' then return 5
   when 'ABS Rohan 1 (Guardian)_SKILL_01' then return 3
   when 'ABS Rohan 1 (Guardian)_skill1' then return 3
   when 'ABS Rohan 1 (Guardian)_Stair' then return 8
   when 'ABS Eowyn 1 (Archer)' then return 8
   when 'ABS Eowyn 1 (Archer)_ANI' then return 8
   when 'ABS Eowyn 1 (Archer)_BOW_01' then return 5
   when 'ABS Eowyn 1 (Archer)_dash' then return 8
   when 'ABS Eowyn 1 (Archer)_HIT' then return 3
   when 'ABS Eowyn 1 (Archer)_Jump' then return 4
   when 'ABS Eowyn 1 (Archer)_Pickup' then return 3
   when 'ABS Eowyn 1 (Archer)_SKILL_01' then return 4
   when 'ABS Eowyn 1 (Archer)_SWD_01' then return 8
   when 'ABS Eowyn 1 (Archer)_throw' then return 4
   when 'ABS Eowyn 1 (Archer)_TRW' then return 4
   when 'ABS Artanis 1 (Alchemist)' then return 8
   when 'ABS Artanis 1 (Alchemist)_ANI' then return 8
   when 'ABS Artanis 1 (Alchemist)_MCE' then return 7
   when 'ABS Artanis 1 (Alchemist)_dash' then return 8
   when 'ABS Artanis 1 (Alchemist)_HIT' then return 3
   when 'ABS Artanis 1 (Alchemist)_Pickup' then return 3
   when 'ABS Artanis 1 (Alchemist)_SKILL_01' then return 4
   when 'ABS Artanis 1 (Alchemist)_TRW' then return 4
   when 'ABS Artanis 1 (Alchemist)_Throw' then return 4
   when 'ABS Artanis 1 (Alchemist)_Quarter' then return 4
   when 'ABS Círdan (Mage)' then return 8
   when 'ABS Círdan (Mage)_ANI' then return 8
   when 'ABS Círdan (Mage)_ROD_01' then return 7
   when 'ABS Círdan (Mage)_dash' then return 8
   when 'ABS Círdan (Mage)_HIT' then return 3
   when 'ABS Círdan (Mage)_Pickup' then return 3
   when 'ABS Círdan (Mage)_SKILL_01' then return 6
   when 'ABS Círdan (Mage)_Quarter' then return 4
   when 'E_Ambernite' then return 4
   when 'E_Ambernite_ANI' then return 4
   when 'E_Ambernite_ACT' then return 9
   when 'E_Ambernite_HIT' then return 4
   when 'E_Ambernite_SKILL' then return 4
   when 'E_AprenticeM 1' then return 8
   when 'E_AprenticeM 1_ANI' then return 8
   when 'E_AprenticeM 1_ACT' then return 7
   when 'E_AprenticeM 1_HIT' then return 3
   when 'E_AprenticeM 1_SKILL' then return 3
   when 'E_AprenticeM 2' then return 8
   when 'E_AprenticeM 2_ANI' then return 8
   when 'E_AprenticeM 2_ACT' then return 7
   when 'E_AprenticeM 2_HIT' then return 3
   when 'E_AprenticeM 2_SKILL' then return 3
   when 'E_ThiefM 1' then return 8
   when 'E_ThiefM 1_ANI' then return 8
   when 'E_ThiefM 1_ACT' then return 6
   when 'E_ThiefM 1_HIT' then return 3
   when 'E_ThiefM 1_SKILL' then return 3
   when 'E_ThiefM 2' then return 8
   when 'E_ThiefM 2_ANI' then return 8
   when 'E_ThiefM 2_ACT' then return 6
   when 'E_ThiefM 2_HIT' then return 3
   when 'E_ThiefM 2_SKILL' then return 3
   when 'E_ThiefM 3' then return 8
   when 'E_ThiefM 3_ANI' then return 8
   when 'E_ThiefM 3_ACT' then return 6
   when 'E_ThiefM 3_HIT' then return 3
   when 'E_ThiefM 3_SKILL' then return 3
   when 'E_Batus' then return 6
   when 'E_Batus_ANI' then return 6
   when 'E_Batus_ACT' then return 5
   when 'E_Batus_HIT' then return 2
   when 'E_Batus_SKILL' then return 3
   when 'E_GPoring' then return 8
   when 'E_GPoring_ANI' then return 8
   when 'E_GPoring_ACT' then return 8
   when 'E_GPoring_HIT' then return 2
   when 'E_Poring' then return 8
   when 'E_Poring_ANI' then return 8
   when 'E_Poring_ACT' then return 8
   when 'E_Poring_HIT' then return 2
   when 'E_Poison Spore' then return 8
   when 'E_Poison Spore_ANI' then return 8
   when 'E_Poison Spore_ACT' then return 5
   when 'E_Poison Spore_HIT' then return 3
   when 'E_Poison Spore_SKILL' then return 3
   when 'E_Rhoda Frog' then return 5
   when 'E_Rhoda Frog_ANI' then return 5
   when 'E_Rhoda Frog_ACT' then return 6
   when 'E_Rhoda Frog_HIT' then return 2
   when 'E_Spore' then return 8
   when 'E_Spore_ANI' then return 8
   when 'E_Spore_ACT' then return 5
   when 'E_Spore_HIT' then return 3
   when 'E_Spore_SKILL' then return 3
   when 'E_Spore2' then return 8
   when 'E_Spore2_ANI' then return 8
   when 'E_Spore2_ACT' then return 5
   when 'E_Spore2_HIT' then return 3
   when 'E_Spore2_SKILL' then return 3
   when 'E_Spore3' then return 8
   when 'E_Spore3_ANI' then return 8
   when 'E_Spore3_ACT' then return 5
   when 'E_Spore3_HIT' then return 3
   when 'E_Spore3_SKILL' then return 3
   when 'E_Willow' then return 5
   when 'E_Willow_ANI' then return 5
   when 'E_Willow_ACT' then return 5
   when 'E_Willow_HIT' then return 2
   #--------------------------------------------------------------------------
   # End of Configuration
   #--------------------------------------------------------------------------
   else
     return 4
   end
 end
end

#==============================================================================
# ■ Game_Character
#==============================================================================
class Game_Character
 #--------------------------------------------------------------------------
 def update
   if jumping?
     update_jump
   elsif moving?
     update_move
   else
     update_stop
   end
   frames = ExtraFramesConfig.char_frames(@character_name)
   if frames != 4
     @anime_count = 20 if @anime_count > 0 and @pattern == @original_pattern
     if @anime_count * (frames - 1) / 4 > 18 - @move_speed * 3
       if not @step_anime and @stop_count > 0
         @pattern = @original_pattern
       else
         @pattern = @pattern % (frames - 1) + 1
       end
       @anime_count = 0
     end
   else
     if @anime_count > 18 - @move_speed * 2
       if not @step_anime and @stop_count > 0
         @pattern = @original_pattern
       else
         @pattern = (@pattern + 1) % 4
       end
       @anime_count = 0
     end
   end
   if @wait_count > 0
     @wait_count -= 1
     return
   end
   if @move_route_forcing
     move_type_custom
     return
   end
   if @starting or lock?
     return
   end
   if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
     case @move_type
     when 1
       move_type_random
     when 2
       move_type_toward_player
     when 3
       move_type_custom
     end
   end
 end
end


#================================================= =============================
# ■ Sprite_Character
#================================================= =============================
class Sprite_Character < RPG::Sprite
 #--------------------------------------------------------------------------
 def update
   super
   if @tile_id != @character.tile_id or
      @character_name != @character.character_name or
      @character_hue != @character.character_hue
     @tile_id = @character.tile_id
     @character_name = @character.character_name
     @character_hue = @character.character_hue
     if @tile_id >= 384
       self.bitmap = RPG::Cache.tile($game_map.tileset_name,
       @tile_id, @character.character_hue)
       self.src_rect.set(0, 0, 32, 32)
       self.ox = 16
       self.oy = 32
     else
       self.bitmap = RPG::Cache.character(@character.character_name,
       @character.character_hue)
       frames = ExtraFramesConfig.char_frames(@character.character_name)
       $game_player.refresh
       if frames != 4
         @cw = bitmap.width / frames
         @ch = bitmap.height / 4
       else
         @cw = bitmap.width / 4
         @ch = bitmap.height / 4
       end
       self.ox = @cw / 2
       self.oy = @ch
     end
   end
   self.visible = (not @character.transparent)
   if @tile_id == 0
     sx = @character.pattern * @cw
     sy = (@character.direction - 2) / 2 * @ch
     self.src_rect.set(sx, sy, @cw, @ch)
   end
   self.x = @character.screen_x
   self.y = @character.screen_y
   self.z = @character.screen_z(@ch)
   self.opacity = @character.opacity
   self.blend_type = @character.blend_type
   self.bush_depth = @character.bush_depth
   if @character.animation_id != 0
     animation = $data_animations[@character.animation_id]
     animation(animation, true)
     @character.animation_id = 0
   end
 end
end

#================================================= =============================
# ■ Window_Base
#================================================= =============================
class Window_Base < Window
 #--------------------------------------------------------------------------
 def draw_actor_graphic(actor, x, y)
   bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
   frames = ExtraFramesConfig.char_frames(actor.character_name)
   if frames != 4
     cw = bitmap.width / frames
     ch = bitmap.height / 4
   else
     cw = bitmap.width / 4
     ch = bitmap.height / 4
   end
   src_rect = Rect.new(0, 0, cw, ch)
   self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
 end
end

#================================================= =============================
# ■ Window_SaveFile
#================================================= =============================
class Window_SaveFile < Window_Base
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   self.contents.font.color = normal_color
   name = "File #{@file_index + 1}"
   self.contents.draw_text(4, 0, 600, 32, name)
   @name_width = contents.text_size(name).width
   if @file_exist
     for i in 0...@characters.size
       bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
       frames = ExtraFramesConfig.char_frames(@characters[i][0])
       if @characters[i][0][/\[(\d+)\]/]
         cw = bitmap.width / frames
         ch = bitmap.height / 4
       else
       cw = bitmap.width / 4
       ch = bitmap.height / 4
     end
     src_rect = Rect.new(0, 0, cw, ch)
     x = 300 - @characters.size * 32 + i * 64 - cw / 2
     self.contents.blt(x, 68 - ch, bitmap, src_rect)
   end
   hour = @total_sec / 60 / 60
   min = @total_sec / 60 % 60
   sec = @total_sec % 60
   time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
   self.contents.font.color = normal_color
   self.contents.draw_text(4, 8, 600, 32, time_string, 2)
   self.contents.font.color = normal_color
   time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
   self.contents.draw_text(4, 40, 600, 32, time_string, 2)
   end
 end
end

#================================================= =============================
# ■ Game_Player
#================================================= =============================
class Game_Player < Game_Character
 #--------------------------------------------------------------------------
 def anime_update
   frames = ExtraFramesConfig.char_frames(@character_name)
   if frames != 4
     @anime_count = 20 if @anime_count > 0 and @pattern == @original_pattern
     if @anime_count * (frames - 1) / 4 > 18 - @move_speed * 2
       if not @step_anime and @stop_count > 0
         @pattern = @original_pattern
       else
         @pattern = @pattern % ($1.to_i - 1) + 1
       end
       @anime_count = 0
     end
   else
     if @anime_count > 18 - @move_speed * 2
       if not @step_anime and @stop_count > 0
         @pattern = @original_pattern
       else
         @pattern = (@pattern + 1) % 4
       end
       @anime_count = 0
     end
   end
 end
end
12
Script Requests / [RMXP] Auto Frame Script Request
August 10, 2013, 02:10:38 pm
I'm having problem with my game because the Multi Frame Script changes the animation file name, like hero [8]. I've tryed all kinds of Multi frame scripts, all scripts needs a change in the image name to specify the number of frames on it. So I wanted to make a request here for someone to create a very different kind of auto frame script. Maybe it would be possible to create a script where the number of frames of animation would be inserted into it? Like this for sample:

Files inside the "Characters" folder:

name of .png file => number of frames

hero => 8
hero_ACT => 7
hero_HIT => 6
hero_SWD_01 => 6

Note: It's a script for RPG Maker XP.

Thus the file name does not change, and the script will do the organization of animation frames by file names .png written on it. Someone could create something like that?