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 - earthnite

1
So instead of making several different sprites to show the player holding something or having evil eyes and stuff like that, I want to just display a sprite over the player that adds in those details. How would you do this, and it should be able to work with multiple sprites on top of the hero. I'm using rpg maker xp.

Thanks in advance
2
Is there a way to convert Standard deviation to percentage without a table?
3
Does any one know how to delete programs and/or functions on the TI-nspire?(The non CAS with touch pad)

Does anyone else have an nspire?
4
Script Troubleshooting / [XP]Small Problem
August 05, 2010, 06:47:08 pm
how do you fix this error

" wrong number of arguments (0 for 4) "
5
Resource Requests / Hill autotile
August 04, 2010, 06:08:24 pm
i need an hill autotile to work with the regular RTP grass this should be really simple, right
6
Script Troubleshooting / Sliding windows
July 08, 2010, 02:00:45 am
how can i make windows slide in and out like in the FF& Menu system by AcedentProne

here's the script
Spoiler: ShowHide

#*********************************************************
#Final Fantasy VII menu setup by AcedentProne
#*********************************************************
#To use:
#If you do not want Faces, go to line 94
#and change delete the # of draw_actor_graphic
#and put a # infront of draw_actor_face
#
#Create a new folder in the Characters folder, and call it Faces
#Adding faces: add a 80x80 picture with the same name as the characterset it
#corrosponds with in the Faces folder


#========================================
#¡ Window_Base
#--------------------------------------------------------------------------------
# Setting functions for the "Base"
#========================================


class Window_Base < Window

def draw_actor_face(actor, x, y)
face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)
fw = face.width
fh = face.height
src_rect = Rect.new(0, 0, fw, fh)
self.contents.blt(x - fw / 23, y - fh, face, src_rect)
end
end
def draw_actor_battler_graphic(actor, x, y)
 bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
 cw = bitmap.width
 ch = bitmap.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end

#========================================
#¡ Game_Map
#--------------------------------------------------------------------------------
# Setting functions for the Map
#========================================
class Game_Map

def name
$map_infos[@map_id]
end
end

#========================================
#¡ Window_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
end




#==============================================================================
# ¡ Window_MenuStatus
#------------------------------------------------------------------------------
#  Sets up the Choosing.
#==============================================================================

class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# Set up
#--------------------------------------------------------------------------
def initialize
 super(0, 0, 560, 454)
 self.contents = Bitmap.new(width - 32, height - 32)
 self.contents.font.name = "Arial"
 self.contents.font.size = 18
 refresh
 self.active = false
 self.index = -1
end
#--------------------------------------------------------------------------
# Drawing Info on Screen
#--------------------------------------------------------------------------
def refresh
 self.contents.clear
 @item_max = $game_party.actors.size
 for i in 0...$game_party.actors.size
   x = 94
   y = i * 110
   actor = $game_party.actors
  # draw_actor_face(actor, 12, y + 90) #To get rid of the Face, put a "#" before the draw_ of this line
   draw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this line
   draw_actor_name(actor, x, y)
   draw_actor_level(actor, x + 144, y)
   draw_actor_state(actor, x + 280, y )
   draw_actor_exp(actor, x+ 144, y + 38)
   draw_actor_hp(actor, x, y + 38)
   draw_actor_sp(actor, x, y + 58)

 end
end
#--------------------------------------------------------------------------
# Update of Cursor
#--------------------------------------------------------------------------
def update_cursor_rect
 if @index < 0
   self.cursor_rect.empty
 else
   self.cursor_rect.set(0, @index * 110, self.width - 32, 96)
 end
end
end

#=======================================#
# ¡Window_GameStats                                                             #
# written by AcedentProne                                                          #
#------------------------------------------------------------------------------#

class Window_GameStats < Window_Base
def initialize
super(0, 0, 160, 60)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Arial"
self.contents.font.size = 18
refresh
end

def refresh
self.contents.clear
#Drawing gold into separate commas by Dubealex
case $game_party.gold
  when 0..9999
    gold = $game_party.gold
  when 10000..99999
    gold = $game_party.gold.to_s
    array = gold.split(//)
    gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
  when 100000..999999
    gold = $game_party.gold.to_s
    array = gold.split(//)
    gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
  when 1000000..9999999
    gold = $game_party.gold.to_s
    array = gold.split(//)
    gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
  end
#Draw Gold
self.contents.font.color = system_color
gold_word = $data_system.words.gold.to_s
cx = contents.text_size(gold_word).width
cx2=contents.text_size(gold.to_s).width
self.contents.draw_text(4, 4, 120-cx-2, 32, gold_word)
self.contents.font.color = normal_color
self.contents.draw_text(124-cx2+1, 4, cx2, 32, gold.to_s, 2)
self.contents.font.color = system_color
# Draw "Time"
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, -10, 120, 32, text, 2)
self.contents.font.color = system_color
self.contents.draw_text(4, -10, 120, 32, "Time")
end
#--------------------------------------------------------------------------
# Update of The count
#--------------------------------------------------------------------------
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
  refresh
end
end
end

#==============================================================================
# ¡ Window_Mapname
#------------------------------------------------------------------------------
# @Draws the Map name
#==============================================================================

class Window_Mapname < Window_Base
#--------------------------------------------------------------------------
# Set up
#--------------------------------------------------------------------------
def initialize
super(0, 0, 320, 44)
self.contents = Bitmap.new(width - 52, height - 32)
self.contents.font.name = "Arial"
self.contents.font.size = 18
refresh
end
#--------------------------------------------------------------------------
# Draws info on screen
#--------------------------------------------------------------------------
def refresh
self.contents.clear

# Map Name
#map = $game_map.name
self.contents.font.color = system_color
self.contents.draw_text(4, -10, 220, 32, "Location")
self.contents.font.color = normal_color
self.contents.draw_text(175, -10, 80, 32, $game_map.name)
end
end

#==============================================================================
# ¡ Scene_Menu
#------------------------------------------------------------------------------
# FF7 menu layout as requested by AcedentProne.
#==============================================================================

class Scene_Menu
#--------------------------- edit-------------------------------
attr_reader :status_window
#/--------------------------- edit-------------------------------

def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
   
   s1 = $data_system.words.item
   s2 = $data_system.words.skill
   s3 = $data_system.words.equip
   s4 = "Status"
   s5 = "Save"
   s6 = "Quit"


#--------------------------- edit-------------------------------  
# Command menu
  @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6,])
@command_window.x = 640 - @command_window.width
@command_window.y = 480
@command_window.z = 110
@command_window.index = @menu_index
#If certain options are avaliable
if $game_party.actors.size == 0
  @command_window.disable_item(0)
  @command_window.disable_item(1)
  @command_window.disable_item(2)
  @command_window.disable_item(3)
end
if $game_system.save_disabled
  @command_window.disable_item(4)
end
#Showing location window
@map = Window_Mapname.new
@map.x = 640 - @map.width
@map.y = 0 - @map.height - 1
@map.z = 110
#Showing the game stats
@game_stats_window = Window_GameStats.new
@game_stats_window.x = 0 - @game_stats_window.width
@game_stats_window.y = 480 - @map.height - @game_stats_window.height
@game_stats_window.z =110
 
#Showing the Menu Status window
@status_window = Window_MenuStatus.new
@status_window.x = 640
@status_window.y = 8
@status_window.z = 100

   
Graphics.transition
loop do
  Graphics.update
  Input.update
  update
  if $scene != self
    break
  end
end
Graphics.freeze
@command_window.dispose
@game_stats_window.dispose
@status_window.dispose
@map.dispose
end
#--------------------------------------------------------------------------
#Defining the delay
#--------------------------------------------------------------------------
def delay(seconds)
for i in 0...(seconds * 1)
  sleep 0.01
  Graphics.update
end
end
#--------------------------------------------------------------------------
# Updating
#--------------------------------------------------------------------------
def update
@command_window.update
@game_stats_window.update
@status_window.update
@map.update
#Moving Windows inplace
gamepos = 640 - @game_stats_window.width
mappos = 480 - @map.height - 1
if @command_window.y > 0
@command_window.y -= 60
end
if @game_stats_window.x < gamepos
@game_stats_window.x += 80
end
if @map.y < mappos
@map.y += 80
end
if @status_window.x > 0
  @status_window.x -= 80
end
#Saying if options are active
if @command_window.active
  update_command
  return
end
if @status_window.active
  update_status
  return
end
end
#--------------------------------------------------------------------------
# Updating the Command Selection
#--------------------------------------------------------------------------
def update_command
# If B button is pushed
if Input.trigger?(Input::B)
  # Plays assigned SE
  $game_system.se_play($data_system.cancel_se)
  #Looping for moving windows out
   loop do
    if @command_window.y < 480
     @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
     @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
     @map.y -= 40
    end
    if @status_window.x < 640
     @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
     break
   end
  end
 # Go to Map
$scene = Scene_Map.new
  return
end
# If C button is pused
if Input.trigger?(Input::C)
  # Checks actor size
  if $game_party.actors.size == 0 and @command_window.index < 4
    # plays SE
    $game_system.se_play($data_system.buzzer_se)
    return
  end
  case @command_window.index
  when 0  
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
     @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
     @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
     @map.y -= 40
    end
    if @status_window.x < 640
     @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
     break
   end
  end
    $scene = Scene_Item.new
  when 1
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
     when 2  
       $game_system.se_play($data_system.decision_se)
       @command_window.active = false
       @status_window.active = true
       @status_window.index = 0
  when 3  
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0

  when 4
    if $game_system.save_disabled
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
     @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
     @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
     @map.y -= 40
    end
    if @status_window.x < 640
     @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
     break
   end
  end
   $scene = Scene_Save.new
         when 5
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
     @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
     @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
     @map.y -= 40
    end
    if @status_window.x < 640
     @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
     break
   end
  end
     $scene = Scene_End.new
  return
end
end
#--------------------------------------------------------------------------
# Updating Status Screen
#--------------------------------------------------------------------------
def update_status
if Input.trigger?(Input::B)
  $game_system.se_play($data_system.cancel_se)
  @command_window.active = true
  @status_window.active = false
  @status_window.index = -1
  return
end
if Input.trigger?(Input::C)
  case @command_window.index
       when 1  # ƒXƒLƒ‹
       # ,±,̃AƒNƒ^[,̍s"®§ŒÀ,ª 2 ˆÈã,̏ꍇ
       if $game_party.actors[@status_window.index].restriction >= 2
         # ƒuƒU[ SE ,ð‰‰'t
         $game_system.se_play($data_system.buzzer_se)
         return
       end
       # Œˆ'è SE ,ð‰‰'t
       $game_system.se_play($data_system.decision_se)
       # ƒXƒLƒ‹‰æ-Ê,ɐØ,è'Ö,¦
       $scene = Scene_Skill.new(@status_window.index)
       when 2
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
     @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
     @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
     @map.y -= 40
    end
    if @status_window.x < 640
     @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
     break
   end
  end
    $scene = Scene_Equip.new(@status_window.index)
  when 3
    $game_system.se_play($data_system.decision_se)
    loop do
    if @command_window.y < 480
     @command_window.y += 40
    end
    if @game_stats_window.x > 0 - @game_stats_window.width
     @game_stats_window.x -= 40
    end
    if @map.y > 0 - @map.height
     @map.y -= 40
    end
    if @status_window.x < 640
     @status_window.x += 40
    end
    delay(0.5)
    if @status_window.x >= 640
     break
   end
  end
    $scene = Scene_Status.new(@status_window.index)
  end
  return
end
end
end
end



7
General Discussion / VX vs XP
July 07, 2010, 07:10:59 pm
Which is better?
8
RESOURCES
_______________________


Here are most of my resources, the others are game specific and therefore I will not post them.
You can use them as long as you credit me in your game or where ever you are going to use them.

ICONS:(30)
Spoiler: ShowHide


^ Credit goes to enterbrain as well


^ Credit goes to enterbrain as well

-> ->


^ Credit goes to enterbrain as well

-> ->

-> ->

-> ->

-> ->

-> ->

-> ->

-> ->

-> ->



SPRITES:2
Spoiler: ShowHide


^ Credit goes to enterbrain as well


^ Credit goes to enterbrain as well

 
Sword
 
Super Sword
 



WINDOWSKINS:18
Spoiler: ShowHide















BATTLERS:
Spoiler: ShowHide

original author unknown




REQUEST SOMETHING
__________________________________________


You can request:
-Recolors
-Sprites
-Icons
-Windowskins

Slots
1-EMPTY
2-EMPTY
3-EMPTY



Please Comment

This will be updated when i have free time.
9
General Discussion / Quick Question
June 27, 2010, 04:14:19 am
just a question, what does evasion do?
10
Script Requests / inventory issue
June 26, 2010, 01:20:31 am
equiped items dont count in the inventory so it is posible you can 103 of an item and the limit is only 99 it just doesnt make any sence  to have 99 swords and unequip 4 swords and still have 99 swords left over.

can this be fixed?
11
Script Requests / Event movement modification
June 25, 2010, 01:15:02 am
how can i make the events move randomly in 8 directions in stead of 4?
12
Lexima Legends - Chaos Project / Scene_Equip
June 24, 2010, 11:06:58 pm
What script are you using to allow you to have 3 accessories?
13
i want to change the windowskin frame opacity in Scene_tittle to 0

how can i do this?
14
Script Requests / Change text color
June 17, 2010, 04:59:22 pm
i want to change the text color in scene_tittle to black, how do i do this?
15
Script Requests / change windowskin???
June 17, 2010, 02:26:48 pm
i want to change the windowskin for the tittle screen, and just the tittle screen, how do i do this?
16
Lexima Legends - Chaos Project / Battle result??
June 15, 2010, 04:51:19 pm
is it possible to get the battle result window that pops up at the end of the battle for my game. (it really cool!!)

Please...
17
Script Requests / modification needed
June 10, 2010, 07:17:09 pm
i need the command window,cost window and gold window on the right in front of the window with all the caracters in the pay to heal script

here it is
Spoiler: ShowHide

#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Pay to Heal by Blizzard
# Version: 2.0
# Type: Healing System
# Date v2.0: 29.7.2009
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#  
#  This work is protected by the following license:
# #----------------------------------------------------------------------------
# #  
# #  Creative Commons - Attribution-NonCommercial-ShareAlike 3.0 Unported
# #  ( http://creativecommons.org/licenses/by-nc-sa/3.0/ )
# #  
# #  You are free:
# #  
# #  to Share - to copy, distribute and transmit the work
# #  to Remix - to adapt the work
# #  
# #  Under the following conditions:
# #  
# #  Attribution. You must attribute the work in the manner specified by the
# #  author or licensor (but not in any way that suggests that they endorse you
# #  or your use of the work).
# #  
# #  Noncommercial. You may not use this work for commercial purposes.
# #  
# #  Share alike. If you alter, transform, or build upon this work, you may
# #  distribute the resulting work only under the same or similar license to
# #  this one.
# #  
# #  - For any reuse or distribution, you must make clear to others the license
# #    terms of this work. The best way to do this is with a link to this web
# #    page.
# #  
# #  - Any of the above conditions can be waived if you get permission from the
# #    copyright holder.
# #  
# #  - Nothing in this license impairs or restricts the author's moral rights.
# #  
# #----------------------------------------------------------------------------
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# Compatibility:
#
#   99% compatible with SDK v1.x. 90% compatible with SDK v2.x.
#
#
# Features:
#
#   - allows healing of HP, SP and states separately
#   - gold-per-HP cost
#   - gold-per-SP cost
#   - different cost for each state
#   - every undefined state is treated as "positive" state and will not be
#     removed upon healing
#
# new in v2.0:
#   - completely improved
#
#
# Instructions:
#
# - Explanation:
#
#   This script will allow you to heal your characters as you see fit and pay
#   only for the healing you have made use of.
#   You can call the Scene by using a "Call script" event command. Type into
#   the editor window this text:
#
#     $scene = Scene_PayToParty.new(HP_COST, SP_COST)
#  
#   HP_COST and SP_COST are optional parameters. If you specify them, they will
#   override your default configuration.
#
# - Configuration:
#
#   ONE_HEAL_SOUND     - defines the sound effect file with volume and pitch to
#                        play when one actor is healed
#   ALL_HEAL_SOUND     - defines the sound effect file with volume and pitch to
#                        play when all actors are healed
#   FULL_HEAL_SOUND    - defines the sound effect file with volume and pitch to
#                        play when all actors are healed completely
#   HEAL_COMMANDS      - list of healing commands in the menu
#   RIGHT_HEAL_WINDOWS - shows command windows on the right
#   HP_COST            - how much healing 1 HP costs
#   SP_COST            - how much healing 1 SP costs
#  
#  
# Note:
#
#   After the HP healing and SP healing costs have been calculated, they will
#   rounded up if the numbers are not integers.
#
#
# If you find any bugs, please report them here:
# http://www.chaosproject.co.nr
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

module BlizzCFG

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

 ONE_HEAL_SOUND = RPG::AudioFile.new('107-Heal03', 80, 100)
 ALL_HEAL_SOUND = RPG::AudioFile.new('108-Heal04', 80, 100)
 FULL_HEAL_SOUND = RPG::AudioFile.new('109-Heal05', 80, 100)
 HEAL_COMMANDS = ['Heal HP', 'Heal SP', 'States', 'Heal all HP',
     'Heal all SP', 'All states', 'Full Heal', 'Exit']
 RIGHT_HEAL_WINDOWS = true
 HP_COST = 0.2
 SP_COST = 2.0
 
 def self.state_cost(id)
   case id
   # START state costs
   #   when STATE_ID then return COST_TO_HEAL
   when 2 then return 100
   when 3 then return 50
   when 4 then return 50
   when 5 then return 50
   when 6 then return 50
   when 7 then return 100
   when 8 then return 100
   when 9 then return 200
   when 10 then return 200
   when 11 then return 200
   when 12 then return 200
   # END state costs
   end
   return 0
 end
 
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

