ANTES QUE NADA SOLO PARA SOURCE NORMALES/MSG/EMULATOR EN STREAM NO FUNCIONA.!
Buenas, ha pasado muchisimo tiempo creo que puedo decir sin exagerar Años desde que hize un Post Publico en un foro sobre conquer, pero eh vuelto y no vi que haya nada igual publicado pero en dado caso den debaja este Post y Listo XD.
tal como dice el titulo son las Tareas de Exterminar Bichos en los mapas con sus respectivos Capitanes, TCCaptain, etc.
Bueno empezemos
1.- NPC.cs En dado caso que ya tengan en uso los IDs de los Npcs, verifiquen que codigos tienen por que en la minoria de las veces estan puestas las Quest de Seguimiento, entonces solo es copiar esas partes y pegarlas en los npcs de las Quest paralelamente a las demas opciones.
2.- PacketHandler o GeneralData buscamos void LoginM y Pegamos
#region Fix Bug que no Guardaba las Kills!<
client.Inventory.CheckZapallo(client);
client.Entity.QuestKO = client.Entity.AntiRobo;//Fix Exclusivo
#endregion
3.- en Entity o Player como lo tengan Agregamos
#region Tareas Cazador
public uint AntiRobo;
public string QuestFrom
{
get
{
if (EntityFlag == Game.EntityFlag.Player)
return Owner["QuestFrom"];
return "";
}
set
{
if (EntityFlag == Game.EntityFlag.Player)
Owner["QuestFrom"] = value;
}
}
public string QuestMob
{
get
{
if (EntityFlag == Game.EntityFlag.Player)
return Owner["QuestMob"];
return "";
}
set
{
if (EntityFlag == Game.EntityFlag.Player)
Owner["QuestMob"] = value;
}
}
private uint _QuestKO;
public uint QuestKO
{
get { return _QuestKO; }
set
{
_QuestKO = value;
// Database.EntityTable.UpdateCps(this.Owner);
//if (EntityFlag == EntityFlag.Player)
// Update((byte)Network.GamePackets.Update.DataType.ConquerPoints, value, false);
}
}
//public uint QuestKO
//{
// get
// {
// if (EntityFlag == Game.EntityFlag.Player)
// return Owner["QuestKO"];
// //return 0;
// }
// set
// {
// if (EntityFlag == Game.EntityFlag.Player)
// Owner["QuestKO"] = value;
// }
//}
#endregion
4.- en MonsterTable buscamos nuestros Drops y agregamos:
if (Name == killer.QuestMob)
{
if (killer.Owner.Inventory.Contains(750000, 1))
{
killer.AntiRobo += 1;
killer.QuestKO += 1;
killer.Send(new Message(" " + killer.QuestMob + "s Killed: " + killer.QuestKO + ". From: " + killer.QuestFrom + "Captain.", 2005));
if (killer.QuestKO >= 301)
{
killer.Send(new Message("You have killed enough monsters for the quest. Go report to the " + killer.QuestFrom + "Captain.", 2005));
}
}
}
5.- En Attack.cs o en MsgInteract.Process Verificamos que tengamos Agregada la parte de case CloudJarQuest
o en su default case 36, si no pues la Agregan :
case 36://CloudSaints
{
attack.ResponseDamage = client.Entity.QuestKO;
client.Send(attack);
break;
}
6.- Ahora en Inventory .cs Agregamos lo Siguiente :
public void CheckZapallo(GameState client)
{
if(Contains(750000, 1))
{
foreach (ConquerItem item in Objects)
{
if (item.ID == 750000)
{
item.MaximDurability = item.MaximDurability;
client.Entity.QuestKO = item.MaximDurability;
client.Entity.AntiRobo = item.MaximDurability;
}
}
}
}
7.- En EntityTable Agregamos en la Parte de Loads :
client.Entity.QuestKO = reader.ReadUInt32("QuestKO");
client.Entity.QuestMob = reader.ReadString("QuestMob");
client.Entity.QuestFrom = reader.ReadString("QuestFrom");
client.Entity.AntiRobo = reader.ReadUInt32("KOCounts");
Mas Abajo en la Parte de Save (Sets)
.Set("QuestKO", e.QuestKO)
.Set("QuestMob", e.QuestMob)
.Set("QuestFrom", e.QuestFrom)
.Set("KOCounts", e.AntiRobo)
Luego en su Tabla Entities deberan agregar cada condicion de forma manual aca les dejo los datos :
QuestKO bigint 255 0 -1 0 0 0 0 0 0 0
QuestMob varchar 32 0 0 0 0 0 0 0 utf8 utf8_general_ci 0 0
QuestFrom varchar 32 0 -1 0 0 0 0 0 utf8 utf8_general_ci 0 0
KOCounts bigint 255 0 -1 0 0 0 0 0 0 0
Con eso Finalizariamos la Guia! Espero les haya agradado y podran realizar muchas mas tareas apartir de esta.!