Weapon mechanics

  • Hey guys, I have still not been able to find how to edit certain weapon stat values or the weapon mechanics in the game, so i’ve come here to ask :)

    I would like to know where and how to edit:

    Weapon damage, speed, damage type, combo speeds, stamina usage, strike and parry recovery windows etc etc
    Weapon and shield parry boxes, parry windows (time allowance).

    Weapon and shield passive, active, and lack of protection against arrows, melee, and both. (say I wanted to remove passive protection of shields against arrows, or I wanted to add passive protection to shields and weapons for both melee and arrows.)

    Player/class movement speed (forwards, backwards, strafing, sprinting, aiming, attacking, parrying).

    Player/class protection/resistances

    They are primarily what I would like to experiment with myself, I haven’t found any of those yet, I have only been able to place weapons in the map maker that offer edited passive protection through a drop down menu, and I would like to edit the base game statistics to put a mod together :)

    Also, if anyone with experience modding chiv (such as the warmod guys) are open to making some entirely new weapons, weapon usage, or abilities, I have some neat ideas, and using similar methods to the halfswording ability, I think we could make weapons, guarding and parrying, and other stuff far more dynamic.
    Cheers :)

  • To be more specific about what I am interested in working on with others, it includes the ability to ‘guard’ by holding the parry button and dynamically (similar to dead islands analogue controls) adjust from which angle the guard is facing - and to do all of this using real ingame models and adding active protection (similar to war mod) against melee to the guarding weapon. Of course, this would not offer the initiative/riposte bonus that a well placed, single click aimed parry (complete with reduced parry boxes to make it harder/more rewarding). Like the slasher game in pre alpha, I wouldn’t mind also making stabs and parrying, particularly of guard heavy (as opposed to tip/end heavy) weapons extremely quick to recover and combo, for those who have not seen the footage, here it is: https://www.youtube.com/watch?v=KpUNKXapzLg

    I would be interested in adding in new weapon modes (similar to how longswords can be used one or two handed, and with war mod - halfsworded) for a longer quarterstaff weapon, as well as some UI changes to free u class restrictions.

    But my first priority is to just play around with those values I asked about in the OP, if you aren’t sure about any of this stuff, please don’t hesitate to help with the more basic weapon stat changing mentioned initially :)

  • I would suggest you also get in touch with the many mod makers. Mr Crushed is a good bet as he might have changed
    every value for his mercs mod. Contact them via steam imo or pm them on this site iah.

  • Thank you :)

  • Scripts are in chivalrymedievalwarfare\Development\Src\AOC\classes

    The weapon stats are in the weapon attachements and weapon classes themselves.
    For instance: AOCWeapon_Zweihander and AOCWeaponAttachment_Zweihander
    Just check the default props at the end.

    Player/class movement speed:

    Family Classes.

    For instance: AOCFamilyInfo_Archer

    You will find this in the parent class (AOCFamilyInfo):

    // the character’s speed
    var() float CharSpeed;
    var() float AirControl;
    var() float GroundSpeed;
    var() float WaterSpeed;
    var() float AirSpeed;
    var() float Acceleration;
    var() float AccelRate;
    var() float JumpZ;
    var() float DodgeSpeed;
    var() float DodgeSpeedZ;
    var() float SprintModifier;
    var() float SprintTime;
    var() float SprintAccelRate;
    var() float LungeForward;
    var() float LungeZ;
    var() int SprintTurnSpeed;

    Player/class protection/resistances:

    DamageResistances array of the Family classes:
    var() array <float>DamageResistances; //EDamageType

    Can be set it like this on runtime using the Enum:

    NewDamageResistances[EDMG_Swing] = FMax((resi_swing_default - Amount), 0.0);
    NewDamageResistances[EDMG_Pierce] = FMax((resi_pierce_default - Amount), 0.0);
    NewDamageResistances[EDMG_Blunt] = FMax((resi_blunt_default - Amount), 0.0);
    NewDamageResistances[EDMG_Generic] = 1.0;

    family.DamageResistances = NewDamageResistances;</float>

  • Thank you so so much :)

  • Hey, sorry to be a nuisance, but I edited those files and made the changes I wanted (after making backups of course), before launching chiv again through steam in offline mode, but nothing had changed.

    Is this because I launched through steam (despite offline mode), or do I need to compile and cook these changes into a mod and load that (which I’m not sure how to do)?

    The changes I made were just changing numbers of weapon damage stats, changing movement speeds for different classes, and changing the resistance values to different damage types. I also wanted to slow down the players strafing, backwards, and forwards movement speed (all separately), turning axis speed, and whether or not panic parrying (i.e. during recovery) is permitted for each weapon, but am not familiar with the unreal engine’s language.

    Here is the line I have put together to change strafing speed during release and recovery and allow panic parrying, can someone please tell me if I have it right or wrong please?

    if (IsInState(‘Release’))

    if (IsInState(‘Recovery’))

    edit, i’ve lost the true/false code that allows/restricts panic parrying, sorry.

    Lastly, does anyone know what I need to change to edit the passive/active protection of shields and weapons against both melee and arrows? Currently the shields offer passive (which also covers active) protection against arrows, but not melee, and weapons offer no passive or active protection (but have the ability to parry which is how we block with them normally).

    Thanks again :)

  • Yeah you need to cook a new mod. There used to be some tutorials for this but I dunno where they’ve all gone.

  • I don’t know what all those ifs are , what about a case select statement ?
    or simply at a quick glance
    var A = Release
    var B = Recovery

    If ( A ( ’ Release’))
    B = 0.05

    A simple True False condition True would be Release
    False would be recovery.

    if A = True
    then execute result A

    if A = False
    then execute result using B

    Its been many years since I spent 40 hours a week coding in Watcomm C for old console games tbh

Log in to reply