HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Custom Spells

06-03-2008, 07:54 AM#1
311
How do you get these JESP spells to work? They make it sound so easy but I have no idea how to get it to my map. I copy the trigger and spell into my map, I change the ability code to my ability code and it doesn't work
The weird thing is I can open the map, and do absolutely nothing and try to save it, and I get errors..... How is that even possible? So of course copy paste don't work :(
I want the knock back spell from the ogre from the custom hero contest.
Do I need to change a lot of things? is this something I would need to learn JASS just to implement.
I haven't made a map in awhile, like a year, but before custom spells in JASS never seemed that hard to add to my map, like that one cold strike spell where you jumped from hero to hero attacking, and now it seems I cant add anything I want :(, I must be missing something extremely easy since most say this system is better. Im sure this is probably a noob question, but really want the spell
06-03-2008, 08:12 AM#2
Alexander244
Are you using Jass NewGen Pack?
06-03-2008, 09:14 AM#3
311
Nope, I need that? Well I downloaded it but for some reason I cant install it. I did download then i got that that thing to unzip it, I scroll to the bottom and double click newgen warcraft.exe and newWE.exe and both do nothing, they both make a box show up for a split second but thats it dunno why it wont install
06-03-2008, 09:52 AM#4
Alexander244
You need to be able to compile vJass; for which using NewGen is the easiest method.
If NewGen WE.exe isn't working, try we.bat
06-03-2008, 10:29 AM#5
311
Ok the thing let me install it now, and now the spell works, and wow, ya spells are WAY easier to implement now :). I remember before needing to change the spell code name multiple times, and other things, now its easy, thanks so much for the help, new it would be some simple fix that makes me look dumb, you can delete this post now :)

K well now that I got some spells I wanted, the ones in JESP. Just need 2more and Im guessing I need to download something again. I want the Jump ability, and the Icebolt that goes back and forth. They are both in Vexorians spell factory map, however when I copy the stuff to my map and do custom script everything like it says, I get errors.
Then I tried what I always try to see if its just me or whats going on, I open his map, edit NOTHING, and just save, and I get errors somehow............
I have that Jass Newgen installed now, do I need to do somthing extra with it? Do I need to download somthing else?
06-03-2008, 03:32 PM#6
Captain Griffen
Are you opening the NewGen WE? If no, use that and retry.
Are you using the latest version of Vexorian's systems? If no, update them and retry.

If you still have problems, post the errors. We cannot read your mind.
06-03-2008, 04:39 PM#7
Anitarf
Make sure you are running NewGen and not the original WE, since the NewGen is installed separately, it doesn't overwrite the original editor.
06-04-2008, 12:30 AM#8
311
Quote:
Originally Posted by Captain Griffen
Are you opening the NewGen WE? If no, use that and retry.
Are you using the latest version of Vexorian's systems? If no, update them and retry.

If you still have problems, post the errors. We cannot read your mind.

Ya, of course I'm opening that lol. As for the vexorian thing, its spellfactory3 the map I downloaded from here, the map works, all the spells work, but if I open the map, and try to save, with no editing what so ever, I just get tons of errors.
says
JassHelper step 2 (strucs)
compile error
line 3780 identifier declared: "i"

then highlighted in blue about halfway down the script is this
local integer i = 0
06-04-2008, 01:31 AM#9
Vexorian
spell factory is bugged, won't compile with latest jasshelper.

hmnn, should make a fix, arg, I needed soemthing to do anyway. Come back in about two hours (or later)

Edit: only 10 minutes late....
06-04-2008, 05:17 AM#10
311
Quote:
Originally Posted by Vexorian
spell factory is bugged, won't compile with latest jasshelper.

hmnn, should make a fix, arg, I needed soemthing to do anyway. Come back in about two hours (or later)

Edit: only 10 minutes late....

Bad news still don't work for me :(.

without editing anything just opening and trying to save I get compile errors
9899 undeclared function groupaddunitsintriangle
9900 undeclared function groupaddunitsintriangle
06-05-2008, 01:34 AM#11
311
Nope still no luck, is it still bugged? or is it me doing somthing wrong?
06-05-2008, 03:11 AM#12
Vexorian
damn, for some reason I forgot to make the triangle function a library and the trigger addition order is all but deterministic.

There's a trigger called GroupAddUnitsInTriangle or something like that, replace its contents with this:

