Overwrite

Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
Unstable Kitsune
2023-11-28 23:20:26 -05:00
parent 3cd54811de
commit b918192e4e
11608 changed files with 2644205 additions and 47 deletions

View File

@@ -0,0 +1,155 @@
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
using Server.ContextMenus;
using Server.Gumps;
using Server.Misc;
using Server.Network;
using Server.Spells;
using System.Collections.Generic;
namespace Server.Mobiles
{
[CorpseName( "Good luck getting a bow now" )]
public class Pilock : Mobile
{
public virtual bool IsInvulnerable{ get{ return true; } }
[Constructable]
public Pilock()
{
Name = "Pilock";
Title = "the farmer";
Body = 0x190;
CantWalk = true;
Hue = Utility.RandomSkinHue();
Item Boots = new Boots();
Boots.Hue = 2112;
Boots.Name = "Farming Boots";
Boots.Movable = false;
AddItem( Boots );
Item FancyShirt = new FancyShirt();
FancyShirt.Hue = 1267;
FancyShirt.Name = "Farming Shirt";
FancyShirt.Movable = false;
AddItem( FancyShirt );
Item LongPants = new LongPants();
LongPants.Hue = 847;
LongPants.Name = "Farming Pants";
LongPants.Movable = false;
AddItem( LongPants );
Item Cloak = new Cloak();
Cloak.Hue = 1267;
Cloak.Name = "Farming Cloak";
Cloak.Movable = false;
AddItem( Cloak );
int hairHue = 1814;
switch ( Utility.Random( 1 ) )
{
case 0: AddItem( new PonyTail( hairHue ) ); break;
case 1: AddItem( new Goatee( hairHue ) ); break;
}
Blessed = true;
}
public Pilock( Serial serial ) : base( serial )
{
}
public override void GetContextMenuEntries(Mobile from, List<ContextMenuEntry> list)
{
base.GetContextMenuEntries( from, list );
list.Add( new PilockEntry( from, this ) );
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
public class PilockEntry : ContextMenuEntry
{
private Mobile m_Mobile;
private Mobile m_Giver;
public PilockEntry( Mobile from, Mobile giver ) : base( 6146, 3 )
{
m_Mobile = from;
m_Giver = giver;
}
public override void OnClick()
{
if( !( m_Mobile is PlayerMobile ) )
return;
PlayerMobile mobile = (PlayerMobile) m_Mobile;
{
if ( ! mobile.HasGump( typeof( PilockquestGump ) ) )
{
mobile.SendGump( new PilockquestGump( mobile ));
mobile.AddToBackpack( new PilockBook() );
}
}
}
}
public override bool OnDragDrop( Mobile from, Item dropped )
{
Mobile m = from;
PlayerMobile mobile = m as PlayerMobile;
if ( mobile != null)
{
if( dropped is PureWhiteFeather)
{
if(dropped.Amount!=15)
{
this.PrivateOverheadMessage( MessageType.Regular, 1153, false, "That is not the amount I asked for.", mobile.NetState );
return false;
}
dropped.Delete();
mobile.AddToBackpack( new PureWhiteFeatherBow() );
return true;
}
else if ( dropped is PureWhiteFeather)
{
this.PrivateOverheadMessage( MessageType.Regular, 1153, 1054071, mobile.NetState );
return false;
}
else
{
this.PrivateOverheadMessage( MessageType.Regular, 1153, false, "I did not ask for this item.", mobile.NetState );
}
}
return false;
}
}
}

View File

@@ -0,0 +1,71 @@
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a farmers chicken corpse" )]
public class FarmersChicken : BaseCreature
{
public override double DispelDifficulty{ get{ return 117.5; } }
public override double DispelFocus{ get{ return 45.0; } }
[Constructable]
public FarmersChicken() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a farmers chicken";
Body = 0xD0;
BaseSoundID = 0x6E;
Hue = 1153;
SetStr( 450 );
SetDex( 350 );
SetInt( 5 );
SetHits( 1350 );
SetMana( 0 );
SetDamage( 50 );
SetDamageType( ResistanceType.Physical, 100 );
SetResistance( ResistanceType.Physical, 1, 5 );
SetSkill( SkillName.MagicResist, 140.0 );
SetSkill( SkillName.Tactics, 85.0 );
SetSkill( SkillName.Wrestling, 125.0 );
Fame = 150;
Karma = 0;
VirtualArmor = 54;
ControlSlots = 2;
PackItem( new PureWhiteFeather( 1 ) );
}
public override int Meat{ get{ return 1; } }
public override MeatType MeatType{ get{ return MeatType.Bird; } }
public override FoodType FavoriteFood{ get{ return FoodType.GrainsAndHay; } }
public override int Feathers{ get{ return 25; } }
public override int TreasureMapLevel{ get{ return 1; } }
public FarmersChicken( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,73 @@
using System;
using Server;
namespace Server.Items
{
// books: Brown 0xFEF, Tan 0xFF0, Red 0xFF1, Blue 0xFF2,
// OpenSmall 0xFF3, Open 0xFF4, OpenOld 0xFBD, 0xFBE
public class PilockBook : BaseBook
{
private const string TITLE = "Theiving Chickens";
private const string AUTHOR = "Farmer Pilock";
private const int PAGES = 2;
private const bool WRITABLE = false;
[Constructable]
public PilockBook() : base( Utility.RandomList( 0xFEF, 0xFF0, 0xFF1, 0xFF2 ), TITLE, AUTHOR, PAGES, WRITABLE )
{
// NOTE: There are 8 lines per page and
// approx 22 to 24 characters per line.
// 0----+----1----+----2----+
int cnt = 0;
string[] lines;
lines = new string[]
{
"Find the following:",
"Farmers Chickens",
"15 PureWhiteFeathers",
"bring back the items back to me",
"and I will reward you",
"with a PureWhiteFeatherBow",
"if i have enough supplies",
};
Pages[cnt++].Lines = lines;
lines = new string[]
{
"",
"",
"",
"",
"",
"",
"",
"",
};
Pages[cnt++].Lines = lines;
}
public PilockBook( Serial serial ) : base( serial )
{
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int)0 );
}
}
}

View File

@@ -0,0 +1,93 @@
using System;
using Server;
using Server.Gumps;
using Server.Network;
using Server.Items;
using Server.Mobiles;
using Server.Commands;
namespace Server.Gumps
{
public class PilockquestGump : Gump
{
public static void Initialize()
{
CommandSystem.Register("PilockquestGump", AccessLevel.GameMaster, new CommandEventHandler(PilockquestGump_OnCommand));
}
private static void PilockquestGump_OnCommand( CommandEventArgs e )
{
e.Mobile.SendGump( new PilockquestGump( e.Mobile ) );
}
public PilockquestGump( Mobile owner ) : base( 50,50 )
{
//----------------------------------------------------------------------------------------------------
AddPage( 0 );
AddImageTiled( 54, 33, 369, 400, 2624 );
AddAlphaRegion( 54, 33, 369, 400 );
AddImageTiled( 416, 39, 44, 389, 203 );
//--------------------------------------Window size bar--------------------------------------------
AddImage( 97, 49, 9005 );
AddImageTiled( 58, 39, 29, 390, 10460 );
AddImageTiled( 412, 37, 31, 389, 10460 );
AddLabel( 140, 60, 0x34, "Theiving Chickens" );
AddHtml( 107, 140, 300, 230, "<BODY>" +
//----------------------/----------------------------------------------/
"<BASEFONT COLOR=GREEN>Farmer Pilock Provisouns looks at you vaugly. After he puts down his bills, he says If you are brave enough, I have a task for you<BR><BR>I take it you wish for me to continue. *Farmer Pilock clears his throat* I was walking through the feilds one day, and My Chickens stole my new wepon, Chicken Feather.<BR>" +
"<BASEFONT COLOR=GREEN>Are you still interested?<BR><BR>What I would need you to do, is go to Skara Brae and kill the chickens, they more than likely have already destroyed my bow but, you can still help." +
"<BASEFONT COLOR=GREEN>What I need from you, is to kill 15 Chickens and bring me back 15 Pure White Feathers so I can remake the bow.<BR><BR>If you decide to go through with this, I will give you a bow as well if I have enough supplies left." +
"</BODY>", false, true);
// <BASEFONT COLOR=#7B6D20>
// AddLabel( 113, 135, 0x34, "Farmer Pilock puts down his bills and asks.." );
// AddLabel( 113, 150, 0x34, "so you are going to help me?" );
// AddLabel( 113, 165, 0x34, "Remember, I need 15 Pure White Feathers..." );
// AddLabel( 113, 180, 0x34, "" );
// AddLabel( 113, 195, 0x34, "You can find the feathers where I was ambushed" );
// AddLabel( 113, 210, 0x34, "after you kill thoes pesky Chickens" );
// AddLabel( 113, 235, 0x34, "They are pretty hard to beat up but" );
// AddLabel( 113, 250, 0x34, "I think you can handel it if you work hard" );
// AddLabel( 113, 265, 0x34, "and have the motivation of my bow." );
// AddLabel( 113, 280, 0x34, "Good luck! Dont get to hurt and remember," );
// AddLabel( 113, 295, 0x34, "15 Pure White Feathers, and 3 wooden logs." );
// AddLabel( 113, 310, 0x34, "" );
AddImage( 430, 9, 10441);
AddImageTiled( 40, 38, 17, 391, 9263 );
AddImage( 6, 25, 10421 );
AddImage( 34, 12, 10420 );
AddImageTiled( 94, 25, 342, 15, 10304 );
AddImageTiled( 40, 427, 415, 16, 10304 );
AddImage( -10, 314, 10402 );
AddImage( 56, 150, 10411 );
AddImage( 155, 120, 2103 );
AddImage( 136, 84, 96 );
AddButton( 225, 390, 0xF7, 0xF8, 0, GumpButtonType.Reply, 0 );
//--------------------------------------------------------------------------------------------------------------
}
public override void OnResponse( NetState state, RelayInfo info ) //Function for GumpButtonType.Reply Buttons
{
Mobile from = state.Mobile;
switch ( info.ButtonID )
{
case 0: //Case uses the ActionIDs defenied above. Case 0 defenies the actions for the button with the action id 0
{
//Cancel
from.SendMessage( "Farmer Pilock goes back to his bills." );
break;
}
}
}
}
}

View File

@@ -0,0 +1,45 @@
using System;
using Server.Items;
namespace Server.Items
{
public class PureWhiteFeather : Item
{
//int ICommodity.DescriptionNumber { get { return CraftResources.IsStandard( m_Resource ) ? LabelNumber : "pure white feather" + ( (int)m_Resource - (int)CraftResource.Feather ); } }
//bool ICommodity.IsDeedable { get { return true; } }
[Constructable]
public PureWhiteFeather() : this( 1 )
{
}
[Constructable]
public PureWhiteFeather( int amount ) : base( 0x1BD1 )
{
Stackable = true;
Weight = 0.1;
Hue = 1153;
Amount = amount;
}
public PureWhiteFeather( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,66 @@
using System;
using Server;
namespace Server.Items
{
public class PureWhiteFeatherBow : Bow
{
public override int ArtifactRarity{ get{ return 11; } }
public override int EffectID{ get{ return 0xF42; } }
public override Type AmmoType{ get{ return typeof( Arrow ); } }
public override Item Ammo{ get{ return new Arrow(); } }
public override WeaponAbility PrimaryAbility{ get{ return WeaponAbility.Dismount; } }
public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.MovingShot; } }
public override int InitMinHits{ get{ return 300; } }
public override int InitMaxHits{ get{ return 300; } }
[Constructable]
public PureWhiteFeatherBow()
{
Weight = 5.0;
Name = "Pure White Feather Bow";
Hue = 1153;
WeaponAttributes.DurabilityBonus = 10;
//WeaponAttributes.HitEnergyArea = 05;
WeaponAttributes.HitLeechHits = 55;
//WeaponAttributes.HitPoisonArea = 01;
WeaponAttributes.ResistEnergyBonus = 10;
WeaponAttributes.ResistPoisonBonus = 30;
WeaponAttributes.UseBestSkill = 1;
Attributes.BonusDex = 10;
Attributes.BonusStr = 10;
Attributes.Luck = 300;
Attributes.SpellChanneling = 1;
Attributes.WeaponSpeed = 45;
Attributes.WeaponDamage = 65;
StrRequirement = 01;
LootType = LootType.Blessed;
}
public PureWhiteFeatherBow( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}