The Forums Are Now Closed!

The content will remain as a historical reference, thank you.

[Mod] MOBA 1.0

By on May 20, 2011 10:24:47 PM from Demigod Forums Demigod Forums

LORD-ORION

Join Date 04/2009
+51

The mod can be downloaded in Pacov's excellent mod compilation package. It is highly recommended to use the enhanced AI, Uberfix and CrazyTown balance mod also found in this package.

What does it do?

It places more emphasis on the MOBA aspects of the game.

Citadel upgrades are as affordable as gearing out your Demigod. Citadel upgrade units do not yield gold and XP to the enemy, and as such can be fielded immediately.

The design intent is this.

1) Gold and XP upgrades will always be needed, upgraded units and towers are highly desirable because of the power they bring at a low cost.
2) This leaves you with a dilimna, how to manage upgrades on your team? There is going to be gear imbalances.
3) This brings us to the next MOBA aspect. Roles.
3a) The demigod who makes the citadel purchases is going to be inherently weaker, yet must still farm minotaurs and archers for gold and XP. So an undergeared demigod will be exposing himself in the lane.
3b) You are probably going to be quite shocked just how menacing early upgraded creeps can get because you never see them in normal Demigod. You can't really afford to skimp gear on your lane tanks. You can lose a game in 10 minutes now if you are careless and can't control your lanes, so these guys need to stack health and watch mana to control creeps.
3c) Yet who is going to try and kill those nice squishy citadel support demigods? It is pretty amazing just how easily some Demigods can be geared and configured for the "carry" MOBA role to rapidly attack weak demigods of opportunity.
4) You will find you can hit level 15 in most games that go to WR10 because of the higher citadel XP upgrade multipliers, but getting more levels past 15 gets increasingly more difficult because of the lack of XP awards from citadel creeps.
5) Gold production will also follow a more gradual curve instead of a rapid increase at WR10 when citadel creeps are fielded in normal demigod. You'll have more going into the end of a game, but this increased production from gold II and III tapers off slightly compared to the bounty you can get from a creep wave with giants.

So... the more specific change details.

1) Increases the number of Minotaurs from 5 to 8, increases the number of archers from 2 to 4. Adjusts their XP and bounty to make each wave have near the same amount of XP and bounty. (see below).
2) Removes all XP and Bounty for Priests, Angels, Catapultasauri and Giants.
3) Decreases the cost of citadel upgrades significantly.
4) Tie Gold II and III Production values to gold mines. Each gold mine you control gets +1 gold when these upgrades are purchased. (So capturing an enemy gold mine is great).
5) Increases the XP line of cit upgrades to 15% per level (normally 10% per level)

Specific Change List

All War Ranks
-RSoldier01 = 8

WR2 and above
-RArcher01 = 4

Citadel Costs
Structure Health: 500,750,1000,1250
Structure Firepower: 500,750,1000,1250
Gold Income: 1200,1800,2400
Troop Attack: 600,900,1200,1500
Troop Health: 600,900,1200,1500
Priests, Angels etc...: 1200,1800,2400,3000
Death Penalty: 500,750,1000
XP: 600,900,1200,1500
Trebs + FoG: 1250, 750

Citadel Upgrade Changes
CGoldIncome02 = Switch from hero, team to single, economic, Add +1 (so +1 gold per mine instead of +2 to all demigods)
CGoldIncome03 = Switch from hero, team to single, economic, Add +1 (so +1 gold per mine instead of +2 to all demigods)

CTraining01 = 0.15
CTraining02 = 0.3
CTraining03 = 0.45
CTraining04 = 0.6

Unit Changes

RSoldier01
Bounty = 3 (normally 4)
XP = 21 (normally 33)

RArcher01
Bounty = 4 (normally 8)
XP = 17 (normally 33)

RAngel01
Target Priority = Catapultasarus, Priest, Everything

Other Changes:
Various Enhanced AI overrides to change citadel purchasing weights. (Like buy priests at WR3).

Locked Post 46 Replies +1
Search this post
Subscription Options


Reason for Karma (Optional)
Successfully updated karma reason!
May 23, 2011 10:47:57 AM from Demigod Forums Demigod Forums

As mentioned, the CUR1 and FS1 saving cost in unmodded demigod was the starting basis for what I am doing in this mod. You really do need to keep someone weak in order to pay for those, but that happens only once in unmodded demigod and then everyone needs to start preparing for buying priests/angels/cata/giants which does the exact opposite, keeping everyone relatively equal in gear... so you get nothing but build decisions based on Demigod vs Demigod action.

In this mod, the "buy cit upgrades and someone is weaker" theme is re-occuring since they are affordable and meaningful. (or will be anyways)

Also, the upgrades in demigod are not worth the cost of gear. FS1, XP1 and Gold1 are the only upgrades taken regaulraly before WR8 / WR 10. That is a broken ass design problem.

Also I am well aware of Post-mortem and that it's a free kill on priests if you target the archers next to them. The problem is what to do about it without changing the stats. I have some ideas, but they need to be tested.

Also, thinking about putting a point in post-mortem is still one step ahead of Demigod as it is now.

 

There are many ways to make a lane sedna / DA when creeps actually mean something. It's just that creeps mean absolutely nothing in normal demigod so it isn't obvious without trying some things. Of course you may also argue that many of these things are not good enough, at which point I would agree and point to another mod where these things were addressed.

ring of divine might + minotaurs
Cloak of the night + Nature's rec / Warlord's punisher + heal IV
Yetis + Idols

Healing Wind and and Counter Healing are absolutely fabulous when citadel priests are in play.

DA

Furious Blade + Nature's Rec
Warp Area
Wrath of Heavens

Of course these two aren't exactly designed to be exceptional lane tanks, kind of like how QoT is not exactly designed to kill demigods.

If you go digging, you can find a quote from Frogboy where QoT is designed to be support/siege and not anti-demigod when I complained about her offensive kill power compared to UB.

Reason for Karma (Optional)
Successfully updated karma reason!
May 23, 2011 1:39:44 PM from Demigod Forums Demigod Forums

RoDM is once every ... 45 seconds? Granted, waves are every 30 seconds so that isn't a huge deal, but, in 2v2 the Sedna player is going to be splitting monks typically. 

I also "played" a RoDM Yeti-less Sedna for about a weak, roughly a dozen games. It doesn't work that great and you're dependent on just idols, which makes it stupid. 

Cloak of Night is 100 damage every minute. Irrelevant. 

Warlord's Punisher is 1500 gold. Same with NR, although that provides +mana at least. 

Healing Wind is only useful against other demigods that can't one-shot priests. It's not going to be useful against a TB. 

Your terminology of "lane tanks" sounds like TB is meant to be a "lane tank"? Granted, Fire TB can be a "lane tank" but a hybrid or Ice doesn't have the HP for it until end game (assuming they are BotS). 

