How to revive a unit

no what you are talking about is not reviving it but hiding it etc.

how to hide the unit and unhide it again is well known to me. the question was whether i can simply revive it and that is not possible. at least no one has given me a prove of it being possible.
To do something beyond the editor's capability you will have to make a work-around. The method of hiding IS that work-around.

Are you saying it's not possible to revive a unit "in a simple way"? Well obviously, seeing how the ability isn't there. We trigger things for that same reason.

Are you saying it's not possible to work around? That would be wrong. Very wrong. I have just illustrated a way to mimic the ability to a point where you couldn't tell the difference in-game. And that is the alternative to replacing units.

To be perfectly honest I don't even get the reason for this thread. Why isn't it sufficient enough just to replace the unit? And why are you so declining of help? What do you get from an answer that says "No it's not possible"?
 
To be perfectly honest I don't even get the reason for this thread. Why isn't it sufficient enough just to replace the unit? And why are you so declining of help? What do you get from an answer that says "No it's not possible"?

the certitude that it is not possible.

i am not a newbie with the editor, i did know before how to do a "work-around", thats why i havent asked how to make it look like the unit has been revived.
i myself want to know something, the answer to a question which is not easy as it seems.
i just want to find out all possibilitys of the world editor and i didnt know how to revive a normal unit and thatfor i asked. maybe it would be handy in future, maybe it may help other people reading this thread.

but it seems as if there is no way and therefor i have to create new units.

what this thread was good for?
i know a little bit more about the editor, even though only the number of known impossibilitys has increased its still useful in one way or another.
 
It's possible, I just made it. The only thing that isn't what you wanted is, that it saves the unit only when the damage taken is more than it's health.
So there's no way to register when it dies.

Anyway here's the library I created, you can configure some things there, the ability is a modified version of "Item Life Bonus" (it's value is set to 9999999).
There is a function you can call:

JASS:
call ReviveUnit(unit whichUnit, boolean showEyeCandy)


JASS:
library Revive initializer Init

globals
    private constant integer Health_ID = 'A000'
    private constant string Revive_Effect = "Abilities\\Spells\\Human\\Resurrect\\ResurrectTarget.mdl"
    private constant string Revive_Attach = "origin"
    
    public group Group = CreateGroup()
    private group GroupOnEnter = CreateGroup()
    private trigger Trigger = CreateTrigger()
endglobals

function ReviveUnit takes unit u, boolean showeyecandy returns nothing
    call SetUnitState(u,UNIT_STATE_LIFE, GetUnitState(u,UNIT_STATE_MAX_LIFE))
    call UnitRemoveAbility(u,Health_ID)
    call ShowUnit(u,true)
    call GroupRemoveUnit(Group,u)
    if showeyecandy == true then
        call DestroyEffect( AddSpecialEffectTarget(Revive_Effect,u,Revive_Attach))
    endif
endfunction

private function Conditions takes nothing returns boolean
    if GetEventDamage() >= GetWidgetLife(GetTriggerUnit()) then
        call SetUnitState(GetTriggerUnit(),UNIT_STATE_LIFE, GetUnitState(GetTriggerUnit(),UNIT_STATE_MAX_LIFE))
        call UnitAddAbility(GetTriggerUnit(),Health_ID)
        call GroupAddUnit(Group,GetTriggerUnit())
        call ShowUnit(GetTriggerUnit(),false)
        call KillUnit(CreateUnit(GetOwningPlayer(GetTriggerUnit()),GetUnitTypeId(GetTriggerUnit()),GetUnitX(GetTriggerUnit()),GetUnitY(GetTriggerUnit()),GetUnitFacing(GetTriggerUnit())))
    endif
    return true
endfunction

private function ReturnTrue takes nothing returns boolean
    return true
endfunction

private function onEnter takes nothing returns nothing
    if IsUnitInGroup(GetTriggerUnit(),GroupOnEnter) == false then
    
    endif
endfunction

private function Init takes nothing returns nothing
    local trigger t = CreateTrigger()
    local group g = CreateGroup()
    local unit f
    local region rectregion = CreateRegion()
    call RegionAddRect(rectregion,GetWorldBounds())
    call TriggerRegisterEnterRegion(t,rectregion,Condition(function ReturnTrue))
    call TriggerAddAction(t,function onEnter)
    
    call GroupEnumUnitsInRect(g,GetWorldBounds(), Condition(function ReturnTrue))
    
    loop
        set f = FirstOfGroup(g)
        exitwhen f == null
        call TriggerRegisterUnitEvent(Trigger,f, EVENT_UNIT_DAMAGED)
        call GroupAddUnit(GroupOnEnter,f)
        call GroupRemoveUnit(g,f)
    endloop
    call TriggerAddCondition(Trigger,Condition(function Conditions))
    
    set t = null
endfunction

endlibrary
 
Answer:

Simple:thup:

Events
Unit - A unit Dies
Conditions
NOne
Actions
Wait 20.00 game-time seconds
Hero - Instantly revive (Dying unit) at (Center of (Wherever you want)), Show revival graphics
:thup:
 
Simple:thup:

Events
Unit - A unit Dies
Conditions
NOne
Actions
Wait 20.00 game-time seconds
Hero - Instantly revive (Dying unit) at (Center of (Wherever you want)), Show revival graphics
:thup:
THIS won't work, please try out your code, before posting anything stupid.
 
@nexor: what you do with the jass trigger is just adding life and hiding it when it dies then unhiding the unit again if i call to revive it.
please correct me if i am wrong, i am not very familiar with jass but aint that exactly what we all were talking about in this thread for numerous times already?
 
There is no way to save a unit when it get's killed, only when it takes damage, because the "Takes damage" event runs around 0. seconds before the damage taken.

I added the bonus life to the unit, hid it, saved it and created a unit from the same type and killed it, to look nice.
I think it's a very clean and good method for this problem of yours.
If you want I can write you a custom KillUnit function, that will give the unit to the Revive_Group.
 
Have you tried Nenad's suggestion of using ancestral spirit? I think that can work.
 
Yeah I tried, but it only works with units of the classification Tauren.
And even if they die, it seems, that I can't change the dying unit's classification
 
Simple:thup:

Events
Unit - A unit Dies
Conditions
NOne
Actions
Wait 20.00 game-time seconds
Hero - Instantly revive (Dying unit) at (Center of (Wherever you want)), Show revival graphics
:thup:

You know what's interesting about this idea? If you wanted, you could just revive the unit, hide him, then move him where you want and unhide him when he's ready for battle again. It's actually one of the most simple ideas here, and would be completely successful if that's what you were looking for Acc.
 
You know what's interesting about this idea? If you wanted, you could just revive the unit, hide him, then move him where you want and unhide him when he's ready for battle again. It's actually one of the most simple ideas here, and would be completely successful if that's what you were looking for Acc.

first of all this thread is pretty old, dont revive graveyarded threads.

and i guess you didnt know that the trigger you have quoted doesnt work, normal units cannot be revived by an action to revive hero units, thats the difference between normal and hero units.
 
first of all this thread is pretty old, dont revive graveyarded threads.

and i guess you didnt know that the trigger you have quoted doesnt work, normal units cannot be revived by an action to revive hero units, thats the difference between normal and hero units.

This is doable, but you will have to make sure that NONE of the units decay. This can cause lag in the map depending on how many units you intend to use this for.

To do this I would create a dummy unit that has a hero ability revive (with 0 mana cost and no cool down and range of 1 AoE 1 max unit revived ect.) The dummy unit is created right above the dead unit and casts immediately.

In order to time the event, I would add an expiration timer to a another dummy unit of a different type. Then when it dies, create the revive dummy unit.

I'm sure there are other ways of doing this that may be simpler.
Also, this will cause you map to lag horribly and if you do not trigger it correctly there will be many leaks (causing greater lag).
 
thank you but first of all this trigger is pretty old and i know how to do a work around this...
 
and i guess you didnt know that the trigger you have quoted doesnt work, normal units cannot be revived by an action to revive hero units, thats the difference between normal and hero units.

I was not aware the unit you were reviving was a normal unit. I looked up this old post because I was looking to do something like you. But in my case, I was reviving a hero unit (heroes for the sake of distinguishing and reviveable capabilities). I have run into other difficulties--such as trying to imitate a normal death (especially since the hero death seems to glitch every time leaving a ghost behind), and I think I have finally succeeded, just need some fine-tuning. Anyway, that was why I looked this up, and I found that his solution works fine for heroes (in case some other JASS amateur comes looking here for a solution)
 
