Go Back   RunUO - Ultima Online Emulation > RunUO > Custom Script Releases

Custom Script Releases This forum is where you can release your custom scripts for other users to use.

Please note: By releasing your scripts here you are submitting them to the public and as such agree to make them public domain. The RunUO Team has made its software GPL for you to use and enjoy you should do the same for anything based off of RunUO.

Reply
 
Thread Tools Display Modes
Old 10-14-2006, 02:03 PM   #1 (permalink)
Forum Novice
 
Ki Frost's Avatar
 
Join Date: Dec 2005
Age: 19
Posts: 743
Send a message via ICQ to Ki Frost Send a message via MSN to Ki Frost
Default Level System 2.0.3

Ki Frosts - Level System
Current Version : 2.0.3

Description:
A system that gives your players a level off of the experience they get from either their skills or their kills, depending on which one is activated. There are three different styles:

Classic - A System that goes off of player skill levels.
Enviroment - A System that gives experience off of all things killed, including players.
PvP - A System that gives experience off of player kills.

Players levels cannot exceed 100, easily changeable in code, unless they use a max level scroll.

Installation:
If you are using a clean install of RunUO 2.0, you can replace PlayerMobile.CS, BaseCreature.CS Titles.CS and CharacteCreation.CS with mine.
IF you arnt, see the install.rtf included in the download.

Warning:
Since there are three systems, which means multiple activation points, there must not be more than one system activated at a time. This can hae alot of unwanted results. And "Level System" must always stay activated for any of the others to work at all.

Other Items:
A max level fix stone - Older players use the stone and merge in and can now start leveling.
Level On Item Example - An item that shows you how to add a level requirment to weapons or armor.
A max level scroll - An item that when used by a player ups there max level a little ways. They can get it all the way to 120 with enough of them.

Future Updates:
Add a base script for items, weapons, shields armor, etc.
Change activation style to be easier and worry free.

Special Thanks:
Kalamin - Didnt get credit last time becuase I couldnt remember your name, finally tracked you down. Lots of this system came from his "Idea" he had posted.
Every One Else In Script Support - for sticking with me and helping with the errors.
Attached Files
File Type: rar Level System 2.0.3.rar (65.2 KB, 915 views)
__________________

Last edited by Ki Frost; 11-26-2006 at 11:59 AM.
Ki Frost is offline   Reply With Quote
Old 10-14-2006, 02:03 PM   #2 (permalink)
Forum Novice
 
Ki Frost's Avatar
 
Join Date: Dec 2005
Age: 19
Posts: 743
Send a message via ICQ to Ki Frost Send a message via MSN to Ki Frost
Default Level System 3 - Beta 0a -

Level System 3 Has Been Released.
__________________

Last edited by Ki Frost; 06-26-2007 at 02:22 PM.
Ki Frost is offline   Reply With Quote
Old 10-14-2006, 04:16 PM   #3 (permalink)
Forum Expert
 
XenoNeo's Avatar
 
Join Date: Feb 2006
Age: 23
Posts: 318
Send a message via AIM to XenoNeo Send a message via MSN to XenoNeo
Default Cool

I really like this. It is simple and can be easily managed into other systems if need be. I also have something similar that I was working on but couldn't pin it down but now this is ultimately the best. For I was making a class system that would seperate the crafters and fighters so crafters won't level off of fighting and fighters wouldn't level off of crafting! it was just a small mod to the player mobile that defined the class from one another... but I am still working on a player interface to pick which one they want. though if they select the default buttons on the character creation screen they'd already be defined. Thanks a whole bunch. I will try to look into a way to get both CLS and ELS to work at the same time!!
__________________
:mad: Red makes me angry!:mad::rolleyes: Blue makes me happy!:rolleyes:

.:Xeno-Corporation:.
Devised from our signature art to our Ultima Online shard; Thanks to all those that contributed to it all!
XenoNeo is offline   Reply With Quote
Old 10-19-2006, 07:00 PM   #4 (permalink)
Forum Novice
 
Ki Frost's Avatar
 
Join Date: Dec 2005
Age: 19
Posts: 743
Send a message via ICQ to Ki Frost Send a message via MSN to Ki Frost
Default

System Updated
__________________

Last edited by Ki Frost; 11-26-2006 at 11:55 AM.
Ki Frost is offline   Reply With Quote
Old 10-20-2006, 01:21 PM   #5 (permalink)
Forum Expert
 
XenoNeo's Avatar
 
Join Date: Feb 2006
Age: 23
Posts: 318
Send a message via AIM to XenoNeo Send a message via MSN to XenoNeo
Default

Your fix item has no suitable override method... Just thought I'd let you know.
__________________
:mad: Red makes me angry!:mad::rolleyes: Blue makes me happy!:rolleyes:

.:Xeno-Corporation:.
Devised from our signature art to our Ultima Online shard; Thanks to all those that contributed to it all!
XenoNeo is offline   Reply With Quote
Old 10-20-2006, 06:40 PM   #6 (permalink)
Forum Novice
 
Ki Frost's Avatar
 
Join Date: Dec 2005
Age: 19
Posts: 743
Send a message via ICQ to Ki Frost Send a message via MSN to Ki Frost
Default

Quote:
Originally Posted by XenoNeo
Your fix item has no suitable override method... Just thought I'd let you know.
Sorry Fixed Upload
__________________

Last edited by Ki Frost; 11-26-2006 at 11:56 AM.
Ki Frost is offline   Reply With Quote
Old 10-20-2006, 07:36 PM   #7 (permalink)
Forum Newbie
 
Join Date: Mar 2004
Posts: 13
Default

Great system, very simple and manageable.. Top rated
Clayzzz is offline   Reply With Quote
Old 11-09-2006, 03:20 AM   #8 (permalink)
Forum Expert
 
Lord Kaza's Avatar
 
Join Date: Jun 2006
Location: Oregon
Age: 14
Posts: 1,186
Send a message via AIM to Lord Kaza Send a message via MSN to Lord Kaza
Default