end

#==============================================================================
# Array
#==============================================================================

class Array
 
 def sum
   sum = 0
   self.each {|i| sum += i if i.is_a?(Numeric)}
   return sum
 end
 
end

#==============================================================================
# Game_Battler
#==============================================================================

class Game_Battler
 
 def remove_negative_states
   @states.clone.each {|id| remove_state(id) if BlizzCFG.state_cost(id) > 0}
 end
 
 def has_negative_states?
   return @states.any? {|id| BlizzCFG.state_cost(id) > 0}
 end
 
 def recover_all
   @hp = maxhp
   @sp = maxsp
   remove_negative_states
 end
 
end

#==============================================================================
# Window_Dialog
#==============================================================================

class Window_Dialog < Window_Command
 
 def initialize(width, commands = ['Yes', 'No'], caption = 'Are you sure?')
   commands.push('')
   @caption = caption
   @cursor_width = 32
   super(width, commands)
   if $fontface != nil
     self.contents.font.name = $fontface
     self.contents.font.size = $fontsize
   elsif $defaultfonttype != nil
     self.contents.font.name = $defaultfonttype
     self.contents.font.size = $defaultfontsize
   end
   self.x, self.y, self.z = 320 - self.width/2, 200 - self.height/2, 1500
   @item_max, self.opacity = commands.size - 1, 192
   commands.each {|c|
       w = self.contents.text_size(c).width
       @cursor_width = w if @cursor_width < w}
   @cursor_width += 32
   refresh
   update_cursor_rect
 end
 
 def refresh
   super
   self.contents.font.color = system_color
   self.contents.draw_text(4, 0, self.width-40, 32, @caption, 1)
 end
 
 def draw_item(index, color)
   self.contents.font.color = color
   rect = Rect.new(4, 32 * (index+1), self.contents.width - 8, 32)
   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
   self.contents.draw_text(rect, @commands[index], 1)
 end
 
 def update_cursor_rect
   if @index < 0 || @item_max == 0
     self.cursor_rect.empty
   else
     x = (self.contents.width - @cursor_width) / 2
     self.cursor_rect.set(x, (@index + 1) * 32, @cursor_width, 32)
   end
 end
 
end

#==============================================================================
# Window_GoldCost
#==============================================================================

class Window_GoldCost < Window_Base
 
 attr_reader :cost
 
 def initialize
   super(0, 0, 160, 96)
   self.contents = Bitmap.new(width - 32, height - 32)
   if $fontface != nil
     self.contents.font.name = $fontface
     self.contents.font.size = $fontsize
   elsif $defaultfonttype != nil
     self.contents.font.name = $defaultfonttype
     self.contents.font.size = $defaultfontsize
   end
   self.cost = 0
 end
 
 def cost=(val)
   if @cost != val
     @cost = val
     refresh
   end
 end
 
 def refresh
   self.contents.clear
   cx = contents.text_size($data_system.words.gold).width
   self.contents.font.color = normal_color
   self.contents.draw_text(4, 32, 120 - cx - 2, 32, @cost.to_s, 2)
   self.contents.font.color = system_color
   self.contents.draw_text(4, 0, 120, 32, 'Cost')
   self.contents.draw_text(124 - cx, 32, cx, 32, $data_system.words.gold, 2)
 end
 
end

#==============================================================================
# Scene_PayToHeal
#==============================================================================

