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

Buscar
 
 

Resultados por:
 

 


Rechercher Búsqueda avanzada
Últimos temas
» [SRC+FILES] HGServer-Client-Files
Hoy a las 11:25 am por twal

» HB Centenario (SRC+Server+Files)
10/3/2017, 8:23 pm por djsmile02

» 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

» SPRITE PUNTERO
7/19/2017, 9:55 pm por Maty Vega

» [AYUDA]Creacion de Sprites desde 0
7/14/2017, 12:11 pm por kamikaze

» Microsoft Visual C++ 6.0
6/28/2017, 2:25 am por Chochan Micangelli

» Recomended Files (?)
6/27/2017, 4:37 pm por Johan Koopmann

Los posteadores más activos del mes
twal
 
djsmile02
 
Rankings
Helbreath Top 10
Helbreath Top 50
Octubre 2017
LunMarMiérJueVieSábDom
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendarioCalendario

Comparte | 
 

 [CODE] Atribute Stones

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
ailyn
Level 31/180
Level 31/180
avatar

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

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

MensajeTema: [CODE] Atribute Stones   4/30/2017, 3:57 pm

buenos dias, buenas tarde, buenas noches,

alguien podria decirme si es posible publicar el codigo de 

[CODE] Atribute Stones


porfavor si alguien lo tiene completo lo necesito le agradesco de hacerlo en adelanto
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] Atribute Stones   4/30/2017, 3:59 pm

[CODE] Atribute Stones

Citación :
Atribute Stones By HB-Tere Staff

_________________________

Estos son unos items, que al hacerle doble click y si se?alas un arma o algo por el estilo, le da determinados stats.
_________________________

EN LOS SOURCES DEL HG

+abrir game.cpp

+buscar en la funcion _bDepleteDestTypeItemUseEffect


case DEF_ITEMEFFECTTYPE_ARMORDYE


+agregar despues del ultimo break de ese case->


Codigo:
Código:
[ltr] case DEF_ITEMEFFECTTYPE_SWEAPONATTRIBUTE_STONE:
if ((sDestItemID >= 0) && (sDestItemID < DEF_MAXITEMS)) {
if (m_pClientList[ iClientH ]->m_pItemList[sDestItemID] != NULL) {
if (m_pClientList[ iClientH ]->m_pItemList[sDestItemID]->m_cCategory == 1) {

dwSWEType = (m_pClientList[ iClientH ]->m_pItemList[sDestItemID]->m_dwAttribute & 0x0000F000) >> 12;
dwSWEValue = (m_pClientList[ iClientH ]->m_pItemList[sDestItemID]->m_dwAttribute & 0x00000F00) >> 8;

if (dwSWEValue <= 0) {
DropItemID(iClientH,
m_pClientList[ iClientH ]->m_pItemList[ sDestItemID ]->m_sIDnum,
m_pClientList[ iClientH ]->m_sX,
m_pClientList[ iClientH ]->m_sY,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue1,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue2,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue3);

ItemDepleteHandler(iClientH, sDestItemID, FALSE, FALSE);
}

else {

if ((dwSWEValue >= 1) && ( dwSWEType == m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue1)) {
DropItemID(iClientH,
m_pClientList[ iClientH ]->m_pItemList[ sDestItemID ]->m_sIDnum,
m_pClientList[iClientH]->m_sX,
m_pClientList[iClientH]->m_sY,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue1,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue2 + dwSWEValue,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue3);

ItemDepleteHandler(iClientH, sDestItemID, FALSE, FALSE);
}
else {
wsprintf(cInfo, "El item seleccionado no puede ser mejorado.");
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_IPACCOUNTINFO, NULL, NULL, NULL, cInfo);
return FALSE;
}
}
SummonCelebrate(iClientH);
return TRUE;

}

else {
wsprintf(cInfo, "El item seleccionado no puede ser mejorado.");
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_IPACCOUNTINFO, NULL, NULL, NULL, cInfo);
return FALSE;
}

}
}



case DEF_ITEMEFFECTTYPE_PWEAPONATTRIBUTE_STONE:
if ((sDestItemID >= 0) && (sDestItemID < DEF_MAXITEMS)) {
if (m_pClientList[ iClientH ]->m_pItemList[sDestItemID] != NULL) {
if (m_pClientList[ iClientH ]->m_pItemList[sDestItemID]->m_cCategory == 1) {

dwSWEType = (m_pClientList[ iClientH ]->m_pItemList[sDestItemID]->m_dwAttribute & 0x00F00000) >> 20;
dwSWEValue = (m_pClientList[ iClientH ]->m_pItemList[sDestItemID]->m_dwAttribute & 0x000F0000) >> 16;

if (dwSWEValue <= 0) {
DropItemID(iClientH,
m_pClientList[ iClientH ]->m_pItemList[ sDestItemID ]->m_sIDnum,
m_pClientList[ iClientH ]->m_sX,
m_pClientList[ iClientH ]->m_sY,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue1,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue2,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue3);

ItemDepleteHandler(iClientH, sDestItemID, FALSE, FALSE);
}

else {

if ((dwSWEValue >= 1) && ( dwSWEType == m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue1)) {
DropItemID(iClientH,
m_pClientList[ iClientH ]->m_pItemList[ sDestItemID ]->m_sIDnum,
m_pClientList[iClientH]->m_sX,
m_pClientList[iClientH]->m_sY,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue1,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue2 + dwSWEValue,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue3);

ItemDepleteHandler(iClientH, sDestItemID, FALSE, FALSE);
}
else {
wsprintf(cInfo, "El item seleccionado no puede ser mejorado.");
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_IPACCOUNTINFO, NULL, NULL, NULL, cInfo);
return FALSE;
}
}
SummonCelebrate(iClientH);
return TRUE;

}

else {
wsprintf(cInfo, "El item seleccionado no puede ser mejorado.");
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_IPACCOUNTINFO, NULL, NULL, NULL, cInfo);
return FALSE;
}

}
}[/ltr]

