LOTF Bugs

08/18/2009 00:23 TehPwnzor#1
Alright I'm on a journey to make LOTF completely bugless.
I know most of you are gonna say i shouldn't do it or its impossible but whatever.
Can everyone jsut post the lotf bugs they know of so I can attempt to fix them?
08/18/2009 00:44 raidenx123#2
Well do you consider stuff not implented (ex: prayingstone) a bug?

Anywase here are some with original lotf:
Stamina bug (So easy to fix but original lotf doesnt have it)
Not fully complete promo (req and rew items)
Mobs and items can cross boundries (DMaps)
Damage Calculations are not right.

These are off the top of my head and ill post more once you fix them, cause I think you should work on bugs,stability, completing the things added (Promotion,reborning,etc), then adding new things.
08/18/2009 00:56 TehPwnzor#3
im not focused on adding new things
right now my main concern is the magicartisian not upgrading the low level backsword and bracelet lol
08/18/2009 00:58 raidenx123#4
I got a source that has the bracelet working. But not the backsword.
08/18/2009 00:59 TehPwnzor#5
hmmi dun wanna be spoonfed
do you know how the bracelet upgrade is built
08/18/2009 01:03 raidenx123#6
No, im not a coder o.o its friends source....
08/18/2009 01:07 TehPwnzor#7
lol mmk then thanks for listing some bugs though

EDIT: im not implementing praying stones btw
i think HB in co pservs is useless
08/18/2009 02:18 f0am#8
Bugs i fixed... w/ some help from others [ wont say names maybe they dont want names ]

- DMaps
- Bracelet & Backsword upgrading
- Lvl 1 quality upgrade
- Promo [ DID NOT DO YET, im not on npcs yet ]
- stamina duh :D , char deleteion
- reborn [ correct skills, not fully done.. wont do second rb i dun like it ]
- and a few other bugs , you know the little ones =]]

im on damage calculations and a few bugs here and there =]] I asked my friend to do the calculations for me so once hes done it will be done .. no im just lazy thats why im not doing it :D
08/18/2009 05:48 Santa#9
Quote:
Originally Posted by f0am View Post
Bugs i fixed... w/ some help from others [ wont say names maybe they dont want names ]

- DMaps
- Bracelet & Backsword upgrading
- Lvl 1 quality upgrade
- Promo [ DID NOT DO YET, im not on npcs yet ]
- stamina duh :D , char deleteion
- reborn [ correct skills, not fully done.. wont do second rb i dun like it ]
- and a few other bugs , you know the little ones =]]

im on damage calculations and a few bugs here and there =]] I asked my friend to do the calculations for me so once hes done it will be done .. no im just lazy thats why im not doing it :D
OK. This is like contradicting its self, you say "THINGS I HAVE COMPLETED:
PROMO [did not do]" Thats funny.
08/18/2009 05:50 TehPwnzor#10
lol thats what i noticed
well tahts what im gonna do right now
completely recode promotion
08/18/2009 07:33 andyd123#11
For damage calculations, the complete and 100% correct damage calcs(minus potency) are in the Coemu source code.
08/18/2009 12:56 f0am#12
actaully im not contrad w.e myself im saying that because arco knows i wil lgvie him it .
08/18/2009 15:23 blade911#13
Quote:
Originally Posted by andyd123 View Post
For damage calculations, the complete and 100% correct damage calcs(minus potency) are in the Coemu source code.
Could you tell me where :)? I can probably find it easily but oh well if you answer you get a thanks lol.
08/18/2009 15:36 f0am#14
Quote:
Originally Posted by andyd123 View Post
For damage calculations, the complete and 100% correct damage calcs(minus potency) are in the Coemu source code.
:o oh really im going to have to check that out :D
08/18/2009 15:47 andyd123#15
Sure.
Melee:
Code:
if(AType == 2)
			{
				int Damage = Nano.Rand.Next(Attacker.MinAttack, Attacker.MaxAttack);
				Damage -= Attacked.Defense;
				if(Attacked.Reborn == 1)
				{
					Damage = (int)Math.Floor(Damage*.7);
				}
				else if(Attacked.Reborn == 2)
				{
					Damage = (int)Math.Floor(Damage*.7);
					if(Attacker.Reborn < 2)
						Damage = (int)Math.Floor(Damage*.5);
				}
				double Tort = 0;
				Tort += Attacked.NTG*0.02;
				Tort += Attacked.RTG*0.04;
				Tort += Attacked.STG*0.06;
				Damage = (int)Math.Floor(Damage*(1-Tort));
				if(Attacked.Bless > 0)
				{
					Damage = (int)Math.Floor(Damage * (1 - (Attacked.Bless*0.01)));
				}
				//TODO: Superman
				if(Damage < 0)
					Damage = 1;
				if((Attacked.isGM || Attacked.isPM) && Attacked.Invincible)
					Damage = 0;
				return Damage;
			}
