Neonblack's Damage Popup: a bit confused?

EternalShadow

Veteran
Veteran
Joined
Sep 16, 2012
Messages
5,781
Reaction score
1,041
First Language
English
Primarily Uses
I guess this may never get solved xD
 

KockaAdmiralac

Cube-shaped garbage can
Veteran
Joined
Jun 15, 2015
Messages
569
Reaction score
153
First Language
Serbian
Primarily Uses
N/A
I'm also confused how this works.

From the code it looks like there is no "pop add".

So, I guess there is a description error.

I think you can only change the popups only for states, not for skills.
 
Last edited by a moderator:

EternalShadow

Veteran
Veteran
Joined
Sep 16, 2012
Messages
5,781
Reaction score
1,041
First Language
English
Primarily Uses
I'm also confused how this works.

From the code it looks like there is no "pop add".

So, I guess there is a description error.

I think you can only change the popups only for states, not for skills.
Yeah, I did it on the state.
 

KockaAdmiralac

Cube-shaped garbage can
Veteran
Joined
Jun 15, 2015
Messages
569
Reaction score
153
First Language
Serbian
Primarily Uses
N/A
Sorry, from the last post I understood you want to do it on a skill.

If you try to do this on the state in the note tag it should be :

 - pop add [text] to show some text.

   Examples :

    - pop add[-%s]

    - pop add[:hp]

- pop color to change the color of the popup

  Example :

    - pop color [:mycolor]

      Where :mycolor must be defined in the COLOUR hash like [inner_color, outline_color]

      If you want a reference about colors you can click F1 and search for colors.

      But I can give you a hint.

      To initialize a color you use

Color.new(amount_of_red, amount_of_green, amount_of_blue)      Examples of what amounts of red, green and blue can be for different colors are :

      Red - 255, 0, 0

      Yellow - 255, 255, 0

      Green - 0, 255, 0

      Blue - 0, 0, 255

      Purple - 255, 0, 255

      Maybe you understood...

 - pop style[style] it styles the popup.

   Please refer to the script header, I don't know about this right now.
 

EternalShadow

Veteran
Veteran
Joined
Sep 16, 2012
Messages
5,781
Reaction score
1,041
First Language
English
Primarily Uses
Sorry, from the last post I understood you want to do it on a skill.

If you try to do this on the state in the note tag it should be :

- pop add [text] to show some text.

Examples :

- pop add[-%s]

- pop add[:hp]

- pop color to change the color of the popup

Example :

- pop color [:mycolor]

Where :mycolor must be defined in the COLOUR hash like [inner_color, outline_color]

If you want a reference about colors you can click F1 and search for colors.

But I can give you a hint.

To initialize a color you use

Color.new(amount_of_red, amount_of_green, amount_of_blue) Examples of what amounts of red, green and blue can be for different colors are : Red - 255, 0, 0

Yellow - 255, 255, 0

Green - 0, 255, 0

Blue - 0, 0, 255

Purple - 255, 0, 255

Maybe you understood...

- pop style[style] it styles the popup.

Please refer to the script header, I don't know about this right now.
This is in my status notebox:

pop add [:test]

This is the :test in the script:

:test => [Color.new(1, 2, 3), Color.new(0, 0, 0)],

It still applies :null.

I tried this as well because it is a default

pop add :hpheal

but it still applied :null.

After reading your post, I tried this too:

pop color [:test]

and it still gives :null.
 
Last edited by a moderator:

KockaAdmiralac

Cube-shaped garbage can
Veteran
Joined
Jun 15, 2015
Messages
569
Reaction score
153
First Language
Serbian
Primarily Uses
N/A
Did you try 

pop color[:test]?

 

1. pop add [:test]

This is the :test in the script:

:test   => [Color.new(1, 2, 3),         Color.new(0, 0, 0)],

2. I tried this as well because it is a default

pop add :hpheal

3. After reading your post, I tried this too:

pop color [:yellow]
1. pop add cannot add COLORS.

    pop add is adding from the text hash, NOT color hash

2. Also as above

3. What is :yellow?

    Is it a color or?

    If it is, what is the definition in the COLOUR hash for it?
 
Last edited by a moderator:

EternalShadow

Veteran
Veteran
Joined
Sep 16, 2012
Messages
5,781
Reaction score
1,041
First Language
English
Primarily Uses
Oops, I reworded :yellow to :test in the first example but not the second. The colour hashes are the same. I will edit for clarity.
 