+ en item.h agregar:

Codigo:
Código:
[ltr][Tienes que estar registrado y conectado para ver este vínculo] DEF_ITEMEFFECTTYPE_SWEAPONATTRIBUTE_STONE 34
[Tienes que estar registrado y conectado para ver este vínculo] DEF_ITEMEFFECTTYPE_PWEAPONATTRIBUTE_STONE 35[/ltr]

+ en game.cpp agregar:

Codigo:
Código:
[ltr]void CGame::DropItemID(int iClientH,int iItemID,int iX, int iY, int dwType, int dwValue,int cColor) {
class CItem * pItem;
pItem = new class CItem;
if (_bInitItemAttr(pItem, iItemID) == FALSE) {
delete pItem;
}
else {
if (dwType <= 10){

pItem->m_dwAttribute = NULL;
dwType = dwType << 20;
dwValue = dwValue << 16;
pItem->m_dwAttribute = pItem->m_dwAttribute | dwType | dwValue;
}
else if (dwType > 10){

dwType = dwType << 12;
dwValue = dwValue << 8;
pItem->m_dwAttribute = pItem->m_dwAttribute | dwType | dwValue;
}
pItem->m_cItemColor = cColor;
m_pMapList[ m_pClientList[iClientH]->m_cMapIndex ]->bSetItem(iX, iY, pItem);
SendEventToNearClient_TypeB(MSGID_EVENT_COMMON, DEF_COMMONTYPE_ITEMDROP, m_pClientList[iClientH]->m_cMapIndex,iX, iY, pItem->m_sSprite, pItem->m_sSpriteFrame, pItem->m_cItemColor, pItem->m_dwAttribute); // v1.4
}
}

void CGame::SummonCelebrate(int iClientH) {
char seps[] = "= \t\n";
char cOwnerType;
short sOwnerH, sType;
int dX1, dY1, dX2, dX3, dY2, dY3;
int ix, iy;

if (m_pClientList[iClientH] == NULL) return;
if (m_pClientList[iClientH]->m_bIsInitComplete == FALSE) return;
if (m_pClientList[iClientH]->m_bIsKilled == TRUE) return;
if (m_pClientList[iClientH]->m_bIsOnServerChange == TRUE) return;

sType = 14;

dX1 = m_pClientList[iClientH]->m_sX;
dX2 = m_pClientList[iClientH]->m_sX - 1;
dX3 = m_pClientList[iClientH]->m_sX + 1;

dY1 = m_pClientList[iClientH]->m_sY;
dY2 = m_pClientList[iClientH]->m_sY - 1;
dY3 = m_pClientList[iClientH]->m_sY + 1;

switch (m_pMagicConfigList[sType]->m_sType) {
case DEF_MAGICTYPE_HPUP_SPOT:
m_pMapList[m_pClientList[iClientH]->m_cMapIndex]->GetOwner(&sOwnerH, &cOwnerType, dX1, dY1);
Effect_HpUp_Spot(iClientH, DEF_OWNERTYPE_PLAYER, sOwnerH, cOwnerType, m_pMagicConfigList[sType]->m_sValue4, m_pMagicConfigList[sType]->m_sValue5, m_pMagicConfigList[sType]->m_sValue6);

SendEventToNearClient_TypeB(MSGID_EVENT_COMMON, DEF_COMMONTYPE_MAGIC, m_pClientList[iClientH]->m_cMapIndex,
m_pClientList[iClientH]->m_sX, m_pClientList[iClientH]->m_sY, dX1, dY1, (sType + 100), m_pClientList[iClientH]->m_sType);

break;
case DEF_MAGICTYPE_SPDOWN_AREA:
m_pMapList[m_pClientList[iClientH]->m_cMapIndex]->GetOwner(&sOwnerH, &cOwnerType, dX1, dY1);

if (bCheckResistingMagicSuccess(m_pClientList[iClientH]->m_cDir, sOwnerH, cOwnerType, 95) == FALSE) {
Effect_SpDown_Spot(iClientH, DEF_OWNERTYPE_PLAYER, sOwnerH, cOwnerType, m_pMagicConfigList[sType]->m_sValue4, m_pMagicConfigList[sType]->m_sValue5, m_pMagicConfigList[sType]->m_sValue6);
}

for (iy = (dY1 - m_pMagicConfigList[sType]->m_sValue3); iy <= (dY1 + m_pMagicConfigList[sType]->m_sValue3); iy++)
for (ix = (dX1 - m_pMagicConfigList[sType]->m_sValue2); ix <= (dX1 + m_pMagicConfigList[sType]->m_sValue2); ix++) {
m_pMapList[m_pClientList[iClientH]->m_cMapIndex]->GetOwner(&sOwnerH, &cOwnerType, ix, iy);

if (bCheckResistingMagicSuccess(m_pClientList[iClientH]->m_cDir, sOwnerH, cOwnerType, 95) == FALSE) {
Effect_SpDown_Spot(iClientH, DEF_OWNERTYPE_PLAYER, sOwnerH, cOwnerType, m_pMagicConfigList[sType]->m_sValue7, m_pMagicConfigList[sType]->m_sValue8, m_pMagicConfigList[sType]->m_sValue9);
}

SendEventToNearClient_TypeB(MSGID_EVENT_COMMON, DEF_COMMONTYPE_MAGIC, m_pClientList[iClientH]->m_cMapIndex, m_pClientList[iClientH]->m_sX, m_pClientList[iClientH]->m_sY, dX1, dY1, (sType + 100), m_pClientList[iClientH]->m_sType);
}

break;
}
}[/ltr]