Similarily, Sedna is not designed as a "carry" and so her poor anti-demigod (in terms of being able to kill, she's fine at holding or pushing lanes 1v1 and supporting in 2v2, are insufficient). 

Reason for Karma (Optional)
Successfully updated karma reason!
May 23, 2011 2:29:28 PM from Demigod Forums Demigod Forums

also, miri, I know that you should still purchase Currency in 1v1 and 2v2 games, I was just saying that in those game modes purchasing Currency is more analogous to macro decisions in RTS games. It takes awhile for Currency to pay itself back in 1v1, and, during that time your opponent who didn't drop the money for it might have map control which may equate a warscore, level or possibly even gold advantage (Cruc). 

1v1 games typically last quite awhile, so Currency is bound to pay for itself over the course of the game. But the opportunity cost and short-term sacrifice decision is more significant than it is in 2v2, which is in turn more significant than it is in 3v3 where it is meaningless. 

I do think that tying up the currency improvement should be tied up to gold flags, which at least provides the other team the opportunity to sabotage gold production for sometime, even though you can't do that on maps such as Levi. 

I'm just saying that RTS games such as SupCom is probably where GPG got the concept of Currency from and it isn't a terrible idea in those games, it just has picky implementation in this genre. 

Reason for Karma (Optional)
Successfully updated karma reason!
May 23, 2011 3:56:54 PM from Demigod Forums Demigod Forums

Sure, Sedna is not the killer, but if you maxed out healing wind, the enemy monks can´t heal and yours are boosted. So, as soon as they don´t give exp or gold it´s really nice to buy them a soon as possible (I did in the game I´ve played that mod). Since I also use crazytown 1.3 yetis are not that bad. But sure the AI is not a human, would be thougher then. But if you can push someone out of the lane you can farm creeps with your minions. Ok, just how it seems to me. I agree that the other are much better in cleaning a lane...

 

Still, Angels are not that good. They attack catapults if they can (crazytown 1.3) what is not a bad idea but if you buy them at warrank 6, it´s doesn´t feel like an big improvement. Since they don´t give experience or gold, what do you think about increasing there numbers up to 4? Maybe it makes a difference so that it is not only a upgrade to get catapults. What do you think?

Reason for Karma (Optional)
Successfully updated karma reason!
May 23, 2011 4:21:05 PM from Demigod Forums Demigod Forums

I guess Cloak of the Night was a bad example for creep control, my bad.

Sedna can be a carry easily.

She has speed skills
She has anti-healing
She has low cost damage output in pounce
She has a skill blocker
She can tower dive using heal afterwords or minions to attract tower fire

Just tack on Cloak of the Night and you are all set to ambush whoever is buying the cit upgrades on their team.

I dunno what to tell you about creep management with Sedna that you don't already know, other than its known her minions are terribad, but they can fill the job if fixed. (They even have an AoE skill at the end of the line) and that there are items to help you make up for a lack of AoE.

I guess almost any Demigod can play any role, but some have comparative disadvantages at it. This is, however, the great thing about Demigod. You aren't typecast to a specific role. In RoI, I play Lazarus, and I am a tank. That is all I am good at. I kill creeps and I can stun support units who enter to deeply into the lane for my carry to ambush.

eg: Sedna can be a Support Tank, or Carry, but has weakness as a lane tank without gearing and taking minions (which I think we can agree is broken balance wise compared to other minions)

If anything though, you could say Sedna makes an excellent support unit because even with little gear she is very hard to ambush and kill. Much more so then Reg for example.

By the same token you could say QoT could be a lane tank by Ground Spikes + Shield and Health items... but she is much better as a support unit who floats into a lane, protects her tank and destroys a creep wave and then demolishes a tower once her and a tank push.

Reason for Karma (Optional)
Successfully updated karma reason!
May 23, 2011 4:42:58 PM from Demigod Forums Demigod Forums

Quoting Plaguewraith,
Sure, Sedna is not the killer, but if you maxed out healing wind, the enemy monks can´t heal and yours are boosted. So, as soon as they don´t give exp or gold it´s really nice to buy them a soon as possible (I did in the game I´ve played that mod). Since I also use crazytown 1.3 yetis are not that bad. But sure the AI is not a human, would be thougher then. But if you can push someone out of the lane you can farm creeps with your minions. Ok, just how it seems to me. I agree that the other are much better in cleaning a lane...

 

Still, Angels are not that good. They attack catapults if they can (crazytown 1.3) what is not a bad idea but if you buy them at warrank 6, it´s doesn´t feel like an big improvement. Since they don´t give experience or gold, what do you think about increasing there numbers up to 4? Maybe it makes a difference so that it is not only a upgrade to get catapults. What do you think?

Angels in normal Demigod target Demigods as their primary target, and that was probably one of the worst changes in a previous patch. This is pretty much an automatic kamikazi attack and experience/bounty award to the other team.

Why Angles work better in CrazyTown: Angles' mobility gives them the opportunity to be picky with targets. eg: If I made other units pick cata at their primary, they would still end up shooting the frontline, and only once given the choice between a cata or some other unit, would pick the cata. Instead CrazyTown Angels are designed to offer "more" protection against catas when you are still at WR6/7. If you ignore the Angels, it's pretty easy to get 5-6 built up dive bombing your catas, and then you need to go out of your way to remove them.

In the next MOBA patch Angels will probably attack priests secondary to make them waste heals. Right now they still attack demigods primary which is stupidly bad for them.

The idea is that they will dive bomb priests until catas are out, and then dive bomb the catas 1st, then the priests, then whatever... but I need to see how that idea works out.

Reason for Karma (Optional)
Successfully updated karma reason!
May 23, 2011 4:57:04 PM from Demigod Forums Demigod Forums

I suppose if a REAL meta shift occured, Senda could be a carry.

If health-stacking became the exception, not the norm, Pounce > Silence > Pounce > Blink > Pounce could be very powerful for killing lower health demigods and you can't really escape from it, even if you're fast (and she can be fast as well). Granted, doing this would mean giving up heal or MP until level 13 (4 points pounce, 3 points HW, 3 points IG, 2 points Silence) but the potential is there. 

Sedna CAN do a lot of things, espiecially with CoN. But unless a very large meta shift occurs in terms of demigod and item selection, Sedna as a "carry" is going to be weak. 

Think about the current game. Every single demigod except Sedna has a powerful argument for solo-leveling on the mana side. 

UB: I am going to kill everyone if you give me 10 minutes to level. 

Oak: I sort of suck until level 7, but if I level I can be super useful and save the entire team. 

Queen: I start to suck around level 10, but if I have a large level advantage I can carry the team. Not to mention, I can level super fast on mana side. 

Reg: I can snipe people and buy all the citadel upgrades so I can still contribute to the team. 

DA: I'm utterly useless until I get Swap II, and max my two big nukes

Rook: I can demolish their entire mana side so we have a really nice area to push once we get catapults

Occ: I can level super fast and get tons of gold from marking creeps. 

Erebus: My minions can tear up the towers pretty well and if I get high level we can get some sweet ganks going once I'm level 8 or so. 

TB: I'm mostly useless early game unless I go Blood Fire. If I go BotS I can stay out and level faster than everyone else in the game and probably pick off their corner tower so I can be useful mid-game. 

Sedna: umm... I can spend forever killing creeps and bring some really big pounces that everyone is going to expect... that's good right guys?

Reason for Karma (Optional)
Successfully updated karma reason!
May 23, 2011 11:37:38 PM from Demigod Forums Demigod Forums

Quoting awuffleablehedgie,


Sedna: umm... I can spend forever killing creeps and bring some really big pounces that everyone is going to expect... that's good right guys?

OK, so if we were talking the "what would you do thread" what changes would you make to Sedna so she can lane better with a non-minion build?

eg: Heal II does 100 damage like Heal IV does 200 or something, so you could at least mark creeps for gold.

Reason for Karma (Optional)
Successfully updated karma reason!
May 24, 2011 12:17:45 AM from Demigod Forums Demigod Forums

well, I don't think Sedna's heal needs a buff and I don't think Sedna is weak even in unmodded demigod.

What about, and this might be a little overboard, but... Pounce does a forward "cleave" ability that only worked on creeps/minions (so no demigods). Something like 50% of pounces damage. That alone makes Pounce far more desirable, but that also stacks a lot of utility on top of Pounce (not more than Pent, I guess, which is a ranged snare, interrupt, damage debuff and a nuke). 

Other options could be Silence having an AoE damage component. 150/300/450.

The best would be making Yetis viable and doing appreciable AoE. Enough that Yeti I could work reasonably well against Minos, Yeti II against Priests, Yeti III against Catapults, Yeti IV against Giants. Think Ooze I or Rain of Ice I levels of effectiveness. That way we don't put more into Sedna's already-good abilities and we encourage build diversity (even if just 1 point in yetis). 

 

On the other hand, if you want to make Sedna into a full carry role that does suffer (a lot) against creeps, lower her armor a little, possibly even remove Heal IV's AoE damage, but increase her natural speed + attack speed in return. Buff MP so that she can spam pounce a bit more. 

Reason for Karma (Optional)
Successfully updated karma reason!
May 24, 2011 12:30:19 AM from Demigod Forums Demigod Forums

We could always do a small meta-impact area on pounce to send small unit types flying?

For reference Post-Mortem has a radius of 3 on it's meta-impact.

Reason for Karma (Optional)
Successfully updated karma reason!
May 24, 2011 1:50:11 AM from Demigod Forums Demigod Forums

yeah, doing that would be a reasonable way to balance out Sedna within the scope of the mod by making her stronger against minos but nothing else. It makes Pounce I stronger and gives you less reason to level it up, however. You may only want it to be active starting with Pounce II and increasing its range by 1 per level, or something. 

We don't want even MORE reasons to go full heal, full silence, full HW, 1 Pounce. 

It'd need to award gold/xp of course though. 

Reason for Karma (Optional)
Successfully updated karma reason!
May 24, 2011 3:03:57 AM from Demigod Forums Demigod Forums

Quoting awuffleablehedgie,
1v1 games typically last quite awhile, so Currency is bound to pay for itself over the course of the game. But the opportunity cost and short-term sacrifice decision is more significant than it is in 2v2, which is in turn more significant than it is in 3v3 where it is meaningless.

I do think that tying up the currency improvement should be tied up to gold flags, which at least provides the other team the opportunity to sabotage gold production for sometime, even though you can't do that on maps such as Levi.

Fair enough.  We're pretty much in agreement that it doesn't help anything to make all levels of currency cheaper and better (and thus less of a short-term setback even in 1v1), and that it needs to be fundamentally altered in some way-- either by tying to gold mines and altering maps to have more/better gold mine layout, or by integrating gold income directly into WR, or both.


I still like the idea and goal of this mod, but the methods used need to be more involved, including specific modification of maps, items (in particular, creating more and/or better anti-creep items), or Demigod balance.  You can't turn Demigod into HoN or LoL just by tweaking creeps and citadel upgrades (the latter being something that most other MOBAs don't even have).

 