KockaAdmiralac

Cube-shaped garbage can
Veteran
Joined
Jun 15, 2015
Messages
569
Reaction score
153
First Language
Serbian
Primarily Uses
N/A
If you want REAL yellow color, try to edit :yellow to

:yellow => [Color.new(255, 255, 255), Color.new(255, 255, 0)],That should show the yellow outline.

If it does not, please consider sending us your notebox and your script (in spoilers, of course)
 

EternalShadow

Veteran
Veteran
Joined
Sep 16, 2012
Messages
5,781
Reaction score
1,041
First Language
English
Primarily Uses
The colour itself isn't the issue, those names were placeholders. The issue is getting the colour to show up in the first place, instead of null.

(Just to be clear, the -255 colours even if their colour is identified wrongly still work, so ignore those)

Notebox:

pop color [:test]The script is too long to post, but here it is without a bit of header:

Code:
#      Instructions:                                                           ##  Place this script in the "Materials" section of the scripts above main.     ##  This script adds an extra little window to the battle screen when           ##  selecting an enemy that displays a guage with the enemey's hp, mp, tp, and  ##  states.  This also adds pop-ups to the enemies when they take damage,       ##  reflect or counter an attack, or just any other general information that    ##  may be easier to read as a pop-up than in the battle log window.  You can   ##  adjust how many of these look with the info below.                          ####-----                                                                -----####      Tags:                                                                   ##  Several tags can be used in states to change the pop-up text that appears   ##  when the state is inflicted or removed.  Simply add the tag to a state's    ##  notebox.  The tags are as follows.                                          ##                                                                              ##    pop add[text] - Displays "text" when the state is added.                  ##    pop remove[text] - Displays "text" when the state is removed.  Leave      ##                       blank to disable the state.                            ##                                                                              ##    pop add color[x] - Changes the pop-up color when the state is added.      ##    pop remove color[x] - Changes the color of the pop-up when the state is   ##                          removed.  If "x" is a number, it chooses the color  ##                          from the windowskin.  If "x" is a word, it chooses  ##                          the color from the COLOUR hash in the config        ##                          section.                                            ##                                                                              ##    pop add style[type] - Changes the pop-up style when the state is added.   ##    pop remove style[type] - Changes the pop-up style when the state is       ##                             removed.  Can be set to any of the following:    ##                             bounce, zoom, raise, slow_raise                  ####--------------------------------------------------------------------------### ###--------------------------------------------------------------------------####      Config:                                                                 ##  These are the default values used by several of the functions in the        ##  script.  You may change these values as you find your game requires in      ##  order to give the player a better playing experience based on your game.    ##                                                                              #module CP         # Do not                                                     #module BATTLEVIEW #  change these.                                             ##                                                                              ####-----                                                                -----#### These are the settings for the pop-up display.  The height is how high from  ## the origin a pop-up will fly.  Width is how far across vertically it can go  ## from the origin in either direction.  These settings effect all pop-up       ## styles.                                                                      #HEIGHT = 64 # Default = 64                                                     #WIDTH = 16 # Default = 16                                                      ##                                                                              ## These are the font settings for pop-ups.  These affect many of the settings  ## of all pop-ups overall.                                                      #POP_SIZE = 32 # Default = 32                                                   #POP_BOLD = true # Default = true                                               ##                                                                              ## To prevent pop-ups from covering each other up, new pop-ups will be offset   ## based on the text size and appear above the last one.  This value is the max ## number of times the pop-ups will offset before returning to the bottom.      #OFFSETS = 4 # Default = 4                                                      ##                                                                              ## This hash contains the text that pops up for different situations.  You can  ## set each of them to different text to change what they say when they pop-up. ## This hash MUST include :hp, :mp, and :tp.  In each of the tags you can       ## include "%s" for the default information for the pop up (such as state names ## or damage numbers).                                                          #TEXT ={ # Don't edit this line.                                                # :hp       => "%s",:mp       => "%s MP",:tp       => "%s FP",:counter  => "Counter",:reflect  => "Reflect",:sub      => "Stand-in",:fail     => "Fail",:critical => "Critical",:miss     => "Miss",:evade    => "Evade",:hpregen  => "+%s HP",:mpregen  => "+%s MP",:tpregen  => "+%s FP",:hpslip   => "-%s HP",:mpslip   => "-%s MP",:tpslip   => "-%s FP",:addstate => "+%s",:substate => "-%s",:buff     => "%s Up",:debuff   => "%s Down",:rebuff   => "%s Revert", } # Don't edit this line.                                                      ##                                                                              ## This hash contains the colours used by the pop-ups.  Each must contain both  ## a main colour and an outline colour.  Also note that this hash MUST contain  ## :null, :hpdamage, :hpheal, :mpdamage, :mpheal, :tpdamage, and :tpheal.  It   ## can then use any of the other hash values in the hash above except for :hp,  ## :mp, or :tp.  If a hash value is not defined, null is used instead.          #COLOUR ={ # Don't edit this line.                                              ##             Interior              -             Exterior:null     => [Color.new(250, 10, 10),     Color.new(-255,   -255,   -255)],:hpdamage => [Color.new(255, -136, -225), Color.new(-255,   -255,   -255)],:hpheal   => [Color.new(49, 225, 33),     Color.new(-255,   -255,   -255)],:mpdamage => [Color.new(0, 0, 0),         Color.new(-255,   -255,   -255)],:mpheal   => [Color.new(38, 246, 241),    Color.new(-255,   -255,   -255)],:tpdamage => [Color.new(0, 0, 0),         Color.new(-255,   -255,   -255)],:tpheal   => [Color.new(0, 0, 0),         Color.new(-255,   -255,   -255)],:hpslip   => [Color.new(0, 0, 0),         Color.new(-255,   -255,   -255)],:hpregen  => [Color.new(49, 225, 33),     Color.new(-255,   -255,   -255)],:mpslip   => [Color.new(0, 0, 0),         Color.new(-255,   -255,   -255)],:mpregen  => [Color.new(38, 246, 241),    Color.new(-255,   -255,   -255)],:tpslip   => [Color.new(0, 0, 0),         Color.new(-255,   -255,   -255)],:tpregen  => [Color.new(0, 0, 0),         Color.new(-255,   -255,   -255)],:evade    => [Color.new(0, 0, 0),         Color.new(-255,   -255,   -255)],:buff     => [Color.new(246, 216, 38),    Color.new(-255,   -255,   -255)],:test     => [Color.new(1, 2, 3),         Color.new(0, 0, 0)],#                                                                              ## The following colors are used by different scripts.  Please check the name   ## of the script directly above the set of colors.                              ##   CP Enemy Scan v1.1+                                                        #:weak_pop   => [Color.new(0, 0, 0), Color.new(-255,   -255,   -255)],:strong_pop => [Color.new(0, 0, 0), Color.new(-255,   -255,   -255)], } # Don't edit this line.                                                      ##                                                                              ## The following hash contains the style of each of the pop-ups.  Any tag from  ## either of the last two hashes may be used except for :null.  If a tag is not ## present, the pop-up style will be bounce.  The valid styles are:             ##  :bounce, :raise, :slow_raise, :zoom                                         #POP_STYLE ={ # Don't edit this line.                                           # :hpdamage => :zoom, #Edit defaults to zoom?:hpheal   => :raise,:counter  => :zoom,:reflect  => :zoom,:sub      => :zoom,:fail     => :slow_raise,:critical => :zoom,:miss     => :slow_raise,:evade    => :slow_raise,:addstate => :raise,:substate => :raise,:hpregen  => :raise,:mpregen  => :raise,:tpregen  => :raise,:buff     => :raise,:debuff   => :slow_raise,:rebuff   => :raise,:null     => :raise,#                                                                              ## The following styles are used by different scripts.  Please check the name   ## of the script directly above the set of styles.                              ##   CP Enemy Scan v1.1+                                                        #:weak_pop   => :raise,:strong_pop => :raise, } # Don't edit this line.                                                      ####--------------------------------------------------------------------------###  ###--------------------------------------------------------------------------####  The following lines are the actual core code of the script.  While you are  ##  certainly invited to look, modifying it may result in undesirable results.  ##  Modify at your own risk!                                                    ####--------------------------------------------------------------------------###  endend $imported = {} if $imported.nil?$imported["CP_BATTLEVIEW"] = 1.2 class Game_Battler < Game_BattlerBase  attr_accessor :popup  ## Allows use of the popup array.    alias cp_bv_initialize initialize  def initialize    cp_bv_initialize    @popup = []  ## Adds the popup array.  end    def create_pop(text, colour, type = nil)  ## Create a new popup.    tmp = [text, colour, type]              ## Colour comes form the hash above.    @popup = [] if @popup.nil?    @popup.push(tmp)  ## Push the popup to the array.  end    def do_pop(key, text = "")    return unless CP::BATTLEVIEW::TEXT.include?(key)  ## Checks text hash.    string = CP::BATTLEVIEW::TEXT[key] ## Gets the text from the text hash.    n1 = string.gsub(/%s/, text.to_s)    n2 = key  ## Sets the colour hash value.    pop = CP::BATTLEVIEW::POP_STYLE[key]    create_pop(n1, n2, pop)  ## Sends it to the popup maker.  end      def pop_hp(dmg)  ## Similar to the above, but with added steps.    if dmg < 0  ## Check for healing or damage.      i = dmg * -1  ## Makes damage negative for healing.      n2 = :hpheal  ## Gets the heal colour hash value.      pop = CP::BATTLEVIEW::POP_STYLE[:hpheal]    else      i = dmg      n2 = :hpdamage  ## Gets the damage colour hash value.      pop = CP::BATTLEVIEW::POP_STYLE[:hpdamage]    end    pop = CP::BATTLEVIEW::POP_STYLE[:hp] if pop.nil?    string = CP::BATTLEVIEW::TEXT[:hp]    n1 = string.gsub(/%s/, i.to_s)  ## Sets the string for damage.    create_pop(n1, n2, pop)  ## Sends it to the popup maker.  end    def pop_mp(dmg)    if dmg < 0      i = dmg * -1      n2 = :mpheal      pop = CP::BATTLEVIEW::POP_STYLE[:mpheal]    else      i = dmg      n2 = :mpdamage      pop = CP::BATTLEVIEW::POP_STYLE[:mpdamage]    end    pop = CP::BATTLEVIEW::POP_STYLE[:mp] if pop.nil?    string = CP::BATTLEVIEW::TEXT[:mp]    n1 = string.gsub(/%s/, i.to_s)    create_pop(n1, n2, pop)  end    def pop_tp(dmg)    if dmg < 0      i = dmg * -1      n2 = :tpheal      pop = CP::BATTLEVIEW::POP_STYLE[:tpheal]    else      i = dmg      n2 = :tpdamage      pop = CP::BATTLEVIEW::POP_STYLE[:tpdamage]    end    pop = CP::BATTLEVIEW::POP_STYLE[:tp] if pop.nil?    string = CP::BATTLEVIEW::TEXT[:tp]    n1 = string.gsub(/%s/, i.to_s)    create_pop(n1, n2, :bounce)  end    def get_popup  ## Gets a popup and removes the bottom one.    res = @popup[0]  ## Gets the next popup to display.    @popup = @popup.last(@popup.size - 1)  ## Removes it from the list.    return res  ## Returns the popup.  end    def pop_reset    @popup = []  ## Removes all popups from the list.  end    alias cp_pop_slip_hp regenerate_hp  def regenerate_hp    cp_pop_slip_hp    if @result.hp_damage < 0      do_pop(:hpregen, -@result.hp_damage)    elsif @result.hp_damage > 0      do_pop(:hpslip, @result.hp_damage)    end  end    alias cp_pop_slip_mp regenerate_mp  def regenerate_mp    cp_pop_slip_mp    if @result.mp_damage < 0      do_pop(:mpregen, -@result.mp_damage)    elsif @result.mp_damage > 0      do_pop(:mpslip, @result.mp_damage)    end  end    alias cp_pop_slip_tp regenerate_tp  def regenerate_tp    cp_pop_slip_tp    rate = (max_tp * trg).to_i    if rate > 0      do_pop(:tpregen, rate)    elsif rate < 0      do_pop(:tpslip, rate)    end  endend class Sprite_Battler < Sprite_Base  alias cp_bv_update update  def update    cp_bv_update    if @battler && @battler.use_sprite?      setup_new_popup  ## Sets up popups if sprites are used.      update_popup    end  end    def setup_new_popup    unless @battler.popup.empty?  ## Only makes popups for enemies.      create_popup(@battler.get_popup)  ## Sorry sideview battles.      update_popup    end  end    def from_viewport    return @viewport4.nil? ? viewport : @viewport4  end    def make_pop_hash    if @pop_sprite.nil?  ## Holds sprites in an array.      @pop_sprite = {}      pop_types.each {|type| @pop_sprite[type] = [] }    end  end    def pop_types    [:bounce, :raise, :slow_raise, :zoom]  end    def create_popup(pop)  ## Creates the popup sprite.    type = pop_types.include?(pop[2]) ? pop[2] : pop_types[0]    make_pop_hash    sprite = ::Sprite.new(from_viewport)  ## Makes a new sprite.    sprite.bitmap = Bitmap.new(240, 64)  ## Makes the sprite bitmap.    if pop[1].is_a?(Symbol)  ## Pop colour.      n = CP::BATTLEVIEW::COLOUR.include?(pop[1]) ? pop[1] : :null      c1 = CP::BATTLEVIEW::COLOUR[n][0]      c2 = CP::BATTLEVIEW::COLOUR[n][1]    elsif pop[1].is_a?(Integer)      n = pop[1]      c1 = Cache.system("Window").get_pixel(64 + (n % 8) * 8, 96 + (n / 8) * 8)      c2 = Font.default_out_color    else      c1 = Font.default_color      c2 = Font.default_out_color    end    sprite.bitmap.font.color.set(c1)  ## Text.    sprite.bitmap.font.out_color.set(c2)  ## Outline.    sprite.bitmap.font.bold = CP::BATTLEVIEW::POP_BOLD  ## Makes the text bold.    sprite.bitmap.font.size = CP::BATTLEVIEW::POP_SIZE  ## Sets the font size.    numb = sprite.bitmap.text_size(pop[0]).height    sprite.ox = sprite.bitmap.width / 2  ## Sets the sprite's center.    sprite.oy = (sprite.bitmap.height + numb) / 2    sprite.bitmap.draw_text(0, 0, 240, 64, pop[0], 1)  ## Draws the bitmap.    i = rand(2)  ## Chooses left or right movement for the sprite.    pl = i == 1 ? rand * 1 : rand * -1  ## Sets max offset.    frame = 1  ## Frame for the sprite.    pos =  pos_by_type(frame, pl, type) ## Finds the on screen position.    sprite.x = pos[0]  ## Moves the sprite.    sprite.y = pos[1] - (@pop_sprite[type].size % CP::BATTLEVIEW::OFFSETS) * CP::BATTLEVIEW::POP_SIZE    sprite.zoom_x = pos[2]  ## Zooms the sprite.    sprite.zoom_y = pos[3]    sprite.z = z + 350  ## Changes the sprite's Z position.    first = @pop_sprite[type].last(CP::BATTLEVIEW::OFFSETS).index(nil)    if first      if @pop_sprite[type].size < CP::BATTLEVIEW::OFFSETS        @pop_sprite[type][first] = [sprite, frame, pl, type]      else        @pop_sprite[type][CP::BATTLEVIEW::OFFSETS - first] = [sprite, frame, pl, type]      end    else      @pop_sprite[type].push([sprite, frame, pl, type])  ## Adds the sprite to an array.    end  end    def pos_by_type(frame, pl, type)    case type    when :bounce      find_pos_arc(frame, pl)    when :raise      find_pos_raise(frame, pl)    when :slow_raise      find_pos_slow_raise(frame, pl)    when :zoom      find_pos_zoom(frame, pl)    else      find_pos_arc(frame, pl)    end  end    def update_popup    deltree = {}  ## Sets sprites to delete this turn.    make_pop_hash    @pop_sprite.each do |type, array|      next if array.empty?  ## Return if no sprites.      array.each_with_index do |sprite, i|        next unless sprite        sprite[0].opacity = 255  ## Sets the sprite's opacity.        sprite[1] += 1  ## Update the sprite's frame.        if sprite[1] >= 70  ## Prepare to delete.          deltree[type] = [] if deltree[type].nil?          deltree[type].push(i)        end        if sprite[1] >= 60  ## Begins to fade at frame 60.          n = 70 - sprite[1]          n *= 25          sprite[0].opacity = n        end        pos = pos_by_type(sprite[1], sprite[2], sprite[3])  ## Gets the position.        sprite[0].x = pos[0]  ## Moves the sprite.        sprite[0].y = pos[1] - (i % CP::BATTLEVIEW::OFFSETS) * CP::BATTLEVIEW::POP_SIZE        sprite[0].zoom_x = pos[2]  ## Zooms the sprite.        sprite[0].zoom_y = pos[3]      end    end    deltree.each do |type, array|      array.each do |dm|        @pop_sprite[type][dm][0].dispose        @pop_sprite[type][dm] = nil      end      while @pop_sprite[type].size > CP::BATTLEVIEW::OFFSETS        if check_pops_for_nil(type)          @pop_sprite[type] = @pop_sprite[type].last(@pop_sprite[type].size - 4)        else          break        end      end    end    @pop_sprite.each do |type, array|      @pop_sprite[type] = [] if array.compact.empty?    end  end    def check_pops_for_nil(type)    CP::BATTLEVIEW::OFFSETS.times do |i|      return false unless @pop_sprite[type][i].nil?    end    return true  end    def find_pos_arc(frame, pl)  ## Finds the sprite position.    rw = CP::BATTLEVIEW::WIDTH * pl  ## Gets the grid to use.    rh = CP::BATTLEVIEW::HEIGHT    rx = x  ## Gets the origin X and Y.    im = lowest_point    ry = [y - height * 0.3, im].min    ra = [(frame * 9), 180].min  ## Finds the position on an arc.    ax, ay = find_arc(rw, rh, ra, frame)    ix = rx + ax  ## Places the arc on the grid.    iy = ry - ay    if frame > 20      rw2 = rw / 2      rh2 = rh / 2      ra2 = [((frame - 20) * 9), 180].min      ax2, ay2 = find_arc(rw2, rh2, ra2, frame - 20)      ix += (ax2 - rw2)      iy -= ay2    end    return [ix, iy, 1.0, 1.0]  ## Returns the positions.  end    def find_arc(rw, rh, ra, frame)  ## Gets X and Y of the arc pos.    sx = (rw * Math.cos((45 + 0.5 * ra) * Math::PI / 180))    sy = rh * Math.sin(ra * Math::PI / 180)    sy = (sy * -1) / 3 if sy < 0    return [sx, sy]  end    def find_pos_raise(frame, pl)    rx = x    b = [y - height / 2, lowest_point].min    ry = b - CP::BATTLEVIEW::HEIGHT * (1 - ((70 - frame) ** 12).to_f / (70 ** 12))    return [rx, ry, 1.0, 1.0]  end    def find_pos_slow_raise(frame, pl)    rx = x    b = [y - height / 2, lowest_point].min    ry = b - CP::BATTLEVIEW::HEIGHT * (frame.to_f / 70)    return [rx, ry, 1.0, 1.0]  end    def find_pos_zoom(frame, pl)    zoom = 3.0 - [frame.to_f, 10.0].min / 5    ry = [y - height / 2, lowest_point].min + CP::BATTLEVIEW::POP_SIZE *         (1 - [frame.to_f, 10.0].min / 10)    return [x, ry, zoom, zoom]  end    def lowest_point    $imported["CP_BATTLEVIEW_2"] ? Graphics.height - 120 : Graphics.height  endend class Window_BattleLog < Window_Selectable  alias cp_bv_display_counter display_counter  def display_counter(target, item)  ## Aliased to create a popup.    target.do_pop(:counter)  ## Sets the popup.    cp_bv_display_counter(target, item)  ## Displays normally.  end  ## Identical to the next few.    alias cp_bv_display_reflection display_reflection  def display_reflection(target, item)    target.do_pop(:reflect)    cp_bv_display_reflection(target, item)  end    alias cp_bv_display_substitute display_substitute  def display_substitute(substitute, target)    substitute.do_pop(:sub)    cp_bv_display_substitute(substitute, target)  end    alias cp_bv_display_action_results display_action_results  def display_action_results(target, item)    cp_bv_display_action_results(target, item)    if target.result.used  ## Resets popups at the end of the log.      target.pop_reset    end  end    alias cp_bv_display_failure display_failure  def display_failure(target, item)    if target.result.hit? && !target.result.success      target.do_pop(:fail)      cp_bv_display_failure(target, item)    end  end    alias cp_bv_display_critical display_critical  def display_critical(target, item)    if target.result.critical      target.do_pop(:critical)      cp_bv_display_critical(target, item)    end  end    alias cp_bv_display_miss display_miss  def display_miss(target, item)    target.do_pop(:miss)    cp_bv_display_miss(target, item)  end    alias cp_bv_display_evasion display_evasion  def display_evasion(target, item)    target.do_pop(:evade)    cp_bv_display_evasion(target, item)  end    alias cp_bv_display_hp_damage display_hp_damage  def display_hp_damage(target, item)    return if target.result.hp_damage == 0 && item && !item.damage.to_hp?    target.pop_hp(target.result.hp_damage)    cp_bv_display_hp_damage(target, item)  end    alias cp_bv_display_mp_damage display_mp_damage  def display_mp_damage(target, item)    return if target.dead? || target.result.mp_damage == 0    target.pop_mp(target.result.mp_damage)    cp_bv_display_mp_damage(target, item)  end    alias cp_bv_display_tp_damage display_tp_damage  def display_tp_damage(target, item)    return if target.dead? || target.result.tp_damage == 0    target.pop_tp(target.result.tp_damage)    cp_bv_display_tp_damage(target, item)  end    def display_added_states(target)    target.result.added_state_objects.each do |state|      state_msg = target.actor? ? state.message1 : state.message2      target.perform_collapse_effect if state.id == target.death_state_id      if state.pop_values[4]        create_state_pop(target, state, :addstate)      else        target.do_pop(:addstate, state.name) unless state.name.empty?      end      next if state_msg.empty?      replace_text(target.name + state_msg)      wait      wait_for_effect    end  end    def display_removed_states(target)    target.result.removed_state_objects.each do |state|      if state.pop_values[4]        create_state_pop(target, state, :substate)      else        target.do_pop(:substate, state.name) unless state.name.empty?      end      next if state.message4.empty?      replace_text(target.name + state.message4)      wait    end  end    def create_state_pop(target, state, key)    n1 = key == :addstate ? state.pop_values[0] : state.pop_values[1]    n2 = state.pop_values[2]; pop = state.pop_values[3]    return if (n1.nil? && !CP::BATTLEVIEW::TEXT.include?(key)) || state.name.empty?    n1 = CP::BATTLEVIEW::TEXT[key].gsub(/%s/, state.name.to_s) if n1.nil?    n2 = key if n2.nil?    pop = CP::BATTLEVIEW::POP_STYLE[key] if pop.nil?    target.create_pop(n1, n2, pop)  end    def display_changed_buffs(target)    display_buffs(target, target.result.added_buffs, Vocab::BuffAdd, :buff)    display_buffs(target, target.result.added_debuffs, Vocab::DebuffAdd, :debuff)    display_buffs(target, target.result.removed_buffs, Vocab::BuffRemove, :rebuff)  end    def display_buffs(target, buffs, fmt, pop = nil)    buffs.each do |param_id|      target.do_pop(pop, Vocab::param(param_id))      replace_text(sprintf(fmt, target.name, Vocab::param(param_id)))      wait    end  endend class RPG::State < RPG::BaseItem  def pop_values    set_pop_values if @pop_values.nil?    return @pop_values  end    def set_pop_values    @pop_values = [nil, nil, nil, nil, false]    self.note.split(/[\r\n]+/).each do |line|      case line      when /pop add\[(.*)]/i        @pop_values[0] = $1.to_s        @pop_values[4] = true      when /pop remove\[(.*)]/i        @pop_values[1] = $1.to_s        @pop_values[4] = true      when /pop color\[(\d*)(\w*)\]/i        n = $1.to_s != "" ? $1.to_i : nil        s = $2.to_sym        @pop_values[2] = n.nil? ? s : n        @pop_values[4] = true      when /pop style\[(\w+)\]/i        @pop_values[3] = $1.to_sym        @pop_values[4] = true      end    end  endend  ###--------------------------------------------------------------------------####  End of script.                                                              ####--------------------------------------------------------------------------###
 
