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