RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Resource icon

[2.x] Multilinguists 3.03

No permission to download

ViWinfii

Sorceror
When we getting the other language scripts?

You mean the other language text files? If users like you submit new language text files to me that are in the same format as EngToDrow.txt, EngToElven.txt and EngToOrcish.txt then I will gladly add the code to support it as a new language. I am personally not making any new languages.

You can still add your own words to the existing languages by following the same format in the text files. Remember, translate only one english word at a time with no spaces. However you can translate one english word into a phrase. Look at examples of this in EngToDrow.txt.
 

ViWinfii

Sorceror
ViWinfii updated Multilinguists with a new update entry:

3.0.0

Major changes in this update.

-Numerous bug/crash fixes.

-No longer uses the SGem class. There were too many radical changes to create an update that included SGem and would not cause a wipe.

-Languages can now be learned automatically by being within hearing distance of a that language.

-Languages are learned over time, similar to a passive hearing skill, and the maximum number of languages that can be known is determined by the intelligence of speaker.

-New languages can be created...

Read the rest of this update entry...
 

ViWinfii

Sorceror
ViWinfii updated Multilinguists with a new update entry:

Multilinguists 3.0.0

Major changes in this update.

-Numerous bug/crash fixes.

-No longer uses the SGem class. There were too many radical changes to create an update that included SGem and would not cause a wipe.

-Languages can now be learned automatically by being within hearing distance of a that language.

-Languages are learned over time, similar to a passive hearing skill, and the maximum number of languages that can be known is determined by the intelligence of speaker.

-New languages can be created...

Read the rest of this update entry...
 

m309

Squire
ViWinfii,

I'd like to add a skillcheck of sorts to determine whether the language checks are successful based on a skill, in which script and around which line would you suggest? Thanks for any input.
 

ViWinfii

Sorceror
ViWinfii,

I'd like to add a skillcheck of sorts to determine whether the language checks are successful based on a skill, in which script and around which line would you suggest? Thanks for any input.

That can be found in Translator.cs, in the static function CheckUnderstandingGain. It should be easy to add an if statement somewhere in there for a skillcheck.
 

m309

Squire
Awesome! Thanks very much. This is already one of my all-time favorite script releases.
 

ViWinfii

Sorceror
Just so everyone else can add a skillcheck, the exact line to add a one is is line 139 in Translator.cs. This would make it so you base a language skill gain on an actual skill like Tracking or something.

In Translator.cs:
Add this Code(on line 139):
Code:
            if (!player.CheckSkill(SkillName.Tracking, 0.0, 100.0))
                return false;



If you prefer to not have any kind of restriction on the number of languages you can learn, then comment out both regions in the function CheckUnderstandingGain that are examples of restrictions. Then add the following code after line 138:

Code:
            player.LearnLanguage(language, 0.1);
            return true;
You could replace 0.1 with any amount you want to gain in that language.
 

ViWinfii

Sorceror
I found a small bug with the install. After the install, one of the initial languages is set to "E". This was accidental due to the location of the README file. To remove it, or any language, shut down the server and locate the \saves\Multilinguists\ folder and delete the language's lng file. So, you can remove E.lng from your saves and not worry about any kind of crash happening as this only effects the data from languages.

For future installs, please remove the README.txt file from the Multilinguists folder before your first boot.
 

m309

Squire
ViWinfii, I noticed a slight glitch. If you load the system and then a player learns a language, lets say Elven, and then you rename that language the language name Elven still remains in the list of known languages. Also on renaming, it seems to not load the new named language into the system.
 

ViWinfii

Sorceror
I didn't design this to allow a language name to be changed after it has been created. Everything is checked by language text name only, so if you change the name of a language, the scripts will treat it as a brand new language for characters to learn. The old named language will still show up in the gumps as a language learned as I don't have a way to remove them and never intended to remove them.

However, the only thing you need to do to rename a language is shut down the server, rename the .lng file in the saves to the name you want (Ex: rename Elven.lng to Elvish.lng), then restart the server. I recommend renaming languages as soon as you finish the install before any character uses any new language. This will only work for languages that use a word to word translation.

One important note: I would not recommend changing the name of the languages that do not use a word for word translation, such as Ancient, Undead, and others. To properly change the name you would have to find every instance of the language being used in the scripts and rename them there.
 