You can use the Hero - Revive for normal units as well, that way they dont lose abilities you have given them etc... Now, I dont think it would work once the unit has decayed, so you probably need to change the gameplay constant for decay if you need to wait too long.

WOOOOOOOOOOOOOOOOOOAH!

I never knew you can revive non-hero units.
awesome...

lame...
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    I just disabled that test site. Let's see if that helps the load.
  • Ghan Ghan:
    Looks much better already.
  • The Helper The Helper:
    I had actually forgot about the Silkroad site. I had asked
  • The Helper The Helper:
    SD Ryoko about it and he said the couple of people left on there really like it, that was a few years ago, maybe I should check back
  • jonas jonas:
    I guess when you're getting old, and the last day of soup season draws near, you start wondering
  • jonas jonas:
    will I make it to the start of the next season? or was this the last time I'll ever have my favorite dish?
  • The Helper The Helper:
    I am doing my first Vibe Coding project. In installed the environment and tools according to instructions but it is all chat doing this for me at my direction. It is fun really and holy shit I might finish in 2 hours what it would have taken a day to in my Access and this would be an electron app complete new
  • Ghan Ghan:
    Good stuff.
  • Ghan Ghan:
    Just make sure it is secure. :)
    +1
  • The Helper The Helper:
    It will only be on internal network
  • jonas jonas:
    Man the AI is good about gaslighting about security though. I've had several times where I pointed out security problems and it tried to convince me that with a tiny tweak it suddenly becomes secure
  • jonas jonas:
    Like using a distrobox as a "secure" container, and when I point out that's not secure at all, it claimed that specifying home will make it secure
  • The Helper The Helper:
    Yeah I finished the app today and it is bad ass. Like ChatGPT codes way better and faster than me that is for sure. The app is unsecure AF though and I would never put it anywhere it was obvious. I did not even show it today, the boss never made it in, but I showed the office and they liked it and frankly, I do software for a living and I am qualified to judge this kind of stuff and... Holy Shit this is a game changer. It took me around 4 hours to finish the app from design to end and that is much faster than I could have done it in the outdated MS Access the thing it replaced was in. Good Stuff! Had tons of fun doing it too! Work has not been fun in a while - today was fun!
    +1
  • The Helper The Helper:
    And really, I did not do it, chat wrote all the code I just pasted it in, tested it, acted like Chats eyes on it and just learned. I learned VS Code, how to use the Terminal and a bunch of Powershell and Command stuff, I used Git for the first time and learned how to save, search, start my server, stop it, run the tests, do some debugging - all the freaking fun stuff - chat wrote all the code
    +1
  • The Helper The Helper:
    I think the key was the 40 minutes of that 4 hours that went into the design of it. The thing was fully specced out before we started and the only reason it took so long was I had never done any of it and had to get used to the navigation and workflow.
    +1
  • The Helper The Helper:
    React, JS and AG Grid are the tools that I know i used along with git. I learned alot but it will be a minute before I fully understand everything I am doing in these environments because I am really just following instructions.
    +1
  • jonas jonas:
    I think people who aren't logged in can't even see this chat, so your message letting them know they won't be able to register is also hidden xP
  • jonas jonas:
    but yeah on LLM they're pretty capable now, I used opencode to build a custom agent for some tasks I face, and the custom agent ended up doing better than either opencode or specialized tools that have been developed for 20 years by humans
  • jonas jonas:
    at the same time it is so stupid and making insanely dumb mistakes, I had to stop it several times from doing really dumb things that would work for just a few cases but would be totally broken for more serious workloads, or sometimes were always broken (like just drop some responses from the LLM, then continue with some fake message) but would not trigger immediate problems
  • jonas jonas:
    I had to babysit it a lot, I'm not sure if in the near future better models will come around at a similar price point. If the price increases by more than 10x, it will be cheaper for me to do it myself again
  • The Helper The Helper:
    I use it a little different due to my programming background. I dont let it just do it. I am behind it watching what it does and learning. However, Chat has not been making many mistakes. Mostly it is me pasting wrong or something.
  • The Helper The Helper:
    Wow, I have left windows behind on my home pc. I am not using Linux Mint babies
  • Ghan Ghan:
    Nice
  • Ghan Ghan:
    Fewer and fewer reasons to use Windows these days.
  • The Helper The Helper:
    Had to type my password like 50 times already though

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials
      Top