Staredit Network > Forums > Modding Assistance > Topic: Eisetley's C++ and iscript questions festival.
Eisetley's C++ and iscript questions festival.
Dec 5 2015, 11:51 am
By: Eisetley  

Jan 29 2016, 7:28 pm UndeadStar Post #21



Instead of "unit->carrier.inHangarCount < 5" it should be "(unit->carrier.inHangarCount + unit->carrier.outHangarCount) < 5
The queue being stuck is perfectly logical without that, even if it's less obvious for a reaver than for a carrier.




Jan 29 2016, 7:38 pm Eisetley Post #22



Nope, the queue still gets stuck, the only difference is that reaver gets an order when the scarab explodes, not when it's fired.



None.

Jan 29 2016, 8:59 pm KYSXD Post #23



I know isn't a fix, but...

Quote
//Auto building scarabs and interceptors
if (unit->id == UnitId::reaver || unit->id == UnitId::warbringer)
{
if ((unit->carrier.inHangarCount + unit->carrier.outHangarCount) < 5)
unit->buildQueue[unit->buildQueueSlot] = UnitId::scarab;
if (unit->buildQueue[unit->buildQueueSlot] != UnitId::None)
unit->setSecondaryOrder(OrderId::TrainFighter);
}

In other things, have you tried with OrderTo?




Jan 30 2016, 10:09 am Eisetley Post #24



Yep, doesn't work.



None.

Jan 30 2016, 12:08 pm Neiv Post #25



Quote from Eisetley
@Neiv
That would require some reverse engineering, right? I'm not really familiar with this.

Well, that one's really simple, just add a functions like this to somewhere they would fit
(Look at the various hook/inject files for example or just place them in one of them)
Code
u32 __stdcall isUnselectable(int unit_id) {
 using namespace UnitId;
 switch (unit_id) {
   case nuclear_missile:
   case scarab:
   case Spell_DarkSwarm:
   case Spell_DisruptionWeb:
   case Special_UpperLevelDoor:
   case Special_RightUpperLevelDoor:
   case Special_PitDoor:
   case Special_RightPitDoor:
     return 1;
   default:
     return 0;
 }
}

u32 __declspec(naked) isUnselectableWrapper() {
 __asm {
   push ecx
   push edx
   movzx eax, ax
   push eax
   call isUnselectable
   pop edx
   pop ecx
   ret
 }
}



And add a hooking call somewhere there as well, so the new code will be run.
Code
 jmpPatch(isUnselectableWrapper, 0x0046ED80);


Post has been edited 3 time(s), last time on Jan 30 2016, 6:04 pm by Neiv.



None.

Jan 30 2016, 4:34 pm Eisetley Post #26



Neiv, it crashes the game when I select any unit (instantly or after a few seconds). Are you sure it's for 1.16.1?
I decided to sacrifice disruption web and give it collision, because that's probably the only way to make forcefields fully functional. This isn't that bad, because spells like scanner sweep or disruption web can be easily recreated using scbw::CreateUnit(). There are two minor issues when it goes to forcefields. Despite their elevation settings in units.dat they are always above other ground units and this looks weird when for example an archon stands near it. The other one is a little delay between you click and order execution. Maybe has something to do with orderTimer.

A few cool things going on here. All units entering Guardian Shield get an overlay, units hit by psistorm get the energy sparks overlay (need to do 3 variants of sparks overlay and randomize it to make it look cooler). Added a little block of code that pushes away units when a forcefield is placed (you can see a zergling get pushed back at about 0:18).



None.

Jan 30 2016, 5:17 pm Neiv Post #27



Oops, my bad. I didn't check if it worked with optimizations enabled and wasn't too familiar with the way GPTP generally does hooks. I edited the code with a version that should work.

Disruption webs have their elevation hardcoded to 11. The code that does that is located at 004F6AF0 but you can also just manually set sprite->elevation if that's easier.



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[2024-4-14. : 9:21 pm]
O)FaRTy1billion[MM] -- there are some real members mixed in those latter pages, but the *vast* majority are spam accounts
[2024-4-14. : 9:21 pm]
O)FaRTy1billion[MM] -- there are almost 3k pages
[2024-4-14. : 9:21 pm]
O)FaRTy1billion[MM] -- the real members stop around page 250
[2024-4-14. : 9:20 pm]
O)FaRTy1billion[MM] -- look at the members list
[2024-4-12. : 12:52 pm]
Oh_Man -- da real donwano
da real donwano shouted: This is the first time I've seen spam bots like this on SEN. But then again, for the last 15 years I haven't been very active.
it's pretty common
[2024-4-11. : 9:53 pm]
da real donwano -- This is the first time I've seen spam bots like this on SEN. But then again, for the last 15 years I haven't been very active.
[2024-4-11. : 4:18 pm]
IlyaSnopchenko -- still better than "Pakistani hookers in Sharjah" that I've seen advertised in another forum
[2024-4-11. : 4:07 pm]
Ultraviolet -- These guys are hella persistent
[2024-4-11. : 3:29 pm]
Vrael -- You know, the outdoors is overrated. Got any indoor gym and fitness equipment?
[2024-4-10. : 8:11 am]
Sylph-Of-Space -- Hello!
Please log in to shout.


Members Online: Roy, armitage