I had a question, for some reason the thing in the title (Level 1/100) does not change. I have to go [set title "" for it to actually change, did I do something wrong when I put the script in? (BTW, very nice level system, I like it a lot so far)
__________________

Last edited by Lord Kaza; 11-09-2006 at 03:23 AM.
Lord Kaza is offline   Reply With Quote
Old 11-09-2006, 01:33 PM   #9 (permalink)
Forum Expert
 
XenoNeo's Avatar
 
Join Date: Feb 2006
Age: 23
Posts: 318
Send a message via AIM to XenoNeo Send a message via MSN to XenoNeo
Default Maybe a better idea...

Maybe this would be a better way to display levels..

under playermobile... look for getproperties

Code:
		public override void GetProperties( ObjectPropertyList list )
		{
			base.GetProperties( list );

			list.Add( "Level: " + Level.ToString() );

			if ( Map == Faction.Facet )
			{
				PlayerState pl = PlayerState.Find( this );

				if ( pl != null )
				{
					Faction faction = pl.Faction;

					if ( faction.Commander == this )
						list.Add( 1042733, faction.Definition.PropName ); // Commanding Lord of the ~1_FACTION_NAME~
					else if ( pl.Sheriff != null )
						list.Add( 1042734, "{0}\t{1}", pl.Sheriff.Definition.FriendlyName, faction.Definition.PropName ); // The Sheriff of  ~1_CITY~, ~2_FACTION_NAME~
					else if ( pl.Finance != null )
						list.Add( 1042735, "{0}\t{1}", pl.Finance.Definition.FriendlyName, faction.Definition.PropName ); // The Finance Minister of ~1_CITY~, ~2_FACTION_NAME~
					else if ( pl.MerchantTitle != MerchantTitle.None )
						list.Add( 1060776, "{0}\t{1}", MerchantTitles.GetInfo( pl.MerchantTitle ).Title, faction.Definition.PropName ); // ~1_val~, ~2_val~
					else
						list.Add( 1060776, "{0}\t{1}", pl.Rank.Title, faction.Definition.PropName ); // ~1_val~, ~2_val~
				}
			}
		}
the red code is what I added, I really didn't like the display of max level so I removed it but I am sure you could rework it from what I have added. I still haven't found a way to get it to update though... Somehow it should invalidate it right?
__________________
:mad: Red makes me angry!:mad::rolleyes: Blue makes me happy!:rolleyes:

.:Xeno-Corporation:.
Devised from our signature art to our Ultima Online shard; Thanks to all those that contributed to it all!

Last edited by XenoNeo; 11-09-2006 at 01:36 PM.
XenoNeo is offline   Reply With Quote
Old 11-09-2006, 03:20 PM   #10 (permalink)
Forum Newbie
 
Join Date: Sep 2006
Age: 19
Posts: 13
Default

good system
-Zeke- is offline   Reply With Quote
Old 11-09-2006, 03:22 PM   #11 (permalink)
Forum Novice
 
Ki Frost's Avatar
 
Join Date: Dec 2005
Age: 19
Posts: 743
Send a message via ICQ to Ki Frost Send a message via MSN to Ki Frost
Default

@ XenoNeo
Thats why I put it where I did, so it will automatically update.

I will look into your way though, seems easier.

@Lord Kazaa -

I will look into that, I think I already know the mistake though.

//EDIT//

Kazaa found and fixed mistake.

Open PlayerMobile and find:
Code:
        [CommandProperty(AccessLevel.GameMaster)]
        public int Level
        {
            get { return m_Level; }
            set { m_Level = value; }
        }
Change it to be:
Code:
        [CommandProperty(AccessLevel.GameMaster)]
        public int Level
        {
            get { return m_Level; }
            set { m_Level = value; InvalidateProperties(); }
        }
__________________

Last edited by Ki Frost; 11-09-2006 at 03:38 PM.
Ki Frost is offline   Reply With Quote
Old 11-10-2006, 09:51 AM   #12 (permalink)
Forum Expert
 
XenoNeo's Avatar
 
Join Date: Feb 2006
Age: 23
Posts: 318
Send a message via AIM to XenoNeo Send a message via MSN to XenoNeo
Default

@ KI Frost
Hey, how would I go and have this in a gump? Like how would I show the level in a gump? I have been working on that but since I have never done it I am really struggling... any help would be great, thanks!
__________________
:mad: Red makes me angry!:mad::rolleyes: Blue makes me happy!:rolleyes:

.:Xeno-Corporation:.
Devised from our signature art to our Ultima Online shard; Thanks to all those that contributed to it all!
XenoNeo is offline   Reply With Quote
Old 11-10-2006, 05:07 PM   #13 (permalink)
Forum Expert
 
DraconisDesBois's Avatar
 
Join Date: Oct 2003
Location: California
Age: 27
Posts: 284
Send a message via ICQ to DraconisDesBois Send a message via AIM to DraconisDesBois Send a message via Yahoo to DraconisDesBois
Default

Very awesome package. I love the max level scrolls, makes the currency alot more demanded.
__________________
Sonoma Veteran zDARIALz
1998 - 2006

DraconisDesBois is offline   Reply With Quote
Old 11-12-2006, 02:36 AM   #14 (permalink)
Forum Expert
 
XenoNeo's Avatar
 
Join Date: Feb 2006
Age: 23
Posts: 318
Send a message via AIM to XenoNeo Send a message via MSN to XenoNeo
Default

The method worked if your interested in having that.

Code:
		public override void GetProperties( ObjectPropertyList list )
		{
			base.GetProperties( list );

			list.Add( "Level: " + Level.ToString() );

			if ( Map == Faction.Facet )
			{
				PlayerState pl = PlayerState.Find( this );

				if ( pl != null )
				{
					Faction faction = pl.Faction;

					if ( faction.Commander == this )
						list.Add( 1042733, faction.Definition.PropName ); // Commanding Lord of the ~1_FACTION_NAME~
					else if ( pl.Sheriff != null )
						list.Add( 1042734, "{0}\t{1}", pl.Sheriff.Definition.FriendlyName, faction.Definition.PropName ); // The Sheriff of  ~1_CITY~, ~2_FACTION_NAME~
					else if ( pl.Finance != null )
						list.Add( 1042735, "{0}\t{1}", pl.Finance.Definition.FriendlyName, faction.Definition.PropName ); // The Finance Minister of ~1_CITY~, ~2_FACTION_NAME~
					else if ( pl.MerchantTitle != MerchantTitle.None )
						list.Add( 1060776, "{0}\t{1}", MerchantTitles.GetInfo( pl.MerchantTitle ).Title, faction.Definition.PropName ); // ~1_val~, ~2_val~
					else
						list.Add( 1060776, "{0}\t{1}", pl.Rank.Title, faction.Definition.PropName ); // ~1_val~, ~2_val~
				}
			}
		}
this would be found under playermobile.cs

Code:
        [CommandProperty(AccessLevel.GameMaster)]
        public int Level
        {
            get { return m_Level; }
            set { m_Level = value; InvalidateProperties(); }
        }
and making sure that in the props for the level has the invalidateproperties

Works great, and thanks for bringing such a customizable idea for player level base!
__________________
:mad: Red makes me angry!:mad::rolleyes: Blue makes me happy!:rolleyes:

.:Xeno-Corporation:.
Devised from our signature art to our Ultima Online shard; Thanks to all those that contributed to it all!
XenoNeo is offline   Reply With Quote
Old 12-15-2006, 01:22 AM   #15 (permalink)
Newbie
 
Join Date: Oct 2006
Location: La
Age: 19
Posts: 85
Send a message via MSN to garthro
Default a lil problem

i put in your lvl system but i dont think its workin i get the lil stones in my pack but when i click em nothin happens and also nothing happens when i click the high lvl tickets also how do i know which system is activated?
__________________
love me or hate me but u better love me cause im 270 lbs and 6' 6"
garthro is offline   Reply With Quote
Old 01-01-2007, 09:38 PM   #16 (permalink)
Forum Newbie
 
Join Date: Dec 2006
Posts: 3
Default

You know what system is active by looking in the Core folder that comes with the download, opening the file and setting true/false to what system you want active.

Aside from that; I've been unable to get this system working either. I have fresh build of RunUO 2.0 (126) and added only this. I tried these 2 systems:

Classic System - Gain skills but levels do not increase. Also recieve Stones of Levels after killing monsters, but I think you're not supposed to?
Environment System - Get Stones of Levels but they are not usable after d-clicking.

No scripts added, none modified, only this. Any ideas?
Arkon948 is offline   Reply With Quote
Old 01-03-2007, 07:29 PM   #17 (permalink)
Forum Novice
 
Ki Frost's Avatar
 
Join Date: Dec 2005
Age: 19
Posts: 743
Send a message via ICQ to Ki Frost Send a message via MSN to Ki Frost
Default

I am not going to work on this further until a final version of 2.0 is released as the differences in the packs cause problems. After that though, I will update it and help anyone who may need help.
__________________
Ki Frost is offline   Reply With Quote
Old 01-03-2007, 08:51 PM   #18 (permalink)
Forum Expert
 
LordHogFred's Avatar
 
Join Date: Jan 2004
Location: UK, Essex
Age: 19
Posts: 1,166
Default

Could I make a suggestion to add an experience gain to crafting items so as crafters can gain levels also?
__________________
It is not the hand that creates worlds,
It is the mind controlling it !

The New Dawn Network
LordHogFred is offline   Reply With Quote
Old 01-07-2007, 06:29 AM   #19 (permalink)
Forum Expert
 
Hazey's Avatar
 
Join Date: Dec 2006
Location: Just floatin along 'Cloud 9'
Age: 20
Posts: 373
Send a message via AIM to Hazey
Default

Would somebody mind adding what the installation contains? It shows up as a .rtf file for me and when I open it I get all this:
Code:
{\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\fnil\fprq1\fcharset0 Courier New;}}
{\colortbl ;\red0\green0\blue255;\red0\green128\blue0;\red128\green0\blue0;\red0\green0\blue0;\red0\green128\blue128;}
{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\f0\fs24 Welcome, you have found your way to the installation guide for the "Player Level System 2.0 Beta 1"!\par
\par
This document will help guide you in installing the new level system on your server.\par
\par
If you are using a clean install please use the distro scripts provided and read part 1, on how to input maxlevels on new players. \par
\par
If you arnt, then read the whole document!\par
\par
\b 1: Additions To CharacterCreation.CS\b0  (Max Level *NOTE* THIS IS REQUIRED!)\par
\par
This is a quite simple mod.\par
\par
The very first thing you want to do is add:\par
\par
\f1\fs20\par
\cf1 using\cf0  Server.LSCore.Active;\cf2\i\f0\fs24\par
\cf0\i0\par
to the top of your code.\par
\par
Then search for:\par
\f1\fs20\tab\tab\tab newChar.Hunger = 20;\cf1\i\f0\fs24\par
\cf0\i0\par
and below it add this:\par
\par
\cf1\f1\fs20             #region\cf0  LSB1\par
            \cf1 if\cf0  (!(CLS.Enabled))\par
            \{\par
                PlayerMobile pm = newChar \cf1 as\cf0  PlayerMobile;\par
\par
                \cf1 if\cf0  (LevelSystem.Enabled)\par
                \{\par
                    \cf1 if\cf0  (pm.AccessLevel == AccessLevel.Player)\par
                        pm.MaxLevel = 100;\par
                    \cf1 else\par
\cf0                         pm.MaxLevel = 200;\par
                \}\par
            \}\par
\cf1             #endregion\cf2\i\f0\fs24\par
\cf0\i0\par
Save and close, if you are using distros provided, have fun!, if not continue on!...\par
\par
\b 2: Additions to PlayerMobile.CS\b0  (*REQUIRED FOR ALL SYSTEMS*)\par
\par
This one is easy, but it is also easy to get lost.\par
\par
The very first thing you want to do is add:\par
\par
\f1\fs20\par
\cf1 using\cf0  Server.LSCore.Active;\cf2\i\f0\fs24\par
\cf0\i0\par
to the top of your code.\par
then skip down a little bit to this area:\par
\par
\f1\fs20\tab\cf1 public\cf0  \cf1 class\cf0  PlayerMobile : Mobile, IHonorTarget\par
      \{\cf1\i\f0\fs24\par
\cf0\i0\par
right below it you will need to add:\par
\par
\cf1\f1\fs20         #region\cf0  LSB1\par
\par
        \cf1 private\cf0  \cf1 int\cf0  m_Exp;\par
        \cf1 private\cf0  \cf1 int\cf0  m_Level = 1;\par
        \cf1 private\cf0  \cf1 int\cf0  m_MaxLevel;\par
\par
        [CommandProperty(AccessLevel.GameMaster)]\par
        \cf1 public\cf0  \cf1 int\cf0  Exp\par
        \{\par
            \cf1 get\cf0  \{ \cf1 return\cf0  m_Exp; \}\par
            \cf1 set\cf0  \{ m_Exp = \cf1 value\cf0 ; \}\par
        \}\par
        [CommandProperty(AccessLevel.GameMaster)]\par
        \cf1 public\cf0  \cf1 int\cf0  Level\par
        \{\par
            \cf1 get\cf0  \{ \cf1 return\cf0  m_Level; \}\par
            \cf1 set\cf0  \{ m_Level = \cf1 value\cf0 ; InvalidateProperites(); \}\par
        \}\par
        [CommandProperty(AccessLevel.GameMaster)]\par
        \cf1 public\cf0  \cf1 int\cf0  MaxLevel\par
        \{\par
            \cf1 get\cf0  \{ \cf1 return\cf0  m_MaxLevel; \}\par
            \cf1 set\cf0  \{ m_MaxLevel = \cf1 value\cf0 ; InvalidateProperties(); \}\par
        \}\par
\par
\cf1         #endregion\cf2\i\f0\fs24\par
\cf0\i0\par
Now you will want to waid even farther down and find:\par
\par
\f1\fs20\tab\tab\cf1 public\cf0  \cf1 override\cf0  \cf1 void\cf0  OnDamage( \cf1 int\cf0  amount, Mobile from, \cf1 bool\cf0  willKill )\par
        \tab\{\cf1\i\f0\fs24\par
\cf0\i0\par
Under neath this you will want to add:\par
\par
\cf1\f1\fs20             #region\cf0  LSB\par
\par
            \cf1 if\cf0  (LevelSystem.Enabled)\par
            \{\par
                \cf1 if\cf0  (!(CLS.Enabled))\par
                \{\par
                    \cf1 if\cf0  (!(\cf1 this\cf0 .MaxLevel == 0))\par
                    \{\par
                        \cf1 if\cf0  (!(\cf1 this\cf0 .Level > \cf1 this\cf0 .MaxLevel))\par
                        \{\par
                            \cf1 if\cf0  (\cf1 this\cf0 .Level >= 20)\par
                                \cf1 this\cf0 .Exp = (Utility.RandomMinMax(6, 20));\par
                            \cf1 else\par
\cf0                                 \cf1 this\cf0 .Exp = (Utility.RandomMinMax(1, 12));\par
\par
                            \cf1 if\cf0  (\cf1 this\cf0 .Exp >= 500 * \cf1 this\cf0 .Level)\par
                            \{\par
                                \cf1 this\cf0 .Level += 1;\par
                                \cf1 this\cf0 .Exp = 0;\par
                                \cf1 this\cf0 .SendMessage(\cf3 "Congratulations! You just leveld"\cf0 );\par
\par
                                \cf1 if\cf0  (0.33 > Utility.RandomDouble())\par
                                \{\par
                                    \cf1 if\cf0  (\cf1 this\cf0 .RawStatTotal != \cf1 this\cf0 .StatCap)\par
                                    \{\par
                                        \cf1 switch\cf0  (Utility.Random(3))\par
                                        \{\par
                                            \cf1 case\cf0  0: \cf1 base\cf0 .RawStr += 1; \cf1 break\cf0 ;\par
                                            \cf1 case\cf0  1: \cf1 base\cf0 .RawDex += 1; \cf1 break\cf0 ;\par
                                            \cf1 case\cf0  2: \cf1 base\cf0 .RawInt += 1; \cf1 break\cf0 ;\par
                                        \}\par
                                    \}\par
                                \}\par
                            \}\par
                        \}\par
                    \}\par
                    \cf1 else\par
\cf0                     \{\par
                        \cf1 this\cf0 .SendMessage(\cf3 "A Level System has been activated, please use the stone in your bag to use it!"\cf0 );\par
                        \cf1 this\cf0 .AddToBackpack(\cf1 new\cf0  PMMLFix());\par
                    \}\par
                \}\par
            \}\par
\par
\cf1             #endregion\par
\par
\cf4 LSB2 Addition\par
\par
Find:\par
\cf0\tab\tab\cf1 public\cf0  \cf1 override\cf0  \cf1 bool\cf0  OnBeforeDeath()\par
        \tab\{\par
and add this under it:\par
\par
\cf1             #region\cf0  LSB\par
            \cf1 if\cf0  (LevelSystem.Enabled && (!(CLS.Enabled && ELS.Enabled)))\par
            \{\par
                \cf1 if\cf0  (\cf1 this\cf0 .LastKiller \cf1 is\cf0  PlayerMobile)\par
                \{\par
                    \cf1 if\cf0  (0.33 > Utility.RandomDouble())\par
                        \cf1 this\cf0 .Exp = \cf1 this\cf0 .Exp / 2;\par
                \}\par
            \}\par
\cf1             #endregion\par
\par
\cf4 LSB2 Addition End\cf2\f0\fs24\par
\cf0\par
Now for the serious edits, Find this\par
\par
\f1\fs20\tab\tab\cf1 public\cf0  \cf1 override\cf0  \cf1 void\cf0  Deserialize( GenericReader reader )\par
\tab\tab\{\par
\tab\tab\tab\cf1 base\cf0 .Deserialize( reader );\par
\tab\tab\tab\cf1 int\cf0  version = reader.ReadInt();\par
\par
\tab\tab\tab\cf1 switch\cf0  ( version )\par
            \tab\{\cf1\i\f0\fs24\par
\cf0\i0\par
Under it you will want to add this:\par
\par
\cf1\f1\fs20                 #region\cf0  LSB1\par
\par
                \cf1 case\cf0  26:\par
                    \{\par
                        m_Exp = reader.ReadInt();\par
                        m_Level = reader.ReadInt();\par
                        m_MaxLevel = reader.ReadInt();\par
                        \cf1 goto\cf0  \cf1 case\cf0  25;\par
                    \}\par
\par
\cf1                 #endregion\cf2\i\f0\fs24\par
\cf0\i0\par
now then go to:\par
\par
\f1\fs20\tab\tab\tab CheckAtrophies( \cf1 this\cf0  );\par
\par
\tab\tab\tab\cf1 base\cf0 .Serialize( writer );\par
\tab\tab\tab\par
\tab\tab\tab writer.Write( (\cf1 int\cf0 ) 25 ); \cf2 // version \cf1\i\f0\fs24\par
\cf0\i0\par
Change the above line to be:\par
\f1\fs20\tab\tab\tab writer.Write( (\cf1 int\cf0 ) 26 ); \cf2 // version \i\f0\fs24\par
\cf0\i0\par
Then add this under that line:\par
\par
\cf1\f1\fs20             #region\cf0  LSB1\par
\par
            writer.Write((\cf1 int\cf0 )m_Exp);\par
            writer.Write((\cf1 int\cf0 )m_Level);\par
            writer.Write((\cf1 int\cf0 )m_MaxLevel);\par
\par
\cf1             #endregion\cf2\i\f0\fs24\par
\cf0\i0\par
\ul NOTE: THE TWO EDITS THAT WHERE JUST DONE IS WITH THE ASSUMPTION THAT YOU HAVE AN UNMODED PLAYERMOBILE!\par
if not using an unmoded playermobile you will need to change the:\par
case 26:\par
goto case 25;\par
writer.Write( (int) 26 ); // version\par
\par
to suit your needs.\par
END NOTE\par
\ulnone\par
Now find this section:\par
\par
\f1\fs20         \cf1 public\cf0  \cf1 override\cf0  \cf1 string\cf0  ApplyNameSuffix(\cf1 string\cf0  suffix)\par
        \{\par
            \cf1 if\cf0  (Young)\par
            \{\par
                \cf1 if\cf0  (suffix.Length == 0)\par
                    suffix = \cf3 "(Young)"\cf0 ;\par
                \cf1 else\par
\cf0                     suffix = \cf5 String\cf0 .Concat(suffix, \cf3 " (Young)"\cf0 );\par
            \}\cf1\i\f0\fs24\par
\cf0\i0 and add this under it:\par
\par
\cf1\f1\fs20             #region\cf0  LSB\par
\par
            \cf1 if\cf0  (LevelSystem.Enabled)\par
            \{\par
                \cf1 if\cf0  (CLS.Enabled)\par
                \{\par
                    \cf1 if\cf0  (suffix.Length == 0)\par
                        suffix = \cf5 String\cf0 .Format(\cf3 "Level \{0\}"\cf0 , Level);\par
                    \cf1 else\par
\cf0                         suffix = \cf5 String\cf0 .Concat(suffix, \cf5 String\cf0 .Format(\cf3 "Level \{0\}"\cf0 , Level));\par
                \}\par
                \cf1 else\par
\cf0                 \{\par
                    \cf1 if\cf0  (!(\cf1 this\cf0 .MaxLevel == 0))\par
                    \{\par
                        \cf1 if\cf0  (suffix.Length == 0)\par
                            suffix = \cf5 String\cf0 .Format(\cf3 "Level \{0\}/\{1\}"\cf0 , Level, MaxLevel);\par
                        \cf1 else\par
\cf0                             suffix = \cf5 String\cf0 .Concat(suffix, \cf5 String\cf0 .Format(\cf3 "Level \{0\}/\{1\}"\cf0 , Level, MaxLevel));\par
                    \}\par
                \}\par
            \}\par
\par
\cf1             #endregion\cf2\i\f0\fs24\par
\cf0\i0\par
YEAY, we are done with the PlayerMobile.CS Edits make sure you \b SAVE\b0  that, so you dont need to do it again!\par
\par
\b 3: Additions To BaseCreature.CS\b0  (Easy one, required for Enviroment)\par
FILE LOCATED IN: Scripts\\Engines\\AI\\Creature\\\par
\par
First thing you want to do to this file is again add:\par
\f1\fs20\par
\cf1 using\cf0  Server.LSCore.Active;\cf2\i\f0\fs24\par
\cf0\i0\par
To the top of it.\par
\par
Then you will need to search for:\par
\f1\fs20         \cf1 public\cf0  \cf1 override\cf0  \cf1 bool\cf0  OnBeforeDeath()\par
        \{\cf1\i\f0\fs24\par
\cf0\i0 Under it you will add:\par
\par
\cf1\f1\fs20             #region\cf0  LSB\par
\par
            \cf1 if\cf0  (\cf1 this\cf0 .LastKiller \cf1 is\cf0  PlayerMobile)\par
            \{\par
                PlayerMobile pm = (PlayerMobile)\cf1 this\cf0 .LastKiller;\par
\par
                \cf1 if\cf0  (!(pm.MaxLevel == 0))\par
                \{\par
                    \cf1 if\cf0  (LevelSystem.Enabled && (!(CLS.Enabled && PvPLS.Enabled)))\par
                    \{\par
                        \cf1 if\cf0  (!(pm.Level > pm.MaxLevel))\par
                        \{\par
                            \cf1 int\cf0  CExp = (\cf1 this\cf0 .HitsMax) / 3;\par
                            pm.Exp += CExp;\par
                            pm.SendMessage(\cf3 "You have gained \{0\} exp points from the kill"\cf0 , CExp);\par
\par
                            \cf1 if\cf0  (pm.Exp >= 500 * pm.Level) \cf2 // The Exp Cap\par
\cf0                             \{\par
                                pm.Level += 1;\par
                                pm.Exp = 0;\par
                                pm.SendMessage(\cf3 "Congradulations you have gained a level!"\cf0 );\par
\par
                                \cf1 if\cf0  (0.33 > Utility.RandomDouble())\par
                                \{\par
                                    \cf1 if\cf0  (pm.RawStatTotal != pm.StatCap)\par
                                    \{\par
                                        \cf1 switch\cf0  (Utility.Random(3))\par
                                        \{\par
                                            \cf1 case\cf0  0: pm.RawStr += 1; pm.SendMessage(\cf3 "You also gained 1 strength level"\cf0 ); \cf1 break\cf0 ;\par
                                            \cf1 case\cf0  1: pm.RawDex += 1; pm.SendMessage(\cf3 "You also gained 1 dexterity level"\cf0 ); \cf1 break\cf0 ;\par
                                            \cf1 case\cf0  2: pm.RawInt += 1; pm.SendMessage(\cf3 "You also gained 1 intellagence level"\cf0 ); \cf1 break\cf0 ;\par
                                        \}\par
                                    \}\par
                                \}\par
                            \}\par
                        \}\par
                    \}\par
                \}\par
                \cf1 else\par
\cf0                 \{\par
                    pm.SendMessage(\cf3 "A Level System has been activated, please use the stone in your bag to use it!"\cf0 );\par
                    pm.AddToBackpack(\cf1 new\cf0  PMMLFix());\par
                \}\par
            \}\par
\par
\cf1             #endregion\cf2\i\f0\fs24\par
\cf0\i0\par
Save and your done with BaseCreature.CS\par
\par
\b 4: Additions To Titles.CS\par
\par
\b0 First thing you want to do to this file is again add:\par
\f1\fs20\par
\cf1 using\cf0  Server.LSCore.Active;\cf2\i\f0\fs24\par
\cf0\i0\par
To the top of it.\par
\par
Next you will need to find:\par
\par
\f1\fs20             \cf1 else\cf0  \cf1 if\cf0  (showSkillTitle && beheld.Player)\par
            \{\par
                Skill highest = GetHighestSkill(beheld);\cf2 // beheld.Skills.Highest;\par
\par
\cf0                 \cf1 if\cf0  (highest != \cf1 null\cf0  && highest.BaseFixedPoint >= 300)\par
                \{\par
                    \cf1 string\cf0  skillLevel = GetSkillLevel(highest);\par
                    \cf1 string\cf0  skillTitle = highest.Info.Title;\par
\par
                    \cf1 if\cf0  (beheld.Female && skillTitle.EndsWith(\cf3 "man"\cf0 ))\par
                        skillTitle = skillTitle.Substring(0, skillTitle.Length - 3) + \cf3 "woman"\cf0 ;\par
\par
                        title.AppendFormat(\cf3 ", \{0\} \{1\}"\cf0 , skillLevel, skillTitle);\par
                \}\par
            \}\par
\par
            \cf1 return\cf0  title.ToString();\cf1\f0\fs24\par
\par
\cf4 And change it to look like:\par
\par
\cf0\f1\fs20             \cf1 else\cf0  \cf1 if\cf0  (showSkillTitle && beheld.Player)\par
            \{\par
                Skill highest = GetHighestSkill(beheld);\cf2 // beheld.Skills.Highest;\par
\par
\cf0                 \cf1 if\cf0  (highest != \cf1 null\cf0  && highest.BaseFixedPoint >= 300)\par
                \{\par
                    \cf1 string\cf0  skillLevel = GetSkillLevel(highest);\par
                    \cf1 string\cf0  skillTitle = highest.Info.Title;\par
\par
                    \cf1 if\cf0  (beheld.Female && skillTitle.EndsWith(\cf3 "man"\cf0 ))\par
                        skillTitle = skillTitle.Substring(0, skillTitle.Length - 3) + \cf3 "woman"\cf0 ;\par
\par
                    \cf2 //LSB1\par
\cf0                     \cf1 if\cf0  (!(LevelSystem.Enabled))\par
                        title.AppendFormat(\cf3 ", \{0\} \{1\}"\cf0 , skillLevel, skillTitle);\par
                    \cf1 else\par
\cf0                     \{\par
                        PlayerMobile pm = beheld \cf1 as\cf0  PlayerMobile;\par
                        \cf1 if\cf0  (!(CLS.Enabled))\par
                            title.AppendFormat(\cf3 ", \{0\} \{1\} \{2\}/\{3\}"\cf0 , skillLevel, skillTitle, pm.Level, pm.MaxLevel);\par
                        \cf1 else\par
\cf0                             title.AppendFormat(\cf3 ", \{0\} \{1\} Level \{2\}"\cf0 , skillLevel, skillTitle, pm.Level);\par
                    \}\par
                \}\par
            \}\par
\par
            \cf1 return\cf0  title.ToString();\cf2\f0\fs24\par
\par
\cf4 Save and you are done with the Titles.cs Edits.\par
\par
You are done! Congrats, restart\\start the server and have fun!\cf0\par
}
Hazey is offline   Reply With Quote
Old 01-08-2007, 09:46 PM   #20 (permalink)
Forum Novice
 
Ki Frost's Avatar
 
Join Date: Dec 2005
Age: 19
Posts: 743
Send a message via ICQ to Ki Frost Send a message via MSN to Ki Frost
Default

Quote:
Originally Posted by Hazey View Post
Would somebody mind adding what the installation contains? It shows up as a .rtf file for me and when I open it I get all this:
.rtf can be opened in wordpad or microsoft works.

for the lazy or incapable...

Code: