• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

[General] Exchange item system with gates

Status
Not open for further replies.
Level 13
Joined
Sep 11, 2013
Messages
467
Greetings folks!
I've made a new exchange item system, but i think is just impossible to make it perfect with all my requiremets..

So.. I wonder if you can tell me if what i want is possible or not..

I tried multiple times, but seems to be impossible.


I.You only need to exchange those 2 items, but with few rules..

Requirements:
1.All 4 gates must be able to open/close via triggers ONLY with those 4 levers.
a.The Map must start only with the original positions of paladins/items/gates/leavers/terrain
b.Don't create or put other units/items/doodads/destructible/abilities/terrain/regions in the map
c.Don't use triggers for teleport paladins/items/destructible
d.Don't make the paladins able to fly or pass the gate if the gate is closed


2.There must be at least 1 way to prevent trolling(those paladins must NOT remain stuck between the gates(even if someone try to troll)

3.Those paladins must NOT be able to cross the other side of the gates and meet each other

4.the process of exchange items must be able to reset and repeat.



Again, I have no ideea if that is possible..

Thanks for your help!
 

Attachments

  • Lever_mess_simple.w3m
    46.1 KB · Views: 7
Level 13
Joined
Sep 11, 2013
Messages
467
I don't understand, you didn't describe a sequence how to trade. What are the steps there? Finally The XY Problem
You can do it however you want as long as you respect those rules..

Ideal solution must be like this:
2 gates will open diagonally
1 item will be put between the first 2 gates and the other one item will be put between the last 2 gates.
then open the other 2 gates diagonally and the first 2 gates will be closed and the last 2 diagonally gates will be open, but this will not respect all rules because you can pass the other side of the gates with paladin.

There must be other solution, but i am not sure if there is any solution with those rules..
 
Last edited:

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
Hm see if BossBattle (the map) has a trading system that would fit you. It's completely scripted, no unit movement. Each player has a dedicated room (there are 4) and the trading is done by clicking the abilities (since Reforged) to put/take items and to complete trade.
Do you understand what he wants? I'm confused but it sounds like it could be pretty simple.

@AtivEnergy Perhaps some pictures would help.
 
Last edited:
Level 13
Joined
Sep 11, 2013
Messages
467
@AtivEnergy Perhaps some pictures would help.
Well.. I just found the solution! I'll post the solution on this post for everyone which is interested.
I don't know how to use pictures to make it simple.. but anyway, now is fixed.

However now i have a new problem and i think it's a bug..
  • Torch Problem
    • Events
      • Unit - A unit Loses an item
    • Conditions
    • Actions
      • Unit - Create 1 Torch for (Triggering player) at (Position of (Last dropped item)) facing (Position of (Triggering unit))
This trigger will create my unit just in center of the map and i don't know why.. I know how to make it without leaks, but here is just for fast test.
I want to have an item that create light(vision like a unit) for triggering player only when the hero drop the item on the ground and that unit must be created in the middle of the dropped item. Why it doesn't work?
 

Attachments

  • Lever_mess_simple.w3m
    52 KB · Views: 4

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
Well.. I just found the solution! I'll post the solution on this post for everyone which is interested.
I don't know how to use pictures to make it simple.. but anyway, now is fixed.

However now i have a new problem and i think it's a bug..
  • Torch Problem
    • Events
      • Unit - A unit Loses an item
    • Conditions
    • Actions
      • Unit - Create 1 Torch for (Triggering player) at (Position of (Last dropped item)) facing (Position of (Triggering unit))
This trigger will create my unit just in center of the map and i don't know why.. I know how to make it without leaks, but here is just for fast test.
I want to have an item that create light(vision like a unit) for triggering player only when the hero drop the item on the ground and that unit must be created in the middle of the dropped item. Why it doesn't work?
You can get the position of the unit that dropped the item. Warcraft 3 Events are finicky and don't always occur when you'd expect them to.
 
Level 24
Joined
Feb 27, 2019
Messages
833
Items are not truly considered lost until a frame later. To get to the next frame one can start a timer at 0.00 seconds. If one is a noob and doesnt care about the quality of their map they can use a wait of 0.00 seconds instead which technically works but adds a noticeable delay.
  • Lose Item
    • Events
      • Unit - A unit Loses an item
    • Conditions
    • Actions
      • Set VariableSet LI_Index = (LI_Index + 1)
      • Set VariableSet LI_Item[LI_Index] = (Item being manipulated)
      • Set VariableSet LI_Player[LI_Index] = (Owner of (Triggering unit))
      • Countdown Timer - Start LI_Timer as a One-shot timer that will expire in 0.00 seconds
  • Lose Item Timer Expires
    • Events
      • Time - LI_Timer expires
    • Conditions
    • Actions
      • For each (Integer LoopA) from 1 to LI_Index, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (LI_Item[LoopA] is owned) Equal to False
              • (Item-type of LI_Item[LoopA]) Not equal to (Item-type of No item)
            • Then - Actions
              • Set VariableSet TempPoint = (Position of LI_Item[LoopA])
              • Unit - Create 1 Footman for LI_Player[LoopA] at TempPoint facing 0.00 degrees
              • Custom script: call RemoveLocation(udg_TempPoint)
            • Else - Actions
          • Custom script: set udg_LI_Player[udg_LoopA] = null
          • Set VariableSet LI_Item[LoopA] = No item
      • Set VariableSet LI_Index = 0
 
Status
Not open for further replies.
Top