class Scene_PayToParty
 
 def initialize(hp_cost = BlizzCFG::HP_COST, sp_cost = BlizzCFG::SP_COST)
   @hp_cost, @sp_cost = hp_cost, sp_cost
 end
 
 def main
   @command_window = Window_Command.new(160, BlizzCFG::HEAL_COMMANDS)
   @command_window.index = 0
   @command_window.x = 480 if BlizzCFG::RIGHT_HEAL_WINDOWS
   @cost_window = Window_GoldCost.new
   @cost_window.x = 480 if BlizzCFG::RIGHT_HEAL_WINDOWS
   @cost_window.y = 320
   @gold_window = Window_Gold.new
   @gold_window.x = 480 if BlizzCFG::RIGHT_HEAL_WINDOWS
   @gold_window.y = 416
   @status_window = Window_MenuStatus.new
   @status_window.x = 160 if !BlizzCFG::RIGHT_HEAL_WINDOWS
   calculate_costs
   Graphics.transition
   loop do
     Graphics.update
     Input.update
     update
     break if $scene != self
   end
   Graphics.freeze
   @command_window.dispose
   @status_window.dispose
   @gold_window.dispose
   @cost_window.dispose
 end
 
 def update
   if @command_window.active
     update_command
   elsif @status_window.active
     update_status
   elsif @dialog_window != nil && @dialog_window.active
     update_dialog
   end
   if Input.repeat?(Input::C) || Input.repeat?(Input::B) ||
       Input.repeat?(Input::DOWN) || Input.repeat?(Input::LEFT) ||
       Input.repeat?(Input::RIGHT) || Input.repeat?(Input::UP)
     @cost_window.cost = get_cost
   end
 end
   
 def update_command
   @command_window.update
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     $scene = Scene_Map.new
   elsif Input.trigger?(Input::C)
     case @command_window.index
     when 0, 1, 2
       $game_system.se_play($data_system.decision_se)
       @command_window.active = false
       @status_window.active = true
       @status_window.index = 0
     when 3
       if $game_party.gold < @cost_window.cost ||
           !$game_party.actors.any? {|actor| actor.hp != actor.maxhp}
         $game_system.se_play($data_system.buzzer_se)
         return
       end
       $game_system.se_play($data_system.decision_se)
       create_dialog
     when 4
       if $game_party.gold < @cost_window.cost ||
           !$game_party.actors.any? {|actor| actor.sp != actor.maxsp}
         $game_system.se_play($data_system.buzzer_se)
         return
       end
       $game_system.se_play($data_system.decision_se)
       create_dialog
     when 4
       if $game_party.gold < @cost_window.cost ||
           !$game_party.actors.any? {|actor| actor.sp != actor.maxsp}
         $game_system.se_play($data_system.buzzer_se)
         return
       end
       $game_system.se_play($data_system.decision_se)
       create_dialog
     when 6
       if $game_party.gold < @cost_window.cost ||
           !$game_party.actors.any? {|actor| actor.sp != actor.maxsp ||
           actor.hp != actor.maxhp}
         $game_system.se_play($data_system.buzzer_se)
         return
       end
       $game_system.se_play($data_system.decision_se)
       create_dialog
     when 7
       $game_system.se_play($data_system.decision_se)
       $scene = Scene_Map.new
     end
   end
 end
 
 def update_status
   @status_window.update
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     @command_window.active = true
     @status_window.active = false
     @status_window.index = -1
   elsif Input.trigger?(Input::C)
     actor = $game_party.actors[@status_window.index]
     if $game_party.gold < @cost_window.cost ||
         @command_window.index == 0 && actor.maxhp == actor.hp ||
         @command_window.index == 1 && actor.maxsp == actor.sp ||
         @command_window.index == 2 && !actor.has_negative_states?
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     $game_system.se_play($data_system.decision_se)
     @status_window.active = false
     create_dialog
   end
 end
 
 def create_dialog
   @command_window.active = @status_window.active = false
   @dialog_window = Window_Dialog.new(256, ['Yes', 'No'],
       "This will cost #{@cost_window.cost} #{$data_system.words.gold}.")
 end
   
 def update_dialog
   @dialog_window.update
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     if @status_window.index >= 0
       @status_window.active = true
     else
       @command_window.active = true
     end
     @dialog_window.dispose
     @dialog_window = nil
   elsif Input.trigger?(Input::C)
     $game_system.se_play($data_system.decision_se)
     process_heal if @dialog_window.index == 0
     if @status_window.index >= 0
       @status_window.active = true
     else
       @command_window.active = true
     end
     @dialog_window.dispose
     @dialog_window = nil
   end  
 end
 
 def process_heal
   case @command_window.index
   when 0
     $game_system.se_play(BlizzCFG::ONE_HEAL_SOUND)
     actor = $game_party.actors[@status_window.index]
     actor.hp = actor.maxhp
     calculate_costs(@status_window.index)
   when 1
     $game_system.se_play(BlizzCFG::ONE_HEAL_SOUND)
     actor = $game_party.actors[@status_window.index]
     actor.sp = actor.maxsp
     calculate_costs(@status_window.index)
   when 2
     $game_system.se_play(BlizzCFG::ONE_HEAL_SOUND)
     $game_party.actors[@status_window.index].remove_negative_states
     calculate_costs(@status_window.index)
   when 3
     $game_system.se_play(BlizzCFG::ALL_HEAL_SOUND)
     $game_party.actors.each {|actor| actor.hp = actor.maxhp}
     calculate_costs
   when 4
     $game_system.se_play(BlizzCFG::ALL_HEAL_SOUND)
     $game_party.actors.each {|actor| actor.sp = actor.maxsp}
     calculate_costs
   when 5
     $game_system.se_play(BlizzCFG::ALL_HEAL_SOUND)
     $game_party.actors.each {|actor| actor.remove_negative_states}
     calculate_costs
   when 6
     $game_system.se_play(BlizzCFG::FULL_HEAL_SOUND)
     $game_party.actors.each {|actor| actor.recover_all}
     calculate_costs
   end
   $game_party.lose_gold(@cost_window.cost)
   @cost_window.cost = 0
   @gold_window.refresh
   @status_window.refresh
 end
 
 def calculate_costs(index = nil)
   if index == nil
     @hp_costs = []
     @sp_costs = []
     @state_costs = []
     $game_party.actors.each {|actor|
         @hp_costs.push((actor.maxhp - actor.hp) * @hp_cost)
         @sp_costs.push((actor.maxsp - actor.sp) * @sp_cost)
         cost = 0.0
         actor.states.each {|id| cost += BlizzCFG.state_cost(id)}
         @state_costs.push(cost)}
   else
     actor = $game_party.actors[index]
     @hp_costs[index] = (actor.maxhp - actor.hp) * @hp_cost
     @sp_costs[index] = (actor.maxsp - actor.sp) * @sp_cost
     @state_costs[index] = 0.0
     actor.states.each {|id| @state_costs[index] += BlizzCFG.state_cost(id)}
   end
 end
 
 def get_cost
   cost = 0.0
   if @status_window.index >= 0
     case @command_window.index
     when 0 then cost = @hp_costs[@status_window.index]
     when 1 then cost = @sp_costs[@status_window.index]
     when 2 then cost = @state_costs[@status_window.index]
     end
   else
     case @command_window.index
     when 3 then cost = @hp_costs.map {|c| c.ceil}.sum
     when 4 then cost = @sp_costs.map {|c| c.ceil}.sum
     when 5 then cost = @state_costs.map {|c| c.ceil}.sum
     when 6 then cost = (@hp_costs + @sp_costs + @state_costs).map {|c| c.ceil}.sum
     end
   end
   return cost.ceil
 end
 
end


                   Any one want to do this???  -  Is this even possible???
18
Script Requests / [XP] Script needed
June 05, 2010, 11:46:52 am
you know how the screen follows the player as you move around the map, well i need it follow an event the same way on the same map as the player with the flip on a switch and a variable for the event id that is to be followed I know this can be done with events but when i move diagonally it looks weired, ok.   Simple (i think)
19
i need these two scripts modified  to work with the caterpillar system from blizzard's Tons of addons v3.9b

