Groovy, thanks! Reinstalling everything, and going to see if I can get it working again. Knowing me, I probably missed an installation step or something.
*EDIT*
Well damn, still no carpenter bod is offered when it says you can get an order now. I'm going to post my carpenter on the off chance that someone might see something that I'm missing. The Bulk order regions in both the carpenter and fletcher look the same to me, but the fletcher is the only one that actually gives the BOD correctly, so I'm at a loss
Code:
/*
-<>>--<<>>--<0>>--<< <<2005>> >>--<<0>--<<>>--<<>-
| ____________________________ |
| -=(_)__________________________)=- |
| \_ All Crafts 1.0.0 _\ |
| \_ ------------------- _\ |
| ) Created By: ) |
| /_ Sirsly & Lucid Nagual _/ |
| _/__________________________/ |
| -=(_)__________________________)=- |
| |
-<>>-<< Based off of Daat99's OWLTR system >>-<<>-
*/
using System;
using System.Collections;
using Server;
using Server.Engines.BulkOrders;
using Server.ACC.CM;
namespace Server.Mobiles
{
public class Carpenter : BaseVendor
{
private ArrayList m_SBInfos = new ArrayList();
protected override ArrayList SBInfos{ get { return m_SBInfos; } }
public override NpcGuild NpcGuild{ get{ return NpcGuild.TinkersGuild; } }
[Constructable]
public Carpenter() : base( "the carpenter" )
{
SetSkill( SkillName.Carpentry, 85.0, 100.0 );
SetSkill( SkillName.Lumberjacking, 60.0, 83.0 );
}
public override void InitSBInfo()
{
m_SBInfos.Add( new SBStavesWeapon() );
m_SBInfos.Add( new SBCarpenter() );
m_SBInfos.Add( new SBWoodenShields() );
}
public override void InitOutfit()
{
base.InitOutfit();
AddItem( new Server.Items.HalfApron() );
}
#region Bulk Orders
public override Item CreateBulkOrder( Mobile from, bool fromContextMenu )
{
PlayerMobile pm = from as PlayerMobile;
BODModule bod_mod = ( BODModule )CentralMemory.GetModule( from.Serial, typeof( BODModule ) );
if ( bod_mod == null && from == null )
return null;
if ( bod_mod != null && bod_mod.NextCarpenterBulkOrder == TimeSpan.Zero && ( fromContextMenu || 0.2 > Utility.RandomDouble() ) )
{
double theirSkill = pm.Skills[SkillName.Carpentry].Base;
if ( theirSkill >= 70.1 )
bod_mod.NextCarpenterBulkOrder = TimeSpan.FromHours( 1.0 );
else if ( theirSkill >= 50.1 )
bod_mod.NextCarpenterBulkOrder = TimeSpan.FromHours( 1.0 );
else
bod_mod.NextCarpenterBulkOrder = TimeSpan.FromHours( 1.0 );
if ( theirSkill >= 70.1 && ((theirSkill - 40.0) / 300.0) > Utility.RandomDouble() )
return new LargeCarpenterBOD();
return SmallCarpenterBOD.CreateRandomFor( from );
}
else
{
CentralMemory.AppendModule( from.Serial, new BODModule( from.Serial ), true );
from.SendMessage( "Please try again" );
}
return null;
}
public override bool IsValidBulkOrder( Item item )
{
return ( item is SmallCarpenterBOD || item is LargeCarpenterBOD );
}
public override bool SupportsBulkOrders( Mobile from )
{
return ( from is PlayerMobile && from.Skills[SkillName.Carpentry].Base > 0 );
}
public override TimeSpan GetNextBulkOrder( Mobile from )
{
BODModule bod_mod = ( BODModule )CentralMemory.GetModule( from.Serial, typeof( BODModule ) );
if ( bod_mod != null && from != null )
return bod_mod.NextCarpenterBulkOrder;
//if ( from is PlayerMobile )
// return ((PlayerMobile)from).NextCarpenterBulkOrder;
return TimeSpan.Zero;
}
#endregion
public Carpenter( 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();
}
}
}
I'd really rather not put the bod vendors onto the server at this time, but I guess I might just have to if I can't figure this out.
*EDIT*
Nevermind I'm a tard. I just had a chance to look and the CTFB vendors just replace the current vendors. Added them in, and testing them with my owner account works, and a bod is given, now testing with my player account.
Just wanted to note that you do not need to respawn your vendors for these to work. Thanks.
*EDIT 2*
Arrrgh! I just don't get it. The carpenter vendor will still not give a carpenter BOD to my player account. It tells me that I can get one, and then one is never offered. Fletcher BODs work just fine, but carpenter BODs don't.
*EDIT 3*
Could this line of code from BaseVendor have anything to do with the problem I'm getting.
Code:
public virtual bool SupportsBulkOrders( Mobile from )
{
return false;
}
I really don't think that it does because I'm able to get a carpentry BOD on my Owner account. Right now I'm just kind of grasping at straws