Staredit Network > Forums > Modding Assistance > Topic: Creating a summon ability
Creating a summon ability
Aug 2 2021, 5:36 pm
By: Netbek  

Aug 2 2021, 5:36 pm Netbek Post #1



I want to create a summon ability. Like this:
1) costs energy
2) unit plays animation
3) at certain point in animation, summoned unit appears

What is a good dummy ability to base this on? I experimented with burrow, but ran into issues.
Step 3) is NOT the issue, I know how to do this with GPTP.




Aug 2 2021, 7:56 pm Voyager7456 Post #2

Responsible for my own happiness? I can't even be responsible for my own breakfast

Rather than basing it on an ability at all, I'd recommend using the "Carrier Stop" or "Reaver Stop" orders. These are pretty useful for actions where you just want the player to press a button and have something happen.

Here's a skeleton of what that might look like:

Code
if(unit->mainOrderId == OrderId::CarrierStop) {
        unit->orderToIdle();
        if(unit->energy < 25600) {
            scbw::showErrorMessageWithSfx(unit->playerId, 864, 158);
        }
        else {
            //do stuff here
        }
    }


You will need to make sure that you edit the requirements for the Carrier Stop order so that your unit can use it.

As far as playing an animation goes, you can use unit->sprite->playIscriptAnim() to do that, and the sigorder iscript opcode to communicate back to GPTP. So perhaps our code might look something like this:

Code
if(unit->mainOrderId == OrderId::CarrierStop) {
        unit->orderToIdle();
        if(unit->energy < 25600) {
            scbw::showErrorMessageWithSfx(unit->playerId, 864, 158);
        }
        else {
            unit->sprite->playIscriptAnim(IscriptAnim::CastSpell, true);
        }
    }
else if (unit->orderSignal == 16) {
       //summon the unit here
    }


And our iscript something along these lines:

Code
    playfram               0x11     # Frame set 12
    wait                   1
    playfram               0x22     # Frame set 2
    sigorder                16
    wait                    1
    playfram                0x33
       wait                    1


to ensure that we summon the unit at the appropriate point in the animation.



all i am is a contrary canary
but i'm crazy for you
i watched you cradling a tissue box
sneezing and sniffling, you were still a fox


Modding Resources: The Necromodicon [WIP] | Mod Night
My Projects: SCFC | ARAI | Excision [WIP] | SCFC2 [BETA] | Robots vs. Humans | Leviathan Wakes [BETA]


Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[01:39 am]
Ultraviolet -- no u elky skeleton guy, I'll use em better
[10:50 pm]
Vrael -- Ultraviolet
Ultraviolet shouted: How about you all send me your minerals instead of washing them into the gambling void? I'm saving up for a new name color and/or glow
hey cut it out I'm getting all the minerals
[10:11 pm]
Ultraviolet -- :P
[10:11 pm]
Ultraviolet -- How about you all send me your minerals instead of washing them into the gambling void? I'm saving up for a new name color and/or glow
[2024-4-17. : 11:50 pm]
O)FaRTy1billion[MM] -- nice, now i have more than enough
[2024-4-17. : 11:49 pm]
O)FaRTy1billion[MM] -- if i don't gamble them away first
[2024-4-17. : 11:49 pm]
O)FaRTy1billion[MM] -- o, due to a donation i now have enough minerals to send you minerals
[2024-4-17. : 3:26 am]
O)FaRTy1billion[MM] -- i have to ask for minerals first tho cuz i don't have enough to send
[2024-4-17. : 1:53 am]
Vrael -- bet u'll ask for my minerals first and then just send me some lousy vespene gas instead
[2024-4-17. : 1:52 am]
Vrael -- hah do you think I was born yesterday?
Please log in to shout.


Members Online: Roy