- Site Map >
- Modding and Creation >
- Sims 3 Creation >
- Modding Discussion >
- Inscription plaques - entering longer texts (more than 150 characters). Is it possible?
- Site Map >
- Modding and Creation >
- Sims 3 Creation >
- Modding Discussion >
- Inscription plaques - entering longer texts (more than 150 characters). Is it possible?
Replies: 14 (Who?), Viewed: 1875 times.
#1
22nd Jun 2020 at 7:56 PM
Posts: 368
Thanks: 1103 in 7 Posts
Inscription plaques - entering longer texts (more than 150 characters). Is it possible?
Hi! Does anybody know if it’s possible to mod the inscription plaques from WA so that you can enter a text longer than 150 characters (the maximum allowed)? I’ve cloned the objects in S3OC and I’ve opened them in S3PE to take a look a the files and see if there was any value indicating “150″, but I didn’t see anything, and I don’t really know where I should look. Danjaley from Tumblr took a look and she said this:
Quote:
This could be in the Gameplay Data package (i.e. a tuning mod), but I just checked and I only found a tuning that regulates how far from the plaque Sims are standing. |
I took a look at the files in the Gameplay Data package too but I couldn't find anything either. So, if anybody knows where or how to mod it so that it is possible to include longer texts, please let me know, any help is appreciated!
Advertisement
Space Pony
#2
22nd Jun 2020 at 8:06 PM
Posts: 433
Thanks: 780 in 6 Posts
Greetings Nilxis,
the limit is actually hardcoded (see code below line 5 to be precise)
you should be able to just replace this interaction, but this might have some unexpected results like text not fitting your message box etc but ofc there are ways around some of these problems aswell
the limit is actually hardcoded (see code below line 5 to be precise)
Code:
public override bool Run() { string titleText = Localization.LocalizeString("Gameplay/Objects/TombObjects/InscriptionPlaque/BBGivePlaqueText:MessageBoxTitle", new object[0]); string promptText = Localization.LocalizeString("Gameplay/Objects/TombObjects/InscriptionPlaque/BBGivePlaqueText:MessageBoxDescription", new object[0]); int maxLength = 150; string text = StringInputDialog.Show(titleText, promptText, "", false, maxLength); if (!string.IsNullOrEmpty(text)) { this.Target.mUserText = text; this.Target.mLocalizatonKey = null; } SimpleMessageDialog.Show(titleText, text); return true; }
you should be able to just replace this interaction, but this might have some unexpected results like text not fitting your message box etc but ofc there are ways around some of these problems aswell
#3
23rd Jun 2020 at 8:46 AM
Posts: 3,856
Thanks: 8449 in 67 Posts
I think overwriting it should be fine, since this is also the "simple" dialogue:
So probably somewhere in the SimpleDialogue code, it eventually says "Hey inline this!"
So probably somewhere in the SimpleDialogue code, it eventually says "Hey inline this!"
#4
24th Jun 2020 at 7:35 PM
Posts: 368
Thanks: 1103 in 7 Posts
Thank you for your answers
@Battery, I'm glad you could find the interaction, and @Lyralei, I'm glad you think overwriting it should be fine!
I'm afraid my experience with modding is very little (I've only created very simple mods like lighting mods), because this all sounds new to me and I'm finding it hard to understand. I've searched some information on what it means that it's hardcoded (here ), but I couldn't find what the simple dialogue is. Also, Battery, in which file did you find the code that you posted?
I'm asking all this because would like to make a mod that people can download: I would like to use inscription plaques that can display longer text in the custom world I'm making, so that I can include the stories and the lore more easily. So, if you or anyone knows how I could do that, or if there is some information that could be useful to me, please let me know!
@Battery, I'm glad you could find the interaction, and @Lyralei, I'm glad you think overwriting it should be fine!
I'm afraid my experience with modding is very little (I've only created very simple mods like lighting mods), because this all sounds new to me and I'm finding it hard to understand. I've searched some information on what it means that it's hardcoded (here ), but I couldn't find what the simple dialogue is. Also, Battery, in which file did you find the code that you posted?
I'm asking all this because would like to make a mod that people can download: I would like to use inscription plaques that can display longer text in the custom world I'm making, so that I can include the stories and the lore more easily. So, if you or anyone knows how I could do that, or if there is some information that could be useful to me, please let me know!
Space Pony
#5
24th Jun 2020 at 8:14 PM
Posts: 433
Thanks: 780 in 6 Posts
Hey Nilxis,
the code resides in the Sims3GameplayObjects.dll which can be found in the gameplay.package
If you need help with the coding bits i can help you with that if needed. its not to dificult to implement, but you might want to read a few tutorials first.
some self promotion on setting up a Development enviroment for coding https://modthesims.info/showthread.php?t=632267
the code resides in the Sims3GameplayObjects.dll which can be found in the gameplay.package
If you need help with the coding bits i can help you with that if needed. its not to dificult to implement, but you might want to read a few tutorials first.
some self promotion on setting up a Development enviroment for coding https://modthesims.info/showthread.php?t=632267
#6
29th Jun 2020 at 9:42 AM
Posts: 368
Thanks: 1103 in 7 Posts
Thanks for the link and the info! I still haven't been able to try, but I'll let you know how it goes once I can
#7
1st Aug 2020 at 4:07 PM
Posts: 368
Thanks: 1103 in 7 Posts
Hi, @Battery! I've finally tried this out. I've been able to follow your tutorial easily, but now that it's time to do the coding and I've jumped onto the follow up tutorial you link (this one), I'm feeling a bit lost.
I've created the project with SharpDevelop, following all the steps (I've only added the "Sims3GameplayObjects.dll" file, is that a problem?). Next, when I go to the "The Actual Script" section of the other tutorial, should I stay in SharpDevelop, use Microsoft Visual Studio, or which program?
It says "Now bring up the actual code file of your project again", which file is the actual code file? AssemblyInfo.cs or MyClass.cs? Where should I open it?
Then it says "The bare code skeleton VS created should still look like this:"
MyClass.cs is what looks the the closest to this, but still mine looks different and it does't have "using System.Linq;" and "using System.Text;"
From this point on I don't really know how to proceed. I've asked too many questions, I know, but I hope you or somebody can help me
I've created the project with SharpDevelop, following all the steps (I've only added the "Sims3GameplayObjects.dll" file, is that a problem?). Next, when I go to the "The Actual Script" section of the other tutorial, should I stay in SharpDevelop, use Microsoft Visual Studio, or which program?
It says "Now bring up the actual code file of your project again", which file is the actual code file? AssemblyInfo.cs or MyClass.cs? Where should I open it?
Then it says "The bare code skeleton VS created should still look like this:"
MyClass.cs is what looks the the closest to this, but still mine looks different and it does't have "using System.Linq;" and "using System.Text;"
From this point on I don't really know how to proceed. I've asked too many questions, I know, but I hope you or somebody can help me
Space Pony
#8
1st Aug 2020 at 7:14 PM
Posts: 433
Thanks: 780 in 6 Posts
Hi @Nilxis,
im happy to see that your giving this a shot. But now to your Questions.
Q (I've only added the "Sims3GameplayObjects.dll" file, is that a problem?).
A: When starting out i would suggest adding all the reference DLLs this way you ave access to the whole functionality of the c# layer, you can always remove the references you dont need later when you are done (This Not necessary though) You definitely need to include the SimIFace DLL !
Q should I stay in SharpDevelop, use Microsoft Visual Studio, or which program?
A: If you already set up SharpDevelop i certainly would stay with SD.
Q which file is the actual code file? AssemblyInfo.cs or MyClass.cs? Where should I open it?
a: your MyClass.cs is the baseclass you may work with thats the thing on your screenshot
Q MyClass.cs is what looks the the closest to this, but still mine looks different and it does't have "using System.Linq;" and "using System.Text;"
A: The creator of that other tutorial included "System.Linq;" and "System.Text;" but for this mod it is not necessary you dont need LinQ or system Text in this scope
My Questions:
1. Did you add [assembly: Tunable] and “using Sims3.SimIFace;” like in step 4 of the tutorial ? You need this
2. Your namespace InscriptionPlaque is the equivalent of namespace pausinator from the tutorial and MyClass is the equivalent of Class1 so whenever the tutorial uses one of them just swap those names in your mind for now.
Try to follow the tutorial and see if you can get it to work. If not you can upload the SharpDevelop Solution so that I or someone else can look at it.
Good Luck
im happy to see that your giving this a shot. But now to your Questions.
Q (I've only added the "Sims3GameplayObjects.dll" file, is that a problem?).
A: When starting out i would suggest adding all the reference DLLs this way you ave access to the whole functionality of the c# layer, you can always remove the references you dont need later when you are done (This Not necessary though) You definitely need to include the SimIFace DLL !
Q should I stay in SharpDevelop, use Microsoft Visual Studio, or which program?
A: If you already set up SharpDevelop i certainly would stay with SD.
Q which file is the actual code file? AssemblyInfo.cs or MyClass.cs? Where should I open it?
a: your MyClass.cs is the baseclass you may work with thats the thing on your screenshot
Q MyClass.cs is what looks the the closest to this, but still mine looks different and it does't have "using System.Linq;" and "using System.Text;"
A: The creator of that other tutorial included "System.Linq;" and "System.Text;" but for this mod it is not necessary you dont need LinQ or system Text in this scope
My Questions:
1. Did you add [assembly: Tunable] and “using Sims3.SimIFace;” like in step 4 of the tutorial ? You need this
2. Your namespace InscriptionPlaque is the equivalent of namespace pausinator from the tutorial and MyClass is the equivalent of Class1 so whenever the tutorial uses one of them just swap those names in your mind for now.
Try to follow the tutorial and see if you can get it to work. If not you can upload the SharpDevelop Solution so that I or someone else can look at it.
Good Luck
#9
7th Aug 2020 at 5:19 PM
Posts: 368
Thanks: 1103 in 7 Posts
I tried it again: I created a new project from scratch adding all the DLLs and I followed your indications (yes, I added [assembly: Tunable] and “using Sims3.SimIFace;” too!).
Now I'm at the "Making It Do Something" step of the second tutorial, but I don't know how to get the exact parameter/text indicating the max. length of the inscription plaque. From what you said, it's in the Sims3GameplayObjects.dll. So how can I open* that and what is the part that I need to copy and paste? (In the tutorial they are copypasting "Sims3.Gameplay.Gameflow.SetGameSpeed(Gameflow.GameSpeed.Pause, Sims3.Gameplay.Gameflow.SetGameSpeedContext.GameStates"). Or could I even get this part from the code you posted here in post #2?
*In the tutorial it says "look that up in Reflector" (referring to Sims3.Gameplay.Gameflow). Is this Reflector the program I need?
Here's a picture of what the code looks like at the moment:
And below I've uploaded the project folder in case you want to take a look at it.
Thanks again!
Now I'm at the "Making It Do Something" step of the second tutorial, but I don't know how to get the exact parameter/text indicating the max. length of the inscription plaque. From what you said, it's in the Sims3GameplayObjects.dll. So how can I open* that and what is the part that I need to copy and paste? (In the tutorial they are copypasting "Sims3.Gameplay.Gameflow.SetGameSpeed(Gameflow.GameSpeed.Pause, Sims3.Gameplay.Gameflow.SetGameSpeedContext.GameStates"). Or could I even get this part from the code you posted here in post #2?
*In the tutorial it says "look that up in Reflector" (referring to Sims3.Gameplay.Gameflow). Is this Reflector the program I need?
Here's a picture of what the code looks like at the moment:
And below I've uploaded the project folder in case you want to take a look at it.
Thanks again!
Attached files:
Nilxis_Inscription_folder.rar (3.2 KB, 4 downloads) |
Space Pony
#10
7th Aug 2020 at 6:16 PM
Last edited by Battery : 7th Aug 2020 at 6:32 PM.
Posts: 433
Thanks: 780 in 6 Posts
Hey @Nilxis,
i downloaded your Solution.
1. you need to target c# 2.0 for your project to be sims 3 compatible. To do this after setting the wrong Target version go to Project->Project Options-> tick the Compiling tab and convert
to c#2.0
and click Convert. If you do all this your Project will be Compatible
E: for decompiling
to look at the code i suggest getting ILSpy i personally never worked with reflector directly
Execute the ilspy.exe and load all the dlls into it File->open-> select the dlls no go to the Magnifying Glass and type "InscriptionPlaque" to search for it this will bring you the search results.
i downloaded your Solution.
1. you need to target c# 2.0 for your project to be sims 3 compatible. To do this after setting the wrong Target version go to Project->Project Options-> tick the Compiling tab and convert
to c#2.0
and click Convert. If you do all this your Project will be Compatible
E: for decompiling
to look at the code i suggest getting ILSpy i personally never worked with reflector directly
Execute the ilspy.exe and load all the dlls into it File->open-> select the dlls no go to the Magnifying Glass and type "InscriptionPlaque" to search for it this will bring you the search results.
Space Pony
#11
7th Aug 2020 at 6:36 PM
Last edited by Battery : 8th Aug 2020 at 10:15 AM.
Posts: 433
Thanks: 780 in 6 Posts
For now you can use this code to see if you can get your dll into the game byfollowing the packaging part of the tutorial
If you are successful you should see a Dialouge popping up after 2 Sim minutes in game. Try that first when you can get it to work we can begin to replace our interaction
Code:
using System; using System.Collections.Generic; using Sims3.Gameplay.Utilities; using Sims3.SimIFace; namespace Nilxis { public class InscriptionPlaque { [Tunable] protected static bool kInstantiator = false; static InscriptionPlaque() { World.OnWorldLoadFinishedEventHandler += OnWorldLoadFinished; } static void OnWorldLoadFinished(object sender, EventArgs e) { AlarmManager.Global.AddAlarm (2f, TimeUnit.Minutes, new AlarmTimerCallback (LoadMenuAfter_2_SimMinutes), "LoadUP", AlarmType.NeverPersisted, null); } static void LoadMenuAfter_2_SimMinutes() { Sims3.UI.AcceptCancelDialog.Show("Hello World"); } } }
If you are successful you should see a Dialouge popping up after 2 Sim minutes in game. Try that first when you can get it to work we can begin to replace our interaction
#12
8th Aug 2020 at 10:59 AM
Posts: 368
Thanks: 1103 in 7 Posts
Okay, it all seems clearer now!
Before I can try all this though, looks like there is no way I can change the project and the target framework to 2.0, these are the only options I have on the menu:
What can I do?
Before I can try all this though, looks like there is no way I can change the project and the target framework to 2.0, these are the only options I have on the menu:
What can I do?
Space Pony
#13
8th Aug 2020 at 12:23 PM
Posts: 433
Thanks: 780 in 6 Posts
Quote: Originally posted by Nilxis
Okay, it all seems clearer now! Before I can try all this though, looks like there is no way I can change the project and the target framework to 2.0, these are the only options I have on the menu: What can I do? |
Set Seleceted Projects to C#2.0 first then select c# 2.0 for the target framework
If for some reason tha does not appear here is one i changed and see if it reckognizes c# 2.0
Attached files:
Inscription.7z (2.5 KB, 5 downloads) |
#14
10th Aug 2020 at 7:29 PM
Posts: 368
Thanks: 1103 in 7 Posts
When I tried to open your solution I got this message:
I clicked on "Upgrade to MSBuild 4.0", and a green bar loaded super fast but I didn't get a confirmation of an upgrade.
Then I went go to projects > compiling and Target Framework was set to 2.0, Is that good enough to continue?
If I go to "Change" I still don't have the 2.0 option, but I didn't touch anything:
I have version 5.1 installed, does this one usually work?
Thanks!
I clicked on "Upgrade to MSBuild 4.0", and a green bar loaded super fast but I didn't get a confirmation of an upgrade.
Then I went go to projects > compiling and Target Framework was set to 2.0, Is that good enough to continue?
If I go to "Change" I still don't have the 2.0 option, but I didn't touch anything:
I have version 5.1 installed, does this one usually work?
Thanks!
Space Pony
#15
10th Aug 2020 at 7:52 PM
Last edited by Battery : 10th Aug 2020 at 8:03 PM.
Posts: 433
Thanks: 780 in 6 Posts
Ok it looks like you dont have the net framework 2.0 installed. What operating system are you using ?
Just in case you are using Win 10. Try the following
1. hit your windows key and type Windows Features and select the result
2. this should bring up a Menu where you can select Net Framework 3.5 (if this is unchecked check it to install this will install not only 3.5 but also 2.0)
3. when the installation is complete you might need to restart your pc after that check SharpDevelop if you can now choose C# 2.0
If all that does for some reason not work you can download the Framework from Microsoft here
Good Luck !
Just in case you are using Win 10. Try the following
1. hit your windows key and type Windows Features and select the result
2. this should bring up a Menu where you can select Net Framework 3.5 (if this is unchecked check it to install this will install not only 3.5 but also 2.0)
3. when the installation is complete you might need to restart your pc after that check SharpDevelop if you can now choose C# 2.0
If all that does for some reason not work you can download the Framework from Microsoft here
Good Luck !
Who Posted
|