Being that I wrote that calc_speed function in my mailer yesterday, I forgot one critically important thing: if (s <= 0) s = 1; /* The lowest possible initiative is a 1. */ /* Because we have NEXT_HIT(ch)--, and it is when */ /* NEXT_HIT(ch) == 0 that we perform the attack. */ I'd also throw in something like: if (GET_LEVEL(ch) >= LVL_IMMORT) s = 1; }:) Edward Glamkowski, Programmer Mathematica Policy Research EGlamkowski@mathematic-MPR.COM Princeton, NJ http://www.mathematica-mpr.com/ Il dort. Quoique le sort fut pour lui bien etrange, Il vivait. Il mourut quand il n'eut plus son ange. La chose simplement d'elle-meme arriva, Comme la nuit se fait lorsque le jour s'en va. >---------- >From: Angus Mezick[SMTP:angus@EDGIL.CCMAIL.COMPUSERVE.COM] >Sent: Wednesday, October 08, 1997 3:06 PM >To: CIRCLE@post.queensu.ca >Subject: combat code > >Daniel, would you happen to mind posting your calculate_speed function? This >idea seems very interesting. (i hope you still have the code, it is an old >post >from the archives.) I would like to integrate this with the timed spell >casting >function. thinking about giving my magic usrers more to practice by giving >them >the choice of raising skill level with the spell, or speed. maybe I will >remove >practices and just make spells/skills learned items with having to go to the >guild master every time they learn 5% points to get the next point. that or >have >them just go up once per level. and have the guild master actually do the >teaching, while the player has to use it a certain amount for the master to >be >willing to teach. hrms.... >--Angus >______________________________ Forward Header >__________________________________ >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... > +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST