native CreateUnit takes player id, integer unitId, real x, real y, real facing returns unit
native RemoveLocation takes location loc returns nothing
native DestroyGroup takes group g returns nothing
Your making no sense...So,the jass is BIG DIFFERENT of C++?
Jass is compiled into a format that the game can read then this is turned into machine code which the machine then reads. I think thats how it goes.
//! zinc
library Lib {
public constant integer OH_HAI = 0;
public constant string THIS_IS_ZINC = "You have to use the 'public' keyword for something to be accessible outside of this library.";
constant string THIS_STRING = "is private";
public struct hi[] {
private constant integer i = 23;
private constant string s1 = "The private keyword is only used inside structs.";
private constant string s2 = "This struct extends an array";
static method thisMethodIsAccessibleOutsideTheStruct() {
}
// onInit methods don't exist in Zinc.
private static method onInit() {
}
}
// Only this compiles.
function onInit() {
}
function MoreSyntax(integer i)->boolean {
integer f = 0;
unit h = null;
h = CreateUnit(Player(0), 'u000', 0, 0, 0);
RemovePlayer(Player(0);
// this is a for-loop
// for (init loop; loop condition; afterLoop)
for (f = 0; f < 10; f++) {}
// f++ -> f = f + 1
if (f==10) {
BJDebugMsg("f == 10");
} else {
BJDebugMsg("f != 10");
if (f < 10) {
// f+=1 => f = f + 1
while(f < 10) { f+=1; }
} else {
// f-=1 => f = f - 1
while(f > 10) { f-=1; }
}
}
return false;
}
}
//! endzinc
nope.
It's interpreted.
Warcraft III is composed of:
- 70% Jass Interpreter and Functions
- 30% Game Engine
hashtable
and such .The language is still almost completly interpreted though. These bytecodes act mealy as execution templates for the intrepreter.Actually he was right. JASS gets compiled to an bytecode format which then is interpreted as the game runs [1].