Warcraft III resources & community, 2003–2006 · archived

The JESP standard, JASS spell makers read.

9 posts
#1

The JESP standard, JASS spell makers read.

I decided it is about time to officialize a Standard, I called it JESP, its main objective is to control the way JASS spells are shared to prevent conflicts and make them easy to implement/change/duplicate in new instances.

Many people actually already made spells that can be considered to follow this standard.

Next is the document of the standard; It explains what the standard is and how to follow it. An example of a spell that follows the standard would be : Crypt Lord Spell Set v1.1 (by mems)


  This is the JESP standard document, if a map contains this document it means that there are
 spells that follow this standard.

 Spells of this map that follow the standard:
 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 - "Spell1"
 - "Spell2"
 ...
 - "SpellN"
 (must change this part to mention the spells)

 Advantages of the Standard
 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 - Implementing spells that follow the standard is relatively easier than implementing JASS
 spells that don't follow the standard.

 - Configuring/Balancing spells that follow the standard is relatively easier than
 implementing JASS spells that don't follow the standard.

 - Users may do the following procedure to make a new ability that uses the spell's script :

 * Create a new Trigger with a name (case sensitive)
 * Convert that trigger to custom text.
 * Copy the spell's script to a text editor like Notepad or your OS equivalent.
 * Replace the spell's Code name with the name you used on the trigger.
 * Copy the new text to the new trigger
 * Duplicate the Spell's original objects to have new ones for the new spell script.

   You are now able to use that new version of the spell.

 - In case two guys give the same name to 2 different spells, there are no conflict problems
 because you can easily change the name of one of them

 What is the JESP Standard?
 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
   The JESP standard was designed to make spell sharing much better. And to make sure JASS
 enhanced spells follow a rule, to prevent chaos.

 What does JESP Standard stands for?
 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 JASS
 Enhanced
 Spell
 Pseudotemplate

 Requirements for a spell to follow the JESP Standard
 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 - The spell is written in JASS
 - The spell is 100% multi instanceable.
 - The spell script is ready to support spells of any number of levels.
   (default config header is not required to support all of them)

 - The Spell has an specific code name.

 - The Spell's trigger must have the spell's codename as name

 - The Spell's InitTrig function must be named: InitTrig_<CodeName>

 - The spell has a configuration header.

 - It is mandatory that rawcodes of objects are configurable in the header.

 - All the spell's specific code is inside the spell's "Trigger" (Trigger== that custom text
   slot that world editor calls Trigger, the spell may use as many 'trigger' OBJECTS as needed)

 - Every spell-specific single identifier or key works in such a way that reproducing the
   spell's trigger but after performing a text-replace of codename with another name (and thus
   renaming the cloned trigger to the new code name) it won't cause compile errors / conflicts
   when playing the map.

 - There is no code inside the spell's "Trigger" that is not specific to the spell.

 - There are no requirements for GUI variables that are specific to the spell. If a system
   used by the spell requires GUI variables the code for the system must be outside the "Trigger"

 - Eyecandy and spell's balance have to be easy to configure

 - The name of the author should be included in the spell's script.

 - The reason to exist of this standard is spell sharing. This document should be included
 within the map. And it should specify which spell follows the standard, in the top list.


--
End notes, no one is forcing anyone to follow this standard, it has nothing to do with any rule nor anything
#2
good concept, why don't you sticky this. Even this is not rules, just to avoid JASS spellmaker doesn't notice this when this thread had been burried. Maybe he want follow the concept.

Does not use any Global variable that is specific for the spell (It may use non-specific
global variables)


Is this means game cache variable?
#3
Stickied!

I found some stuff of common sense though and some even useless (why add the author in the spell? Stealing can take place anyway, even an idiot can change that). But anyway, its still nice. ;)

~Daelin
#4
it just gives formality to it, I would like to have the guy's name when reading his script cause some guys put it on some difficult to note places.

It is not to prevent thievery it is to know who made them.

From 2 spell maps I've seen the other day, I can tell that none of the things I added was already known by all the people. I wish they were really Common sense as you say.
#5
I am personally wery happy about this standard

Even i feel more fresh while working on my own spells and editing them. And with this standard copying the spell and configuring it is wery easy for other people too.

May be people cannot use some Jass spells even they really want them becouse of the impossibility on their configuration. And having a standard will bring a greate quality to peoples creations. This makes everything easier and much more understandable.

Wery much thanks Vexorian to bringing up this greate idea. Not for other things but i at least thank to you to make my spells are more easy for myself...

I strongly reccomend it to all Jass coders
#6
oO interesing, really interesting. But I think that won't be used...It doesn't catch as a standard. Few spellmakers will use it(Vex,Daelin,Blade.dk,Leopard,me ^^...)
But I really think its cool idea.
#7
JacekoO interesing, really interesting. But I think that won't be used...It doesn't catch as a standard. Few spellmakers will use it(Vex,Daelin,Blade.dk,Leopard,me ^^...)
But I really think its cool idea.


Of course GUI spellmakers won't use it, since it only for JASS. About few or lot of people, it depends on how many spellmaker use JASS.

Note: you forget Nantuko_Husk, mems, weaaddar, and many more...
#8

jass

well as we know JASS enhanced spells use a custom script... something has happened to me with two spells made by leopard, they have different custom scripts and that seems the last spell... i used efreet caress which follows these standards and the electric field spell, efreet caress works well but the electric field doesnt i dont know much about jass but i think its cuz i cant incorporate the custom script of the electric field with the one of efreet caress so my question is how can you incorporate two custom scripts together... i triple checked everything and i imported evertyhing successfully except the custom script which like i said before cant just copy paste it under or over the efreet's caress custom script
#9
It was a question of time till somebody creates a standard.

But Thx anyways, this ensures multicompatibly of many spells.
:D
The conversation continued. After wc3sear.ch closed, 6 further replies were posted to this thread on The Hive Workshop. Read them there →