Isn't the model attached to the actor? I need to use this once for every unit the game. They are used as displays, I didn't give a ton of information because it wont be helpful.
Why does sc2 make it so hard to properly use arrays? It took me forever to convert my whole map to galaxy script because all natives and libraries return player ids and ask for player ids starting at 1. It seems like a much better idea to make everything start at 0 and make it easier for us and not waste array space. Everywhere I see on the forums are people using arrays as if they start [1], this boggles my mind and I wonder at why blizzard supports them. Not sure where anyone got the idea that arrays start at 1, they never have and probably never will.
The problem is I am setting teams up a certain way based on battlenet player ids. This sets my array [5] to player 6, instead of [2]. This game wasnt built for ais, and will probably never add them... I just disallowed ais.
Is there anyway to prevent players from resizing bnet teams? I already checked locked teams.
I do not use sc2's team functions. I made my own system. I suppose there is sort of a hackish thing I can do to fix it, although it is very annoying.
Edit - Actually this will screw up my whole system. Its no that player 1 becomes player 3 is the issue. Its that the players arent sequential as there can be a player 6 when there is no player 1-5...
Why are cpus treated as the last player to the first? For example, I join and am player 1, I add a cpu and its player 6. How can I fix this? It screws up my custom team setup for my map.
How can I remove the the animation of protoss beacon( small/large all of them ), its that weird spinning animation? I couldnt find it under its actor and model.
You know when you give your unit a queue list, it shows red lines showing where its movement path is. How can I remove the display of those red lines if possible? I am not sure if this is built into the engine itself or not.
You both make excellent points. I personally however tend to optimize my code as much as possible.
As cplusplus is my main language, it is built for performance and is probably the fastest, most widely supported oop language out there. I tend to write most of my projects in cplusplus, people call me crazy for doing so. Most of my recent projects have been for networking and are fairly lightweight due to the optimization I did.
Let's say I write I game in c++ with directx. Someone else writes the same game in csharp with XNA. Another, writes it in python with some windows draw functions. Everyone starts from scratch no framework or anything just the gfx API and standard libraries. Python takes 3 months, average fps is 20. Csharp takes 8 months with average fps of 40. Cplusplus takes 2 years with average fps of 80(vysnc is usually on if your smart and caps it at your monitors refreshrate, normally 60). These times and performances are a guess and theoretical only.I dont know about you, but which game would you want to play?
That being said it is a matter of productivity vs performance. Which do you value more? For games it should always be performance. In other things it depends. Personally, I write most of my code so it performs well, I often get questions about why I prefer cplusplus over csharp and I could go into that but I wont. It all comes down to how low-level you want to go. Nobody writes games in ASM or VB. ASM would take WAY too long, VB would be WAY to slow. I am used to really low level coding and thats why I prefer galaxy script over GUI.
I am also a very example-explanation oriented person. I like to know why and how things actually work and what kind of code they compile. In conclusion, in many cases some of us overthink it. But, it is my nature to do things efficently. That being said I should probably balance my time more towards productivity, but I am still leaned more towards performance.
Didn't think of it exactly like that. Now that I think about it though, the editor added else's for all my ifs and such so yea it probably already does the checks. Yea I know I can add multiple events to a trigger. I did it this way at first because doing sunit enters any region would fire probably every frame in my map. Searching for the correct region would be even slower than 50 separate triggers. 50 separate triggers is just too long for me and feels a very crude and bad solution. Oh also, I wanted to have the delay in between to prevent from buying the wrong units. If you have a better idea let me know.
I appreciate the responses. I know I am not the best at galaxy scripting and am just starting to get the hang of it. I feel ImperalGoods first solution of recreating the trigger would be most optimal and will probably do that once the rest of my map is working again. I actually am very good at optimizing code, most would call me an expert. I wrote my own guide to optimizing c code a few months ago. I am not exactly sure how galaxy events(triggers) check for conditions. So let me know if I am thinking about it wrong.
Yes, I can see how generic events could be a problem, calling function pointers over an over(that is what they would use internally), vs a condition to call it is much slower. However, in some cases a generic may be better. I feel they are in my case with the civ system. I originally had about 50 triggers for spawning units, trigger condition = unit enters region. I converted it to a single every 2.0 seconds in a loop, the first condition of the function checks if any unit is in the region. Considering it takes a bit of math to determine if a unit enters a region, it does that 50 times, 16 times a second; that would be slower than every 2 seconds check them all. Let me know if I am wrong, but I believe events in galaxy work by checking a certain condition 16 times a second right?
Thanks again everyone, but specifically ImperalGood for helping me get everything working.
Just as a test, what miles said works. However, yes I want the ref set to the base variable not to an instance of the initial unit it is set to. Man if only the editor let me deal with references or pointers with full capability this would all be solved.
0
@Stompppp: Go
Isn't the model attached to the actor? I need to use this once for every unit the game. They are used as displays, I didn't give a ton of information because it wont be helpful.
0
@Charysmatic: Go
I tried that and it wasn't letting me set player 0 as a player. How were you able to accomplish this?
0
Why does sc2 make it so hard to properly use arrays? It took me forever to convert my whole map to galaxy script because all natives and libraries return player ids and ask for player ids starting at 1. It seems like a much better idea to make everything start at 0 and make it easier for us and not waste array space. Everywhere I see on the forums are people using arrays as if they start [1], this boggles my mind and I wonder at why blizzard supports them. Not sure where anyone got the idea that arrays start at 1, they never have and probably never will.
0
Yea I figured that part out thanks. I edited my post, right before you posted I think.
Is there anyway to prevent players from resizing bnet teams? I already checked locked teams.
What is player logo index? I just noticed it under game variants.
0
@rutegar: Go
The problem is I am setting teams up a certain way based on battlenet player ids. This sets my array [5] to player 6, instead of [2]. This game wasnt built for ais, and will probably never add them... I just disallowed ais.
Is there anyway to prevent players from resizing bnet teams? I already checked locked teams.
0
I have already adopted that first thing you mentioned. How did you get around the computer players issue though?
0
@TyaArcade: Go
I do not use sc2's team functions. I made my own system. I suppose there is sort of a hackish thing I can do to fix it, although it is very annoying. Edit - Actually this will screw up my whole system. Its no that player 1 becomes player 3 is the issue. Its that the players arent sequential as there can be a player 6 when there is no player 1-5...
0
Why are cpus treated as the last player to the first? For example, I join and am player 1, I add a cpu and its player 6. How can I fix this? It screws up my custom team setup for my map.
0
Well the thing is I have 1 unit instance of almost every type that I am trying to rid of the stand animation. Is there another solution?
0
How can I disable the stand animation on a SINGLE unit instance?
0
How can I remove the the animation of protoss beacon( small/large all of them ), its that weird spinning animation? I couldnt find it under its actor and model.
You know when you give your unit a queue list, it shows red lines showing where its movement path is. How can I remove the display of those red lines if possible? I am not sure if this is built into the engine itself or not.
0
You both make excellent points. I personally however tend to optimize my code as much as possible.
As cplusplus is my main language, it is built for performance and is probably the fastest, most widely supported oop language out there. I tend to write most of my projects in cplusplus, people call me crazy for doing so. Most of my recent projects have been for networking and are fairly lightweight due to the optimization I did.
Let's say I write I game in c++ with directx. Someone else writes the same game in csharp with XNA. Another, writes it in python with some windows draw functions. Everyone starts from scratch no framework or anything just the gfx API and standard libraries. Python takes 3 months, average fps is 20. Csharp takes 8 months with average fps of 40. Cplusplus takes 2 years with average fps of 80(vysnc is usually on if your smart and caps it at your monitors refreshrate, normally 60). These times and performances are a guess and theoretical only.I dont know about you, but which game would you want to play?
That being said it is a matter of productivity vs performance. Which do you value more? For games it should always be performance. In other things it depends. Personally, I write most of my code so it performs well, I often get questions about why I prefer cplusplus over csharp and I could go into that but I wont. It all comes down to how low-level you want to go. Nobody writes games in ASM or VB. ASM would take WAY too long, VB would be WAY to slow. I am used to really low level coding and thats why I prefer galaxy script over GUI.
I am also a very example-explanation oriented person. I like to know why and how things actually work and what kind of code they compile. In conclusion, in many cases some of us overthink it. But, it is my nature to do things efficently. That being said I should probably balance my time more towards productivity, but I am still leaned more towards performance.
Again, thank you everyone for your replies.
0
Didn't think of it exactly like that. Now that I think about it though, the editor added else's for all my ifs and such so yea it probably already does the checks. Yea I know I can add multiple events to a trigger. I did it this way at first because doing sunit enters any region would fire probably every frame in my map. Searching for the correct region would be even slower than 50 separate triggers. 50 separate triggers is just too long for me and feels a very crude and bad solution. Oh also, I wanted to have the delay in between to prevent from buying the wrong units. If you have a better idea let me know.
0
I appreciate the responses. I know I am not the best at galaxy scripting and am just starting to get the hang of it. I feel ImperalGoods first solution of recreating the trigger would be most optimal and will probably do that once the rest of my map is working again. I actually am very good at optimizing code, most would call me an expert. I wrote my own guide to optimizing c code a few months ago. I am not exactly sure how galaxy events(triggers) check for conditions. So let me know if I am thinking about it wrong.
Yes, I can see how generic events could be a problem, calling function pointers over an over(that is what they would use internally), vs a condition to call it is much slower. However, in some cases a generic may be better. I feel they are in my case with the civ system. I originally had about 50 triggers for spawning units, trigger condition = unit enters region. I converted it to a single every 2.0 seconds in a loop, the first condition of the function checks if any unit is in the region. Considering it takes a bit of math to determine if a unit enters a region, it does that 50 times, 16 times a second; that would be slower than every 2 seconds check them all. Let me know if I am wrong, but I believe events in galaxy work by checking a certain condition 16 times a second right?
Thanks again everyone, but specifically ImperalGood for helping me get everything working.
0
Just as a test, what miles said works. However, yes I want the ref set to the base variable not to an instance of the initial unit it is set to. Man if only the editor let me deal with references or pointers with full capability this would all be solved.