• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Jass/Newgen and Map Protection!

Status
Not open for further replies.
Level 3
Joined
Aug 26, 2009
Messages
48
Hey there.
I've been making maps for.. well, quite a lot of years by now.
But thing is, I always used the normal WE. Never used Jass, Newgen or WEU. I'm pretty good (at least that's what I'm told!) at making the maps, terrain, units and all that, but I'd like to do something more... advanced. Don't get me wrong, I can do detailed, just-fine maps in WE, but I can't do maps like... let's say, Diablo, the terrain is too "advanced" for me as it is now, and there's certain spells in some maps that I can't do either.

I would like to know if any one can teach me/know where to find a GOOD and easy guide, that will learn me how to use and what to do with either Jass or Newgen.
Also, how does the map protection work? :hohum:

A.R out.

PS. I will give + rep :thumbs_up:
 
Level 6
Joined
May 7, 2009
Messages
228
Specifically they delete files that are used by the WE to store meta data like GUI triggers or preplaced units, which aren't actually needed to run the map.

Often, they;ll also do stuff like change the mpq header and obfuscate the jass script, as well as placing the script in the scripts folder.
 
Level 12
Joined
Dec 10, 2008
Messages
850
I can see how discussing map protection is bad, but telling people how it works should be fine, right?

Now, back to the topic. NewGen grants you accsess to 3rd party programs like Grimore and PJASS, the syntax checker that allows VJASS. It also lets you create maps with a huge boundry that the normal WE doesn't allow
 
Level 12
Joined
May 30, 2009
Messages
829
A Real Answer

WEU: Sucks balls. End of story.

JASS: Same as above. End of story.

vJASS: Owns; considering you know how to use it.

Map Protection: Vexorian's Map Optimizer; which optimizes your map also... (No link because of I'm scared of the moderators' hammer of doom, just google it)

Now, first you download Newgen (Please just google it :hohum:) Then google JASSHelper and download the latest one. Now extract Newgen and JASSHelper. Replace the JASSHelper files in Newgen folder with the most recent ones from the freshly downloaded JASSHelper. Now just execute NewGen WE and if it asks for confirmation or anything just go with it (I'm not sure...).

Go to the trigger editor and convert a trigger to custom text (Edit --> Convert to Custom Text) Grab some random vJASS resources such as MultiKick System by Darthfett. To implement, copy and paste the vJASS script from the page onto your trigger's custom text box. Rename the trigger to "MultiKick" without the quotes (Click trigger and hold down for one second and release). Now unfortunately, you must download another System, the Advanced String System for MultiKick to work. Save the map to your maps folder or something (you have to from now on to test vJASS maps or it won't work). If you get a lot of syntax errors, you'll have to click the JassHelper tab and uncheck "Disable vJass Syntax" (worked for me)

Test your map. If you used MultiKick like I suggested, you can type -kick then the player's #, color, name to see if the system works (no one is probably playing with you so it will just display an error message)

Now you have a MultiKick system to use on your maps!

A MultiKick system might now be big and mighty, but it shows that you can use vJASS to do many other exciting things with the proper knowledge. :thumbs_up:

Source: Personal Experience (God I spent many hours trying to figure all of this out using Google)
 
Level 12
Joined
Dec 10, 2008
Messages
850
I dont see how JASS sucks and vJASS rules when everything compiles into pure JASS, invluding vJASS.

Hes right about WEU, it sucks, I've never used it, but I now it sucks. Its no longer an acceptable in the Spells section becuase of it, and its only really used for terraining.

If you can use GUI, stick with it until you need to learn JASS for a spell you can't quit pull off in GUI, then stick with JASS.

Eventually, you'll want to learn vJASS (I can't think of many pure coded JASS spells, since vJASS is the "thing") vJASS might overwelhm you at first, making you wonder why it itsn't included in the first place, but you'll find the globals block and scope and endscope a really handy tool. (No more "Trg_LightStrike_Conditions") And custom Init triggers allow you to get really flexable with what you want to do

Theres alot of things that vJASS allows too, like textmacros (those are fuuuuuuunnnnn) which do many handy things. Theres one system that requires about 100 object editor items with specific stats, or the system won't compile. With TextMacros, he was able to do it all with a click of the save button. Its really handy.