Collapse JASS:
library GroupAddUnitsInTriangle initializer init
//**************************************************************************************************
//*
//*  GrupAddUnitsInTriange (Polygonal madness)
//*
//*     To implement this function, copy this trigger and paste it in your map.
//*
//**************************************************************************************************

//==================================================================================================
globals
    private rect limit
endglobals

private function makeLimit takes real x1, real y1, real x2, real y2, real x3, real y3 returns nothing
 local real maxx
 local real minx
    if (x1>x2) then
        if (x2>x3) then     //x1>x2>x3
            set maxx=x1
            set minx=x3
        elseif (x3>x1) then //x3>x1>x2
            set maxx=x3
            set minx=x2
        else                //x3>x1>x2
            set maxx=x1
            set minx=x2
        endif
    elseif (x1>x3) then //x2>x1>x3
        set maxx=x2
        set minx=x3
    elseif (x3>x2) then //x3>x2>x1 
        set maxx=x3
        set minx=x1
    else                //x2>x3>x1
        set maxx=x2
        set minx=x1
    endif

    if (y1>y2) then
        if (y2>y3) then     //y1>y2>y3
            call SetRect(limit,minx,y3,maxx,y1)
        elseif (y3>y1) then //y3>y1>y2
            call SetRect(limit,minx,y2,maxx,y3)
        else                //y3>y1>y2
            call SetRect(limit,minx,y2,maxx,y1)
        endif
    elseif (y1>y3) then //y2>y1>y3
        call SetRect(limit,minx,y3,maxx,y2)
    elseif (y3>y2) then //y3>y2>y1 
        call SetRect(limit,minx,y1,maxx,y3)
    else
        //y2>y3>y1
        call SetRect(limit,minx,y1,maxx,y2)
    endif
endfunction

globals
    private group    enumgroup
    private boolexpr checkFunc
    private group    output   
    private constant real PI2=6.28318

    private real X1
    private real X2
    private real X3
    private real Y1
    private real Y2
    private real Y3
    private real EPS=0.000000001
endglobals


private function enum takes nothing returns boolean
 local unit u=GetFilterUnit()
 local real x=GetUnitX(u)
 local real y=GetUnitY(u)
 local real r1=x*Y2-X2*y + X2*Y3-X3*Y2 + X3*y-x*Y3
 local real r2=X1*y-x*Y1 + x*Y3-X3*y + X3*Y1-X1*Y3
 local real r3=X1*Y2-X2*Y1 + X2*y-x*Y2 + x*Y1-X1*y
    if((r1<=-EPS) and (r2<=-EPS) and (r3<=-EPS)) or ((r1>=EPS) and (r2>=EPS) and (r3>=EPS)) then
        call GroupAddUnit( output, u)
    endif
 set u=null
 return false
endfunction


function GroupAddUnitsInTriangle takes group whichGroup, real x1, real y1, real x2, real y2, real x3, real y3 returns nothing
    set output=whichGroup
    set X3=x3
    set Y3=y3
    set X1=x1
    set Y1=y1
    set X2=x2
    set Y2=y2

    call makeLimit(x1,y1,x2,y2,x3,y3)
    call GroupEnumUnitsInRect(enumgroup, limit, checkFunc)
endfunction

private function init takes nothing returns nothing
    set limit=Rect(0,0,0,0)
    set checkFunc=Condition(function enum)
    set enumgroup=CreateGroup()
endfunction

endlibrary
Edit: Changed the triangle function with one that doesn't make me sick.
06-05-2008, 03:51 PM#13
Kyrbi0
Oh no, you mean I can't just copy/paste the code from the Hero Contest test maps into another map, change the variables, and hope it works??

Why didn't anyone use GUI!?... (yes, I know why; just talking to myself)
06-05-2008, 03:56 PM#14
Vexorian
It would be much harder to implement a GUI spell.
06-05-2008, 04:17 PM#15
Kyrbi0
Yea, I know; but I'm more familiar with it, so it would be "easier", relatively speaking.

Actually, I wanted it in GUI in the hopes that I could learn something; like, people using code in ways that I couldn't dream of. Y'know, you see some code from someone else, and perhaps it opens your mind a bit to the possibilities of code like that... Although perhaps you're of the perspective where you're the one using code imaginatively...

Anyway, yeah. I may not be able to implement it as easily, but I can sure read and understand it easier, and thus learn from it; as it stands, all that JASS/JESP stuff is just information I can't access.

~~~

Speaking of which, do I need to do anything special, or can I just copy/paste it into another map + change the required stuff?