Page 3 of 4

Posted: Wed Apr 04, 2012 7:22 pm
by ranmakun
Thank you for the help Ravenwolf, sorry for the late in answer, i've been working and studying and i have not had much time, now, i create a new topic for my mod: Ultimate Starcraft, i need help with plugins .. :( its some hard to me .. :( Help Meee, Thnks !! :D

Posted: Sun May 27, 2012 4:53 pm
by RavenWolf
New version is available on the moddb page.

I have added new mechanics, such as separately rally points for zerg workers and SCV auto repair command, fixed some bugs, made a lot of balance changes, and added some of the suggestions of Hercanic (thanks for the feedback btw).

Infested terrans where reintroduced with a different concept. Barracks can be infested instead of Command Center.

This version also use the new exe edits added by pastelmind to minimize some random aspects of the game, and new damage formula to improve shields and armor.

Posted: Sat Nov 03, 2012 4:06 am
by pastelmind
Nicely done. I like the way you implemented auto-repair, it's much better than how I did it. Having a SCV on Hold moving around feels a bit weird, though.

I found two bugs:
* Stomraven's Electrostatic Discharge cannot be researched or used.
* Citadel of Adun does not have a "Cancel Research" button, meaning you cannot cancel researching Psi Rage using a keyboard shortcut.

Also some questions...

Q1. How did you implement baneling's explode-on-death? I've never been able to do it myself.

Q2. Is Burst damage identical to Explosive damage? What is its purpose?

Q3. Why was the Siege Tank's minimum attack range increased?

Q4. Siege Tank randomly singing on Siege Mode is cool but annoying in large mech armies. Maybe reduce it to play only 10% of the time?

Q5. Sentries and Banelings seem underpowered for cost. Could you reveal specific unit stats (attack, damage type, cooldown, unit speed, etc.) on the mod page?

Q6: The default AI is very easy. How about using some BWAI scripts in your mod?

Q7: Tooltip text is too hard to read. Please change dark-grey text to orange, pink, etc.

Q8: Infested Terran is even more useless than what it used to be :( How about giving it 5 seconds build time, low speed? The idea is to allow the Zerg to spam infested terrans until the enemy decides to kill the infested barracks, but make them slower so that you can't win a game with mass infested terran rush.

Posted: Sat Nov 03, 2012 6:08 pm
by RavenWolf
I just used the hold on command because the button stay white when its active, so you have some way to identify when the SCV is in auto repair mode without using other button set. Now that I can add/remove overlays with the functions that you have posted I can replace it with some wrench image hovering over the scv, and the button can be called toggle auto repair on/off.

Electrostatic Discharge is a passive buff (just like the marauder Concussive Shells). For now Its doesnt work if researched with cheats.
And thanks for pointed out the missing button in the citadel I have missed that one.
There are some other bugs that I have already fixed.


Code: Select all

if (unit->unitId==infested_terran && unit->orderSignal!=1 && unit->status & 0x1){
// orderSignal is 1 when is self exploding. The last condition prevents some bug if baneling is killed in its born animation .
   if(unit->rankIncrease!=30 && unit->mainOrderId!=Burrow &&  unit->healthPoints==0)){
   // rankIncrease is just used as a control mark to prevent multiple explosions on death

Also, I use this code at the beginin of the unit loop

Code: Select all

if (unit->healthPoints>0 && unit->mainOrderId==Die)

And it need the SpecialState1 in the Iscript

Code: Select all

   attackwith        1   
   sigorder          1   
   goto              InfestedTerranLocal00

attackwith can be replaced with useweapon.

Q2) Yes, they are the same, its sound weirds that hydralisk deals explosive damage when is shooting a bunch of spines, same for the stormraven rifle and scout cannons.
There is also weird that sunken colony and ultralisk deals explosive damage but I haven?t find a good name (maybe Cleave?).
Same for firebats and roaches dealing concussive when they use fire/acid (maybe chemical?).
But I know also that changing the name of damage types can confuse players.
Other option is to use other way to identify the weapon modifiers, like you did with colors or maybe with some symbol or character.

Q3) I want tanks to be useful in both modes, so I have tried to nerf a bit the siege mode and improve the normal mode (making it a bit tougher). But siege tanks where reworked again. I hope this time the changes I made make them more useful in both modes.

Q4) Sure