Last edited by a moderator:

KockaAdmiralac

Cube-shaped garbage can
Veteran
Joined
Jun 15, 2015
Messages
569
Reaction score
153
First Language
Serbian
Primarily Uses
N/A
That's not true.

I tested it on this code

class Scene_Test < Scene_Base  def start    super    @window = Window_Test.new  endendclass Window_Test < Window_Base  def initialize    super(0, 0, Graphics.width, Graphics.height)    contents.fill_rect(0, 0, Graphics.width, Graphics.height, Color.new(0, -255, 255))  end  def standard_padding; 0; endend
And it is showing me the BLUE color.

That means, Color.new(0, -255, 255) is actually 0, 0, 255.

Why?

From the documentation of the Color class :

red The red value (0-255). Out-of-range values are automatically corrected. green The green value (0-255). Out-of-range values are automatically corrected. blue The blue value (0-255). Out-of-range values are automatically corrected. alpha The alpha value (0-255). Out-of-range values are automatically corrected.
Keep that in mind.

Maybe that's the problem.

Color.new(-255,   -255,   -255)] 

is actually :

Color.new(0,   0,   0)]

And that is the BLACK color!

And also, what you can try, is that to put :

pop color[...]

and not :

pop color [...]

Do not put a space between color and [...]

I see there is no \s* or \s+ in the Regexp
 
