Give experience in a flick?
Submitted by Sharkull on Sun, 2006-02-19 16:09 | ||
Anyone know how to give experience in a flick? I want to create a mini-mod which would allow a player to start a newbie character, and fast-forward into Veteran / Elite. I'm toying with the idea of changing a talk flick for an actor in the Dryad town to do what I want (because I'd really like to do all this without any map changes...). Setting the flag unlocking the next difficulty is simple... and so should giving some starting gold (putting a naked char in Vet. / Elite would be evil :twisted: ), but I can't find out how to quickly boost the hero to an appropriate level. Ideally I'd like to use the same GUI as a starting MP character (logic\ui\interfaces\backend\auto_leveler), but I can't find where it is triggered (so I assume this is hard-coded ) and I'd settle for just giving XP to the active skill class for the hero (as is done in battle). Also, I'm not worried about party wide experience... I indend for the mod to be used just by a lone hero (no NPC's). Any ideas (on easy ways to give XP without map changes)? forums: |
||
» |
Hmm....Sorry I don't have much experience in modding DS2 as I have with DS1. I can't help you at this time. Good luck, Shark.
I have ideas, but I refuse to contribute to what I consider cheating.
I can respect that... and I assume you mean that the code / method could be used for cheating, because what I'm trying to do here is make things harder. Imagine starting in Vet / Elite with some gold (enough to equip. 2 characters), and nothing else (no party members, no pets, no uber equipment, nothing saved in the stash, empty chant listing, no spells, no stat point bonuses from mercenary quests...).
I could always change the XP given for the training mission's braken defenders (or other training-only enemies...) to be obscenely high, but that seems so cheap (and would make things difficult / impossible to balance for each of Elite and Vet. in the same mod).
Well no offense but that is what I'm considering cheating and also breaking the gameplay's design. I'm not sure why u would want to start off on another mode. You could just make the monsters tougher.
Anyways, I think a clean way to do it is add new races that are the same as current but alter the starting lvl there.
No offense taken... and I want to do this because when the game first came out this was requested frequently (and I want it too, for myself... replaying mercenary is not a challenge IMO). I know that monster difficulty could be adjusted, but that would require more effort than I'm willing to put in.
Thanks for the idea (I like it)! This could probably even prevent MP "cheating" too (something I was a bit concerned with), since the hero template type would likely need to exist on each client in the game.
How about re-making the game so that each Act starts with a new level - say based on the results of the previous act... then you could run through the map once, instead of three times - or is that just a ridiculous idea? 8O
I bet most of it is hard-coded anyway..
..aah, let's jes' ferget it!
..call it another "Blondin moment..!!"
Well, you could probably rebalance the mercenary acts to scale like pseudo difficulty levels (act 1: levels 1-35, act 2: levels 35-65, act 3: levels 65-90...) but that would be a major project (rebalancing monster levels / XP given, drops, shops, NPC levels...), and it is certainly something that I wouldn't be interested in doing (nor would I want to play it).
If you want to make such a mod, then go right ahead.
Well ... whatever happened to good old void Rules::SAwardExperience( const Goid*, const Goid*, const Goid*, float ) and float Rules::XPToLevel( float ) const ?
Last time I checked that was the way to award xp to go's in ds. Any questions feel free to post or stop by irc and I'll help you out.
Thanks X... If I ever feel motivated enough to tackle a skrit based solution I'll keep that in mind.
I recommend a skrit singleton, this would be fairly easy to construct, even without much any skrit knowledge at all. I have quite a bit of work to do, but I'll get back to you with a full solution in a couple days.
Alternately you could write some extra flick commands which can be used in all flicks. There are some files (can't remember their exact names) that contain these.
You need to define the function, parameters and types in a gas file (think it's called flick_commands.gas or something) and the skrit that gets called. Once you've written the skrit that gets called, then you can use it in ANY flick.
Take a look at the existing definitions and the associated skrit, they're pretty self explanatory.