+ en game.h declarar:

Codigo:
[code]void SummonCelebrate(int iClientH);
void DropItemID(int iClientH,int iItemID,int iX, int iY, int dwType, int dwValue,int cColor);
Y ahora los items que tienen que agregar son:

Codigo:
Código:
[ltr]Item = 1019 AncientStone 11 0 35 9 1 8 0 0 0 1 0 6 157 -110 1 -1 0 0 0 0 0 -1 42 6
Item = 1020 SharpStone 11 0 35 7 1 6 0 0 0 1 0 6 160 -110 1 -1 0 0 0 0 0 -1 42 0
Item = 1021 ExpStone 11 0 34 11 1 7 0 0 0 1 0 6 158 -110 1 -1 0 0 0 0 0 -1 42 0
Item = 1022 LuckyStone 11 0 34 12 1 7 0 0 0 1 0 6 161 -110 1 -1 0 0 0 0 0 -1 42 0[/ltr]

_____________


Sprites necesarios:

DESCARGAR

esta publicacion era del helbreathss pero ya no esta online en fin no logro poner este codigo siempre me da errores que no entiendo
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] Atribute Stones   5/1/2017, 11:07 am

After reviewing the code, there are some restriction and glitches in it, but overall its good in those specs. There is a lot for me to explain in terms of its restriction based on the code above, but with a bit of studying and coding, you can add and edit more stuffs. Just some corrections to make sure the code above works perfectly.

You will need to declare 

DWORD dwSWEType, dwSWEValue;

At the beginning of function _bDepleteDestTypeItemUseEffect

And you need to include

break;

in both the end function of the case 

DEF_ITEMEFFECTTYPE_SWEAPONATTRIBUTE_STONE
DEF_ITEMEFFECTTYPE_PWEAPONATTRIBUTE_STONE

in _bDepleteDestTypeItemUseEffect

Well shared.
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] Atribute Stones   5/1/2017, 12:57 pm

And, of course, we need the sprites.
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] Atribute Stones   5/1/2017, 8:20 pm

este es el error que me esta dando, ya he puesto el codigo desde que lo publique, no me explique cuando mensione la palabra error, el error consiste en que cuando le doy el atributo a un item permitido, entonces ese no se borra sino que se queda y hace un nuevo con el status ancient ejemplo..

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] Atribute Stones   5/4/2017, 10:10 am

Well, I don't have that issue. Probably you need to check and see if you have change any other codes.

DropItemID would be the function to give stats and also to drop the item on the floor.

The function is not dropping the item but instead adding a new item on it. Check the function.
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] Atribute Stones   5/4/2017, 4:58 pm

LifeX escribió:
Well, I don't have that issue. Probably you need to check and see if you have change any other codes.

DropItemID would be the function to give stats and also to drop the item on the floor.

The function is not dropping the item but instead adding a new item on it. Check the function.




if ((dwSWEValue >= 1) && ( dwSWEType == m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue1)) {
DropItemID(iClientH,
m_pClientList[ iClientH ]->m_pItemList[ sDestItemID ]->m_sIDnum,
m_pClientList[iClientH]->m_sX,
m_pClientList[iClientH]->m_sY,

m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue1,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue2 + dwSWEValue,
m_pClientList[ iClientH ]->m_pItemList[sItemIndex]->m_sItemEffectValue3);

ItemDepleteHandler(iClientH, sDestItemID, FALSE, FALSE);

}
Volver arriba Ir abajo
Ver perfil de usuario
Contenido patrocinado




MensajeTema: Re: [CODE] Atribute Stones   

Volver arriba Ir abajo
 
[CODE] Atribute Stones
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 :: Preguntas & Respuestas :: Preguntas-
Cambiar a: