decriptors.cs
public enum ConditionEffects
{
Dead = 1 << 0,
Quiet = 1 << 1,
Weak = 1 << 2,
Slowed = 1 << 3,
Sick = 1 << 4,
Dazed = 1 << 5,
Stunned = 1 << 6,
Blind = 1 << 7,
Hallucinating = 1 << 8,
Drunk = 1 << 9,
Confused = 1 << 10,
StunImmume = 1 << 11,
Invisible = 1 << 12,
Paralyzed = 1 << 13,
Speedy = 1 << 14,
Bleeding = 1 << 15,
NotUsed = 1 << 16,
Healing = 1 << 17,
Damaging = 1 << 18,
Berserk = 1 << 19,
Paused = 1 << 20,
Stasis = 1 << 21,
StasisImmune = 1 << 22,
Invincible = 1 << 23,
Invulnerable = 1 << 24,
Armored = 1 << 25,
ArmorBroken = 1 << 26,
Hexed = 1 << 27,
LavaImmune = 1 << 28,
playerground.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using wServer.svrPackets;
using wServer.cliPackets;
namespace wServer.realm.entities
{
public partial class Player
{
long l = 0;
void HandleGround(RealmTime time)
{
if (time.tickTimes - l > 500)
{
if (HasConditionEffect(ConditionEffects.LavaImmune) ||
HasConditionEffect(ConditionEffects.Paused))
HasConditionEffect(ConditionEffects.Invincible);
return;
WmapTile tile = Owner.Map[(int)X, (int)Y];
ObjectDesc objDesc = tile.ObjType == 0 ? null : XmlDatas.ObjectDescs[tile.ObjType];
TileDesc tileDesc = XmlDatas.TileDescs[tile.TileId];
if (tileDesc.Damaging && (objDesc == null || !objDesc.ProtectFromGroundDamage))
{
int dmg = Random.Next(tileDesc.MinDamage, tileDesc.MaxDamage);
dmg = (int)statsMgr.GetDefenseDamage(dmg, true);
HP -= dmg;
UpdateCount++;
if (HP <= 0)
Death("lava");
l = time.tickTimes;
}
}
}
public void GroundDamage(RealmTime time, GroundDamagePacket pkt)
{
}
}
}
additions.xml
<Object type="0xf01" id="Robe of Someone">
<Class>Equipment</Class>
<Item/>
<Texture>
<File>lofiObj3</File>
<Index>0x86</Index>
</Texture>
<SlotType>14</SlotType>
<Description>The invincible robe of Someone</Description>
<ActivateOnEquip stat="22" amount="100">IncrementStat</ActivateOnEquip>
<Activate effect="LavaImmune">ConditionEffectSelf</Activate>
<BagType>2</BagType>
<FameBonus>5</FameBonus>
<Soulbound/>
</Object>