The RPG Maker Resource Kit

RMRK RPG Maker Creation => VX => VX Scripts Database => Topic started by: game_guy on June 08, 2011, 02:32:22 AM

Title: [VX] More Self-Switches
Post by: game_guy on June 08, 2011, 02:32:22 AM
More Self-Switches
Authors: game_guy
Version: 1.1
Type: Event Modification
Key Term: Environment Add-on

Introduction

Ever need more than 4 self switches? With this small script, you can now have as many self switches you want. You aren't just limited to letters either. You can have names for them.

Features


Screenshots

This is a screenshot from the XP version, however, it works the exact same way.
Spoiler for:
(http://decisive-media.net/gameguy/switch.png)

Demo

http://www.mediafire.com/?xwfvy7k3zxb83ng (provided by Mitsarugi)
This demo is bugged but its still a great example on how to use this. :)

Script

Spoiler for:
Code: [Select]
#===============================================================================
# More Self-Switches
# Version 1.1
# Author game_guy
#-------------------------------------------------------------------------------
# Intro:
# Ever need more than 4 self switches? With this small script, you can now
# have as many self switches you want. You aren't just limited to letters
# either. You can have names for them.
#
# Features:
# -More Self Switches
# -Name them whatever
#
# Instructions:
# -First, lets create a self switch for our event. Anywhere in the event, add
# a comment and type this,
# Switch:switch_name.
# switch_name can be whatever you want to name the switch. Thats all you have
# to do to create a self switch for that page.
# There cannot be any spaces between the colon and the switch name.
# e.g. Switch: switch - Does not work.
# e.g. Switch:switch - Does work.
# You also need the Self-Switch box on the page checked.
#
# -Now to turn this switch of or on, call this in a script call.
# self_switch("switch", true/false)
# switch is the switch name, this must be in double " " or single ' ' quotes.
# true/false tells the script whether to turn it off or on. true = on,
# false = off.
#
# -If you want to see if a self switch is on/off, use this script in a
# condtional branch.
# self_switch_state("switch") == true/false
# switch is the switch name, this must be in double " " or single ' ' quotes.
# true = on, false = off
#
# Compatibility:
# Not tested with SDK.
# Should work with anything.
#
# Credits:
# game_guy ~ For creating it.
#===============================================================================

class Game_Event < Game_Character
  alias gg_init_more_switches_lat initialize
  def initialize(map_id, event)
    gg_init_more_switches_lat(map_id, event)
    @event.pages.each {|page| page.list.each {|command|
      if [108, 408].include?(command.code)
        command.parameters.each {|p| check_custom_switch(page, p) }
      end
    }}
    refresh
  end
  def check_custom_switch(page, code)
    a = code.split(':')
    if a[0].downcase == "switch" && a[1] != nil
      page.condition.self_switch_ch = a[1] 
    end
  end
end

class Game_Interpreter
  def self_switch(switch, state)
    if @event_id > 0
      key = [$game_map.map_id, @event_id, switch]
      $game_self_switches[key] = state
    end
    $game_map.need_refresh = true
  end
  def self_switch_state(switch)
    key = [$game_map.map_id, @event_id, switch]
    return $game_self_switches[key]
  end
end
 

XP Version Here (http://rmrk.net/index.php/topic,42808.0.html)

Instructions

In the script.
Place above main, below Scene_Debug, the normal.

Compatibility

Not tested with SDK.
Should work with anything.

Credits and Thanks


Author's Notes

Enjoy! :)
Title: Re: [VX] More Self-Switches
Post by: pacdiggity on June 08, 2011, 12:26:53 PM
Very nice. A handy tip for sad souls who need more event conditions. I even bothered to look through your code, it looked all compatible there.
Good stuff g_g.
Title: Re: [VX] More Self-Switches
Post by: Mitsarugi on June 15, 2011, 01:39:42 PM
Hi Game_Guy i really like your script so i made a demo for it ^^ hope it helps.
Here: http://www.mediafire.com/?xwfvy7k3zxb83ng
your script is a great help
Title: Re: [VX] More Self-Switches
Post by: game_guy on June 17, 2011, 06:59:57 AM
Hey thanks. :D *adds to post*
Title: Re: [VX] More Self-Switches
Post by: Mitsarugi on June 18, 2011, 10:29:14 AM
No problem my friend you help us (a lot) and we help you (how ever we can )^^
Title: Re: [VX] More Self-Switches
Post by: The Frontera on July 26, 2011, 12:38:11 PM
First of all, this is a cool and really useful script,
but I found a BIG bug.
All the self switches work fine, but when you make a map transfer and than return into the previous map, all the switches made are automatically reset !
an example:
I create an event, I set a red treasure chest as graphic, priority same as character, trigger action button.
In the Event Commands part i write using Script Call       
self_switch("BLUE", true)
Now I make another event page
I set as graphic a blue chest and I check the Self Switch Box
In the Event Command part I write using Comment   
Switch:BLUE
Now, in playtest, if I interact with the chest it becomes blue.
But if I go to another map and I return back, automatically the chest returns red, so the self switch BLUE I created turned off.
That's the problem. With this, I can't actually use your script !
Can you fix it ?
I really need your script, so please fix this bug and/or help me !
Title: Re: [VX] More Self-Switches
Post by: pacdiggity on July 26, 2011, 12:46:41 PM
To fix that, g_g, I think you'd have to store the data in either Map, Temp or System. Probably Map, it'd be a bit odd in System (although you do need to have it remembered for save files!), but that's just me as a sounding board.
Title: Re: [VX] More Self-Switches
Post by: The Frontera on July 27, 2011, 07:07:47 AM
and... how can I do it ?
Title: Re: [VX] More Self-Switches
Post by: pacdiggity on July 27, 2011, 09:09:54 AM
I wasn't aiming that at you, rather game_guy.
Title: Re: [VX] More Self-Switches
Post by: game_guy on July 29, 2011, 08:35:10 AM
Easy fix. Will do that now. And all data is already stored in $game_self_switches. It was just a matter of my fault for not accessing the data if it existed. I know more about RGSS/RGSS2 then you guys think. ;3

Actually, looking through my code, there should be no reason its doing that. O_o I'll go try and attempt to recreate this bug.

Fixed. Theres most likely a bug in RMXP now too. >_>
Title: Re: [VX] More Self-Switches
Post by: pacdiggity on July 29, 2011, 11:27:24 AM
Oh, I know how skilled you are at RGSS. Not insulting your ability at all.
I also know that you're creating ARC and that's going to be an incredible thing on a resume on day.
Title: Re: [VX] More Self-Switches
Post by: The Frontera on July 29, 2011, 02:07:17 PM
Thanks game_guy, now it works ! 
Title: Re: [VX] More Self-Switches
Post by: kholyphoenix1 on November 29, 2014, 12:43:22 PM
I am not able to see it work.

Could someone explain me better?
A print screen?