LO, if you're interested in doing gold-mine based upgrades, all it should require is changing the ArmyBonuses' UnitCategory from 'HERO' to 'ECONOMIC', and adjusting the quantities accordingly (because the bonus will apply to each gold mine, each of which produces resources for everyone on the team).  This can of course be done non-destructively, e.g.:

Code: c++
  1. ArmyBonuses.CGoldIncome01.UnitCategory = 'ECONOMIC' --from 'HERO'
  2. ArmyBonuses.CGoldIncome01.ApplyArmies = 'Single' --from 'Team'
  3. Buffs.CGoldIncome01.Affects.GoldProduction.Add = 1 --from 4
Reason for Karma (Optional)
Successfully updated karma reason!
May 24, 2011 5:29:13 PM from Demigod Forums Demigod Forums

Hi!

I played a few games now of MOBA 0.2 (and also let the AI have a few battle with me just spectating).

 

Here some thoughts and indentations about it in no special order:

- AI works fine with buying citadel upgrade, though I wonder what´s there priority of buying them. It seems the AI buys armory, blacksmith and experience with higher priority than creatures? Could also be a money problem. Once a AI team skipped buying angels and bought them with catapults.

- The AI buy trebuchets and finger of god as last priority and haven´t bought graveyard at all. Is finger of god that bad? Since it´s 1250 gold together.

