|
||
|
|||||||
| 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. |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 (permalink) |
|
Forum Expert
|
Daat99's Custom OWLTR for RunUO 2.0 RC1.
by Lokai Now updated and organized for use with FS Animal Taming Gen2. Scripts folder contains all files needed to add/replace for this system. NOTE: Implies that you already have FS Animal Taming Gen2. If not, this may not work for you. Installation: 1. BACKUP your existing RunUO Folder (not just the Scripts!) 2. Copy this Scripts folder to your RunUO installation folder. When prompted choose "Yes" or "Yes to All" to overwrite existing files. 3. Restart the server. Uninstall: 1. Restore your original RunUO Folder. 2. Restart the server. Updates: 5/20/2008 Re-uploaded all files. Main Zip file includes ALL OTHER PATCHES, so you only need that one file, unless you are just looking for one of the others specifically. 11/17/2006 Added Patch for ML Resources randomly dropping when harvesting. 10/19/2006 corbingene01 updated docs.cs to work with this system. THANKS! I have posted the script here. 9/16/2006 Updated SmallBOD.cs to include check for BaseWeapon in EndCombine(). Thanks, merin. 8/3/2006 Updated ChampionSpawn.cs to include spawns for Sleeping Dragon. Thanks, DebbieDoo, for stumbling on this one. Oops. Fixed last update. I had not incremented [7] to [8]. Done now. 7/11/2006 OWLTR gump now includes new options for the Trash for Tokens system. Lady Luck carries the variables. 1. TrashGoldOK - Bool - If set to False, prevents bag from being used to carry Gold. 2. TrashTokensOK - Bool - If set to False, prevents players from trashing Tokens, TokenChecks, the TokenLedger, and LootTokenChecks. 3. SafeBagMinutes - Int - Sets the amount of time before Trash is emptied. 4. SafeBagWeightPercent - Int - Sets the Percentage of Weight reduced by the bag. 0 = normal bag, 100 = items in bag weigh nothing. When these variables are set, the change is Global, and no restart is required. 7/15/2006 Updated files for FS Animal Taming Gen2 (BaseCreature) I announced this update on the Forums about a week before posting, so hopefully I am not stepping on any toes with this. Here is the link: [2.0] Daat99 OWLTR update...sort of... - RunUO - Ultima Online Emulation
__________________
Advanced Player Gate with Shard Control - My Master Runebook - Linked Books & Bags - Full Toolbar (Fubar) - XML Bible system - Music Box - Enhancement Deeds - House Paints - Light Switch Last edited by Lokai; 05-20-2008 at 06:12 PM. Reason: Updated for FSAT Gen2 |
|
|
|
|
|
#2 (permalink) |
|
Join Date: Oct 2003
Posts: 30
|
doesnt work. 2 problems. first, using Server. Scripts. Commands in Crafting recipe is error, i just took out the scripts and that bypassed it, dunno if that affects anything. Secondly, your own basecreature doesnt include the new powermoves for the gen2 taming system, so cant compile
|
|
|
|
|
|
#3 (permalink) | ||
|
Forum Expert
|
Quote:
Quote:
If anyone can use this, and add the gen2 updates, I would appreciate it. I will try to help with any errors. |
||
|
|
|
|
|
#4 (permalink) |
|
Forum Newbie
Join Date: Feb 2006
Posts: 30
|
I get the same error about the Server.Scripts.Commands
This was used by RunUO 1.0 but now has to be changed to: Code:
using Server.Commands; Code:
using Server.Scripts.Commands; |
|
|
|
|
|
#6 (permalink) | |
|
Forum Expert
|
Quote:
I was afraid this would happen for many people, which was why I tried to get feedback prior to releasing it.I know at least one shard that installed this prior to the release of Gen2, and had no problems. If I get the time, I will work toward updating it for Gen2. Of course, by then Gen3 will be out, and I will be in the same boat.... ![]() |
|
|
|
|
|
|
#8 (permalink) |
|
Forum Newbie
Join Date: Feb 2006
Posts: 30
|
I think you might be missing something in the basecreature.cs to get the "FS Animal Taming Gen2" system to work with the OWLTR script except if you were able to put it into another file which I didn't check
![]() Below: Code:
if ( version >= 14 )
{
m_RemoveIfUntamed = reader.ReadBool();
m_RemoveStep = reader.ReadInt();
}
Code:
if( version <= 14 && m_Paragon && Hue == 0x31 )
{
Hue = Paragon.Hue; //Paragon hue fixed, should now be 0x501.
}
CheckStatTimers();
ChangeAIType(m_CurrentAI);
AddFollowers();
if ( IsAnimatedDead )
Spells.Necromancy.AnimateDeadSpell.Register( m_SummonMaster, this );
Code:
public virtual bool DeleteOnRelease{ get{ return m_bSummoned; } }
Code:
//Advanced Pet System
public void DoDeathCheck()
{
Mobile cm = this.ControlMaster;
if ( cm != null && this.Controlled == true && Tamable == true )
{
if ( this.IsBonded == true )
{
if ( this.AbilityPoints >= 0 && Utility.Random( 100 ) < 25 )
{
this.AbilityPoints = this.AbilityPoints / 2;
cm.SendMessage( 38, "Your pet has lost half of thier ability points due to its untimely death." );
}
else if ( this.Exp >= 0 && Utility.Random( 100 ) < 25 )
{
this.Exp = this.Exp / 2;
cm.SendMessage( 38, "Your pet has lost half of thier exp due to its untimely death." );
}
else if ( Utility.Random( 100 ) < 25 )
{
int strloss = this.Str / 20;
int dexloss = this.Dex / 20;
int intloss = this.Int / 20;
int hitsloss = this.Hits / 20;
int stamloss = this.Stam / 20;
int manaloss = this.Mana / 20;
int physloss = this.PhysicalResistance / 20;
int fireloss = this.FireResistance / 20;
int coldloss = this.ColdResistance / 20;
int energyloss = this.EnergyResistance / 20;
int poisonloss = this.PoisonResistance / 20;
int dminloss = this.DamageMin / 20;
int dmaxloss = this.DamageMax / 20;
this.Str -= strloss;
this.Dex -= dexloss;
this.Int -= intloss;
if ( this.HitsMaxSeed >= 0 )
this.HitsMaxSeed -= hitsloss;
if ( this.StamMaxSeed >= 0 )
this.StamMaxSeed -= stamloss;
if ( this.ManaMaxSeed >= 0 )
this.ManaMaxSeed -= manaloss;
if ( this.PhysicalResistanceSeed >= 0 )
this.PhysicalResistanceSeed -= physloss;
if ( this.FireResistSeed >= 0 )
this.FireResistSeed -= fireloss;
if ( this.ColdResistSeed >= 0 )
this.ColdResistSeed -= coldloss;
if ( this.EnergyResistSeed >= 0 )
this.EnergyResistSeed -= energyloss;
if ( this.PoisonResistSeed >= 0 )
this.PoisonResistSeed -= poisonloss;
this.DamageMin -= dminloss;
this.DamageMax -= dmaxloss;
cm.SendMessage( 38, "Your pet has suffered a 5% stat lose due to its untimely death." );
}
cm.SendMessage( 64, "Your pet has been killed!" );
}
else
{
cm.SendMessage( 64, "Your pet has been killed!" );
}
}
}
public void DoBioDeath()
{
Mobile cm = this.ControlMaster;
if ( cm != null && this.Controlled == true && Tamable == true )
{
if ( this.IsBonded == true )
{
if ( Utility.Random( 100 ) < 25 )
{
int strloss = this.Str / 20;
int dexloss = this.Dex / 20;
int intloss = this.Int / 20;
int hitsloss = this.Hits / 20;
int stamloss = this.Stam / 20;
int manaloss = this.Mana / 20;
int physloss = this.PhysicalResistance / 20;
int fireloss = this.FireResistance / 20;
int coldloss = this.ColdResistance / 20;
int energyloss = this.EnergyResistance / 20;
int poisonloss = this.PoisonResistance / 20;
int dminloss = this.DamageMin / 20;
int dmaxloss = this.DamageMax / 20;
this.Str -= strloss;
this.Dex -= dexloss;
this.Int -= intloss;
if ( this.HitsMaxSeed >= 0 )
this.HitsMaxSeed -= hitsloss;
if ( this.StamMaxSeed >= 0 )
this.StamMaxSeed -= stamloss;
if ( this.ManaMaxSeed >= 0 )
this.ManaMaxSeed -= manaloss;
if ( this.PhysicalResistanceSeed >= 0 )
this.PhysicalResistanceSeed -= physloss;
if ( this.FireResistSeed >= 0 )
this.FireResistSeed -= fireloss;
if ( this.ColdResistSeed >= 0 )
this.ColdResistSeed -= coldloss;
if ( this.EnergyResistSeed >= 0 )
this.EnergyResistSeed -= energyloss;
if ( this.PoisonResistSeed >= 0 )
this.PoisonResistSeed -= poisonloss;
this.DamageMin -= dminloss;
this.DamageMax -= dmaxloss;
cm.SendMessage( 38, "Your pet has suffered a 5% stat lose due to its untimely death." );
}
cm.SendMessage( 64, "Your pet has been killed!" );
}
else
{
cm.SendMessage( 64, "Your pet has been killed!" );
}
}
}
public void CheckLevel( Mobile defender )
{
int expgainmin, expgainmax;
if ( this is BaseBioCreature )
{
}
else if ( defender is BaseCreature )
{
if ( this.Controlled == true && this.ControlMaster != null && Summoned == false )
{
BaseCreature bc = (BaseCreature)defender;
expgainmin = 5 + ( bc.HitsMax ) / 10;
expgainmax = 5 + ( bc.HitsMax ) / 5;
if ( m_Level <= m_MaxLevel - 1 )
m_Exp += Utility.RandomList( expgainmin, expgainmax );
int nextLevel = m_NextLevel * m_Level;
if ( m_Exp >= nextLevel && m_Level <= m_MaxLevel - 1 )
{
Mobile cm = this.ControlMaster;
m_Level += 1;
m_Exp = 0;
this.FixedParticles( 0x373A, 10, 15, 5012, EffectLayer.Waist );
this.PlaySound( 503 );
cm.SendMessage( 38, "Your pets level has increased to {0}.", m_Level );
int gain = Utility.RandomList( 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 6 );
int random = Utility.Random( 100 );
if ( random < 2 )
gain = gain * 10;
else if ( random < 4 )
gain = gain * 5;
else if ( random < 6 )
gain = gain * 4;
else if ( random < 8 )
gain = gain * 3;
else if ( random < 10 )
gain = gain * 2;
//else
//gain = gain;
this.AbilityPoints += gain;
if ( this.ControlMaster != null )
{
this.ControlMaster.SendMessage( 38, "Your pet {0} has gained some ability points, Goto your pets 'NPC Info' and click the red diamond to apply these points." );
//this.ControlMaster.CloseGump( typeof( LevelGump ) );
//this.ControlMaster.CloseGump( typeof( PetLevelGump ) );
//this.ControlMaster.SendGump( new LevelGump( this ) );
}
if ( m_Level == 9 )
{
m_AllowMating = true;
cm.SendMessage( 1161, "Your pet is now at the level to mate." );
}
if ( m_Evolves == true )
{
if ( UsesForm1 == true && F0 == true )
{
this.BodyValue = m_Form1;
this.BaseSoundID = m_Sound1;
m_F1 = true;
m_F2 = false;
m_F3 = false;
m_F4 = false;
m_F5 = false;
m_F6 = false;
m_F7 = false;
m_F8 = false;
m_F9 = false;
UsesForm1 = false;
cm.SendMessage( 64, "Your pet has evoloved." );
}
else if ( UsesForm2 == true && F1 == true )
{
this.BodyValue = m_Form2;
this.BaseSoundID = m_Sound2;
m_F1 = false;
m_F2 = true;
m_F3 = false;
m_F4 = false;
m_F5 = false;
m_F6 = false;
m_F7 = false;
m_F8 = false;
m_F9 = false;
UsesForm2 = false;
cm.SendMessage( 64, "Your pet has evoloved." );
}
else if ( UsesForm3 == true && F2 == true )
{
this.BodyValue = m_Form3;
this.BaseSoundID = m_Sound3;
m_F1 = false;
m_F2 = false;
m_F3 = true;
m_F4 = false;
m_F5 = false;
m_F6 = false;
m_F7 = false;
m_F8 = false;
m_F9 = false;
UsesForm3 = false;
cm.SendMessage( 64, "Your pet has evoloved." );
}
else if ( UsesForm4 == true && F3 == true )
{
this.BodyValue = m_Form4;
this.BaseSoundID = m_Sound4;
m_F1 = false;
m_F2 = false;
m_F3 = false;
m_F4 = true;
m_F5 = false;
m_F6 = false;
m_F7 = false;
m_F8 = false;
m_F9 = false;
UsesForm4 = false;
cm.SendMessage( 64, "Your pet has evoloved." );
}
else if ( UsesForm5 == true && F4 == true )
{
this.BodyValue = m_Form5;
this.BaseSoundID = m_Sound5;
m_F1 = false;
m_F2 = false;
m_F3 = false;
m_F4 = false;
m_F5 = true;
m_F6 = false;
m_F7 = false;
m_F8 = false;
m_F9 = false;
UsesForm5 = false;
cm.SendMessage( 64, "Your pet has evoloved." );
}
else if ( UsesForm6 == true && F5 == true )
{
this.BodyValue = m_Form6;
this.BaseSoundID = m_Sound6;
m_F1 = false;
m_F2 = false;
m_F3 = false;
m_F4 = false;
m_F5 = false;
m_F6 = true;
m_F7 = false;
m_F8 = false;
m_F9 = false;
UsesForm6 = false;
cm.SendMessage( 64, "Your pet has evoloved." );
}
else if ( UsesForm7 == true && F6 == true )
{
this.BodyValue = m_Form7;
this.BaseSoundID = m_Sound7;
m_F1 = false;
m_F2 = false;
m_F3 = false;
m_F4 = false;
m_F5 = false;
m_F6 = false;
m_F7 = true;
m_F8 = false;
m_F9 = false;
UsesForm7 = false;
cm.SendMessage( 64, "Your pet has evoloved." );
}
else if ( UsesForm8 == true && F7 == true )
{
this.BodyValue = m_Form8;
this.BaseSoundID = m_Sound8;
m_F1 = false;
m_F2 = false;
m_F3 = false;
m_F4 = false;
m_F5 = false;
m_F6 = false;
m_F7 = false;
m_F8 = true;
m_F9 = false;
UsesForm8 = false;
cm.SendMessage( 64, "Your pet has evoloved." );
}
else if ( UsesForm9 == true && F8 == true )
{
this.BodyValue = m_Form9;
this.BaseSoundID = m_Sound9;
m_F1 = false;
m_F2 = false;
m_F3 = false;
m_F4 = false;
m_F5 = false;
m_F6 = false;
m_F7 = false;
m_F8 = false;
m_F9 = true;
UsesForm9 = false;
cm.SendMessage( 64, "Your pet has evoloved." );
}
}
}
}
}
}
//End Advanced Pet System
Code:
if( AutoDispel && defender is BaseCreature && ((BaseCreature)defender).IsDispellable && AutoDispelChance > Utility.RandomDouble() ) Dispel( defender ); Code:
if ( FSATS.EnablePetLeveling == true )
{
bool nolevel = false;
Type typ = this.GetType();
string nam = typ.Name;
foreach ( string check in FSATS.NoLevelCreatures )
{
if ( check == nam )
nolevel = true;
}
if ( nolevel != true )
CheckLevel( defender );
}
By the way, thank you for your hard work Lokai to get this working under RunUO2.0RC1 Last edited by Carlosos; 07-15-2006 at 12:19 PM. |
|
|
|
|
|
#10 (permalink) | |
|
Forum Expert
|
Quote:
OK. This is strange. I downloaded FS Gen2, and the BaseCreature.cs file I have is UNCHANGED except for the sections I added for Daat99's OWLTR (which are all clearly marked.) Were there changes needed that were not included in his DISTROS folder? |
|
|
|
|
|
|
#11 (permalink) | |
|
Forum Expert
|
Quote:
PHP Code:
|
|
|
|
|
|
|
#12 (permalink) | |
|
Forum Newbie
Join Date: Feb 2006
Posts: 30
|
Quote:
I'm right now confused myself about this but I must have gotten the changes from somewhere and I know that it was already included when I installed an old version of the script on a RunUO 1.0 server a few months ago. |
|
|
|
|
|
|
#13 (permalink) | |
|
Forum Expert
|
Quote:
On NEW Install of RunUO 2.0 Server:
|
|
|
|
|
|
|
#14 (permalink) |
|
Forum Newbie
Join Date: Feb 2006
Posts: 30
|
I think I now know what I did to get those extra sections. I compared the wrong basecreature.cs
I used on from the FSAnimalTaming2.0-Beta.rar script (I don't know who released this) to compare with the original one and than compared the basecreature from this script and than the FSAT version that you released. Maybe you want to add those extra sections that I have to your version because it is a feature that was included in the old FSAT script and isn't included in your modified version anymore. |
|
|
|
|
|
#16 (permalink) | |
|
Forum Expert
|
Quote:
|
|
|
|
|
|
|
#17 ( |