|
||
|
|||||||
| Script Support Get support for modifying RunUO Scripts, or writing your own! |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 (permalink) | |
|
Forum Newbie
Join Date: Sep 2006
Age: 19
Posts: 13
|
Never done this, so I am not suprised of the errors, but I dont know how to fix them.
Quote:
Code:
using System;
using Server;
using Server.Targeting;
using Server.Mobiles;
namespace Server.Items
{
public class OrbCharger : Item
{
[Constructable]
public OrbCharger()
{
Name = "A Spirit Orb Charger";
//AddComponent( new AddonComponent( 0x2DD8 ), 0, 0, 0 );
}
public OrbCharger(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
public override void OnDoubleClick(Mobile from)
{
PlayerMobile m = from as PlayerMobile;
foreach (Item i in m.Backpack)
{
if (i is AirOrb || i is EarthOrb || i is FireOrb || i is WaterOrb || i is DeathOrb)
{
from.SendMessage("Select a spiritual orb to recharge");
from.Target = new InternalTarget(this);
}
else
from.SendMessage("You have no use of this.");
}
}
private class InternalTarget : Target
{
private OrbCharger m_Item;
public InternalTarget(OrbCharger item)
: base(1, false, TargetFlags.None)
{
m_Item = item;
}
protected override void OnTarget(Mobile from, object targeted)
{
if (targeted != (AirOrb || FireOrb || EarthOrb || WaterOrb || DeathOrb))
from.SendMessage("That isn't a Spiritual Orb");
else
{
if (targeted.IsUsed != true)
from.SendMessage("That Orb Is Already Charged!");
else
{
if (utility.Random == 0.33)
{
switch(2)
{
case 0:
{
from.SendMessage("You Failed to recharge the orb and it was destroyed!");
targeted.Delete();
}
case 1:
{
from.SendMessage("You succesfully charged the orb.");
targeted.IsUsed = false;
}
}
}
}
}
}
}
}
}
|
|
|
|
|
|
|
#2 (permalink) |
|
Forum Expert
|
Code:
foreach (Item i in m.Backpack)
{
if (i is AirOrb || i is EarthOrb || i is FireOrb || i is WaterOrb || i is DeathOrb)
{
from.SendMessage("Select a spiritual orb to recharge");
from.Target = new InternalTarget(this);
}
else
from.SendMessage("You have no use of this.");
}
Code:
foreach (Item i in m.Backpack.Items)
{
if (i is AirOrb || i is EarthOrb || i is FireOrb || i is WaterOrb || i is DeathOrb)
{
from.SendMessage("Select a spiritual orb to recharge");
from.Target = new InternalTarget(this);
}
else
from.SendMessage("You have no use of this.");
}
|
|
|
|
|
|
#3 (permalink) | |
|
Forum Newbie
Join Date: Sep 2006
Age: 19
Posts: 13
|
Okay, that got ride of the first one but what about the others?
I fixed the delete error (yeay me) but still have no clue on the others. Quote:
Code:
using System;
using Server;
using Server.Targeting;
using Server.Mobiles;
namespace Server.Items
{
public class OrbCharger : Item
{
[Constructable]
public OrbCharger()
{
Name = "A Spirit Orb Charger";
//AddComponent( new AddonComponent( 0x2DD8 ), 0, 0, 0 );
}
public OrbCharger(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadEncodedInt();
}
public override void OnDoubleClick(Mobile from)
{
PlayerMobile m = from as PlayerMobile;
foreach (Item i in m.Backpack.Items)
{
if (i is AirOrb || i is EarthOrb || i is FireOrb || i is WaterOrb || i is DeathOrb)
{
from.SendMessage("Select a spiritual orb to recharge");
from.Target = new InternalTarget(this);
}
else
from.SendMessage("You have no use of this.");
}
}
private class InternalTarget : Target
{
private OrbCharger m_Charger;
public InternalTarget(OrbCharger charger)
: base(1, false, TargetFlags.None)
{
m_Charger = charger;
}
protected override void OnTarget(Mobile from, object targeted)
{
if (targeted is Item)
{
Item i = (Item)targeted;
if (i == (AirOrb || FireOrb || EarthOrb || WaterOrb || DeathOrb) && i.IsUsed == false)
{
if (0.33 > Utility.RandomDouble())
{
from.SendMessage("You Failed to recharge the orb and it was destroyed!");
i.Delete();
}
else
{
from.SendMessage("You succesfully charged the orb.");
i.IsUsed = false;
}
}
else
{
if (i.IsUsed == true)
from.SendMessage("The orb is already charged.");
else
from.SendMessage("That is not a Spiritual Orb!");
}
}
}
}
}
}
|
|
|
|
|
|
|
#4 (permalink) |
|
Master of the Internet
Join Date: Oct 2005
Age: 45
Posts: 6,283
|
I guess I was looking in the wrong place, since I found this:
Code:
if (targeted != (AirOrb || FireOrb || EarthOrb || WaterOrb || DeathOrb)) Code:
if ((i is AirOrb || i is FireOrb || i is EarthOrb || i is WaterOrb || i is DeathOrb) && i.IsUsed == false) Code:
BaseOrb orb = null; if(i is BaseOrb) orb = i as BaseOrb; Hope this makes some sense. |
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|