Staredit Network > Forums > Modding Discussion > Topic: [Source] GPTP - SC:V plugins.
[Source] GPTP - SC:V plugins.
Jan 3 2016, 4:15 am

May 1 2019, 4:10 pm KYSXD Post #21

Quote from lucifirius
How did you do the zealot charge?

Basically, I use the unit's energy as a counter for the charge ability. If the energy is full and the target is in range I set energy to 0 and set the unit's stim timer to the value I want.

Quote from lucifirius
Where is the code for the stalker blink?
Where is the code for the psionic transfer?

Here I have a namespace with all the available plugins implemented via game-loop.

Quote from lucifirius
What exactly is meant by "improved shield regen"?

By default, SC:BW regenerates shields at a fixed rate. The "improve" I added is the SCII behaviour: If the unit is not attacked within X seconds (using a unit's value as a timer) recharge the shields (with a bigger rate than the SC:BW default). Here you can take a look to some of the changes I made to make it work.

Quote from lucifirius
What changes in Firegraft do I have to make to implement the charge, blink, and transfer?

That's a tricky one... I do not remember :bleh:
I think the changes in GPTP should do the work.

For the blink and transfer you may need a button to trigger the plugin's behavior.

Maybe I should write more tutorials to explain how the plugins work, but I do not know if it is worth the effort as I don't see many people using the already written (or asking for others).

May 2 2019, 12:31 am lucifirius Post #22

Many thanks!

I guess I can't have everything handed to me and I'll have to figure things out :P


Aug 22 2019, 7:41 am Lagi Post #23

for the Burrow movement to give nice single button for unburrow / burrow. I create 2x button set in firegraft (for zergling and samir duran(burrow zergling)) and replace the button set as the zergling burrow.

samir duran button set, when zergling use burrow movement

//KYSXD - Burrow movement start
void runBurrowedMovement(CUnit *unit) {
if(unit->id == UnitId::ZergZergling &&
scbw::hasTechResearched(unit->playerId, TechId::UnusedTech26) &&
unit->playerId == *LOCAL_HUMAN_ID)
if(unit->mainOrderId == OrderId::Burrow) {
unit->_unused_0x106 = (u8)true;
unit->currentButtonSet = UnitId::Hero_InfestedDuran;

&& unit->status & UnitStatus::Burrowed
&& unit->status & UnitStatus::CanNotReceiveOrders) {

unit->status &= ~UnitStatus::Burrowed;
unit->status &= ~UnitStatus::CanNotReceiveOrders;
unit->status |= UnitStatus::IsGathering;

unit->flingyMovementType = 0;
unit->flingyTopSpeed = 853; //match templar. 1280 default by KSYXD
unit->flingyAcceleration = 27; //128
unit->flingyTurnSpeed = 40;

&& unit->mainOrderId != OrderId::Unburrow
&& unit->sprite->mainGraphic->animation != IscriptAnimation::Burrow) {

&& OrderId::Attack1 <= unit->mainOrderId
&& unit->mainOrderId <= OrderId::AttackMove) {
if(unit->orderTarget.unit) {
unit->orderTo(OrderId::Move, unit->orderTarget.unit);
else if(unit->
&& unit-> {
unit->orderTo(OrderId::Move, unit->, unit->;
else unit->orderTo(OrderId::Nothing2);

if(unit->mainOrderId == OrderId::ReaverStop
&& unit->_unused_0x106) {
unit->_unused_0x106 = (u8)false;
unit->currentButtonSet = UnitId::zergling;

unit->status &= ~UnitStatus::IsGathering;
unit->status |= UnitStatus::Burrowed;
unit->flingyMovementType = 2;

} //KYSXD - Burrow movement end


  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[02:47 am]
KrayZee -- Yaaay!
[11:54 pm]
MTiger156 -- :wob: :wob:
[11:38 pm]
RIVE -- :wob:
[11:10 pm]
Zycorax -- :wob:
[2019-12-10. : 2:26 pm]
Lingie -- :wob:
[2019-12-10. : 2:25 pm]
Lingie -- Shit, I'm late!
[2019-12-10. : 1:14 pm]
[2019-12-10. : 1:53 am]
RIVE -- Employers be kink shaming.
[2019-12-09. : 10:01 pm]
MTiger156 -- wut.....
Please log in to shout.

Members Online: Roy, geovannindaniels, amuropo, Dem0n, MTiger156