Skills:
Not sure if i should because I recoded the Attack system completely
-------------------------------------------------------
Items:
Life Fruits
Add these 2 cases in Handlers/UseItem.cs
Life Fruit Basket:
Life Fruit:
Life Fruit Basket:
Code:
case 720013: // Life Fruit Basket
{
if (CSocket.Client.Inventory.Count <= 30)
{
for (int i = 0; i < 10; i++)
{
Struct.ItemInfo SubItem = new Struct.ItemInfo();
SubItem.Bless = SubItem.Enchant = SubItem.Position =
SubItem.Color = SubItem.Soc1 = SubItem.Soc2 = SubItem.Plus = 0;
SubItem.Dura = 1;
SubItem.ItemID = 723726;
SubItem.UID = Nano.Rand.Next(1, 9999999);
bool created = Database.Database.NewItem(SubItem, CSocket);
while (!created)
{
SubItem.UID = Nano.Rand.Next(1, 9999999);
created = Database.Database.NewItem(SubItem, CSocket);
}
CSocket.Client.Inventory.Add(SubItem.UID, SubItem);
CSocket.Send(ConquerPacket.ItemInfo(SubItem.UID, SubItem.ItemID, SubItem.Plus, SubItem.Bless, SubItem.Enchant, SubItem.Soc1, SubItem.Soc2, SubItem.Dura, SubItem.MaxDura, SubItem.Suspicious, SubItem.Free, SubItem.Locked, SubItem.Progress, SubItem.SocketProgress, SubItem.Position, SubItem.Color));
}
CSocket.Send(ConquerPacket.Chat(0, "SYSTEM", CSocket.Client.Name, "You used a LifeFruitBasket, you now have 10 LifeFruit's.", Struct.ChatType.Top));
}
else
{
Delete = false;
CSocket.Send(ConquerPacket.Chat(0, "SYSTEM", CSocket.Client.Name, "Not enough space in inventory.", Struct.ChatType.Top));
}
break;
}
Code:
case 723726: // Life Fruit
{
int AddHP = CSocket.Client.MaxHP;
if (CSocket.Client.CurrentHP >= CSocket.Client.MaxHP)
{
Delete = false;
break;
}
else
{
if (CSocket.Client.CurrentHP + AddHP > CSocket.Client.MaxHP)
{
Interlocked.Add(ref CSocket.Client.CurrentHP, (CSocket.Client.MaxHP - CSocket.Client.CurrentHP));
CSocket.Send(ConquerPacket.Status(CSocket, 2, CSocket.Client.CurrentHP, Struct.StatusTypes.Hp));
}
else
{
Interlocked.Add(ref CSocket.Client.CurrentHP, AddHP);
CSocket.Send(ConquerPacket.Status(CSocket, 2, CSocket.Client.CurrentHP, Struct.StatusTypes.Hp));
}
}
break;
}
-------------------------------------------------------
Features:
2 & 5x Exp Pots
First add the Items to Handlers/UseItem.cs
Then add this any where in Entities/Characters.cs
Then make a new file in the Entities folder called Varies.cs and add this
In Struct/StatusType.cs
Replace all with
And finally go into Calculations/Exp.cs
Under
Add
Code:
#region ExpPotion
case 720394:
{
CSocket.Client.ExpPotion.AvailableFor = 7200;
CSocket.Client.ExpPotion.Rate = 5;
CSocket.Client.ExpPotion.LastCheck = DateTime.Now;
CSocket.Send(ConquerPacket.Status(CSocket, 2, CSocket.Client.ExpPotion.AvailableFor, Struct.StatusTypes.ExpTimer));
}
break;
case 723017:
{
CSocket.Client.ExpPotion.AvailableFor = 3600;
CSocket.Client.ExpPotion.Rate = 2;
CSocket.Client.ExpPotion.LastCheck = DateTime.Now;
CSocket.Send(ConquerPacket.Status(CSocket, 2, CSocket.Client.ExpPotion.AvailableFor, Struct.StatusTypes.ExpTimer));
}
break;
#endregion
Code:
public ExpPotion ExpPotion = new ExpPotion();
Code:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Timers;
using CoEmu_v2_GameServer.Connections;
using CoEmu_v2_GameServer.Structs;
using CoEmu_v2_GameServer.Database;
namespace CoEmu_v2_GameServer.Entities
{
public struct ExpPotion
{
public ushort AvailableFor;
public byte Rate;
public DateTime LastCheck;
}
}
Replace all with
Code:
public enum StatusTypes : int
{
Hp = 0, // ^ switch 2
MaxHp = 1,// ^ switch 2
Mp = 2,// ^ switch 2
InvMoney = 4,// ?
Exp = 5,// ?
PKPoints = 6,//switch 2
Job = 7,// ?
// Modifier = 8,
Stamina = 8,//switch 2
AttributePoints = 10,// ?
Model = 11,// switch 2
Level = 12,//switch 2
ManaStatPoints = 13,//switch 2
VitalityStatPoints = 14,//switch 2
StrengthStatPoints = 15,//switch 2
DexterityStatPoints = 16,//switch 2
ExpTimer = 18,// ?
BlueTimer = 20,// ?
BlueTimer2 = 21,// ?
StatusEffect = 25,// switch 2
HairStyle = 26,// switch 2
LuckyTimeTimer = 28,// ?
InvCPoints = 29,// ?
XpTimer = 31,
CursedTimer = 20,
RebornCount = 22,
MentorBattlePower = 36,
QuizShowPoints = 40
}
Under
Code:
public static void GiveExp(ClientSocket CSocket, Monster Attacked, int Damage, bool kill)
Code:
public static void GiveExp(ClientSocket CSocket, int Exps)
{
if (Exps > 0)
{
Exps *= Nano.EXP_MULTIPLER;
if (CSocket.Client.Reborn == 2)
Exps /= 3;
if (CSocket.Client.ExpPotion.AvailableFor > 1)
Exps += CSocket.Client.ExpPotion.Rate;
CSocket.Client.Exp += (ulong)Exps;
if (NeededExp(CSocket.Client.Level) <= CSocket.Client.Exp)
GiveLevel(CSocket);
else //CSocket.Send(ConquerPacket.Exp(CSocket.Client.ID, 5, CSocket.Client.Exp));
CSocket.Send(ConquerPacket.Status(CSocket, 2, CSocket.Client.Exp, Struct.StatusTypes.Exp));
}
}
-------------------------------------------------------
Npc's:
-------------------------------------------------------
Quests:
-------------------------------------------------------
Other:
Client Side Create Character loading bar






