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.

Messages - zephrael

1
RMXP Script Database / Re: [XP] Blizz-ABS
June 07, 2013, 07:50:55 pm
Perfect! Excellent! Thank you so much, I'm indebted to you! You've helped me a great deal and I appreciate the time and effort you took to help me. You're an angel!
2
RMXP Script Database / Re: [XP] Blizz-ABS
June 07, 2013, 07:34:28 pm
Should it? It doesn't seem to. It gives one error and says to check inserter.log, then another telling me Initialization couldn't be found, and then just closes.

Thanks, I hope it turns out I have just been repeating some silly mistake and this will sort it once and for all!

EDIT: Hrrm damn. Okay so I deleted all my Hermes files, replaced them all with the default ones from the Hermes demo (just in case) and then replaced those two with the fixes you sent me. But... still, the same thing. When I move, the async message detaches from the guy's head, stuck to the same place on the screen. Could I trouble you to send me the actual whole fixed demo? 'Cause if that works for you, I see no way that it couldn't work for me. I'm sorry to be such a nuisance!
3
RMXP Script Database / Re: [XP] Blizz-ABS
June 07, 2013, 07:26:15 pm
Bah. I'm fairly certain that I followed your instructions just fine, but it was still doing that, with the async messages messing about... So I re-copied the Hermes fixes into the data files, and this time instead it just gave me an error on startup, saying that it couldn't fine the Initialization script. I tried several times to make sure that I wasn't pasting it wrong or deleting anything, but the same every time. Maybe if you uploaded and sent me your 'version' that you say works fine?
4
RMXP Script Database / Re: [XP] Blizz-ABS
June 07, 2013, 06:14:14 pm
Hrmm. Having a different issue now. It seemed to work perfectly, but then I noticed that when an async message goes, if the player moves, the message stays on the same place in the screen... which is to say, if you walk away from the 'talking' event, the message just follows you rather than staying above them. It does that once, then, if it's repeating, appears at the top of the screen (i.e. the default message position) the second time around. Also, it interrupts 'ordinary' message (cuts them off short), which, you know, it shouldn't usually do. Here's a demo (Cut down to one testing map so I don't give you 90MB of stuff useless to you!) of my actual game if you're still willing to help me out. Thanks for everything so far though!

(Incidentally, ignore the name of the project. When i started it I just used an online game name generator to get a placeholder, with... interesting results.)

Watch out, it's still fairly big.
5
RMXP Script Database / Re: [XP] Blizz-ABS
June 07, 2013, 04:37:08 pm
Oh, okay! That hasn't been a problem in my main game so far, so I must have already edited it correctly. Somehow.
6
RMXP Script Database / Re: [XP] Blizz-ABS
June 07, 2013, 02:10:52 pm
It goes...

\p[1,async]Blablabla!


Which essentially means: Position the text over event one and make it asynchronous. The same event works just fine until Blizz is introduced. I'll make a quick demo and upload it if you like, but I should point out that Hermes works a little weirdly anyway: It has quite a lot of scripts, which are in a separate folder within the Data folder, and all you put in the actual script editor is an 'Inserter' script at the top which grabs those scripts from the folder on game startup and runs them.

Here's the demo. in the root of the .rar is the demo without Blizz ABS included, then there's a further .rar inside that with the Blizz scripts added so you can compare. Anyway, when I put this together, I came across a new error I haven't seen before... You'll see when you look at it, but whenever the game (with Blizz included) tries to draw a message using the Hermes positioning (\p[eventid]), it gives an error and the whole thing closes. Thanks for helping!
7
RMXP Script Database / Re: [XP] Blizz-ABS
June 07, 2013, 09:58:39 am
This was asked a while back, but I don't think the issue was ever resolved... It's about compatibility with the Hermes CMS. That system has a particular feature that lets you have 'asynchronised' messages - i.e. messages that play parallel, but during which the player can still walk around, so it gives the effect of conversations going on in the background while the player walks past or whatever. This - alongisde positioning messages over an event like a speechbubble - is quite an important feature in my game since I want it to feel like a living world rather than just... an RPG where people only speak if spoken to. But when I try to use it alongside Blizz ABS, whenever one of these asynchronised messages should happen, instead the message is printed above the player's head (even though, in the message, it is told to go above the event who is 'talking'), and the async feature does't work at all - it just says "[async]" at the start of the message, which is, of course, the tag used in the message to tell it to do it. But instead it just prints it like that.

Has anybody had this issue before and sorted it out, or could anybody with good scripting knowledge put the two scripts together and try and work out what's going on? Thanks!
8
Yeah, this script is useful, but I've noticed that error too :/ Also, there's very little instruction in this script, so would anybody be able to take a look and suggest to me what to change to make the "(number)X" text in line and the same size as the displayed item name?

EDIT: With a bit of tinkering, I managed to align the text properly. But I'd also possibly like it if somebody could alter the script to allow the message to be shown when the player recieves gold as well, and possibly play a different sound in this instance?
9
Script Requests / "Item recieved" message script
June 02, 2013, 05:02:01 pm
Evening all,

In my game, whenever an item is received, a message is displayed on a special windowskin, semi-transparent, across the middle of the screen, saying "You got 3 whatevers, 2 somethings and some whatchamacallit!" alongside the items' icons, like so:
Spoiler: ShowHide

However, I'm using the Hermes message system, which allows me to have 'asynchronised' messages running simultaneously (As in more than one at once, and the player can still move while the messages show), like so:
Spoiler: ShowHide

BUT because I change the windowskin to a special one for the item messages, if an item is received at the same time as one of these asynchronised messages, that message gets the item windowskin and looks wrong, like so (look at the top-right!):
Spoiler: ShowHide

I know very little about scripting, but I assume that something like this, that generates a message in the middle on a special windowskin and uses the icons etc like in my screenshot, would be quite simple to script. Does anybody know of a similar system, or would anybody be kind enough to whip something up - if it's as easy as I guess?
10
Here's the code:
Spoiler: ShowHide
#===============================================================================
# ■ Ring Menu Modification by Reno-s--Joker v 1.2
#===============================================================================
# This is a simple aesthetic modification to this awesome Ring Menu I found.
# It makes a small change to the actor selection window, making it available
# at all times instead of popping up on the side of the screen when it's needed.
# It also integrates the location window into the player select window, and I
# have added an animated status window.
# Note that this mod reduces the area of the screen where the ring menu looks
# good/is visible. You can remove the show player location function to counter
# this.
#
# This updated version features a suggestion by Starrodkirby86 for the addon
# windows to be moved to the top or bottom of the screen according to the
# player's position.
# It also includes a request by Kagutsuchi for the encounter chance to appear
# in the menu and some other minor script modifications.
#
# I've also included an experimental version of the ring menu for the title
# screen.
#
# In v 1.2, I have included a feature which moves the ring menu when the player
# is at the edges of the screen, the credits for which go to Landith and Aqua.
#
# If you have any issues with my modification, please report them at
# chaos-project.org
# Original script authors see below.
#===============================================================================
# ■ Ring Menu - Show Player Location - Release #1 (Edited By Dubealex)
#===============================================================================
# For more infos and update, visit:
# rmxp.dubealex.com [OR] X-RPG V2 Forum
#
# Original Ring Menu by: 和希 (From XRXS)
# Original Edit and Fix by: Maki
# Show Player Location Version by: Dubealex
#
# You can customize this script at line #35 - Have fun !!
# If you want to show more stuff, its easy to do, just ask, and I will release
# new version of this edited script !
#
# alex@dubealex.com
#===============================================================================

#===============================================================================
# ▼ CLASS Scene_Menu Begins
#===============================================================================
class Scene_Menu
#--------------------------------------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#     menu_index : ƒRƒ}ƒ"ƒh,̃J[ƒ\ƒ‹‰ŠúˆÊ'u
#     I modified it to get rid of unnecessary config variables
#--------------------------------------------------------------------------
def initialize(menu_index = 0, actor_index = 0)
  @menu_index = menu_index
  @actor_index = actor_index # New addition for new window
  $ring_menu_text=[]
  $chara_select=[]
  @window_opacity=[]
 
#-------------------------------------------------------------------------------
# ■ Ring Menu Customization Section: (By Dubealex)
#-------------------------------------------------------------------------------
# Those variables defines how the script will act.
# Simply change the value by those you want.
# Remember that changing the font size has its limitation due to text space
# allocation.
#
# This section has been modified to remove some unused variables
   
# ▼ SHOW LOCATION WINDOW SETTINS:
   @window_opacity[0]=200                             # Border Opacity
   @window_opacity[1]=32                             # Background Opacity
   
# ▼  TEXT SETTINGS FOR INSIDE THE RING MENU:
   $ring_menu_text[0]="Tahoma"      # Font Type
   $ring_menu_text[1]="Inventory"         # Items Menu Text
   $ring_menu_text[2]="Skills"          # Skills Menu Text
   $ring_menu_text[3]="Equip"         # Equip Menu Text
   $ring_menu_text[4]="Attributes"          # Stats Menu Text
   $ring_menu_text[5]="Save Game"          # Save Menu Text
   $ring_menu_text[6]="End Game"           # Quit Menu Text
   $ring_menu_text[7]=0                  # Font Color
   $ring_menu_text[8]=22                # Font Size
   
# ▼  CHARACTER SELECTION WINDOW SETTINGS :
   $chara_select[0]="Tahoma"       # Font Type
   $chara_select[1]=0                   # Font Color
   $chara_select[5]=22                  # Font Size
   $chara_select[2]=255               # Window Border Opacity
   $chara_select[3]=130               # Window Background Opacity
   $chara_select[4]="windows kin"  # Window Skin to use
#-------------------------------------------------------------------------------
end
#--------------------------------------------------------------------------
# Main
#--------------------------------------------------------------------------
def main
  @actor = $game_party.actors[@actor_index]
  # Setup for all the new windows
  @playtime_window = Window_PlayTime.new
     @playtime_window.x = 492
     @playtime_window.opacity = @window_opacity[0]
     @playtime_window.back_opacity = @window_opacity[1]
   @steps_window = Window_Steps.new
     @steps_window.x = 0
     @steps_window.opacity = @window_opacity[0]
     @steps_window.back_opacity = @window_opacity[1]
   @gold_window = Window_Gold.new
     @gold_window.x = 492
     @gold_window.opacity = @window_opacity[0]
     @gold_window.back_opacity = @window_opacity[1]
   @status_window = Window_Status.new(@actor)
     @status_window.active = false
     @status_window.x = 80
     @status_window.z = 1999
     @status_window.opacity = @window_opacity[0]
     @status_window.back_opacity = 200
 
  # ƒXƒvƒ‰ƒCƒgƒZƒbƒg,ðì¬
  @spriteset = Spriteset_Map.new
  # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,ðì¬
 
  # This section by Dubealex makes the menu appear centred around the actor.
  # In version 1.2 it incorporates the option for an edge screen hiding fix
  # (where parts of the menu can't be seen near the edges of the screen) by
  # Landith and Aqua.
  # Set it to true or false in the config.
  unless RM_CFG::Edge_Hide_Fix == true
    px = $game_player.screen_x - 15
    py = $game_player.screen_y - 24
  else
    if $game_player.screen_x >= 576
      px = $game_player.screen_x - 15 - 64
    elsif $game_player.screen_x <= 64
      px = $game_player.screen_x - 15 + 64
    else
      px = $game_player.screen_x - 15
    end
   if $game_player.screen_y >= 416
    py = $game_player.screen_y - 24 - 64
   elsif $game_player.screen_y <= 64
    py = $game_player.screen_y - 24 + 64
   else
    py = $game_player.screen_y - 24
   end
 end
  @command_window = Window_RingMenu.new(px,py)
 
  @command_window.index = @menu_index
  # ƒp[ƒeƒBl",ª 0 l,̏ꍇ
   # If number of party members is 0
     if $game_party.actors.size == 0
       # Disable items, skills, equipment, status and save
       @command_window.disable_item(0)
       @command_window.disable_item(1)
       @command_window.disable_item(2)
       @command_window.disable_item(3)
       @command_window.disable_item(4)
     end
  @command_window.z = 100
   # If save is forbidden
     if $game_system.save_disabled
       # Disable save
       @command_window.disable_item(4)
     end
  # ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE,ðì¬
  @party_window = Window_RingMenuParty.new
  @party_window.x = 148
  @party_window.z = 200
  @party_window.height = 128
  @party_window.opacity=255
  @party_window.back_opacity=255
  @party_window.visible = true
  @party_window.active = false
 
