The RPG Maker Resource Kit

RMRK RPG Maker Creation => Requests => Script Request => Topic started by: shintashi on November 18, 2010, 03:01:19 AM

Title: how do I make a temporary effect?
Post by: shintashi on November 18, 2010, 03:01:19 AM
Say I want to add +20 to some variable, but I only want the effects to last for a few seconds or a couple of minutes, how can I set the effect to ware off in the script editor?

like this pseudo code:

def temp_fx
for 20 seconds do [my_variable_bonus = 20]
after that [my_variable_bonus = 0]
end
Title: Re: how do I make a temporary effect?
Post by: shintashi on November 21, 2010, 04:38:04 AM
it appears things move in 30 frames per second but I'm not yet sure how to access those variables without directly accessing the game total play time. I'll try some different versions of if _ x -=1 and +=1 but I'm kind of lost as to the time mechanics of RPGmaker.
Title: Re: how do I make a temporary effect?
Post by: shintashi on November 21, 2010, 05:06:51 AM
So I came up with this:

class Counting_Clock < Window_Base
  def initialize
    $counting_clock=0
    while $counting_clock < 30
      $counting_clock += 1
    end
    super(240, 160, 120, 120)
    self.contents = Bitmap.new(width-32, height-32)
    self.contents.font.name = "Times New Roman" 
    self.contents.font.size = 24
    refresh
  end
 
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.draw_text(30, 25, 100, 32, $counting_clock.to_s)
  end
 
end


And it pops up a window with the number 30, and does so instantaneously. I've done a print variant where you have to hit 'ok' for it to transition from 0 ..1.. 2, etc. But while normally does everything instantly. I'm trying to display a smooth number climb, but i'm not sure how time is portrayed in this code.
Title: Re: how do I make a temporary effect?
Post by: shintashi on November 21, 2010, 06:17:37 PM


class Counting_Clock < Window_Base
  def initialize
    t = Time.now
    q = t.sec
    m = q + 5
    $counting_clock=0
    case q
when m
$counting_clock=30
  super(240, 160, 120, 120)
    self.contents = Bitmap.new(width-32, height-32)
    self.contents.font.name = "Arial" 
    self.contents.font.size = 24
    refresh
  else
$counting_clock=0
  super(240, 160, 120, 120)
    self.contents = Bitmap.new(width-32, height-32)
    self.contents.font.name = "Arial" 
    self.contents.font.size = 24
    refresh
  end
   
  end # end initialize
   
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.draw_text(30, 25, 100, 32, $counting_clock.to_s)
  end 
end # end class


unfortunately this displays only the else result, in this case, "0". It doesn't auto update and the window closes automatically after a few seconds.