Tutorial The Complete Guide to JASS, vJASS, and cJASS

Jesus4Lyf

Good Idea™
Reaction score
397
>I just did it the exact way I installed newGen. My installations has 0 problems too ^_^.
Irrelevant to the fact that the documentation explicitly says not to install it there.

>Now, I am looking for tips, but I am looking for them in the form of questions from beginners reading this guide.
You might find that hard considering that this is not approved, and JASS beginners typically neither exist nor read tutorials, but instead post a flurry of questions in JASS help. :p

You draw no distinction between vJass and cJass (I wouldn't read the first chapters), one of which is support on TheHelper as it stands and the other is not. This is pretty important, isn't it?
(Referring to printf in display text to player chapter.)
 

Nestharus

o-o
Reaction score
84
>I just did it the exact way I installed newGen. My installations has 0 problems too ^_^.
Irrelevant to the fact that the documentation explicitly says not to install it there.

And take a note that I did fix it as soon as someone mentioned it

>Now, I am looking for tips, but I am looking for them in the form of questions from beginners reading this guide.
You might find that hard considering that this is not approved, and JASS beginners typically neither exist nor read tutorials, but instead post a flurry of questions in JASS help.

And take a note that I have been looking for people, and the few I have found have had a total of 2 questions for me when reading this guide, which I answered and fixed to include in the guide ^_^. A total of 2 in over 20 chapters is a pretty good sign : p.

You draw no distinction between vJass and cJass (I wouldn't read the first chapters), one of which is support on TheHelper as it stands and the other is not. This is pretty important, isn't it?
(Referring to printf in display text to player chapter.)

I do draw distinctions between vJASS and cJASS (includes). But I didn't on the printf, you are right. I will draw that distinction if you like =).
 

Avaleirra

Is back. Probably.
Reaction score
128
I am completey new to programming and I found that this tutorial was an IMMENSE amount of help. I found it covered things better than other tutorials.

Just a bit of feedback:
• could you make a few example triggers that one might actually use in the WE
• I found you went at a good pace until chapter 11, then you started to fly and I got a bit lost
• a bit more examples and more explanation please


Otherwise it was amazing :) +rep
 

Nestharus

o-o
Reaction score
84
could you make a few example triggers that one might actually use in the WE

I will get into how to make your own Triggers, yes. Keep in mind that this tutorial isn't done ^_^.

I found you went at a good pace until chapter 11, then you started to fly and I got a bit lost

I'll cover chapter 11+ better =).

a bit more examples and more explanation please

Sure thing. I'll throw in some more nifty exercises too.

Chapters 11-14 so far are covered better, still working on 14+
 

Nestharus

o-o
Reaction score
84
An example that does absolutely nothing, but it uses a simple native =). Also a mistake with _ : p

Wasn't sure what native to use, Acos just popped up and I was like, that works =p.

Then again, that's a bad example since it retrieves the values from the natives o-o.

Oi oi.

Yea, i'll def change that example to something that takes a primitive parameter and returns nothing... and has a BJ form... hm... wonder what that could be ><.

I think I found our candidate-
JASS:
function ClearMapMusicBJ takes nothing returns nothing
    call ClearMapMusic()
endfunction
 

Avaleirra

Is back. Probably.
Reaction score
128
More feedback:

1. Explain the "takes nothing, returns nothing" better
2. In every aplicable section, include a simple trigger that might be used ingame.


E.g,

event
every X seconds
actions
create 1 footman for player red at wherever facing whatever
 

Nestharus

o-o
Reaction score
84
I'll go on triggers later =). People wouldn't understand any of the code I was writing for the trigger =P.

As for the nothing keyword, I'll explain it better : D
 

Avaleirra

Is back. Probably.
Reaction score
128
And don't forget explaing how triggers "take" and "return" I didn't quite get that :)
 

Nestharus

o-o
Reaction score
84
Triggers don't take, but a trigger evaluation returns a boolean

You can use vJASS with .evaluate and .execute to pass in values through globals tho.

This is the reason why I'm not showing any examples on triggers except for the Trigger Chapter =P.

Also, didn't write much on Friday =). I was working on a 4.0 of a system called Spawn >: D, my little baby ^_^.
 

Nestharus

o-o
Reaction score
84
f(x) = 3x + 3

That's a function in simple and plain mathematics

You plug something into the function to substitute in-

f(3) = 3*3+3

You can also do this-
f(x, y, z) = z(x+y) = zx+ zy

That would be takes explained in algebra

All functions in algebra always return something, and the type is always a real. The takes is always a real in algebra too ><.

The return would be the result-
3*3+3 = 12

f(3) = 12

There is only ever one single returned value in a function.

In programming, it's much the same except the takes and returns can be whatever type you want. Because it can be any type you want, you have to tell it what type it's going to be-

f(real x) = 3x+3 = real

or

function takes real x returns real
return 3x+3
endfunction

Functions in algebra are determined by their variables.

Functions in programming are determined by a name

function Name

And to finish it

function Name takes real x returns real
return 3x+3
endfunction

call Name(3)

that would be the algebra translated into JASS : |.

Now, how do I explain that in plain english for people who don't even know algebra?
 

Avaleirra

Is back. Probably.
Reaction score
128
Luckily, I just covered functions in school last year :), I'm sortof getting it now.....but not fully.
 

Nestharus

o-o
Reaction score
84
Yea, functions were also the hardest thing for me to grasp in programming : \. I figure that's the main crux of a guide, and that's what really makes or breaks a guide. The function chapter is probably the most important chapter, so it's really important that I write it correctly O-o and in plain english for everyone to understand.

But I must ask..

Did you click the link in the chapter and read the description on the link?? I thought that that site had a pretty darn good description ><.

If you didn't... then you should read it first -.-. Those links were there for a reason =P
 

Avaleirra

Is back. Probably.
Reaction score
128
Yea, functions were also the hardest thing for me to grasp in programming : \. I figure that's the main crux of a guide, and that's what really makes or breaks a guide. The function chapter is probably the most important chapter, so it's really important that I write it correctly O-o and in plain english for everyone to understand.

But I must ask..

Did you click the link in the chapter and read the description on the link?? I thought that that site had a pretty darn good description ><.

If you didn't... then you should read it first -.-. Those links were there for a reason =P


No, I didn't read them. I'll do that now :)
 

Nestharus

o-o
Reaction score
84
Uh.. no wonder you didn't get it then : P. You didn't read the entire guide, lol : D.

I didn't explain what a function was because I expected readers to read the links that did it ; O.
 

Jesus4Lyf

Good Idea™
Reaction score
397
In chapter 22 you say something odd:
"A boolean expression goes after the exitwhen. A then keyword isn't used."
JASS:
loop
    exitwhen boolexpr
endloop

Now you're actually right in what you say, but I'd at least make it not highlight "boolexpr". And note the diff between boolexprs and boolean expressions. <_<

Aside from that this honestly looks fairly approvable. Keep up the good work.
 

Nestharus

o-o
Reaction score
84
boolean expressions and boolexpr variables are covered in the previous chapter =). I will change it from boolexpr to boolean expression in the code example tho =).

And Jesus4Lyf, ty =). This isn't done yet though : O. I still got a million more chapters to write o-o.

The Complete Guide to JASS and vJASS

If only I had done

The Incomplete Guide to JASS and vJASS

instead ; o. lol : P
 

Romek

Super Moderator
Reaction score
963
I still stand by what I said previously in that this doesn't explain much at all, and what is explained is explained either in a pretty poor way, or by simply copying something from another website.
I don't think you're particularly gifted in the art of tutorial-writing. Stick to making actual code instead. :p

And I still find the tag abuse absolutely horrible.
 
General chit-chat
Help Users

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top