#--------------------------------------------------------------------------
# This new section was suggested by Starrodkirby86 - Thanks! ;)
# It determines where to move the addon menu windows according to the player's
# position - to the top or to the bottom of the screen.
#--------------------------------------------------------------------------  
   if $game_player.screen_y < 352
    @playtime_window.y = 352
    @steps_window.y = 352
    @gold_window.y = 416
    @status_window.y = -320
    @party_window.y = 352
   elsif $game_player.screen_y >= 352
    @playtime_window.y = 0
    @steps_window.y = 0
    @gold_window.y = 64
    @status_window.y = 800
    @party_window.y = 0
   end
 
  # ƒgƒ‰ƒ"ƒWƒVƒ‡ƒ"ŽÀs
  Graphics.transition
  # ƒƒCƒ"ƒ‹[ƒv
  loop do
    # ƒQ[ƒ€‰æ-Ê,ðXV
    Graphics.update
    # "ü--͏î•ñ,ðXV
    Input.update
    # ƒtƒŒ[ƒ€XV
    update
    # ‰æ-Ê,ªØ,è'Ö,í,Á,½,烋[ƒv,ð'†'f
    if $scene != self
      break
    end
  end
  # ƒgƒ‰ƒ"ƒWƒVƒ‡ƒ"€"õ
  Graphics.freeze
  # ƒXƒvƒ‰ƒCƒgƒZƒbƒg,ð‰ð•ú
  @spriteset.dispose
  # ƒEƒBƒ"ƒhƒE,ð‰ð•ú
  @playtime_window.dispose
  @steps_window.dispose
  @gold_window.dispose
  @status_window.dispose
  @command_window.dispose
  @party_window.dispose
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV
#--------------------------------------------------------------------------
def update
  # ƒEƒBƒ"ƒhƒE,ðXV
  @playtime_window.update
  @steps_window.update
  @gold_window.update
  @status_window.update
  @command_window.update
  # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,ªƒAƒNƒeƒBƒu,̏ꍇ: update_command ,ðŒÄ,Ô
  if @command_window.active
    update_command
    return
  end
  # ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE,ªƒAƒNƒeƒBƒu,̏ꍇ: update_party ,ðŒÄ,Ô
  if @party_window.active
    @party_window.update
    update_party
    return
  end
  if @status_window.active
    if $game_player.screen_y < 352
      if @status_window.y < 16
        @status_window.y += 16 # This animates the window
      end
    elsif $game_player.screen_y >= 352
      if @status_window.y > 144
        @status_window.y -= 16 # This animates the window
      end
    end
      update_playerstatus
     return
   end
 end
 def update_playerstatus
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     if $game_player.screen_y < 352
       @status_window.y = -320
     else
       @status_window.y = 800
     end
     @status_window.active = false
     @party_window.active = true
   end
 end
#--------------------------------------------------------------------------
 # * Frame Update (when command window is active)
 #--------------------------------------------------------------------------
 def update_command
  # B ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
  if Input.trigger?(Input::B)
    # ƒLƒƒƒ"ƒZƒ‹ SE ,ð‰‰'t
    $game_system.se_play($data_system.cancel_se)
    # ƒ}ƒbƒv‰æ-Ê,ɐØ,è'Ö,¦
    $scene = Scene_Map.new
    return
  end
  # C ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
  if Input.trigger?(Input::C)
    # ƒp[ƒeƒBl",ª 0 l,ŁAƒZ[ƒuAƒQ[ƒ€I--¹ˆÈŠO,̃Rƒ}ƒ"ƒh,̏ꍇ
    if $game_party.actors.size == 0 and @command_window.index < 4
      # ƒuƒU[ SE ,ð‰‰'t
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,̃J[ƒ\ƒ‹ˆÊ'u,Å•ªŠò
    case @command_window.index
   when 0  # item
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Switch to item screen
       $scene = Scene_Item.new
   when 1  # skill
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Make status window active
       @command_window.active = false
       @party_window.active = true
       @party_window.visible = true
       @party_window.index = 0
   when 2  # equipment
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Make status window active
       @command_window.active = false
       @party_window.active = true
       @party_window.visible = true
       @party_window.index = 0
   when 3 # Status selected
       $game_system.se_play($data_system.decision_se)
       @command_window.active = false
       @party_window.active = true
       @party_window.visible = true
       @party_window.index = 0
   when 4  # save
       # If saving is forbidden
       if $game_system.save_disabled
         # Play buzzer SE
         $game_system.se_play($data_system.buzzer_se)
         return
       end
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Switch to save screen
       $scene = Scene_Save.new
   when 5  # end game
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Switch to end game screen
       $scene = Scene_End.new
   end
   return
 end
  # ƒAƒjƒ[ƒVƒ‡ƒ"'†,È,çƒJ[ƒ\ƒ‹,̏ˆ--,ðs,í,È,¢
  return if @command_window.animation?
  # ªor© ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
  if Input.press?(Input::UP) or  Input.press?(Input::LEFT)
    $game_system.se_play($data_system.cursor_se)
    @command_window.setup_move_move(Window_RingMenu::MODE_MOVEL)
    return
  end
  # «or¨ ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
  if Input.press?(Input::DOWN) or  Input.press?(Input::RIGHT)
    $game_system.se_play($data_system.cursor_se)
    @command_window.setup_move_move(Window_RingMenu::MODE_MOVER)
    return
  end
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV (ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE,ªƒAƒNƒeƒBƒu,̏ꍇ)
#--------------------------------------------------------------------------
def update_party
  # B ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
  if Input.trigger?(Input::B)
    # ƒLƒƒƒ"ƒZƒ‹ SE ,ð‰‰'t
    $game_system.se_play($data_system.cancel_se)
    # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE,ðƒAƒNƒeƒBƒu,É,·,é
    @command_window.active = true
    @party_window.active = false
    @party_window.index = -1
    return
  end
  # C ƒ{ƒ^ƒ",ª‰Ÿ,³,ê,½ê‡
 if Input.trigger?(Input::C)
     # Branch by command window cursor position
     case @command_window.index
     when 1  # skill
       # If this actor's action limit is 2 or more
       if $game_party.actors[@party_window.index].restriction >= 2
         # Play buzzer SE
         $game_system.se_play($data_system.buzzer_se)
         return
       end
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Switch to skill screen
       $scene = Scene_Skill.new(@party_window.index)
     when 2  # equipment
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Switch to equipment screen
       $scene = Scene_Equip.new(@party_window.index)
     when 3  # status
       # Play decision SE
       $game_system.se_play($data_system.decision_se)
       # Switch to status screen
       @actor = $game_party.actors[@party_window.index]
       @status_window.update_actor(@actor)
       @status_window.active = true
       @party_window.active = false
     end
     return
   end
end
end
#===============================================================================
# ▲ CLASS Scene_Menu Ends
#===============================================================================

#===============================================================================
# ▼ CLASS Window_RingMenu Begins
# This is mostly the original ring menu script and was not created by me.
# Therefore I have left the (unreadble) comments untouched.
# Some minor modifcations have been made to accomodate extra menu entries.
#===============================================================================
class Window_RingMenu < Window_Base
#--------------------------------------------------------------------------
# › ƒNƒ‰ƒX'è"
#--------------------------------------------------------------------------
STARTUP_FRAMES = 20
MOVING_FRAMES = 5  
RING_R = 64      
ICON_ITEM    = RPG::Cache.icon(RM_CFG::Item_Icon)
ICON_SKILL   = RPG::Cache.icon(RM_CFG::Skill_Icon)
ICON_EQUIP   = RPG::Cache.icon(RM_CFG::Equip_Icon)
ICON_STATUS  = RPG::Cache.icon(RM_CFG::Status_Icon)
ICON_SAVE    = RPG::Cache.icon(RM_CFG::Save_Icon)
ICON_EXIT    = RPG::Cache.icon(RM_CFG::Exit_Icon)
ICON_DISABLE = RPG::Cache.icon(RM_CFG::Disabled_Icon)
SE_STARTUP = RM_CFG::Openmenu_Se
MODE_START = 1
MODE_WAIT  = 2
MODE_MOVEL = 3
MODE_MOVER = 4
#--------------------------------------------------------------------------
# › ƒAƒNƒZƒT
#--------------------------------------------------------------------------
attr_accessor :index
#--------------------------------------------------------------------------
# The stuff in the section below can be accomodated for new menu entries
#--------------------------------------------------------------------------
def initialize( center_x, center_y )
  super(0, 0, 640, 480)
  self.contents = Bitmap.new(width-32, height-32)
  self.contents.font.name = $ring_menu_text[0]
  self.contents.font.color = text_color($ring_menu_text[7])
  self.contents.font.size = $ring_menu_text[8]
  self.opacity = 0
  self.back_opacity = 0
  s1 = $ring_menu_text[1]
  s2 = $ring_menu_text[2]
  s3 = $ring_menu_text[3]
  s4 = $ring_menu_text[4]
  s5 = $ring_menu_text[5]
  s6 = $ring_menu_text[6]
  @commands = [s1, s2, s3, s4, s5, s6]
  # I changed this to prevent glitches when modifying the number of menu items
  @item_max = @commands.size
  @index = 0
  @items = [ICON_ITEM, ICON_SKILL, ICON_EQUIP, ICON_STATUS, ICON_SAVE, ICON_EXIT]
  @disabled = [false, false, false, false, false, false]
  @cx = center_x - 16
  @cy = center_y - 16
  setup_move_start
  refresh
end
#--------------------------------------------------------------------------
# œ ƒtƒŒ[ƒ€XV
#--------------------------------------------------------------------------
def update
  super
  refresh
end
#--------------------------------------------------------------------------
# œ ‰æ-ʍĕ`‰æ
#--------------------------------------------------------------------------
def refresh
  self.contents.clear
  # ƒAƒCƒRƒ",ð•`‰æ
  case @mode
  when MODE_START
    refresh_start
  when MODE_WAIT
    refresh_wait
  when MODE_MOVER
    refresh_move(1)
  when MODE_MOVEL
    refresh_move(0)
  end
  # ƒAƒNƒeƒBƒu,ȃRƒ}ƒ"ƒh-¼•\ަ
  rect = Rect.new(@cx - 272, @cy + 24, self.contents.width-32, 32)
  self.contents.draw_text(rect, @commands[@index],1)
end
#--------------------------------------------------------------------------
# › ‰æ-ʍĕ`‰æ(‰Šú‰»Žž)
#--------------------------------------------------------------------------
def refresh_start
  d1 = 2.0 * Math::PI / @item_max
  d2 = 1.0 * Math::PI / STARTUP_FRAMES
  r = RING_R - 1.0 * RING_R * @steps / STARTUP_FRAMES
  for i in 0...@item_max
    j = i - @index
    d = d1 * j + d2 * @steps
    x = @cx + ( r * Math.sin( d ) ).to_i
    y = @cy - ( r * Math.cos( d ) ).to_i
    draw_menu_item(x, y, i)
  end
  @steps -= 1
  if @steps < 1
    @mode = MODE_WAIT
  end
end
#--------------------------------------------------------------------------
# › ‰æ-ʍĕ`‰æ('Ò‹@Žž)
#--------------------------------------------------------------------------
def refresh_wait
  d = 2.0 * Math::PI / @item_max
  for i in 0...@item_max
    j = i - @index
    x = @cx + ( RING_R * Math.sin( d * j ) ).to_i
    y = @cy - ( RING_R * Math.cos( d * j ) ).to_i
    draw_menu_item(x, y, i)
  end
end
#--------------------------------------------------------------------------
# › ‰æ-ʍĕ`‰æ(‰ñ"]Žž)
#  mode : 0="½ŽžŒv‰ñ,è 1=ŽžŒv‰ñ,è
#--------------------------------------------------------------------------
def refresh_move( mode )
  d1 = 2.0 * Math::PI / @item_max
  d2 = d1 / MOVING_FRAMES
  d2 *= -1 if mode != 0
  for i in 0...@item_max
    j = i - @index
    d = d1 * j + d2 * @steps
    x = @cx + ( RING_R * Math.sin( d ) ).to_i
    y = @cy - ( RING_R * Math.cos( d ) ).to_i
    draw_menu_item(x, y, i)
  end
  @steps -= 1
  if @steps < 1
    @mode = MODE_WAIT
  end
end
#--------------------------------------------------------------------------
# œ €-Ú,Ì•`‰æ
#     x :
#     y :
#     i : €-Ú"ԍ†
#--------------------------------------------------------------------------
def draw_menu_item(x, y, i)
  #p "x=" + x.to_s + " y=" + y.to_s + " i=" + @items[i].to_s
  rect = Rect.new(0, 0, @items[i].width, @items[i].height)
  if @index == i
    self.contents.blt( x, y, @items[i], rect )
    if @disabled[@index]
      self.contents.blt( x, y, ICON_DISABLE, rect )
    end
  else
    self.contents.blt( x, y, @items[i], rect, 128 )
    if @disabled[@index]
      self.contents.blt( x, y, ICON_DISABLE, rect, 128 )
    end
  end
end
#--------------------------------------------------------------------------
# œ €-Ú,ð-³Œø,É,·,é
#     index : €-Ú"ԍ†
#--------------------------------------------------------------------------
def disable_item(index)
  @disabled[index] = true
end
#--------------------------------------------------------------------------
# › ‰Šú‰»ƒAƒjƒ[ƒVƒ‡ƒ",̏€"õ
#--------------------------------------------------------------------------
def setup_move_start
  @mode = MODE_START
  @steps = STARTUP_FRAMES
  if  SE_STARTUP != nil and SE_STARTUP != ""
    Audio.se_play("Audio/SE/" + SE_STARTUP, 80, 100)
  end
end
#--------------------------------------------------------------------------
# › ‰ñ"]ƒAƒjƒ[ƒVƒ‡ƒ",̏€"õ
#--------------------------------------------------------------------------
def setup_move_move(mode)
  if mode == MODE_MOVER
    @index -= 1
    @index = @items.size - 1 if @index < 0
  elsif mode == MODE_MOVEL
    @index += 1
    @index = 0 if @index >= @items.size
  else
    return
  end
  @mode = mode
  @steps = MOVING_FRAMES
end
#--------------------------------------------------------------------------
# › ƒAƒjƒ[ƒVƒ‡ƒ"'†,©,Ç,¤,©
#--------------------------------------------------------------------------
def animation?
  return @mode != MODE_WAIT
end
end
#===============================================================================
# ▲ CLASS Window_RingMenu Ends
#===============================================================================

#===============================================================================
# ▼ CLASS Window_RingMenuParty Begins
#===============================================================================

class Window_RingMenuParty < Window_Selectable
#--------------------------------------------------------------------------
# Sets up the new actor selection window
#--------------------------------------------------------------------------
def initialize
  super(0, 0, 86, 128)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.size = 20
  refresh
  self.active = false
  self.index = -1
end
#--------------------------------------------------------------------------
# Draws the party's actors and their info into the window
#--------------------------------------------------------------------------
def refresh
  self.contents.clear
  self.windowskin = RPG::Cache.windowskin($chara_select[4])
  self.contents.font.name = $chara_select[0]
  self.contents.font.color = text_color($chara_select[1])
  @item_max = $game_party.actors.size
  for i in 0...$game_party.actors.size
    x = 86 * i
    y = 0
    actor = $game_party.actors[i]
    draw_actor_graphic(actor, x+24, y+48)
    draw_actor_name(actor, x-8, y+32+14)
    draw_actor_level(actor, x, y + 48+14)
  end
end
#--------------------------------------------------------------------------
# Defines the drawing processes
#--------------------------------------------------------------------------
 def draw_actor_name(actor, x, y)
   self.contents.font.color = system_color
   self.contents.draw_text(x, y, 64, 32, actor.name, 1)
 end
 def draw_actor_level(actor, x, y)
   self.contents.font.color = system_color
   self.contents.draw_text(x, y, 32, 32, "Lvl")
   self.contents.font.color = normal_color
   self.contents.draw_text(x + 24, y, 24, 32, actor.level.to_s, 2)
 end
#--------------------------------------------------------------------------
# Updates the selection rectangle
#--------------------------------------------------------------------------
def update_cursor_rect
  if @index < 0 or @index > $game_party.actors.size - 1
    self.cursor_rect.empty
    return
  elsif @index >= 0 and @index <= $game_party.actors.size - 1
    self.cursor_rect.set((@index * 86)-7, 0, 64, 96)
  end
end
#--------------------------------------------------------------------------
# Moves the cursor rectangle and prevents it from going off the screen
#--------------------------------------------------------------------------
def update
  if @index >= 0 and @index <= $game_party.actors.size - 1
    if Input.repeat?(Input::RIGHT)
         $game_system.se_play($data_system.cursor_se)
         @index += 1
    end
    if Input.repeat?(Input::LEFT)
         $game_system.se_play($data_system.cursor_se)
         @index -= 1
    end
    update_cursor_rect
  elsif @index < 0
    @index = $game_party.actors.size - 1
  elsif @index > $game_party.actors.size - 1
    @index = 0
  else
    self.cursor_rect.empty
    return
  end
end
end
#===============================================================================
# ▲ CLASS Window_RingMenuParty Ends
#===============================================================================

#===============================================================================
# ▼ CLASS Game_Map Additional Code Begins
#===============================================================================
class Game_Map
#Dubealex Addition (from XRXS) to show Map Name on screen
# This is also necessary for the new Window_Steps
def name
  $map_infos[@map_id]
end
end
#===============================================================================
# ▲ CLASS Game_Map Additional Code Ends
#===============================================================================

#===============================================================================
# ▼ CLASS Scene_Title Additional Code Begins
#===============================================================================
class Scene_Title
# Dubealex Addition (from XRXS) to show Map Name on screen
# This is also necessary for the new Window_Steps
  $map_infos = load_data("Data/MapInfos.rxdata")
  for key in $map_infos.keys
    $map_infos[key] = $map_infos[key].name
  end
end
#===============================================================================
# ▲ CLASS Scene_Title Additional Code Ends
#===============================================================================

#===============================================================================
# ▲ Ring Menu Script Ends
#===============================================================================


Basically, I want to modify it so that you can only have one character. I want to move the little status window (with one actor in it!) to the middle of the screen, and get rid of the process of 'selecting' an actor after going into status, equip etc. I've tried fiddling with some X and Y coordinates I found, but none of them seemed to do the right thing!

The other thing I want to do concerns the menu's Location and Steps window. I want to add a third counter to it using 'evented' variables (I don't know what to call them - the variables that you fiddle with in events rather than scripts, you know?) - specifically the variables that are the player's weight and carrying capacity, from game_guy's Item Weights mod. Here's the code for that window of the menu:

Spoiler: ShowHide
#==============================================================================
# ■ Window_Steps
# by Reno-s--Joker
#------------------------------------------------------------------------------
# Also includes map name (location)
# Replaces the one which comes with the Ring Menu entirely.
# New addition - encounter steps in v 1.1
#==============================================================================
class Window_Steps < Window_Base
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------
 def initialize
   super(0, 0, 148, 128)
   self.contents = Bitmap.new(width - 32, height - 32)
   refresh
 end
 #--------------------------------------------------------------------------
 # ● Refresh
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   self.contents.font.color = system_color
   self.contents.font.color = system_color
   self.contents.draw_text(4, 0, 124, 32, "Steps: " + $game_party.steps.to_s, 0)
   # Another thing can be added at y=32 e.g. No. of Kills
   # (from Blizzard's Tons of Addons)
   self.contents.font.color = normal_color
   self.contents.blt(4, 70, RPG::Cache.icon(RM_CFG::Map_Icon), Rect.new(0, 0, 24, 24), 160)
   map_name = $game_map.name.tr("/*","")
   # Just ignore that thing I said before in the other demo... ^^;
   self.contents.draw_text(8, 64, 124, 32, map_name.to_s)
 end
end
#==============================================================================
# ■ End Window_Steps
#==============================================================================


Again, I tried messing around with a few things, like copy/pasting the weight counter that's built into the Item Weight script, but I'm no scripter and it simply didn't work. Any suggestions?

EDIT: Oh and also, would anybody have any idea how I could add an item to the menu? Specifically one that opens the Quest log ($Scene.Quest).
11
Thanks! The Takentai one does just fine for me. The only problem is that it kind of ruins the illusion of single-playerness when, when using an item, it asks which actor you want to use it on first, even though there is only one. If I had any scripting knowledge beyond the very basic, I'm sure I'd be able to bypass this step, but it's fine for now :D
12
Ah, there we go! Ha I'm quite an idiot.

It's fine now, but it hasn't really fixed my initial problem... My battle system still uses the charset set in the database rather than the one I set with that script command. Any idea at all how to fix that?

EDIT: Ulp, I'm a fool. I forgot that for testing purposes I set the script to change to 001-Fighter01 rather than the one I wanted. It's fine! Thanks for all your help!
13
Same errors in a blank project, yeah :/

Oh... I am using 0 for the ID, yeah. What should I be doing?
14
It's running after the title screen, in a parallel process on a map. Here's a list of all other scripts I'm using:
Prexus Crafting
ForeverZer0 Item Weight
Hermes CMS
game_guy's Quest Log
Modified Name Input (Don't remember who it's by!)
game_guy's Item Storage
game_guy's Skill Items
Reno-S--Joker's Ring Menu
Enu's Sideview Battle System

