Pickpocket passive spell - need help

b_ray210

Active Member
Reaction score
1
Hey guys,

I've have tried to make this skill and it just fails miserably because i am a complete noob with WE. I am trying to make a spell that steals gold from the unit you are attacking when you are behind him. For heroes it should be stealing 20 gold per hit and from units it should be 5 gold per hit. Against heroes it should actually "steal" the gold meaning that their gold goes down by 20 and yours goes up by 20. Against units it should just add to your gold. Does anyone know a somewhat easy way to make this?
 

Kazuga

Let the game begin...
Reaction score
110
Think something like this would work.
Code:
Untitled Trigger 008
    Events
        Unit - A unit Is attacked
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                And - All (Conditions) are true
                    Conditions
                        (Facing of (Attacked unit)) Less than ((Facing of (Attacking unit)) + (180.00 + 45.00))
                        (Facing of (Attacked unit)) Greater than ((Facing of (Attacking unit)) + (180.00 - 45.00))
            Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        ((Attacked unit) is A Hero) Equal to True
                    Then - Actions
                        Player - Add -20 to (Owner of (Attacked unit)) Current gold
                        Player - Add 20 to (Owner of (Attacking unit)) Current gold
                    Else - Actions
                        Player - Add 5 to (Owner of (Attacking unit)) Current gold
            Else - Actions
Only problem though is that this triggers before the unit is hit. If you want to solve that you have to use the event "Unit takes damage", but that's a little tricky and you probably need to add the event to the trigger to even use that.
 

b_ray210

Active Member
Reaction score
1
What is the condition, "facing of" under?
by the way thank you soo much, + rep

EDIT: nevermind i found it

EDIT: Doesn't work! It gives me gold when i attack the unit from the front.
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,495
> (Facing of (Attacked unit)) Less than ((Facing of (Attacking unit)) + (180.00 + 45.00))
> (Facing of (Attacked unit)) Greater than ((Facing of (Attacking unit)) + (180.00 - 45.00))

Well, a unit is in the back (and looking at it) if both facings are nearly identical.
This 180 there is clearly wrong...

Additionally, this also fails miserably around 0.
I.e. if my facing is 1 degree and my target faces 359, we're within 2 degrees. And yet this would miss.



set myReal = Abs(Mod(<Facing of unit 1> - <Facing of unit 2> + 360.0, 360.0))
if (myReal less than or equal to 45.0) or (360.0 - myReal less than or equal to 45.0) then
 

Kazuga

Let the game begin...
Reaction score
110
Ah sorry, was a bit in a rush when making that.. Thanks AceHart for pointing it out and solving it.;)
 

b_ray210

Active Member
Reaction score
1
Can someone help me?, i tried to copy it but i cant figure out how you get it (Abs(Mod...
ive looked through everything. It would be really helpful if you could tell me the path to find it.
 

b_ray210

Active Member
Reaction score
1
Yeah i saw that but i couldn't get them together like you did. because you always need something before mod, and i tried to put abs before but you need something after abs to clear it. If you could just give me a step by step on that one that'd be perfect.
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,495
Abs(Mod(<Facing of unit 1> - <Facing of unit 2> + 360.0, 360.0))


"set variable",
left side: your variable... :p

right side:
Math - Abs,
change the value to "Math - Mod",
the "right" value to mod will simply be 360,
the left one starts with "arithmetic", change +1 to 360, "value" to "arithmetic" one more time, turn "value + 1" into "facing - facing".

Good luck.
 

b_ray210

Active Member
Reaction score
1
Set PSReal = (Abs((((Facing of (Attacking unit)) - (Facing of (Attacked unit))) mod 360.00)))

Thanks for trying to explain step by step but this is as close as i could get :(

i think the part that i screwed up on was when you said change "value" cause i never saw the "value + 1" arithmetic , it was always 1 + 1.
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,495
It does?

Hm...

Yep, it does.
Arithmetic on "real" give you "1.00 + 1.00" by default...

Well, just assume "value" would be the left 1.00.


With the line you have, click on "facing of attacked unit" until you can change it, then use "aritmetic" there to add the +360.
 

b_ray210

Active Member
Reaction score
1
Set PSReal = (Abs((((Facing of (Attacking unit)) - ((Facing of (Attacked unit)) + 360.00)) mod 360.00)))
So this would be it then? It still isnt the same as your first one but it seems like you know what you're doing haha. Would this be good enough? Ill post again once ive finished implementing it into the trigger to tell you if it works or not.

EDIT: IT WORKS! thanks soo much AceHart you're awesome!
 
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