As you say in the readme, it do not support typedef, funcref, arrayref, do you still work on it?
I used Galaxy Editor++ before, but it do not support arrayref/structref/funcref, and though I have the source code of GE++, it is hard for me to make a support of it. And I also try to use your subl-sc2-galaxy (and fork your code), but its code linting always do not work, and Sublime is uncomfortable for me. I have a try to make a Galaxy IDE myself, but it still a early version at four years after began.
It looks like that there are so little people use third part tool to write galaxy, or they basically do not use galaxy. But I just write galaxy, do not use the GUI. It is a bad habit from jass, the script of Warcraft III.
No, all things we need is OK for this system. Something need to at that time is about how to put blindage(a range with many field units) on generated area, and we can get the best operating efficiency base on our existing systems. At now, it is OK.
So, our Solution is bitter. If some shields place together, even some of them are overlapped, the system also works OK. It because whether a missile can impact a unit (decide by Marker Validator in target effect of Search Area effect ) is controlled by if the missile give a Apply Behavior effect with marker.
The validated of impact is just related to target unit‘s marker, has nothing to do with the location and distance.
Maybe I do not catch your idea clearly. you explain how to make shield unit. But you do not explain how to make it unidirectional.
Create a shield is easy. Just use search area effect to find target and make shield unit is the first choice target.
The key point is how to make shield unidirectional.
It means that if a unit in the shield field, it can attack unit outside, but the missiles from unit outside would be resisted.
And also if two rival unit in shield field, they can attack each other.
For this, you need link missile unit and shield units in the region which the missile create in.
And when missile search target, eliminate these shields.
To achieve this. I use Marker for linking. When a missile create, trigger a Unit Created event, and check if it is in region.
If in, make the missile spell a Apply Behavior effect with marker (match Spell Unit) to shields of region.
This effect apply a behavior to keep marker exist until missile die(by remove validator of unit alive ).
And the Search effect of missile will use Marker Validator to check if a unit can be attack.
The way we realize it may be not the same as you think. Weapons except the main gun controls by script, not "Weapon", "Behavior" or "Ability".
On the display layer, we use CActorLookAt to control the facing angle. It because there maybe only three turrets can be set in one model, and also Blizzard use CActorLookAt to control weapon in display layer, such as Battlecruiser. You can find BattlecruiserLookAt00 to BattlecruiserLookAt07 in void.sc2mod, and in Viod, Battlecruiser`s weapon which attack ground controls small turrets.
On the logic layer, because of the limit of control system of our game, we use some timer event to search target unit, and also use script to hold target unit till it die. Another reason is that the unit is not turnable, the base angle is constant, so if we use weapon as the start point of attack, its range of attack would not rotate when the main turret change its angle.
The missile is create by CEffectLaunchMissile, after get a target unit or attack time come, we use Galaxy API UnitCreateEffectUnit to launch missile.
This tool is used for write non-ASCII characters in string.
We know we can not use the non-ASCII characters in SE directly,
we need translate them to a special encoder mode.
SC2 UnicodeTranslate can easily do that.
Need .NET Framework 4 Client Profile.
You can Translate the tools yourself by create a xaml file in \Language,
and you need named it by NLS Information
It list here as Culture Name.
I think this can not be used by people who do not know how to write galaxy.
this may just be used when write a mod for others ,and for example use funcref for callback system.
but also, the user need to know how to write galaxy.
And then, you need write a new function in GUI,configure it as a “Sub-Functions”.
The Parameters of the function of reference, you need set type as "Any Type"(Just when a Function or a Action Definition is configured as Sub-Functions or Operator, then you can choose this type of parameter )
At last you need write a macro code in "Custom Script Code", such as:
TestA(#PARAM(lp));
Use the #PARAM to link to the parameter of reference.
When you need use this Function and input the parameter, you need choose the type of reference as "Any Type"。
then input the name of the Parameter as a Custom Script.(Any Type is the only way to input Parameter name as custom script)
Also, the definition of the variable need write in Galaxy.
If you see the Galaxy Script of the Map, you can find that when code of the Function is not a real function, just a piece of code.
I don`t know if there are some body still use GE now. And one and a half years past from last reply by me.
Because of the change of the offical Mod of SC2 in 3.0, the GE can not get SC2 Libs from the MPQ.
I have modify the code and so that GE can load galaxy files at \TriggerLibs
So that it can work now.
If SC2 change its Lib, you can get the new files from SC2 yourself, and then copy them to \TriggerLibs .
Or you have some mod wiht custom lib, and you want to use it at many different Projects , you can also put the galaxy files of the Libs in \TriggerLibs .
There are so many mistakes in GE , as SBeier say, it`s hard to correct them. The compiler can not support Array Ref and the other two Ref. And some bug in your script can`t find out too, such as the parameters in the declaration of function is not the same as function entity it self, GE can not find it.
I updata it here, my vision support English and Chinese.You can choose one
I am sorry to say this so late. And I am a new programmer. So I had not say the truth that I had translated GE++ into Chinese and remove some functions such as the upload library half a year before.(I linked to this page ) http://bbs.islga.org/forum.php?mod=viewthread&tid=2152473
This is the page. I like GE++, it is cool.
I know little C#, and it is so hard for me to do much for GE++, and I don't agree some ideas form you. Just like I have said , I don't like the code translation.
I was a mapper of war3 also. And the script language of it, the Jass is so lag, the translated language of Jass , which named VJass, may be more lag than the same code of function.
So I want to remove this function of GE++ . I don't know how much I would do, there is so little user of galaxy for mapping. And I find none us GE++ in China.
Thank you for you job ,I express my sincerely sorry again about what I do.
Sorry,because of my poor English ,I did not catch what you mean.
And the new version is also can not be use in zhCN SE, but works well in enUS SE.
When I run the Omni ,the bar of GE is red ,then I run SE, it is turn yellow ,and keeping yellow even I close SE , and at this time ,if I run enUS SE, the bar still yellow.
About the error character ,see the screenshot ,I named the map whit path C:\Duke\... as "测试地图" which mean "Test map",but in recent map,it show name another as the screenshot which mean nothing. And if i click it ,there may be a error occur that Omni crashes.
PS: I had edit the crashrpt_lang.ini and the error report window is translated to Chinese.
0
Great Job!
As you say in the readme, it do not support typedef, funcref, arrayref, do you still work on it?
I used Galaxy Editor++ before, but it do not support arrayref/structref/funcref, and though I have the source code of GE++, it is hard for me to make a support of it. And I also try to use your subl-sc2-galaxy (and fork your code), but its code linting always do not work, and Sublime is uncomfortable for me. I have a try to make a Galaxy IDE myself, but it still a early version at four years after began.
It looks like that there are so little people use third part tool to write galaxy, or they basically do not use galaxy. But I just write galaxy, do not use the GUI. It is a bad habit from jass, the script of Warcraft III.
Thanks for your job!
0
@DrSuperEvil: Go
No, all things we need is OK for this system. Something need to at that time is about how to put blindage(a range with many field units) on generated area, and we can get the best operating efficiency base on our existing systems. At now, it is OK.
0
@DrSuperEvil: Go
So, our Solution is bitter. If some shields place together, even some of them are overlapped, the system also works OK. It because whether a missile can impact a unit (decide by Marker Validator in target effect of Search Area effect ) is controlled by if the missile give a Apply Behavior effect with marker.
The validated of impact is just related to target unit‘s marker, has nothing to do with the location and distance.
0
@DrSuperEvil: Go
Maybe I do not catch your idea clearly. you explain how to make shield unit. But you do not explain how to make it unidirectional.
Create a shield is easy. Just use search area effect to find target and make shield unit is the first choice target. The key point is how to make shield unidirectional. It means that if a unit in the shield field, it can attack unit outside, but the missiles from unit outside would be resisted. And also if two rival unit in shield field, they can attack each other.
For this, you need link missile unit and shield units in the region which the missile create in. And when missile search target, eliminate these shields.
To achieve this. I use Marker for linking. When a missile create, trigger a Unit Created event, and check if it is in region. If in, make the missile spell a Apply Behavior effect with marker (match Spell Unit) to shields of region. This effect apply a behavior to keep marker exist until missile die(by remove validator of unit alive ). And the Search effect of missile will use Marker Validator to check if a unit can be attack.
0
@DrSuperEvil: Go
The way we realize it may be not the same as you think. Weapons except the main gun controls by script, not "Weapon", "Behavior" or "Ability".
On the display layer, we use CActorLookAt to control the facing angle. It because there maybe only three turrets can be set in one model, and also Blizzard use CActorLookAt to control weapon in display layer, such as Battlecruiser. You can find BattlecruiserLookAt00 to BattlecruiserLookAt07 in void.sc2mod, and in Viod, Battlecruiser`s weapon which attack ground controls small turrets.
On the logic layer, because of the limit of control system of our game, we use some timer event to search target unit, and also use script to hold target unit till it die. Another reason is that the unit is not turnable, the base angle is constant, so if we use weapon as the start point of attack, its range of attack would not rotate when the main turret change its angle. The missile is create by CEffectLaunchMissile, after get a target unit or attack time come, we use Galaxy API UnitCreateEffectUnit to launch missile.
At last, I am not Nanakey.
0
This tool is used for write non-ASCII characters in string. We know we can not use the non-ASCII characters in SE directly, we need translate them to a special encoder mode. SC2 UnicodeTranslate can easily do that.
Need .NET Framework 4 Client Profile.
You can Translate the tools yourself by create a xaml file in \Language, and you need named it by NLS Information It list here as Culture Name.
0
@ImperialGood: Go
I think this can not be used by people who do not know how to write galaxy. this may just be used when write a mod for others ,and for example use funcref for callback system. but also, the user need to know how to write galaxy.
0
The reference of struct/funcref/arrayref is very usefull for our code, but Blizzard do not support the way to use it in Trigger.
If you do not know what the structref/funcref/arrayref is, you can see this thread: http://www.sc2mapster.com/forums/general/general-chat/36783-sc2-arcade-alpha/?page=7#p123
This way is not real use reference in Trigger, so before use it, you need write codes in Galaxy.
For example:
And then, you need write a new function in GUI,configure it as a “Sub-Functions”.
The Parameters of the function of reference, you need set type as "Any Type"(Just when a Function or a Action Definition is configured as Sub-Functions or Operator, then you can choose this type of parameter )
At last you need write a macro code in "Custom Script Code", such as:
Use the #PARAM to link to the parameter of reference.
When you need use this Function and input the parameter, you need choose the type of reference as "Any Type"。
then input the name of the Parameter as a Custom Script.(Any Type is the only way to input Parameter name as custom script)
Also, the definition of the variable need write in Galaxy.
If you see the Galaxy Script of the Map, you can find that when code of the Function is not a real function, just a piece of code.
0
I don`t know if there are some body still use GE now. And one and a half years past from last reply by me.
Because of the change of the offical Mod of SC2 in 3.0, the GE can not get SC2 Libs from the MPQ. I have modify the code and so that GE can load galaxy files at \TriggerLibs So that it can work now. If SC2 change its Lib, you can get the new files from SC2 yourself, and then copy them to \TriggerLibs . Or you have some mod wiht custom lib, and you want to use it at many different Projects , you can also put the galaxy files of the Libs in \TriggerLibs .
I updata the source file to the GitHub ,If anyone who want to modify it, you can download at https://github.com/Whimsyduke/GalaxyEditorPlusPlus.git
0
@KorvinGump: Go
There are so many mistakes in GE , as SBeier say, it`s hard to correct them. The compiler can not support Array Ref and the other two Ref. And some bug in your script can`t find out too, such as the parameters in the declaration of function is not the same as function entity it self, GE can not find it.
I updata it here, my vision support English and Chinese.You can choose one
0
@SBeier
I am sorry to say this so late. And I am a new programmer. So I had not say the truth that I had translated GE++ into Chinese and remove some functions such as the upload library half a year before.(I linked to this page )
http://bbs.islga.org/forum.php?mod=viewthread&tid=2152473
This is the page. I like GE++, it is cool.
I know little C#, and it is so hard for me to do much for GE++, and I don't agree some ideas form you. Just like I have said , I don't like the code translation.
I was a mapper of war3 also. And the script language of it, the Jass is so lag, the translated language of Jass , which named VJass, may be more lag than the same code of function.
So I want to remove this function of GE++ . I don't know how much I would do, there is so little user of galaxy for mapping. And I find none us GE++ in China.
Thank you for you job ,I express my sincerely sorry again about what I do.
0
Do GE still Develop?
0
@midiway: Go
Sorry,because of my poor English ,I did not catch what you mean. And the new version is also can not be use in zhCN SE, but works well in enUS SE. When I run the Omni ,the bar of GE is red ,then I run SE, it is turn yellow ,and keeping yellow even I close SE , and at this time ,if I run enUS SE, the bar still yellow.
0
@midiway: Go
Just like the screenshot ,the Chinese text show nothing .The map name is also "测试地图".This even happen at English name .
But it is right at the path of the map .
0
@midiway: Go
About the error character ,see the screenshot ,I named the map whit path C:\Duke\... as "测试地图" which mean "Test map",but in recent map,it show name another as the screenshot which mean nothing. And if i click it ,there may be a error occur that Omni crashes.
PS: I had edit the crashrpt_lang.ini and the error report window is translated to Chinese.