Leaderboard
Popular Content
Showing content with the highest reputation on 2023-06-12 in all areas
-
Here are some voices generated by @Yekaterina all of these tracks by typing the Chinese phrase into Luyinzhushou (a software that reads converts Chinese text to voices with selectable personalities). She is a native speaker of Chinese. The voices feature a range of accents and dialects to reflect the vastness and variety of Han Dynasty. A 21st century Chinese person should be familiar with these phrases. @AIEND can you check them? chinesevoice.zip2 points
-
2 points
-
Unless the map settings somehow determined that, the AI behavior is random (it has three presets: balanced, defensive, aggressive).2 points
-
1 point
-
Monsoon is a seasonal weather phenomenon. There is heavy rain and the water level of the rivers and lakes does rise. But i guess you know that already. This mod does bring that to 0 A.D. This is cantabrian highlands during the monsoon. Note: In the real world cantabria isn't at the latitude where the monsoon occurs Monsoon has negative and positive effects. Units drown, and building get washed away (well they get destroyed), ships... No ships swimm but they get destroyed when they go aground. Some resources vegetate during the monsoon. Fields survive the monsoon. The Mauryas have a bonus because they where faced with the monsoon. Actualy it's just because they have moveable dropsides(the elephants) which can also be garrisoned in ships. The docks float. I don't know if I should declare that a feature or a bug. Apart from that I don't know what to write. And i'm running out of jokes. You can find the code here. Epsilono.pyromod Edit: I forgot somethng: PetraAI doesn't play well with Monsoon. Hopefully we can organize a match in this thread. Monsoon is supported on thous maps: Cantabrian Highlands Acropolis Bay Death Canyon Deccan Plateau Greek Acropolis (only two player map) Greek Acropolis Night Miletus Peninsula Tuscan Acropolis1 point
-
Thanks! I've tested it and the AI was very passive, as it didn't try to attack at all. Otherwise, it works very well.1 point
-
What's for A27? Here are some of the new features that LocalRatings will include in the upcoming version 0.27.1. > Rating distribution charts - If you like charts, statistics, Gauss, or you simply like colors... it's time for new charts! See screenshots below. > Open LocalRatings from the lobby, the game setup or in-game - The LocalRatings page can be toggled as a dialog while playing a game, while in the game lobby or during the creation of a new game. Simply with a hotkey. > A new mod filter - Filter out replays with mods you want to exclude from the rating calculation. > Unrestricted weights - Weights can now be set to any value... even negative! That means that certain parameters can be considered as a malus for the rating calculation. Who knows what data will reveal. > AI players included - Games with Petra can be included for the rating calculation. Because even Publius Cornelius Rufinus deserves his own rating. > And other little perks - An optional vertical marker to navigate charts more easily, persistent table sorting preferences, improved performance... The new version 0.27.1 is currently in the final stage of development and will be released soon, after the necessary tests. If you are interested in trying it, you can download the development version (branch name: Alpha27) at this page. Cheers1 point
-
One new update from me: enhancedAI.pyromod This installer contains 2 improved AI programs. Venus is a more conservative upgrade that can't go wrong. Elytra is stronger but may be subject to bug warnings. I added 4 more difficult levels to the hardest one. In these four levels, bots get buffs in combat and more economic benefits. Instructions: Download the pyromod installer, then open the installer with 0AD. Select the module difficultbots, double click to activate it (it will be moved to the grid at the bottom of the screen), then save the module settings and restart the game To prevent ambiguity in the translated text, please refer to the original description: venus 是个比较保守的升级版, 不会出错。 elytra 更强但是有可能会受到bug警告。 在最难的基础上我加了4个更难的等级。 在这四个等级里,机器人会得到在战斗上的buff和更多的经济优惠。 安装步骤: 下载pyromod安装包,然后用0AD打开安装包。 选择这个模组 difficultbots,双击来激活(会被移到屏幕下方的大格子里),然后保存模组设置并重启x游戏1 point
-
1 point
-
I've made the first version of an improved AI - ElytraBot. You can install it as a mod using this Pyromod file. It is a separate bot from Petra so now you can make 2 different AIs fight against each other! elytrabot.pyromod Features: Adds 4 "extreme" difficulties on top of "Very Hard" for both AIs, each featuring more bonus in gathering rates and discounts in training and building. At every difficulty level, Elytra can confidently beat Petra of the same level on all maps. Sometimes it can beat Petra of one or two levels above! Elytra is more focused to economic development and larger scale attacks. It does less expansions and less harassments.1 point
-
Now I change the attack strategies. For full scale attacks, I increased the minimum number of units participating so that its attacks would be more fruitful. For small early raids, I inhibited the use of infantry and limited it to only "fast-moving" (aka cavalry) class so that it can reach the enemy quickly without delaying the build-up at home. if (type === PETRA.AttackPlan.TYPE_RUSH) { priority = 700; this.unitStat.Infantry = { "priority": 0.1, "minSize": 0, "targetSize": 1, "batchSize": 1, "classes": ["Infantry"], "interests": [["strength", 1], ["costsResource", 0.5, "stone"], ["costsResource", 0.6, "metal"]] }; this.unitStat.FastMoving = { "priority": 1, "minSize": 10, "targetSize": 11, "batchSize": 1, "classes": ["FastMoving+CitizenSoldier"], "interests": [["strength", 1]] }; if (data && data.targetSize) this.unitStat.Infantry.targetSize = data.targetSize; this.neededShips = 1; } else if (type === PETRA.AttackPlan.TYPE_RAID) { priority = 10; this.unitStat.FastMoving = { "priority": 1, "minSize": 3, "targetSize": 4, "batchSize": 2, "classes": ["FastMoving+CitizenSoldier"], "interests": [ ["strength", 1] ] }; this.neededShips = 1; } else if (type === PETRA.AttackPlan.TYPE_HUGE_ATTACK) { priority = 900; // basically we want a mix of citizen soldiers so our barracks have a purpose, and champion units. this.unitStat.RangedInfantry = { "priority": 0.7, "minSize": 50, "targetSize": 80, "batchSize": 5, "classes": ["Infantry+Ranged+CitizenSoldier"], "interests": [["strength", 3]] }; this.unitStat.MeleeInfantry = { "priority": 0.7, "minSize": 50, "targetSize": 70, "batchSize": 5, "classes": ["Infantry+Melee+CitizenSoldier"], "interests": [["strength", 3]] }; this.unitStat.ChampRangedInfantry = { "priority": 1, "minSize": 0, "targetSize": 18, "batchSize": 3, "classes": ["Infantry+Ranged+Champion"], "interests": [["strength", 3]] }; this.unitStat.ChampMeleeInfantry = { "priority": 1, "minSize": 0, "targetSize": 18, "batchSize": 3, "classes": ["Infantry+Melee+Champion"], "interests": [["strength", 3]] }; this.unitStat.RangedFastMoving = { "priority": 0.7, "minSize": 1, "targetSize": 20, "batchSize": 4, "classes": ["FastMoving+Ranged+CitizenSoldier"], "interests": [["strength", 2]] }; this.unitStat.MeleeFastMoving = { "priority": 0.7, "minSize": 1, "targetSize": 20, "batchSize": 4, "classes": ["FastMoving+Melee+CitizenSoldier"], "interests": [["strength", 2]] }; this.unitStat.ChampRangedFastMoving = { "priority": 1, "minSize": 0, "targetSize": 15, "batchSize": 3, "classes": ["FastMoving+Ranged+Champion"], "interests": [["strength", 3]] }; this.unitStat.ChampMeleeFastMoving = { "priority": 1, "minSize": 0, "targetSize": 15, "batchSize": 3, "classes": ["FastMoving+Melee+Champion"], "interests": [["strength", 2]] }; this.unitStat.Hero = { "priority": 1, "minSize": 0, "targetSize": 0, "batchSize": 1, "classes": ["Hero"], "interests": [["strength", 2]] }; this.neededShips = 1; } else { priority = 700; this.unitStat.RangedInfantry = { "priority": 1, "minSize": 50, "targetSize": 90, "batchSize": 3, "classes": ["Infantry+Ranged"], "interests": [["canGather", 1], ["strength", 1.6], ["costsResource", 0.3, "stone"], ["costsResource", 0.3, "metal"]] }; this.unitStat.MeleeInfantry = { "priority": 1, "minSize": 40, "targetSize": 50, "batchSize": 3, "classes": ["Infantry+Melee"], "interests": [["canGather", 1], ["strength", 1.6], ["costsResource", 0.3, "stone"], ["costsResource", 0.3, "metal"]] }; this.unitStat.FastMoving = { "priority": 1, "minSize": 0, "targetSize": 30, "batchSize": 2, "classes": ["FastMoving+CitizenSoldier"], "interests": [["strength", 1]] }; this.neededShips = 1; } The trick was increasing the minimum number of each unit type to ensure a large army.1 point
-
I've made attempts to solve some of these issues. I first made changes to config.js at 0ad/binaries/data/mods/public/simulation/ai/petra/config.js this.Military = { "towerLapseTime": 9000, // Time to wait between building 2 towers "fortressLapseTime": 5000, // Time to wait between building 2 fortresses "popForBarracks1": 40, "popForBarracks2": 95, "popForForge": 120, "numSentryTowers": 1 }; this.DamageTypeImportance = { "Hack": 0.075, "Pierce": 0.095, "Crush": 0.010, "Fire": 0.015 }; this.Economy = { "popPhase2": 150, // How many units we want before aging to phase2. "workPhase3": 200, // How many workers we want before aging to phase3. "workPhase4": 250, // How many workers we want before aging to phase4 or higher. "popForDock": 30, "targetNumWorkers": 40, // dummy, will be changed later "targetNumTraders": 0, // Target number of traders "targetNumFishers": 0, // Target number of fishers per sea "supportRatio": 0.35, // fraction of support workers among the workforce "provisionFields": 2 }; // Note: attack settings are set directly in attack_plan.js // defense this.Defense = { "defenseRatio": { "ally": 1.4, "neutral": 1.8, "own": 2 }, // ratio of defenders/attackers. "armyCompactSize": 5000, // squared. Half-diameter of an army. "armyBreakawaySize": 1000, // squared. "armyMergeSize": 2000 // squared. }; this.priorities = { "villager": 800, // should be slightly lower than the citizen soldier one to not get all the food "citizenSoldier": 800, "trader": 1, "healer": 1, "ships": 1, "house": 550, "dropsites": 500, "field": 450, "dock": 1, "corral": 1, "economicBuilding": 90, "militaryBuilding": 200, "defenseBuilding": 1, "civilCentre": 1, "majorTech": 500, "minorTech": 50, "wonder": 1, "emergency": 1000 // used only in emergency situations, should be the highest one }; This part seems to determine its difficulty; the multipliers give the AI a bonus gathering rate and train time reduction. So I changed the easiest mode to the same as the hardest Petra AI, then the harder modes to more insane values. PETRA.Config.prototype.Cheat = function(gameState) { // Sandbox, Very Easy, Easy, Medium, Hard, Very Hard // rate apply on resource stockpiling as gathering and trading // time apply on building, upgrading, packing, training and technologies const rate = [ 1.00, 1.3, 1.5, 1.7, 2, 5 ]; const time = [ 1.00, 0.7, 0.5, 0.3, 0.2, 0.1 ]; const AIDiff = Math.min(this.difficulty, rate.length - 1); SimEngine.QueryInterface(Sim.SYSTEM_ENTITY, Sim.IID_ModifiersManager).AddModifiers("AI Bonus", { "ResourceGatherer/BaseSpeed": [{ "affects": ["Unit", "Structure"], "multiply": rate[AIDiff] }], "Trader/GainMultiplier": [{ "affects": ["Unit", "Structure"], "multiply": rate[AIDiff] }], "Cost/BuildTime": [{ "affects": ["Unit", "Structure"], "multiply": time[AIDiff] }], }, gameState.playerData.entity); }; At the new "Very Hard" level, this improved AI can beat 7 regular Petra AIs like I do! It still makes the same mistakes but the shear cheating bonus makes it dominate all.1 point
-
1 point
-
How about a smurf championship with a prize pool of $50? Each would create a smurf account in the game (with @Stan` permission). A person, in this case you @DerekO, is responsible through private messages about nicknames of the players, only you would know who each nick belongs to. Players wouldn't know who they're playing against and specs must guess who's who based on style and skills.0 points