On Fri, 11 Oct 1996, Zizazat Lazuras wrote: > I was wondering if anyone had implemented an initivative <sp?> system for > MUD combat. Where the order of attacks each round was not the same all > the time, it could take into account dex mods and weapon speed and things > like that. I have been looking around the code and wondering if it is > even such a good idea... > > Anyone been down this road at all? Did it. And it was actually quite easy! [IF ANYONE INTREPRETS THAT AS AN INSULT TO ANYONE'S INTELLIGENCE I WILL SLAP THE LIVING HELL OUT OF THEM] What I did was change the combat pulses to occur every second, then I made a temp variable for characters (where-ever they have 'fighting' and 'hunting' and all those other temporary things) that would save how long it takes to attack. Next I created a function called 'calculate_speed' that took into account HASTE and SLOW, and dextrity, weapon weight, what they person was wearing (eg., huge armor slowed them down), what they were carrying (lots of weight slowed them down), terrain, etc., etc. and a bit of randomisity then returned that. In hit() I would do: 'NEXT_HIT(ch) = calculate_speed(ch);' and a check to make sure that their opponent was fighting (if not then I made them hit the person to get them fighting). Finally, in perform_violence() I did something like: if ((NEXT_HIT(ch)--)) continue; Inside my loop... Oh, now that I think about it, my multi-code (which was very simple) that, in response to someone else, I tried to have mix attacks up, would benefit from this. And actually, on my MUD, this completely replaces the multi-hit code. I figure if the person is fast enough, they'll get off a hit or two before their opponent does, anyway. <*=-+Daniel+-=*> "Forgive me father, for I am sin." +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST