Well you could do it through data editor, just create a dummy ability for the unit, that doesn't do anything, just stores number of charges (=ammo).
Then, each weapon would have cost: - 1 charge for that ability, and when you pick the weapon up, it first deletes all charges (they can't go negative I think, so change them by -1000(modify units has charge change in cost field) ), if you change weapons, and then adds ammo
And ofc, the attack will cost 1 charge, I think that if you put an effect with cost of 1 charge in the weapon effects, it will prevent the unit from attacking if it doesn't have the charges
Maybe the text tags overlap? Tey are both created in same position. Maybe you could use Unit takes damage as event and detect which of the events did the damage, and if it is the critical one, use some other height offset.
I found a major weakness: There is no way to spend money after you have everything at max. I ended up with 150,000 minerals, had nowhere to spend it and lost because of it (because in the end, everyone was equally strong and my team members left)
Deleting hidden abilities: Well because the possibility to exploit these abilities would still be there, and as soon as you would use them for anything (in a custom map), it would be abuseable
Why would the ability commands still be there? As someone who has used the editor since release, this makes no sense to me.
I wrote that the possibility to exploit will still be there. That means that as soon as you used hidden abilities for anything in a custom map, players could use the same hack on the custom game (it was a reaction on a suggestion to just remove the abilities that ruined melee)
EDIT: Propably not, there have to be some hash check. If it wasn't, you could add "radar 1000" to some common behavior (like terran building fire), to see everything at all times :-)
Deleting hidden abilities: Well because the possibility to exploit these abilities would still be there, and as soon as you would use them for anything (in a custom map), it would be abuseable
Banning: That would be possible in ladder games, but it won't work in custom games, unless the mapmaker put some kind of marker on all abilties that shouldn't be used by players, only by triggers
Trying to protect the connection is useless, there will always be a way to crack it. What they should do is filter orders that came from players, and have no UI, and disable those. The rest, which came from effects and triggers should still be usable (they can't be abused, since you would have to synchronize the usage of effect/trigger, which you can't).
@progammer: This will kill your WASD system, right?
When are they "fixing" it? I use hidden abilities in custom map, they are totally necessary. For example I use hidden and suppressed move ability to turn radar tower around (it has a radar with limited arc) - that is a cool real-life-radar effect, you can't achieve it any other way. Or, I use hidden move (although I haven't found a way to hide it completely yet) for my monorail (no triggers, data editor only)
You should use "2 teams" instead of custom teams. With custom teams the "new team" slot will always appear, which look stupid if your map is always 4v4.
There are guides both here and on hive how to set up game variants and attributes.
The best solution is to use the "Game Attribute for Player" function. Select ANY of the team game variants (there are all the team[2 teams], team[3 teams]..doesn't matter, returns the same for any of them), let the game put it into string (you'll have to use Galaxy here, GUI doesn't have any function for this). It returns "Tx", where x is the team ID (e.g. T1, T2, T3...)
Btw. you can't use the GUI game attribute values (screen below), they are messed up. (Their galaxy transcription is some random number, same for anything you select, that has no actual meaning in game)
Well you can force your variant as default (right click in the variant list, select "default"), but so far I didn't find a way to get rid of the "custom" variant. I think it is there so that the melee/vs. AI/custom filter on b.net lists it correctly under "custom".
Well you can disable colission and jump over units, but if you want to jump over unpathable area you will need the morph.
Also, can you really use CatalogFieldSetValue? Seemed to me that whatever I tried to change, I always got the read-only error.
There is a function that returns unit's weapon, called something like "Unit Weapon" (it takes weapon ID as parameter, since your unit propably only has one, it's 1)
Then, each weapon has field called "Damage Display Effect" that says which effect's damage is displayed.
Getting the bonus would be harder, but I think looping through all behaviors-buffs and looking for damage bonuses should work, the green + comes only from buffs, right?
EDIT: I see what the problem is now. Many of the fields (in this case both "DisplayEffect" and "Effect") are defaulted to the weapon's id (=effect with same id as the weapon).
I wonder what the catalog value is in such case, since CatalogGetValue should default to parent's value in case that the value is missing, so which "defaulting" comes first? (I can't try it out right now, editor crashes because of graphic card)
0
Well you could do it through data editor, just create a dummy ability for the unit, that doesn't do anything, just stores number of charges (=ammo). Then, each weapon would have cost: - 1 charge for that ability, and when you pick the weapon up, it first deletes all charges (they can't go negative I think, so change them by -1000(modify units has charge change in cost field) ), if you change weapons, and then adds ammo
And ofc, the attack will cost 1 charge, I think that if you put an effect with cost of 1 charge in the weapon effects, it will prevent the unit from attacking if it doesn't have the charges
0
Maybe the text tags overlap? Tey are both created in same position. Maybe you could use Unit takes damage as event and detect which of the events did the damage, and if it is the critical one, use some other height offset.
0
I found a major weakness: There is no way to spend money after you have everything at max. I ended up with 150,000 minerals, had nowhere to spend it and lost because of it (because in the end, everyone was equally strong and my team members left)
0
I wrote that the possibility to exploit will still be there. That means that as soon as you used hidden abilities for anything in a custom map, players could use the same hack on the custom game (it was a reaction on a suggestion to just remove the abilities that ruined melee)
0
@obliviron: Go
What exactly did you try to change?
0
Maybe by modifying the core.sc2mod?
EDIT: Propably not, there have to be some hash check. If it wasn't, you could add "radar 1000" to some common behavior (like terran building fire), to see everything at all times :-)
0
Deleting hidden abilities: Well because the possibility to exploit these abilities would still be there, and as soon as you would use them for anything (in a custom map), it would be abuseable
Banning: That would be possible in ladder games, but it won't work in custom games, unless the mapmaker put some kind of marker on all abilties that shouldn't be used by players, only by triggers
0
Trying to protect the connection is useless, there will always be a way to crack it. What they should do is filter orders that came from players, and have no UI, and disable those. The rest, which came from effects and triggers should still be usable (they can't be abused, since you would have to synchronize the usage of effect/trigger, which you can't).
@progammer: This will kill your WASD system, right?
0
When are they "fixing" it? I use hidden abilities in custom map, they are totally necessary. For example I use hidden and suppressed move ability to turn radar tower around (it has a radar with limited arc) - that is a cool real-life-radar effect, you can't achieve it any other way. Or, I use hidden move (although I haven't found a way to hide it completely yet) for my monorail (no triggers, data editor only)
0
You should use "2 teams" instead of custom teams. With custom teams the "new team" slot will always appear, which look stupid if your map is always 4v4.
There are guides both here and on hive how to set up game variants and attributes.
0
If you turn on "blend" in the move instantly function, it will be smooth even with 0.0625 timer.
0
The best solution is to use the "Game Attribute for Player" function. Select ANY of the team game variants (there are all the team[2 teams], team[3 teams]..doesn't matter, returns the same for any of them), let the game put it into string (you'll have to use Galaxy here, GUI doesn't have any function for this). It returns "Tx", where x is the team ID (e.g. T1, T2, T3...)
Btw. you can't use the GUI game attribute values (screen below), they are messed up. (Their galaxy transcription is some random number, same for anything you select, that has no actual meaning in game)
0
Well you can force your variant as default (right click in the variant list, select "default"), but so far I didn't find a way to get rid of the "custom" variant. I think it is there so that the melee/vs. AI/custom filter on b.net lists it correctly under "custom".
0
Well you can disable colission and jump over units, but if you want to jump over unpathable area you will need the morph. Also, can you really use CatalogFieldSetValue? Seemed to me that whatever I tried to change, I always got the read-only error.
0
There is a function that returns unit's weapon, called something like "Unit Weapon" (it takes weapon ID as parameter, since your unit propably only has one, it's 1) Then, each weapon has field called "Damage Display Effect" that says which effect's damage is displayed. Getting the bonus would be harder, but I think looping through all behaviors-buffs and looking for damage bonuses should work, the green + comes only from buffs, right?
EDIT: I see what the problem is now. Many of the fields (in this case both "DisplayEffect" and "Effect") are defaulted to the weapon's id (=effect with same id as the weapon). I wonder what the catalog value is in such case, since CatalogGetValue should default to parent's value in case that the value is missing, so which "defaulting" comes first? (I can't try it out right now, editor crashes because of graphic card)