Search results for query: *

  1. abc123456

    TaleWorlds Modding Q&A

    It is not a dialogue, but a menu.
    Code:
    TaleWorlds.CampaignSystem.dll
    TaleWorlds.CampaignSystem.SandBox.CampaignBehaviors.EncounterGameMenuBehavior

    Actually there seems to be a few API that seems to deal with 2 parties meeting, and I suspect some of them doesn't even work.


    At the top of my head, two methods I can remember, spelling may be incorrect:

    onPreConversation
    onPartyDoMeet ? <= this one dont seem to work
  2. abc123456

    Modding in C# feels incredibly boring and tedious.

    I am also learning C# to try and mod Bannerlord and I have to agree with OP's assessment of the language. Coming from Python, Lisp, even C it seems like a TON of boilerplate to do even simple tasks. If I understand the paradigm correctly, in order to mod any feature you have to override the entire class? What a waste. In Python for example, you can just monkey patch in a specific method or attribute and avoid blasting an entire base class. Seems overriding classes is just going to create unnecessary conflicts between mods and between different versions. The whole public/private layout of the code I have viewed so far in dotPeek seems arbitrary and entirely unnecessary. Tons of getters and setters that do nothing but retrieve an attribute or set that attribute.

    To be fair, python,Lisp and C were not designed for complex gameplay programming. Can you imagine writing gameplay code in Unreal Engine 4 with these languages? It would be a nightmare. C# is the right choice because it offers scalability and maintainability of complex code but has a much easier learning curve than C++. Out of all the object oriented programming languages out there that offers a balance of scalability and ease of use, C# strikes the right balance. I agree there might be more boilerplate for some cases compared to say Python, but you have to understand we need to cater for all kinds of projects large or small. Every language has its weaknesses and strengths and we can't please everyone for all cases. If you are making a small and simple mod, then C# is overkill but if you are making a complex overhaul, then C# is the way to go... or C++ or even Rust.
  3. abc123456

    Help: AgentDrivenProperties (AI Combat Effectiveness)

    I tried your code and I'm not 100% convinced by it. Maybe it is the way I implemented it... Could you upload the file just so I can test ?
    I found some exploits too. It seems like under some circumstances the AI dies easily despite being able to feint and parry very well. Frustrating.
    Please TaleWorlds, just give Godlike AI difficulty so we can build fun mods around the AI system.
  4. abc123456

    Help: AgentDrivenProperties (AI Combat Effectiveness)

    I have been working on that piece of code a few hours too. But at the time it was located in another model.

    Anyway, you want to consider that those abilities are, for an overwhelming part, between 0 and 1. Only the timers and some AI abilities that I might have missed do not fall into that range.

    So setting 100 or everything like that seems pretty suspicious considering you want to reverse engineer the code. It also explains why you experienced troubles with the "decide -> attack" ability.

    To be honest, I think this part of the code is handled properly by the developers and I think the combat AI is very convincing with the right values set. It is extremely easy to tweak as is the damage system. We just need a way now to control the formation and strategic AI and we will be able to build some great mods.

    I worked it out and made a killer AI that feints and parry like crazy. Unfortunately I can cheese it by kick-attack. Do you know a way to control the AI distance? If I can make the AI keep a safe distance, then I can't kick it.

    BTW, I think some of these code is unimplemented.

    AIKick and AiTryChamberAttackOnDecide doesn't work. I think AI can't kick, bash or chamber.

    Here is the updated code, try that and the AI will be insane. I am going to scale the abilities with melee skill, of course and remove the irrelevant ones.

    BTW, the combat AI is actually very bad. For someone new or maybe never practiced much it's ok. But for experienced players it is way too easy, hence why I am doing this because the combat AI is the core for everything else. I want to make a better tournament mod, but that falls apart without a good 1v1 AI.


    Code:
     agentDrivenProperties.AiParryDecisionChangeValue = 0;
                agentDrivenProperties.AiMovemetDelayFactor = 0;
                agentDrivenProperties.AiCheckMovementIntervalFactor = 0;
                agentDrivenProperties.AiAttackingShieldDefenseTimer = 0;
                agentDrivenProperties.AiAttackingShieldDefenseChance = 0;
                agentDrivenProperties.AIRealizeBlockingFromIncorrectSideAbility = 0;
                agentDrivenProperties.AIDecideOnRealizeEnemyBlockingAttackAbility = 100;
                agentDrivenProperties.AIParryOnAttackingContinueAbility = 100;
                agentDrivenProperties.AiDecideOnAttackingContinue = 100;
                agentDrivenProperties.AiDecideOnAttackContinueAction = 100;
                agentDrivenProperties.AiDecideOnAttackWhenReceiveHitTiming = 0;
                agentDrivenProperties.AiAttackCalculationMaxTimeFactor = 0;
                agentDrivenProperties.AiKick = 0;
                agentDrivenProperties.AIParryOnAttackAbility = 100;
                agentDrivenProperties.AIDecideOnAttackChance = 100;
                agentDrivenProperties.AiAttackOnParryTiming = 0;
                agentDrivenProperties.AIAttackOnParryChance = 0;
                agentDrivenProperties.AiDefendWithShieldDecisionChanceValue = 0;
                agentDrivenProperties.AiTryChamberAttackOnDecide = 0;
                agentDrivenProperties.AiMoveEnemySideTimeValue = 0;
                agentDrivenProperties.AiStandGroundTimerValue = 0;
                agentDrivenProperties.AIEstimateStunDurationPrecision = 0;
                agentDrivenProperties.AISetNoDefendTimerAfterParryingAbility = 0;
                agentDrivenProperties.AISetNoDefendTimerAfterHittingAbility = 0;
                agentDrivenProperties.AISetNoAttackTimerAfterBeingParriedAbility = 0;
                agentDrivenProperties.AISetNoAttackTimerAfterBeingHitAbility = 0;
                agentDrivenProperties.AiRandomizedDefendDirectionChance = 0;
                agentDrivenProperties.AiSpeciesIndex = 0;
                agentDrivenProperties.AiUseShieldAgainstEnemyMissileProbability = 0;
                agentDrivenProperties.AiRaiseShieldDelayTimeBase = 0;
                agentDrivenProperties.AIAttackOnDecideChance =0.9f;
                agentDrivenProperties.AiRangerHorizontalErrorMultiplier = 0;
                agentDrivenProperties.AiRangerVerticalErrorMultiplier = 0;
                agentDrivenProperties.AiRangerLeadErrorMax = 0;
                agentDrivenProperties.AiRangerLeadErrorMin = 0;
                agentDrivenProperties.AiChargeHorsebackTargetDistFactor = 0;
                agentDrivenProperties.AiHearingDistanceFactor = 0;
                agentDrivenProperties.AiStandGroundTimerMoveAlongValue = 0;
                agentDrivenProperties.AiMinimumDistanceToContinueFactor = 0;
                agentDrivenProperties.AIParryOnDecideAbility = 100;
                agentDrivenProperties.AIBlockOnDecideAbility = 0;
                agentDrivenProperties.AiWaitBeforeShootFactor = 0;
                //agentDrivenProperties.ArmorTorso = 0;
                //agentDrivenProperties.ArmorHead = 0;
                //agentDrivenProperties.WeaponsEncumbrance = 0;
                //agentDrivenProperties.ArmorEncumbrance = 0;
                //agentDrivenProperties.WeaponRotationalAccuracyPenaltyInRadians = 0;
                //agentDrivenProperties.WeaponUnsteadyEndTime = 0;
                //agentDrivenProperties.WeaponUnsteadyBeginTime = 0;
                //agentDrivenProperties.ArmorLegs = 0;
                //agentDrivenProperties.WeaponMaxUnsteadyAccuracyPenalty = 0;
                //agentDrivenProperties.WeaponStationaryAccuracyMultiplier = 0;
                //agentDrivenProperties.WeaponInaccuracy = 0;
                //agentDrivenProperties.ReloadSpeed = 0;
                //agentDrivenProperties.ThrustKnockBackChanceBonus = 0;
                //agentDrivenProperties.HandlingMultiplier = 0;
                //agentDrivenProperties.ThrustOrRangedReadySpeedMultiplier = 0;
                //agentDrivenProperties.SwingSpeedMultiplier = 1;
                //agentDrivenProperties.WeaponMaxMovementAccuracyPenalty = 0;
                agentDrivenProperties.AIHoldingReadyMaxDuration = 0;
                //agentDrivenProperties.ArmorArms = 0;
                //agentDrivenProperties.LongestRangedWeaponInaccuracy = 0;
                agentDrivenProperties.AiShootFreq = 0;
                agentDrivenProperties.AiFlyingMissileCheckRadius = 0;
                agentDrivenProperties.AiFacingMissileWatch = 0;
                agentDrivenProperties.AiRangedHorsebackMissileRange = 0;
                //agentDrivenProperties.MountDifficulty = 0;
                //agentDrivenProperties.MountChargeDamage = 0;
                //agentDrivenProperties.MountSpeed = 0;
                //agentDrivenProperties.LongestRangedWeaponSlotIndex = 0;
                //agentDrivenProperties.MountManeuver = 0;
                //agentDrivenProperties.AttributeHorseArchery = 0;
                //agentDrivenProperties.CombatMaxSpeedMultiplier = 100;
                //agentDrivenProperties.MaxSpeedMultiplier = 0;
                //agentDrivenProperties.TopSpeedReachDuration = 0; // crashses at 0
                //agentDrivenProperties.ShieldBashStunDurationMultiplier = 0;
                //agentDrivenProperties.AttributeShieldMissileCollisionBodySizeAdder = 0;
                //agentDrivenProperties.AttributeShield = 0;
                //agentDrivenProperties.AttributeRiding = 0;
                //agentDrivenProperties.AttributeCourage = 0;
                agentDrivenProperties.AIHoldingReadyVariationPercentage = 0;
  5. abc123456

    Help: AgentDrivenProperties (AI Combat Effectiveness)

    I spent 2 days trying to reverse engineer the code handling the combat AI. I was able to make the AI parry around 95% of the time. However, the AI struggles to parry feints when you set AIAttackOnDecideChance to greater than 0. It looks like the AI has problem parrying feinting attacks when...
  6. abc123456

    Bannersample - An example mod using Harmony

    For those starting out with Harmony just like me, I like to help my fellow new modders because I could find 0 forum posts or docs about this and wasted a lot of time!

    If Bannerlord keeps crashing with harmony at the start, make sure the 0harmony.dll in your /bin folder is the correct one. I grabbed the dll from

    and used the debug dll instead of the release one.

    Finally I just grabbed a 0harmony.dll from an existing nexus mod and that worked. ?
  7. abc123456

    Live editing?

    I followed the docs for live editing here https://docs.bannerlordmodding.com/_tutorials/modding-gauntlet-without-csharp.html#how-to-enable-use-live-ui-editing After opening developer console in game with alt+~ There is no command for ui.toggle_debug_mode How do you setup live editing of UI...
  8. abc123456

    List of C# API that don't do anything?

    I poked around the C# API. I could not get some of the functions to work so just wondering if they actually work? Here is the list of functions that don't seem to do anything: OnDoMeetingInMapEvent CampaignEvents.OnDoMeetingInMapEvent.AddNonSerializedListener(this, new Action<MobileParty...
  9. abc123456

    Modding in C# feels incredibly boring and tedious.

    C# is a world class language used by a lot of things. Web, Desktop, Games (Unity Engine) and is based on object oriented programming like C++.
    If you never learned object oriented programming or don't come from a developer background, I can see why people complain. However, using C# means you have a lot of power and flexibility. You can hook into cloud systems like Azure and AWS and do basically anything you want.

    If you are writing a lot of repetitive code, then something is wrong. You can automate repetitive code through tooling and code generation and abstraction.
  10. abc123456

    Almost **** my pants fighting giant axeman with 100 AI level difficulty mod

    Isn't it because spiked club is faster?
    But yeah I have similar experiences in the Empire arena, it is somehow easier to beat opponents with spiked club than it is with sword.

    I suspect it is a bug. In the video, I maxed out the AI level to 100. AI should not parry significantly poorer against a spiked club or any other weapon, that would be an exploit.
  11. abc123456

    Almost **** my pants fighting giant axeman with 100 AI level difficulty mod

    I hate 1st person and if I had any more adrenaline than I already get from this game, I'd probably have a heart attack. Also, the FOV looks off-putting to me. Oddly enough, I find 3rd person to be much more immersive for me. I'm glad you enjoy 1st person and there is an option in the game for you, you are clearly very good at combat in this game.
    You can adjust the FOV for 1st person, I agree the FOV is a bit too much but youtube made it look worse than actual in game.
  12. abc123456

    Almost **** my pants fighting giant axeman with 100 AI level difficulty mod

    The Bots AI scales with the level of the troop :smile:

    It scales with weapon skills unless they changed it. Weapon skill/3.5 to give a max possible AI value of 100. In the mod I used it claims you can just set the absolute AI level for everyone and I set it to 100. However, I noticed still the AI performs inconsistently sometimes. Maybe the mod has a bug or TW code has a bug or the AI system works differently or who knows. Interesting thing is the AI seems to parry worse against a spiked club vs a sword... I wonder if it is due to the collision sphere of the spiked club messing up the calculations.
  13. abc123456

    Almost **** my pants fighting giant axeman with 100 AI level difficulty mod

    What really surprises me in that video is someone playing first person and actually blocking, unless he's using autoblock

    Let me get one thing straight. That is NOT autoblock. I played warband for years in multiplayer and is probably one of the best first person player at least in my country.

    You can see in the earlier time of the video, I actually got hit a few times and almost died.

    So it makes me sad that MP is so biased to 3rd person that I am forced to play 3rd person in MP. I wish in the future we could have ranked 3rd person and 1st person.

    1st person adrenaline in warband/bannerlord fighting a difficult opponent is one kind of adrenaline you can't get anywhere else... so 90% of players don't know what they are missing out.
  14. abc123456

    AI Issue: Emptying All Enemy Archers' Arrows with 1 Person

    This strategy works on both way. Align your archers and if the enemy is a Khuzait with mounted archers, your troops will empty their quivers trying to shoot them.

    There should be a option to tell your troops on which enemy to focus, for example the cavalry targeting the archers.

    Actually there is a command to tell your archers to hold fire, so it doesn't work on both ways.
  15. abc123456

    SP - Battles & Sieges Does anyone else think spears are utterly useless?

    Why is it difficult to implement AI melee combat that makes sense rather than random incoherent swinging?
    It seems to me that all weapons should be able to be held out in front to deny enemy from closing in. As seen in all of the videos posted here demonstrating how a spear is used.

    As it stands, mount and blade combat was originally fun for me when I was young, when it grew repetitive I listened to audio books simultaneously. Now, however I find it boring. The failure to give spears an adequate implementation is part of a larger failure to make combat interesting, which requires tactics as can be found from real life battlefields of the past.

    It's possible to make thrust attacks do damage by just having your weapon out, dependent on velocity. Kind of like Dying Light when you push zombies into spikes.
    This then opens up a new issue of how to implement a balanced and workable parrying system for this kind of attack?
    How do you prevent unintended misuse of this by running around and piking things like a human cavalry?
    Some things in real life, when modelled to our current limitations of keyboard and mouse gaming may cause unintentional unrealistic and unbalanced side effects.

    I think the parsimonius solution to spears is to get rid of the thudding when someone is face hugging you.

  16. abc123456

    Have the Tanneries been nerfed?

    nerfing tanneries is totally ok. they were over the top compared to other workshops. but what i dont like is the overall attempt to put as much grind as possible in the game. u grind for exp, relation, access to units, money and so on. this is only my personal oppinion and no one has to agree, but i do not enjoy the direction the game is going right now. extending the time u put in a game by adding grind instead of content seems like a cheap solution. i hope they will rethink this.

    100% agree with this. Everything until you get your own kingdom is boring. Here is basically my early-mid game:

    grind looters to get workshops and caravans, then
    grind more looters until clan tier 4...
    sometimes I join as mercenary which can be good, but sometimes the kingdom just slows you down.
    i use to grind tournaments but don't bother anymore. Takes too long for just 3 renown.
    I don't even bother taking loot from looters or taking looters as prisoners because there is no keyboard shortcut to 'take all' and there is a lag when I take all loot.

    This grind has to go, it is the worst thing about this game. It is so bad that the first thing if I ever start modding is to get rid of this grind. Please don't waste your time or our time with this grinding gameplay.


    ----

    Now about tanneries, I have been playing the same 1.4.2 version for a week. Interetingly, my tannery was giving +600 for a bit. Now for the past few days it has drop to +98..
    I would be good under the other tab we could have some UI to breakdown what is contributing to our workshop incomes..
  17. abc123456

    Combat Delay

    My rig is bad. On paper shouldn't be bad, I bought it some years ago i5, medium graphics card, no SSD, 16Gb. The guy who assembled it must have hated me and it never worked top notch. In MP I had FPS drops constantly.

    I said it may happen in single player as a possiblity, really I only experienced it in MP, so my first thought was that it was ping related. You know if a guy with bad ping enters a server it may delay all updates, that was my guess.

    But yes, my FPS were bad and my monitor is medium quality, 60FPS default. My ping was ok.

    Try disable vsync, limit FPS to 60,
    my monitor also lags if I leave FPS uncapped and turn on vsync.
  18. abc123456

    What do u think is missing for this game to have a soul?

    There are already enough RPG games. Games like Witcher, Elder Scrolls and countless MMOs already give you enough side quests, loot and skillpoints. Why would you want this game to offer you the same things so many other games already have?

    M&B series has always offered something unique - it's battle system, where you are both a commander and a fighter. Improving that should be priority #1 for the devs. Grinding smithing skill to get a weapon with higher numbers is not fun gameplay and I wouldn't want them to waste any development time on stuff like that.

    We don't need to copy other RPG games. Forget other games and create unique and fun activities that works with Bannerlord.

    Like I said in an earlier post, some good unique ways to expand bannerlord are:
    • adventurers like yourself doing what you can do, starting from scratch like you.
    • multi-staged bandit hideouts that play like mini-sieges with indoor maps + selectable companions to assault
  19. abc123456

    Almost **** my pants fighting giant axeman with 100 AI level difficulty mod

    what the duck. after all that complaining that combat AI is bad (ok, I admit I may have mentioned it once only) it turns there's a simple mod enabling harder difficulty?


    I don't know TaleWorld's reasoning behind making the AI lower than its maximum threshold. Maybe it is temporary, maybe it is to distinguish lower-tier troops vs higher tier troops more or something completely different. One can only guess. I hope they unleash the maximum AI difficulty on full release though. Making that video was one of the most fun I had in the game. It was intense.

    Unfortunately there are still some ways to cheese the AI. VS spear for example, made a separate video about that.

    Interestingly, I notice the AI has more trouble blocking a spiked club than a sword...

    Also you can punch and kick the enemy somewhat easily.

    With some practice a kick and weapon attack can hit the AI if you time them right.
  20. abc123456

    Beta Patch Notes e1.4.2

    But they don´t seem to play their own game but I can understand this, I also stopped playing.

    They should notice bugs like the vassal thing if they would play the game before they update it. Or then bug when creating the kingdom crashes the game and so on.

    I don't know if the people responsible play enough of the game or not. I do agree with you some aspects of the game feels like they themselves have not played long enough. An example is some of the questing, like 'extortion/desertion' quest. Too much dialogue. After a few times, you had enough of the clicking of dialogues. I can't imagine why the quest designer/product owner would allow such an annoying quest to go through. The gameplay loop is super tedious.
Back
Top Bottom