Difference between revisions of "Scripting Tutorial: My Second Script"

→‎The scripting window: improved formatting, emphasized how bad Recompile All is.
imported>DragoonWraith
(→‎The scripting window: stupid non-wrapping pre boxes)
imported>DragoonWraith
(→‎The scripting window: improved formatting, emphasized how bad Recompile All is.)
Line 33: Line 33:
You enter the script editor either by selecting Gameplay –> Edit Scripts from the menu; by clicking the edit script button (the pencil) at the far right of the taskbar; or by accessing it from an Object or NPC dialogue, clicking the button with the ellipses […] next to the script field. The editor window is pretty basic, and doesn't look like much right now:
You enter the script editor either by selecting Gameplay –> Edit Scripts from the menu; by clicking the edit script button (the pencil) at the far right of the taskbar; or by accessing it from an Object or NPC dialogue, clicking the button with the ellipses […] next to the script field. The editor window is pretty basic, and doesn't look like much right now:


[[Image:1_script_window.JPG|thumb|left|The scripting window]]Let's have a look at the buttons in the taskbar, from left to right: ''Open'' lets you select a script to edit. ''Save'' error checks the current script and either compiles it or gives out error messages. Note, however, that the plugin and thus the script is not really saved to disk at this time. When programming large scripts you should frequently use the save command in the main TESCS window after you have saved the script here, just in case the TESCS crashes. Note also that if you edit the script and suddenly hit "save plugin" to backup in the middle of the work, your updated script will NOT be saved with it. You must save it manually first. Also, if you simply close the script window, it doesn’t mean that script will be saved. You must take care of it yourself.  
[[Image:1_script_window.JPG|thumb|right|The scripting window]]Let's have a look at the buttons in the taskbar, from left to right:
<ul><li>''Open'' lets you select a script to edit.</li>
<li>''Save'' error checks the current script and either compiles it or gives out error messages. Note, however, that the plugin and thus the script is not really saved to disk at this time. When programming large scripts you should frequently use the save command in the main TESCS window after you have saved the script here, just in case the TESCS crashes. Note also that if you edit the script and suddenly hit "save plugin" to backup in the middle of the work, your updated script will NOT be saved with it. You must save it manually first. Also, if you simply close the script window, it doesn’t mean that script will be saved. You must take care of it yourself.  


<blockquote>Side Note: You can also write your code in external editors and paste it into the CS. This can make it easier to keep scripts saved, and can be more convenient, since you don't have to load the CS and your mod. Options include [[S!lk]], emacs, and [[Notepad++ Script Definitions|Notepad++]], all of which have syntax highlighting plugins for Oblivion script (only Notepad++ has up-to-date OBSE functions included, however).</blockquote>
<blockquote>Side Note: You can also write your code in external editors and paste it into the CS. This can make it easier to keep scripts saved, and can be more convenient, since you don't have to load the CS and your mod. Options include [[S!lk]], emacs, and [[Notepad++ Script Definitions|Notepad++]], all of which have syntax highlighting plugins for Oblivion script (only Notepad++ has up-to-date OBSE functions included, however).</blockquote></li>
 
<li>''Forward'' and ''Backward'' arrows jump to the next or previous script, respectively (in alphabetical order). If you give your scripts a common tag, that will make it easier to jump between the different scripts of your project. For example, say a modder's pseudonym is Grundulum, and he starts every script name with "GR_ShortReferencetoProject_", with that second part being a two or three letter reference to the current mod; this keeps all of the scripts you're working on neatly together.</li>
''Forward'' and ''Backward'' arrows jump to the next or previous script, respectively (in alphabetical order). If you give your scripts a common tag, that will make it easier to jump between the different scripts of your project. For example, my pseudonym is Grundulum, and he starts every script name with "GR_ShortReferencetoProject_", with that second part being a two or three letter reference to the current mod; this keeps all of the scripts you're working on neatly together. ''Compile all'' recompiles all scripts (what's this good for? Ghanburighan didn't know, and neither do I (Grosie: see [[Edit Scripts]])). It also adds every script in Oblivion to your mod, so you'll wind up with a 2MB esp file that conflicts with just about everything. Use this button sparingly, if ever.  Finally, the ''Delete'' button deletes a script, and the last ''Arrow down'' button closes the script window.
<li>''Compile all'' recompiles all scripts in all loaded files. '''Do not ever press this button.''' It also adds every script in Oblivion to your mod, so you'll wind up with a 2MB esp file that conflicts with '''''everything'''''.</li>
<li>Finally, the ''Delete'' button deletes a script, and</li>
<li>the last ''Arrow down'' button closes the script window.</li></ul>


At the far right of your toolbar, you'll see a dropdown box called ''Script Type''.  This box allows you to choose one of three kinds that your script will fall under: Object, Quest, and Magic Effect.  More on these later, but by way of brief introduction Object scripts are attached to objects in the game world (such as items or NPCs), Quest scripts control the flow of quests (such as character generation), and Magic Effect scripts control a very special magic effect (specifically, the Script Effect).
At the far right of your toolbar, you'll see a dropdown box called ''Script Type''.  This box allows you to choose one of three kinds that your script will fall under: Object, Quest, and Magic Effect.  More on these later, but by way of brief introduction Object scripts are attached to objects in the game world (such as items or NPCs), Quest scripts control the flow of quests (such as character generation), and Magic Effect scripts control a very special magic effect (specifically, the Script Effect).