Last edited by a moderator:

EternalShadow

Veteran
Veteran
Joined
Sep 16, 2012
Messages
5,781
Reaction score
1,041
First Language
English
Primarily Uses
Still gives me :null's colour.
 

KockaAdmiralac

Cube-shaped garbage can
Veteran
Joined
Jun 15, 2015
Messages
569
Reaction score
153
First Language
Serbian
Primarily Uses
N/A
Ok, look...

I tried, and I was still confused a bit.

So, try to add a new script below CP Popup with following code

class RPG::State < RPG::BaseItem  def set_pop_values    @pop_values = [nil, nil, nil, nil, false]    old_pop = @pop_values.dup    self.note.scan(/<\s*pop\s+add\s+(.*)\s*>/i)    @pop_values[0] = $1.to_s unless $1.nil?    self.note.scan(/<\s*pop\s+remove\s+(.*)\s*>/i)    @pop_values[1] = $1.to_s unless $1.nil?    self.note.scan(/<\s*pop\s+color\s+(.*)\s*>/i)    @pop_values[2] = ($1.to_s[0] == ":" ? $1.slice(1, $1.size).to_sym : $1.to_s) unless $1.nil?    self.note.scan(/<\s*pop\s+style\s+(.*)\s*>/i)    @pop_values[3] = $1.to_s unless $1.nil?    @pop_values[4] = @pop_values != old_pop  endend
Now, in the state you can add :