But, jsust find what your good at, and stick to it, and you'll suceed
 
Level 3
Joined
Apr 10, 2009
Messages
39
My bad, I meant JASS is less efficient without vJASS because vJASS is basically JASS but in a better format to work with... :thumbs_up:

If you can code fluently in JASS to begin with the only advantage is coding in vJASS is it takes less time because it has a few object oriented programming concepts and short cuts. However it can get bloated very quickly. Both have their advantages. Just remember you dont have to use vJASS for everything. If you can do it in JASS then by all means do it in JASS.

EX:
JASS:
function main takes nothing returns nothing

endfunction

library GameUtils
function ChanceToTrigger takes integer Percent returns boolean
if Percent > R2I(GetRandomReal(0, 100)) then
return true
endif
return false
endfunction

struct Test
integer x
integer y
unit array lamp[2]
endstruct
endlibrary
Becomes

JASS:
globals


//JASSHelper struct globals:
constant integer si__Test=1
integer si__Test_F=0
integer si__Test_I=0
integer array si__Test_V
integer array s__Test_x
integer array s__Test_y
unit array s___Test_lamp
constant integer s___Test_lamp_size=2
integer array s__Test_lamp

endglobals


//Generated allocator of Test
function s__Test__allocate takes nothing returns integer
 local integer this=si__Test_F
    if (this!=0) then
        set si__Test_F=si__Test_V[this]
    else
        set si__Test_I=si__Test_I+1
        set this=si__Test_I
    endif
    if (this>4094) then
        return 0
    endif
    set s__Test_lamp[this]=(this-1)*2
    set si__Test_V[this]=-1
 return this
endfunction

//Generated destructor of Test
function s__Test_destroy takes integer this returns nothing
    if this==null then
        return
    elseif (si__Test_V[this]!=-1) then
        return
    endif
    set si__Test_V[this]=si__Test_F
    set si__Test_F=this
endfunction

//library GameUtils:
function ChanceToTrigger takes integer Percent returns boolean
if Percent > R2I(GetRandomReal(0 , 100)) then
return true
endif
return false
endfunction


//library GameUtils ends
function main takes nothing returns nothing


call ExecuteFunc("jasshelper__initstructs52613287")

endfunction



//Struct method generated initializers/callers:

function jasshelper__initstructs52613287 takes nothing returns nothing

endfunction
 
Level 12
Joined
Dec 10, 2008
Messages
850
I don't see how anything after compiling really matters. vJASS was made for quicker, more OOP coding in JASS, not the other way around. If you honestly think that JASS is better becuase it compiles into something that isn't as "bloasted" then you need to quite. Basing your idea on something that defeats the purpose of even having it in the first place is stupid
 
Level 3
Joined
Apr 10, 2009
Messages
39
I don't see how anything after compiling really matters. vJASS was made for quicker, more OOP coding in JASS, not the other way around. If you honestly think that JASS is better becuase it compiles into something that isn't as "bloasted" then you need to quite. Basing your idea on something that defeats the purpose of even having it in the first place is stupid

What it compiles into is the only thing that matters. Your first sentence proves your ignorance. If you read my post properly you would discover that i am not condemning vJASS i simply stated that if you can use JASS alone to do something then you should. BECAUSE THERE IS NO NEED TO USE MORE CODE THAN WHAT IS NECESSARY TO ACHIEVE AN END MEANS. That is stupidity.

You further prove your ignorance by saying that JASS compiles. JASS does not compile like vJASS. All JASS has to do is pass a SYNTAX CHECK and merge into the maps J file.
 
Level 12
Joined
Dec 10, 2008
Messages
850
Don't you think that when vJASS code was made, it would take full advantage of JASS to its limits? Without vJASS, we'd probably have to be using some old system thats been stolen 10000 times over or GameCache.

You're trying to but vJASS out, when it acually saves more time then JASS. With JASS, ever function requires a unique name, which makes spells and systems very hard to make and co-ordinate with others. vJASS fixed this problem. After everything is put into a .J file, I'd rather care about how it acually works then how it looks, since nobody looks at the .J file, unless its for errors that escaped the check, or a trigger disables the entire map.

You're proving that you'd rather jsut take 5 more minutes to write something, then use a tool that is used and trusted by almost all advanced JASS users.
 
Status
Not open for further replies.
Top