-
Posts
17.954 -
Joined
-
Last visited
-
Days Won
578
Everything posted by Stan`
-
How to create lowpoly trees with Blender 3D
Stan` replied to Enrique's topic in Tutorials, references and art help
Not too late to go back your contributions are always welcome. Let me know if you want to go back or if you need anything else Thanks for the feedback ! -
@elexis are those js error message normal ? @oOWOOHOo What os are you on ? As a temporary workaround you can disable TLS in the game options in the lobby tab. If you are on Mac os I have a fixed version for you.
-
How to create lowpoly trees with Blender 3D
Stan` replied to Enrique's topic in Tutorials, references and art help
Well ... 0 A.D. ? Yes you can use the source browser on trac.wildfiregames.com. We release our art under the cc by saying 3.0 license and there are copies and links to that license in the source as well as the artists in our credits.json So if You give credits to Wildfire games. You add a link or a copy of the license with your files you should be covered. Be careful though not all open source licenses are compatible. -
How to create lowpoly trees with Blender 3D
Stan` replied to Enrique's topic in Tutorials, references and art help
Most of the textures come from the game itself, though they are mostly in DDS format. Then the rest come from open source places like wikimedia. -
===[COMMITTED]=== Gallic Naked Warrior (Re-design)
Stan` replied to wackyserious's topic in Completed Art Tasks
Maybe heroes then. -
There is a fix by @wraitii but it's waiting for review by @vladislavbelov
-
AI bug: JavaScript error: simulation/ai/common-api/map-module.js
Stan` replied to mk12's topic in Bug reports
Hey thanks for the report, can you also upload the interestinglog.html ? Interesting. -
The main issue is that ResourceSupply is a lot similar to Health.js but that trees are not alive.
-
Unfortunately we can not (and will not) add them if they don't fit the time frame - 500 B.C. - 0 B.C. Terra Magna uses the same time frame as the game does. However it can totally go in a separate mod.
-
===[COMMITTED]=== Gallic Naked Warrior (Re-design)
Stan` replied to wackyserious's topic in Completed Art Tasks
Supposed to be a champion but I guess there could be one evolution I wonder though where it will be recruited if the tavern is replaced by the auditorium and what the auditorium will be for. I need to add carnyx maybe shingle roofs and then commit it -
===[COMMITTED]=== Gallic Naked Warrior (Re-design)
Stan` replied to wackyserious's topic in Completed Art Tasks
Guess it could be an upgrade maybe ? -
===[COMMITTED]=== Gallic Naked Warrior (Re-design)
Stan` replied to wackyserious's topic in Completed Art Tasks
Did they wear helmets @Genava55 it seems awkward to have an helmet when you are naked... -
Multiplayer lobby crash after 23 alpha re-release
Stan` replied to wonder-flo's topic in Bug reports
Hopefully it will I just need people to test it and and someone from the programming team to review it -
Multiplayer lobby crash after 23 alpha re-release
Stan` replied to wonder-flo's topic in Bug reports
You can download this version: https://www.mediafire.com/file/00lxxtdmsu64nrs/0ad-0.0.23b-alpha-osx64.dmg/file It should be fixed in it. Let me know if it works for you. Sorry for the inconvenience. -
@feneur Can you lift the post restriction of @Super_player0AD, please ?
-
===[COMMITTED]=== Horse Update 2.0 (Retexture)
Stan` replied to Alexandermb's topic in Completed Art Tasks
You need a better specmap but it looks better now. The blonde hair looks a bit weird. I guess that's because of the specmap but the hair looks wet -
1. @aeonios Could you tell me if the following gaia.7z tree_cretan_date palms are better ? Also could you run some kind of profiling to see what kind of performance drop we are dealing with ?
-
Moving Components Schemas to XML files
Stan` replied to Stan`'s topic in Game Development & Technical Discussion
My definition was more components that are required for the game to work -
Well done they look very nice. You should probably edit the unit mesh for them though Just grab the new unit meshes blend file let me know if you don't know where to find it.
-
Moving Components Schemas to XML files
Stan` replied to Stan`'s topic in Game Development & Technical Discussion
Also schemas contain examples that are useful for modders and the purpose of mod mod is to be the engine mod so that could make sense. -
Moving Components Schemas to XML files
Stan` replied to Stan`'s topic in Game Development & Technical Discussion
Well CmpTimer is an engine component -
Moving Components Schemas to XML files
Stan` replied to Stan`'s topic in Game Development & Technical Discussion
That's not changing. Still a property. It's just initiated by being run. That's more troublesome but you can rely on stuff like the hack above or just append the code. It's a string after all The engine schemas could be along the js ones. After all they are both components and this way easier to access for modders. -
I've been recently annoyed by having to edit indented strings in the ingame components and I was wondering if it wouldn't have been nice to have them as separate xml files instead. here is an example for the current resource supply component. diff --git a/binaries/data/mods/public/simulation/components/ResourceSupply.js b/binaries/data/mods/public/simulation/components/ResourceSupply.js index a015a190ee..1bc2ee9a5d 100644 --- a/binaries/data/mods/public/simulation/components/ResourceSupply.js +++ b/binaries/data/mods/public/simulation/components/ResourceSupply.js @@ -1,89 +1,7 @@ function ResourceSupply() {} -ResourceSupply.prototype.Schema = - "<a:help>Provides a supply of one particular type of resource.</a:help>" + - "<a:example>" + - "<Amount>1000</Amount>" + - "<MaxAmount>1500</MaxAmount>" + - "<Type>food.meat</Type>" + - "<KillBeforeGather>false</KillBeforeGather>" + - "<MaxGatherers>25</MaxGatherers>" + - "<DiminishingReturns>0.8</DiminishingReturns>" + - "<Change>" + - "<AnyName>" + - "<Constraint>Alive</Constraint>" + - "<Value>2</Value>" + - "<Interval>1000</Interval>" + - "</AnyName>" + - "<Growth>" + - "<Constraint>Alive</Constraint>" + - "<Value>2</Value>" + - "<Interval>1000</Interval>" + - "</Growth>" + - "<Decay>" + - "<Constraint>Dead</Constraint>" + - "<Value>-1</Value>" + - "<Interval>1000</Interval>" + - "<Delay>2000</Delay>" + - "<Limit>500</Limit>" + - "</Decay>" + - "</Change>" + - "</a:example>" + - "<element name='KillBeforeGather' a:help='Whether this entity must be killed (health reduced to 0) before its resources can be gathered'>" + - "<data type='boolean'/>" + - "</element>" + - "<element name='Amount' a:help='Amount of resources available from this entity'>" + - "<choice><data type='nonNegativeInteger'/><value>Infinity</value></choice>" + - "</element>" + - "<optional>" + - "<element name='MaxAmount' a:help='The max amount of resource the entity can reach when growing'>" + - "<ref name='nonNegativeDecimal'/>" + - "</element>" + - "</optional>" + - "<element name='Type' a:help='Type and Subtype of resource available from this entity'>" + - Resources.BuildChoicesSchema(true, true) + - "</element>" + - "<element name='MaxGatherers' a:help='Amount of gatherers who can gather resources from this entity at the same time'>" + - "<data type='nonNegativeInteger'/>" + - "</element>" + - "<optional>" + - "<element name='DiminishingReturns' a:help='The relative rate of any new gatherer compared to the previous one (geometric sequence). Leave the element out for no diminishing returns.'>" + - "<ref name='positiveDecimal'/>" + - "</element>" + - "</optional>" + - "<optional>" + - "<element name='Change' a:help='Optional element containing all the modifications that affects a resource supply'>" + - "<zeroOrMore>" + - "<element a:help='Optional element defining whether and how a resource supply regenerates or decays'>" + - "<anyName/>" + - "<interleave>" + - "<optional>" + - "<element name='Constraint' a:help='Specifies the health constraint for the change to be active'>" + - "<choice>" + - "<value>Alive</value>" + - "<value>Dead</value>" + - "</choice>" + - "</element>" + - "</optional>" + - "<element name='Delay' a:help='Delay in milliseconds before the object starts growing or decaying'>" + - "<ref name='nonNegativeDecimal'/>" + - "</element>" + - "<element name='Value' a:help='The amount of resource added per interval'>" + - "<data type='decimal'/>" + - "</element>" + - "<element name='Interval' a:help='The interval in milliseconds'>" + - "<data type='positiveInteger'/>" + - "</element>" + - "<optional>" + - "<element name='Limit' a:help='The upper or bottom limit of the value after which the change has no effect'>" + - "<data type='nonNegativeInteger'/>" + - "</element>" + - "</optional>" + - "</interleave>" + - "</element>" + - "</zeroOrMore>" + - "</element>" + - "</optional>"; +ResourceSupply.prototype.Schema = Engine.ReadFile("simulation/components/schemas/ResourceSupply.xml").replace("Resources.BuildChoicesSchema(true, true)", Resources.BuildChoicesSchema(true, true)); + ResourceSupply.prototype.Init = function() { diff --git a/source/ps/scripting/JSInterface_VFS.cpp b/source/ps/scripting/JSInterface_VFS.cpp index ec1a1d0572..71840a513b 100644 --- a/source/ps/scripting/JSInterface_VFS.cpp +++ b/source/ps/scripting/JSInterface_VFS.cpp @@ -268,6 +268,7 @@ void JSI_VFS::RegisterScriptFunctions_Simulation(const ScriptInterface& scriptIn scriptInterface.RegisterFunction<JS::Value, std::wstring, std::wstring, bool, &Script_ListDirectoryFiles_Simulation>("ListDirectoryFiles"); scriptInterface.RegisterFunction<bool, std::wstring, Script_FileExists_Simulation>("FileExists"); scriptInterface.RegisterFunction<JS::Value, std::wstring, &Script_ReadJSONFile_Simulation>("ReadJSONFile"); + scriptInterface.RegisterFunction<JS::Value, std::wstring, & JSI_VFS::ReadFile>("ReadFile"); } void JSI_VFS::RegisterScriptFunctions_Maps(const ScriptInterface& scriptInterface) And the side file in simulation/components/schemas <?xml version="1.0" encoding="UTF-8"?> <a:help>Provides a supply of one particular type of resource.</a:help> <a:example> <Amount>1000</Amount> <MaxAmount>1500</MaxAmount> <Type>food.meat</Type> <KillBeforeGather>false</KillBeforeGather> <MaxGatherers>25</MaxGatherers> <DiminishingReturns>0.8</DiminishingReturns> <Change> <AnyName> <Constraint>Alive</Constraint> <Value>2</Value> <Interval>1000</Interval> </AnyName> <Growth> <Constraint>Alive</Constraint> <Value>2</Value> <Interval>1000</Interval> </Growth> <Decay> <Constraint>Dead</Constraint> <Value>-1</Value> <Interval>1000</Interval> <Delay>2000</Delay> <Limit>500</Limit> </Decay> </Change> </a:example> <element name="KillBeforeGather" a:help="Whether this entity must be killed (health reduced to 0) before its resources can be gathered"> <data type="boolean"/> </element> <element name="Amount" a:help="Amount of resources available from this entity"> <choice> <data type="nonNegativeInteger"/> <value>Infinity</value> </choice> </element> <optional> <element name="MaxAmount" a:help="The max amount of resource the entity can reach when growing"> <ref name="nonNegativeDecimal"/> </element> </optional> <element name="Type" a:help="Type and Subtype of resource available from this entity"> Resources.BuildChoicesSchema(true, true) </element> <element name="MaxGatherers" a:help="Amount of gatherers who can gather resources from this entity at the same time"> <data type="nonNegativeInteger"/> </element> <optional> <element name="DiminishingReturns" a:help="The relative rate of any new gatherer compared to the previous one (geometric sequence). Leave the element out for no diminishing returns."> <ref name="positiveDecimal"/> </element> </optional> <optional> <element name="Change" a:help="Optional element containing all the modifications that affects a resource supply"> <zeroOrMore> <element a:help="Optional element defining whether and how a resource supply regenerates or decays"> <anyName/> <interleave> <optional> <element name="Constraint" a:help="Specifies the health constraint for the change to be active"> <choice> <value>Alive</value> <value>Dead</value> </choice> </element> </optional> <element name="Delay" a:help="Delay in milliseconds before the object starts growing or decaying"> <ref name="nonNegativeDecimal"/> </element> <element name="Value" a:help="The amount of resource added per interval"> <data type="decimal"/> </element> <element name="Interval" a:help="The interval in milliseconds"> <data type="positiveInteger"/> </element> <optional> <element name="Limit" a:help="The upper or bottom limit of the value after which the change has no effect"> <data type="nonNegativeInteger"/> </element> </optional> </interleave> </element> </zeroOrMore> </element> </optional>