|
You last visited: Today at 12:07
Advertisement
[Help]How to change damage 5165
Discussion on [Help]How to change damage 5165 within the CO2 Private Server forum part of the Conquer Online 2 category.
01/12/2010, 23:46
|
#31
|
elite*gold: 21
Join Date: Jul 2005
Posts: 9,193
Received Thanks: 5,376
|
:O maybe I'm just underestimating how fragmented the lotf source coding is but how has no one released a real fix for the damage calculations yet?
Assuming stats are reading properly from items it shouldn't be THAT hard.. just fix the damage calculation void by re-writing how it handles damage...
Question:
Are stats from items reading properly
Are gems in items being pulled properly
If so I may download source later and attempt to re-write it so it will work a bit better for ppl.
|
|
|
01/13/2010, 01:30
|
#32
|
elite*gold: 20
Join Date: Mar 2006
Posts: 6,125
Received Thanks: 2,518
|
Quote:
Originally Posted by pro4never
:O maybe I'm just underestimating how fragmented the lotf source coding is but how has no one released a real fix for the damage calculations yet?
Assuming stats are reading properly from items it shouldn't be THAT hard.. just fix the damage calculation void by re-writing how it handles damage...
Question:
Are stats from items reading properly
Are gems in items being pulled properly
If so I may download source later and attempt to re-write it so it will work a bit better for ppl.
|
Character.cs Line 3959
Code:
if (A == AttackType.Melee || A == AttackType.Ranged)
{
uint Damage = (uint)Rnd.Next((int)EqStats.minatk, (int)EqStats.maxatk);
Damage = (uint)((Damage + Str) * EqStats.GemExtraAttack);
Buff Stig = BuffOf(SkillsClass.ExtraEffect.Stigma);
if (Stig.Eff == SkillsClass.ExtraEffect.Stigma)
Damage = (uint)(Damage * Stig.Value);
return Damage;
}
Character.cs Line 3814
Code:
ushort Def = EqStats.defense;
Buff Shield = BuffOf(SkillsClass.ExtraEffect.MagicShield);
if (Shield.Eff == SkillsClass.ExtraEffect.MagicShield)
Def = (ushort)(Def * Shield.Value);
if (Def >= Damage)
Damage = 1;
else
Damage -= Def;
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 100);
Damage += Attacker.EqStats.MeleeDamageIncrease;
if (EqStats.MeleeDamageDecrease >= Damage)
Damage = 1;
else
Damage -= EqStats.MeleeDamageDecrease;
Thats the sum of the Melee damage calculation, (the existing one in the source), its overly complicated in every aspect, at no point does the server half the left hand weapon damage (which is a must to get attack damage correct). Along with a number of other errors which are missing (for example potency doesnt count for shit in this source, neither it seems does tort gems).
I considered fixing it once, but honestly its not worth it having looked through the source.
|
|
|
01/13/2010, 01:35
|
#33
|
elite*gold: 21
Join Date: Jul 2005
Posts: 9,193
Received Thanks: 5,376
|
yah it certainly doesn't look very effective (assuming even that the sub calculations such as bless and gems are calculating properly...)
I dunno, depends how completely bored out of my mind I get... although I'm probably headed to the gym soon so that would solve that problem.
<edit>
wtf... is it just me being dumb or are they doing defence calculations BEFORE attack boost calcs?...
*** the entire order of these is wrong... It's been ages since I've seen any proper attack calculations but shouldnt it be
(((min-max atk * dragon gem %) * stig %) - ((pdef * (1 + bless pct) * magic shield %) / (1 * tort %))) + bonus damage (fan/tower)
or something similar to that..
it was atk, then dragons, THEN stig. Once attack was calculated it removed the defence, bless and shield and the FINAL damage was done through torts... or maybe shield was over were torts are also...
Guuhhh now I really wanna read old dmg calc threads on co forget too much of this stuff.
|
|
|
01/13/2010, 01:37
|
#34
|
elite*gold: 20
Join Date: Mar 2006
Posts: 6,125
Received Thanks: 2,518
|
Quote:
Originally Posted by pro4never
yah it certainly doesn't look very effective (assuming even that the sub calculations such as bless and gems are calculating properly...)
I dunno, depends how completely bored out of my mind I get... although I'm probably headed to the gym soon so that would solve that problem.
|
This is only an snippet, the full "Attack Handler" goes like this:
Attack.cs
Code:
public class Attack
{
public static void Handle(Main.GameClient GC, byte[] Data)
{
try
{
uint AttackType = BitConverter.ToUInt32(Data, 20);
if (AttackType != 24)
GC.MyChar.AtkMem.AtkType = (byte)AttackType;
GC.MyChar.Action = 100;
if (!GC.MyChar.Alive) return;
if (AttackType == 2 || AttackType == 28)
{
uint TargetUID = BitConverter.ToUInt32(Data, 12);
Game.Mob PossMob = null;
Game.Character PossChar = null;
if (Game.World.H_Mobs.Contains(GC.MyChar.Loc.Map))
{
Hashtable MapMobs = (Hashtable)Game.World.H_Mobs[GC.MyChar.Loc.Map];
if (MapMobs.Contains(TargetUID))
PossMob = (Game.Mob)MapMobs[TargetUID];
else if (Game.World.H_Chars.Contains(TargetUID))
PossChar = (Game.Character)Game.World.H_Chars[TargetUID];
}
else if (Game.World.H_Chars.Contains(TargetUID))
PossChar = (Game.Character)Game.World.H_Chars[TargetUID];
if (PossChar != null)
if (GC.GM)
return;
if (PossMob != null || PossChar != null)
{
GC.MyChar.AtkMem.Target = TargetUID;
GC.MyChar.AtkMem.Attacking = true;
if (DateTime.Now > GC.MyChar.AtkMem.LastAttack.AddMilliseconds(GC.MyChar.AtkFrequence))
{
uint Damage = GC.MyChar.PrepareAttack((byte)AttackType, true);
if (PossMob != null && PossMob.Alive && (MyMath.PointDistance(GC.MyChar.Loc.X, GC.MyChar.Loc.Y, PossMob.Loc.X, PossMob.Loc.Y) <= 3 || AttackType == 28 && MyMath.PointDistance(GC.MyChar.Loc.X, GC.MyChar.Loc.Y, PossMob.Loc.X, PossMob.Loc.Y) <= 15 || GC.MyChar.StatEff.Contains(Game.StatusEffectEn.FatalStrike)))
{
if (!GC.MyChar.WeaponSkill(PossMob.Loc.X, PossMob.Loc.Y, PossMob.EntityID))
PossMob.TakeAttack(GC.MyChar, ref Damage, (NewestCOServer.Game.AttackType)AttackType, false);
}
else if (PossChar != null && (PossChar.CanBeMeleed || GC.MyChar.AtkMem.AtkType != 2) && PossChar.Alive && (MyMath.PointDistance(GC.MyChar.Loc.X, GC.MyChar.Loc.Y, PossChar.Loc.X, PossChar.Loc.Y) <= 2 || AttackType == 28 && MyMath.PointDistance(GC.MyChar.Loc.X, GC.MyChar.Loc.Y, PossChar.Loc.X, PossChar.Loc.Y) <= 15))
{
if(!GC.GM)
if (!GC.MyChar.WeaponSkill(PossChar.Loc.X, PossChar.Loc.Y, PossChar.EntityID))
PossChar.TakeAttack(GC.MyChar, Damage, (NewestCOServer.Game.AttackType)AttackType, false);
}
else
{
GC.MyChar.AtkMem.Target = 0;
GC.MyChar.AtkMem.Attacking = false;
}
}
}
else if (TargetUID >= 6700 && TargetUID <= 6702)
{
GC.MyChar.AtkMem.Target = TargetUID;
GC.MyChar.AtkMem.Attacking = true;
if (DateTime.Now > GC.MyChar.AtkMem.LastAttack.AddMilliseconds(GC.MyChar.AtkFrequence))
{
uint Damage = GC.MyChar.PrepareAttack((byte)AttackType, true);
if (TargetUID == 6700)
{
if (Features.GuildWars.War)
{
if (!GC.MyChar.WeaponSkill(Features.GuildWars.ThePole.Loc.X, Features.GuildWars.ThePole.Loc.Y, Features.GuildWars.ThePole.EntityID))
Features.GuildWars.ThePole.TakeAttack(GC.MyChar, Damage, (byte)AttackType);
}
else
{
GC.MyChar.AtkMem.Target = 0;
GC.MyChar.AtkMem.Attacking = false;
}
}
else if (TargetUID == 6701)
{
if (!GC.MyChar.WeaponSkill(Features.GuildWars.TheLeftGate.Loc.X, Features.GuildWars.TheLeftGate.Loc.Y, Features.GuildWars.TheLeftGate.EntityID))
Features.GuildWars.TheLeftGate.TakeAttack(GC.MyChar, Damage, (byte)AttackType);
}
else
{
if (!GC.MyChar.WeaponSkill(Features.GuildWars.TheRightGate.Loc.X, Features.GuildWars.TheRightGate.Loc.Y, Features.GuildWars.TheRightGate.EntityID))
Features.GuildWars.TheRightGate.TakeAttack(GC.MyChar, Damage, (byte)AttackType);
}
}
return;
}
else
GC.MyChar.AtkMem.Attacking = false;
if (PossChar == null && PossMob == null)
{
Game.NPC PossNPC = (Game.NPC)Game.World.H_NPCs[TargetUID];
if (PossNPC != null && PossNPC.Flags == 21 && (MyMath.PointDistance(GC.MyChar.Loc.X, GC.MyChar.Loc.Y, PossNPC.Loc.X, PossNPC.Loc.Y) <= 3 || AttackType == 28 && MyMath.PointDistance(GC.MyChar.Loc.X, GC.MyChar.Loc.Y, PossNPC.Loc.X, PossNPC.Loc.Y) <= 15))
{
GC.MyChar.AtkMem.Target = TargetUID;
GC.MyChar.AtkMem.Attacking = true;
if (DateTime.Now > GC.MyChar.AtkMem.LastAttack.AddMilliseconds(GC.MyChar.AtkFrequence))
{
uint Damage = GC.MyChar.PrepareAttack((byte)AttackType, true);
if (!GC.MyChar.WeaponSkill(PossNPC.Loc.X, PossNPC.Loc.Y, PossNPC.EntityID))
PossNPC.TakeAttack(GC.MyChar, Damage, (NewestCOServer.Game.AttackType)AttackType, false);
}
}
}
}
else if (AttackType == 44)
{
ushort SkillId = 6003;
ushort x = GC.MyChar.Loc.X;
ushort y = GC.MyChar.Loc.Y;
uint Target = GC.MyChar.EntityID;
if (SkillId != 0 && GC.MyChar.Skills.Contains(SkillId))
{
Game.Skill S = (Game.Skill)GC.MyChar.Skills[SkillId];
if (Features.SkillsClass.SkillInfos.Contains(S.ID + " " + S.Lvl))
{
Features.SkillsClass.SkillUse SU = new NewestCOServer.Features.SkillsClass.SkillUse();
SU.Init(GC.MyChar, S.ID, S.Lvl, (ushort)x, (ushort)y);
if (SU.Info.ID == 0)
return;
SU.GetTargets(Target);
SU.Use();
}
}
}
else if (AttackType == 24)
{
ushort SkillId;
long x;
long y;
uint Target;
#region GetSkillID
SkillId = Convert.ToUInt16(((long)Data[24] & 0xFF) | (((long)Data[25] & 0xFF) << 8));
SkillId ^= (ushort)0x915d;
SkillId ^= (ushort)GC.MyChar.EntityID;
SkillId = (ushort)(SkillId << 0x3 | SkillId >> 0xd);
SkillId -= 0xeb42;
#endregion
#region GetCoords
x = (Data[16] & 0xFF) | ((Data[17] & 0xFF) << 8);
x = x ^ (uint)(GC.MyChar.EntityID & 0xffff) ^ 0x2ed6;
x = ((x << 1) | ((x & 0x8000) >> 15)) & 0xffff;
x |= 0xffff0000;
x -= 0xffff22ee;
y = (Data[18] & 0xFF) | ((Data[19] & 0xFF) << 8);
y = y ^ (uint)(GC.MyChar.EntityID & 0xffff) ^ 0xb99b;
y = ((y << 5) | ((y & 0xF800) >> 11)) & 0xffff;
y |= 0xffff0000;
y -= 0xffff8922;
#endregion
#region GetTarget
Target = ((uint)Data[12] & 0xFF) | (((uint)Data[13] & 0xFF) << 8) | (((uint)Data[14] & 0xFF) << 16) | (((uint)Data[15] & 0xFF) << 24);
Target = ((((Target & 0xffffe000) >> 13) | ((Target & 0x1fff) << 19)) ^ 0x5F2D2463 ^ GC.MyChar.EntityID) - 0x746F4AE6;
#endregion
if (SkillId != 0 && GC.MyChar.Skills.Contains(SkillId))
{
Game.Skill S = (Game.Skill)GC.MyChar.Skills[SkillId];
if (Features.SkillsClass.SkillInfos.Contains(S.ID + " " + S.Lvl))
{
Features.SkillsClass.SkillUse SU = new NewestCOServer.Features.SkillsClass.SkillUse();
SU.Init(GC.MyChar, S.ID, S.Lvl, (ushort)x, (ushort)y);
if (SU.Info.ID == 0)
return;
bool EnoughArrows = true;
if (SU.Info.ArrowsCost > 0)
{
if (GC.MyChar.Loc.Map != 1039)
{
if (GC.MyChar.Equips.LeftHand.ID != 0 && Game.Item.IsArrow(GC.MyChar.Equips.LeftHand.ID))
{
if (GC.MyChar.Equips.LeftHand.CurDur >= SU.Info.ArrowsCost)
GC.MyChar.Equips.LeftHand.CurDur -= SU.Info.ArrowsCost;
else
GC.MyChar.Equips.LeftHand.CurDur = 0;
if (GC.MyChar.Equips.LeftHand.CurDur == 0)
{
GC.AddSend(Packets.ItemPacket(GC.MyChar.Equips.LeftHand.UID, 5, 6));
GC.AddSend(Packets.ItemPacket(GC.MyChar.Equips.LeftHand.UID, 0, 3));
GC.MyChar.Equips.LeftHand = new Game.Item();
}
else
GC.AddSend(Packets.AddItem(GC.MyChar.Equips.LeftHand, 5));
}
else
{
GC.MyChar.AtkMem.Attacking = false;
EnoughArrows = false;
}
}
}
if (GC.MyChar.CurMP >= SU.Info.ManaCost && GC.MyChar.Stamina >= SU.Info.StaminaCost && EnoughArrows || GC.MyChar.Loc.Map == 1039)
{
if (SU.Info.EndsXPWait)
{
if (GC.MyChar.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.XPStart))
{
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.XPStart);
GC.MyChar.XPKO = 0;
}
else
return;
}
try
{
if (GC.MyChar.Loc.Map != 1039)
{
GC.MyChar.CurMP -= SU.Info.ManaCost;
GC.MyChar.Stamina -= SU.Info.StaminaCost;
if (SkillId >= 1000 && SkillId <= 1002)
{
GC.MyChar.AtkMem.AtkType = 21;
GC.MyChar.AtkMem.Skill = SU.Info.ID;
GC.MyChar.AtkMem.Attacking = true;
GC.MyChar.AtkMem.Target = Target;
GC.MyChar.AtkMem.LastAttack = DateTime.Now;
GC.MyChar.AtkMem.SX = (ushort)x;
GC.MyChar.AtkMem.SY = (ushort)y;
}
}
else
{
GC.MyChar.AtkMem.AtkType = 21;
GC.MyChar.AtkMem.Skill = SU.Info.ID;
GC.MyChar.AtkMem.Attacking = true;
GC.MyChar.AtkMem.Target = Target;
GC.MyChar.AtkMem.LastAttack = DateTime.Now;
GC.MyChar.AtkMem.SX = (ushort)x;
GC.MyChar.AtkMem.SY = (ushort)y;
}
}
catch (Exception c) { Program.WriteLine(c.ToString()); }
if (SU.Info.ID == 6001)//toxic fog
{
#region ToxicFog
if (GC.MyChar.Loc.Map != 1039)
{
#region Mobs
try
{
foreach (Game.Mob Mob in (Game.World.H_Mobs[GC.MyChar.Loc.Map] as Hashtable).Values)
{
if (Mob.Alive)
{
int Dst = 6;
if (MyMath.PointDistance(Mob.Loc.X, Mob.Loc.Y, x, y) <= Dst)
{
if (Mob.Name.Contains("Guard"))
{
continue;
}
Mob.PoisonedInfo = new NewestCOServer.Game.PoisonType(SU.Info.Level);
foreach (Game.Character C in Game.World.H_Chars.Values)
if (Mob.Loc.Map == C.Loc.Map)
if (MyMath.PointDistance(Mob.Loc.X, Mob.Loc.Y, C.Loc.X, C.Loc.Y) <= 20)
C.MyClient.AddSend(Packets.Status(Mob.EntityID, NewestCOServer.Game.Status.Effect, (ulong)Game.StatusEffectEn.Poisoned));
uint Damage = 0;
Mob.TakeAttack(GC.MyChar, ref Damage, NewestCOServer.Game.AttackType.Magic, true);
GC.MyChar.AddSkillExp(SU.Info.ID, 100);
}
}
}
}
catch { }
#endregion
#region Players
try
{
if (!Game.World.NoPKMaps.Contains(GC.MyChar.Loc.Map))
{
foreach (Game.Character Player in Game.World.H_Chars.Values)
{
if (Player.Alive)
{
int Dst = 6;
if (MyMath.PointDistance(Player.Loc.X, Player.Loc.Y, x, y) <= Dst)
{
if (GC.MyChar.PKMode == NewestCOServer.Game.PKMode.PK)
{
if (Player != GC.MyChar)
{
if (Player.Potency <= GC.MyChar.Potency)
{
Player.PoisonedInfo = new NewestCOServer.Game.PoisonType(SU.Info.Level);
Player.StatEff.Add(NewestCOServer.Game.StatusEffectEn.Poisoned);
Player.TakeAttack(GC.MyChar, 0, NewestCOServer.Game.AttackType.Magic, true);
SU.PlayerTargets.Add(Player, (uint)1);
}
else
{
SU.PlayerTargets.Add(Player, (uint)0);
}
}
}
GC.MyChar.AddSkillExp(SU.Info.ID, 100);
}
}
}
}
}
catch { }
#endregion
}
else
GC.MyChar.AddSkillExp(SU.Info.ID, 10);
Game.World.Action(GC.MyChar, Packets.SkillUse(SU).Get);
#endregion
}
else if (SU.Info.ID == 1100 || SU.Info.ID == 1050)
{
#region Pray
if (GC.MyChar.EntityID != Target)
{
if (Game.World.H_Chars.ContainsKey(Target))
{
Game.Character Char = (Game.Character)Game.World.H_Chars[Target];
if (!Char.Alive)
{
SU.GetTargets(Target);
SU.PlayerTargets[Char] = (uint)1;
Game.World.Action(Char, Packets.SkillUse(SU).Get);
Char.Ghost = false;
Char.BlueName = false;
Char.CurHP = (ushort)Char.MaxHP;
Char.Alive = true;
Char.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.Dead);
Char.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.BlueName);
Char.Body = Char.Body;
Char.Hair = Char.Hair;
Char.Equips.Send(Char.MyClient, false);
}
}
}
#endregion
}
else
{
SU.GetTargets(Target);
SU.Use();
}
}
}
}
}
}
catch (Exception e) { Program.WriteLine(e); }
}
}
I wont link you Character.cs because its 5667 lines long, but you will get the idea of how badly written it is from the above.
|
|
|
01/13/2010, 07:35
|
#35
|
elite*gold: 0
Join Date: Feb 2007
Posts: 114
Received Thanks: 25
|
Does anyone know if i change these following If everyone will do less damage?
Quote:
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 100);
Damage = (uint)((double)Damage * (((double)(110 - EqStats.Dodge) / 100)));
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 100);
Damage = (uint)((double)Damage * (((double)(100 - EqStats.MDef1) / 100)));
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 100);
|
Too
Quote:
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 160);
Damage = (uint)((double)Damage * (((double)(110 - EqStats.Dodge) / 160)));
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 160);
Damage = (uint)((double)Damage * (((double)(100 - EqStats.MDef1) / 160)));
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 160);
|
And this
Quote:
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 100);
Damage = (uint)((double)Damage * (((double)(100 - EqStats.MDef1) / 100)));
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 100);
Damage = (uint)((double)Damage * (((double)(110 - EqStats.Dodge) / 100)));
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 100);
|
To this
Quote:
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 160);
Damage = (uint)((double)Damage * (((double)(100 - EqStats.MDef1) / 160)));
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 160);
Damage = (uint)((double)Damage * (((double)(110 - EqStats.Dodge) / 160)));
Damage = (uint)((double)Damage * (100 - EqStats.TotalBless) / 160);
|
I found those in Character.cs and Skill.cs
If anyone knows if it will reduce the damage let me know THANKS!!!
|
|
|
01/13/2010, 08:17
|
#36
|
elite*gold: 0
Join Date: Oct 2009
Posts: 8,765
Received Thanks: 5,291
|
Quote:
Originally Posted by necuja
Does anyone know if i change these following If everyone will do less damage?
Too
And this
To this
I found those in Character.cs and Skill.cs
If anyone knows if it will reduce the damage let me know THANKS!!!
|
It sure will :]
|
|
|
01/13/2010, 08:36
|
#37
|
elite*gold: 21
Join Date: Jul 2005
Posts: 9,193
Received Thanks: 5,376
|
Yes. Those are all dividing the certain stats like bless and dodge by a set number (100 to give a percentage value) and multiplying it by the actual damage.
Eg:
10,000 ph dmg but player has 50 percent bless (50 / 100 = .5)
10,000 * .5 = 5,000
therefore half the damage
the quick fix people are suggesting (without correcting the actual damage calculations in the source) is to raise the 100 to something higher, thus making bless/dodge and other stats more effective.
10,000 ph dmg again 50 percent bless (50 / 160 = .3125)
10,000 * .3125 = 3125 effectively reducing damage.
|
|
|
01/13/2010, 08:52
|
#38
|
elite*gold: 0
Join Date: Aug 2008
Posts: 272
Received Thanks: 61
|
this damage is for all classes? your for une class have a calculation damage?
|
|
|
01/13/2010, 08:58
|
#39
|
elite*gold: 21
Join Date: Jul 2005
Posts: 9,193
Received Thanks: 5,376
|
Classes do not have their own damage type. The way this is working it will lower all damage.
Physical and magic damage will be lowered through blessed gear
Magic damage will be further lowered through Mdef1 (percentage mdef)
Archer damage will be lowered through dodge.
|
|
|
01/13/2010, 09:15
|
#40
|
elite*gold: 0
Join Date: Feb 2007
Posts: 114
Received Thanks: 25
|
Wow guy's thanks i understand now ^_^
Another question i added level 137-150 and i dont think it worked can someone tell me if i did it right?
Quote:
}
public static void LoadLevelExp()
{
LevelExp = new ulong[150];
LevelExp[0] = 0;
FileStream FS = new FileStream(@"C:\OldCODB\ExpNeed.dat", FileMode.Open);
BinaryReader BR = new BinaryReader(FS);
for (byte i = 1; i < 130; i++)
LevelExp[i] = BR.ReadUInt32();
LevelExp[130] = 8589148160;
LevelExp[131] = 25767444480;
LevelExp[132] = 77302333440;
LevelExp[133] = 231907000320;
LevelExp[134] = 347860500480;
LevelExp[135] = 521790750720;
LevelExp[136] = 782686126080;
LevelExp[137] = 792686126080;
LevelExp[138] = 802686126080;
LevelExp[139] = 822686126080;
LevelExp[140] = 842686126080;
LevelExp[141] = 882686126080;
LevelExp[142] = 922686126080;
LevelExp[143] = 942686126080;
LevelExp[144] = 952686126080;
LevelExp[145] = 972686126080;
LevelExp[146] = 982686126080;
LevelExp[147] = 1002686126080;
LevelExp[148] = 1022686126080;
LevelExp[149] = 1082686126080;
BR.Close();
FS.Close();
}
|
I changed/added the stuff in red It doesn't seem to be working...I went changed my level to 137 and tryed leveling for about 10 minutes and dint level?
Can someone help me with this problem THANKS!!!!!!!
|
|
|
01/13/2010, 09:18
|
#41
|
elite*gold: 21
Join Date: Jul 2005
Posts: 9,193
Received Thanks: 5,376
|
Couple things: Why did you change the LevelExp = new ulong[150];
Don't think that needs to be changed
#2: not added new levels before but wouldn't you need to modify client side also?
I'd suggest searching as I know levels past 130 have been released for sources before. See what those threads have to say.
|
|
|
01/13/2010, 09:18
|
#42
|
elite*gold: 0
Join Date: Aug 2008
Posts: 272
Received Thanks: 61
|
if i up the dodge archer get low damage?
|
|
|
01/13/2010, 09:49
|
#43
|
elite*gold: 0
Join Date: Feb 2007
Posts: 114
Received Thanks: 25
|
Quote:
Originally Posted by pro4never
Couple things: Why did you change the LevelExp = new ulong[150];
Don't think that needs to be changed
#2: not added new levels before but wouldn't you need to modify client side also?
I'd suggest searching as I know levels past 130 have been released for sources before. See what those threads have to say.
|
Alright thanks
I changed LevelExp=new ulong[150]; because i got a error if i left it 137
Also ever since i added those levels i got these errors now ;/ help?
Quote:
Error 1 The type or namespace name 'Skill' does not exist in the namespace 'NewestCOServer.Game' (are you missing an assembly reference?) C:\rikardo updated\Database.cs 38 18 NewestCOServer
Error 2 The type or namespace name 'Skill' does not exist in the namespace 'NewestCOServer.Game' (are you missing an assembly reference?) C:\rikardo updated\Database.cs 38 37 NewestCOServer
Error 3 The type or namespace name 'NPC' does not exist in the namespace 'NewestCOServer.Game' (are you missing an assembly reference?) C:\rikardo updated\Database.cs 479 22 NewestCOServer
Error 4 The type or namespace name 'NPC' does not exist in the namespace 'NewestCOServer.Game' (are you missing an assembly reference?) C:\rikardo updated\Database.cs 479 54 NewestCOServer
Error 5 The type or namespace name 'DMap' could not be found (are you missing a using directive or an assembly reference?) C:\rikardo updated\Database.cs 514 17 NewestCOServer
Error 6 The type or namespace name 'DMap' could not be found (are you missing a using directive or an assembly reference?) C:\rikardo updated\Database.cs 514 27 NewestCOServer
Error 7 The name 'DMaps' does not exist in the current context C:\rikardo updated\Database.cs 514 32 NewestCOServer
|
|
|
|
01/13/2010, 09:51
|
#44
|
elite*gold: 20
Join Date: Mar 2006
Posts: 6,125
Received Thanks: 2,518
|
If your looking for help and support for 5165 in general there is a huge thread in the guide section, this topic is just for attack/damage calculation discussion.
|
|
|
01/13/2010, 10:13
|
#45
|
elite*gold: 0
Join Date: May 2006
Posts: 52
Received Thanks: 25
|
Quote:
Originally Posted by ramix
if i up the dodge archer get low damage?
|
to
i should search today a see how the arrows work .. did u try and see if there is a diference betwen normal attak and scatter attak dmg .. if in scater attak dmg the damage is les then on the skills all things are ok and u dind modify the dmg on normal attak
PS are u testing DMG on moobs or on another character
|
|
|
|
|
Similar Threads
|
5165 Damage Calculation
03/07/2010 - CO2 Private Server - 7 Replies
Fixes around the forum are useless and no where near good enough if you want to make a server public. Someone should go ahead and fix it then release their code. Get some thanks and make everyone happy. I wont because I can't, I would if i could. ^^
|
5165 Damage issues
02/06/2010 - CO2 Private Server - 1 Replies
Okay, this is odd. Somehow my lvl 100 naked ninja one hits my 2nd rb PM with over 17k hp, yet... he does only 52 damage. WTF. How can i change this damage? Thanks in advance!
|
Simple Handle Damage for 5165
01/31/2010 - CO2 Private Server - 0 Replies
Sry with my english,
Here it is simple method for handle damage for 5165 source, couse i hve trouble with damage, all player can hit by 1.
go to Character.cs after TakeAttack method i create new method, like this :
public void ExtraDefence(ushort pDef) {
pDef = (ushort)(this.Level * 100);//<-----put every value u need
if (this.Reborns == 1) {
pDef = (ushort)(pDef + ((pDef * 30) / 100));
|
Is it possible to change damage of critical?
07/15/2008 - Kal Online - 3 Replies
I seen today that someone used a hack and gm said it was a crithacker and its also a knight so any ideas of hack that could have done this? And is there any other good Kal Online hacking site beside this one?
|
All times are GMT +2. The time now is 12:07.
|
|