Killroth
Sorceror
Hey, I'm trying to edit the summoner "Victoria" in doom to collect 1,000 Daemon Bones from all players collectively.
You would drop the bones on her and she would update (progress bar with VNC) would be best.
Once 1,000 are collected, the ferryman will teleport players to the boat if your within 6 tiles range.
I don't want this to be a quest because obviously you can't share quests like that with all players.
This system will be an attachement DOOM points / luck / highest damage system that I have created, that will use a town crier to open a portal every 2-4 hours to doom.
I will post the entire finished code for servers that wish to use the new system, which I think is 1000% less grindy and less tedious.
It's pretty great.
But im not familiar with this dragdrop stuff at all. Could anyone help me out and let me know where to get started? Here's the Victoria code:
You would drop the bones on her and she would update (progress bar with VNC) would be best.
Once 1,000 are collected, the ferryman will teleport players to the boat if your within 6 tiles range.
I don't want this to be a quest because obviously you can't share quests like that with all players.
This system will be an attachement DOOM points / luck / highest damage system that I have created, that will use a town crier to open a portal every 2-4 hours to doom.
I will post the entire finished code for servers that wish to use the new system, which I think is 1000% less grindy and less tedious.
It's pretty great.
But im not familiar with this dragdrop stuff at all. Could anyone help me out and let me know where to get started? Here's the Victoria code:
Code:
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Mobiles;
using Server.Network;
using Server.ContextMenus;
using Server.Engines.Quests;
using Server.Engines.Quests.Necro;
namespace Server.Engines.Quests.Doom
{
public class Victoria : BaseQuester
{
public override bool ClickTitle{ get{ return true; } }
public override bool IsActiveVendor{ get{ return true; } }
public override bool DisallowAllMoves{ get{ return false; } }
public override void InitSBInfo()
{
m_SBInfos.Add( new SBMage() );
}
[Constructable]
public Victoria() : base( "the Bone Collector" )
{
}
public Victoria( Serial serial ) : base( serial )
{
}
public override void InitBody()
{
InitStats( 100, 100, 25 );
Female = true;
Hue = 0x8835;
Body = 0x191;
Name = "Victoria";
}
private SummoningAltar m_Altar;
private const int AltarRange = 24;
public SummoningAltar Altar
{
get
{
if (m_Altar == null || m_Altar.Deleted || m_Altar.Map != this.Map || !Utility.InRange(m_Altar.Location, this.Location, AltarRange))
{
foreach (Item item in GetItemsInRange(AltarRange))
{
if (item is SummoningAltar)
{
m_Altar = (SummoningAltar)item;
break;
}
}
}
return m_Altar;
}
}
public override void InitOutfit()
{
EquipItem( new GrandGrimoire() );
EquipItem( SetHue( new Sandals(), 0x455 ) );
EquipItem( SetHue( new SkullCap(), 0x455 ) );
EquipItem( SetHue( new PlainDress(), 0x455 ) );
HairItemID = 0x203C;
HairHue = 0x482;
}
public override bool OnDragDrop( Mobile from, Item dropped )
{
PlayerMobile player = from as PlayerMobile;
int bones = 0;
if ( dropped is DaemonBone )
{
DaemonBone bones = dropped(DaemonBone);
bones += dropped;
if ( bones.Amount >= 1000 )
{
PublicOverheadMessage( MessageType.Regular, 0x3B2, false, "Great! I now have enough bones to pay Chyloth for all of your ferry tickets!" );
PublicOverheadMessage( MessageType.Regular, 0x3B2, false, "Hurry! Go to the shore and ring the bell to summon Chyloth, I'll take care of the rest!" );
bones = 0;
}
else
{
ProgressBarGump pb = new ProgressBarGump(user, text: "Testing", max: 100);
SuperGump.Send(pb);
Timer.DelayCall(TimeSpan.FromSeconds(1.0), TimeSpan.FromMilliseconds(100), pb.MaxValue, delegate() { pb.Value++; });
}
}
}
public override void OnTalk(PlayerMobile player, bool contextMenu)
{
}
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();
}
}
}