Spell Twister

emootootoo

Top Banana
Reaction score
51
Screenshot:
TwisterScreeny.jpg


removed this since it's old as hell and was made while learning jass
 
S

sinners_la_b

Guest
looks nice from the screenie, i didnt fully go over the code just a quick scan and it looks good. However all those constant function can just be globals.
 

The_Kingpin

Member (Who are you and why should I care?)
Reaction score
41
However all those constant function can just be globals.

They can actually be constant globals.

Looks good, however there are a few leaks:

In function Trig_TwisterStart, you do not remove the location "tloc". You also do not null "t", "tloc", "p1", and "p2".

In Trig_TwisterTimer, you don't remove the group "g", nor do you remove / null "g", "p1", or "p2".

And I'm not sure if you need to null those variables in side the struct, I think that is done on destruction.

There are a few BJ's that can be replaced, such as DistanceBetweenPoints and IsUnitDeadBJ. The first one can be replaced with just math. The second one can be replaced with GetUnitState(unit,UNIT_STATE_LIFE) > 0.

Also, the spell is not MUI as you attach the struct to the unit with the unit's user data, and you do not check to see if it is already being used. This can cause problems later.
 

emootootoo

Top Banana
Reaction score
51
OK, I'll fix that all up and update it soon.

Also, the spell is not MUI as you attach the struct to the unit with the unit's user data, and you do not check to see if it is already being used.

Mind elaborating on how to check if the struct is being used?
 

The_Kingpin

Member (Who are you and why should I care?)
Reaction score
41
Well first, don't use UnitUserData to store your variable, because if you have two spells that use that then they will conflict with each other.

Simple: Check if the UnitUserData is == 0 in the trigger action trigger. If it isnt, don't do anything. And set the unit's user data back to 0 when you destroy the struct.
 

emootootoo

Top Banana
Reaction score
51
Why does it matter what unit data is being used on a unit that just got spawned and is going to be removed once the spell finishes?

I attached the data to the actual dummy unit for that exact reason, to avoid spell clashing when attaching it to the caster.
 

The_Kingpin

Member (Who are you and why should I care?)
Reaction score
41
Ohhh you attached it to the dummy unit. Well then forget what I said.
 

Tinki3

Special Member
Reaction score
418
This is cool, and looks cool too ;)

I found quite a few location leaks in the TwisterTimer function:
(The following is in order of appearance in trigger)
Code:
local real x=GetLocationX([B]GetUnitLoc(TD.TU)[/B])+20*Cos(TD.TA*bj_DEGTORAD)
local real y=GetLocationY([B]GetUnitLoc(TD.TU)[/B])+20*Sin(TD.TA*bj_DEGTORAD)

set ex=GetLocationX([B]GetUnitLoc(u)[/B])+25*Cos(angle2C*bj_DEGTORAD)
set ey=GetLocationY([B]GetUnitLoc(u)[/B])+25*Sin(angle2C*bj_DEGTORAD)
You also havn't nulled any of the location variables in either of the 2 main functions.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      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