Staredit Network > Forums > Modding Assistance > Topic: Regeneration plugin
Regeneration plugin
Jul 13 2012, 5:36 pm
By: iquare  

Jul 13 2012, 5:36 pm iquare Post #1



How to write plugin, which gain 5hp/second regeneration ability for zergling? (I try make it, using GPTP, but it cause error during compilation



None.

Jul 13 2012, 5:39 pm Biophysicist Post #2



Copy-paste your game.h file here and I'll debug it.

EDIT: At least, I think it's game.h. The one you edit when using GPTP.



None.

Jul 14 2012, 6:26 am iquare Post #3



/*
* This is where the magic happens. However, there are other things
* that you can change. In "Definitions/definitions.h", you can
* remove the DEBUG defintion for a final release of your plugin.
* You can likewise change the version that the plguin is for.
* Supported versions are given in "Definitions/definitions.h".
*
* Oh, and you can also change the plugin's ID in that file as well,
* just in case it conflicts with other plugin IDs.
*/

//the asm functions don't seem to work for some reason. probably the offsets I have are wrong, if anyone knows them, contact me asap!
#include "asm.cpp"


#ifdef DEBUG
#include <fstream>
std::ofstream myfile;
#endif

// Any code in nextFrame() will be run every frame. On Fastest game speed, this is equal to 24 times per second.
bool nextFrame()
{
return true;
}

// Any code in gameOn() will be run once, when the map starts.
bool gameOn()
{
return true;
}

// Any code in gameEnd() will be run once, at the end of the game.
bool gameEnd()
{
return true;
}

void nextFrame()
{
int hitpoints = 35;
for (int i=0;i<1700;i++) {
UNIT* zergling;
zergling = &unitTable[i];
if (zergling->unitId == 37) {
if (zergling->healthPoints < 256*hitpoints) {
for (int j=0;j<1700;j++) {
if (zergling->healthPoints < 256) {
zergling->healthPoints = zergling->healthPoints + 32;
}
}
}
}
}
}



None.

Jul 14 2012, 2:45 pm Biophysicist Post #4



Try this:

Code
#include "asm.cpp"

#ifdef DEBUG
#include <fstream>
std::ofstream myfile;
#endif

// Any code in nextFrame() will be run every frame. On Fastest game speed, this is equal to 24 times per second.
bool nextFrame()
{
    int hitpoints = 35;
    for (int i=0;i<1700;i++) {
        UNIT* zergling = &unitTable[i];
        if (zergling->unitId == 37 && zergling->healthPoints < 256*hitpoints)
                zergling->healthPoints += 32;
    }
    return true;
}

// Any code in gameOn() will be run once, when the map starts.
bool gameOn()
{
    return true;
}

// Any code in gameEnd() will be run once, at the end of the game.
bool gameEnd()
{
    return true;
}




None.

Jul 15 2012, 10:36 am iquare Post #5



Thanks, plugin works.



None.

Jul 15 2012, 7:02 pm Pr0nogo Post #6



Huh. Not much different from Python coding. I could probably learn this easily.




Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[2024-5-23. : 3:50 pm]
Ultraviolet -- :wob:
[2024-5-23. : 6:26 am]
UndeadStar -- :wob:
[2024-5-22. : 6:10 am]
Riney -- Somethings never change.
[2024-5-22. : 6:10 am]
Riney -- I come back after 4 months. Post wob. Make a crappy post in Null. Hit a 0 in magic boxes.
[2024-5-22. : 6:00 am]
Riney -- :wob:
[2024-5-20. : 3:08 pm]
Sylph-Of-Space -- woah! nice! thank you!
[2024-5-20. : 4:05 am]
O)FaRTy1billion[MM] -- the setting exists, it's just hidden in a weird place
[2024-5-20. : 4:04 am]
O)FaRTy1billion[MM] -- instead change "Microtile Overlay" to "Impassable"
[2024-5-20. : 4:04 am]
O)FaRTy1billion[MM] -- er, wait, idk why i was looking for height
[2024-5-20. : 4:03 am]
O)FaRTy1billion[MM] -- below the minimap should be a thing that says "Overlay Settings" with a little + button in the corner, press the + to expand it, uncheck Use Defaults, then change "Tile Overlay" to "Height"
Please log in to shout.


Members Online: AleXoundOS