Could any of these be disrupting it?
15
It's running in a parallel process. I tried what you said, but it returned the same error as before! What could be wrong?
16
Thanks for the reply! I tried that out, but it gave a NoMethodError:

undefined method 'character_name=' for nil:NilClass

I assumed it was maybe that you didn't mean to write character name, so I tried 'character_sprites', but that gave the same error. Any suggestions?
17
Hey,

I'm using a couple of scripts that use the character's default graphic (i.e. from the database) for various functions - a battle system, for example. However if I change the character's graphic via events, the scripts don't pay attention to that change - that is, when the battle scene starts etc, the 'old' character graphic defined in the database is shown rather than whatever I changed it to. Is there any way to change the default graphic via a script call so that my battle system etc will use the graphics I want?

Thanks!
18
Hi all,

I'm looking to use a rather simple battle system in my game. I'd like it to be one-on-one - that is to say, only one enemy and one actor. I understand this can be easily done by having only one actor in the party and only one enemy in the troop, but I'd like the HUD of the battle system to only have space for the HP/SP/whatever of one actor and one enemy, so that it doesn't look like there should be more, if you understand.

I'd also like to have it so that rather than specific battlers, the system just uses the actor/enemy's charset - so, it's a side-on view, with the enemy on the left and character on the right (with the sprites enlarged to fill up space), and when they attack they walk up to each other (or stay put if they're using a ranged attack/skill), battle animations play, possibly use a separate 'attacking' charset to show swinging their sword or whatever, and then return to their previous position.

I'd also if possible like to have it work with visual equipment scripts - so in battle, you can see what armour your character is wearing etc.

Here's some basic mock-up images I just whipped up:
Spoiler: ShowHide






Does anybody know of anything similar that already exists, or could anybody be kind enough to take some time to try and whip something up for me?

Many thanks!
19
RMXP Script Database / Re: [XP] Blizz-ABS
May 27, 2013, 04:41:40 am
Hey! I think this ABS is fantastic, but I've got a couple of little queries. I did do a little search for them, but I couldn't really find anything that solved my problem.

First of all, when I have the script enabled, I can't use a move event->change character graphic to change the character's sprite. Has that functionality been replaced by a script command somewhere?

And second - I'm sure this one's very simple, but my knowledge of scripting is basic at best - how do I turn the HUD, hotkey bar etc on/off during gameplay? - EDIT: Never mind, after a minute more of searching I found a solution to this one!

Thanks!