¡Desarrollando Helbreath para jugadores por jugadores!
 
ÍndicePublicacionesBuscarMiembrosGrupos de UsuariosRegistrarseConectarse
Buscar
 
 

Resultados por:
 

 


Rechercher Búsqueda avanzada
Últimos temas
» Helbreath Chaos Legion (Files + Sources)
12/4/2017, 6:23 am por nicoprs

» Helbreath Server V 3.82
12/4/2017, 3:47 am por nicoprs

» HB Adventure ( FILES + SRC + SPRITES)
12/4/2017, 2:59 am por nicoprs

» Helbreath Windows (Files + Sources)
12/4/2017, 2:49 am por nicoprs

» HB Centenario (SRC+Server+Files)
12/3/2017, 10:26 pm por nicoprs

» [SRC+FILES] HGServer-Client-Files
10/19/2017, 11:25 am por twal

» Cambiar max level Server files 3.82
9/13/2017, 10:41 pm por GM3

» Cambiar max level Server files 3.82
9/12/2017, 4:26 pm por nicoprs

» Únase a nosotros de nuevo en http://helbreath.online/
8/24/2017, 9:53 pm por Genesis

» Cual es la respuesta a la pregunta del nuevo foro?
8/24/2017, 9:50 pm por Genesis

» Pit clops puerta elvine d2
8/3/2017, 8:45 pm por kamikaze

» SPRITE PUNTERO
7/22/2017, 7:36 pm por Maty Vega

Los posteadores más activos del mes
nicoprs
 
Rankings
Helbreath Top 10
Helbreath Top 50
Diciembre 2017
LunMarMiérJueVieSábDom
    123
45678910
11121314151617
18192021222324
25262728293031
CalendarioCalendario

Comparte | 
 

 [CODE] Pits en MiniMap

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Centuu.-
Level 55/180
Level 55/180
avatar

Coding Lvl (C++) :
5 / 55 / 5

Desde : 26/11/2014
Nación : Elvine
Posts : 47

MensajeTema: [CODE] Pits en MiniMap   4/2/2017, 9:12 pm

Este código permite mostrar los Pits en el Mapa maximizado, todo se realiza desde el cliente..

En la función 
Código:
CGame::DrawDialogBox_GuideMap

Buscamos
Código:
if( (m_dwCurTime - m_dwMonsterEventTime) < 30000 )
 { if( (m_dwCurTime%500)< 370 )
 { if( m_sEventX >= shX && m_sEventX <= shX+128 && m_sEventY >= shY && m_sEventY <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + m_sEventX - shX, sY + m_sEventY -shY, m_sMonsterID, m_dwCurTime);
 }
 }else
 { m_dwMonsterEventTime = 0;
 m_sMonsterID = 0;
 }

Y abajo agregamos
Código:
if( m_cMapIndex == 11 ) { // Aresden
 // Slime
 if ( 141 >= shX && 141 <= shX+128 && 240 >= shY && 240 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 141 - shX, sY + 240 - shY, 10, m_dwCurTime);
 if ( 253 >= shX && 253 <= shX+128 && 203 >= shY && 203 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 253 - shX, sY + 203 - shY, 10, m_dwCurTime);
 if ( 43 >= shX && 43 <= shX+128 && 182 >= shY && 182 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 43 - shX, sY + 182 - shY, 10, m_dwCurTime);
 if ( 122 >= shX && 122 <= shX+128 && 50 >= shY && 50 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 122 - shX, sY + 50 - shY, 10, m_dwCurTime);
 // Snake
 if ( 203 >= shX && 203 <= shX+128 && 236 >= shY && 236 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 203 - shX, sY + 236 - shY, 22, m_dwCurTime);
 // Scorpion
 if ( 102 >= shX && 102 <= shX+128 && 36 >= shY && 36 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 102 - shX, sY + 36 - shY, 17, m_dwCurTime);
 }
 else if( m_cMapIndex == 3 ) { // Elvine
 // Slime
 if ( 154 >= shX && 154 <= shX+128 && 38 >= shY && 38 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 154 - shX, sY + 38 - shY, 10, m_dwCurTime);
 if ( 54 >= shX && 54 <= shX+128 && 65 >= shY && 65 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 54 - shX, sY + 65 - shY, 10, m_dwCurTime);
 if ( 135 >= shX && 135 <= shX+128 && 248 >= shY && 248 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 135 - shX, sY + 248 - shY, 10, m_dwCurTime);
 if ( 240 >= shX && 240 <= shX+128 && 214 >= shY && 214 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 240 - shX, sY + 214 - shY, 10, m_dwCurTime);
 if ( 260 >= shX && 260 <= shX+128 && 184 >= shY && 184 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 260 - shX, sY + 184 - shY, 10, m_dwCurTime);
 // Snake
 if ( 48 >= shX && 48 <= shX+128 && 202 >= shY && 202 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 48 - shX, sY + 202 - shY, 22, m_dwCurTime);
 // Scorpion
 if ( 127 >= shX && 127 <= shX+128 && 34 >= shY && 34 <= shY+128 )
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 127 - shX, sY + 34 - shY, 17, m_dwCurTime);
 }

Más abajo buscamos:
Código:
if( (G_dwGlobalTime - m_dwMonsterEventTime) < 30000 )
 { if( (m_dwCurTime%500)< 370 )
 { shX = (m_sEventX*128)/(m_pMapData->m_sMapSizeX);
 shY = (m_sEventY*128)/(m_pMapData->m_sMapSizeX);
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + shX, sY + shY, m_sMonsterID, m_dwCurTime);
 }
 }else
 { m_dwMonsterEventTime = 0;
 m_sMonsterID = 0;
 }

Y abajo de eso agregamos:
Código:
if( m_cMapIndex == 11 ) { // Aresden
 // Slime
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((141*128)/m_pMapData->m_sMapSizeX), sY + ((240*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((253*128)/m_pMapData->m_sMapSizeX), sY + ((203*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((43*128)/m_pMapData->m_sMapSizeX), sY + ((182*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((122*128)/m_pMapData->m_sMapSizeX), sY + ((50*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
 // Snake
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((203*128)/m_pMapData->m_sMapSizeX), sY + ((236*128)/m_pMapData->m_sMapSizeX), 22, m_dwCurTime);
 // Scorpion
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((102*128)/m_pMapData->m_sMapSizeX), sY + ((36*128)/m_pMapData->m_sMapSizeX), 17, m_dwCurTime);
 }
 else if( m_cMapIndex == 3 ) { // Elvine
 // Slime
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((154*128)/m_pMapData->m_sMapSizeX), sY + ((38*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((54*128)/m_pMapData->m_sMapSizeX), sY + ((65*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((135*128)/m_pMapData->m_sMapSizeX), sY + ((248*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((240*128)/m_pMapData->m_sMapSizeX), sY + ((214*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((260*128)/m_pMapData->m_sMapSizeX), sY + ((184*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
 // Snake
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((48*128)/m_pMapData->m_sMapSizeX), sY + ((202*128)/m_pMapData->m_sMapSizeX), 22, m_dwCurTime);
 // Scorpion
 m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((127*128)/m_pMapData->m_sMapSizeX), sY + ((34*128)/m_pMapData->m_sMapSizeX), 17, m_dwCurTime);
 }

Tanto minimizado como maximizado se verían los pits en el mini mapa

[Tienes que estar registrado y conectado para ver esa imagen]

Paso a explicar detalladamente:

Código:
m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((141*128)/m_pMapData->m_sMapSizeX), sY + ((240*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
Código:
141 = coordenada X
240 = coordenada Y
10 = ID npc

Para cambiar el tipo de NPC para mostrar cambian el ID (ver NPC.cfg)

Las coordenadas (X, Y) son las del mapa en general, por ejemplo, en la imagen estoy parado en (100, 48), sería exactamente donde se mostraría el Pit en el mapa.

Para agregar más mapas solo tienen que mirar el 'm_cMapIndex'

Código:
11 = Aresden
3 = Elvine
etc...

De esta función sacan el valor numérico de los mapas
Código:
CGame::GetOfficialMapName

Bueno, espero que les sirva.

Saludos.


Última edición por Centuu.- el 4/6/2017, 11:12 pm, editado 1 vez
Volver arriba Ir abajo
Ver perfil de usuario
LifeX
Level 91/180
Level 91/180


Coding Lvl (C++) :
5 / 55 / 5

Desde : 15/11/2014
Nación : Aresden
Posts : 89

MensajeTema: Re: [CODE] Pits en MiniMap   4/4/2017, 10:49 pm

This is very nice add-on indeed. Thanks Centuu-
Volver arriba Ir abajo
Ver perfil de usuario
Centuu.-
Level 55/180
Level 55/180
avatar

Coding Lvl (C++) :
5 / 55 / 5

Desde : 26/11/2014
Nación : Elvine
Posts : 47

MensajeTema: Re: [CODE] Pits en MiniMap   4/5/2017, 2:54 pm

Thanks to you. I've already fixed it to show pits minimized and maximized. Later i'm going to post the complete code.
Volver arriba Ir abajo
Ver perfil de usuario
Centuu.-
Level 55/180
Level 55/180
avatar

Coding Lvl (C++) :
5 / 55 / 5

Desde : 26/11/2014
Nación : Elvine
Posts : 47

MensajeTema: Re: [CODE] Pits en MiniMap   4/6/2017, 11:13 pm

Updated, shows pits maximized and minimized!
Volver arriba Ir abajo
Ver perfil de usuario
Admin
Moderador
Moderador
avatar

Coding Lvl (C++) :
1 / 51 / 5

Desde : 17/08/2013
Nación : Traveller
Posts : 197

MensajeTema: Re: [CODE] Pits en MiniMap   4/10/2017, 3:37 am

Thanks a lot [Tienes que estar registrado y conectado para ver este vínculo]

________________________________________
Help will always be given at Community Warehouse Helbreath to those who ask for it.
Volver arriba Ir abajo
Ver perfil de usuario
KenZoB
Level 55/180
Level 55/180
avatar

Coding Lvl (C++) :
2 / 52 / 5

Desde : 05/11/2014
Nación : Elvine
Posts : 46

MensajeTema: Re: [CODE] Pits en MiniMap   4/10/2017, 6:31 pm

[Tienes que estar registrado y conectado para ver esa imagen]

fijate que cuando maximizas el mapa aparecen los npc en el minimap! tienes que fixiar esa parte

________________________________________
[Tienes que estar registrado y conectado para ver esa imagen]
Volver arriba Ir abajo
Ver perfil de usuario
Centuu.-
Level 55/180
Level 55/180
avatar

Coding Lvl (C++) :
5 / 55 / 5

Desde : 26/11/2014
Nación : Elvine
Posts : 47

MensajeTema: Re: [CODE] Pits en MiniMap   4/10/2017, 7:20 pm

Es raro que te aparezca así! Fijate tus MapIndex que coincidan con tus mapas... Yo lo tengo agregado y no me sale de esa manera.
Volver arriba Ir abajo
Ver perfil de usuario
Centuu.-
Level 55/180
Level 55/180
avatar

Coding Lvl (C++) :
5 / 55 / 5

Desde : 26/11/2014
Nación : Elvine
Posts : 47

MensajeTema: Re: [CODE] Pits en MiniMap   4/10/2017, 9:43 pm

Te dejo la función para que compares:

Código:

void CGame::DrawDialogBox_GuideMap(short msX, short msY, char cLB)
{int  m_iMaxMapIndex  = DEF_SPRID_INTERFACE_GUIDEMAP + m_cMapIndex +1;
 int  m_iMinMapIndex  = DEF_SPRID_INTERFACE_GUIDEMAP;
 int  m_iMinMapSquare  = m_cMapIndex ;
 int i;
 //telescope.pak:  frames 1..31 <=> DEF_SPRID_INTERFACE_GUIDEMAP +1...+31 <=> m_cMapIndex 0..30
 //telescope1.pak: frames 1..3  <=> DEF_SPRID_INTERFACE_GUIDEMAP +36..+38 <=> m_cMapIndex 35..37 et +
   if( m_cMapIndex < 0 ) return;
   if (m_cMapIndex >= 35)
   {   m_iMaxMapIndex  = DEF_SPRID_INTERFACE_GUIDEMAP + m_cMapIndex +1;
      m_iMinMapIndex  = DEF_SPRID_INTERFACE_GUIDEMAP + 35;
      m_iMinMapSquare = m_cMapIndex - 35;
   }
   short sX, sY, shX, shY, szX, szY;
   sX = m_stDialogBoxInfo[9].sX;
   sY = m_stDialogBoxInfo[9].sY;
   szX = m_stDialogBoxInfo[9].sSizeX;
   szY = m_stDialogBoxInfo[9].sSizeY;
   if( sX < 20 ) sX = 0;
   if( sY < 20 ) sY = 0;
#ifdef res
   if( sX > 800-128-20 ) sX = 800-128;
   if( sY > 527-128-20 ) sY = 527-128;
#else
   if( sX > 640-128-20 ) sX = 640-128;
   if( sY > 427-128-20 ) sY = 427-128;
#endif
   for( shX=-2 ; shX<130 ; shX++ )
   {
      m_DDraw.PutPixel( sX+shX, sY-2  , 50,50,50);
      m_DDraw.PutPixel( sX+shX, sY-1  , 50,50,50);
      m_DDraw.PutPixel( sX+shX, sY+128, 50,50,50);
      m_DDraw.PutPixel( sX+shX, sY+129, 50,50,50);
   }
   for( shY=-2 ; shY<130 ; shY++ )
   {
      m_DDraw.PutPixel( sX-2  , sY+shY, 50,50,50);
      m_DDraw.PutPixel( sX-1  , sY+shY, 50,50,50);
      m_DDraw.PutPixel( sX+128, sY+shY, 50,50,50);
      m_DDraw.PutPixel( sX+129, sY+shY, 50,50,50);
   }
   if( m_bZoomMap )
   {   shX = m_sPlayerX-64;
      shY = m_sPlayerY-64;
      if( shX < 0 ) shX = 0;
      if( shY < 0 ) shY = 0;
      if( shX > m_pMapData->m_sMapSizeX-128 ) shX = m_pMapData->m_sMapSizeX-128;
      if( shY > m_pMapData->m_sMapSizeY-128 ) shY = m_pMapData->m_sMapSizeY-128;
      if (m_bDialogTrans) m_pSprite[m_iMaxMapIndex]->PutShiftTransSprite2(sX, sY, shX, shY, 0, m_dwCurTime );
      else m_pSprite[m_iMaxMapIndex]->PutShiftSpriteFast(sX, sY, shX, shY, 0, m_dwCurTime );
      
      if (m_iPartyStatus != NULL)
      {
         for (i = 0; i <= DEF_MAXPARTYMEMBERS; i++)
         {         
            if (strlen(m_stPartyMemberNameList[i].cName) != 0)
               if (memcmp(PartyMapName[i], m_cMapName, 12) == 0)
                  if (memcmp(m_stPartyMemberNameList[i].cName, m_cPlayerName, 12) == 0)
                     m_pSprite[DEF_SPRID_INTERFACE_ND_CRUSADE]->PutSpriteFast(sX - shX + m_sPlayerX, sY - shY + m_sPlayerY, 37, m_dwCurTime);
                  else
                     if( iParty_sX[i] >= shX && iParty_sX[i] <= shX+128 && iParty_sY[i] >= shY && iParty_sY[i] <= shY+128 )
                        m_pSprite[DEF_SPRID_INTERFACE_ND_CRUSADE]->PutSpriteFast(sX - shX + iParty_sX[i], sY - shY + iParty_sY[i], 38, m_dwCurTime);
         }
      }
      else
         m_pSprite[DEF_SPRID_INTERFACE_ND_CRUSADE]->PutSpriteFast(sX - shX + m_sPlayerX, sY - shY + m_sPlayerY, 37, m_dwCurTime);

      if( (m_dwCurTime - m_dwMonsterEventTime) < 30000 )
      {   if( (m_dwCurTime%500)< 370 )
         {   if( m_sEventX >= shX && m_sEventX <= shX+128 && m_sEventY >= shY && m_sEventY <= shY+128 )
               m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + m_sEventX - shX, sY + m_sEventY -shY, m_sMonsterID, m_dwCurTime);
         }
      }else
      {   m_dwMonsterEventTime = 0;
         m_sMonsterID = 0;
      }

      // centuu - mostrar pits en mapa CHICO
      if( m_cMapIndex == 11 ) { // Aresden
         // Slime
         if   ( 141 >= shX && 141 <= shX+128 && 240 >= shY && 240 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 141 - shX, sY + 240 - shY, 10, m_dwCurTime);
         if   ( 253 >= shX && 253 <= shX+128 && 203 >= shY && 203 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 253 - shX, sY + 203 - shY, 10, m_dwCurTime);
         if   ( 43 >= shX && 43 <= shX+128 && 182 >= shY && 182 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 43 - shX, sY + 182 - shY, 10, m_dwCurTime);
         if   ( 122 >= shX && 122 <= shX+128 && 50 >= shY && 50 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 122 - shX, sY + 50 - shY, 10, m_dwCurTime);
         // Snake
         if   ( 203 >= shX && 203 <= shX+128 && 236 >= shY && 236 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 203 - shX, sY + 236 - shY, 22, m_dwCurTime);
         // Scorpion
         if   ( 102 >= shX && 102 <= shX+128 && 36 >= shY && 36 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 102 - shX, sY + 36 - shY, 17, m_dwCurTime);
      }
      else if( m_cMapIndex == 3 ) { // Elvine
         // Slime
         if   ( 154 >= shX && 154 <= shX+128 && 38 >= shY && 38 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 154 - shX, sY + 38 - shY, 10, m_dwCurTime);
         if   ( 54 >= shX && 54 <= shX+128 && 65 >= shY && 65 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 54 - shX, sY + 65 - shY, 10, m_dwCurTime);
         if   ( 135 >= shX && 135 <= shX+128 && 248 >= shY && 248 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 135 - shX, sY + 248 - shY, 10, m_dwCurTime);
         if   ( 240 >= shX && 240 <= shX+128 && 214 >= shY && 214 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 240 - shX, sY + 214 - shY, 10, m_dwCurTime);
         if   ( 260 >= shX && 260 <= shX+128 && 184 >= shY && 184 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 260 - shX, sY + 184 - shY, 10, m_dwCurTime);
         // Snake
         if   ( 48 >= shX && 48 <= shX+128 && 202 >= shY && 202 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 48 - shX, sY + 202 - shY, 22, m_dwCurTime);
         // Scorpion
         if   ( 127 >= shX && 127 <= shX+128 && 34 >= shY && 34 <= shY+128 )
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + 127 - shX, sY + 34 - shY, 17, m_dwCurTime);
      }

   }else // Sans zoom
   {   if (m_bDialogTrans) m_pSprite[m_iMinMapIndex]->PutTransSprite2(sX, sY, m_iMinMapSquare, m_dwCurTime);
      else m_pSprite[m_iMinMapIndex]->PutSpriteFastNoColorKey(sX, sY, m_iMinMapSquare, m_dwCurTime);
      shX = (m_sPlayerX*128)/(m_pMapData->m_sMapSizeX);
      shY = (m_sPlayerY*128)/(m_pMapData->m_sMapSizeX);
      
      if (m_iPartyStatus != NULL)
      {
         for (i = 0; i <= DEF_MAXPARTYMEMBERS; i++)
         {         
            if (strlen(m_stPartyMemberNameList[i].cName) != 0)
            {
               if (memcmp(PartyMapName[i], m_cMapName, 12) == 0)
               {               
                  if (i > 1)
                     m_pSprite[DEF_SPRID_INTERFACE_ND_CRUSADE]->PutSpriteFast(sX + shX, sY + shY, 37, m_dwCurTime);
                  else
                  {                  
                     shX = (iParty_sX[i]*128)/(m_pMapData->m_sMapSizeX);
                     shY = (iParty_sY[i]*128)/(m_pMapData->m_sMapSizeX);
                     if (memcmp(m_stPartyMemberNameList[i].cName, m_cPlayerName, 12) == 0)
                        m_pSprite[DEF_SPRID_INTERFACE_ND_CRUSADE]->PutSpriteFast(sX + shX, sY + shY, 37, m_dwCurTime);
                     else
                        m_pSprite[DEF_SPRID_INTERFACE_ND_CRUSADE]->PutSpriteFast(sX + shX, sY + shY, 38, m_dwCurTime);
                  }
               }
            }
         }
      }
      else
         m_pSprite[DEF_SPRID_INTERFACE_ND_CRUSADE]->PutSpriteFast(sX + shX, sY + shY, 37, m_dwCurTime);

      if( (G_dwGlobalTime - m_dwMonsterEventTime) < 30000 )
      {   if( (m_dwCurTime%500)< 370 )
         {   shX = (m_sEventX*128)/(m_pMapData->m_sMapSizeX);
            shY = (m_sEventY*128)/(m_pMapData->m_sMapSizeX);
            m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + shX, sY + shY, m_sMonsterID, m_dwCurTime);
         }
      }else
      {   m_dwMonsterEventTime = 0;
         m_sMonsterID = 0;
      }   

      // centuu - mostrar pits en mapa GRANDE
      if( m_cMapIndex == 11 ) { // Aresden
         // Slime
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((141*128)/m_pMapData->m_sMapSizeX), sY + ((240*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((253*128)/m_pMapData->m_sMapSizeX), sY + ((203*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((43*128)/m_pMapData->m_sMapSizeX), sY + ((182*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((122*128)/m_pMapData->m_sMapSizeX), sY + ((50*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
         // Snake
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((203*128)/m_pMapData->m_sMapSizeX), sY + ((236*128)/m_pMapData->m_sMapSizeX), 22, m_dwCurTime);
         // Scorpion
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((102*128)/m_pMapData->m_sMapSizeX), sY + ((36*128)/m_pMapData->m_sMapSizeX), 17, m_dwCurTime);
      }
      else if( m_cMapIndex == 3 ) { // Elvine
         // Slime
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((154*128)/m_pMapData->m_sMapSizeX), sY + ((38*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((54*128)/m_pMapData->m_sMapSizeX), sY + ((65*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((135*128)/m_pMapData->m_sMapSizeX), sY + ((248*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((240*128)/m_pMapData->m_sMapSizeX), sY + ((214*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((260*128)/m_pMapData->m_sMapSizeX), sY + ((184*128)/m_pMapData->m_sMapSizeX), 10, m_dwCurTime);
         // Snake
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((48*128)/m_pMapData->m_sMapSizeX), sY + ((202*128)/m_pMapData->m_sMapSizeX), 22, m_dwCurTime);
         // Scorpion
         m_pSprite[DEF_SPRID_INTERFACE_MONSTER]->PutSpriteFast(sX + ((127*128)/m_pMapData->m_sMapSizeX), sY + ((34*128)/m_pMapData->m_sMapSizeX), 17, m_dwCurTime);
      }
   }
   if( cLB != 0 ) return;
   if( msX >= sX && msX < sX+szY && msY >= sY && msY < sY+szY )
   {
      if( sY > 213 ) shY = sY - 17;
      else shY = sY + szY + 4;
      if( m_bZoomMap ) PutString( sX, shY, DEF_MSG_GUIDEMAP_MIN, RGB(200, 200, 120) );//"(-)
      else PutString( sX, shY, DEF_MSG_GUIDEMAP_MAX, RGB(200, 200, 120) );//"(+)

      if( m_bZoomMap )
      {
         shX = m_sPlayerX-64;
         shY = m_sPlayerY-64;
         if( shX < 0 ) shX = 0;
         if( shY < 0 ) shY = 0;
         if( shX > m_pMapData->m_sMapSizeX-128 ) shX = m_pMapData->m_sMapSizeX-128;
         if( shY > m_pMapData->m_sMapSizeY-128 ) shY = m_pMapData->m_sMapSizeY-128;
         shX += msX - sX;
         shY += msY - sY;
      }else
      {   shX = (msX-sX)*m_pMapData->m_sMapSizeX/128;
         shY = (msY-sY)*m_pMapData->m_sMapSizeX/128;
      }
      wsprintf( G_cTxt, "%d, %d", shX, shY );
      if( m_cMapIndex == 11 ) // Aresden: Fixed by Snoopy for v3.51 maps
      {       if( shX >  46 && shX <  66 && shY > 107 && shY < 127 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_MAGICTOWER );
         else if( shX > 103 && shX < 123 && shY > 86 && shY < 116 )  strcpy( G_cTxt, DEF_MSG_MAPNAME_GUILDHALL );
         else if( shX > 176 && shX < 196 && shY >  62 && shY < 82 )  strcpy( G_cTxt, DEF_MSG_MAPNAME_CATH );
         else if( shX > 135 && shX < 155 && shY > 113 && shY < 133 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_CITYHALL );
         else if( shX > 97 && shX < 117  && shY > 175 && shY < 195 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_WAREHOUSE );
         else if( shX > 223 && shX < 243 && shY > 124 && shY < 144 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_WAREHOUSE );
         else if( shX > 118 && shX < 138 && shY > 157 && shY < 177 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_SHOP );
         else if( shX > 148 && shX < 178 && shY > 188 && shY < 208 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_BLACKSMITH );
         else if( shX > 69 && shX < 89  && shY > 199 && shY < 219 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_DUNGEON );
         else if( shX > 21 && shX < 41  && shY > 266  && shY < 286 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_HUNT);
         else if( shX > 20 && shX < 40  && shY > 13  && shY < 33 )  strcpy( G_cTxt, DEF_MSG_MAPNAME_ML );
         else if( shX > 246 && shX < 266 && shY > 16  && shY < 36 )  strcpy( G_cTxt, DEF_MSG_MAPNAME_ML );
         else if( shX > 265 && shX < 285 && shY > 195 && shY < 215 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_FARM);
         else if( shX > 88 && shX < 108 && shY > 150  && shY < 170 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_CMDHALL );
      }else if( m_cMapIndex == 3 ) // Elvine: Fixed by Snoopy for v3.51 maps
      {       if( shX >  170 && shX < 190 && shY >  65 && shY < 85 )      strcpy( G_cTxt, DEF_MSG_MAPNAME_MAGICTOWER );
         else if( shX >  67 && shX < 87 && shY > 130 && shY < 150 )  strcpy( G_cTxt, DEF_MSG_MAPNAME_GUILDHALL );
         else if( shX > 121 && shX < 141 && shY >  66 && shY < 86 )  strcpy( G_cTxt, DEF_MSG_MAPNAME_CATH );
         else if( shX > 135 && shX < 155 && shY > 117 && shY < 137 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_CITYHALL );
         else if( shX > 190 && shX < 213 && shY > 118 && shY < 138 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_WAREHOUSE );
         else if( shX > 73  && shX < 103 && shY > 165 && shY < 185 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_WAREHOUSE );
         else if( shX > 217 && shX < 237 && shY > 142 && shY < 162 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_SHOP );
         else if( shX > 216 && shX < 256 && shY > 99  && shY < 119 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_BLACKSMITH );
         else if( shX > 251 && shX < 271 && shY >  73 && shY < 93 )  strcpy( G_cTxt, DEF_MSG_MAPNAME_DUNGEON );
         else if( shX > 212 && shX < 232 && shY > 13  && shY < 33 )  strcpy( G_cTxt, DEF_MSG_MAPNAME_HUNT);
         else if( shX > 16 && shX < 36  && shY > 262 && shY < 282 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_ML );
         else if( shX > 244 && shX < 264 && shY > 248 && shY < 268 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_ML );
         else if( shX > 264 && shX < 284 && shY > 177 && shY < 207 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_FARM);
         else if( shX > 207 && shX < 227 && shY > 79  && shY < 99 )  strcpy( G_cTxt, DEF_MSG_MAPNAME_CMDHALL );
      }
      else if( m_cMapIndex == 5 ) // Elvine Farm: Fixed by Snoopy for v3.51 maps
      {       if( shX >  62 && shX < 82 && shY >  187 && shY < 207 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_WAREHOUSE );
         else if( shX > 81  && shX < 101 && shY > 169 && shY < 189 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_SHOP );
         else if( shX > 101 && shX < 131 && shY > 180 && shY < 200 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_BLACKSMITH );
         else if( shX > 130 && shX < 150 && shY > 195 && shY < 215 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_DUNGEON );
         else if( shX > 86  && shX < 106 && shY > 139 && shY < 159 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_BARRACK );
      }
      else if( m_cMapIndex == 6 ) // Areden's Farm: Fixed by Snoopy for v3.51 maps
      {       if( shX >  30 && shX < 50 && shY >  80 && shY < 100 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_WAREHOUSE );
         else if( shX > 55 && shX < 85 && shY > 80 && shY < 100 )  strcpy( G_cTxt, DEF_MSG_MAPNAME_BLACKSMITH );
         else if( shX > 52 && shX < 72 && shY > 80 && shY < 100 )  strcpy( G_cTxt, DEF_MSG_MAPNAME_SHOP );
         else if( shX > 70 && shX < 90 && shY > 60 && shY < 80 )  strcpy( G_cTxt, DEF_MSG_MAPNAME_DUNGEON );
         else if( shX > 45 && shX < 65 && shY > 123 && shY < 143 ) strcpy( G_cTxt, DEF_MSG_MAPNAME_BARRACK );
      }

      if (m_iPartyStatus != NULL)
      {
         for (i = 0; i <= DEF_MAXPARTYMEMBERS; i++)
         {         
            if (strlen(m_stPartyMemberNameList[i].cName) != 0)
               if (memcmp(PartyMapName[i], m_cMapName, 12) == 0)
                  if( shX >  iParty_sX[i]-5 && shX < iParty_sX[i]+5 && shY >  iParty_sY[i]-5 && shY < iParty_sY[i]+5 )
                     strcpy( G_cTxt, m_stPartyMemberNameList[i].cName );

         }
      }

      PutString( msX-10, msY-13, G_cTxt, RGB(200, 200, 120) );
   }
}
Volver arriba Ir abajo
Ver perfil de usuario
LifeX
Level 91/180
Level 91/180


Coding Lvl (C++) :
5 / 55 / 5

Desde : 15/11/2014
Nación : Aresden
Posts : 89

MensajeTema: Re: [CODE] Pits en MiniMap   4/10/2017, 10:29 pm

The code works with no issue.
Volver arriba Ir abajo
Ver perfil de usuario
ailyn
Level 31/180
Level 31/180
avatar

Coding Lvl (C++) :
1 / 51 / 5

Desde : 20/04/2017
Nación : Traveller
Posts : 23

MensajeTema: Re: [CODE] Pits en MiniMap   4/28/2017, 11:31 pm

[Tienes que estar registrado y conectado para ver esa imagen]

muestra de que si funciona el código ;)

me gustaría saber si es posible hacer que el código llame directamente a los " .txt " de los mapas? via un message el HG???? seria posible eso o no?
Volver arriba Ir abajo
Ver perfil de usuario
LifeX
Level 91/180
Level 91/180


Coding Lvl (C++) :
5 / 55 / 5

Desde : 15/11/2014
Nación : Aresden
Posts : 89

MensajeTema: Re: [CODE] Pits en MiniMap   4/29/2017, 1:20 am

I won't recommend it for several reasons.

1. The amount of data flow from hgserver to client on each map, and each mobs is too heavy for hgserver to send every 1 milisecond someone opens the map. And when ever you open the map it needs to send a response to hgserver to send over the data. Imagine you have 10 maps wih 10 mobs each and for 20 players.

2. All this is client base, so there is no resource hog into server. Everytime u open map is just a command for client to do so, and having the  images to draw into the dialogbox of guide map was done when you do loading also doesnt hog your CPu resources to render the image back to you again everytime you open the map.

3. Not all mobs are included in the monster.pak to show all mobs, only several. and if you ask HGServer to send data type of npcid towards client to read, if somehow you didnt put a NULL in client, it also will crash the client as it doesnt recognise it.

So what centuu did was the best of it already. If possible, all addons shouldn't add too much data flow between server and client. If you are running text based and not sql based,  this will also hog the resources as well. Too much things for a 2mb application hgserver to process.

But this is just my opinion. :-)
Volver arriba Ir abajo
Ver perfil de usuario
ailyn
Level 31/180
Level 31/180
avatar

Coding Lvl (C++) :
1 / 51 / 5

Desde : 20/04/2017
Nación : Traveller
Posts : 23

MensajeTema: Re: [CODE] Pits en MiniMap   4/29/2017, 6:54 am

[Tienes que estar registrado y conectado para ver este vínculo] escribió:
I won't recommend it for several reasons.

1. The amount of data flow from hgserver to client on each map, and each mobs is too heavy for hgserver to send every 1 milisecond someone opens the map. And when ever you open the map it needs to send a response to hgserver to send over the data. Imagine you have 10 maps wih 10 mobs each and for 20 players.

2. All this is client base, so there is no resource hog into server. Everytime u open map is just a command for client to do so, and having the  images to draw into the dialogbox of guide map was done when you do loading also doesnt hog your CPu resources to render the image back to you again everytime you open the map.

3. Not all mobs are included in the monster.pak to show all mobs, only several. and if you ask HGServer to send data type of npcid towards client to read, if somehow you didnt put a NULL in client, it also will crash the client as it doesnt recognise it.

So what centuu did was the best of it already. If possible, all addons shouldn't add too much data flow between server and client. If you are running text based and not sql based,  this will also hog the resources as well. Too much things for a 2mb application hgserver to process.

But this is just my opinion. :-)

Okey, thanks  LifeX
Volver arriba Ir abajo
Ver perfil de usuario
Contenido patrocinado




MensajeTema: Re: [CODE] Pits en MiniMap   

Volver arriba Ir abajo
 
[CODE] Pits en MiniMap
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

Permisos de este foro:No puedes responder a temas en este foro.
Comunidad Warehouse Helbreath :: Desarrollo de Helbreath :: Programación :: Códigos no ordenados-
Cambiar a: