Customizing Characters

Posted by Raeyu on Tue 06 May 2003 04:45 AM — 5 posts, 25,126 views.

#0
How would I go about making it so when someone creates a character, it does like (after race and/or class selection):

Please choose a hair color from the following list:
[ 0] white [ 1] platinum blonde [ 2] strawberry blonde
[ 3] blonde [ 4] bleached blonde [ 5] grey
[ 6] light brown

Then..

Please choose a complexion from the following list:
[ 0] brown [ 1] copper [ 2] tan [ 3] light-tan
[ 4] pale

Then...
Please choose a eye color from the following list:
[ 0] blue [ 1] green [ 2] brown [ 3] grey
[ 4] black [ 5] hazel [ 6] aqua [ 7] royal blue

Then....

Please choose a build type from the following list:
[ 0] frail [ 1] thin [ 2] lean [ 3] athletic
[ 4] muscular [ 5] bulky [ 6] overweight [ 7] fat

AND after all that, how would I make it so the stock SMAUG age system is gone and you choose your age by going "setage <age>", and height with setheight and same for weight?

Finally, how would I put that to use by making it so when you "look" at character, it does like:

Raeyu looks pretty lean, with a light-tan colored complexion.
You are 6'1" and weigh 147 pounds.
He has white colored hair and blood red eyes.

I really hope someone can help me with this. o_o
Australia Forum Administrator #1
That is partly answered in this post:

http://www.gammon.com.au/forum/?bbsubject_id=2314
USA #2
Welcome to the wonderful world of modifying char constructs and the nanny process. It is generally conceded that what minimal gains you achieve in roleplay feel with this style modification are far outweighted by the time and trouble of coding such a thing. You will need to enter a new field in the char construct for each new attribute, create an array to actually populate the field with data, add another connection state per attribute to the nanny connection sequence - probably create the new connection states as well - and modify the returned results when someone looks at a character. Im guessing youll probably want the new info displayed in score as well so add modifying the score screen to the list as well..... Not something most coders are gonna be willing to do for a few features most players would never miss in the first place. If you truly want something that roleplay oriented, Id suggest switching from SMAUG to DoT which was actually designed as a roleplay centric codebase and already incorporates all these features and many many more.
USA #3
I have to respectfully disagree here and state that while yes, adding the constructs to the code to make this happen is time consuming, the benefits over a system where any 14 year old can 'desc' themselves as 'l33t throbbing m3mb3r' are overwhelming.

I am pursuing the same thing myself and my two approaches I am looking at are;

a) store the data into temp vars or a bitpacked number and then construct the desc for the player after the last selection. Then I would simply change the level required to use 'desc' to something beyond the player level range.

or

b) create the constructs as integers that simply store a bitpack value that can be deciphered on the fly.


I'd love to coop with anyone considering tackling this.

~Xin
USA #4
I'm inclined to agree with Meerclar on this one. Yea, taking the vars and making a description out of it would be kinda cool. But you're overlooking the whole 'gathering' of the information. Playing with nanny processes can be overwhelming for a new coder (and a bit annoying for a more experienced coder). The structs for storing the possible selections, con states, ect. all have to be set up before you can even gather the data, then even a minor goof up in your nanny process and you could make logging on impossible. Saying you got nanny working right, you'd still have to figure out a way to make a description that sounded somewhat unique without making it sound like a bad adlib. The cost outweighs the benefits IMO.

As a side note, the majority of your 13-year olds who would make a description like "|'m 4 1337 1uz3r" Could care less about what their char looks like anyway and would either try to A) defeat your intentions with the system or B) press random entries anyway. Just my 2 cents.