Description With this script, you can easily spawn events through scripting. In this script, I have done the research and documentation, and you only have to call the simplified methods in your own class! Try it, it's pretty easy! (Well, still pretty advanced, but easier than handcoding everything!)
Please note that this script is far from complete (50+ EventCommands to go!)
Common users probably won't have any use of this, but for those who want to add that 'extra touch' (guns, etc.), this script is superb.
Features
Easy, standardized methods
Saves time (you don't have to do as much research)
Less typing (with the given example, you can see you save 30+ lines easily)
Now featuring text commands and conditional branches! hot!
Compatibility If you include AmIMeYet_EventScripter in a class that has an initialise method, make sure it makes a 'super' call.
Screenshot I think the title-screen says it all:
Installation Create a new class and call "include AmIMeYet_EventScripter". Now, you'll have access to every method included in this module, to help you generate dynamic events, fast. You can take a look at the 'Demo Script' to see how to implement this. There are also some examples in the HTML documentation. I recommend always keeping a window open with the documentation when scripting.
Planned features:
Add more commands
Add "compile" function, so you can use standalone code in your application. (WITH credits ofcourse )
FAQ/Bugs
None
Know another bug? Contact me here, or via mail.
Terms and Conditions If you use this script on your game, you must credit me. You are NOT allowed to distribute this script. If you find this script on anywhere without me posting it, contact me.
Special thanks
Pim321 (SojaBird), for helping my to type a few of those agonizing lines of text.
$LOAD_PATH << Dir.getwd #You only need to call this once Kernel.require("includable.rb") #replace includable.rb with the name of the file you want to load
#=============================================================================# # # # ANTI DASH HACK # # # # # # By AmIMeYet # # # # # # please credit me # # # #=============================================================================# class Game_Player < Game_Character def dash? return false if @move_route_forcing return false if in_vehicle? return true if Input.press?(Input::A) and $game_map.disable_dash? end end
This snippet basically inverts the dashing.. allowing you to dash only when 'disable dashing' is checked. This way, normal maps disable dashing, but the ones you set to disable actually allow dashing..
It should be placed where you normally place the scripts ('above main', in the materials section of the scripts window)..
Amazing! This is great, I'm in the process of trying out the demo, looks really nice, can't wait for conditional branches!! I had a question, what does this have to do with guns?
QUOTE
Common users probably won't have any use of this, but for those who want to add that 'extra touch' (guns, etc.), this script is superb.
Sorry, just curious what you're talking about! also, what do you mean by "compile"? do you mean make everything via script and therefore, not have to use the map editor at all? sorry, I have trouble understanding people a lot due to an accident 3 months ago.
Thanks! ~Miget man12
PS. You're timing for the 5 minute thing was great, I checked it @ 3 minutes and it wasn't there, then I checked it right at 5 and I could tell you were in the process because only the demo had been but there, but the script wasn't yet. Spot on!! I'm quite impressed
__________________________
By the way:
I'm bored because it's summer so I decided to drop by for a bit.
Group: Member
Posts: 12
Type: Scripter
RM Skill: Skilled
This is one hell of a good helper! it saves so much time. You see, i had to insert like 10 of these events and that would take hours but you have saved me some lifetime back. I am grateful.
Amazing! This is great, I'm in the process of trying out the demo, looks really nice, can't wait for conditional branches!! I had a question, what does this have to do with guns?
QUOTE
Common users probably won't have any use of this, but for those who want to add that 'extra touch' (guns, etc.), this script is superb.
Sorry, just curious what you're talking about! also, what do you mean by "compile"? do you mean make everything via script and therefore, not have to use the map editor at all? sorry, I have trouble understanding people a lot due to an accident 3 months ago.
Thanks! ~Miget man12
PS. You're timing for the 5 minute thing was great, I checked it @ 3 minutes and it wasn't there, then I checked it right at 5 and I could tell you were in the process because only the demo had been but there, but the script wasn't yet. Spot on!! I'm quite impressed
Thanks!
Okay, so with 'guns', I mean that with this script you can easily make the player shoot bullets (actually events...). This is pretty much exactly what my portal script does (shooting-wise), but that was really hard to make because I hadn't made EventScripter yet So basically, you could make a script that shoots some character when you press a button, or make a 'fart' item wich launces a script that makes a 'smoke'-event come out of the characters every 10 seconds.. it's all possible.
I'm not sure whether conditional-branches are going to be in the script (though I realize how important they are), because that code is incredibly complex.
And with 'compile', I mean that you could create a script with eventscripter, and then it would output standalone code. This way, you can use the 'easyness' of eventscripter, but still have a lightweight script. I'm not sure how I'm going to make this though.. if I want to make it only include my methods that a script uses, or if I want to get rid of the methods alltogether, and just using the eventcommands, etc. that it outputs. (I hope you understand all this.. .. my mind can be hard to explain sometimes)
QUOTE (slambie99 @ Some time+date here)
This is one hell of a good helper! it saves so much time. You see, i had to insert like 10 of these events and that would take hours but you have saved me some lifetime back. I am grateful.
Glad you like it too! (didn't realize there were actually other people trying to create events dynamically too)
$LOAD_PATH << Dir.getwd #You only need to call this once Kernel.require("includable.rb") #replace includable.rb with the name of the file you want to load
#=============================================================================# # # # ANTI DASH HACK # # # # # # By AmIMeYet # # # # # # please credit me # # # #=============================================================================# class Game_Player < Game_Character def dash? return false if @move_route_forcing return false if in_vehicle? return true if Input.press?(Input::A) and $game_map.disable_dash? end end
This snippet basically inverts the dashing.. allowing you to dash only when 'disable dashing' is checked. This way, normal maps disable dashing, but the ones you set to disable actually allow dashing..
It should be placed where you normally place the scripts ('above main', in the materials section of the scripts window)..
I see, yeah, that's actually something I was looking for without realizing it(by which I mean to say, I'm making a map-based battle system that uses events and simple script-ish things, but that's beside the point), this should be very useful, it's quick, easy, and... oh well things always seem better when they have 3 good points as apposed to 2... well darn...
As for the compile thing: That's fantastic! That will mean I have to learn ruby a lot less in depth . Just to be clear, will it be possible to do this right now simply by putting 'include AmIMeYet_EventScripter'? or am I missing something?
The misunderstanding thing is entirely my fault, my brain's all messed up from a concussion, I should be back on my feet in the next month or so
Good night, ~Miget man12
__________________________
By the way:
I'm bored because it's summer so I decided to drop by for a bit.
I see, yeah, that's actually something I was looking for without realizing it(by which I mean to say, I'm making a map-based battle system that uses events and simple script-ish things, but that's beside the point), this should be very useful, it's quick, easy, and... oh well things always seem better when they have 3 good points as apposed to 2... well darn...
As for the compile thing: That's fantastic! That will mean I have to learn ruby a lot less in depth . Just to be clear, will it be possible to do this right now simply by putting 'include AmIMeYet_EventScripter'? or am I missing something?
The misunderstanding thing is entirely my fault, my brain's all messed up from a concussion, I should be back on my feet in the next month or so
Good night, ~Miget man12
Yes, if you create a class (I don't think it works in module's) and call 'include AmIMeYet_EventScripter' you get access to to all methods of EventScripter. You can then simply call the commands as if they where methods of the class itself.
And again, about the compile thing: It won't mean you will have to learn less about Ruby. The compiler will give you standalone code, so your scripts don't need to be distributed with a version of EventScripter.
It's EventScripter itself that saves you a lot of learning.
Also, your battle system sounds like a great use for EventScripter!
$LOAD_PATH << Dir.getwd #You only need to call this once Kernel.require("includable.rb") #replace includable.rb with the name of the file you want to load
#=============================================================================# # # # ANTI DASH HACK # # # # # # By AmIMeYet # # # # # # please credit me # # # #=============================================================================# class Game_Player < Game_Character def dash? return false if @move_route_forcing return false if in_vehicle? return true if Input.press?(Input::A) and $game_map.disable_dash? end end
This snippet basically inverts the dashing.. allowing you to dash only when 'disable dashing' is checked. This way, normal maps disable dashing, but the ones you set to disable actually allow dashing..
It should be placed where you normally place the scripts ('above main', in the materials section of the scripts window)..
For the past couple of months I've been learning RGSS and I've got the basic stuff down such windows, variables, conditional statements, ect. But, I can't see myself making big scripts such as a jumping system or a side view battle system. I was wondering how you learned to script because I really want to know how to script really well.
Thanks in advance.
Hey there,
Well I don't make battle neither though I can still teach you some things :)... The way I've learned to script is by reading other scripts for the most part. I've allways been interested in other peoples work but this time I though I had to try to make something myself...and it worked!! The most importand thing when you go scripting is (at least in my case) that you want to make something to help an other wich can't script. You also need to feel the competition that's around in the scripting-community. Cause, I have to say, if you get pushed to get a sertain request done before an other scripter does, you feel POWERFULL!! :P So that's an other thing... You also don't need to be afraid to learn from others or helpfiles. When I write my scripts, I actualy always have the helpfiles open to look things up I don't know or remember. Then, you must be calm, cause you need to try the script a lot of times. When I write a script, I test it after almost every changes. First I set up the major structure. Like when I make a window-script or part of a script I start with something like this:
CODE
class Window_Name < Window_Base def initialize(x,y,width,height) super(x,y,width,height) refresh end
def refresh self.contents.clear draw_contents end
def draw_contents draw_something(with, some, parameters) end
def update refresh if @something != @what_it_should_be end end
So that's also very important. Then, the biggest thing I learned scripting from is TRIAL AND ERROR. That's the most irritating way to learn something, cause it's more ERROR than TRIAL, but it does the trick realy good.
So that's it how I did it. Now it's up to you. Do some requests (if I didn't do it allready :P) and learn from them.
Hope that helped you out a little. If not, keep your eye on the Scriptology-topic (see my sig) where I'll be updating for my scripting(video)tutorials. Perhaps they're going to be usefull for you one day ;)
At last, released Nice work, we'll have to work this out more
Greatzz, SojaBird.
Yeah, I've got a lot of work ahead of me.
Also, Conditional Branches (partially) working! Current syntax:
CODE
steps.push(es_script("p \"before\"")) steps.push(es_branch("something like a conditional-type here")) steps.push(es_script("p \"was true\"")) steps.push(es_branch_else) steps.push(es_script("p \"was false\"")) steps.push(es_branch_end) steps.push(es_script("p \"after\""))
I say partially because I haven't included the actual conditional stuff yet.. That's gonna be way too much for today.. And I have a LOT of homework( homework progress: [||||||||||] )
$LOAD_PATH << Dir.getwd #You only need to call this once Kernel.require("includable.rb") #replace includable.rb with the name of the file you want to load
#=============================================================================# # # # ANTI DASH HACK # # # # # # By AmIMeYet # # # # # # please credit me # # # #=============================================================================# class Game_Player < Game_Character def dash? return false if @move_route_forcing return false if in_vehicle? return true if Input.press?(Input::A) and $game_map.disable_dash? end end
This snippet basically inverts the dashing.. allowing you to dash only when 'disable dashing' is checked. This way, normal maps disable dashing, but the ones you set to disable actually allow dashing..
It should be placed where you normally place the scripts ('above main', in the materials section of the scripts window)..
Group: Member
Posts: 55
Type: Developer
RM Skill: Undisclosed
This script would really, really help with my game, but your script doesn't seem to have anything to handle creating comments in "spawned" events... is there any way this can be added in? (I'm using Vlad's ABS 6, and it would help to spawn enemies)
"When life hands you lemons, throw them back!" "A journey of a thousand miles begins with a single step." "When the going gets tough, the tough get hacking" "Trying is the first step towards failure" "Just because I don't care doesn't mean I don't understand" "Common sense is not so common" "Courage does not always roar. Sometimes it is the quiet voice at the day, saying, 'I will try again tomorrow'." "We do not grow absolutely, chronologically. We grow sometimes in one dimension, and not in another; unevenly. We grow partially. We are relative. We are mature in one realm, childish in another. The past, present, and future mingle and pull us backward, forward, or fix us in the present. We are made up of layers, cells, constellations."
Olny 55% of plepoe can. I cdnuolt blveiee taht I cluod aulaclty uesdnatnrd waht I was rdanieg. The phaonmneal pweor of the hmuan mnid, aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it dseno't mtaetr in waht oerdr the ltteres in a wrod are, the olny iproamtnt tihng is taht the frsit and lsat ltteer be in the rghit pclae. The rset can be a taotl mses and you can sitll raed it whotuit a pboerlm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Azanmig huh? yaeh and I awlyas tghuhot slpeling was ipmorantt! fi yuo cna raed tihs, palce it in yuor siantugre.
Drake: Okay--lets see if you get this now, what do you do when life hands you lemons? Devun: Ummm... make lemonade? Drake: WRONG! You fail. Drake: Try again, *Five hours later* Devun: OKAY, is it LEMONADE? Drake: no. Devun: I GIVE UP!!! WHAT DO YOU DO?!?! Drake: make limeonade. *Devun dies* *Drake places convo in sig*
This script would really, really help with my game, but your script doesn't seem to have anything to handle creating comments in "spawned" events... is there any way this can be added in? (I'm using Vlad's ABS 6, and it would help to spawn enemies)
Sure, this is a quick one:
CODE
def es_comm(comment) return RPG::EventCommand.new(108, 0, [comment]) end def es_comm_n(comment) return RPG::EventCommand.new(408, 0, [comment]) end
Comments work a little weird in VX though. So, if you want to create a single comment, you use es_comm("text"). However, if the script you need this for require's your comment to have multiple lines, create the first line with es_comm, and for each following line use es_comm_n. I don't know if Vlads ABS require's multiple-lined comments, but I included it anyway..
Note: EventScripter 0.8 is under way, but I'm not working on it right now. First I'm gonna check if I can hack my GPS navigator and then maybe install HomeWorld 2 again.
$LOAD_PATH << Dir.getwd #You only need to call this once Kernel.require("includable.rb") #replace includable.rb with the name of the file you want to load
#=============================================================================# # # # ANTI DASH HACK # # # # # # By AmIMeYet # # # # # # please credit me # # # #=============================================================================# class Game_Player < Game_Character def dash? return false if @move_route_forcing return false if in_vehicle? return true if Input.press?(Input::A) and $game_map.disable_dash? end end
This snippet basically inverts the dashing.. allowing you to dash only when 'disable dashing' is checked. This way, normal maps disable dashing, but the ones you set to disable actually allow dashing..
It should be placed where you normally place the scripts ('above main', in the materials section of the scripts window)..
$LOAD_PATH << Dir.getwd #You only need to call this once Kernel.require("includable.rb") #replace includable.rb with the name of the file you want to load
#=============================================================================# # # # ANTI DASH HACK # # # # # # By AmIMeYet # # # # # # please credit me # # # #=============================================================================# class Game_Player < Game_Character def dash? return false if @move_route_forcing return false if in_vehicle? return true if Input.press?(Input::A) and $game_map.disable_dash? end end
This snippet basically inverts the dashing.. allowing you to dash only when 'disable dashing' is checked. This way, normal maps disable dashing, but the ones you set to disable actually allow dashing..
It should be placed where you normally place the scripts ('above main', in the materials section of the scripts window)..
Small bug in the 0.8 demo. If you talk to the new way flame and if it couldn't go upward, the demonstration freezes. This is probably because "skip if cannot move" wasn't set for it. Cool stuff though. =]
Group: Member
Posts: 55
Type: Developer
RM Skill: Undisclosed
Version 0.8, Really great, although; there might be a slight bug with the comments. It comes up with an error about not being able to convert string to integer... although it could be something I'm doing wrong...
If it is a problem with the script how can it be fixed?
"When life hands you lemons, throw them back!" "A journey of a thousand miles begins with a single step." "When the going gets tough, the tough get hacking" "Trying is the first step towards failure" "Just because I don't care doesn't mean I don't understand" "Common sense is not so common" "Courage does not always roar. Sometimes it is the quiet voice at the day, saying, 'I will try again tomorrow'." "We do not grow absolutely, chronologically. We grow sometimes in one dimension, and not in another; unevenly. We grow partially. We are relative. We are mature in one realm, childish in another. The past, present, and future mingle and pull us backward, forward, or fix us in the present. We are made up of layers, cells, constellations."
Olny 55% of plepoe can. I cdnuolt blveiee taht I cluod aulaclty uesdnatnrd waht I was rdanieg. The phaonmneal pweor of the hmuan mnid, aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it dseno't mtaetr in waht oerdr the ltteres in a wrod are, the olny iproamtnt tihng is taht the frsit and lsat ltteer be in the rghit pclae. The rset can be a taotl mses and you can sitll raed it whotuit a pboerlm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Azanmig huh? yaeh and I awlyas tghuhot slpeling was ipmorantt! fi yuo cna raed tihs, palce it in yuor siantugre.
Drake: Okay--lets see if you get this now, what do you do when life hands you lemons? Devun: Ummm... make lemonade? Drake: WRONG! You fail. Drake: Try again, *Five hours later* Devun: OKAY, is it LEMONADE? Drake: no. Devun: I GIVE UP!!! WHAT DO YOU DO?!?! Drake: make limeonade. *Devun dies* *Drake places convo in sig*
Version 0.8, Really great, although; there might be a slight bug with the comments. It comes up with an error about not being able to convert string to integer... although it could be something I'm doing wrong...
If it is a problem with the script how can it be fixed?
Ok... turns out I actually had an error on the comments thing.. (forgot a comma ).
And Yanfly, thank you too! fixed!
BREAKING NEWS:
Version 0.8.1 is out! Now with 2 squashed bugs, and a better documentation of conditional branches!
$LOAD_PATH << Dir.getwd #You only need to call this once Kernel.require("includable.rb") #replace includable.rb with the name of the file you want to load
#=============================================================================# # # # ANTI DASH HACK # # # # # # By AmIMeYet # # # # # # please credit me # # # #=============================================================================# class Game_Player < Game_Character def dash? return false if @move_route_forcing return false if in_vehicle? return true if Input.press?(Input::A) and $game_map.disable_dash? end end
This snippet basically inverts the dashing.. allowing you to dash only when 'disable dashing' is checked. This way, normal maps disable dashing, but the ones you set to disable actually allow dashing..
It should be placed where you normally place the scripts ('above main', in the materials section of the scripts window)..
This is a good script, it has a lot of advantages, but two disadvantages, if I think this works as i imagined... -Does the script just need to be made once and then it codes you an event you can edit in the map editor? Because if it doesn't the scripts for each event really slow the load down...
This is a good script, it has a lot of advantages, but two disadvantages, if I think this works as i imagined... -Does the script just need to be made once and then it codes you an event you can edit in the map editor? Because if it doesn't the scripts for each event really slow the load down...
What this script does is create and spawn events while you play. You won't be able to edit events in the editor, but you are able to create events on-the-fly. Your scripts can now create events, powered by EventScripter. So now you can, like, make stuff happen 'at random'.
Have you heard of berka's recent NPC Generator? Think of that, but then way more advanced.
And it reallly doesn't slow down anything.. it's extremely fast. You don't even notice anything.. the event's just there immediately. Download the demo and try it for yourself!
This script can be usefull from ABS's to 'generating an exitingly fresh world, full of life'.
$LOAD_PATH << Dir.getwd #You only need to call this once Kernel.require("includable.rb") #replace includable.rb with the name of the file you want to load
#=============================================================================# # # # ANTI DASH HACK # # # # # # By AmIMeYet # # # # # # please credit me # # # #=============================================================================# class Game_Player < Game_Character def dash? return false if @move_route_forcing return false if in_vehicle? return true if Input.press?(Input::A) and $game_map.disable_dash? end end
This snippet basically inverts the dashing.. allowing you to dash only when 'disable dashing' is checked. This way, normal maps disable dashing, but the ones you set to disable actually allow dashing..
It should be placed where you normally place the scripts ('above main', in the materials section of the scripts window)..
This is a good script, it has a lot of advantages, but two disadvantages, if I think this works as i imagined... -Does the script just need to be made once and then it codes you an event you can edit in the map editor? Because if it doesn't the scripts for each event really slow the load down...
What this script does is create and spawn events while you play. You won't be able to edit events in the editor, but you are able to create events on-the-fly. Your scripts can now create events, powered by EventScripter. So now you can, like, make stuff happen 'at random'.
Have you heard of berka's recent NPC Generator? Think of that, but then way more advanced.
And it reallly doesn't slow down anything.. it's extremely fast. You don't even notice anything.. the event's just there immediately. Download the demo and try it for yourself!
This script can be usefull from ABS's to 'generating an exitingly fresh world, full of life'.
EventScripter:Harness the full power of events
No, I mean the load when you run the game, if you use many scripts and then code all the events, it's gonna open after a few minute wait.
[..quote..] No, I mean the load when you run the game, if you use many scripts and then code all the events, it's gonna open after a few minute wait.
Hm.. I don't think it really makes any noticable lag. Everything's created during the game; not while loading. The only think that can increase load time a bit is loading EventScripter... .. .. but, for me atleast (and my laptop's pretty slow), it's not noticable. Please try it yourself, so you can see how it works.
$LOAD_PATH << Dir.getwd #You only need to call this once Kernel.require("includable.rb") #replace includable.rb with the name of the file you want to load
#=============================================================================# # # # ANTI DASH HACK # # # # # # By AmIMeYet # # # # # # please credit me # # # #=============================================================================# class Game_Player < Game_Character def dash? return false if @move_route_forcing return false if in_vehicle? return true if Input.press?(Input::A) and $game_map.disable_dash? end end
This snippet basically inverts the dashing.. allowing you to dash only when 'disable dashing' is checked. This way, normal maps disable dashing, but the ones you set to disable actually allow dashing..
It should be placed where you normally place the scripts ('above main', in the materials section of the scripts window)..