Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[XP] Few Questions (Involving Battle and Status)

Hello.

I was wonder how to edit the script so that instead of the mini-sprite on screen next to their stats so that I could have a different picture on there. (A full body portrait for the status page)

Also, I found a topic here that involved a notification that a character leveled up. Is it possible to have a face portrait of the person who leveled up on the top right after battle results? (Similar to Tales of Vesperia's found on 2:10 http://www.youtube.com/watch?v=-w_M4XvSKhk)
 

Star

Sponsor

For the notification that the character leveled up picture, I'd need the topic you found.

Also this is a strange request, I hope it will look good in the end, because it seems like it will go behind all the text.

Code:
class Window_Base < Window

    def draw_actor_graphic3(actor,x,y)

      face = RPG::Cache.picture(actor.name + "_status") rescue nada2(actor)

      cw = face.width 

      ch = face.height 

      src_rect = Rect.new(0, 0, cw, ch)

      self.contents.blt(x, y, face, src_rect)    

    end

    end   

class Window_Status 

def refresh

    self.contents.clear

    draw_actor_graphic3(@actor, 0, 0)

    draw_actor_name(@actor, 4, 0)

    draw_actor_class(@actor, 4 + 144, 0)

    draw_actor_level(@actor, 96, 32)

    draw_actor_state(@actor, 96, 64)

    draw_actor_hp(@actor, 96, 112, 172)

    draw_actor_sp(@actor, 96, 144, 172)

    draw_actor_parameter(@actor, 96, 192, 0)

    draw_actor_parameter(@actor, 96, 224, 1)

    draw_actor_parameter(@actor, 96, 256, 2)

    draw_actor_parameter(@actor, 96, 304, 3)

    draw_actor_parameter(@actor, 96, 336, 4)

    draw_actor_parameter(@actor, 96, 368, 5)

    draw_actor_parameter(@actor, 96, 400, 6)

    self.contents.font.color = system_color

    self.contents.draw_text(320, 48, 80, 32, "EXP")

    self.contents.draw_text(320, 80, 80, 32, "NEXT")

    self.contents.font.color = normal_color

    self.contents.draw_text(320 + 80, 48, 84, 32, @actor.exp_s, 2)

    self.contents.draw_text(320 + 80, 80, 84, 32, @actor.next_rest_exp_s, 2)

    self.contents.font.color = system_color

    self.contents.draw_text(320, 160, 96, 32, "equipment")

    draw_item_name($data_weapons[@actor.weapon_id], 320 + 16, 208)

    draw_item_name($data_armors[@actor.armor1_id], 320 + 16, 256)

    draw_item_name($data_armors[@actor.armor2_id], 320 + 16, 304)

    draw_item_name($data_armors[@actor.armor3_id], 320 + 16, 352)

    draw_item_name($data_armors[@actor.armor4_id], 320 + 16, 400)

  end

  end

Put this above Main and for every graphic that you want. Put in the pictures folder and put the Actorname_status. Another words write _status after the filename of the character
 
So what I have is a file named 001-Fighter01_status.png in the Picture folder. When I clicked on status in the menu, the game ended saying:

Script 'Body Portrait' line 3: NoMethodError occurred.

undefined method `nada2' for #<Window_Status:0x7ab9bf0>

And the topic that talked about having the level up thing was here:
viewtopic.php?f=155&t=66163
 

Star

Sponsor

No no no. You're supposed to use the Actors name, not the sprites name. You know the one you set in the database. Lets say your hero's name is Aluxes. name it

Aluxes_status

As for the nada2 thing, that's my fault for giving you something without a proper rescue.

Code:
class Window_Base < Window

  def rescue12(actor)

    face = RPG::Cache.battler(actor.battler_name, actor.battler_hue)

    end

    def draw_actor_graphic3(actor,x,y)

      face = RPG::Cache.picture(actor.name + "_status") rescue rescue12(actor)

      cw = face.width 

      ch = face.height 

      src_rect = Rect.new(0, 0, cw, ch)

      self.contents.blt(x, y, face, src_rect)    

    end

    end   

class Window_Status 

def refresh

    self.contents.clear

    draw_actor_graphic3(@actor, 0, 0)

    draw_actor_name(@actor, 4, 0)

    draw_actor_class(@actor, 4 + 144, 0)

    draw_actor_level(@actor, 96, 32)

    draw_actor_state(@actor, 96, 64)

    draw_actor_hp(@actor, 96, 112, 172)

    draw_actor_sp(@actor, 96, 144, 172)

    draw_actor_parameter(@actor, 96, 192, 0)

    draw_actor_parameter(@actor, 96, 224, 1)

    draw_actor_parameter(@actor, 96, 256, 2)

    draw_actor_parameter(@actor, 96, 304, 3)

    draw_actor_parameter(@actor, 96, 336, 4)

    draw_actor_parameter(@actor, 96, 368, 5)

    draw_actor_parameter(@actor, 96, 400, 6)

    self.contents.font.color = system_color

    self.contents.draw_text(320, 48, 80, 32, "EXP")

    self.contents.draw_text(320, 80, 80, 32, "NEXT")

    self.contents.font.color = normal_color

    self.contents.draw_text(320 + 80, 48, 84, 32, @actor.exp_s, 2)

    self.contents.draw_text(320 + 80, 80, 84, 32, @actor.next_rest_exp_s, 2)

    self.contents.font.color = system_color

    self.contents.draw_text(320, 160, 96, 32, "equipment")

    draw_item_name($data_weapons[@actor.weapon_id], 320 + 16, 208)

    draw_item_name($data_armors[@actor.armor1_id], 320 + 16, 256)

    draw_item_name($data_armors[@actor.armor2_id], 320 + 16, 304)

    draw_item_name($data_armors[@actor.armor3_id], 320 + 16, 352)

    draw_item_name($data_armors[@actor.armor4_id], 320 + 16, 400)

  end

  end

Change the code I gave you with this one.

As for Notification that the character leveled up. Do you just want all face graphics for all the people that leveled up to be displayed in the battle results screen? I love tales of vesperia, but they were showing people who leveled up who weren't in the party.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top