• 🏆 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!

GUI System Workshop [Requests welcome!]

Status
Not open for further replies.

Chaosy

Tutorial Reviewer
Level 40
Joined
Jun 9, 2011
Messages
13,183
hey nagarulez I did test a few thing and I can't seem to find i perfect way to do this.
firstly I tried to detect when the gather ability is cast that did not work. after that I tested a loop trigger where I check unit current order but at that point I don't know how long it is between the gathering time. its around 6 seconds I think but im not sure.
anyway this is how you do it.

  • easy way
    • Events
      • Time - Every 6.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units of type Acolyte) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Current order of (Picked unit)) Equal to (Order(harvest))
            • Then - Actions
              • Player - Add 10 to (Owner of (Picked unit)) Current lumber
            • Else - Actions
if you want me to apply it so it starts when the unit starts to gather let me know. But then it will be more advanced ( hashtables) and I will need one more trigger I belive
 
Level 7
Joined
Nov 11, 2011
Messages
219
hey nagarulez I did test a few thing and I can't seem to find i perfect way to do this.
firstly I tried to detect when the gather ability is cast that did not work. after that I tested a loop trigger where I check unit current order but at that point I don't know how long it is between the gathering time. its around 6 seconds I think but im not sure.
anyway this is how you do it.

  • easy way
    • Events
      • Time - Every 6.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units of type Acolyte) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Current order of (Picked unit)) Equal to (Order(harvest))
            • Then - Actions
              • Player - Add 10 to (Owner of (Picked unit)) Current lumber
            • Else - Actions
if you want me to apply it so it starts when the unit starts to gather let me know. But then it will be more advanced ( hashtables) and I will need one more trigger I belive

Just do what you believe is right ;). I believe its been hanging there for 2 weeks?
 
Level 6
Joined
Dec 19, 2009
Messages
226
@Chaosy: thx, ill try it as soon as possible... and sorry for dopost, i cant see my previous post...
EDIT: i've check it, and its not like what i wanted at all..
can u just use blink spell from editor and not using trigger to blink?
and i'll give you a hint about what i really wanted.
This is it:

"Whenever a hero enters the game and it's not a dummy hero or an illusion, and "RegisterDamageAlready" is false for that hero, then set that variable for him to true and create a new periodic trigger (1) to be called when the hero is damaged.

(1) If the damage is bigger than 2, the damage source is not the hero himself and the damage source belongs to one of the 10 human players or it's Roshan, then set "Global|LastPlayerDamage" (an element of an array) for the hero to the current time.

There's another periodic trigger (2) running concurrently. It is called every 0.33 seconds.

(2) For every player in the game, take that player's hero and if the hero isn't dead, then do (3).

(3) If the current time is lower than "Global|LastPlayerDamage"+3 seconds, then search the hero's inventory (slots 0-5) and if you find Kelen's Dagger [I04H], then remove it from the inventory and replace it by Disabled Kelen's Dagger [I04I]. If the current time is bigger or equal to "Global|LastPlayerDamage"+3 seconds, then search the hero's invetory (slots 0-5) and if you find Disabled Kelen's Dagger, then remove it from the inventory and replace it by Kelen's Dagger.

To sum up, Dagger is disabled for 3 seconds after any damage bigger than 2 from player-controlled source is recieved. The damage source can even be an ally (e.g. Toss) or Roshan. Direct HP removal does not disable Dagger. And because the disabling trigger is called every 0.33 seconds, there can be a small delay, so if lucky, the hero can still blink away before Dagger is disabled."

its a guide from another forum, unfortunately i can't handle it so well, and i need you to do it...
 
Level 6
Joined
Dec 19, 2009
Messages
226
yes but no..
it only disable from players or a specific boss unit that cause damage bigger than 2, and the disable time is 3 seconds then the item will be enable again.. if within the disable time the user of the item take more damage from the source's (players or boss unit) the disable time will also be refreshes to 3 again...
EDIT: you dont have to checked damage taken every .33 sec, its not working that way
 
Level 6
Joined
Dec 19, 2009
Messages
226
Tested it..
I don't know how u coding it, its kinda different from what i really mean but its good!
From what i suppose is: the item will be removed and changed by other item (disabled one) until the time is over, and by players i mean is the other players (enemies and allies) and non-neutrals, the only neutral that can disabled the using of the item is a boss-unit.
It looks like this one you created is working anyway! but can u do that one?

EDIT: i've checked your coding, but by using triggered blink like your's is making the item can't be cast from a long range more than the casting range, while the original blink will blink to almost the maximum range when it cast that way
 
Last edited:
Level 15
Joined
Nov 30, 2007
Messages
1,202
Got another hopefully interesting idea, naval boarding battles. Basically if a ship moves close enough to a enemy ship (can also be a target abiltiy, which perhaps is a better idea performance wise.) it unloads all units to the deck from both sides and they fight eachother.

Technically; the ships can no longer move, invisible ramps are placed or something of the sort to make it walkable for units. The units then are placed at the ramp and they fight each other. When one side wins the ship - or the units can target the ship and this untaggle the ship, also if there are any enemy units remaining they or are placed in rafts. (Imagine something as immovable as the spell "turn into critter"

I don't care if this visually will look retarded. Please do it! :D

And you could also expand the naval warfare idea by having more cannons at one side. For instance, ship X has 3 cannons on both sides and one that fires freely. So to fire those 3 cannons a target must be on that side.

This would also require away to ignore the autofacing of attacks, since it would always face the target. Perhaps summon wards that follow the ship or something, dunno.
 
Level 15
Joined
Nov 30, 2007
Messages
1,202
is it possible to give ships a broadside ability? means they can shoot from the side not from the front, so they dont have to turn

how ever you could create a spell that fires when you press "fire broadside" but that wouldnt be automatic.

Not that I know of, so I suggested it here! =)

a idea, I have to make it less extensive is give it the barrage ability with 0 damage and then just do the damage afterwards to those that are within the correct coordinates hopefully you can remove the missile of it and limit the amount it can hit.
 
Level 13
Joined
Jul 2, 2008
Messages
1,182
I need an alternative Nova. When the spell is casted a projectile flies to the target area and when it hits all units get frozen, which means they are trapped in ice shards and cant move. But they also cant be attacked until the effect is gone.
 
Level 25
Joined
Jul 10, 2006
Messages
3,315
System Title: Damage/Heal/Mana - Detection System
System Description: When a unit is damaged, healed, Refreshes Mana or Use Mana it shows the amount of Added/Removed Points Using Floating Text
System Specifications:
  • Text Colors : Damage = RED
    Heal = Green
    Mana = BLUE

In DLMC Gain trigger, you can change the periodic timer to make the life/mana gain detection smoother. If your map lags, set it a bit higher.

Note that units' "cast - backswing point" should all be very low, or zero if that isn't a problem for your map.

Known bug: at map init, all units are shown to be healed by their full hp. I don't have the time to fix this, so just deal wit hit.
 

Attachments

  • DetectLifeManaChange.w3x
    30.8 KB · Views: 33
Level 25
Joined
Jul 10, 2006
Messages
3,315
Here's mine :
System Title: Lumber and Gold Mine
System Description: When acolytes mine the haunted goldmine, they will mine gold and lumber.
System Specifications:
-MUI
-Gold and Lumber has a limit.
-Gold and Lumber give offs is +10 every second.

I'am using the system i requested earlier. Tnx!

The only conceivable way I can see this being possible is by detecting gold gain, and then adding lumber accordingly.
  • There won't be floating text for the lumber, since there is no way of detecting which gold mine gave the gold.
  • If you get 10 gold from bounty/selling and item, it will also give lumber.

    The only other way would be to completely rewrite the haunted gold mine system, something I will not be doing.
 
Level 23
Joined
Oct 20, 2012
Messages
3,075
I Tried creating this myself but the only way I could think of is making one of every possible combinations of item/gems but that would be too much so, I'm gonna request it here.. :D

System Title: Slotted items (Refinable and Embeddable)
System Description: I have at least 50 or more items that can have up to 6 slots that can have an embedded gem. I have at least 30 gems and each and every one of them has a special ability. I would like a system that enables a player to refine an item with an available slot so that he can embed gem to get special abilities but refining costs refining stones(lumber) and lubricants(food)
System Specifications:

Single player - it's for a Single player RPG and the player has only one unit that can do this.
From Shop - Refining and Embedding should be handled by shops. meaning player must go to blacksmith to refine then alchemist to embed a gem.. sum'in like that..
Tooltips - It would be great if slots, refined, slots and gems embedded can be indicated with the tooltips of the item. if not, a multiboard display is fine too..

Dunno how to describe it more but, I think you'll get the picture.. I think It's pretty complicated so, It would be fine if you'll not be able to make this.. :D

What about mee?
 
Level 11
Joined
Feb 23, 2009
Messages
577
I have made a system like this but it's extremely complicated and item stats are shown in a multiboard (to not have 10000000 items but have all the combinations possible).

It also allows random stats/stat combos on items.

I am not really up to do this right now but it needs a hashtable that would store all of the stats, connected to a multiboard that shows those stats.
Sockets count as a stat that is replaced by the gem stat when socketed.
 
Level 23
Joined
Oct 20, 2012
Messages
3,075
"1. only certain items use gems"
-yep. Slotted ones. and whenever you refine an item, it will cost you refining stone (lumber) and lubricants (food)

"2. you can only have one gem per item"
-actually, one type of gem per item but with a max of 1 - 6 gems (depending on the slots) every item.

questions:
"1. is it needed to setup bonuses in a init trigger"
-I don't think so..

"2. what if you use a gem on a allready gemed item"
-If the item has it's slots maxed out (I mean all it's slots have an embedded gem), and the player tries to embed another gem, a dialog can pop up, a game message is displayed or simply nothing would happen..

"3. how should I show that a item is gemed?"
-if possible, in can be located in the tooltips of the item. ( Item Name - [][][][][][]) but if not, I guess It would have to be a multiboard.. I'll just delete some not-so-useful multiboards in my map.
 
Level 10
Joined
Jun 9, 2012
Messages
826
I have a request coming up, i'll send it later today since i don't have time to type cuz i'm out to school in a few minutes.

Edit: Do you allow spellpacks?

Okay I'm back. Here's a spellpack i need help with. It's a spellpack for my Phantom Archer hero.

Spectral Shot (Active) [Q]
The Phantom Archer fires a spectral arrow which goes in a line up to 1200 range. The arrow deals damage and slows down all enemies hit by the arrow for 5 seconds.
1. 120 damage and 15% movement speed slowed.
2. 170 damage and 30% movement speed slowed.
3. 240 damage and 45% movement speed slowed.
Cooldown: 30 / 20 / 10.
Mana cost: 75 / 100 / 125
Activation: Target point or unit
Wave Speed: 1200
Spell Side Notes:The arrow should be slightly transparent and when this spell is casted a voice is played by the Dark Ranger's YESAttack saying " Let phantom arrows fly" which can only be heard nearby.

Essence Strip (Active) [W]
The Phantom Archer marks her enemy with a curse for 10 seconds. While under this buff, any spell casted by the target will result in hit points penalty equal to (manacost of the spell casted X2) and the lost hit points are restored to the Phantom Archer.

Cooldown: 28 / 21 / 14
Mana cost: 25
Activation: Target unit Hero

Phantom Arrow (Passive) [E]
While attacking, the Phantom Archer has a chance to fire an additional arrow.
1. 20% chance.
2. 35% chance.
3. 48% chance.
Spell Side Notes: The arrow is shadow coloured and is spawned right behind the arrow fired by the Archer, which makes it look like the arrow's own shadow, making up to it's spell name.

Shadow Ma[r]k (Active)
Marks an enemy with the shadows, causing the enemy to take extra damage from attacks and spells alike. While under this curse, the target leaves behind a trail of shadow (which makes tracking easier) and after a duration of 30 seconds, the curse is lifted and the shadow spawned in the previous 30 seconds fades off.
1. 25% extra damage.
2. 50% extra damage.
Cooldown: 15.
Mana cost: 50
Activation: Target unit

By the way, feel free to use any custom models to make the sfx fit with the spell.
 
Last edited:
Level 2
Joined
Aug 28, 2008
Messages
9
Hey can I request a spell? this might sound a bit noobish, and i know there are so many pokemon maps out there. but my problems is, i'm not good at jass, ive been working on this map of mine "pokemon rpg" map, im having a problem with summoning ability of the trainer, and if can be done with gui please make it so... thank you very much...

unit begins casting an ability
conditions
Ability being cast equal to summon pokemon
Actions
Unit - Move (target unit of ability being cast) instantly to (Positin of (casting Unit)

thank you in advance

====================

and if you could include a return to pokeball trigger, catch and release, i will really be greatfull... I've been searching the forum for the this spell but to no avail,,,

I've only manage to make the catching skill to work but not this summon skill
if this can be done using gui please do so cause im just starting to make a new map
 
Level 2
Joined
Feb 17, 2013
Messages
4
so ill just post the system right?
if so, here it is

System Title: Floating Player Name Text
System Description: Displays the Name of the Player and the player's Color at the top of the unit (e.g. footman)
- The Floating Text Follows The Unit
 
Status
Not open for further replies.
Top