- Since more creeps spawn, high towers seem to be a good choice. Haven´t tried high towers with weak creeps yet, will try soon.

- Angels still seem not to be worth there gold even with there new targeting. More or stronger angels would be nice, I think. It would be nice to look forward to buy them (just like priests, catapults and giants of course).

- I can´t really tell about the balance of the new citadel upgrade prices, but it feels good that they´re much cheaper than before.

 

Later, maybe more about it.

 

 

Reason for Karma (Optional)
Successfully updated karma reason!
May 25, 2011 1:20:33 AM from Demigod Forums Demigod Forums

Heya,

Angels are not that good of an upgrade on their own, so the AI is set to buy them when they can afford them (more kills on one side and after minimal gear is bought) or when the other side fields cata 1st.

The AI will buy graveyard when it dies a few times, but not before. You can thank Miriyaka for that excellent algorithm. No point in buying it before that problem.

 

Reason for Karma (Optional)
Successfully updated karma reason!
May 25, 2011 1:23:39 AM from Demigod Forums Demigod Forums

Miriyaka,

I am thinking that tying Gold II and Gold III production to mines is an excellent idea.

WR5 is probably the time to start allowing greater disparity in skill to disadvantage an inferior team, but for the next build Gold I and WR3 should probably not allow a team to fall too far behind.

Reason for Karma (Optional)
Successfully updated karma reason!
May 25, 2011 4:17:31 AM from Demigod Forums Demigod Forums

Oh, also Trebs at 500 gold is WAYYYYYYYYY too stinking cheap.

I know Trebs aren't that great on Cata, but they are absurd on Levi and other larger maps. I think they are also very powerful on Prison because they actually can hit your opponents towers with them. 

I would make it map-dependent. Something like 350 gold per "potential" treb. 

Reason for Karma (Optional)
Successfully updated karma reason!
May 25, 2011 7:25:38 AM from Demigod Forums Demigod Forums

Quoting awuffleablehedgie,
I would make it map-dependent. Something like 350 gold per "potential" treb.

I was going to post that you can't do that, but that might not actually be true.

The trick is that CitadelUpgrades.lua is used by all three lua states, so whatever method you use would have to be safe in both user and sim (skipping ruleinit), and produce the same results.  As far as I know, by the time the file is imported in either game state, ScenarioInfo is already loaded from the map's _scenario file.  So, you should be string-search ScenarioInfo.map (which will contain the path to the .scmap file, e.g. '/maps/MAP07/MAP07.scmap') and alter the the costs based on a table.

Example code, may need some tweaking depending on whether or not what SessionGetScenarioInfo() returns is in the same format as ScenarioInfo: http://pastebin.com/nBAA4spU

 

Reason for Karma (Optional)
Successfully updated karma reason!
May 26, 2011 1:31:49 AM from Demigod Forums Demigod Forums

Quoting miriyaka,

Quoting awuffleablehedgie, reply 41I would make it map-dependent. Something like 350 gold per "potential" treb.
I was going to post that you can't do that, but that might not actually be true.

The trick is that CitadelUpgrades.lua is used by all three lua states, so whatever method you use would have to be safe in both user and sim (skipping ruleinit), and produce the same results.  As far as I know, by the time the file is imported in either game state, ScenarioInfo is already loaded from the map's _scenario file.  So, you should be string-search ScenarioInfo.map (which will contain the path to the .scmap file, e.g. '/maps/MAP07/MAP07.scmap') and alter the the costs based on a table.

Example code, may need some tweaking depending on whether or not what SessionGetScenarioInfo() returns is in the same format as ScenarioInfo: http://pastebin.com/nBAA4spU

 

Tried your code, the game crashes because of a nil value

Reason for Karma (Optional)
Successfully updated karma reason!
May 26, 2011 3:34:31 AM from Demigod Forums Demigod Forums

So, work through it.  Like I said, it'll need some adjustment based on what ScenarioInfo / SessionGetScenarioInfo return, but the data needed is definitely accessible somehow.  Comment out the last block, and see if it's being caused by the way it's getting ScenarioInfo.  If you don't want it to crash every time there's an error, put the whole thing it in a function and pcall it:

Code: c++
  1. local ok, msg = pcall(functionname)
  2. if not ok then
  3.     WARN("Error: "..msg)
  4. end

At least post the whole error.

Reason for Karma (Optional)
Successfully updated karma reason!
May 26, 2011 1:11:48 PM from Demigod Forums Demigod Forums

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x00913e53
    attempted to read memory at 0x00000000

Program : C:\Program Files (x86)\Stardock Games\Demigod\bin\Demigod.exe
Cmd line arguments :

Callstack:
    Unknown symbol (address 0x00913e53)

Reactor version: 1.10.00
Demigod version MAIN.1.30.0217
Last 100 lines of log...

A full record of the log is stored in the Demigodlog.txt file

