Jump to content

man_s_our

Community Members
  • Posts

    80
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by man_s_our

  1. On 21/10/2023 at 5:42 AM, wowgetoffyourcellphone said:

    I think the main point would be that by spreading out your attacks, you are causing damage to a larger number of units and this is affecting those units' ability to fight back. 

    realistically. to balance the ranged units you need to give them higher spread. especially for non promoted units.

    in most battles, archers used to need carpet shooting entire areas to be able to kill enemy soldiers. while they didn't need much arrow hits to kill someone.

  2. On 22/10/2023 at 5:01 PM, LienRag said:

    Historically very accurate, but how would you do this without adding to the burden of micro-management ?

    Also, auras for the altars are not how sacrifices worked historically.

    It would be more like a morale boost (but again, we'd need to have morale for it to work).

    in my long term plans for my mod I want to add a component that takes care of all social related stuff. starts from family and tribes/races and introduces religions to form basics for loyalty and bonuses ...etc

  3. On 18/10/2023 at 4:09 AM, wowgetoffyourcellphone said:

    Maybe make health and healing more important and also heavily incentivize spread out your attacks to as many enemy soldiers as possible by making attack values have an inverse relationship with health. 

    -10% health = -5% attack; -20% health = -10% attack; and so on. Kind of doesn't make sense for soldiers who are on their last leg (5% health or something) to be able to inflict full attack damage. This "realism" is actually a byproduct of incentivizing the player to form long lines and attack as many of the enemy troops as possible instead of sniping or focus-firing.

     

    Just a random thought exercise. I have no concrete proposal here. 

    I thought about something similar today (but for now my priority is patching UnitAI to handle separation of horse/rider entities)

    my idea was that at 50%+ health the units aren't healable  but have some positive health change.

    at 50%-25% they're healable, have no health change and are weaker (especially movement speed).

    at 25% or less the template change to dead looking template and have negative health change which makes them need aids or otherwise they die.

    maybe even make them capturable as captives in that state?

    edit:

    if you want a more realistic strategic effects from injuries, you can make the injured and captured soldiers keep consuming population to force players do captives exchanges.

    • Thanks 1
  4. after I built A27 and executed pyrogenesis I got these two results:

    when I placed it in system (debian, pyrogenesis in /usr/games and data in /usr/share/games/0ad and .so files in /usr/lib) it gave me this error:

    CreateDirectories: failed to mkdir /usr/data (mode 448)
    Function call failed: return value was -110300 (Insufficient access rights to open file)
    Location: file_system.cpp:168 (CreateDirectories)

    Call stack:

    (0x564f5ee82375) pyrogenesis(+0x673375) [0x564f5ee82375]
    (0x564f5ee31d21) pyrogenesis(+0x622d21) [0x564f5ee31d21]
    (0x564f5ee337d3) pyrogenesis(+0x6247d3) [0x564f5ee337d3]
    (0x564f5ee31f33) pyrogenesis(+0x622f33) [0x564f5ee31f33]
    (0x564f5ee44baa) pyrogenesis(+0x635baa) [0x564f5ee44baa]
    (0x564f5ee44822) pyrogenesis(+0x635822) [0x564f5ee44822]
    (0x564f5ee447c7) pyrogenesis(+0x6357c7) [0x564f5ee447c7]
    (0x564f5ee5926e) pyrogenesis(+0x64a26e) [0x564f5ee5926e]
    (0x564f5eadb882) pyrogenesis(+0x2cc882) [0x564f5eadb882]
    (0x564f5e8c69d2) pyrogenesis(+0xb79d2) [0x564f5e8c69d2]
    (0x564f5e8b2688) pyrogenesis(+0xa3688) [0x564f5e8b2688]
    (0x7f9dba6e0d0a) /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea) [0x7f9dba6e0d0a]
    (0x564f5e8c3aca) pyrogenesis(+0xb4aca) [0x564f5e8c3aca]

    errno = 13 (Insufficient access rights to open file)
    OS error = ?


    (C)ontinue, (S)uppress, (B)reak, Launch (D)ebugger, or (E)xit?

    trying to use -writableRoot always give me error: Skipping file '/home/user/.local/share/0ad' which does not have a mod file extension.

    when I run it inside binaries it works fine.

    • Like 1
  5. I edited some meshes using blender to resize them to half in order to generate ones for human and animal infants. when I tested the mesh on an archer I found it instead of changing the size of actor it just made it look ugly.

    what am I doing wrong here.

    here is a screenshot showing the comparison:

    Screenshot from 2023-10-14 11-44-23.png

    • Like 1
  6. I have components for that but they aren't fully finished yet. although they're enough if you want to make it for players only use it.

    PS: in my WIP mod food resources are devided. so, you need few customizations to use it with the public mod.

    edit:

    you also need the custom unit ai for the purpose of the units break for launch don't break the cammands' series.

    MeatSupplies.js VeganSupplies.js WaterSupplies.js

    UnitAI.js

    • Like 3
  7. 10 hours ago, Freagarach said:

    Very cool! It seems you are coming close to something we may be able include in the main game (feature wise), could you upload a patch on our Phabricator, please? (https://trac.wildfiregames.com/wiki/SubmittingPatches) It will allow us to give direct comments on your code and speed up the inclusion. :) (I see quite some hardcoding in some functions, but it might be unavoidable.)

    I already planned to do it when I complete the TODO list. the same with the hunger script when finishing the last bug.

  8. @Freagarach

    changelog:

    riders' orientation is now the same with the horse most the time when the horse is walking (turretable.js)

    the horse will automatically go to the targeted unit so that the rider attack it instead of having to make 2 seperate orders.

    the cavalry units are automatically using hit-run tactics (can be disabled by replacing "range.max / 2" in the line 5087 by range.min)

    TODO:

    fix the bugs related to gathering (when gather order issued you can't stop it)

    UnitAI.js Turretable.js

  9. 11 hours ago, Freagarach said:

    Glad you got it working. :) I've bitten my teeth on this turret-order problem before, so I'm very interested in any results, so please do keep us (me) updated. :)

    till now the problems I got is:

    when order the unit to gather while it's riding a horse (propably will be solved after editing more UnitAI functions)

    if I order a melee unit to ride a horse and send it to fight it doesn't attack the enemies.

    I don't know which function that will return the current movement speed (instead of max speed) to use it for archer's spread. (solved)

  10. I fond the problem was in the need to turn the args into dictionary first.

    this code solves the problem:

    UnitAI.prototype.Walk = function(x, z, queued, pushFront)
    {
    	let mov = 1;
    	let cmpTurretable = Engine.QueryInterface(this.entity, IID_Turretable);
    	if (cmpTurretable)
    	{
    		mov = 0;
    		let tur = cmpTurretable.HolderID();
    		if (tur)
    		{
    			let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
    			if (cmpTimer)
    			{
    				var data = { "x": x, "z": z, "queued": queued, "pushFront": pushFront };
    				cmpTimer.SetTimeout(tur, IID_UnitAI, "Walkt", 100, data);
    			}
    		}
    		else
    			mov = 1;
    	}
    	if (mov)
    	{
    		if (!pushFront && this.expectedRoute && queued)
    			this.expectedRoute.push({ "x": x, "z": z });
    		else
    			this.AddOrder("Walk", { "x": x, "z": z, "force": true }, queued, pushFront);
    	}
    };
    UnitAI.prototype.Walkt = function(data, lateness)
    {
    	let x = data.x;
    	let z = data.z;
    	let queued = data.queued;
    	let pushFront = data.pushFront;
    	if (!pushFront && this.expectedRoute && queued)
    		this.expectedRoute.push({ "x": x, "z": z });
    	else
    		this.AddOrder("Walk", { "x": x, "z": z, "force": true }, queued, pushFront);
    };

     

  11. I was trying to implement the feature of seperate entities for horse riders but I got a problem and didn't knew what the thing that keeps changing coordinates.

    the logs gave me:

    the horse 7079 got the order from 7085, x = 608.2567138671875 z = 852.1669311523438
    
    7079 ordered to Walk to x = 841.0175601990993, z = 100

    the function is:

    UnitAI.prototype.Walk = function(x, z, queued, pushFront)
    {
    	let mov = 1;
    	log(this.entity + " ordered to  Walk to x = " + x + ", z = " + z);
    	let cmpTurretable = Engine.QueryInterface(this.entity, IID_Turretable);
    	if (cmpTurretable)
    	{
    		mov = 0;
    		log(this.entity + " Turretable");
    		let tur = cmpTurretable.HolderID();
    		log(tur + " is Turret");
    		if (tur)
    		{
    			let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
    			if (cmpTimer)
    			{
    				log("the horse " + tur + " got the order from " + this.entity + ", x = " + x + " z = " + z);
    				cmpTimer.SetTimeout(tur, IID_UnitAI, "Walk", 100, x, z, queued, pushFront);
    			}
    		}
    		else
    			mov = 1;
    	}
    	if (mov)
    	{
    		if (!pushFront && this.expectedRoute && queued)
    			this.expectedRoute.push({ "x": x, "z": z });
    		else
    			this.AddOrder("Walk", { "x": x, "z": z, "force": true }, queued, pushFront);
    	}
    };

    any ideas?

  12. so, I added some features in my mod (WIP) that included units being hungry/thirsty and supplying units. the hungry units needs gathering food or otherwise they start losing their health. the same (but higher rate) goes for thirsty units.

    this requires that units automatically go gather their needed supplies but I wonder whether there is predefined functions for this or I need to define a new function that looks for the near supply units and start gathering it.

  13. 12 hours ago, Freagarach said:

    Cooperative play is not yet possible, but planned (https://trac.wildfiregames.com/ticket/2459). One can work around that by enabling cheats and changing perspective.

      Hide contents
    1. Start a match with one player observer and cheats enabled.
    2. Let the observer use <alt>+<d> to open the development panel.
    3. Click "Change perspective".
    4. Select the player to control at the top right of the screen.
    5. Enjoy cooperative play, but remember: "With great power comes great responsibility.".

     

    good to know this feature is already planned

  14. 11 minutes ago, borg- said:

    You can have a 5v5 or 6v6 game but you will have to reduce the max population to 150 for example, which might make the experience not so fun since you need a good amount of units to collect resource and another to fight.

    the idea is not about having many players. but about being able to divide leadership between multiple commanders instead of having only one leader for the entire army.

  15. 4 hours ago, nani said:

    https://code.wildfiregames.com/D2667

    With this you can try up to 30 players (or AI). You will need to rebase any changes and compile it, and only works from command line but works.

    Also had alternative implementation that allowed arbitrary sizes (> 100) but is not published.

    they play as different sides, right?

    what I meant is being able to play as commanders in  one nation (not just allies) and share the resources and such things.

    but I think it can be edited through JS (by editing deplomacy and gui and such)

×
×
  • Create New...