sun script
Spoiler: ShowHide
#==============================================================================
# ** Sprite Sun
#------------------------------------------------------------------------------
#    Based on Sprite Shadow
#    modified by Rataime
#    New Edits by DerVVulfman
#    February 12, 2008
#------------------------------------------------------------------------------
#
# Introduction:
#
#  This system allows you and all 'prepared' events to generate shadows while
#  on the field map. The player can move around while a programmed 'sun' will
#  display a shadow.   Likewise,  events with a special comment  within their
#  event list can also generate shadows.
#
#------------------------------------------------------------------------------
#
# Instructions:
#
#  -- The Sun
#     To create a sun effect, you'll need to create a map event that's to be
#     used 'as' the sun itself.   Under most circumstances,  this will be an
#     event without a characterset graphic. You don't want to 'SEE' the sun,
#     do you?
#
#     To make one of these events a 'sun,  you'll need to insert a couple of
#     things into that event's  "List of Event Commands".   These things are
#     nothing more than comments.  
#
#     The first comment  to add is "begin Sun" (without quotes).  It informs
#     the system that this map  has a sun effect in use.   The remaining two
#     values  are optional  and have  default values  in  the  configuration
#     section  (only just added  into the script).   They too  are added  as
#     comments.
#
#     self_angle  'number'  --- How much of an angle each shadow will have.
#     self_opacity 'number' --- How dark the shadow will be.
#
#     After that, your characters can now move about and generate shadows.
#
#  -- Other Events
#     Events do not know that they can generate shadows.   To let them gene-
#     rate a shadow,  all you need to do is add a special comment into their
#     "List of Event Commands".   This comment needed  is merely  the phrase
#     'begin Shadow' (again, without quotes).
#
#
#------------------------------------------------------------------------------
#
# Revisions to note:
#
#  1) Added formatted headers and comments throughout the script.
#  2) Encapsulated a comment/parameter code in an XPML module.
#  3) Set the sun shadow array into an instance value to lower resource costs.
#  4) Compatability with Near Fantastica's Squad Movement systems.
#  5) Compatability with Ccoa's Caterpillar system.
#  6) Compatability with Trickster's Caterpillar system.
#  7) Added default shadow settings into the configuration section.
#
#==============================================================================



  #========================================================================
  #  **  C  O  N  F  I  G  U  R  A  T  I  O  N      S  Y  S  T  E  M  **  #
  #========================================================================
   # Caterpillar Systems
   CATERPILLAR_COMPATIBLE      = false    # Toggle for Fukuyama's original  
   SQUAD_MOVE_COMPATIBLE       = false   # Toggle for Near Fantastica's SBABS
   CCOA_CATER_COMPATIBLE       = false   # Toggle for Ccoa's Caterpillar
   TRICKSTER_CATER_COMPATIBLE  = false   # Toggle for Trickster's Caterpillar
   
   # Sun Specific Systems
   SUN_WARN                    = true    # Checks for older sun systems
   SUN_ANGLE                   = 30      # Angle for sun-generated shadow
   SUN_OPACITY                 = 100     # Darkness setting for sun shadow

   
  #========================================================================
  #  ****   E N D   O F   C O N F I G U R A T I O N   S Y S T E M   ****  #
  #========================================================================
 
 

#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
#  This class handles temporary data that is not included with save data.
#  Refer to "$game_temp" for the instance of this class.
#==============================================================================

class Game_Temp
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_accessor :sun_spriteset            # holds spritesets for 'sun' shadows
end



#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
#  This class handles the party. It includes information on amount of gold
#  and items. Refer to "$game_party" for the instance of this class.
#==============================================================================

class Game_Party
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_reader :characters
end



#==============================================================================
# ** Sprite_Sun
#------------------------------------------------------------------------------
#  This sprite is used to position character shadows relative to map position.
#  It observes the Game_Character class and automatically changes sprite
#  conditions.
#==============================================================================

class Sprite_Sun < RPG::Sprite
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_accessor :character          
 #--------------------------------------------------------------------------
 # * Object Initialization
 #     viewport  : viewport
 #     character : character (Game_Character)
 #     id        : id
 #--------------------------------------------------------------------------
 def initialize(viewport, character = nil, id=0)
   super(viewport)
   @character = character
   params=$game_temp.sun_spriteset.sun[id]
   self_angle    = SUN_ANGLE
   self_opacity  = SUN_OPACITY
   self_angle    = params[0]   if params.size > 0
   self_opacity  = params[1]   if params.size > 1
   @self_angle   = self_angle
   @self_opacity = self_opacity
   update
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------  
 def update
   super
   # If tile ID, file name, or hue are different from current ones
   if @tile_id != @character.tile_id or
      @character_name != @character.character_name or
      @character_hue != @character.character_hue
     # Remember tile ID, file name, and hue
     @tile_id = @character.tile_id
     @character_name = @character.character_name
     @character_hue = @character.character_hue
     # If tile ID value is valid      
     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
     # If tile ID value is invalid        
     else
       self.bitmap = RPG::Cache.character(@character.character_name,
         @character.character_hue)
       @cw = bitmap.width / 4
       @ch = bitmap.height / 4
       self.ox = @cw / 2
       self.oy = @ch
     end
   end
   # Set visible situation
   self.visible = (not @character.transparent)
   # If graphic is character
   if @tile_id == 0
     # Set rectangular transfer    
     sx = @character.pattern * @cw
     @direct = @character.direction
     if self.angle > 90 or angle < -90
       sy = ( 4 - 2) / 2 * @ch                   if @direct == 6
       sy = ( 6 - 2) / 2 * @ch                   if @direct == 4
       sy = (@character.direction - 2) / 2 * @ch if @direct != 4 and @direct != 6
     else
       sy = (@character.direction - 2) / 2 * @ch
     end
     self.src_rect.set(sx, sy, @cw, @ch)
   end
   # Set sprite coordinates
   self.x = @character.screen_x
   self.y = @character.screen_y-5
   self.z = @character.screen_z(@ch) - 1
   # Set opacity level, blend method, and bush depth
   self.opacity = @self_opacity
   self.blend_type = @character.blend_type
   self.bush_depth = @character.bush_depth
   # Animation
   if @character.animation_id != 0
     animation = $data_animations[@character.animation_id]
     animation(animation, true)
     @character.animation_id = 0
   end
   self.angle = @self_angle.to_i - 90
   self.color = Color.new(0, 0, 0)
 end
end



#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
#  This sprite is used to display the character.It observes the Game_Character
#  class and automatically changes sprite conditions.
#==============================================================================

class Sprite_Character < RPG::Sprite
 #--------------------------------------------------------------------------
 # * Alias Listings
 #--------------------------------------------------------------------------  
 alias sun_initialize initialize
 alias sun_update update
 #--------------------------------------------------------------------------
 # * Object Initialization
 #     viewport  : viewport
 #     character : character (Game_Character)
 #--------------------------------------------------------------------------
 def initialize(viewport, character = nil)
   @character = character
   super(viewport)
   @sunlist=[]
   if character.is_a?(Game_Event) and $game_temp.sun_spriteset.sun != []
     params = XPML.XPML_read("Shadow", @character.id, 2)
     if params != nil
       for i in 0...$game_temp.sun_spriteset.sun.size
         @sunlist.push(Sprite_Sun.new(viewport, @character, i))
       end
     end
   end
   if character.is_a?(Game_Player) and $game_temp.sun_spriteset.sun != []
     for i in 0...$game_temp.sun_spriteset.sun.size
       @sunlist.push(Sprite_Sun.new(viewport, $game_player, i))
     end
     #===================================================
     # * Compatibility with Caterpillar Functions
     #===================================================
     if CATERPILLAR_COMPATIBLE and $game_party.characters != nil
       for member in $game_party.characters
         for i in 0...$game_temp.sun_spriteset.sun.size
           @sunlist.push(Sprite_Sun.new(viewport, member, i))
         end
       end
     end
     if SQUAD_MOVE_COMPATIBLE and $game_allies.values != nil
       for member in $game_allies.values
         for i in 0...$game_temp.sun_spriteset.sun.size
           @sunlist.push(Sprite_Sun.new(viewport, member, i))
         end
       end
     end
     if CCOA_CATER_COMPATIBLE and $game_train.actors != nil
       for member in $game_train.actors
         for i in 0...$game_temp.sun_spriteset.sun.size
           @sunlist.push(Sprite_Sun.new(viewport, member, i))
         end
       end
     end
     if TRICKSTER_CATER_COMPATIBLE and $game_party.followers != nil
       for member in $game_party.followers
         for i in 0...$game_temp.sun_spriteset.sun.size
           @sunlist.push(Sprite_Sun.new(viewport, member, i))
         end
       end
     end
     #===================================================
     # ** End of the compatibility
     #===================================================      
   end
   # Perform the original call
   sun_initialize(viewport, @character)
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------  
 def update
   sun_update
   if @sunlist != []
     for i in 0...@sunlist.size
       @sunlist.update
     end
   end
 end  
end



#==============================================================================
# ** Game_Event
#------------------------------------------------------------------------------
#  This class deals with events. It handles functions including event page
#  switching via condition determinants, and running parallel process events.
#  It's used within the Game_Map class.
#==============================================================================

class Game_Event < Game_Character
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_accessor :id
end



#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
#  This class brings together map screen sprites, tilemaps, etc.
#  It's used within the Scene_Map class.
#==============================================================================

class Spriteset_Map
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------  
 attr_accessor :sun
 #--------------------------------------------------------------------------
 # * Alias Listings
 #--------------------------------------------------------------------------  
 alias sun_initialize initialize
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------    
 def initialize
   @sun = []
   $game_temp.sun_spriteset = self
   warn = false
   for k in $game_map.events.keys.sort
     if ($game_map.events[k].list != nil and
         $game_map.events[k].list[0].code == 108 and
         ($game_map.events[k].list[0].parameters == ["sun"] or
         $game_map.events[k].list[0].parameters == ["o"]))
       warn = true
     end
     params = XPML.XPML_read("Sun", k, 2)
     $game_temp.sun_spriteset.sun.push(params) if params != nil
   end
   if warn == true and SUN_WARN
     p "Warning : At least one event on this map uses an obsolete way to add a sun effect"
   end
   # Perform the original call
   sun_initialize
 end  
end


#==============================================================================
# ** module XPML
#------------------------------------------------------------------------------
#  This module handles the reading and passing of 'comment' parameters
#
#  The main XPML method is used to check and read event comments.
#  * It returns 'nil' if the markup 'check' text isn't even present.
#  * It returns [] if no parameters are passed
#  * It returns a parameter list with "int" converted as int.
#       eg :
#       begin first
#       begin second
#       param1 1
#       param2 two
#       begin third
#       anything 3
#
#   p XPML_read("first", event_id) -> []
#   p XPML_read("second", event_id) -> [1,"two"]
#   p XPML_read("third", event_id) -> [3]
#   p XPML_read("forth", event_id) -> nil
#===================================================

module XPML
 module_function
 #--------------------------------------------------------------------------
 # * XPML_read
 #     markup           : text in event comment to check
 #     event_id         : event ID
 #     max_param_number : maximum number of parameter/comments to load
 #--------------------------------------------------------------------------  
 def XPML_read(markup, event_id, max_param_number = 0)
   parameter_list = nil
   event = $game_map.events[event_id]
   return if event.list == nil
     for i in 0...event.list.size
       if event.list.code == 108 and
         event.list.parameters[0].downcase == "begin " + markup.downcase
         parameter_list = [] if parameter_list == nil
         for j in i + 1...event.list.size
           if event.list[j].code == 108
             parts = event.list[j].parameters[0].split
             if parts.size != 1 and parts[0].downcase != "begin"
               if parts[1].to_i != 0 or parts[1] == "0"
                 parameter_list.push(parts[1].to_i)
               else
                 parameter_list.push(parts[1])
               end
             else
               return parameter_list
             end
           else
             return parameter_list
           end
           if max_param_number != 0 and j == i + max_param_number
             return parameter_list
           end
         end
       end
     end
   return parameter_list
 end
end

shadow script
Spoiler: ShowHide
#==============================================================================
# ¡ Sprite_Shadow (Sprite_Ombre )
# Based on Genzai Kawakami's shadows, dynamisme&features by Rataime, extra features Boushy
#==============================================================================

CATERPILLAR_COMPATIBLE = true

class Game_Party
attr_reader :characters
end

class Sprite_Shadow < RPG::Sprite

attr_accessor :character

def initialize(viewport, character = nil,source = nil,anglemin=0,anglemax=0,distancemax=0)
  super(viewport)
  @anglemin=anglemin.to_f
  @anglemax=anglemax.to_f
  @distancemax=distancemax.to_f
  @character = character
  @source = source
  update
end

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)
      @cw = bitmap.width / 4
      @ch = bitmap.height / 4
      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
    if self.angle>90 or angle<-90
      if @character.direction== 6
             sy = ( 4- 2) / 2 * @ch
      end
      if @character.direction== 4
             sy = ( 6- 2) / 2 * @ch
      end
      if @character.direction== 2
             sy = ( 8- 2) / 2 * @ch
      end
      if @character.direction== 8
             sy = ( 2- 2) / 2 * @ch
      end
    end
    self.src_rect.set(sx, sy, @cw, @ch)
  end
  self.x = @character.screen_x
  self.y = @character.screen_y-5
  self.z = @character.screen_z(@ch)-1
  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
  @deltax=@source.x-self.x
  @deltay= @source.y-self.y
  self.angle = 57.3*Math.atan2(@deltax, @deltay )
  @angle_trigo=self.angle+90
  if @angle_trigo<0
    @angle_trigo=360+@angle_trigo
  end
  self.color = Color.new(0, 0, 0)
  @distance = ((@deltax ** 2) + (@deltay ** 2))
  if$game_map.shadows==-1
    self.opacity = 0
  else
    self.opacity = 1200000/(@distance+6000)    
  end
  @distance = @distance ** 0.5
  if @distancemax !=0 and @distance>=@distancemax
    self.opacity=0
  end
  if @anglemin !=0 or @anglemax !=0
     if (@angle_trigo<@anglemin or @angle_trigo>@anglemax) and @anglemin<@anglemax
       self.opacity=0
     end
     if (@angle_trigo<@anglemin and @angle_trigo>@anglemax) and @anglemin>@anglemax
       self.opacity=0
     end    
  end
end
end

#===================================================
# ¥ CLASS Sprite_Character edit
#===================================================

class Sprite_Character < RPG::Sprite
alias shadow_initialize initialize

def initialize(viewport, character = nil)
  @character = character
  super(viewport)
  @ombrelist=[]
  if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["s"])
    if (character.list[1]!=nil and character.list[1].code == 108)
      @anglemin=character.list[1].parameters[0]
    end
    if (character.list[2]!=nil and character.list[2].code == 108)
      @anglemax=character.list[2].parameters[0]
    end
    if (character.list[3]!=nil and character.list[3].code == 108)
      @distancemax=character.list[3].parameters[0]
    end  
   for i in $game_map.events.keys.sort
    if ($game_map.events.is_a?(Game_Event) and $game_map.events.list!=nil and $game_map.events.list[0].code == 108 and $game_map.events.list[0].parameters == ["o"])
      @ombrelist[i+1] = Sprite_Shadow.new(viewport, $game_map.events,self,@anglemin,@anglemax,@distancemax)
    end
   end
   @ombrelist[1] = Sprite_Shadow.new(viewport, $game_player,self,@anglemin,@anglemax,@distancemax)
#===================================================
# œ Compatibility with fukuyama's caterpillar script
#===================================================
if CATERPILLAR_COMPATIBLE and $game_party.characters!=nil

for member in $game_party.characters
  @ombrelist.push(Sprite_Shadow.new(viewport, member,self,@anglemin,@anglemax,@distancemax))
end

end
#===================================================
# œ End of the compatibility
#===================================================
  end
  shadow_initialize(viewport, @character)
end

alias shadow_update update

def update
  shadow_update
  if @ombrelist!=[]
    for i in 1..@ombrelist.size
      if @ombrelist!=nil
        @ombrelist.update
      end
    end
  end
end  

end

#===================================================
# ¥ CLASS Scene_Save edit
#===================================================
class Scene_Save < Scene_File

alias shadows_write_save_data write_save_data

def write_save_data(file)
  $game_map.shadows = nil
  shadows_write_save_data(file)
end
end

#===================================================
# ¥ CLASS Game_Map edit
#===================================================
class Game_Map
attr_accessor :shadows
end


                                      i know it can be done
20
Script Requests / [XP]battle system modification
June 03, 2010, 09:02:47 pm
i need a script that is similar to the default battle system but you get to chose the type of attack like in pokemon
21
Resources / Windowskins!!!
May 08, 2010, 06:19:24 pm
Here are some windowskins I have made. you can use them, just give me credit.


Spoiler: ShowHide

























comments anyone?
22
Script Requests / Request: SLOLS mod.
May 04, 2010, 08:53:23 pm
In the minigame SLOLS by Zeriab, you collect dots and the number of dots u collect is stored in a variable. I want to give the player one gold for every dot they collect when they exit the game. could someone tell me how to do this or do it for me?
the script can be found here:
http://rmvxp.com/showthread.php?tid=590

               cant be too hard, right
23
Resource Requests / [RESOLVED] [XP]sprite needed
May 02, 2010, 05:15:47 pm
i need a sprite for RPG Maker XP of shadow from final fantasy you'll have to find a picture off the web because I don't know how to put one in.
24
Script Requests / [Resolved] new message system
May 02, 2010, 11:32:40 am
nothing fancy, i need a script that just has letter by letter text like in Ccoca's UMS. very simple right?
         thanks in advance.