Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Files Ex405 (CHS) + Sources  (Visto 237 veces)

fuyunji123@gmail.com, c4nhsatcodong and 1 Guest are viewing this topic.

Online Heimdall Posteado: September 24, 2025, 10:13:44 AM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 39
  • Gracias recibida: 490
  • is
Buenas gente hoy vengo a Aportar mis Files Ex405 Protocolo Chino con Fuentes Completas de ambos lados: Servidor y Cliente. Los archivos tienen un funcionamiento aceptable, aún así tienen bugs, hay cosas por resolver a continuación dejo una lista de los bugs conocidos de estos files:

Code: [Select]
Bugs:

1. Custom Pets no se refrescan al cambiar de personaje o warpear.
2. Los Efectos de los Custom Pets no son visibles en el Select Character.
3. El mensaje de bienvenida a los mapas se muestra alrrevez.
4. El evento mouse hover sobre la flecha para cambiar los botones en el inventario genera que la fuente del Zen se muestre como NO-Bold.
5. El señalador de los ultimos 4 slots del inventario tiene bug de posición en modo: "Jewels Pack".
6. Al equipar un pet rudolf y cambiar de personaje el personaje aparece volando sin alas.

bueno estos son los bugs que yo le conozco, sí encuentran alguno más solo reportenlo, se les deja fuentes completas de ambos lados ordenadas para que quien quiera arreglar estos problemas bien pueda hacerlo.

Capturas en el Juego:











Descarga:



Créditos:

XV-TEAM



Offline Lotto4K4k #1 Posteado: September 25, 2025, 12:38:37 AM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 5
  • Gracias recibida: 1
  • br

Marcado como mejor respuesta por: Heimdall Posteado Today at 01:10:14 AM

Online Heimdall #2 Posteado: Today at 05:06:11 AM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 39
  • Gracias recibida: 490
  • is
Bueno voy a empezar a postear los arreglos para algunos bugs que estuve haciendo... voy a tratar de explicarlo lo más preciso que me sea posible para que todos puedan aplicar los mismos arreglos a los archivos originales y usarlos, de todas maneras pienso actualizar los archivos fuente y binarios del primer post así que sí ya descargaste anteriormente los archivos y no tenés ganas de prestar atención a los arreglos acá mensionados. simplemente volvé a descargar todos los archivos y reemplazá el contenido de tu rar anterior con el nuevo.

Bugs:

1. Custom Pets no se refrescan al cambiar de personaje o warpear. ARREGLADO

Este bug solo fué un producto de algunas equivocaciones mías en el código del GameServer, pero también del lado del cliente errores lógicos, paso a explicarlo mas detalladamente. primero del lado del servidor ustedes tienen algo como esto:

en el archivo: DSProtocol.cpp, en la función: //0042C8D0 - identical
void JGPGetCharList(BYTE *lpRecv) (LA QUE NO ESTÁ COMENTADA OSEA LA SEGUNDA).

tienen esto:

Code: [Select]
// Custom Wings
if( IS_NEWWINGS(TempInventory[EQUIPMENT_WING]+ITEMGET(12,0)) )
{
pCList.CharSet[5] |= eTYPE_WING;
pCList.CharSet[16] |= (BYTE)(TempInventory[EQUIPMENT_WING] - 236 + 1) << 5;
//pCList.CharSet[17] |= (BYTE)(TempInventory[EQUIPMENT_WING] - 236 + 1) << 1;
}

tienen que cambiarlo por esto:

Code: [Select]
// Custom Wings
if( IS_NEWWINGS(TempInventory[EQUIPMENT_WING]+ITEMGET(12,0)) )
{
pCList.CharSet[5] |= eTYPE_WING;
pCList.CharSet[17] |= (BYTE)(TempInventory[EQUIPMENT_WING] - 236 + 1) << 5;
}

luego para los pets ustedes tienen esto:

Code: [Select]
// Custom Pets
if( IS_NEWPETS(TempInventory[EQUIPMENT_HELPER]+ITEMGET(13,0)) )
{
pCList.CharSet[5] |= eTYPE_PETS;
pCList.CharSet[17] |= (BYTE)(TempInventory[EQUIPMENT_HELPER] - 150 + 1) << 1;
//pCList.CharSet[18] |= (BYTE)(TempInventory[EQUIPMENT_HELPER] - 150 + 1) << 1;
}

y tienen que cambiarlo por esto:

Code: [Select]
// Custom Pets
if( IS_NEWPETS(TempInventory[EQUIPMENT_HELPER]+ITEMGET(13,0)) )
{
pCList.CharSet[5] |= eTYPE_PETS;
pCList.CharSet[17] |= (BYTE)(TempInventory[EQUIPMENT_HELPER] - 150 + 1) << 1;
}

ahora bien esto solo sirve para arreglar el preview de pets y alas en el select character, para arreglarlos en el juego hay que cambiar la función: "void gObjMakePreviewCharSet" que se encuentra en: "User.cpp" también, dejandola de está manera (RECORDANDO CAMBIAR LA QUE NO ESTÁ COMENTADA OSEA LA SEGUNDA):

ustedes tienen esto:

Code: [Select]
if((lpObj->pInventory[EQUIPMENT_WING].m_Type >= ITEMGET(12,236) 
&& lpObj->pInventory[EQUIPMENT_WING].m_Type <= ITEMGET(12,MAX_CUSTOM_ITEMS)))
{
lpObj->CharSet[5] |= eTYPE_WING;
lpObj->CharSet[16] |= ((lpObj->pInventory[EQUIPMENT_WING].m_Type - 236) + 1 << 5);
//lpObj->CharSet[17] |= ((lpObj->pInventory[EQUIPMENT_WING].m_Type - 236) + 1 << 1);
}

if((lpObj->pInventory[EQUIPMENT_HELPER].m_Type >= ITEMGET(13,150)
&& lpObj->pInventory[EQUIPMENT_HELPER].m_Type <= ITEMGET(13,MAX_CUSTOM_ITEMS)))
{
lpObj->CharSet[5] |= eTYPE_PETS;
lpObj->CharSet[17] |= ((lpObj->pInventory[EQUIPMENT_WING].m_Type - 236) + 1 << 1);
//lpObj->CharSet[18] |= ((lpObj->pInventory[EQUIPMENT_HELPER].m_Type - 150) + 1 << 1);
}

y tienen que tenerlo así:

Code: [Select]
if((lpObj->pInventory[EQUIPMENT_WING].m_Type >= ITEMGET(12,236) 
&& lpObj->pInventory[EQUIPMENT_WING].m_Type <= ITEMGET(12,MAX_CUSTOM_ITEMS)))
{
lpObj->CharSet[5] |= eTYPE_WING;
lpObj->CharSet[17] |= ((lpObj->pInventory[EQUIPMENT_WING].m_Type - 236) + 1 << 5);
}

if((lpObj->pInventory[EQUIPMENT_HELPER].m_Type >= ITEMGET(13,150)
&& lpObj->pInventory[EQUIPMENT_HELPER].m_Type <= ITEMGET(13,MAX_CUSTOM_ITEMS)))
{
lpObj->CharSet[5] |= eTYPE_PETS;
lpObj->CharSet[17] |= ((lpObj->pInventory[EQUIPMENT_HELPER].m_Type - 150) + 1 << 1);
}

Bien! eso es todo del lado del servidor, pero aún nos falta corregir el lado del cliente! así que vamos a la: Engine.dll!

una vez en la fuente de la Engine.dll ustedes tienen que ir al archivo llamado: Preview.cpp

y buscar esta función: "void cPreview::ChangeCharacterExt(int Index,BYTE*CharSet,int UseStruct,int Mode)"

una vez que la encuentren dentro verán algo como esto:

Code: [Select]
BYTE CustomPets		= CharSet[16]>>1;
BYTE CustomWings = CharSet[15]>>5;

tienen que cambiarlo por esto:

Code: [Select]
BYTE CustomWings	= CharSet[16]>>5;
BYTE CustomPets = CharSet[16]>>1;

todo listo! con esas modificaciones tanto en el GameServer como en la Engine.dll tienen arreglados el bug 1 y tambien el bug 6.

"1. Custom Pets no se refrescan al cambiar de personaje o warpear." -> ARREGLADO
"6. Al equipar un pet rudolf y cambiar de personaje el personaje aparece volando sin alas." -> ARREGLADO

Créditos por los Fixes:

XV-TEAM


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
1 Replies
7791 Views
Last post May 08, 2017, 12:22:59 PM
by ZabiinoOo
57 Replies
18231 Views
Last post January 30, 2024, 02:14:11 PM
by myway
1 Replies
589 Views
Last post August 03, 2021, 07:28:01 PM
by mncastillo
2 Replies
611 Views
Last post September 14, 2025, 09:02:48 AM
by elfazor
8 Replies
2055 Views
Last post April 04, 2025, 11:36:23 PM
by beibei