warning: 00:00:22: Duplicate ArmyBonus detected: \000CTroopNumber03
warning: 00:00:22: Duplicate buff detected: \000CTroopNumber04
warning: 00:00:22: Duplicate ArmyBonus detected: \000CTroopNumber04
warning: 00:00:22: Duplicate buff detected: \000CTroopNumber05
warning: 00:00:22: Duplicate ArmyBonus detected: \000CTroopNumber05
warning: 00:00:22: Duplicate buff detected: \000CTroopNumber06
warning: 00:00:22: Duplicate ArmyBonus detected: \000CTroopNumber06
info: 00:00:22: CitadelUpgrades: Applying map-dynamic upgrade costs for state: Sim
warning: 00:00:22: ...es\demigod\dgdata.zip\lua\common\citadelupgrades.lua(1321): attempt to call field `?' (a nil value)
warning: 00:00:22: stack traceback:
warning: 00:00:22:         ...es\demigod\dgdata.zip\lua\common\citadelupgrades.lua(1321): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...es\demigod\dgdata.zip\lua\sim\ai\aishoputilities.lua(9): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...ock games\demigod\dgdata.zip\lua\sim\ai\herogoap.lua(6): in main chunk
warning: 00:00:22:         ...
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...games\demigod\dgdata.zip\lua\sim\ai\brainplanner.lua(9): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...6)\stardock games\demigod\dgdata.zip\lua\aibrain.lua(10): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22: ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): Error importing '/lua/common/citadelupgrades.lua'
warning: 00:00:22: stack traceback:
warning: 00:00:22:         [C]: in function `error'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(77): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...es\demigod\dgdata.zip\lua\sim\ai\aishoputilities.lua(9): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...ock games\demigod\dgdata.zip\lua\sim\ai\herogoap.lua(6): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...games\demigod\dgdata.zip\lua\sim\ai\brainplanner.lua(9): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...6)\stardock games\demigod\dgdata.zip\lua\aibrain.lua(10): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22: ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): Error importing '/lua/sim/ai/aishoputilities.lua'
warning: 00:00:22: stack traceback:
warning: 00:00:22:         [C]: in function `error'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(77): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...ock games\demigod\dgdata.zip\lua\sim\ai\herogoap.lua(6): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...games\demigod\dgdata.zip\lua\sim\ai\brainplanner.lua(9): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...6)\stardock games\demigod\dgdata.zip\lua\aibrain.lua(10): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22: ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): Error importing '/lua/sim/ai/herogoap.lua'
warning: 00:00:22: stack traceback:
warning: 00:00:22:         [C]: in function `error'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(77): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...games\demigod\dgdata.zip\lua\sim\ai\brainplanner.lua(9): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...6)\stardock games\demigod\dgdata.zip\lua\aibrain.lua(10): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22: ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): Error importing '/lua/sim/ai/brainplanner.lua'
warning: 00:00:22: stack traceback:
warning: 00:00:22:         [C]: in function `error'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(77): in function `import'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(60): in function `import'
warning: 00:00:22:         ...6)\stardock games\demigod\dgdata.zip\lua\aibrain.lua(10): in main chunk
warning: 00:00:22:         [C]: in function `doscript'
warning: 00:00:22:         [C]: in function `pcall'
warning: 00:00:22:         ...rdock games\demigod\dgdata.zip\lua\system\import.lua(73): in function `import'
warning: 00:00:22: Error importing /lua/aibrain.lua:
         Error importing '/lua/aibrain.lua'
         stack traceback:
             [C]: in function `error'
             ...rdock games\demigod\dgdata.zip\lua\system\import.lua(77): in function `import'
debug: 00:00:22: Loading module '\000/lua/platoon.lua\000'

Reason for Karma (Optional)
Successfully updated karma reason!
May 27, 2011 2:22:20 AM from Demigod Forums Demigod Forums

Well, you can see the log message at the top that tells you roughly how far it's getting before it runs into the error.  I don't have that code saved, and pastebin is down at the moment, so I can't tell you what the problem is exactly, but it's obviously a bad functioncall.

It may be that Demigod's lua version isn't 5.1 (it may be 5.01, whoops), and there is no string.match.  If this is the case, it's possible to use string.gsub to do the same thing (going by memory of the code, not 100% sure about the variable names):

Code: c++
  1. local mapName = string.gsub(mapPath, '^.+/([^/]+)%.scmap$', '%1')
The pattern is different, both to match hypothetical custom map names, and because gsub replaces text, so the pattern has to match the entire string and replace it with the capture in parentheses.

Since it's in sim, clearly the issue isn't caused by SessionGetScenarioInfo, and I don't recall there being any other function calls in that code, so it must be the string.match issue?

Edit: If that pattern doesn't work, I think string.find itself can return captures in values 3 and higher:

Code: c++
  1. local a, b, mapName = string.find(mapPath, '(MAP%d+)%.scmap$')
Reason for Karma (Optional)
Successfully updated karma reason!
Stardock Forums v1.0.0.0    #101114  walnut1   Server Load Time: 00:00:00.0000281   Page Render Time: