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