ViWinfii

Sorceror
I also noticed my README.txt file had some steps misnumbered, I'm not sure why. The next update will fix this along with the "E" language bug.
 

ViWinfii

Sorceror
I created a monster and I like it :D

Yep - I haven't given up on the Common language being more useful in certain ways :) Before I can include that code I have to figure out a way to stop the crash from happening caused by a website timing out...
 

Archaaz

Sorceror
This looks like an amazing system. Unfortunately, I unzipped the files into my customs, and followed the directions. Upon booting up, I received the following errors:

Code:
Warnings :
+ Customs/Multilinguists/Translator/LanguageManuals.cs
      CS0472: Line 77: The result of the expression is always false since a value of type 'bool' is never equal to 'null' of type 'bool?'
      CS0162 Line 78: Unreachable code detected.
      CS0472: Line 84: The result of the expression is always 'true' since a value of type 'bool' is never equal to 'null' of type 'bool?'
+ Customs/Multilinguists/PolyglotMobile.cs:
      CS0472: Line 41: The result of the expression is always false since a value of type 'bool' is never equal to 'null' of type 'bool?'
      CS0162 Line 42: Unreachable code detected.
      CS0472: Line 48: The result of the expression is always 'true' since a value of type 'bool' is never equal to 'null' of type 'bool?'
 
Errors:
+Customs/Multilinguists/Gumps/CreateLanguageGump.cs:
    CS0246: Line 103: The type or namespace name 'var' could not be found (are you missing a directive or assembly reference?)
+Customs/Multilinguists/Translator/LanguageSave.cs:
    CS1502 Line 40: The best overload method match for 'System.IO.File.WriteAllLines(string, string[])' has some invalid arguments.
    CS1503 Line 40: Argument '2': cannot convert from 'Systems.Collections.Generic.List(string)' to 'string)[]'
+Customs/Multilinguists/Translator/Translator.cs:
    CS0246: Line 38: The type or namespace name 'var' could not be found (are you missing a using directive or an assembly reference?)
    CS0117: Line 38: 'System.IO.Directory' does not contain a definition for 'EnumerateFiles'
    CS1579: Line 39: foreach statement cannot operate on variables of type 'var' because 'var' does not a public definition for 'GetEnumerator'
    CS0246: Line 73: The type or namespace name 'var' could not be found (are you missing a using directive or an assembly reference?)
    CS0117: Line 73: 'System.IO.Directory' does not contain a definition for 'EnumerateFiles'
    CS1579: Line 75: foreach statement cannot operate on variables of type 'var' because 'var' does not a public definition for 'GetEnumerator'

Any idea how to fix it? Thanks! I am using RunUo 2.3, btw.
 

ViWinfii

Sorceror
Hello, I just tested this out with a fresh download of RunUO 2.3 from RunUO's website. I recreated the same errors you experienced. I found that the current link to download RunUO 2.3 is not compiled with updated 4.0 framework support. You will need to compile your own 4.0 supported framework exe in order to use this package. If you don't know how to do this, I can help guide you, or I can share with you my own compiled exe that fixes the problem.

Also, I noticed from your error that your location of the Multilinguists folder is currently Scripts/Customs/Multilinguists/ . The Multilinguists folder must be played directly in Scripts/Multiliguists/ in order to read the initial text files for languages correctly. Unless you want to edit a few lines in Translator.cs and others.

I used my 4.0 framework RunUO.exe and the errors disappeared. I'm about to release a small update that fixes the warnings you had in the error list.
 

ViWinfii

Sorceror
Here's a zipped executable to replace the current RunUO.exe in a 2.3 server. I hope this helps!

Also, to be clear on how to learn languages, use the language manuals to do so instead of [props. You can [add the items DrowPhonics, ElvenPhonics, OrcishPhonics, UndeadPhonics, DruidicPhonics, UmbravoxPhonics, and AncientPhonics. Adding the item Phonics will create a randomized language manual, but you can specify the language by adding the name of the language like this: "[add Phonics Drow". The item ForgetAllPhonics will remove all languages known from you if you need that for some weird reason.
 

Attachments

  • RunUO 2.3 .NET 4.0.zip
    215.1 KB · Views: 3
Top