OK, I'm gonna attempt to help here. One of the things that can be done,
is either choose to use the title of the player as part of the mobs
long_descr (when you look at room) or not. Short Description is for
when you attack it, or list it.
just take a look at the unquoted stuff for help down here.
>
>ASPELL (spell_clone)
>{
> struct char_data *clone_ch;
> struct affected_type af, clone_af;
>
>
> int i; /* Loop Variable */
>
> send_to_char ("You slowly fade out of existence.\r\n", ch);
> act ("$n slowly fades out of existence.", FALSE, ch, 0, 0, TO_ROOM);
> act ("$n slowly fades into existence.", FALSE, ch, 0, 0, TO_ROOM);
> send_to_char ("Your clone appears.\r\n", ch);
>
> af.duration = 10 + (GET_LEVEL (ch) << 2);
> af.location = APPLY_AC;
> af.bitvector = AFF_INVISIBLE;
> affect_to_char (ch, &af);
>
>
> clone_ch = read_mobile (10, VIRTUAL);
> clone_af.type = SPELL_CHARM;
> clone_af.duration = 99;
> clone_af.modifier = 0;
> clone_af.location = 0;
> clone_af.bitvector = AFF_CHARM;
>
> affect_to_char (clone_ch, &clone_af);
ok, the above 7 lines (the ones with AF in them)
could be changed, if you want it a permanent CHARM.
by doing a
SET_BIT(AFF_FLAGS(clone_ch), AFF_CHARM);
>
> clone_ch->carrying = ch->carrying;
What THAT line does, is give the mob everything that the player is
carrying. which personnally i think is a bad idea. because if the mob
gives something to the player, then the player will have two.
But, if it ain't broke, don't fix it :-)
> clone_ch->real_abils = ch->real_abils;
> clone_ch->aff_abils = ch->aff_abils;
> clone_ch->player.name = ch->player.name;
the above line is what allows one to look <playername>
but you might wanna try
clone_ch->player.name = str_dup(ch->player.name);
> //clone_ch->player.short_descr = ch->player.short_descr;<== This
>crashes the game
this would possibly crash, because the player has no short_descr
try something like
clon_ch->player.short_descr = str_dup(ch->player.name);
> clone_ch->player.long_descr = ch->player.long_descr;
this line definetly won't work.
i would do something like this.
sprintf(buf, "%s %s", ch->player.name, GET_TITLE(ch));
clone_ch->player.long_descr = str_dup(buf);
> clone_ch->player.title = ch->player.title;
Mobs don't use this.
> clone_ch->player.level = ch->player.level;
> clone_ch->player.sex = ch->player.sex;
> clone_ch->player.class = ch->player.class;
> clone_ch->player.description = ch->player.description;
try doing a str_dup on the above.
clone_ch->player.description = str_dup(ch->player.description);
> clone_ch->points = ch->points;
> clone_ch->points.gold = 0;
> clone_ch->points.bank_gold = 0;
> //clone_ch->char_specials = ch->char_specials;
you DEFINATELY may not wanna do the above.
>
>
> // Load up clone with same equip as master.
> for (i = 0; i < NUM_WEARS; i++)
> clone_ch->equipment[i] = ch->equipment[i];
>
>
> char_to_room (clone_ch, ch->in_room);
> add_follower(clone_ch, ch);
>
>}
All that should help a little. there may be a few things i overlooked.
but if you wanna give a mob the same string (like names, descr, etc)
then use str_dup() on the string...
anyway
Code On
Akuma the Raging Coder
+------------------------------------------------------------+
| "The poets talk about love, but what I talk about is DOOM, |
| because in the end, DOOM is all that counts." - |
| Alex Machine/George Stark/Stephen King, The Dark Half |
| "Nothing is IMPOSSIBLE, Just IMPROBABLE" |
| "Easier Said Than Done, But Better Done Than Said..." |
+------------------------------------------------------------+
+------------------------------------------------------------+
| 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