On 3/5/98 6:37 PM, Patrick J. Dughi (dughi@IMAXX.NET) stated:
> Pirate thing, yeah..I believe Eric Green has the FL code off his
>web site.. this is a guess..but.. http://www.imaxx.net/~egreen/fl
>
> He stated something to that affect about a week ago, plus or minus
>a month if I'm not mistaken.
That is close:
http://www.imaxx.net/~thrytis/fl/
I've been working with the FL code for a few weeks now, it is quite nice,
altho it appears to be somewhat mixed Circle/Envy code.
From what I gather, the actual "pirate" system uses regular aggy mobs,
and a special function, "aggro_scan", which I will post here. The
function basically scans all the directions, looking for someone to
attack that is within sight, then moving towards that person. Note: this
isn't cut/pate code. I'm simply pasting it here to give you people an
idea, without having to download the whole thing.
struct char_data *aggro_scan(struct char_data *mob, int range, int cnd,
int *tdr)
{
int i, r, rm = mob->in_room;
struct char_data *spud;
char buf[MAX_STRING_LENGTH];
for (i=0;i<6;i++) {
r = 0;
rm = mob->in_room;
while (r<range) {
if (clearpath(mob, rm,i)) {
rm = real_roomp(rm)->dir_option[i]->to_room;
r++;
for
(spud=real_roomp(rm)->people;spud;spud=spud->next_in_room) {
if
((CAN_SEE(mob,spud))&&(!IS_MOB(spud))&&(GetMaxLevel(spud)<61)) {
if(!IS_SET(mob->specials.mob_act,ACT_STAY_ZONE) ||
(real_roomp(rm)->zone==real_roomp(mob->in_room)->zone))
{
*tdr = i;
if (cnd==0) return spud;
/*
if ((cnd==1)&&(is_pissed(mob,spud))) return spud;
*/
}
}
}
} else {
r = range + 1;
}
}
}
return NULL;
}
- Chris Jacobson
+------------------------------------------------------------+
| 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/15/00 PST