Hahaha, I'm laughing WITH RAGE!
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts MenuQuote from: Rosenberg on March 06, 2010, 12:52:43 AM
Something is wrong, either I'm good or all the AI available are too easy for me. I was eager to try this version but turned out to be a little easy for me (won as a zerg twice against protoss and terran). I have to say, it's better than the previous versions though. Thanks for the hard work anyways guys, keep it up.
Quote from: sLayed on March 05, 2010, 10:14:41 AM
For those who say building a fully mixed army from the get-go is a failure tactic, please just watch some jaedong fantasy games. The amazing thing about zerg is every unit the race can make stems from the hatchery, allowing for a very diverse and ever adapting build especially considering the cost of the units. This is of course beautifully countered by the fantasy build, where the individuals skill is truly brought out and great games of starcraft can be played. Both races are tested to the limit, and the players ability to utilize each unit in counter to their opponent is tested miraculously. The fantasy build goes up literally 80% of the techtree in 5 minutes or so. Early vulture harass into wraith or dropships, followed by possible valkyries or goliaths or even another swap into medic marine tank army. The "vulture => valkyrie => mm army complimented by tanks" can be seen in the 2009 OSL Finals, Jaedong vs Fantasy: '09 Batoo OSL Finals - Jaedong vs. Fantasy 1set 1/2 (Eng. Com.) Hope you enjoy this great game of starcraft. This whole series is really nice I find as it's a great and unique display of Zerg against Terran. Perhaps you might also want to watch some Jaedong vs Bisu games as they both typically use a similar mixed unit style. For example corsair reaver to dt drop, zealot drop, to high temps and archons.
Okay, something more important now. I have created a folder in my Starcraft II Beta folder called TriggerLib and I have placed the .galaxy files into that folder. Is that all I need to do to play with this new Protoss AI? What should I select as the difficulty with the Launcher? Thanks!
Quote from: sublime on March 04, 2010, 06:31:52 PM
really bad time to buy IMO. Basic economics man, supply and demand. when beta first came out, $300+ was the going rate for keys. Some even went as high as $400 or more. Once the second wave hit (blizzcon attendees), the # of auctions on ebay jumped threefold. I remember once seeing 180 results for "starcraft 2 beta". The price was going for barely over 200 and some people were making off with it for under 200. everyone knows another wave of invites will hit in a matter of days, the supply on ebay will be outrageously high again and thus the price will fall again. i was thinking about picking a key up off of ebay as well but it just isn't worth it at the current price. If 10,000 invites go out tomorrow you are going to be hurtin when you see the avg closing price on ebay. Just check the box for completed listings on the ebay search to get an idea of the avg closing price.
Quote from: sublime on March 04, 2010, 06:25:07 PMyes, they removed in SC2 because they realised it was the wrong decision. Think about it, do you want to micro when you are not near enemy units or when you are getting slaughtered? This is a very logical choice. When you are retreating from battle select all and retreating will make every unit slow as mothership. This is LOL
didnt wc3 make a group of units selected together all move at the pace of the slowest unit? this means that regardless of units having different speeds they would all travel the same speed as a group.
i havent really paid attention to this being the case in SC2. i guess it's not. cant say i really care
Quote from: Zalamander on March 04, 2010, 04:07:31 AM
AMAI2 v0.01 Released.
http://www.filefront.com/15733535/AMAI2_0.01.zip/
First simply prototype version, only contains a simple build for each race right now.
from readme:
Designer: Zalamander
Coder: AiAndy
v 0.01 (none cheating)
Experimental first release:
- Simple early mid game builds for all races.
- Enhanced harassment groups.
Next versions plans:
- Better harassment.
- Multiple builds based to counter enemy tactic.
- Better resource/expansion handling.
AMAI2 will have the same goal as our original AMAI for WarCraft 3.
To make an as challenging and unpredictable opponent as possible while remaining as fun as possible to play with and against.
This first version use the state system but enhanced with custom state switches no timer. Future version is going to have many different states to counter different strategies and do state switching based on enemy intell.
Reference:
Original AMAI for War3: http://www.hornes.pwp.blueyonder.co.uk/AMAI/
Quote from: 1337 on March 02, 2010, 08:06:10 PM
After downloading and investigating some of the various AIs on this forum, I have determined that most of them focus on the "macro" aspect of gameplay, with build orders and such. I have been trying to unravel the "micro" AI to modify individual unit AIs. My first project is to code the High Templars to use Psionic Storm. Currently, the AI will build Templars if told to in the build order but they just run toward you dumbly without doing anything.
Here's my first hack, which compiles and runs but does nothing...
Replace the entire AIThinkHighTemplar method with the following in TactProtAI.galaxy:order PsiStorm (int player, unit aiUnit, unitgroup scanGroup) {
order ord;
// aifilter filter;
int psiStormRadius = 2;
// unitgroup enemyGroup;
// int enemyCount;
// int i = 1;
// region r;
// unitfilter f;
// unit enemy;
// unit target;
// unitgroup enemyAreaUnits;
// region enemyArea;
// int enemyAreaCount = 0;
// int maxCount = 0;
point castPoint;
unitgroup stormGroup;
ord = AITacticalOrder(player, aiUnit, c_AB_PsiStorm);
if (ord == null) {
return null;
}
// f = UnitFilterStr("-;Missile,Dead,Stasis");
// r = RegionCircle(UnitGetPosition(aiUnit), AIRangeHighTemplar(player, aiUnit));
// enemyGroup = UnitGroupAlliance(player, c_unitAllianceEnemy, r, null, c_noMaxCount);
// enemyGroup = UnitGroupFilter(null, c_playerAny, enemyGroup, f, 0);
//
// enemyCount = UnitGroupCount(enemyGroup, c_unitCountAll);
// while(i <= enemyCount)
// {
// enemy = UnitGroupUnit(enemyGroup,i);
// enemyArea = RegionCircle(UnitGetPosition(enemy), psiStormRadius);
// enemyAreaUnits = UnitGroupAlliance(player, c_unitAllianceEnemy, enemyArea, null, c_noMaxCount);
// enemyAreaCount = UnitGroupCount(UnitGroupFilter(null, c_playerAny, enemyAreaUnits, f, 0),c_unitCountAll);
// if (maxCount < enemyAreaCount)
// {
// target = enemy;
// maxCount = enemyAreaCount;
// }
// i = i + 1;
// }
// OrderSetTargetPoint(ord,UnitGetPosition(target));
stormGroup = AIEffectGroup(player, c_EF_PsiStormArea, scanGroup);
castPoint = AIBestTargetPoint(
stormGroup,
3, // min hits
40, // damage base
3.0, // score
psiStormRadius,
UnitGetPosition(aiUnit),
AIRangeHighTemplar(player, aiUnit),
c_unitAttributeNone
);
if (castPoint == null) {
return null;
}
OrderSetTargetPoint(ord, castPoint);
if (!UnitOrderIsValid(aiUnit, ord)) {
return null;
}
return ord;
}
void AIThinkHighTemplar (int player, unit aiUnit, unitgroup scanGroup) {
marker mark;
order ord;
unitfilter f;
region r;
unitgroup enemyGroup;
int enemyCount;
if (AIEvalTacticalData(aiUnit, null)) {
return;
}
if (UnitGetPropertyInt(aiUnit, c_unitPropEnergy, c_unitPropCurrent) < 75)
{
return;
}
// If we already have a psi storm order, ignore any new orders since psi storm is more important.
// If we already have an PhaseShift order, ignore any new PhaseShift orders.
if (UnitOrderHasAbil(aiUnit, c_AB_PhaseShift) || UnitOrderHasAbil(aiUnit, c_AB_PsiStorm)) {
return;
}
f = UnitFilterStr("-;Missile,Dead,Stasis");
r = RegionCircle(UnitGetPosition(aiUnit), AIRangeHighTemplar(player, aiUnit));
enemyGroup = UnitGroupAlliance(player, c_unitAllianceEnemy, r, null, c_noMaxCount);
enemyCount = UnitGroupCount(enemyGroup, c_unitCountAlive);
if ((enemyCount < 2) ||
AIAllyEnemyRatio(player, UnitGetPosition(aiUnit), f, AIRangeHighTemplar(player, aiUnit), c_MinThreshold) > c_EnemyMultiplierHighTemplar) {
return;
}
ord = PsiStorm(player, aiUnit, scanGroup);
if (ord != null) {
AICast(aiUnit, ord, c_noMarker, c_castRetreat);
return;
}
}
I based my code off of AIThinkInfestor() and its associated InfestedTerrans() method, which work and *ARE USED IN GAME BY THE AI*. This is very important since Infested Terrans is one of the few abilities that the AI will actually use in game.
The code is also similar to AIThinkMothership() and the Vortex() method.
However, my code appears to have no effect. The commented lines in the PsiStorm() method represent my first attempt, and the uncommented lines are a different method of targetfinding, both of which do nothing.
In my build order I force the AI to build High Templars and research Psi Storm but he just never uses the ability.
My hypothesis as to why this code doesn't work is that it never runs. I found this gem of information in the TactTerrAI.galaxy (reaper AI code):
void AIThinkReaper (int player, unit aiUnit, unitgroup scanGroup) {
// **Reaper AI reproduced in XML**
// Melee AI does not call this AIThink routine.
// Reaper AI is left in TactTerrAI to serve as an example of two different ways to write the same
// AI. To see the xml equivalent of the Reaper AI, look in TacticalData.xml and TargetFindData.xml.
// In general, AI implemented in galaxy scripts will be slower than AI implemented in data.
// If it is convenient to express AI in data, one should do so. In this case, converting reaper AI
// to xml resulted in a 2x performance gain.
It appears that there are two different sources for the unit AI, and which source is chosen is completely arbitrary. I have scoured the MPQ files for the locations of the AIThink calls and I can't find any. This means that the decision whether to call the AIThink routine or use the XML version is made in the main SCII executable.
Here's what really confuses me though - Psionic Storm is listed in the XML with all the proper fields in the AbilData, EffectData, TacticalData, TargetFindData, but it still is never used.
The aforementioned Reaper AI is also listed in the XML files, but Reapers don't have active abilities so...
I thought I would post what I have done so far up here and see if anyone else has had luck in getting the AI to use activated abilities. Also, if anyone knows where the AIThink routines are called from, that would be most helpful.[/code]
Quote from: MiCrOMaN1 on March 03, 2010, 12:09:05 AMthat's prob because you played a lot of sc1 like me
Kinda way too easy for me...
Quote from: KabouterNL on March 02, 2010, 08:48:25 AM東風春風: Unable to feel a thing even if the eastern wind were to blow
Just played the game, but you can just press a worker and then select the damaged building and he/she will start repairing it.
Second: I haven't found a function where you can see all your damaged building, just click in them.