Item equipado se borra al azar.

Hola,

Resulta que he creado una funcionalidad de pack de bienvenida hacia el servidor que tengo implementado, para lo cual, lo que hace es, por medio de una aplicación web enviar items de equipamiento por correo (se inyecta por consultas MySQL).

Estas son las consultas MySQL:

///


/// Método que permite crear un correo automatizado de un GM.
///

/// Los datos del correo.
/// TRUE = Operación realiada correctamente; FALSE = Problemas al realizar la operación.
public Respuesta CrearCorreo(CorreoBe Datos)
{
string Query = “INSERT INTO characters.mail” +
"(id, "+
"messageType, "+
"stationery, "+
"mailTemplateId, " +
"sender, " +
"receiver, " +
"subject, " +
"body, " +
"has_items, " +
"expire_time, " +
"deliver_time, " +
"money, " +
"cod, " +
"checked) " +
“VALUES " +
“(”+ Datos.IdCorreo.ToString() +”, " +
"0, " +
"61, " +
"0, " +
Datos.GuidOrigen.ToString() + “, " + //GUID de character origen
Datos.GuidDestino.ToString() + “, " + //GUID de character destino
“'”+ Datos.Asunto +”‘, " +
"’” + Datos.Mensaje + "', " +
"1, " +
Datos.HoraExpiracion.ToString() + ", " + // timestamp
Datos.HoraServidor.ToString() + ", " + // fecha hora en segundos del server.
"500000, " +
"0, " +
"0) ";
return this.Comun.ProcesarQueryTipoTransaccional(Query, this.Comun.Conexion, this.Comun.Transaccion);
}

///


/// Método que permite enlazar los items a datos adjuntos del correo a generar.
///

/// Los datos de adjuntar items.
/// TRUE = Operación realiada correctamente; FALSE = Problemas al realizar la operación.
public Respuesta EnlazarItemsConAdjuntos(ItemInstanciaBe Datos)
{
string Query = "INSERT INTO characters.item_instance " +
"(guid, " +
"itemEntry, " +
"owner_guid, " +
"creatorGuid, " +
"giftCreatorGuid, " +
"count, " +
"duration, " +
"charges, " +
"flags, " +
"enchantments, " +
"randomPropertyId, " +
"durability, " +
"playedTime, " +
"text) " +
"VALUES " +
“(” + Datos.Guid.ToString() + “, " + //Autoincremental
Datos.IdItem.ToString() +”, " + //Item que se agrega al correo
"1, " +
"0, " +
"0, " +
"1, " +
"0, " +
"'0 0 0 0 0 ', " +
"0, " +
"‘0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ‘, " +
"0, " +
"0, " +
"0, " +
"’’); ";
return this.Comun.ProcesarQueryTipoTransaccional(Query, this.Comun.Conexion, this.Comun.Transaccion);
}

///


/// Método que permite adjuntar los elementos que irán al correo.
///

/// Los datos de los items a adjuntar.
/// TRUE = Operación realiada correctamente; FALSE = Problemas al realizar la operación.
public Respuesta AdjuntarElementosAlCorreo(CorreoItemsBe Datos)
{
string Query = "INSERT INTO characters.mail_items " +
"(mail_id, " +
"item_guid, " +
"receiver) " +
"VALUES " +
“(” + Datos.IdCorreo.ToString() + “, " + //El ID de correo generado
Datos.GuidItemInstance.ToString() + “, " + //el GUID generado de la tabla item_instance
“”+ Datos.GuidDestinatario.ToString() +”)”; //el GUID del character que recibirá el correo
return this.Comun.ProcesarQueryTipoTransaccional(Query, this.Comun.Conexion, this.Comun.Transaccion);
}

Todo funciona perfecto, hasta que esos items proporcionados, se borran al azar en el equipamiento de un personaje de un jugador especificado que ha reclamado el pack de bienvenida. En versiones antiguas del emulador no pasaba eso.

Quedo atento a comentarios de lo que se pueda hacer.

EDITO:

Nuevo hallazgo hecho por mí:

https://www.youtube.com/watch?v=Evlr2hPFF2k