Q5) Both units where reworked (im still tweaking some values). The unit stats are in the full changelog file, but I know is not very comfortable to read a wall of text in txt. I will try to add more information in the moddb page, or make a own page if I have some time.

Q6) It would take me much time to adapt the changes to those scripts, also there are still some units that I want to add, and other tech tree changes, so I will have to constant adapt the scripts. For now I have made some changes to the default ones to use some of the new units and tech trees, and give extra resources to compensate the lack of strategy. But I will improve them, or adapt some of the BWAPI scripts when I have a more solid version and more free time to work.

Q7) OK, I will look for a more comfortable color.

Q8) Infested terrans where reworked also, they cost less (50/25) have less HP and damage, but are trained much faster. The frenzy ability has also changed, now they dont receive a movement bonus speed, only the attack cooldown is reduced but it have more stages.

Posted: Tue Nov 20, 2012 4:47 pm
by Arcanes_Lutarez
hello ravenwolf, i have a question, you know how create a unit like the pylon with psi? and, in the modcrafters page, the code for extended sight range dont workme, you know why?

Posted: Wed Nov 21, 2012 2:16 am
by pastelmind
[quote name='Arcanes_Lutarez' date='21 November 2012 - 01:47 AM' timestamp='1353430073' post='11243']
hello ravenwolf, i have a question, you know how create a unit like the pylon with psi? and, in the modcrafters page, the code for extended sight range dont workme, you know why?

Could you describe exactly how extended sight range doesn't "work" for you? For example,

  • Does the compiler produces an error? Please share your code (in a new thread, preferably).
  • Does the plugin crash the game? (One possible cause is that you may have forgot to add a call to UseCustomSightValues() in gameOn())
  • No compiler errors or game crashes, but the sight ranges don't change? (Hint: you actually need to modify the sight ranges in units.dat)
As for creating Pylon-like buildings, or a replica of SC2 Warp Prism for that matter, I'm working on some C++ functions here, so please wait for...let's say about a week.

Posted: Fri Nov 23, 2012 3:11 am
by Arcanes_Lutarez
I place this in asm.cpp

Code: Select all

struct SightStruct {
   DWORD tileSightWidth;
   DWORD tileSightHeight;
   DWORD unknown1;
   DWORD unknown2;
   DWORD unknown3;
   DWORD unknown4;
   DWORD unknown5;

#define CREATE_SIGHT_STRUCT(range) { (range) * 2 + 3, (range) * 2 + 3, 3, 3, 0, 0, 0 }

const DWORD InitializeSightValues_Func = 0x0042AD60;

void UseCustomSightValues(SightStruct* sarr, DWORD arraySize) {
   DWORD* const SightStructRef = (DWORD*)0x00480709;
   DWORD OldProt = 0;
   VirtualProtect((LPVOID)SightStructRef, 4, PAGE_EXECUTE_READWRITE, &OldProt);
   *SightStructRef = (DWORD)sarr;
   VirtualProtect((LPVOID)SightStructRef, 4, OldProt, &OldProt);

   __asm {
      MOVZX eax, WORD PTR DS:[0x0057F1D4]
      PUSH eax
      MOV eax, arraySize
      MOV ecx, sarr
      CALL DWORD ptr [InitializeSightValues_Func]

and in game.h this

Code: Select all

SightStruct sightValues[] = {

in game on this

Code: Select all

   UseCustomSightValues(sightValues, 25);

when i compile, produces an error in gptp (sightvalues is undefined), and the game crash when i test

Posted: Fri Nov 23, 2012 10:41 am
by RavenWolf
Hi Arcanes_Lutarez,
The sightValues array should be declared before the gameOn() function, and also outside any other function.

The game.h should looks like this:

Code: Select all

#include "asm.cpp"

//global declarations
SightStruct sightValues[] ={

bool nextFrame(){
        return true;

bool gameOn(){
   UseCustomSightValues(sightValues, 25);
   return true;

bool gameEnd(){
   return true;

Posted: Fri Nov 23, 2012 5:58 pm
by Arcanes_Lutarez
thks, its work :D

Re: SC Revolution mod on 1.16.1

Posted: Sun Jan 20, 2013 9:55 pm
by Taranok
he updated SC Revolution to 1.5 (from 1.1). lots of cool additions to spells and stuff.