Chaos Project

RPG Maker => General Discussion => Troubleshooting / Help => Topic started by: Xyron7777777 on March 14, 2010, 11:01:30 am

Title: [Resolved] Turn scripts on/off in-game
Post by: Xyron7777777 on March 14, 2010, 11:01:30 am
Before I started any real work on a game of my own, I decided first to create a 'Test' game. A game created entirely to prod and probe RMXP from the inside. After I got the hang of it, I started inserting small scripts (the basics) that I found randomly strewn about the internet. Some examples would include the Fullscreen prompt, a CMS, and a battle system edit to have more than 5 party members in a given fight. I havent yet tried swapping over to a full CBS, seeing as I wanted to start small.

Over time I realized that the battle system edit looked a little cheesy when the party wasnt full, and that got me thinking. Is there a way to turn a script on or off from inside the game? And I dont mean from the editor's standpoint - more like attaching the script to a variable or switch that would activate it or turn it off. Any ideas?
Title: Re: Turn scripts on/off in-game
Post by: Kett Shee on March 14, 2010, 11:35:05 am
I'm still learning RGSS myself, but it sounds like you probably have to add a command into the actual script...which would mean editing it of course.
Title: Re: Turn scripts on/off in-game
Post by: Starrodkirby86 on March 14, 2010, 11:54:14 am
I suppose it might work similarly to how a person can turn on and off a feature in Tons of Add-ons and other things? Though going like that doesn't sound real nice, mmh. Definitely possible, but it's something that the script should be made with? o.o
Title: Re: Turn scripts on/off in-game
Post by: Valdred on March 14, 2010, 12:59:31 pm
at the top of the script (on the first line) put:

if $game_switches[#] == true

exchange # with the id of the switch you want to use as activator/deactivator
for example:
if $game_switches[3] == true

will use switch number 3 as activator/deactivator.

then put this:
end

at the bottom of the script(last line)
Title: Re: Turn scripts on/off in-game
Post by: Xyron7777777 on March 14, 2010, 01:15:58 pm
Quote from: Valdred on March 14, 2010, 12:59:31 pm
at the top of the script (on the first line) put:

if $game_switches[#] == true

exchange # with the id of the switch you want to use as activator/deactivator
for example:
if $game_switches[3] == true

will use switch number 3 as activator/deactivator.

then put this:
end

at the bottom of the script(last line)



AH! I knew it would be something simple like that! I was trying something similar to Script_name = #, but I was getting nowhere. I even tried putting a line of code 'twixt every other statement that required an 'end.' But meh, if we dont make mistakes, how will we ever learn. Thanks a ton!

**Edit** Hmm, seems to be a problem.
Spoiler: ShowHide
(http://i67.servimg.com/u/f67/13/57/04/58/error10.jpg) (http://www.servimg.com/image_preview.php?i=15&u=13570458)

I placed it (copy-pasta) into the first line and replaced the # with a 33. It failed, so I tried 0033 (specifics) but still no go.
Title: Re: Turn scripts on/off in-game
Post by: Valdred on March 14, 2010, 02:34:23 pm
Send me the script.

also, there must be nothing else than the text I sent you on the first and last line

Title: Re: Turn scripts on/off in-game
Post by: Sase on March 14, 2010, 02:49:11 pm
Did you remember putting end on the very last line of the script?
Title: Re: Turn scripts on/off in-game
Post by: winkio on March 14, 2010, 02:52:13 pm
It's happening because game_variables isn't initialized during compile. 

do this:  make a module with variables above all the other scripts, then access those variables with script calls in game to turn stuff on and off.
Title: Re: Turn scripts on/off in-game
Post by: Valdred on March 14, 2010, 03:00:09 pm
I think you gotta explain that in an easier way.
Title: Re: Turn scripts on/off in-game
Post by: Xyron7777777 on March 14, 2010, 03:23:25 pm
@ Valdred: It wasnt any script in particular, just a question about general script interactions with RMXP. I wanted to know if it could be done easily. And yes, I remembered the 'end' at the end. Though you worried me for a second there. I thought my air-headedness had struck again  ;)

@ Arceus: Uh, ya lost me. :^_^': I'm not a very accomplished scripter yet, so you might have to put it in leyman's terms. So I need to make an entirely new script above the others and put ALL the variables in it? That sounds like it would take a long time for projects that included numerous scripts. Or am I interpreting that wrong?
Title: Re: Turn scripts on/off in-game
Post by: winkio on March 14, 2010, 04:53:52 pm
First script in the editor:

module Script_Variables

 USE_SCRIPT_1 = true
 
end


you can add more variables or change the names as you need them.  The true/false values here are the default values at startup


for the script you want to turn off and on
if ($game_variables != nil && $game_variable[1]) || Script_Variables::USE_SCRIPT_1

[rest of script here]

end


once the game variables are loaded (once a file is loaded), then you can just access the game variables to change the scripts.
Title: Re: Turn scripts on/off in-game
Post by: Xyron7777777 on March 15, 2010, 02:44:03 am
Ah, so only one variable is required for each script that you wish to be on a switch. You would just list them all in order under 'USE_SCRIPT_1' and set them to true for scripts active at startup, false for scripts to be turned on later. Seems easy enough.

So is the '1' inside ' $game_variable[1] ' the number of the variable that the individual script is attatched to? For example, to turn off Script_1 I would set the game's variable #0001 to '0' in game?
Title: Re: Turn scripts on/off in-game
Post by: Jackolas on March 15, 2010, 04:13:49 am
yep... easy as that :P