<pop color :yourcolor>

<pop add YOURTEXT>

 

It will display :yourcolor color and YOURTEXT as text

 

It worked for me
 
Last edited by a moderator:

EternalShadow

Veteran
Veteran
Joined
Sep 16, 2012
Messages
5,781
Reaction score
1,041
First Language
English
Primarily Uses
Ok, look...

I tried, and I was still confused a bit.

So, try to add a new script below CP Popup with following code

class RPG::State < RPG::BaseItem  def set_pop_values    @pop_values = [nil, nil, nil, nil, false]    old_pop = @pop_values.dup    self.note.scan(/<\s*pop\s+add\s+(.*)\s*>/i)    @pop_values[0] = $1.to_s unless $1.nil?    self.note.scan(/<\s*pop\s+remove\s+(.*)\s*>/i)    @pop_values[1] = $1.to_s unless $1.nil?    self.note.scan(/<\s*pop\s+color\s+(.*)\s*>/i)    @pop_values[2] = ($1.to_s[0] == ":" ? $1.slice(1, $1.size).to_sym : $1.to_s) unless $1.nil?    self.note.scan(/<\s*pop\s+style\s+(.*)\s*>/i)    @pop_values[3] = $1.to_s unless $1.nil?    @pop_values[4] = @pop_values != old_pop  endend
Now, in the state you can add :

