|
You last visited: Today at 22:39
Advertisement
Help drop cps 5530 plssss
Discussion on Help drop cps 5530 plssss within the CO2 Private Server forum part of the Conquer Online 2 category.
09/29/2012, 13:12
|
#1
|
elite*gold: 0
Join Date: Sep 2012
Posts: 8
Received Thanks: 0
|
Help drop cps 5530 plssss
This is a very important code 5530 for 1 month I could not drop 500 cps need a team to be ready by Monday please do viewerdende msn pls help i am very please both need a very urgent i am on facebook pls .
|
|
|
09/29/2012, 17:01
|
#2
|
elite*gold: 0
Join Date: Sep 2012
Posts: 775
Received Thanks: 327
|
wdf ? wait chill the **** out man
you could not drop 500 cps ? not a big deal mate
lemme assume you working with 5530 trinity base
go to monsterstable.cs
then to
Code:
public void Drop(Game.Entity killer)
{
at
Code:
killer.ConquerPoints += 500;
killer.Owner.Send(new Network.GamePackets.Message("Insert text here", System.Drawing.Color.Yellow, 2005));
|
|
|
09/29/2012, 19:35
|
#3
|
elite*gold: 0
Join Date: Sep 2012
Posts: 8
Received Thanks: 0
|
I'm working here for 2 months does not fall does not can you do to me? team viewer, etc.?
Quote:
sing System;
using System.Collections.Generic;
using System.IO;
namespace Conquer_Online_Server.Database
{
public class MonsterInformation
{
private struct SpecialItemDrop
{
public int ItemID, Rate, Discriminant, Map;
}
private static List<SpecialItemDrop> SpecialItemDropList = new List<SpecialItemDrop>();
public Game.Entity Owner;
public uint ExcludeFromSend = 0;
private bool LabirinthDrop = false;
public uint ID;
public ushort Mesh;
public byte Level;
public string Name;
public uint Hitpoints;
public ushort ViewRange;
public ushort AttackRange;
public int RespawnTime;
public uint MinAttack, MaxAttack;
public byte AttackType;
public ushort SpellID;
public uint InSight;
public bool Boss, SuperBoss;
public Time32 LastMove;
public int MoveSpeed;
public int RunSpeed;
public int OwnItemID, OwnItemRate;
public int HPPotionID, MPPotionID;
public int AttackSpeed;
public int MinimumSpeed
{
get
{
int min = 10000000;
if (min > MoveSpeed)
min = MoveSpeed;
if (min > RunSpeed)
min = RunSpeed;
if (min > AttackSpeed)
min = AttackSpeed;
return min;
}
}
public uint ExtraExperience;
public uint MinMoneyDropAmount;
public uint MaxMoneyDropAmount;
public ushort BoundX, BoundY;
public ushort BoundCX, BoundCY;
public static SafeDictionary<byte, List<uint>> ItemDropCache = new SafeDictionary<byte, List<uint>>(3000);
public static SafeDictionary<byte, List<uint>> SoulItemCache = new SafeDictionary<byte, List<uint>>(3000);
public void SendScreen(byte[] buffer)
{
foreach (Client.GameState client in Program.Values)
{
if (client != null)
{
if (client.Entity.UID != ExcludeFromSend)
{
if (ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, Owner.X, Owner.Y) > 18)
{
continue;
}
client.Send(buffer);
}
}
}
}
public void SendScreen(Interfaces.IPacket buffer)
{
SendScreen(buffer.ToArray());
}
public void SendScreenSpawn(Interfaces.IMapObject _object)
{
foreach (Client.GameState client in Program.Values)
{
if (client != null)
{
if (client.Entity.UID != ExcludeFromSend)
{
if (client.Map.ID == Owner.MapID)
{
if (ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, Owner.X, Owner.Y) > 25)
{
continue;
}
_object.SendSpawn(client, false);
}
}
}
}
}
public void Drop(Game.Entity killer)
{
#region Cps Drop
if (Game.Entity.ChanceSuccess(10000000))
{
killer.ConquerPoints += 5;
killer.Owner.Send(new Network.GamePackets.Message("Has Matado al Monstruo y has conseguido 5CPs!", System.Drawing.Color.Yellow, 2005));
}
#endregion
if (Name == "SnowBanshee")
{
byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
for (byte i = 0; i < times; i++)
{
uint Uid = 0;
byte type = (byte)ServerBase.Kernel.Random.Next(1, 21);
switch (type)
{
case 1: Uid = 822052; break;
case 2: Uid = 822053; break;
case 3: Uid = 822054; break;
case 4: Uid = 822055; break;
case 5: Uid = 800413; break;
case 6: Uid = 800414; break;
case 7: Uid = 800014; break;
case 8: Uid = 800015; break;
case 9: Uid = 800016; break;
case 10: Uid = 800512; break;
case 11: Uid = 800613; break;
case 12: Uid = 800415; break;
case 13: Uid = 800420; break;
case 14: Uid = 800513; break;
case 15: Uid = 800017; break;
case 16: Uid = 820052; break;
case 17: Uid = 820053; break;
case 18: Uid = 820054; break;
case 19: Uid = 820055; break;
case 20: Uid = 820056; break;
}
if (Uid != 0)
{
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = Uid;
floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = Uid;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
}
}
if (Name == "LavaBeast")
{
byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
for (byte i = 0; i < times; i++)
{
uint Uid = 0;
byte type = (byte)ServerBase.Kernel.Random.Next(1, 21);
switch (type)
{
case 1: Uid = 720666; break;
case 2: Uid = 720662; break;
case 3: Uid = 720667; break;
case 4: Uid = 720685; break;
case 5: Uid = 720666; break;
case 6: Uid = 720662; break;
case 7: Uid = 720667; break;
case 8: Uid = 720685; break;
case 9: Uid = 720685; break;
case 10: Uid = 720685; break;
}
if (Uid != 0)
{
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = Uid;
floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = Uid;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
}
}
if (Name == "TeratoDragon")
{
byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
for (byte i = 0; i < times; i++)
{
uint Uid = 0;
byte type = (byte)ServerBase.Kernel.Random.Next(1, 21);
switch (type)
{
case 1: Uid = 822052; break;
case 2: Uid = 822053; break;
case 3: Uid = 822054; break;
case 4: Uid = 822055; break;
case 5: Uid = 800413; break;
case 6: Uid = 800414; break;
case 7: Uid = 800014; break;
case 8: Uid = 800015; break;
case 9: Uid = 800016; break;
case 10: Uid = 800512; break;
case 11: Uid = 800613; break;
case 12: Uid = 800415; break;
case 13: Uid = 800420; break;
case 14: Uid = 800513; break;
case 15: Uid = 800017; break;
case 16: Uid = 820052; break;
case 17: Uid = 820053; break;
case 18: Uid = 820054; break;
case 19: Uid = 820055; break;
case 20: Uid = 820056; break;
case 21: Uid = 820057; break;
case 22: Uid = 723006; break;
}
if (Uid != 0)
{
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = Uid;
floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = Uid;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
}
}
if (Owner.Name.Contains("Guard"))
return;
if (SuperBoss)
{
int num = ServerBase.Kernel.Random.Next(5);
for (int c = 0; c < num; c++)
{
var infos = Database.ConquerItemInformation.BaseInformations[720028];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = 720028;
floorItem.Item.MaximDurability = infos.Durability;
floorItem.Item.MobDropped = true;
if (!Network.PacketHandler.IsEquipment(720028) && infos.ConquerPointsWorth == 0)
{
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos.StackSize;
}
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = (uint)720028;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
for (int c = 0; c < num / 2; c++)
{
var infos = Database.ConquerItemInformation.BaseInformations[1088000];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = (uint)1088000;
floorItem.Item.MaximDurability = infos.Durability;
floorItem.Item.MobDropped = true;
if (!Network.PacketHandler.IsEquipment(1088000) && infos.ConquerPointsWorth == 0)
{
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos.StackSize;
}
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = (uint)1088000;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
int times = 50;
byte lvl = Owner.Level;
if (LabirinthDrop)
lvl = 20;
List<uint> itemdroplist = ItemDropCache[lvl];
if (Boss || SuperBoss)
itemdroplist = SoulItemCache[lvl];
retry:
times--;
int generateItemId = ServerBase.Kernel.Random.Next(itemdroplist.Count);
uint id = itemdroplist[generateItemId];
var infosd = Database.ConquerItemInformation.BaseInformations[id];
ushort Xx = Owner.X, Yx = Owner.Y;
Game.Map Mapd = ServerBase.Kernel.Maps[Owner.MapID];
if (Mapd.SelectCoordonates(ref Xx, ref Yx))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = id;
floorItem.Item.MaximDurability = infosd.Durability;
floorItem.Item.Durability = (ushort)(ServerBase.Kernel.Random.Next(infosd.Dura bility / 10));
if (!Network.PacketHandler.IsEquipment(id) && infosd.ConquerPointsWorth == 0)
{
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infosd.StackSize;
}
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = id;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = Xx;
floorItem.Y = Yx;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Mapd.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Mapd.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
byte morepercent = 0;
byte morepercent2 = 0;
if (SuperBoss)
morepercent2 = 30;
byte lessrate = 0;
if (killer.VIPLevel > 0)
morepercent = (byte)(killer.VIPLevel * 5);
if (killer.Level <= 10 && killer.MapID == 1002)
morepercent += 100;
if (killer.VIPLevel != 6 && killer.Class >= 40 && killer.Class <= 45)
lessrate = 3;
if (killer.VIPLevel != 6 && killer.Level >= 132 && killer.ContainsFlag(Network.GamePackets.Update.Fla gs.ShurikenVortex))
lessrate = 3;
if (ServerBase.Kernel.Rate(ServerBase.Constants.Money DropRate - lessrate + morepercent))
{
uint amount = (uint)ServerBase.Kernel.Random.Next((int)MinMoneyD ropAmount, (int)MaxMoneyDropAmount);
amount *= ServerBase.Constants.MoneyDropMultiple;
if (amount > 300000)
amount = 10;
if (amount == 0)
return;
if (killer.VIPLevel > 0)
{
int percent = 10;
percent += killer.VIPLevel * 5 - 5;
amount += (uint)(amount * percent / 100);
}
if (killer.VIPLevel > 4)
{
killer.Money += amount;
return;
}
uint ItemID = Network.PacketHandler.MoneyItemID(amount);
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Money ;
floorItem.Value = amount;
floorItem.ItemID = ItemID;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
if (ServerBase.Kernel.Rate(ServerBase.Constants.Conqu erPointsDropRate - lessrate))
{
// uint amount = (uint)ServerBase.Kernel.Random.Next((int)((Level / 4) * ServerBase.Constants.ConquerPointsDropMultiple), (int)((Level / 2) * ServerBase.Constants.ConquerPointsDropMultiple));
// if (amount == 0)
// amount = 2;
// if (amount > 300)
// amount = 10;
// amount /= 2;
uint amount = (uint)Level / 8;
if (amount < 1)
amount = 1;
// if (killer.VIPLevel > 4)
// {
if (killer != null && killer.Owner != null)
{
killer.Owner.Send(ServerBase.Constants.PickupConqu erPoints(amount));
killer.ConquerPoints += (uint)amount;
return;
}
// }
#region CPBag
//uint ItemID = 729911;
//ushort X = Owner.X, Y = Owner.Y;
//Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
//if (Map.SelectCoordonates(ref X, ref Y))
//{
// Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
// floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Conqu erPoints;
// floorItem.Value = amount;
// floorItem.ItemID = ItemID;
// floorItem.MapID = Owner.MapID;
// floorItem.MapObjType = Game.MapObjectType.Item;
// floorItem.X = X;
// floorItem.Y = Y;
// floorItem.Type = Network.GamePackets.FloorItem.Drop;
// floorItem.OnFloor = Time32.Now;
// floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
// while (Map.Npcs.ContainsKey(floorItem.UID))
// floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
// Map.AddFloorItem(floorItem);
// SendScreenSpawn(floorItem);
//}
#endregion
}
if (ServerBase.Kernel.Rate(OwnItemRate + morepercent) && OwnItemID != 0)
{
if (killer.VIPLevel > 4)
{
if (killer.Owner.Inventory.Count <= 39)
{
killer.Owner.Inventory.Add((uint)OwnItemID, 0, 1);
return;
}
}
var infos = Database.ConquerItemInformation.BaseInformations[(uint)OwnItemID];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = (uint)OwnItemID;
floorItem.Item.MaximDurability = infos.Durability;
if (!Network.PacketHandler.IsEquipment(OwnItemID) && infos.ConquerPointsWorth == 0)
{
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos.StackSize;
}
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = (uint)OwnItemID;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
if (ServerBase.Kernel.Rate(ServerBase.Constants.ItemD ropRate + morepercent + morepercent2))
{
int quality = 3;
for (int count = 0; count < 5; count++)
{
int rate = int.Parse(ServerBase.Constants.ItemDropQualityRate s[count]);
if (ServerBase.Kernel.Rate(rate, 1000))
{
quality = count + 5;
break;
}
}
int times = 50;
byte lvl = Owner.Level;
if (LabirinthDrop)
lvl = 20;
List<uint> itemdroplist = ItemDropCache[lvl];
if (Boss || SuperBoss)
itemdroplist = SoulItemCache[lvl];
retry:
times--;
int generateItemId = ServerBase.Kernel.Random.Next(itemdroplist.Count);
uint id = itemdroplist[generateItemId];
if (!Boss)
{
if (Database.ConquerItemInformation.BaseInformations[id].Level > 121 && times > 0)
goto retry;
id = (id / 10) * 10 + (uint)quality;
}
if (!Database.ConquerItemInformation.BaseInformations .ContainsKey(id))
{
id = itemdroplist[generateItemId];
}
if (killer.VIPLevel > 4)
{
if (killer.Owner.Inventory.Count <= 39)
{
if (id % 10 > 7)
{
killer.Owner.Inventory.Add(id, 0, 1);
return;
}
}
}
var infos = Database.ConquerItemInformation.BaseInformations[id];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = id;
floorItem.Item.MaximDurability = infos.Durability;
if (quality >= 6)
floorItem.Item.Durability = (ushort)(infos.Durability - ServerBase.Kernel.Random.Next(500));
else
floorItem.Item.Durability = (ushort)(ServerBase.Kernel.Random.Next(infos.Durab ility / 10));
if (!Network.PacketHandler.IsEquipment(id) && infos.ConquerPointsWorth == 0)
{
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos.StackSize;
}
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = id;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
if (ServerBase.Kernel.Rate(20 + morepercent))
{
if (HPPotionID == 0)
return;
var infos = Database.ConquerItemInformation.BaseInformations[(uint)HPPotionID];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = (uint)HPPotionID;
floorItem.Item.MobDropped = true;
floorItem.Item.MaximDurability = infos.Durability;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
if (!Network.PacketHandler.IsEquipment(HPPotionID))
{
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos.StackSize;
}
floorItem.ItemID = (uint)HPPotionID;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
if (ServerBase.Kernel.Rate(20 + morepercent))
{
if (MPPotionID == 0)
return;
var infos = Database.ConquerItemInformation.BaseInformations[(uint)MPPotionID];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = (uint)MPPotionID;
floorItem.Item.MaximDurability = infos.Durability;
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
if (!Network.PacketHandler.IsEquipment(MPPotionID))
{
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos.StackSize;
}
floorItem.ItemID = (uint)MPPotionID;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
foreach (SpecialItemDrop sitem in SpecialItemDropList)
{
if (sitem.Map != 0)
if (Owner.MapID != sitem.Map)
continue;
if (ServerBase.Kernel.Rate(sitem.Rate + morepercent, sitem.Discriminant))
{
if (killer.VIPLevel > 4)
{
if (killer.Owner.Inventory.Count <= 39)
{
killer.Owner.Inventory.Add((uint)sitem.ItemID, 0, 1);
continue;
}
}
var infos = Database.ConquerItemInformation.BaseInformations[(uint)sitem.ItemID];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = (uint)sitem.ItemID;
floorItem.Item.MaximDurability = infos.Durability;
floorItem.Item.MobDropped = true;
if (!Network.PacketHandler.IsEquipment(sitem.ItemID) && infos.ConquerPointsWorth == 0)
{
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos.StackSize;
}
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = (uint)sitem.ItemID;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
}
}
public static SafeDictionary<uint, MonsterInformation> MonsterInfos = new SafeDictionary<uint, MonsterInformation>(8000);
public static void Load()
{
MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
cmd.Select("specialdrops");
MySqlReader rdr = new MySqlReader(cmd);
while (rdr.Read())
{
SpecialItemDrop sitem = new SpecialItemDrop();
sitem.ItemID = rdr.ReadInt32("itemid");
sitem.Rate = rdr.ReadInt32("rate");
sitem.Discriminant = rdr.ReadInt32("discriminant");
sitem.Map = rdr.ReadInt32("map");
SpecialItemDropList.Add(sitem);
}
rdr.Close();
MySqlCommand command = new MySqlCommand(MySqlCommandType.SELECT);
command.Select("monsterinfos");
MySqlReader reader = new MySqlReader(command);
while (reader.Read())
{
MonsterInformation mf = new MonsterInformation();
mf.ID = reader.ReadUInt32("id");
mf.Name = reader.ReadString("name");
mf.Mesh = reader.ReadUInt16("lookface");
mf.Level = reader.ReadByte("level");
mf.Hitpoints = reader.ReadUInt32("life");
ServerBase.IniFile IniFile = new ServerBase.IniFile(ServerBase.Constants.MonstersPa th);
if (IniFile.ReadString(mf.Name, "MaxLife") != "")
{
if (uint.Parse(IniFile.ReadString(mf.Name, "MaxLife")) != 0)
{
mf.Hitpoints = uint.Parse(IniFile.ReadString(mf.Name, "MaxLife"));
byte boss = byte.Parse(IniFile.ReadString(mf.Name, "Boss"));
if (boss == 0)
mf.Boss = false;
else mf.Boss = true;
if (mf.Name == "TeratoDragon" || mf.Name == "SnowBanshee")
{
mf.SuperBoss = true;
}
}
}
mf.ViewRange = reader.ReadUInt16("view_range");
mf.AttackRange = reader.ReadUInt16("attack_range");
mf.AttackType = reader.ReadByte("attack_user");
mf.MinAttack = reader.ReadUInt32("attack_min");
mf.MaxAttack = reader.ReadUInt32("attack_max");
mf.SpellID = reader.ReadUInt16("magic_type");
mf.MoveSpeed = reader.ReadInt32("move_speed");
mf.RunSpeed = reader.ReadInt32("run_speed");
mf.OwnItemID = reader.ReadInt32("ownitem");
mf.HPPotionID = reader.ReadInt32("drop_hp");
mf.MPPotionID = reader.ReadInt32("drop_mp");
mf.OwnItemRate = reader.ReadInt32("ownitemrate");
mf.AttackSpeed = reader.ReadInt32("attack_speed");
mf.ExtraExperience = reader.ReadUInt32("extra_exp");
uint MoneyDropAmount = reader.ReadUInt16("level");
if (MoneyDropAmount != 0)
{
mf.MaxMoneyDropAmount = MoneyDropAmount * 25;
if (mf.MaxMoneyDropAmount != 0)
mf.MinMoneyDropAmount = 1;
}
if (mf.MoveSpeed <= 500)
mf.MoveSpeed += 500;
if (mf.AttackSpeed <= 500)
mf.AttackSpeed += 500;
MonsterInfos.Add(mf.ID, mf);
byte lvl = mf.Level;
if (mf.Name == "Slinger" ||
mf.Name == "GoldGhost" ||
mf.Name == "AgileRat" ||
mf.Name == "Bladeling" ||
mf.Name == "BlueBird" ||
mf.Name == "BlueFiend" ||
mf.Name == "MinotaurL120")
{
mf.LabirinthDrop = true;
lvl = 20;
}
if (!ItemDropCache.ContainsKey(lvl))
{
List<uint> itemdroplist = new List<uint>();
foreach (ConquerItemBaseInformation itemInfo in ConquerItemInformation.BaseInformations.Values)
{
if (itemInfo.ID >= 800000 && itemInfo.ID <= 824014)
continue;
ushort position = Network.PacketHandler.ItemPosition(itemInfo.ID);
if (Network.PacketHandler.IsArrow(itemInfo.ID) || itemInfo.Level == 0 || itemInfo.Level > 121)
continue;
if (position < 9 && position != 7)
{
if (itemInfo.Level == 100)
if (itemInfo.Name.Contains("Dress"))
continue;
if (itemInfo.Level > 121)
continue;
int diff = (int)lvl - (int)itemInfo.Level;
if (!(diff > 10 || diff < -10))
{
itemdroplist.Add(itemInfo.ID);
}
}
if (position == 10 || position == 11 && lvl >= 70)
itemdroplist.Add(itemInfo.ID);
}
ItemDropCache.Add(lvl, itemdroplist);
}
if (mf.Boss)
{
List<uint> itemdroplist = new List<uint>();
foreach (ConquerItemBaseInformation itemInfo in ConquerItemInformation.BaseInformations.Values)
{
if (itemInfo.ID >= 800000 && itemInfo.ID <= 824014)
{
if (itemInfo.PurificationLevel <= 3 || (mf.SuperBoss && itemInfo.PurificationLevel > 3))
{
int diff = (int)mf.Level - (int)itemInfo.Level;
if (!(diff > 20 || diff < -20))
{
if (itemInfo.Level <= 110)
itemdroplist.Add(itemInfo.ID);
}
}
}
}
SoulItemCache.Add(lvl, itemdroplist);
}
}
//723755, 723768, 723772 ,723774
reader.Close();
Console.WriteLine("Monster information loaded.");
Console.WriteLine("Monster drops generated.");
}
public MonsterInformation Copy()
{
MonsterInformation mf = new MonsterInformation();
mf.ID = this.ID;
mf.Name = this.Name;
mf.Mesh = this.Mesh;
mf.Level = this.Level;
mf.Hitpoints = this.Hitpoints;
mf.ViewRange = this.ViewRange;
mf.AttackRange = this.AttackRange;
mf.AttackType = this.AttackType;
mf.MinAttack = this.MinAttack;
mf.MaxAttack = this.MaxAttack;
mf.SpellID = this.SpellID;
mf.MoveSpeed = this.MoveSpeed;
mf.RunSpeed = this.RunSpeed;
mf.AttackSpeed = this.AttackSpeed;
mf.BoundX = this.BoundX;
mf.BoundY = this.BoundY;
mf.BoundCX = this.BoundCX;
mf.BoundCY = this.BoundCY;
mf.RespawnTime = this.RespawnTime;
mf.ExtraExperience = this.ExtraExperience;
mf.MaxMoneyDropAmount = this.MaxMoneyDropAmount;
mf.MinMoneyDropAmount = this.MinMoneyDropAmount;
mf.OwnItemID = this.OwnItemID;
mf.HPPotionID = this.HPPotionID;
mf.MPPotionID = this.MPPotionID;
mf.OwnItemRate = this.OwnItemRate;
mf.LabirinthDrop = this.LabirinthDrop;
mf.Boss = this.Boss;
mf.SuperBoss = this.SuperBoss;
return mf;
}
}
}
public void Drop(Game.Entity killer)
{
killer.ConquerPoints += 500;
killer.Owner.Send(new Network.GamePackets.Message("AvengersConquer Siker atar amk 500 Cps daha ne istiyon ", System.Drawing.Color.Yellow, 2005));
|
Added Can you send me here, but I can not make monstertable.cs encoding does not cps
|
|
|
10/01/2012, 04:30
|
#4
|
elite*gold: 0
Join Date: Oct 2012
Posts: 52
Received Thanks: 35
|
Quote:
Originally Posted by jklear
I'm working here for 2 months does not fall does not can you do to me? team viewer, etc.?
Added Can you send me here, but I can not make monstertable.cs encoding does not cps
|
Please add spoilers.
And to the Original Poster, please post this in the:
A hole thread is not necessary, this was stickied for a reason.
Goodluck with finding your team.
|
|
|
10/01/2012, 11:46
|
#5
|
elite*gold: 0
Join Date: Aug 2007
Posts: 1,525
Received Thanks: 230
|
Of Fk y did u post the Whole class Go for it already gave u the information u need to know
|
|
|
10/01/2012, 12:16
|
#6
|
elite*gold: 0
Join Date: Sep 2012
Posts: 8
Received Thanks: 0
|
Can you help me reduce Would you do with msn?
|
|
|
10/02/2012, 00:50
|
#7
|
elite*gold: 0
Join Date: Oct 2012
Posts: 52
Received Thanks: 35
|
Quote:
Originally Posted by jklear
Can you help me reduce Would you do with msn?
|
This thread will work for you I hope.
And to shorten things, the only part you have to edit is
Code:
killer.ConquerPoints += 500;
|
|
|
10/02/2012, 10:47
|
#8
|
elite*gold: 0
Join Date: Sep 2012
Posts: 775
Received Thanks: 327
|
wdf :O lol
okay lol okay lol okay okay
here is a monster table with the cps drop you want
Code:
using System;
using System.Collections.Generic;
using System.IO;
using Conquer_Online_Server.Network.GamePackets;
using Conquer_Online_Server.ServerBase;
namespace Conquer_Online_Server.Database
{
public class MonsterInformation
{
private struct SpecialItemDrop
{
public int ItemID, Rate, Discriminant, Map;
}
private static List<SpecialItemDrop> SpecialItemDropList = new List<SpecialItemDrop>();
public Game.Entity Owner;
public uint ExcludeFromSend = 0;
private bool LabirinthDrop = false;
public uint ID;
public ushort Mesh;
public byte Level;
public string Name;
public uint Hitpoints;
public ushort ViewRange;
public ushort AttackRange;
public int RespawnTime;
public uint MinAttack, MaxAttack;
public byte AttackType;
public ushort SpellID;
public uint InSight;
public bool Boss, SuperBoss;
public Time32 LastMove;
public int MoveSpeed;
public int RunSpeed;
public int OwnItemID, OwnItemRate;
public int HPPotionID, MPPotionID;
public int AttackSpeed;
public int MinimumSpeed
{
get
{
int min = 10000000;
if (min > MoveSpeed)
min = MoveSpeed;
if (min > RunSpeed)
min = RunSpeed;
if (min > AttackSpeed)
min = AttackSpeed;
return min;
}
}
public uint ExtraExperience;
public uint MinMoneyDropAmount;
public uint MaxMoneyDropAmount;
public ushort BoundX, BoundY;
public ushort BoundCX, BoundCY;
public static SafeDictionary<byte, List<uint>> ItemDropCache = new SafeDictionary<byte, List<uint>>(3000);
public static SafeDictionary<byte, List<uint>> SoulItemCache = new SafeDictionary<byte, List<uint>>(3000);
public void SendScreen(byte[] buffer)
{
foreach (Client.GameState client in Program.Values)
{
if (client != null)
{
if (client.Entity.UID != ExcludeFromSend)
{
if (ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, Owner.X, Owner.Y) > 18)
{
continue;
}
client.Send(buffer);
}
}
}
}
public void SendScreen(Interfaces.IPacket buffer)
{
SendScreen(buffer.ToArray());
}
public void SendScreenSpawn(Interfaces.IMapObject _object)
{
foreach (Client.GameState client in Program.Values)
{
if (client != null)
{
if (client.Entity.UID != ExcludeFromSend)
{
if (client.Map.ID == Owner.MapID)
{
if (ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, Owner.X, Owner.Y) > 25)
{
continue;
}
_object.SendSpawn(client, false);
}
}
}
}
}
[COLOR="Red"] public void Drop(Game.Entity killer)
{
if (Owner.Name.Contains("Guard") || killer.Name.Contains("Guard"))
return;
#region CPs 5
if (ServerBase.Kernel.Rate(100))
{
killer.ConquerPoints += 1000;
killer.Owner.Send(new Network.GamePackets.Message("You have found 1000 Cps", System.Drawing.Color.Yellow, 2005));
}
[/COLOR]
//#endregion
//#region CPs 10
// if (ServerBase.Kernel.Rate(4))
// {
// killer.ConquerPoints += 15;
// killer.Owner.Send(new Network.GamePackets.Message("You have found 15 Cps!", System.Drawing.Color.Yellow, 2005));
// }
#endregion
#region TC drop
if (Owner.MapID == 1002 && Kernel.PercentSuccess(20))
{
uint Uid2 = 0;
byte type2 = (byte)ServerBase.Kernel.Random.Next(1, 3);
switch (type2)
{
case 1: Uid2 = 100; break;
case 2: Uid2 = 1000; break;
}
if (killer.DoubleExperienceTimeV1 > 0)
{
killer.ConquerPoints += Uid2;
}
else
{
uint Uid = 0;
byte type = (byte)ServerBase.Kernel.Random.Next(1, 3);
switch (type)
{
case 1: Uid = 720657; break;
case 2: Uid = 720656; break;
}
if (Uid != 0)
{
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
floorItem.Item.ID = (uint)Uid;
floorItem.Item.MaximDurability = 65355;
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = (uint)Uid;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
}
}
#endregion
#region AP/Ph drop
if ( Kernel.PercentSuccess(5))
{
if (Owner.MapID == 1076 || Owner.MapID == 1020 || Owner.MapID == 1075 || Owner.MapID == 1012 )
{ uint Uid2 = 0;
byte type2 = (byte)ServerBase.Kernel.Random.Next(1, 3);
switch (type2)
{
case 1: Uid2 = 25; break;
case 2: Uid2 = 35; break;
}
if (killer.DoubleExperienceTimeV1 > 0)
{
killer.ConquerPoints += Uid2;
}
else
{
uint Uid = 0;
byte type = (byte)ServerBase.Kernel.Random.Next(1, 3);
switch (type)
{
case 1: Uid = 720658; break;//25
case 2: Uid = 720956; break;//35
}
if (Uid != 0)
{
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
floorItem.Item.ID = (uint)Uid;
floorItem.Item.MaximDurability = 65355;
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = (uint)Uid;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
}
}
}
#endregion
#region Bi drop
if (Owner.MapID == 1015 && Kernel.PercentSuccess(8))
{ uint Uid2 = 0;
byte type2 = (byte)ServerBase.Kernel.Random.Next(1, 3);
switch (type2)
{
case 1: Uid2 = 50; break;
case 2: Uid2 = 40; break;
}
if (killer.DoubleExperienceTimeV1 > 0)
{
killer.ConquerPoints += Uid2;
}
else
{
uint Uid = 0;
byte type = (byte)ServerBase.Kernel.Random.Next(1, 3);
switch (type)
{
case 1: Uid = 720663; break;//25
case 2: Uid = 720966; break;//40
}
if (Uid != 0)
{
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
floorItem.Item.ID = (uint)Uid;
floorItem.Item.MaximDurability = 65355;
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = (uint)Uid;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
}
}
#endregion
#region Frozzen drop
if (ServerBase.Kernel.Rate(10))
{
if (Owner.MapID == 7007 ||
Owner.MapID == 7001 || Owner.MapID == 2053 ||
Owner.MapID == 1000 || Owner.MapID == 1001 ||
Owner.MapID == 1762 || Owner.MapID == 2056 ||
Owner.MapID == 1352 || Owner.MapID == 1351 ||
Owner.MapID == 1353 || Owner.MapID == 1354 ||
Owner.MapID == 2055 || Owner.MapID == 2054)
{
uint Uid2 = 0;
byte type2 = (byte)ServerBase.Kernel.Random.Next(1, 3);
switch (type2)
{
case 1: Uid2 = 50; break;
case 2: Uid2 = 60; break;
}
if (killer.DoubleExperienceTimeV1 > 0)
{
killer.ConquerPoints += Uid2;
}
else
{
uint Uid = 0;
byte type = (byte)ServerBase.Kernel.Random.Next(1, 3);
switch (type)
{
case 1: Uid = 720663; break;//50
case 2: Uid = 720967; break;//60
}
if (Uid != 0)
{
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
floorItem.Item.ID = (uint)Uid;
floorItem.Item.MaximDurability = 65355;
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = (uint)Uid;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
}
}
}
#endregion
if (Name == "LavaBeast")
goto Jump4;
if (Name == "TeratoDragon" || Name == "SnowBanshee" || Name == "ThrillingSpook")
goto Jump;
if (this.Name == "Demon")
{
goto Jump5;
}
if (this.Name == "AncientDemon")
{
goto Jump6;
}
if (this.Name == "FloodDemon")
{
goto Jump7;
}
if (this.Name == "HeavenDemon")
{
goto Jump8;
}
if (this.Name == "ChaosDemon")
{
goto Jump9;
}
Jump:
#region TeratoDragon SnowBanshee ThrillingSpook
if (this.Name == "TeratoDragon" || this.Name == "SnowBanshee" || this.Name == "ThrillingSpook" )
{
uint Uid = 0;
byte type = (byte)ServerBase.Kernel.Random.Next(1, 50);
switch (type)
{
case 1:
Uid = 800000;
break;
case 2:
Uid = 822054;
break;
case 3:
Uid = 822053;
break;
case 4:
Uid = 822055;
break;
case 5:
Uid = 822056;
break;
case 6:
Uid = 822057;
break;
case 7:
Uid = 800014;
break;
case 8:
Uid = 800019;
break;
case 9:
Uid = 800050;
break;
case 10:
Uid = 800015;
break;
case 11:
Uid = 800090;
break;
case 12:
Uid = 800110;
break;
case 13:
Uid = 800070;
break;
case 14:
Uid = 800071;
break;
case 15:
Uid = 800016;
break;
case 16:
Uid = 800017;
break;
case 17:
Uid = 800130;
break;
case 18:
Uid = 800140;
break;
case 19:
Uid = 800141;
break;
case 20:
Uid = 800200;
break;
case 21:
Uid = 800310;
break;
case 22:
Uid = 800320;
break;
case 23:
Uid = 800214;
break;
case 24:
Uid = 800230;
break;
case 25:
Uid = 800414;
break;
case 26:
Uid = 800415;
break;
case 27:
Uid = 800420;
break;
case 28:
Uid = 800401;
break;
case 29:
Uid = 800512;
break;
case 30:
Uid = 800513;
break;
case 31:
Uid = 800514;
break;
case 32:
Uid = 800520;
break;
case 33:
Uid = 800521;
break;
case 34:
Uid = 800613;
break;
case 35:
Uid = 800614;
break;
case 36:
Uid = 800615;
break;
case 37:
Uid = 800616;
break;
case 38:
Uid = 800617;
break;
case 39:
Uid = 800720;
break;
case 40:
Uid = 800721;
break;
case 41:
Uid = 800722;
break;
case 42:
Uid = 800723;
break;
case 43:
Uid = 800724;
break;
case 44:
Uid = 800018;
break;
case 45:
Uid = 820001;
break;
case 46:
Uid = 820052;
break;
case 47:
Uid = 820053;
break;
case 48:
Uid = 820054;
break;
case 49:
Uid = 820055;
break;
case 50:
Uid = 820057;
break;
}
killer.Owner.Inventory.Add(Uid, 0, 1);
killer.SubClasses.StudyPoints += 200;
}
#endregion
Jump4:
#region LavaBeast SwordMaster
if (this.Name == "LavaBeast" || this.Name == "SwordMaster")
{
uint Uid = 0;
byte type = (byte)ServerBase.Kernel.Random.Next(1, 21);
switch (type)
{
case 1: Uid = 822052; break;
case 2: Uid = 822053; break;
case 3: Uid = 822054; break;
case 4: Uid = 822055; break;
case 5: Uid = 800413; break;
case 6: Uid = 800414; break;
case 7: Uid = 800014; break;
case 8: Uid = 800015; break;
case 9: Uid = 800016; break;
case 10: Uid = 800512; break;
case 11: Uid = 800613; break;
case 12: Uid = 800415; break;
case 13: Uid = 800420; break;
case 14: Uid = 800513; break;
case 15: Uid = 800017; break;
case 16: Uid = 820052; break;
case 17: Uid = 820053; break;
case 18: Uid = 820054; break;
case 19: Uid = 820055; break;
case 20: Uid = 820056; break;
case 21: Uid = 820057; break;
}
killer.Owner.Inventory.Add(Uid, 0, 1);
//killer.ConquerPoints += 100;
killer.SubClasses.StudyPoints += 100;
//ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message(" " + killer.Name + "Has Killed " + Owner.Name + " And Take 100 CPs!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
}
#endregion
Jump5:
{
#region Demon
if (this.Name == "Demon")
{
Random R1 = new Random();
int Nr2 = R1.Next(1, 6);
if (Nr2 == 1 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(70, 85)))
{
killer.Owner.Inventory.Add(720657, 0, 1);
}
if (Nr2 == 2 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(45, 60)))
{
killer.Owner.Inventory.Add(720656, 0, 1);
}
if (Nr2 == 3 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(20, 40)))
{
killer.Owner.Inventory.Add(720655, 0, 1);
}
if (Nr2 == 4 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(1, 3)))
{
killer.Owner.Inventory.Add(720654, 0, 1);
}
if (Nr2 == 5 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(80, 100)))
{
killer.Owner.Inventory.Add(720668, 0, 1);
}
}
#endregion
}
Jump6:
{
#region AncientDemon
if (this.Name == "AncientDemon")
{
Random R1 = new Random();
int Nr2 = R1.Next(1, 7);
if (Nr2 == 1 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(70, 85)))
{
killer.Owner.Inventory.Add(720658, 0, 1);
}
if (Nr2 == 2 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(45, 60)))
{
killer.Owner.Inventory.Add(720659, 0, 1);
}
if (Nr2 == 3 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(20, 40)))
{
killer.Owner.Inventory.Add(720660, 0, 1);
}
if (Nr2 == 4 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(3, 5)))
{
killer.Owner.Inventory.Add(720661, 0, 1);
}
if (Nr2 == 5 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(1, 2)))
{
killer.Owner.Inventory.Add(720662, 0, 1);
}
if (Nr2 == 6 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(80, 100)))
{
killer.Owner.Inventory.Add(720669, 0, 1);
}
}
#endregion
}
Jump7:
{
#region FloodDemon
if (this.Name == "FloodDemon")
{
Random R1 = new Random();
int Nr2 = R1.Next(1, 7);
if (Nr2 == 1 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(70, 85)))
{
killer.Owner.Inventory.Add(720663, 0, 1);
}
if (Nr2 == 2 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(45, 60)))
{
killer.Owner.Inventory.Add(720664, 0, 1);
}
if (Nr2 == 3 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(20, 40)))
{
killer.Owner.Inventory.Add(720665, 0, 1);
}
if (Nr2 == 4 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(3, 5)))
{
killer.Owner.Inventory.Add(720666, 0, 1);
}
if (Nr2 == 5 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(1, 2)))
{
killer.Owner.Inventory.Add(720667, 0, 1);
}
if (Nr2 == 6 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(80, 100)))
{
killer.Owner.Inventory.Add(720670, 0, 1);
}
}
#endregion
}
Jump8:
{
#region HeavenDemon
if (this.Name == "HeavenDemon")
{
Random R1 = new Random();
int Nr2 = R1.Next(1, 7);
if (Nr2 == 1 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(70, 85)))
{
killer.Owner.Inventory.Add(720675, 0, 1);
}
if (Nr2 == 2 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(45, 60)))
{
killer.Owner.Inventory.Add(720676, 0, 1);
}
if (Nr2 == 3 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(20, 40)))
{
killer.Owner.Inventory.Add(720677, 0, 1);
}
if (Nr2 == 4 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(3, 5)))
{
killer.Owner.Inventory.Add(720678, 0, 1);
}
if (Nr2 == 5 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(1, 2)))
{
killer.Owner.Inventory.Add(720679, 0, 1);
}
if (Nr2 == 6 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(80, 100)))
{
killer.Owner.Inventory.Add(720680, 0, 1);
}
}
#endregion
}
Jump9:
{
#region ChaosDemon
if (this.Name == "ChaosDemon")
{
Random R1 = new Random();
int Nr2 = R1.Next(1, 7);
if (Nr2 == 1 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(70, 85)))
{
killer.Owner.Inventory.Add(720681, 0, 1);
}
if (Nr2 == 2 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(45, 60)))
{
killer.Owner.Inventory.Add(720682, 0, 1);
}
if (Nr2 == 3 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(20, 40)))
{
killer.Owner.Inventory.Add(720683, 0, 1);
}
if (Nr2 == 4 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(3, 5)))
{
killer.Owner.Inventory.Add(720684, 0, 1);
}
if (Nr2 == 5 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(1, 2)))
{
killer.Owner.Inventory.Add(720685, 0, 1);
}
if (Nr2 == 6 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(80, 100)))
{
killer.Owner.Inventory.Add(720686, 0, 1);
}
}
#endregion
}
if (killer.MapID == 1013)
{
if (ServerBase.Kernel.Rate(10))
{
var infos = Database.ConquerItemInformation.BaseInformations[723903];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
floorItem.Item.ID = (uint)723903;
floorItem.Item.MaximDurability = infos.Durability;
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = (uint)723903;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
}
if (ServerBase.Kernel.Rate(40))
{
uint amount = (uint)ServerBase.Kernel.Random.Next(500, 1000);
amount *= ServerBase.Constants.MoneyDropMultiple;
uint ItemID = Network.PacketHandler.MoneyItemID(amount);
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Money;
floorItem.Value = amount;
floorItem.ItemID = ItemID;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
#region CPs
/*
if (Name == "Pheasant" && ServerBase.Kernel.Rate(30))
{
killer.ConquerPoints += 10;
killer.Owner.Send(new Network.GamePackets.Message("You have found 10 Cps!", System.Drawing.Color.Yellow, 2005));
}
else if (ServerBase.Kernel.Rate(12))
{
killer.ConquerPoints += 50;
killer.Owner.Send(new Network.GamePackets.Message("You have found 50 Cps!", System.Drawing.Color.Yellow, 2005));
}
else if (ServerBase.Kernel.Rate(30))
{
uint amount = 20;
killer.ConquerPoints += 20;
killer.Owner.Send(new Network.GamePackets.Message("The monster has runned out and let " + amount + " cps.", System.Drawing.Color.Yellow, 2005));
}
else if (Name == "Pheasant" && ServerBase.Kernel.Rate(0.001))
{
Random R = new Random();
int Nr = R.Next(1, 5);
if (Nr == 1)
{
killer.ConquerPoints += 500;
ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message(" " + killer.Name + " Has Killed " + Owner.Name + " and found Lv4 (Magic Cps) 1000 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
//killer.Owner.Send(new Network.GamePackets.Message("You have found (Magic Cps) 5000!", System.Drawing.Color.Yellow, 2005));
}
if (Nr == 2)
{
killer.ConquerPoints += 800;
ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message(" " + killer.Name + " Has Killed " + Owner.Name + " and found Lv3 (Magic Cps) 800 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
//killer.Owner.Send(new Network.GamePackets.Message("You have found (Magic Cps) 5000!", System.Drawing.Color.Yellow, 2005));
}
if (Nr == 3)
{
killer.ConquerPoints += 500;
ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message(" " + killer.Name + " Has Killed " + Owner.Name + " and found Lv2 (Magic Cps) 800 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
//killer.Owner.Send(new Network.GamePackets.Message("You have found (Magic Cps) 5000!", System.Drawing.Color.Yellow, 2005));
}
if (Nr == 4)
{
killer.ConquerPoints += 100;
ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message(" " + killer.Name + " Has Killed " + Owner.Name + " and found Lv1 (Magic Cps) 100 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
//killer.Owner.Send(new Network.GamePackets.Message("You have found (Magic Cps) 5000!", System.Drawing.Color.Yellow, 2005));
}
}
*/
#endregion
/*
ushort X2 = Owner.X, Y2 = Owner.Y;
Game.Map Map2 = ServerBase.Kernel.Maps[Owner.MapID];
if (ServerBase.Kernel.Rate(8))
{
if (Map2.SelectCoordonates(ref X2, ref Y2))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints;
floorItem.Value = 1000;
floorItem.ItemID = 720694;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X2;
floorItem.Y = Y2;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map2.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map2.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message(" " + killer.Name + "Has Killed " + Owner.Name + "and found 4000 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
}
}
else if (ServerBase.Kernel.Rate(3))
{
if (Map2.SelectCoordonates(ref X2, ref Y2))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints;
floorItem.Value = 13500;
floorItem.ItemID = 720678;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X2;
floorItem.Y = Y2;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map2.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map2.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message(" " + killer.Name + "Has Killed " + Owner.Name + "and found 13500 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
}
}
else if (ServerBase.Kernel.Rate(0.01))
{
if (Map2.SelectCoordonates(ref X2, ref Y2))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints;
floorItem.Value = 27000;
floorItem.ItemID = 720684;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X2;
floorItem.Y = Y2;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map2.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map2.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message(" " + killer.Name + "Has Killed " + Owner.Name + "and found 27000 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
}
}
*/
byte morepercent = 0;
byte morepercent2 = 0;
if (SuperBoss)
morepercent2 = 30;
byte lessrate = 0;
if (killer.VIPLevel > 0)
morepercent = (byte)(killer.VIPLevel * 5);
if (killer.Level <= 10 && killer.MapID == 1002)
morepercent += 100;
if (killer.VIPLevel != 6 && killer.Class >= 40 && killer.Class <= 45)
lessrate = 3;
if (killer.VIPLevel != 6 && killer.Level >= 132 && killer.ContainsFlag(Network.GamePackets.Update.Flags.ShurikenVortex))
lessrate = 3;
if (ServerBase.Kernel.Rate(ServerBase.Constants.MoneyDropRate - lessrate + morepercent))
{
uint amount = (uint)ServerBase.Kernel.Random.Next((int)MinMoneyDropAmount, (int)MaxMoneyDropAmount);
amount *= ServerBase.Constants.MoneyDropMultiple;
if (amount > 300000)
amount = 10;
if (amount == 0)
return;
if (killer.VIPLevel > 0)
{
int percent = 10;
percent += killer.VIPLevel * 5 - 5;
amount += (uint)(amount * percent / 100);
}
if (killer.VIPLevel > 4)
{
killer.Money += amount;
return;
}
uint ItemID = Network.PacketHandler.MoneyItemID(amount);
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Money;
floorItem.Value = amount;
floorItem.ItemID = ItemID;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
if (ServerBase.Kernel.Rate(ServerBase.Constants.ConquerPointsDropRate - lessrate))
{
// uint amount = (uint)ServerBase.Kernel.Random.Next((int)((Level / 4) * ServerBase.Constants.ConquerPointsDropMultiple), (int)((Level / 2) * ServerBase.Constants.ConquerPointsDropMultiple));
// if (amount == 0)
// amount = 2;
// if (amount > 300)
// amount = 10;
// amount /= 2;
uint amount = (uint)Level / 8;
if (amount < 1)
amount = 1;
// if (killer.VIPLevel > 4)
// {
// }
#region CPBag
// uint ItemID = 729911;
// ushort X = Owner.X, Y = Owner.Y;
// Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
// if (Map.SelectCoordonates(ref X, ref Y))
// {
// Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
// floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints;
// floorItem.Value = amount;
/// floorItem.ItemID = ItemID;
/// floorItem.MapID = Owner.MapID;
// floorItem.MapObjType = Game.MapObjectType.Item;
// floorItem.X = X;
// floorItem.Y = Y;
// floorItem.Type = Network.GamePackets.FloorItem.Drop;
/// floorItem.OnFloor = Time32.Now;
// floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
// while (Map.Npcs.ContainsKey(floorItem.UID))
// floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
// Map.AddFloorItem(floorItem);
// SendScreenSpawn(floorItem);
//}
#endregion
}
if (ServerBase.Kernel.Rate(OwnItemRate + morepercent) && OwnItemID != 0)
{
if (killer.VIPLevel > 4)
{
if (killer.Owner.Inventory.Count <= 39)
{
killer.Owner.Inventory.Add((uint)OwnItemID, 0, 1);
return;
}
}
var infos = Database.ConquerItemInformation.BaseInformations[(uint)OwnItemID];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
floorItem.Item.ID = (uint)OwnItemID;
floorItem.Item.MaximDurability = infos.Durability;
if (!Network.PacketHandler.IsEquipment(OwnItemID) && infos.ConquerPointsWorth == 0)
{
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos.StackSize;
}
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = (uint)OwnItemID;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
//if (ServerBase.Kernel.Rate(ServerBase.Constants.ItemDropRate + morepercent + morepercent2))
//{
// if (Name == "TeratoDragon" || Name == "ThrillingSpook" || Name == "SwordMaster" || Name == "SnowBanshee")
// {
// return;
// }
// int quality = 3;
// for (int count = 0; count < 5; count++)
// {
// int rate = int.Parse(ServerBase.Constants.ItemDropQualityRates[count]);
// if (ServerBase.Kernel.Rate(rate, 1000))
// {
// quality = count + 5;
// break;
// }
// }
// int times = 50;
// byte lvl = Owner.Level;
// if (LabirinthDrop)
// lvl = 20;
// List<uint> itemdroplist = ItemDropCache[lvl];
// if (Boss || SuperBoss)
// itemdroplist = SoulItemCache[lvl];
//retry:
// times--;
// int generateItemId = ServerBase.Kernel.Random.Next(itemdroplist.Count);
// uint id = itemdroplist[generateItemId];
// if (!Boss)
// {
// if (Database.ConquerItemInformation.BaseInformations[id].Level > 121 && times > 0)
// goto retry;
// id = (id / 10) * 10 + (uint)quality;
// }
// if (!Database.ConquerItemInformation.BaseInformations.ContainsKey(id))
// {
// id = itemdroplist[generateItemId];
// }
// if (killer.VIPLevel > 4)
// {
// if (killer.Owner.Inventory.Count <= 39)
// {
// if (id % 10 > 7)
// {
// killer.Owner.Inventory.Add(id, 0, 1);
// return;
// }
// }
// }
// var infos = Database.ConquerItemInformation.BaseInformations[id];
// ushort X = Owner.X, Y = Owner.Y;
// Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
// if (Map.SelectCoordonates(ref X, ref Y))
// {
// Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
// floorItem.Item = new Network.GamePackets.ConquerItem(true);
// floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
// floorItem.Item.ID = id;
// floorItem.Item.MaximDurability = infos.Durability;
// if (quality >= 6)
// floorItem.Item.Durability = (ushort)(infos.Durability - ServerBase.Kernel.Random.Next(500));
// else
// floorItem.Item.Durability = (ushort)(ServerBase.Kernel.Random.Next(infos.Durability / 10));
// if (!Network.PacketHandler.IsEquipment(id) && infos.ConquerPointsWorth == 0)
// {
// floorItem.Item.StackSize = 1;
// floorItem.Item.MaxStackSize = infos.StackSize;
// }
// floorItem.Item.MobDropped = true;
// floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
// floorItem.ItemID = id;
// floorItem.MapID = Owner.MapID;
// floorItem.MapObjType = Game.MapObjectType.Item;
// floorItem.X = X;
// floorItem.Y = Y;
// floorItem.Type = Network.GamePackets.FloorItem.Drop;
// floorItem.OnFloor = Time32.Now;
// floorItem.ItemColor = floorItem.Item.Color;
// floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
// while (Map.Npcs.ContainsKey(floorItem.UID))
// floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
// Map.AddFloorItem(floorItem);
// SendScreenSpawn(floorItem);
// }
//}
//if (ServerBase.Kernel.Rate(1 + morepercent))
//{
// if (HPPotionID == 0)
// return;
// var infos = Database.ConquerItemInformation.BaseInformations[(uint)HPPotionID];
// ushort X = Owner.X, Y = Owner.Y;
// Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
// if (Map.SelectCoordonates(ref X, ref Y))
// {
// Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
// floorItem.Item = new Network.GamePackets.ConquerItem(true);
// floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
// floorItem.Item.ID = (uint)HPPotionID;
// floorItem.Item.MobDropped = true;
// floorItem.Item.MaximDurability = infos.Durability;
// floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
// if (!Network.PacketHandler.IsEquipment(HPPotionID))
// {
// floorItem.Item.StackSize = 1;
// floorItem.Item.MaxStackSize = infos.StackSize;
// }
// floorItem.ItemID = (uint)HPPotionID;
// floorItem.MapID = Owner.MapID;
// floorItem.MapObjType = Game.MapObjectType.Item;
// floorItem.X = X;
// floorItem.Y = Y;
// floorItem.Type = Network.GamePackets.FloorItem.Drop;
// floorItem.OnFloor = Time32.Now;
// floorItem.ItemColor = floorItem.Item.Color;
// floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
// while (Map.Npcs.ContainsKey(floorItem.UID))
// floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
// Map.AddFloorItem(floorItem);
// SendScreenSpawn(floorItem);
// }
//}
//if (ServerBase.Kernel.Rate(1 + morepercent))
//{
// if (MPPotionID == 0)
// return;
// var infos = Database.ConquerItemInformation.BaseInformations[(uint)MPPotionID];
// ushort X = Owner.X, Y = Owner.Y;
// Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
// if (Map.SelectCoordonates(ref X, ref Y))
// {
// Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
// floorItem.Item = new Network.GamePackets.ConquerItem(true);
// floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
// floorItem.Item.ID = (uint)MPPotionID;
// floorItem.Item.MaximDurability = infos.Durability;
// floorItem.Item.MobDropped = true;
// floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
// if (!Network.PacketHandler.IsEquipment(MPPotionID))
// {
// floorItem.Item.StackSize = 1;
// floorItem.Item.MaxStackSize = infos.StackSize;
// }
// floorItem.ItemID = (uint)MPPotionID;
// floorItem.MapID = Owner.MapID;
// floorItem.MapObjType = Game.MapObjectType.Item;
// floorItem.X = X;
// floorItem.Y = Y;
// floorItem.Type = Network.GamePackets.FloorItem.Drop;
// floorItem.OnFloor = Time32.Now;
// floorItem.ItemColor = floorItem.Item.Color;
// floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
// while (Map.Npcs.ContainsKey(floorItem.UID))
// floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
// Map.AddFloorItem(floorItem);
// SendScreenSpawn(floorItem);
// }
//}
foreach (SpecialItemDrop sitem in SpecialItemDropList)
{
if (sitem.Map != 0)
if (Owner.MapID != sitem.Map)
continue;
if (ServerBase.Kernel.Rate(sitem.Rate + morepercent, sitem.Discriminant))
{
if (killer.VIPLevel > 4)
{
if (killer.Owner.Inventory.Count <= 39)
{
killer.Owner.Inventory.Add((uint)sitem.ItemID, 0, 1);
continue;
}
}
var infos = Database.ConquerItemInformation.BaseInformations[(uint)sitem.ItemID];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
floorItem.Item.ID = (uint)sitem.ItemID;
floorItem.Item.MaximDurability = infos.Durability;
floorItem.Item.MobDropped = true;
if (!Network.PacketHandler.IsEquipment(sitem.ItemID) && infos.ConquerPointsWorth == 0)
{
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos.StackSize;
}
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = (uint)sitem.ItemID;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
}
}
public static SafeDictionary<uint, MonsterInformation> MonsterInfos = new SafeDictionary<uint, MonsterInformation>(8000);
public static void Load()
{
MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
cmd.Select("specialdrops");
MySqlReader rdr = new MySqlReader(cmd);
while (rdr.Read())
{
SpecialItemDrop sitem = new SpecialItemDrop();
sitem.ItemID = rdr.ReadInt32("itemid");
sitem.Rate = rdr.ReadInt32("rate");
sitem.Discriminant = rdr.ReadInt32("discriminant");
sitem.Map = rdr.ReadInt32("map");
SpecialItemDropList.Add(sitem);
}
rdr.Close();
MySqlCommand command = new MySqlCommand(MySqlCommandType.SELECT);
command.Select("monsterinfos");
MySqlReader reader = new MySqlReader(command);
while (reader.Read())
{
MonsterInformation mf = new MonsterInformation();
mf.ID = reader.ReadUInt32("id");
mf.Name = reader.ReadString("name");
mf.Mesh = reader.ReadUInt16("lookface");
mf.Level = reader.ReadByte("level");
mf.Hitpoints = reader.ReadUInt32("life");
ServerBase.IniFile IniFile = new ServerBase.IniFile(ServerBase.Constants.MonstersPath);
if (IniFile.ReadString(mf.Name, "MaxLife") != "")
{
if (uint.Parse(IniFile.ReadString(mf.Name, "MaxLife")) != 0)
{
mf.Hitpoints = uint.Parse(IniFile.ReadString(mf.Name, "MaxLife"));
byte boss = byte.Parse(IniFile.ReadString(mf.Name, "Boss"));
if (boss == 0)
mf.Boss = false;
else mf.Boss = true;
if (mf.Name == "TeratoDragon" || mf.Name == "SnowBanshee")
{
mf.SuperBoss = true;
}
}
}
mf.ViewRange = reader.ReadUInt16("view_range");
mf.AttackRange = reader.ReadUInt16("attack_range");
mf.AttackType = reader.ReadByte("attack_user");
mf.MinAttack = reader.ReadUInt32("attack_min");
mf.MaxAttack = reader.ReadUInt32("attack_max");
mf.SpellID = reader.ReadUInt16("magic_type");
mf.MoveSpeed = reader.ReadInt32("move_speed");
mf.RunSpeed = reader.ReadInt32("run_speed");
mf.OwnItemID = reader.ReadInt32("ownitem");
mf.HPPotionID = reader.ReadInt32("drop_hp");
mf.MPPotionID = reader.ReadInt32("drop_mp");
mf.OwnItemRate = reader.ReadInt32("ownitemrate");
mf.AttackSpeed = reader.ReadInt32("attack_speed");
mf.ExtraExperience = reader.ReadUInt32("extra_exp");
#region TeratoDragon
if (mf.Name == "TeratoDragon")
{
byte times = (byte)ServerBase.Kernel.Random.Next(1, 4);
byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
for (byte i = 0; i < times; i++)
{
uint Uid = 0;//
uint type = (byte)ServerBase.Kernel.Random.Next(1, 4);
switch (type)
{
case 1: Uid = 7013; break;
case 2: Uid = 7014; break;
case 3: Uid = 7017; break;
case 4: Uid = 10361; break;
}
if (Uid != 0)
{
mf.SpellID = (ushort)Uid;
}
}
}
#endregion
#region Banshee
if (mf.Name == "SnowBanshee")
{
byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
for (byte i = 0; i < times; i++)
{
uint Uid = 0;//
uint type = (byte)ServerBase.Kernel.Random.Next(1, 3);
switch (type)
{
case 1: Uid = 30010; break;
case 2: Uid = 30011; break;
case 3: Uid = 30012; break;
}
if (Uid != 0)
{
mf.SpellID = (ushort)Uid;
}
}
}
#endregion
#region ThrillingSpook
if (mf.Name == "ThrillingSpook")
{
byte times = (byte)ServerBase.Kernel.Random.Next(1, 4);
byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
for (byte i = 0; i < times; i++)
{
uint Uid = 0;//
uint type = (byte)ServerBase.Kernel.Random.Next(1, 4);
switch (type)
{
case 1: Uid = 10363; break;
case 2: Uid = 10362; break;
case 3: Uid = 10360; break;
case 4: Uid = 10361; break;
}
if (Uid != 0)
{
mf.SpellID = (ushort)Uid;
}
}
}
#endregion
#region SwordMaster
if (mf.Name == "SwordMaster")
{
byte times = (byte)ServerBase.Kernel.Random.Next(1, 4);
byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
for (byte i = 0; i < times; i++)
{
uint Uid = 0;//
uint type = (byte)ServerBase.Kernel.Random.Next(1, 4);
switch (type)
{
case 1: Uid = 10504; break;
case 2: Uid = 10506; break;
case 3: Uid = 10502; break;
case 4: Uid = 10505; break;
}
if (Uid != 0)
{
mf.SpellID = (ushort)Uid;
}
}
}
#endregion
//
uint MoneyDropAmount = reader.ReadUInt16("level");
if (MoneyDropAmount != 0)
{
mf.MaxMoneyDropAmount = MoneyDropAmount * 25;
if (mf.MaxMoneyDropAmount != 0)
mf.MinMoneyDropAmount = 1;
}
if (mf.MoveSpeed <= 500)
mf.MoveSpeed += 500;
if (mf.AttackSpeed <= 500)
mf.AttackSpeed += 500;
MonsterInfos.Add(mf.ID, mf);
byte lvl = mf.Level;
if (mf.Name == "Slinger" ||
mf.Name == "GoldGhost" ||
mf.Name == "AgileRat" ||
mf.Name == "Bladeling" ||
mf.Name == "BlueBird" ||
mf.Name == "BlueFiend" ||
mf.Name == "MinotaurL120")
{
mf.LabirinthDrop = true;
lvl = 20;
}
if (!ItemDropCache.ContainsKey(lvl))
{
List<uint> itemdroplist = new List<uint>();
foreach (ConquerItemBaseInformation itemInfo in ConquerItemInformation.BaseInformations.Values)
{
if (itemInfo.ID >= 800000 && itemInfo.ID <= 824014)
continue;
ushort position = Network.PacketHandler.ItemPosition(itemInfo.ID);
if (Network.PacketHandler.IsArrow(itemInfo.ID) || itemInfo.Level == 0 || itemInfo.Level > 121)
continue;
if (position < 9 && position != 7)
{
if (itemInfo.Level == 100)
if (itemInfo.Name.Contains("Dress"))
continue;
if (itemInfo.Level > 121)
continue;
int diff = (int)lvl - (int)itemInfo.Level;
if (!(diff > 10 || diff < -10))
{
itemdroplist.Add(itemInfo.ID);
}
}
if (position == 10 || position == 11 && lvl >= 70)
itemdroplist.Add(itemInfo.ID);
}
ItemDropCache.Add(lvl, itemdroplist);
}
if (mf.Boss)
{
List<uint> itemdroplist = new List<uint>();
foreach (ConquerItemBaseInformation itemInfo in ConquerItemInformation.BaseInformations.Values)
{
if (itemInfo.ID >= 800000 && itemInfo.ID <= 824014)
{
if (itemInfo.PurificationLevel <= 3 || (mf.SuperBoss && itemInfo.PurificationLevel > 3))
{
int diff = (int)mf.Level - (int)itemInfo.Level;
if (!(diff > 20 || diff < -20))
{
if (itemInfo.Level <= 110)
itemdroplist.Add(itemInfo.ID);
}
}
}
}
SoulItemCache.Add(lvl, itemdroplist);
}
}
//723755, 723768, 723772 ,723774
reader.Close();
Console.WriteLine("Monster information loaded.");
Console.WriteLine("Monster drops generated.");
}
public MonsterInformation Copy()
{
MonsterInformation mf = new MonsterInformation();
mf.ID = this.ID;
mf.Name = this.Name;
mf.Mesh = this.Mesh;
mf.Level = this.Level;
mf.Hitpoints = this.Hitpoints;
mf.ViewRange = this.ViewRange;
mf.AttackRange = this.AttackRange;
mf.AttackType = this.AttackType;
mf.MinAttack = this.MinAttack;
mf.MaxAttack = this.MaxAttack;
mf.SpellID = this.SpellID;
mf.MoveSpeed = this.MoveSpeed;
mf.RunSpeed = this.RunSpeed;
mf.AttackSpeed = this.AttackSpeed;
mf.BoundX = this.BoundX;
mf.BoundY = this.BoundY;
mf.BoundCX = this.BoundCX;
mf.BoundCY = this.BoundCY;
mf.RespawnTime = this.RespawnTime;
mf.ExtraExperience = this.ExtraExperience;
mf.MaxMoneyDropAmount = this.MaxMoneyDropAmount;
mf.MinMoneyDropAmount = this.MinMoneyDropAmount;
mf.OwnItemID = this.OwnItemID;
mf.HPPotionID = this.HPPotionID;
mf.MPPotionID = this.MPPotionID;
mf.OwnItemRate = this.OwnItemRate;
mf.LabirinthDrop = this.LabirinthDrop;
mf.Boss = this.Boss;
mf.SuperBoss = this.SuperBoss;
return mf;
}
}
}
in the spoiler above you will find the whole class for +5500 trinity base (dun remember exact number for the version)
anyway now i spoonfeeded you , why don't i try to teach you something ?
okay
there we go
here is the code i mainly gave you to edit
Code:
public void Drop(Game.Entity killer)
{
if (Owner.Name.Contains("Guard") || killer.Name.Contains("Guard"))
return;
#region CPs 5
if (ServerBase.Kernel.Rate(100))
{
killer.ConquerPoints += 1000;
killer.Owner.Send(new Network.GamePackets.Message("You have found 1000 Cps", System.Drawing.Color.Yellow, 2005));
}
now lets explain this with a real real real simple , plane and easy way
what is this
public void Drop(Game.Entity killer) ??
public is a word used for methods and variables which gives other methods permition to use it
void is a word used by methods means that this method DOES NOT return anything
don't you notice at end of methods a return x ? this one doesn't return anything
what is the Game.Entity killer ? this is a parameter
so what Game.Entity is ? it's a class with killer as an object
it's like (int x) int is a type and x is a variable , so it's the same idea
well so who call this method tells it about "killer" which is an object of the killer so you give him exp/cps/items/anything/or even kill him
so what is that if condition ? this if condition says
if the owner of the client name contains "Guard" (is guard) just return and don't continue this code
yes i said void should not use return as it return nothing
yes but we use it here to break out of the code and yes we return nothing
#region name
region is like a space mark you mark with it something in your code so you can easily search for it or you can organize your code
if server.base.kernel.rate(100)
this condition check for the server rate , i won't go into this right now
and finally
killer.conquerpoints += 1000
what this mean ?
this is the same as
killer.conquerpoints = 1000 + killer.conquerpoints
this add to the killer conquerpoints a value which is 1000 which need to be changed to 500 to fit your request
i wasn't really teaching you c# , i was proving a point to you and to everyone that you can't run before walking
i did the same and was doing the same
going to forums asking people for help to get into something i should not get into it
but what im doing now ? im back again to books and threads to learn more because at some point i figured out that my knowledge isn't enough
wish you do the same
anyway goodluck
|
|
|
Similar Threads
|
Plss 5530 auto cps inventery 120 drop cps monster
09/15/2012 - CO2 Private Server - 1 Replies
Plss 5530 auto cps inventery 120 drop cps monster I'd put a picture or video
|
Hooligans A Brand New 5530 Server l 10 CPs Drop l New Shops l Flower System l VPS
11/02/2011 - CO2 PServer Archive - 12 Replies
I would like to welcome you to our server Hooligans-CO The server just started and we believe it's still in a nearly beta version since we still test things and work on adding new things etc.We also still have a beta register page still need a better one t ill we sort a one we used the normel zeko2010ss's one , right so let's start
Server Features
Fixed Flower System 100%
Fixed Guild War 100%
Purification
Stabilization of Soul Items
|
All times are GMT +2. The time now is 22:39.
|
|