Staredit Network > Forums > Modding Assistance > Topic: [help pls] Dark Templar decloak when attack - code malfunction
[help pls] Dark Templar decloak when attack - code malfunction
Aug 12 2019, 2:30 pm
By: Lagi  

Aug 12 2019, 2:30 pm Lagi Post #1



below code make Dark Templar become visible when he receive order to Attack.
Basing his invisiblity is very crude and is one big exploit. I would like DT to Decloak when he make attack (not when receive order).

someone has any advice/idea/ready to copypaste code how to limit DTemp cloak elegant?

also its cause bug: when warp into Dark Archon, DA become permanently cloaked.


//decloak Dark Templar when attacking /*unit->orderSignal & 0x20*/

if(unit->id == UnitId::ProtossDarkTemplar &&
!(unit->mainOrderId == OrderId::AttackUnit)){
unit->secondaryOrderId = OrderId::Cloak;
}
if(unit->id == UnitId::ProtossDarkTemplar &&
unit->mainOrderId == OrderId::AttackUnit){
unit->secondaryOrderId = OrderId::Decloak;
}

//decloak Dark Templar when attacking[/code]



edit
i try this one, but it doesnt work
//decloak Dark Templar when attacking /*unit->orderSignal & 0x20*/
if(unit->id == UnitId::ProtossDarkTemplar && unit->orderSignal & 0x20 &&

(unit->sprite->mainGraphic->animation == IscriptAnimation::GndAttkRpt
|| unit->sprite->mainGraphic->animation == IscriptAnimation::GndAttkInit)) {
unit->orderSignal &= ~(0x20);
unit->secondaryOrderId = OrderId::Decloak;
}


Post has been edited 2 time(s), last time on Aug 13 2019, 7:15 am by Lagi.



None.

Aug 16 2019, 4:31 pm Lagi Post #2



below works good. only this stim timer is clunky (increase attack speed :/ ), will try other timers after.

and need confirm warp to Darchon bug if still occur.

//decloak Dark Templar when attacking
if(unit->id == UnitId::ProtossDarkTemplar && unit->hitPoints > 0 )
{
if (unit->stimTimer <1){
unit->secondaryOrderId = OrderId::Cloak;
}

if ((unit->sprite->mainGraphic->animation == IscriptAnimation::GndAttkRpt
|| unit->sprite->mainGraphic->animation == IscriptAnimation::GndAttkInit)
|| (unit->mainOrderId == OrderId::WarpingDarkArchon))
{
unit->secondaryOrderId = OrderId::Decloak;
unit->stimTimer = 5;
}



}




None.

Aug 19 2019, 3:20 am Corbo Post #3

ALL PRAISE YOUR SUPREME LORD CORBO

Try this code:

Code
if (unit->id == UnitId::ProtossDarkTemplar){
                if (unit->mainOrderId == OrderId::AttackMove || unit->mainOrderId == OrderId::AttackUnit){
                    unit->setSecondaryOrder(OrderId::Decloak);
                } else {
                    unit->setSecondaryOrder(OrderId::Cloak);
                }
            }


You will need to uncheck the "Permanently Cloaked" box in units.dat for the Dark Templar unit, though.
Also you can add your dark archon thing if you wish. I did not really understand what you wanted there.



fuck you all

Aug 19 2019, 7:13 am Lagi Post #4



Hi Corbo,

I test the cloak/decloak with order:

1. DT become visible when he receive order being away from target (instead being invisible until he do the melee attack)



2. you increase micro with attack / stop dance. Because DT become invisible back immediately.



i need a timer to delay becoming cloak - I check almost all of them, and all have additional feature (ensmare slow templars down, stim speed up f.ex.)



None.

Aug 19 2019, 7:46 am Lagi Post #5



this seems to work, need some more testing

//decloak Dark Templar when attacking
if(unit->id == UnitId::ProtossDarkTemplar && unit->hitPoints > 0 )
{
if (unit->rankIncrease>0){//cooldown
unit->rankIncrease--;
}

if (unit->rankIncrease==0)
unit->secondaryOrderId = OrderId::Cloak;



if ((unit->sprite->mainGraphic->animation == IscriptAnimation::GndAttkRpt
|| unit->sprite->mainGraphic->animation == IscriptAnimation::GndAttkInit)
|| (unit->mainOrderId == OrderId::WarpingDarkArchon))
{
unit->secondaryOrderId = OrderId::Decloak;
unit->rankIncrease = 60;
}



}




None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[03:23 am]
Wing Zero -- Its awesome
[03:23 am]
Wing Zero -- Canadian cookies smell like maple syrup
[03:08 am]
jjf28 -- well I'm satisfied enough to leave it http://www.staredit.net/topic/17877/ if anyone interested gets lost somewhere I'll be happy to update the guide
[09:14 pm]
Suicidal Insanity -- science, such as at what temperature do you cook a steak?
[08:04 pm]
jjf28 -- it's where we all raid Heinermann's apartment for Canadian snacks and perform science o.o
[08:02 pm]
dumbducky -- Also wtf is SENCon?
[08:02 pm]
dumbducky -- KrayZee
KrayZee shouted: What happened to his latova website?
THe people demand answers
[11:02 am]
Pr0nogo -- woah, you can't call me an h for being g
[10:06 am]
Suicidal Insanity -- If you are going there .... and kids :P
[06:55 am]
IlyaSnopchenko -- And chicks
Please log in to shout.


Members Online: Roy, Doodan, Wing Zero, rompo43253, 4alicec4723ec7