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!

BaseQuests Updated

Status
Not open for further replies.

Fury

Wanderer
updated to ver. 1.7 found a crash with the acidpool... scripts changed are acidpool.cs, resolenqueen.cs, redsolenwarrior.cs,blacksolenqueen.cs,blacksolenwarrior.cs
 

lover1973

Wanderer
Scripts: Compiling C# scripts...failed (44 errors, 0 warnings)
- Error: Scripts\custom\Bqsystem17\Quests\MatriarchQuest\Red\RedSolenInfilt
ratorQueen.cs: CS0246: (line 65, column 35) The type or namespace name 'SolenFri
end' could not be found (are you missing a using directive or an assembly refere
nce?)

I installed it step by step, but got such errors! fury. could you help me??
these scripts lost any "using...."?
 

Fury

Wanderer
make sure it says using Server.Mobiles; at the top.. and you have the solenfriend property added in playermobile.
 

lover1973

Wanderer
public enum SolenFriend
{
None, Black, Red
}

this part is not in your instruction. i found it in the playermobile file you give. :-( .

I just added it in the right place. then seem working. thanks.
 

Philantrop

Sorceror
Fury said:
updated to ver. 1.7 found a crash with the acidpool... scripts changed are acidpool.cs, resolenqueen.cs, redsolenwarrior.cs,blacksolenqueen.cs,blacksolenwarrior.cs

Would you consider adding the changed Bracelet of Binding, too? AoS shards will probably like it and I wouldn't have to remember modifying it when you update. :)
 
When I try to "talk" to a Black Solen Matriarch by selecting talk from the context menu, I do not get any response from her. Is this a bug or a playermobile problem?

Thanks,

Adam
 

Tru

Knight
Shard Admin Adam said:
When I try to "talk" to a Black Solen Matriarch by selecting talk from the context menu, I do not get any response from her. Is this a bug or a playermobile problem?

Thanks,

Adam
try giving her a seed
 
Thanks Tru,

I left OSI long before these quests came along. Appreciate the help.

Working now :)

*goes off to stratics to read about the naturalist quest*
 

sUpplier1

Wanderer
There is a small Gump bug. Quest objectives (LogStartObjectiveNumber) don't shown fully because of lack scroll bar in them.

You can fix it easly by modifing BaseQuestGumps.cs
91 Line:
[code:1]
AddHtmlLocalized( 106, 168, 310, 83, quest.LogStartObjectiveNumber, QuestGump.LocalizedBlue, false, false );

to

AddHtmlLocalized( 106, 168, 310, 83, quest.LogStartObjectiveNumber, QuestGump.LocalizedBlue, false, true );
[/code:1]
and
113 Line:
[code:1]
AddHtmlLocalized( 106, 168, 310, 83, quest.LogStartObjectiveNumber, QuestGump.LocalizedBlue, false, false );

to

AddHtmlLocalized( 106, 168, 310, 83, quest.LogStartObjectiveNumber, QuestGump.LocalizedBlue, false, true );[/code:1]


Also I've found that when you give Zoogi Fungus to the Matriarch queen (when you aren't on the last quest) she says "Thank you for that plant seed. Those have such wonderful flavor"

It's not normal I think.
 

Philantrop

Sorceror
Another bug in the Bracelet of Binding - you can tele into and OUT OF jail using it. :)

Fixed version:

[code:1]
using System;
using Server.Network;
using Server.ContextMenus;
using System.Collections;
using Server.Targeting;
using Server.Prompts;
using Server.Regions;

namespace Server.Items
{
public class BraceletOfBinding : Item
{
private string m_Description = "";
private Item m_Bound;
private int m_Charges;

[CommandProperty( AccessLevel.Counselor, AccessLevel.GameMaster )]
public int Charges
{
get
{
return m_Charges;
}
set
{
m_Charges = value;
InvalidateProperties();
}
}

[CommandProperty( AccessLevel.Counselor, AccessLevel.GameMaster )]
public string Description
{
get
{
return m_Description;
}
set
{
m_Description = value;
InvalidateProperties();
}
}

[CommandProperty( AccessLevel.Counselor, AccessLevel.GameMaster )]
public Item Bound
{
get
{
return m_Bound;
}
set
{
m_Bound = value;
InvalidateProperties();
}
}

[Constructable]
public BraceletOfBinding() : base(0x1086)
{
Weight = 0.5;
Name = "a bracelet of binding";
Hue = 0x489;
Layer = Layer.Bracelet;
}

public class ActivateEntry : ContextMenuEntry
{
private Mobile m_From;
private BraceletOfBinding m_BraceletOfBinding;
private Item m_Item;

public ActivateEntry( Mobile from, BraceletOfBinding braceletofbinding ) : base( 6170, 1 )
{
m_From = from;
m_BraceletOfBinding = braceletofbinding;
}

public override void OnClick()
{
if (m_BraceletOfBinding.Deleted || !m_BraceletOfBinding.Movable || !m_From.CheckAlive() )
return;

if ( !(m_BraceletOfBinding.Parent is Mobile) )
{
m_From.SendLocalizedMessage( 1054004 ); // Must be equiped to use
}
else
{
m_BraceletOfBinding.GoToTwin( m_From, m_BraceletOfBinding );
}
}
}

public class SearchEntry : ContextMenuEntry
{
private Mobile m_From;
private BraceletOfBinding m_BraceletOfBinding;
private Item m_Item;

public SearchEntry( Mobile from, BraceletOfBinding braceletofbinding ) : base( 6171, 1 )
{
m_From = from;
m_BraceletOfBinding = braceletofbinding;
}

public override void OnClick()
{
if (m_BraceletOfBinding.Deleted || !m_BraceletOfBinding.Movable || !m_From.CheckAlive() )
return;

if ( !(m_BraceletOfBinding.Parent is Mobile) )
{
m_From.SendLocalizedMessage( 1054004 ); // Must be equiped to use
}
else
{
m_BraceletOfBinding.SearchTwin( m_From, m_BraceletOfBinding );
}
}
}

public virtual void SearchTwin( Mobile from, BraceletOfBinding braceletofbinding )
{
Item twin = braceletofbinding.Bound;

if ( twin == null || !(twin.Parent is Mobile) )
{
from.SendLocalizedMessage( 1054006 );
}
else if ( ((Mobile)twin.Parent).Map != from.Map )
{
from.SendLocalizedMessage( 1054014 );
}
else
{
from.SendLocalizedMessage( 1054015 );
}
}

public virtual void GoToTwin( Mobile from, BraceletOfBinding braceletofbinding )
{
if ( (from.Region is Jail) )
{
from.SendLocalizedMessage( 1041530 ); // You'll need a better jailbreak plan than that!
}

if ( (braceletofbinding.Charges > 0) )
{
Item twin = braceletofbinding.Bound;

if ( twin == null || !(twin.Parent is Mobile) )
{
from.SendLocalizedMessage( 1054006 );
}
else if ( ((Mobile)twin.Parent).Map != from.Map )
{
from.SendLocalizedMessage( 1054014 );
}
else if ( ((Mobile)twin.Parent).Region is Jail )
{
from.SendMessage("You don't want to go where the bracelet's twin currently is...");
}
else
{
from.SendLocalizedMessage( 1054015 );
Effects.SendLocationParticles( EffectItem.Create( from.Location, from.Map, EffectItem.DefaultDuration ), 0x3728, 10, 10, 2023 );
from.Location = ((Mobile)twin.Parent).Location;
from.PlaySound( 0x1FC );
braceletofbinding.Charges--;
}
}
else
{
from.SendLocalizedMessage( 1054005 );
}
}

public class BindEntry : ContextMenuEntry
{
private Mobile m_From;
private BraceletOfBinding m_BraceletOfBinding;
private Item m_Item;

public BindEntry( Mobile from, BraceletOfBinding braceletofbinding ) : base( 6173, 1 )
{
m_From = from;
m_BraceletOfBinding = braceletofbinding;
}

public override void OnClick()
{
if (m_BraceletOfBinding.Deleted || !m_BraceletOfBinding.Movable || !m_From.CheckAlive() )
return;

int number;

if ( !m_BraceletOfBinding.IsChildOf( m_From.Backpack ) )
{
number = 1042001; // That must be in your pack for you to use it.
}
else
{
number = 1054001; // Target BoB to bind to...
m_From.Target = new InternalTarget( m_BraceletOfBinding, m_Item );
}

m_From.SendLocalizedMessage( number );
}
}

public class InscribeEntry : ContextMenuEntry
{
private Mobile m_From;
private BraceletOfBinding m_BraceletOfBinding;

public InscribeEntry( Mobile from, BraceletOfBinding braceletofbinding ) : base( 6175, 1 )
{
m_From = from;
m_BraceletOfBinding = braceletofbinding;
}

public override void OnClick()
{
if (m_BraceletOfBinding.Deleted || !m_BraceletOfBinding.Movable || !m_From.CheckAlive() )
return;

int number;

if ( !m_BraceletOfBinding.IsChildOf( m_From.Backpack ) )
{
number = 1042001; // That must be in your pack for you to use it.
}
else
{
number = 1054009; // Please enter a description for this bracelet.
m_From.Prompt = new RenamePrompt( m_BraceletOfBinding );
}
m_From.SendLocalizedMessage( number );
}
}

private class InternalTarget : Target
{
private Item m_Item;
private BraceletOfBinding m_BraceletOfBinding;

public InternalTarget( BraceletOfBinding braceletofbinding, Item item ) : base ( 2, false, TargetFlags.None )
{
m_Item = item;
m_BraceletOfBinding = braceletofbinding;
}

protected override void OnTarget( Mobile from, object targeted )
{
if ( targeted is BraceletOfBinding )
{
if ( targeted == m_BraceletOfBinding )
{
from.SendLocalizedMessage( 1054012 );
}
else
{
BraceletOfBinding brace = (BraceletOfBinding)targeted;
m_BraceletOfBinding.Bound = brace;
from.SendLocalizedMessage( 1054003 );
from.PlaySound( 0x1FA );
}
}
else
{
from.SendLocalizedMessage( 1054002 );
}
}
}

private class RenamePrompt : Prompt
{
private BraceletOfBinding m_BraceletOfBinding;

public RenamePrompt( BraceletOfBinding braceletofbinding )
{
m_BraceletOfBinding = braceletofbinding;
}

public override void OnResponse( Mobile from, string text )
{
m_BraceletOfBinding.Description = text;
}
}

public override void GetContextMenuEntries( Mobile from, ArrayList list )
{
base.GetContextMenuEntries( from, list );

if ( from.Alive )
list.Add( new ActivateEntry( from, this ) );
if ( from.Alive )
list.Add( new SearchEntry( from, this ) );
if ( from.Alive )
list.Add( new BindEntry( from, this ) );
if ( from.Alive )
list.Add( new InscribeEntry( from, this ) );
}

public override void OnSingleClick( Mobile from )
{
string chrg = m_Charges.ToString();
string desc = m_Description;

if ( desc == null ) { desc = ""; }

LabelTo( from, 1054000, String.Format( "{0}\t{1}", m_Charges, m_Description ) );
}

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

list.Add( 1060658, "charges\t{0}", this.m_Charges ); // ~1_val~: ~2_val~

if (this.m_Description != "")
list.Add( 1060660, "inscription\t{0}", this.m_Description ); // ~1_val~: ~2_val~
}

public override void OnDoubleClick( Mobile from )
{
if ( !(this.Parent is Mobile) )
{
from.SendLocalizedMessage( 1054004 ); // Must be equiped to use
}
else
{
this.GoToTwin( from, this );
}
}

public BraceletOfBinding( Serial serial ) : base( serial )
{
}

public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version

writer.Write( (string) m_Description );
writer.Write( (Item) m_Bound );
writer.Write( (int) m_Charges );
}

public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();

switch ( version )
{
case 0:
{
m_Description = reader.ReadString();
m_Bound = reader.ReadItem();
m_Charges = reader.ReadInt();
break;
}
}
}
}
}
[/code:1]

Another problem is about the GetContextMenuEntries function - players can cancel others' quests. Change in your PlayerMobile in this function:

[code:1]
public override void GetContextMenuEntries( Mobile from, ArrayList list )
[/code:1]

... this line:

[code:1]
if ( m_CurrentQuest != null )
[/code:1]

... to this:

[code:1]
if ( m_CurrentQuest != null && ( (pm == this) || (this.AccessLevel > from.AccessLevel) ) )
[/code:1]
 

Zebit

Wanderer
Philantrop, your bug fix shound't be this?
[code:1]if ( (from.Region is Jail) )
{
from.SendLocalizedMessage( 1041530 ); // You'll need a better jailbreak plan than that!
return;
}
[/code:1]

because of you stil could use it.
 

WiGGiT

Wanderer
Spawning this Quest

What is the best was to spawn this I am new to shard setup but everything compiled which is a goooooooooooood sign! What are the commands Thanks!
 
Status
Not open for further replies.
Top