[committed] RA - Ichor of the Deep

A place to submit .patch fixes for the DOL SVN

Moderator: Developer Team

[committed] RA - Ichor of the Deep

Postby -Shawn- » Fri Aug 06, 2010 12:15 am

current code
Code: Select all
protected virtual int EndCast(RegionTimer timer)
{
if (caster.TargetObject == null)
{
caster.Out.SendMessage("You need a target for this ability!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return 0;
}

if (!caster.TargetInView)
{
caster.Out.SendMessage(caster.TargetObject.Name + " is not in view.", eChatType.CT_SpellResisted, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return 0;
}

if ( !caster.IsWithinRadius( caster.TargetObject, 1875 ) )
{
caster.Out.SendMessage(caster.TargetObject.Name + " is too far away.", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return 0;
}
my code
Code: Select all
protected virtual int EndCast(RegionTimer timer)
{
if (caster.TargetObject == null)
{
caster.Out.SendMessage("You need a target for this ability!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return 0;
}
if (caster.IsMoving)
{
caster.Out.SendMessage("You move and interupt your spellcast!", eChatType.CT_Say, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return 0;
}

if ( !caster.IsWithinRadius( caster.TargetObject, 1875 ) )
{
caster.Out.SendMessage(caster.TargetObject.Name + " is too far away.", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return 0;
}
remove the check for if the target is in view ( it does not have to be in view on live & added a check to see if the player is moving or not - also from live)
-Shawn-
DOL Devotee
 
Posts: 305
Joined: Tue Nov 24, 2009 1:47 am
Location: New York

Re: RA - Ichor of the Deep

Postby Graveen » Fri Aug 06, 2010 6:31 am

Shawn, can you create a diff from the curent SVN please ?
Image
* pm me to contribute in Dawn of Light: code, database *
User avatar
Graveen
Project Leader
 
Posts: 12661
Joined: Fri Oct 19, 2007 9:22 pm
Location: France

Re: RA - Ichor of the Deep

Postby -Shawn- » Fri Aug 06, 2010 7:27 am

yea sure
-Shawn-
DOL Devotee
 
Posts: 305
Joined: Tue Nov 24, 2009 1:47 am
Location: New York

Re: RA - Ichor of the Deep

Postby -Shawn- » Fri Aug 06, 2010 7:43 am

Code: Select all
using System;
using System.Collections;
using System.Reflection;
using DOL.GS;
using DOL.GS.PacketHandler;
using DOL.GS.Effects;
using DOL.GS.Spells;
using DOL.Events;
using DOL.Database;

namespace DOL.GS.RealmAbilities
{
public class IchorOfTheDeepAbility : TimedRealmAbility
{
public IchorOfTheDeepAbility(DBAbility dba, int level) : base(dba, level) { }

private RegionTimer m_expireTimerID;
private RegionTimer m_rootExpire;
private int dmgValue = 0;
private int duration = 0;
private GamePlayer caster;

public override void Execute(GameLiving living)
{
if (CheckPreconditions(living, DEAD | SITTING | MEZZED | STUNNED)) return;

caster = living as GamePlayer;
if (caster == null)
return;

if (caster.TargetObject == null)
{
caster.Out.SendMessage("You need a target for this ability!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return;
}

if (!caster.TargetInView)
{
caster.Out.SendMessage(caster.TargetObject.Name + " is not in view.", eChatType.CT_SpellResisted, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return;
}

if (!caster.IsWithinRadius( caster.TargetObject, 1875 ))
{
caster.Out.SendMessage(caster.TargetObject.Name + " is too far away.", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return;
}

if (m_expireTimerID != null && m_expireTimerID.IsAlive)
{
caster.Out.SendMessage("You are already casting this ability.", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return;
}

//150 dam/10 sec || 400/20 || 600/30
switch (Level)
{
case 1: dmgValue = 150; duration = 10000; break;
case 2: dmgValue = 400; duration = 20000; break;
case 3: dmgValue = 600; duration = 30000; break;
default: return;
}

#region resist and det
GameLiving m_target = caster.TargetObject as GameLiving;

int primaryResistModifier = m_target.GetResist(eDamageType.Spirit);
int secondaryResistModifier = m_target.SpecBuffBonusCategory[(int)eProperty.Resist_Spirit];
int rootdet = ((m_target.GetModified(eProperty.SpeedDecreaseDuration) - 100) * -1);

int ResistModifier = 0;
ResistModifier += (int)((dmgValue * (double)primaryResistModifier) * -0.01);
ResistModifier += (int)((dmgValue + (double)ResistModifier) * (double)secondaryResistModifier * -0.01);


if (m_target is GamePlayer)
{
dmgValue += ResistModifier;
}
if (m_target is GameNPC)
{
dmgValue += ResistModifier;
}

int rootmodifier = 0;
rootmodifier += (int)((duration * (double)primaryResistModifier) * -0.01);
rootmodifier += (int)((duration + (double)primaryResistModifier) * (double)secondaryResistModifier * -0.01);
rootmodifier += (int)((duration + (double)rootmodifier) * (double)rootdet * -0.01);

duration += rootmodifier;

if (duration < 1)
duration = 1;
#endregion


foreach (GamePlayer i_player in caster.GetPlayersInRadius(WorldMgr.INFO_DISTANCE))
{
if (i_player == caster) i_player.Out.SendMessage("You cast " + this.Name + "!", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
else i_player.Out.SendMessage(caster.Name + " casts a spell!", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);

i_player.Out.SendSpellCastAnimation(caster, 7029, 20);
}

m_expireTimerID = new RegionTimer(caster, new RegionTimerCallback(EndCast), 2000);
}

protected virtual int EndCast(RegionTimer timer)
{
if (caster.TargetObject == null)
{
caster.Out.SendMessage("You need a target for this ability!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return 0;
}

if (!caster.TargetInView)
{
caster.Out.SendMessage(caster.TargetObject.Name + " is not in view.", eChatType.CT_SpellResisted, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return 0;
}

if ( !caster.IsWithinRadius( caster.TargetObject, 1875 ) )
{
caster.Out.SendMessage(caster.TargetObject.Name + " is too far away.", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return 0;
}

GameLiving living = caster.TargetObject as GameLiving;

if(living==null)
{
timer.Stop();
timer = null;
return 0;
}

if (living.EffectList.GetOfType(typeof(ChargeEffect)) == null && living.EffectList.GetOfType(typeof(SpeedOfSoundEffect)) != null)
{
living.BuffBonusMultCategory1.Set((int)eProperty.MaxSpeed, this, 1.0 - 99 * 0.01);
m_rootExpire = new RegionTimer(living, new RegionTimerCallback(RootExpires), duration);
GameEventMgr.AddHandler(living, GameLivingEvent.AttackedByEnemy, new DOLEventHandler(OnAttacked));
SendUpdates(living);
}

foreach (GamePlayer player in living.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE))
{
player.Out.SendSpellEffectAnimation(caster, (caster.TargetObject as GameLiving), 7029, 0, false, 1);
}

foreach (GameNPC mob in living.GetNPCsInRadius(500))
{
if (!GameServer.ServerRules.IsAllowedToAttack(caster, mob, true))
continue;

if (mob.HasAbility(Abilities.CCImmunity) || mob.HasAbility(Abilities.RootImmunity) || mob.HasAbility(Abilities.DamageImmunity))
continue;

GameSpellEffect mez = SpellHandler.FindEffectOnTarget(mob, "Mesmerize");
if (mez != null)
mez.Cancel(false);

mob.TakeDamage(caster, eDamageType.Spirit, dmgValue, 0);

if (mob.EffectList.GetOfType(typeof(ChargeEffect)) == null && mob.EffectList.GetOfType(typeof(SpeedOfSoundEffect)) == null)
{
mob.BuffBonusMultCategory1.Set((int)eProperty.MaxSpeed, this, 1.0 - 99 * 0.01);
m_rootExpire = new RegionTimer(mob, new RegionTimerCallback(RootExpires), duration);
GameEventMgr.AddHandler(mob, GameLivingEvent.AttackedByEnemy, new DOLEventHandler(OnAttacked));
SendUpdates(mob);
}

caster.Out.SendMessage("You hit the " + mob.Name + " for " + dmgValue + " damage.", eChatType.CT_YouHit, eChatLoc.CL_SystemWindow);

foreach (GamePlayer player2 in living.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE))
{
player2.Out.SendSpellEffectAnimation(caster, mob, 7029, 0, false, 1);
}
}

foreach (GamePlayer aeplayer in living.GetPlayersInRadius(500))
{
if (!GameServer.ServerRules.IsAllowedToAttack(caster, aeplayer, true))
continue;

GameSpellEffect mez = SpellHandler.FindEffectOnTarget(aeplayer, "Mesmerize");
if (mez != null)
mez.Cancel(false);
aeplayer.TakeDamage(caster, eDamageType.Spirit, dmgValue, 0);
aeplayer.StartInterruptTimer(3000, AttackData.eAttackType.Spell, caster);

if (aeplayer.EffectList.GetOfType(typeof(ChargeEffect)) == null && aeplayer.EffectList.GetOfType(typeof(SpeedOfSoundEffect)) == null)
{
(aeplayer as GameLiving).BuffBonusMultCategory1.Set((int)eProperty.MaxSpeed, this, 1.0 - 99 * 0.01);
m_rootExpire = new RegionTimer(aeplayer, new RegionTimerCallback(RootExpires), duration);
GameEventMgr.AddHandler(aeplayer, GameLivingEvent.AttackedByEnemy, new DOLEventHandler(OnAttacked));
SendUpdates(aeplayer);
}

caster.Out.SendMessage("You hit " + aeplayer.Name + " for " + dmgValue + " damage.", eChatType.CT_YouHit, eChatLoc.CL_SystemWindow);

foreach (GamePlayer player3 in living.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE))
{
player3.Out.SendSpellEffectAnimation(caster, aeplayer, 7029, 0, false, 1);
}
}

DisableSkill(caster);
timer.Stop();
timer = null;
return 0;
}

protected virtual int RootExpires(RegionTimer timer)
{
GameLiving living = timer.Owner as GameLiving;
if (living != null)
{
living.BuffBonusMultCategory1.Remove((int)eProperty.MaxSpeed, this);
SendUpdates(living);
}
timer.Stop();
timer = null;
return 0;
}
/// <summary>
/// Sends updates on effect start/stop
/// </summary>
/// <param name="owner"></param>
protected static void SendUpdates(GameLiving owner)
{
if (owner.IsMezzed || owner.IsStunned)
return;

GamePlayer player = owner as GamePlayer;
if (player != null)
player.Out.SendUpdateMaxSpeed();

GameNPC npc = owner as GameNPC;
if (npc != null)
{
short maxSpeed = npc.MaxSpeed;
if (npc.CurrentSpeed > maxSpeed)
npc.CurrentSpeed = maxSpeed;
}
}
/// <summary>
/// Handles attack on buff owner
/// </summary>
/// <param name="e"></param>
/// <param name="sender"></param>
/// <param name="arguments"></param>
protected virtual void OnAttacked(DOLEvent e, object sender, EventArgs arguments)
{
AttackedByEnemyEventArgs attackArgs = arguments as AttackedByEnemyEventArgs;
GameLiving living = sender as GameLiving;
if (attackArgs == null) return;
if (living == null) return;

switch (attackArgs.AttackData.AttackResult)
{
case GameLiving.eAttackResult.HitStyle:
case GameLiving.eAttackResult.HitUnstyled:
living.BuffBonusMultCategory1.Remove((int)eProperty.MaxSpeed, this);
SendUpdates(living);
break;
}
}
public override int GetReUseDelay(int level)
{
return 600;
}
}
}

^^ current svn

Code: Select all
using System;
using System.Collections;
using System.Reflection;
using DOL.GS;
using DOL.GS.PacketHandler;
using DOL.GS.Effects;
using DOL.GS.Spells;
using DOL.Events;
using DOL.Database;

namespace DOL.GS.RealmAbilities
{
public class IchorOfTheDeepAbility : TimedRealmAbility
{
public IchorOfTheDeepAbility(DBAbility dba, int level) : base(dba, level) { }

private RegionTimer m_expireTimerID;
private RegionTimer m_rootExpire;
private int dmgValue = 0;
private int duration = 0;
private GamePlayer caster;

public override void Execute(GameLiving living)
{
if (CheckPreconditions(living, DEAD | SITTING | MEZZED | STUNNED)) return;

caster = living as GamePlayer;
if (caster == null)
return;

if (caster.TargetObject == null)
{
caster.Out.SendMessage("You need a target for this ability!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return;
}

if (!caster.TargetInView)
{
caster.Out.SendMessage(caster.TargetObject.Name + " is not in view.", eChatType.CT_SpellResisted, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return;
}

if (!caster.IsWithinRadius( caster.TargetObject, 1875 ))
{
caster.Out.SendMessage(caster.TargetObject.Name + " is too far away.", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return;
}

if (m_expireTimerID != null && m_expireTimerID.IsAlive)
{
caster.Out.SendMessage("You are already casting this ability.", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3 * 1000);
return;
}

//150 dam/10 sec || 400/20 || 600/30
switch (Level)
{
case 1: dmgValue = 150; duration = 10000; break;
case 2: dmgValue = 400; duration = 20000; break;
case 3: dmgValue = 600; duration = 30000; break;
default: return;
}

#region resist and det
GameLiving m_target = caster.TargetObject as GameLiving;

int primaryResistModifier = m_target.GetResist(eDamageType.Spirit);
int secondaryResistModifier = m_target.SpecBuffBonusCategory[(int)eProperty.Resist_Spirit];
int rootdet = ((m_target.GetModified(eProperty.SpeedDecreaseDuration) - 100) * -1);

int ResistModifier = 0;
ResistModifier += (int)((dmgValue * (double)primaryResistModifier) * -0.01);
ResistModifier += (int)((dmgValue + (double)ResistModifier) * (double)secondaryResistModifier * -0.01);


if (m_target is GamePlayer)
{
dmgValue += ResistModifier;
}
if (m_target is GameNPC)
{
dmgValue += ResistModifier;
}

int rootmodifier = 0;
rootmodifier += (int)((duration * (double)primaryResistModifier) * -0.01);
rootmodifier += (int)((duration + (double)primaryResistModifier) * (double)secondaryResistModifier * -0.01);
rootmodifier += (int)((duration + (double)rootmodifier) * (double)rootdet * -0.01);

duration += rootmodifier;

if (duration < 1)
duration = 1;
#endregion


foreach (GamePlayer i_player in caster.GetPlayersInRadius(WorldMgr.INFO_DISTANCE))
{
if (i_player == caster) i_player.Out.SendMessage("You cast " + this.Name + "!", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
else i_player.Out.SendMessage(caster.Name + " casts a spell!", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);

i_player.Out.SendSpellCastAnimation(caster, 7029, 20);
}

m_expireTimerID = new RegionTimer(caster, new RegionTimerCallback(EndCast), 2000);
}

protected virtual int EndCast(RegionTimer timer)
{
if (caster.TargetObject == null)
{
caster.Out.SendMessage("You need a target for this ability!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3000);
return 0;
}
if (caster.IsMoving)
{
caster.Out.SendMessage("You move and interupt your spellcast!", eChatType.CT_Say, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3000);
return 0;
}

if (!caster.IsWithinRadius(caster.TargetObject, 1875))
{
caster.Out.SendMessage(caster.TargetObject.Name + " is too far away.", eChatType.CT_Spell, eChatLoc.CL_SystemWindow);
caster.DisableSkill(this, 3000);
return 0;
}



GameLiving living = caster.TargetObject as GameLiving;

if(living==null)
{
timer.Stop();
timer = null;
return 0;
}

if (living.EffectList.GetOfType(typeof(ChargeEffect)) == null && living.EffectList.GetOfType(typeof(SpeedOfSoundEffect)) != null)
{
living.BuffBonusMultCategory1.Set((int)eProperty.MaxSpeed, this, 1.0 - 99 * 0.01);
m_rootExpire = new RegionTimer(living, new RegionTimerCallback(RootExpires), duration);
GameEventMgr.AddHandler(living, GameLivingEvent.AttackedByEnemy, new DOLEventHandler(OnAttacked));
SendUpdates(living);
}

foreach (GamePlayer player in living.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE))
{
player.Out.SendSpellEffectAnimation(caster, (caster.TargetObject as GameLiving), 7029, 0, false, 1);
}

foreach (GameNPC mob in living.GetNPCsInRadius(500))
{
if (!GameServer.ServerRules.IsAllowedToAttack(caster, mob, true))
continue;

if (mob.HasAbility(Abilities.CCImmunity) || mob.HasAbility(Abilities.RootImmunity) || mob.HasAbility(Abilities.DamageImmunity))
continue;

GameSpellEffect mez = SpellHandler.FindEffectOnTarget(mob, "Mesmerize");
if (mez != null)
mez.Cancel(false);

mob.TakeDamage(caster, eDamageType.Spirit, dmgValue, 0);

if (mob.EffectList.GetOfType(typeof(ChargeEffect)) == null && mob.EffectList.GetOfType(typeof(SpeedOfSoundEffect)) == null)
{
mob.BuffBonusMultCategory1.Set((int)eProperty.MaxSpeed, this, 1.0 - 99 * 0.01);
m_rootExpire = new RegionTimer(mob, new RegionTimerCallback(RootExpires), duration);
GameEventMgr.AddHandler(mob, GameLivingEvent.AttackedByEnemy, new DOLEventHandler(OnAttacked));
SendUpdates(mob);
}

caster.Out.SendMessage("You hit the " + mob.Name + " for " + dmgValue + " damage.", eChatType.CT_YouHit, eChatLoc.CL_SystemWindow);

foreach (GamePlayer player2 in living.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE))
{
player2.Out.SendSpellEffectAnimation(caster, mob, 7029, 0, false, 1);
}
}

foreach (GamePlayer aeplayer in living.GetPlayersInRadius(500))
{
if (!GameServer.ServerRules.IsAllowedToAttack(caster, aeplayer, true))
continue;

GameSpellEffect mez = SpellHandler.FindEffectOnTarget(aeplayer, "Mesmerize");
if (mez != null)
mez.Cancel(false);
aeplayer.TakeDamage(caster, eDamageType.Spirit, dmgValue, 0);
aeplayer.StartInterruptTimer(3000, AttackData.eAttackType.Spell, caster);

if (aeplayer.EffectList.GetOfType(typeof(ChargeEffect)) == null && aeplayer.EffectList.GetOfType(typeof(SpeedOfSoundEffect)) == null)
{
(aeplayer as GameLiving).BuffBonusMultCategory1.Set((int)eProperty.MaxSpeed, this, 1.0 - 99 * 0.01);
m_rootExpire = new RegionTimer(aeplayer, new RegionTimerCallback(RootExpires), duration);
GameEventMgr.AddHandler(aeplayer, GameLivingEvent.AttackedByEnemy, new DOLEventHandler(OnAttacked));
SendUpdates(aeplayer);
}

caster.Out.SendMessage("You hit " + aeplayer.Name + " for " + dmgValue + " damage.", eChatType.CT_YouHit, eChatLoc.CL_SystemWindow);

foreach (GamePlayer player3 in living.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE))
{
player3.Out.SendSpellEffectAnimation(caster, aeplayer, 7029, 0, false, 1);
}
}

DisableSkill(caster);
timer.Stop();
timer = null;
return 0;
}

protected virtual int RootExpires(RegionTimer timer)
{
GameLiving living = timer.Owner as GameLiving;
if (living != null)
{
living.BuffBonusMultCategory1.Remove((int)eProperty.MaxSpeed, this);
SendUpdates(living);
}
timer.Stop();
timer = null;
return 0;
}
/// <summary>
/// Sends updates on effect start/stop
/// </summary>
/// <param name="owner"></param>
protected static void SendUpdates(GameLiving owner)
{
if (owner.IsMezzed || owner.IsStunned)
return;

GamePlayer player = owner as GamePlayer;
if (player != null)
player.Out.SendUpdateMaxSpeed();

GameNPC npc = owner as GameNPC;
if (npc != null)
{
short maxSpeed = npc.MaxSpeed;
if (npc.CurrentSpeed > maxSpeed)
npc.CurrentSpeed = maxSpeed;
}
}
/// <summary>
/// Handles attack on buff owner
/// </summary>
/// <param name="e"></param>
/// <param name="sender"></param>
/// <param name="arguments"></param>
protected virtual void OnAttacked(DOLEvent e, object sender, EventArgs arguments)
{
AttackedByEnemyEventArgs attackArgs = arguments as AttackedByEnemyEventArgs;
GameLiving living = sender as GameLiving;
if (attackArgs == null) return;
if (living == null) return;

switch (attackArgs.AttackData.AttackResult)
{
case GameLiving.eAttackResult.HitStyle:
case GameLiving.eAttackResult.HitUnstyled:
living.BuffBonusMultCategory1.Remove((int)eProperty.MaxSpeed, this);
SendUpdates(living);
break;
}
}
public override int GetReUseDelay(int level)
{
return 600;
}
}
}

^^ current svn my changes
-Shawn-
DOL Devotee
 
Posts: 305
Joined: Tue Nov 24, 2009 1:47 am
Location: New York

Re: RA - Ichor of the Deep

Postby Graveen » Fri Aug 06, 2010 9:02 am

Image
* pm me to contribute in Dawn of Light: code, database *
User avatar
Graveen
Project Leader
 
Posts: 12661
Joined: Fri Oct 19, 2007 9:22 pm
Location: France

Re: RA - Ichor of the Deep

Postby -Shawn- » Fri Aug 06, 2010 9:11 am

!!!! ill do it later today = ( its 5 am her e now and can't keep my eyes open!!!! gnite = ) see ya later ;/ sadly work at 10
-Shawn-
DOL Devotee
 
Posts: 305
Joined: Tue Nov 24, 2009 1:47 am
Location: New York

Re: RA - Ichor of the Deep

Postby Graveen » Fri Aug 06, 2010 10:08 am

ok good ! it is indispensable for a good code review !
Image
* pm me to contribute in Dawn of Light: code, database *
User avatar
Graveen
Project Leader
 
Posts: 12661
Joined: Fri Oct 19, 2007 9:22 pm
Location: France

Re: RA - Ichor of the Deep

Postby -Shawn- » Fri Aug 06, 2010 9:27 pm

Ichor patch


also another change was (suggestion from rsanders) change the time for disable from 3 * 1000 to 3000
Attachments
ichorpatch.patch
(2.25 KiB) Downloaded 9 times
-Shawn-
DOL Devotee
 
Posts: 305
Joined: Tue Nov 24, 2009 1:47 am
Location: New York

Re: RA - Ichor of the Deep

Postby -Shawn- » Sun Aug 08, 2010 8:02 am

ok good ! it is indispensable for a good code review !
:D
-Shawn-
DOL Devotee
 
Posts: 305
Joined: Tue Nov 24, 2009 1:47 am
Location: New York

Re: RA - Ichor of the Deep

Postby Graveen » Sun Aug 08, 2010 10:10 pm

Seems ok. you removed the !caster.TargetInView check ?
Image
* pm me to contribute in Dawn of Light: code, database *
User avatar
Graveen
Project Leader
 
Posts: 12661
Joined: Fri Oct 19, 2007 9:22 pm
Location: France

Re: RA - Ichor of the Deep

Postby -Shawn- » Mon Aug 09, 2010 1:02 am

well on live you dont have to be in view to cast this spell
-Shawn-
DOL Devotee
 
Posts: 305
Joined: Tue Nov 24, 2009 1:47 am
Location: New York

Re: RA - Ichor of the Deep

Postby Graveen » Mon Aug 09, 2010 7:27 am

Accepted, soon in SVN, thank you !

nice ! i commented your other contributions, i have some problems with them, mainly structural, perhaps you'd like to throw an eye at them ? :)
Image
* pm me to contribute in Dawn of Light: code, database *
User avatar
Graveen
Project Leader
 
Posts: 12661
Joined: Fri Oct 19, 2007 9:22 pm
Location: France


Return to “%s” DOL Code Contributions

Who is online

Users browsing this forum: No registered users and 1 guest