Re: CODE: languages and a drunkspeech

From: Limratana (
Date: 07/23/96

On Mon, 22 Jul 1996, ks white wrote:

> The say_spell syllables are fixed, but you can fix them by letter or
> by syllable:
> (spell_constants.c)
> struct syllable syls[] = {
>   {" ", " "},
>   {"water", "bap"},
>   {"fire", "bapsky"},
>   {"a", "e"},
>   {"e", "u"},
>   {"r", "v"},
>   {"l", "d"},
>   etc.
> >From what I recall, a fireball spell, for example, would come out 
> 'bapskydd' by this system, or fire would come out as 'bapsky', staying
> longer than 4 letters. However water would come out as 'bapuv'.
> Therefore every word will be at least as long if not longer than its
> original..but it would be more difficult to decifer.
> You can have different generators for elves 'n trolls that draw from
> separate letter pools by adjusting what each letter translates to..
> (trolls)
>   {"a", "ug"},
>   {"b", "r"},
> ..or give the elven tongue a rhyming sound by re-using the same vowel
> patterns often..
> (elves)
>   {"a", "ei"},
>   {"b", "bei"},
> whatever..

Another thing to consider is it make sure, for as many syllables or words 
that you have longer translations for, you might want to have many 
syllables that have much shorter trasnlations.  This is only for the 
purpose of the length of the output, which could get very long if you 
translate every letter and syllable to be longer.  This may not be a 
consideration, depending on what you like.

> We actually do a check on the speakers lang skill, and if its below
> 90%, its assumed they aren't a native speaker and will always have an
> accent.
> (below 90)
>    sprintf(buf, "$n says, in accented %s,\r\n     '%s'", 
> (else)
>    sprintf(buf, "$n says, in %s,\r\n     '%s'",
> it doesnt check the listener's skill though: even if you know less of the 
> language than the speaker you will be able to detect the accent..a flaw
> we might get to or not depending on  how lazy we are. but its an example.
> -K. of Exile Mud
Hmmm.. I'm doing this another way, not neccessarily better by any 
means..  Though it might be inefcient, I'm doing letter counting and 
assigning a chance of misinterpretation based on a character's percentage 
rating with the listener, and then I separate the words in the input 
string and use the random functions to determine if a word is heard 
correctly or not, so if you have 50% ability in a given language, 
roughtly 50% of the words will be readable, based on size.  If you will a 
sentence with 5 30-letter words, chances are slim a 20% skill in French 
will translate any of them. :)  Though, first I call a function to check the 
speaker's language rating in what he is trying to speak, and I mess up 
that string depending on the rating.  Then the messed up string gets 
translated using the listener's rating.  And to make it worse, most 
talking is done on radios or telephones, to which I add static.  
Hopefully the most frequently used word on our mud will be "what?"  and I 
might consider making that allways correctly trasnlated.  :)

'Hra%#a $@ce Dog'
'$@!e(y*nito F#2!'

<Have a nice day>
<Have a nice day!>

This archive was generated by hypermail 2b30 : 12/07/00 PST