<pop color :yourcolor>

<pop add YOURTEXT>

 

It will display :yourcolor color and YOURTEXT as text

 

It worked for me
Thank you so, so much ;-;
 

Sixth

Veteran
Veteran
Joined
Jul 4, 2014
Messages
2,162
Reaction score
822
First Language
Hungarian
Primarily Uses
RMVXA
I know it is solved, but judging by the regexp in the script, and by the script's header, you should use the note-tags like this:

pop color[1] # This makes it blue if you use the default windowskin.pop color[yellow] # Note that I did NOT use : before the text! This uses the :yellow color settings.The method automatically converts the note-tag value to a symbol, the value is a string, so if you use :yellow in the note-tag, it will get to be :":yellow" in the end (exactly the way you see, with the quotation marks), which is not defined and will default to the :null color setting instead.I did not test this, but the method in the script surely seems to work like this.
 

EternalShadow

Veteran
Veteran
Joined
Sep 16, 2012
Messages
5,781
Reaction score
1,041
First Language
English
Primarily Uses
I know it is solved, but judging by the regexp in the script, and by the script's header, you should use the note-tags like this:

pop color[1] # This makes it blue if you use the default windowskin.pop color[yellow] # Note that I did NOT use : before the text! This uses the :yellow color settings.The method automatically converts the note-tag value to a symbol, the value is a string, so if you use :yellow in the note-tag, it will get to be :":yellow" in the end (exactly the way you see, with the quotation marks), which is not defined and will default to the :null color setting instead.I did not test this, but the method in the script surely seems to work like this.
Tried that, didn't work.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,859
Messages
1,017,030
Members
137,566
Latest member
Fl0shVS
Top