System Customizable Casting Bars-- GUI

the_ideal

user title
Reaction score
61
This is a system that makes spell casting in Warcraft a lot more dynamic. Any spells you choose can have a casting time during which a bar fills up. When the bar is full, the spell is cast. (If you have played WoW or similar games you know what I'm talking about.) The system is fairly customizable, with many things that can be adjusted:

Features:
-- Color/length/height of casting bar.
-- Different casting times for different spells
-- Casting times can be adjusted according to spell level or if a hero has a custom item that does so
-- You can choose which abilities have casting bars. If you only want to use this system for one ability in your map, that works. If you want all the abilities in your map to use casting bars, that works too... (with some limitations)
-- MPI; each player can have one main spellcasting unit. This makes the system useful for AoSs and RPGs, and less useful for other maps, such as Melee.
-- Fully GUI; very noob friendly, especially once you get the hang of it.
-- Leakless, Lagless (note: has not been tested with large numbers of players)
-- Customizable animation for each spell (different colored glowing hands! :shades:)
-- Choose who can see whose spell bars.
-- When a unit casting a spell takes damage, the spell progress is reduced. You can determine how much it is reduced with your own formula, and determine whether or not heroes reduce progress more.
-- Doesn't require any other systems or modified World Editors!

Limitations:
-- Some spells, by their nature, cannot be implemented into this system. The spell has to be something that a dummy unit can cast. For example, Life Drain cannot be implemented into this system easily, (you could probably trigger it if you worked hard enough) because it requires that your hero is casting it.
-- Not MUI. Each player can only have one spellcaster.
-- Triggering is not as efficient as it could be if it were in JASS
-- Every new spell you want to have a casting bar requires a new trigger to be added, and a line added to another trigger. It's not a big drawback, but it does mean adding a new spell is going to take a minute or two longer than usual.
-- System works best for units with "channel" animation. Otherwise the unit is just standing there while the spell is being cast. (Can be adjusted by changing animation names of spells.)

Screenshots
wc3scrnshot071510215520.png

wc3scrnshot071510215546.png

wc3scrnshot071510215552.png


wc3scrnshot071510215610.png

Implementation
Copy triggers and variables from attached map into your map. Every spell requires:
-- A base spell, based on channel. This is the spell your hero will cast. In the demo map there are many examples. All of these spells have the suffix (caster). This spell icon/tooltip will look just like the actual spell that is going to be cast.
-- The spell the dummy will cast. This will actually have the effect of the spell you want. These spells are marked in the demo map as (dummy)
-- A trigger that sets up the spell, when the base spell is cast. This lets the game know that a spell is being cast, sets the target unit or point, sets the casting time, and sets a variable to the spell that you want your dummy to cast when the spell is complete.
For example:
Trigger:
  • Entangle
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Entangle (caster)
    • Actions
      • Set CCB_IntTemp = (Player number of (Owner of (Triggering unit)))
      • Set CastTargetUnit[CCB_IntTemp] = (Target unit of ability being cast)
      • Set CCB_CastingProgress[CCB_IntTemp] = 0.01
      • Set CastSpellLevel[CCB_IntTemp] = (Level of (Ability being cast) for (Triggering unit))
      • Set CastingSpell[CCB_IntTemp] = 1
      • Set CCB_CastingTimeTotal[CCB_IntTemp] = 1.50
      • Set CastAbilityDummy[CCB_IntTemp] = Entangle (dummy)

-- A line added to the trigger that fires when the spell is done casting that orders the dummy to cast the spell that has been added to it.


NOTE: This system is incomplete. I still haven't implemented the necessary triggers for channeled spells (like Death and Decay or Tranquility), and the triggers in my map are still not polished. The purpose of this post is to see if anyone is interested and to help out anyone who might want to use this. I will update this thread later with a better test map, and a much more detailed explanation of the triggers in the system and how they all work.


Enjoy! Comment!
 

Attachments

  • (1) CCB System by the_ideal.w3x
    65.9 KB · Views: 266

Sevion

The DIY Ninja
Reaction score
413
Please put images in spoilers.

TBH, the updating is too choppy. 0.10 seconds doesn't cut it.

Also, there are too many things that are hardcoded like the colors.

It's only MPI and not MUI.

This is locked to heroes in some parts.

Very inefficient.

Everything HAS to be triggered AND uses dummy units which are not recycled thus leaking until ending the process.

From a quick glance, I give this code a 1/10.

You get points for actually making it work, but lose massive amounts for the above reasons (and probably more that I didn't care to find).
 

sentrywiz

New Member
Reaction score
25
I like this and would like to see more of it.

Continue your work.

I'm grading this 7/10 because I believe to make cast bars in GUI one has to be insane or insanely motivated. You seem both; no offence :D
 

the_ideal

user title
Reaction score
61
Even in GUI this could be done a lot better actually.

How so?

> Post the code please.. I don't like downloading maps and observing them.
Will do.

> I'm grading this 7/10 because I believe to make cast bars in GUI one has to be insane or insanely motivated. You seem both; no offence
Haha thanks. Honestly I don't understand the low ratings though... within the context of GUI mapmaking it is very advanced, and even ignoring GUI's limitations, this system does not create lag (I recently tested with 8 players with no problems.) and performs its function adequately.

Anyway, I will be updating this at some point... I'm going on a backpacking trip soon though, and will not have computer access for awhile. It may have to wait.
 

Sevion

The DIY Ninja
Reaction score
413
If you don't understand my low rating, please reread this:

TBH, the updating is too choppy. 0.10 seconds doesn't cut it.

Also, there are too many things that are hardcoded like the colors.

It's only MPI and not MUI.

This is locked to heroes in some parts.

Very inefficient.

Everything HAS to be triggered AND uses dummy units which are not recycled thus leaking until ending the process.

From a quick glance, I give this code a 1/10.

You get points for actually making it work, but lose massive amounts for the above reasons (and probably more that I didn't care to find).

Not to mention this is in GUI.

Even if it were perfect in GUI, I would only be able to give you 7/10 because of the way GUI is.
 

the_ideal

user title
Reaction score
61
Responses in bold.
TBH, the updating is too choppy. 0.10 seconds doesn't cut it.
Why doesn't .1 seconds cut it? I'm actually working on a map right now that uses this system, and I've tested it multiple times with 8 people, and a vast majority of the people have had positive feedback. In fact, the only negative comments were that I should implement more interesting spells. So if the people playing the map didn't think it was too choppy, then I think it is fine.

Also, there are too many things that are hardcoded like the colors.
Sorry, can you explain? What do you mean hardcoded? In later updates of this system I am going to include an easy way to change the color of the bar based on the color of the player or a certain color bar for each unit...

It's only MPI and not MUI.
This is a problem, and unfortunate. However, like I said in my first post, this system will still work perfectly and be very useful for one hero AoS and RPG maps. (And I don't know any AoSs or RPGs where you get two heroes.)

This is locked to heroes in some parts.
Good point. I guess I assumed that no one would use it for units.

Very inefficient.
This may be, but if it doesn't cause lag for me, (I have a slow computer) and it doesn't cause lag for the seven other people in the game. In fact, the map I made with the system has a low filesize, a quick loading time and doesn't lag in game. I'd call that a success.

Everything HAS to be triggered AND uses dummy units which are not recycled thus leaking until ending the process.
First of all, every time someone creates a custom spell in any map, JASS or GUI, it HAS to be triggered. Unless it's just based on a Warcraft III regular spell. Yes, I admit, this takes a little more time... but as someone who has created many spells using this system, I can attest that it only adds a minute to the time it takes to create a new spell.

Regarding the dummy units, it is completely inaccurate to say they leak: Every time a spell with a casting bar is cast, no dummy units are created until the spell supposed to fire. Then a dummy is created with a 1.5 second expiration timer, and casts the spell. I don't think a dummy waiting around 1.5 seconds constitutes a "leak."


From a quick glance, I give this code a 1/10.
Can I trade that point in for prizes? :p

And again, you say this could be done a lot better, even in GUI. Please tell me how, so I can update my system and give you credit.
 

Sevion

The DIY Ninja
Reaction score
413
1. 0.1 seconds is choppy.
2. Hardcoded means you can't change it without modifying the system.
3. Then make it MUI. There's almost no chance of things being approved unless they're MUI.
4. Units can cast spells too. And what's the point of making it heroes only?
5. It will when you have 10+ systems and your own map code PLUS things on-screen. Trust me. Slap this into a map like CHLW and it will lag the shit out of you.
6. Rofl. Lies.
7. No, it isn't. Units leak. Read up on it sometime. Trust me. It's a leak.
 

Tyman2007

Ya Rly >.
Reaction score
74
Sorry sevion, but instead of saying "This is wrong" and "That is wrong" why don't you tell him what's right so he can fix it?

You're more criticising his work than allowing for constructive behavior.
Just saying what's wrong and not giving him a lead to fix it will just end with him trying to say everything you said that was bad is false, which he has already done. You could say this;

1. 0.1 seconds is choppy.
-it is much smoother to use 0.03

2. Hardcoded means you can't change it without modifying the system.
-You should make some variables that allow you to change things that shouldn't be hardcoded

3. Then make it MUI. There's almost no chance of things being approved unless they're MUI.
-You can start by reading up on hashtables; here's a link

4. Units can cast spells too. And what's the point of making it heroes only?
-make it so that units can cast spells too by doing xxxx (I'm not sure how)

5. It will when you have 10+ systems and your own map code PLUS things on-screen. Trust me. Slap this into a map like CHLW and it will lag the shit out of you.
-do these things to optimize (Didn't look at script.. editorial fail maybe)

6. Rofl. Lies. (Not sure where this is directed)

7. No, it isn't. Units leak. Read up on it sometime. Trust me. It's a leak.
-here's a related thread (Probably isn't related.. didn't look at it)

I mean this is a basic example of what could have been said and you would have avoided there being 5 unecessary posts in this topic.
 

Sevion

The DIY Ninja
Reaction score
413
This isn't a forum to criticize my criticism.....

#6 is directed towards:
First of all, every time someone creates a custom spell in any map, JASS or GUI, it HAS to be triggered. Unless it's just based on a Warcraft III regular spell. Yes, I admit, this takes a little more time... but as someone who has created many spells using this system, I can attest that it only adds a minute to the time it takes to create a new spell.

The point behind my criticism is that this isn't a very good system at the moment.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • The Helper The Helper:
    The bots will show up as users online in the forum software but they do not show up in my stats tracking. I am sure there are bots in the stats but the way alot of the bots treat the site do not show up on the stats
  • Varine Varine:
    I want to build a filtration system for my 3d printer, and that shit is so much more complicated than I thought it would be
  • Varine Varine:
    Apparently ABS emits styrene particulates which can be like .2 micrometers, which idk if the VOC detectors I have can even catch that
  • Varine Varine:
    Anyway I need to get some of those sensors and two air pressure sensors installed before an after the filters, which I need to figure out how to calculate the necessary pressure for and I have yet to find anything that tells me how to actually do that, just the cfm ratings
  • Varine Varine:
    And then I have to set up an arduino board to read those sensors, which I also don't know very much about but I have a whole bunch of crash course things for that
  • Varine Varine:
    These sensors are also a lot more than I thought they would be. Like 5 to 10 each, idk why but I assumed they would be like 2 dollars
  • Varine Varine:
    Another issue I'm learning is that a lot of the air quality sensors don't work at very high ambient temperatures. I'm planning on heating this enclosure to like 60C or so, and that's the upper limit of their functionality
  • Varine Varine:
    Although I don't know if I need to actually actively heat it or just let the plate and hotend bring the ambient temp to whatever it will, but even then I need to figure out an exfiltration for hot air. I think I kind of know what to do but it's still fucking confusing
  • The Helper The Helper:
    Maybe you could find some of that information from AC tech - like how they detect freon and such
  • Varine Varine:
    That's mostly what I've been looking at
  • Varine Varine:
    I don't think I'm dealing with quite the same pressures though, at the very least its a significantly smaller system. For the time being I'm just going to put together a quick scrubby box though and hope it works good enough to not make my house toxic
  • Varine Varine:
    I mean I don't use this enough to pose any significant danger I don't think, but I would still rather not be throwing styrene all over the air
  • The Helper The Helper:
    New dessert added to recipes Southern Pecan Praline Cake https://www.thehelper.net/threads/recipe-southern-pecan-praline-cake.193555/
  • The Helper The Helper:
    Another bot invasion 493 members online most of them bots that do not show up on stats
  • Varine Varine:
    I'm looking at a solid 378 guests, but 3 members. Of which two are me and VSNES. The third is unlisted, which makes me think its a ghost.
    +1
  • The Helper The Helper:
    Some members choose invisibility mode
    +1
  • The Helper The Helper:
    I bitch about Xenforo sometimes but it really is full featured you just have to really know what you are doing to get the most out of it.
  • The Helper The Helper:
    It is just not easy to fix styles and customize but it definitely can be done
  • The Helper The Helper:
    I do know this - xenforo dropped the ball by not keeping the vbulletin reputation comments as a feature. The loss of the Reputation comments data when we switched to Xenforo really was the death knell for the site when it came to all the users that left. I know I missed it so much and I got way less interested in the site when that feature was gone and I run the site.
  • Blackveiled Blackveiled:
    People love rep, lol
    +1
  • The Helper The Helper:
    The recipe today is Sloppy Joe Casserole - one of my faves LOL https://www.thehelper.net/threads/sloppy-joe-casserole-with-manwich.193585/
  • The Helper The Helper:
    Decided to put up a healthier type recipe to mix it up - Honey Garlic Shrimp Stir-Fry https://www.thehelper.net/threads/recipe-honey-garlic-shrimp-stir-fry.193595/
  • The Helper The Helper:
    Here is another comfort food favorite - Million Dollar Casserole - https://www.thehelper.net/threads/recipe-million-dollar-casserole.193614/

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top