Magic:
Code:
else if(AType == 21)
			{
				int Damage = AddedMagicDamage(SkillID, SkillLevel);
				Damage += Attacker.MagicAttack;
				if(Attacked.MagicDefense > 0)
				{
					double MDef = 1;
					if(Attacked.MagicDefense < 90)
					{
						MDef = (Attacked.MagicDefense * 0.01);
					}
					else
					{
						MDef = (90 * 0.01);
					}
					Damage = (int)Math.Floor(Damage - (Damage*MDef));
				}
				Damage = Convert.ToInt32(Damage*0.75);
				if(Attacked.Reborn == 1)
				{
					Damage = (int)Math.Floor(Damage*.7);
				}
				else if(Attacked.Reborn == 2)
				{
					Damage = (int)Math.Floor(Damage*.7);
					if(Attacker.Reborn < 2)
						Damage = (int)Math.Floor(Damage*.5);
				}
				Damage += Attacker.BonusMagicAttack;
				Damage -= Attacked.BonusMagicDefense;
				double Tort = 0;
				Tort += Attacked.NTG*0.02;
				Tort += Attacked.RTG*0.04;
				Tort += Attacked.STG*0.06;
				Damage = (int)Math.Floor(Damage*(1-Tort));
				if(Attacked.Bless > 0)
				{
					Damage = (int)Math.Floor(Damage * (1 - (Attacked.Bless*0.01)));
				}
				if(Damage < 0)
					Damage = 1;
				if((Attacked.isGM || Attacked.isPM) && Attacked.Invincible)
					Damage = 0;
				return Damage;
			}
			else if(AType == 25)
			{
				int Damage = Nano.Rand.Next(Attacker.MinAttack, Attacker.MaxAttack);
				if(Attacked.Dodge > 0)
				{
					double Dodge = 0;
					if(Attacked.Dodge <= 94)
						Dodge = Attacked.Dodge*0.01;
					else
						Dodge = 94*0.01;
					Damage = (int)Math.Floor(Damage - (Damage*Dodge));
				}
				if(Attacked.Reborn == 1)
				{
					Damage = (int)Math.Floor(Damage*.7);
				}
				else if(Attacked.Reborn == 2)
				{
					Damage = (int)Math.Floor(Damage*.7);
					if(Attacker.Reborn < 2)
						Damage = (int)Math.Floor(Damage*.5);
				}
				Damage += Attacker.BonusMagicAttack;
				Damage -= Attacked.BonusMagicDefense;
				double Tort = 0;
				Tort += Attacked.NTG*0.02;
				Tort += Attacked.RTG*0.04;
				Tort += Attacked.STG*0.06;
				Damage = (int)Math.Floor(Damage*(1-Tort));
				if(Attacked.Bless > 0)
				{
					Damage = (int)Math.Floor(Damage * (1 - (Attacked.Bless*0.01)));
				}
				if(Damage < 0)
					Damage = 1;
				if((Attacked.isGM || Attacked.isPM) && Attacked.Invincible)
					Damage = 0;
				return Damage;
			}
Archer:
Code:
else if(AType == 25)
			{
				int Damage = Nano.Rand.Next(Attacker.MinAttack, Attacker.MaxAttack);
				if(Attacked.Dodge > 0)
				{
					double Dodge = 0;
					if(Attacked.Dodge <= 94)
						Dodge = Attacked.Dodge*0.01;
					else
						Dodge = 94*0.01;
					Damage = (int)Math.Floor(Damage - (Damage*Dodge));
				}
				if(Attacked.Reborn == 1)
				{
					Damage = (int)Math.Floor(Damage*.7);
				}
				else if(Attacked.Reborn == 2)
				{
					Damage = (int)Math.Floor(Damage*.7);
					if(Attacker.Reborn < 2)
						Damage = (int)Math.Floor(Damage*.5);
				}
				Damage += Attacker.BonusMagicAttack;
				Damage -= Attacked.BonusMagicDefense;
				double Tort = 0;
				Tort += Attacked.NTG*0.02;
				Tort += Attacked.RTG*0.04;
				Tort += Attacked.STG*0.06;
				Damage = (int)Math.Floor(Damage*(1-Tort));
				if(Attacked.Bless > 0)
				{
					Damage = (int)Math.Floor(Damage * (1 - (Attacked.Bless*0.01)));
				}
				if(Damage < 0)
					Damage = 1;
				if((Attacked.isGM || Attacked.isPM) && Attacked.Invincible)
					Damage = 0;
				return Damage;
			}
All found inside Calculations\Damage.cs