Guest Access
EVENTALIST
EVENTALIST
EVENTALIST
profile
You know in the Fall Out series where you as the player can select a perk that will aid you in your over all quest when you level up? Well this script does just that.
Call script using a scrip command in an event that states: $scene = Perks.new
If you have a question or comment post here or feel free to PM me.
mr_wiggles
profile
Wiggles Perk Script
Version: 1.2
Author: Mr_Wiggles
Date: Aug. 12, 2011
Version History
Version: 1.2
Author: Mr_Wiggles
Date: Aug. 12, 2011
Version History
- Version 1.1 : Initial Release
- Version 1.2 : Bug fix
Planned Future Versions
- More features, not sure what yet so suggest something.
Description
You know in the Fall Out series where you as the player can select a perk that will aid you in your over all quest when you level up? Well this script does just that.
Features
- Fully Customizable - perks can be simple edits to health or something like Str, HP, Dex or can be as advanced as a script call.
Instructions
Paste in your script database above main but below the default scripts.Call script using a scrip command in an event that states: $scene = Perks.new
script
- Code:
#==============================================================================
# ** Mr_Wiggles Perk Script **
#==============================================================================
# By: Mr Wiggles
# Version: 1.2
# Aug. 12, 2011
#==============================================================================
# Instructions:
# ----------------------------------------------------
# Call script using a scrip command in an event that states:
# $scene = Perks.new
#
#==============================================================================
# Description:
# ----------------------------------------------------
# You know in the Fall Out series where you as the player can select a perk
# that will aid you in your over all quest when you level up? Well this
# script does just that.
#==============================================================================
# Features:
# ----------------------------------------------------
# Fully Customizable - perks can be simple edits to health or something like
# Str, or can be as advanced as a script call.
#
#==============================================================================
# * CONFIG START
#==============================================================================
module Wig_Config
#--------------------------------------------------------------------------
# Player must spend perk points before they can exit the perk menu.
#--------------------------------------------------------------------------
MUST_SPEND = true
#--------------------------------------------------------------------------
# Names of the perks.
# n => "name"
#--------------------------------------------------------------------------
PERK_NAMES = {
0 => "First perk",
1 => "Second perk",
2 => "Third perk"
}
#--------------------------------------------------------------------------
# Description for perk.
# n => "description"
#--------------------------------------------------------------------------
PERK_DISC = {
0 => "First perk's description followed by a comma if another description" +
" follows it.",
1 => "Second perk's description, also note that since this being perk number" +
" two that its id in the script is 1. This goes for all perks, its id" +
" will be one less this its original location.",
2 => "But as you can see these descriptions can be very long and descriptive" +
" which makes it a great feature for this script."
}
#--------------------------------------------------------------------------
# Requirements that need to be met in order to have this perk.
# n => [["name", value], ["name", value]]
#
# "name" refers to one of the following:
# Level, Str, Dex, Agi, Int
#
# *MUST* match the formatting shown!
#--------------------------------------------------------------------------
PERK_REQ = {
0 => [ ["Level", 1], ["Str", 20] ],
1 => [ ["Level", 1] ],
2 => [ ["Level", 10], ["Int", 60], ["Dex", 56], ["Agi", 80] ]
}
#--------------------------------------------------------------------------
# Perk Effects.
# n => [["name", value], ["name", value]]
#
# "name" refers to one of the following:
# HP, MP, Str, Dex, Agi, Int
#
# value stands for the amount that the stat is modified by.
# *MUST* match the formatting shown!
#--------------------------------------------------------------------------
# Or you can have it run a script command. (little complex)
# n => "script string"
#
# You write your script commands in the string that will be evaluated, use
# "\n" for enter to tell the script that its on a new line.
# Any quotes must follow after a backslash ( like so \" or \' ) in
# order to be used.
#--------------------------------------------------------------------------
PERK_EFFEC = {
0 => [["Dex", 30], ["Str", 5]],
1 => "print (\"See, this was a scripted perk,\") \n" +
"print (\"its set up not to do much just show text\")",
2 => [["HP", 70], ["MP", 50]]
}
#--------------------------------------------------------------------------
end
#==============================================================================
# * END CONFIG
#==============================================================================
# Only edit past this point if you have some what of a clue of what it is your
# doing, if not do feel free to poke around and learn something new. ^-^
#==============================================================================
# ** Class Perks
#==============================================================================
class Perks
include Wig_Config
#--------------------------------------------------------------------------
# * Main
#--------------------------------------------------------------------------
def main
# create windows
@perk_selection_window = Window_Perk_Selection.new
@perk_discription_window = Window_Perk_Discription.new
@perk_actor_stat_window = Window_Perk_Actor_Stats.new
@perk_grey_window = Window_Perk_Grey.new(640, 480)
@perk_points_window = Window_Perk_Points.new
@perk_confirm_window = Window_Command.new(160, ["No", "Yes"])
@perk_confirm_window.x = 240
@perk_confirm_window.y = 196
@perk_confirm_window.z = 10
@perk_confirm_window.active = false
@perk_confirm_window.visible = false
@perk_grey_window.visible = false
# main loop
Graphics.transition
loop do
Graphics.update
Input.update
update
break if $scene != self
end
Graphics.freeze
# dispose windows
@perk_selection_window.dispose
@perk_discription_window.dispose
@perk_actor_stat_window.dispose
@perk_confirm_window.dispose
@perk_grey_window.dispose
@perk_points_window.dispose
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update
@perk_index = @perk_selection_window.index
if @perk_confirm_window.active
@perk_confirm_window.update
update_confirm
return
end
@perk_grey_window.update
@perk_selection_window.update
@perk_actor_stat_window.update(@perk_index)
@perk_discription_window.update(@perk_index)
update_perk_selection
end
#--------------------------------------------------------------------------
# * Update Confirm
#--------------------------------------------------------------------------
def update_confirm
if Input.trigger?(Input::C)
case @perk_confirm_window.index
when 0
$game_system.se_play($data_system.cancel_se)
when 1
$game_system.se_play($data_system.decision_se)
$game_party.gain_perk(@perk_index)
$game_party.perk_points -= 1
@perk_selection_window.refresh
@perk_points_window.refresh
@perk_actor_stat_window.refresh
end
@perk_confirm_window.active = false
@perk_confirm_window.visible = false
@perk_grey_window.visible = false
@perk_selection_window.active = true
end
# exit
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@perk_confirm_window.active = false
@perk_confirm_window.visible = false
@perk_grey_window.visible = false
@perk_selection_window.active = true
end
end
#--------------------------------------------------------------------------
# * Update Perk Windwos
#--------------------------------------------------------------------------
def update_perk_selection
# selection
if Input.trigger?(Input::C)
if $game_party.perk_selectable?(@perk_index) and
!$game_party.known_perks.include?(@perk_index)
$game_system.se_play($data_system.decision_se)
@perk_selection_window.active = false
@perk_confirm_window.active = true
@perk_confirm_window.visible = true
@perk_grey_window.visible = true
else
$game_system.se_play($data_system.buzzer_se)
end
end
# exit
if Input.trigger?(Input::B)
if $game_party.perk_points > 0 and MUST_SPEND
$game_system.se_play($data_system.buzzer_se)
print ("You must chose #{$game_party.perk_points} Perk(s).")
else
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
$game_map.refresh
end
end
end
end
#==============================================================================
# ** Game Party
#==============================================================================
class Game_Party
include Wig_Config
attr_reader :known_perks
attr_accessor :perk_points
#--------------------------------------------------------------------------
# * Intitialize
#--------------------------------------------------------------------------
alias :perk_init :initialize
def initialize
perk_init
@known_perks = []
@perk_points = 0
@old_level = 1
end
#--------------------------------------------------------------------------
# * Gain Perk
#--------------------------------------------------------------------------
def gain_perk(perk_id)
if !@known_perks.include?(perk_id)
@known_perks.push(perk_id)
@actors[0].perk_effects(perk_id)
end
end
#--------------------------------------------------------------------------
# * Gain Point to Spend
#--------------------------------------------------------------------------
def gain_perk_point?
if @actors[0].level != @old_level
@perk_points += 1 if @actors[0].level > @old_level
@old_level = @actors[0].level
end
end
#--------------------------------------------------------------------------
# * Can Select Perk
#--------------------------------------------------------------------------
def perk_selectable?(perk_id)
# no points to spend
return false if @perk_points <= 0
# requirement check
requirements = PERK_REQ[perk_id]
for ment in requirements
case ment[0]
when "Level"
return false if @actors[0].level.to_f < ment[1].to_f
when "Str"
return false if @actors[0].base_str.to_f < ment[1].to_f
when "Dex"
return false if @actors[0].base_dex.to_f < ment[1].to_f
when "Agi"
return false if @actors[0].base_agi.to_f < ment[1].to_f
when "Int"
return false if @actors[0].base_int.to_f < ment[1].to_f
end
end
# all requirements are met
return true
end
end
#==============================================================================
# ** Scene Map
#==============================================================================
class Scene_Map
alias :perk_update :update
def update
perk_update
$game_party.gain_perk_point?
end
end
#==============================================================================
# ** Game System
#==============================================================================
class Game_System
attr_accessor :actor_perk_mods
#--------------------------------------------------------------------------
# * Setup
#--------------------------------------------------------------------------
alias :perk_init :initialize
def initialize
perk_init
@actor_perk_mods = []
for i in 0...6
@actor_perk_mods[i] = 0
end
end
end
#==============================================================================
# ** Game Actor
#==============================================================================
class Game_Actor
include Wig_Config
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
alias :perk_init :initialize
def initialize(*args)
perk_init(*args)
set_perk_mods
end
#--------------------------------------------------------------------------
# * Setup
#--------------------------------------------------------------------------
def set_perk_mods
@maxhp_plus = $game_system.actor_perk_mods[0]
@maxsp_plus = $game_system.actor_perk_mods[1]
@str_plus = $game_system.actor_perk_mods[2]
@dex_plus = $game_system.actor_perk_mods[3]
@agi_plus = $game_system.actor_perk_mods[4]
@int_plus = $game_system.actor_perk_mods[5]
end
#--------------------------------------------------------------------------
# * Perk Effects
#--------------------------------------------------------------------------
def perk_effects(perk_id)
effects = PERK_EFFEC[perk_id]
if effects.is_a?(String)
error_print = "There is an error with perk #{perk_id}'s script."
eval(effects) rescue print(error_print)
return
else
for effect in effects
case effect[0]
when "HP"
@maxhp_plus += effect[1]
$game_system.actor_perk_mods[0] = @maxhp_plus
when "MP"
@maxsp_plus += effect[1]
$game_system.actor_perk_mods[1] = @maxsp_plus
when "Str"
@str_plus += effect[1]
$game_system.actor_perk_mods[2] = @str_plus
when "Dex"
@dex_plus += effect[1]
$game_system.actor_perk_mods[3] = @dex_plus
when "Agi"
@agi_plus += effect[1]
$game_system.actor_perk_mods[4] = @agi_plus
when "Int"
@int_plus += effect[1]
$game_system.actor_perk_mods[5] = @int_plus
end
end
end
end
#--------------------------------------------------------------------------
# * Get Basic Maximum SP
#--------------------------------------------------------------------------
alias :perk_mp :base_maxsp
def base_maxsp
old_value = perk_mp
return old_value + @maxsp_plus
end
#--------------------------------------------------------------------------
# * Get Basic Strength
#--------------------------------------------------------------------------
alias :perk_str :base_str
def base_str
old_value = perk_str
return old_value + @str_plus
end
#--------------------------------------------------------------------------
# * Get Basic Dexterity
#--------------------------------------------------------------------------
alias :perk_dex :base_dex
def base_dex
old_value = perk_dex
return old_value + @dex_plus
end
#--------------------------------------------------------------------------
# * Get Basic Agility
#--------------------------------------------------------------------------
alias :perk_agi :base_agi
def base_agi
old_value = perk_agi
return old_value + @agi_plus
end
#--------------------------------------------------------------------------
# * Get Basic Intelligence
#--------------------------------------------------------------------------
alias :perk_int :base_int
def base_int
old_value = perk_int
return old_value + @int_plus
end
end
#==============================================================================
# ** Window Perk Selection
#==============================================================================
class Window_Perk_Selection < Window_Selectable
include Wig_Config
#--------------------------------------------------------------------------
# * Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 0, 240, 480)
self.contents = Bitmap.new(width - 32, height - 32)
@item_max = PERK_NAMES.size
@column_max = 1
self.index = 0
self.z = 1
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@data = []
for id in 0...PERK_NAMES.size
@data.push(id)
end
for item in @data
draw_item(item)
end
end
#--------------------------------------------------------------------------
# * Draw Item
#--------------------------------------------------------------------------
def draw_item(index)
self.contents.font.color = $game_party.known_perks.include?(index) ?
system_color : $game_party.perk_selectable?(index) ?
normal_color : disabled_color
x = 4
y = index * 32
self.contents.draw_text(x, y, 220, 32, PERK_NAMES[index])
end
end
#==============================================================================
# ** Window Perk Discription
#==============================================================================
class Window_Perk_Discription < Window_Selectable
include Wig_Config
#--------------------------------------------------------------------------
# * Initialization
#--------------------------------------------------------------------------
def initialize
super(240, 120, 400, 296)
self.contents = Bitmap.new(width - 32, height - 32)
self.z = 1
@old_perk_id = -1
update
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh(index = 0)
self.contents.clear
old_size = self.contents.font.size
# format and draw perk discription
self.contents.font.color = $game_party.perk_selectable?(index) ?
normal_color : disabled_color
format_string(0, 0, PERK_DISC[index], 360)
# draw perk effects
effects = PERK_EFFEC[index]
text = []
for fect in effects
break if fect.is_a?(String)
i = effects.index(fect)
text.push("+#{fect[1]} to #{fect[0]}")
text.push(", ") if i != effects.size - 1
end
self.contents.font.color = system_color
self.contents.draw_text(4, 190, 200, 32, "Bonuses:") if
effects.size > 0 and !effects.is_a?(String)
self.contents.font.color = normal_color
self.contents.font.size = 16
self.contents.draw_text(4, 205, 360, 32, text.to_s, 2)
self.contents.font.size = old_size
# draw perk requirements
requirements = PERK_REQ[index]
text = []
for ment in requirements
i = requirements.index(ment)
text.push("#{ment[0]} #{ment[1]}")
text.push(", ") if i != requirements.size - 1
end
text.flatten!
self.contents.font.color = system_color
self.contents.draw_text(4, 225, 200, 32, "Requirements:") if
requirements.size > 0
self.contents.font.color = normal_color
self.contents.font.size = 16
self.contents.draw_text(4, 240, 360, 32, text.to_s, 2)
self.contents.font.size = old_size
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update(index = 0)
super()
if @old_perk_id != index
refresh(index)
@old_perk_id = index
end
end
end
#==============================================================================
# ** Window Perk Actor Stats
#==============================================================================
class Window_Perk_Actor_Stats < Window_Base
include Wig_Config
#--------------------------------------------------------------------------
# * Initialization
#--------------------------------------------------------------------------
def initialize
super(240, 0, 400, 120)
self.contents = Bitmap.new(width - 32, height - 32)
self.z = 1
@maxsp_plus = @str_plus = @dex_plus = @agi_plus = @int_plus = 0
@maxhp_plus = 0
@perk_id = -1
@actor = $game_party.actors[0]
update
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.size = 18
actor = $game_party.actors[0]
draw_actor_level(actor, 300, 64)
draw_actor_hp(actor, 0, 0)
draw_actor_sp(actor, 200, 0)
for type in 0...4
draw_actor_parameter(actor, type)
end
end
#--------------------------------------------------------------------------
# * Draw Parameter
#--------------------------------------------------------------------------
def draw_actor_parameter(actor, type, x = 0, y = 32)
case type
when 0 # Str
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, 32, $data_system.words.str)
self.contents.font.color = @require[1] ? knockout_color : normal_color
self.contents.draw_text(x + 40, y, 36, 32, actor.str.to_s, 2)
when 1 # Dex
y += 32
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, 32, $data_system.words.dex)
self.contents.font.color = @require[2] ? knockout_color : normal_color
self.contents.draw_text(x + 40, y, 36, 32, actor.dex.to_s, 2)
when 2 # Agi
x += 90
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, 32, $data_system.words.agi)
self.contents.font.color = @require[3] ? knockout_color : normal_color
self.contents.draw_text(x + 40, y, 36, 32, actor.agi.to_s, 2)
when 3 # Int
x += 90; y += 32
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, 32, $data_system.words.int)
self.contents.font.color = @require[4] ? knockout_color : normal_color
self.contents.draw_text(x + 40, y, 36, 32, actor.int.to_s, 2)
end
end
#--------------------------------------------------------------------------
# * Draw Level
#--------------------------------------------------------------------------
def draw_actor_level(actor, x, y)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, "Lv")
self.contents.font.color = @require[0] ? knockout_color : normal_color
self.contents.draw_text(x + 32, y, 24, 32, actor.level.to_s, 2)
end
#--------------------------------------------------------------------------
# * Requirements Met
#--------------------------------------------------------------------------
def requirements_met?
# create fail array
fails = []
# return if perk is known
return fails if $game_party.known_perks.include?(@perk_id)
# test if player meets requirements
requirements = PERK_REQ[@perk_id]
for ment in requirements
case ment[0]
when "Level"
fails[0] = true if @actor.level.to_f < ment[1].to_f
when "Str"
fails[1] = true if @actor.base_str.to_f < ment[1].to_f
when "Dex"
fails[2] = true if @actor.base_dex.to_f < ment[1].to_f
when "Agi"
fails[3] = true if @actor.base_agi.to_f < ment[1].to_f
when "Int"
fails[4] = true if @actor.base_int.to_f < ment[1].to_f
end
end
return fails
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update(perk_id = 0)
if @perk_id != perk_id
@perk_id = perk_id
@require = requirements_met?
refresh
end
end
#--------------------------------------------------------------------------
# * Make Temp Effects
#--------------------------------------------------------------------------
def make_temp_effects
effects = PERK_EFFEC[@perk_id]
for effect in effects
case effect[0]
when "HP"
@maxhp_plus = effect[1]
when "MP"
@maxsp_plus = effect[1]
when "Str"
@str_plus = effect[1]
when "Dex"
@dex_plus = effect[1]
when "Agi"
@agi_plus = effect[1]
when "Int"
@int_plus = effect[1]
end
end
end
end
#==============================================================================
# ** Window_Perk_Points
#==============================================================================
class Window_Perk_Points < Window_Base
include Wig_Config
#--------------------------------------------------------------------------
# * Initialization
#--------------------------------------------------------------------------
def initialize
super(240, 416, 400, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.z = 1
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = $game_party.perk_points > 0 ?
normal_color : disabled_color
string = "You have #{$game_party.perk_points} Perk Points to spend."
self.contents.draw_text(0, 0, 400, 32, string)
end
end
#==============================================================================
# ** Window Perk Grey
#==============================================================================
class Window_Perk_Grey < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(w, h, x = 0, y = 0)
super(x - 16, y - 16, w + 32, h + 32)
self.contents = Bitmap.new(width - 32, height - 32)
self.z = 5
self.opacity = 0
@width = w + 32
@height = h + 32
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
rect = Rect.new(0, 0, @width, @height)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 120))
end
end
#==============================================================================
# ** Window Base
#==============================================================================
class Window_Base
#--------------------------------------------------------------------------
# * Format String
#--------------------------------------------------------------------------
def format_string(x, y, string, max_width = 100)
temp_word_array = string.scan (/./)
position = line_break = 0
lines = []
blank_width = []
new_string = [lines, blank_width]
for i in 0...temp_word_array.size
character = temp_word_array[i]
if character == " " or i == temp_word_array.size - 1
i += 1 if i == temp_word_array.size - 1
if self.contents.text_size(string[line_break,
i-line_break]).width <= max_width
position = i
else
line = temp_word_array[line_break, position-line_break]
new_string[0].push(line)
line_blank = max_width - self.contents.text_size(string[
line_break, position-line_break]).width
new_string[1].push(line_blank.to_f / (line.size.to_f - 1.0))
line_break = position + 1
position = i
end
end
end
new_string[0].push(temp_word_array[line_break,
temp_word_array.size - line_break])
return if new_string[0].nil?
for line in 0...lines[0].size
self.contents.draw_text(x, y + (line * 32), 380, 32, lines[line].to_s)
end
end
end
Support
If you have a question or comment post here or feel free to PM me.
Known Compatibility Issues
None that i know of.
Restrictions
DO NOT POST ON ANY OTHER SITE WITH OUT MY PERMISSION. You are free to edit for YOUR USE only and i must be credited.None that i know of.
Restrictions
EVENTALIST
Show Signature
EVENTALIST
C.O.R.N.
C.O.R.N.
C.O.R.N.
profile
BluE
profile
sweet script man. can you have more than 3 perks?
C.O.R.N.
Show Signature
EVENTALIST
EVENTALIST
Administrator
Administrator
Administrator
profile
G@MeF@Ce
profile
gotta love them perks! + very nice ^,^
the only bug I ran into was that I could not exit out with out spending points.
seriously man, you got mad skills. clean layout!
the only bug I ran into was that I could not exit out with out spending points.
seriously man, you got mad skills. clean layout!
Administrator
Show Signature
EVENTALIST
EVENTALIST
EVENTALIST
profile
mr_wiggles
profile
^ thats a feature in the constants
EVENTALIST
Show Signature
EVENTALIST
||||||||||
||||||||||
||||||||||
profile
supercow
profile
nice perks gonna tinker with this later, is there a way to diactivate the perks and get the point back?
||||||||||
Show Signature
||||||||||
EVENTALIST
EVENTALIST
EVENTALIST
profile
mr_wiggles
profile
like trade in a perk or swap perks out? no but i can look into it for an update when i find the time.
EVENTALIST
Show Signature
EVENTALIST
The only one
The only one
The only one
profile
NuKa_BuBble
profile
Hey mr_wiggles! I found an error in your script! I have underline it.
PS: Sorry if it's not PM, it's for the user of this script. Now they can fix the bug while it's not edit (I use XAS. I don't tried on blank game).
Around the line 249:
#--------------------------------------------------------------------------
# * Gain Point to Spend
#--------------------------------------------------------------------------
def gain_perk_point?
if @actors[0].level != @old_level
@perk_points += 1 if @actors[0].level > @old_level
@actors[0].level = @old_level
end
end
Your lvl is the same then the old lvl... So you can't lvl up!
Change it for:
@old_level = @actors[0].level
I'm not good in Ruby (I read 3-4 page on internet) but that work for me.
PS: Sorry if it's not PM, it's for the user of this script. Now they can fix the bug while it's not edit (I use XAS. I don't tried on blank game).
Around the line 249:
#--------------------------------------------------------------------------
# * Gain Point to Spend
#--------------------------------------------------------------------------
def gain_perk_point?
if @actors[0].level != @old_level
@perk_points += 1 if @actors[0].level > @old_level
@actors[0].level = @old_level
end
end
Your lvl is the same then the old lvl... So you can't lvl up!
Change it for:
@old_level = @actors[0].level
I'm not good in Ruby (I read 3-4 page on internet) but that work for me.
The only one
Show Signature
EVENTALIST
EVENTALIST
EVENTALIST
profile
mr_wiggles
profile
lol, well thanks for finding this for me, I'm updating the original post.
can't believe i missed that. :p
can't believe i missed that. :p
EVENTALIST
Show Signature
EVENTALIST