alguem fez a parte do servidor para funcionar a HP???
Versão Imprimível
alguem fez a parte do servidor para funcionar a HP???
@Nam4, só Alterar a GCDamageSend, acredito eu... vai dar trabalho, pórem é ai que tem que alterar...
tente com isso
Não sei se irá funcionar, teste ai e responda aqui no tópico, só usei a Logica de como o gameserver trabalha ...Código:struct PMSG_ATTACKRESULT
{
PBMSG_HEAD h; // C1:DC
BYTE NumberH; // 3
BYTE NumberL; // 4
BYTE DamageH; // 5
BYTE DamageL; // 6
BYTE DamageType; // 7
BYTE btShieldDamageH; // 8
BYTE btShieldDamageL; // 9
DWORD Life; //A
DWORD MaxLife; //B
};
void GCDamageSend(int aIndex, int TargetIndex, int AttackDamage, int MSBFlag, int MSBDamage, int iShieldDamage)
{
PMSG_ATTACKRESULT pResult;
PHeadSetB((LPBYTE)&pResult, 0xDC, sizeof(pResult));
pResult.NumberH = SET_NUMBERH(TargetIndex);
pResult.NumberL = SET_NUMBERL(TargetIndex);
pResult.DamageH = SET_NUMBERH(AttackDamage);
pResult.DamageL = SET_NUMBERL(AttackDamage);
pResult.btShieldDamageH = SET_NUMBERH(iShieldDamage);
pResult.btShieldDamageL = SET_NUMBERL(iShieldDamage);
pResult.Life = gObj[TargetIndex].Life;
pResult.MaxLife = gObj[TargetIndex].MaxLife;
if ( MSBFlag != FALSE )
{
pResult.NumberH &= 0x7F;
pResult.NumberH |= 0x80;
}
pResult.DamageType = MSBDamage;
if ( gObj[TargetIndex].Type == OBJ_USER )
{
DataSend(TargetIndex, (LPBYTE)&pResult, pResult.h.size);
}
if ( cManager.WatchTargetIndex == TargetIndex || cManager.WatchTargetIndex == aIndex )
{
cManager.DataSend((LPBYTE)&pResult, pResult.h.size);
}
if ( gObj[aIndex].Type == OBJ_USER )
{
DataSend(aIndex, (LPBYTE)&pResult, pResult.h.size);
}
}
se não der certo de primeira, mude isso aqui para aIndex
pResult.Life = gObj[TargetIndex].Life;
pResult.MaxLife = gObj[TargetIndex].MaxLife;
só dar hook na Atual do GameServer para que está vire a Sua.
[]'s
vlw mlk, vou testar aqui agora e dou um parecer...
abraçss
----------------------------
Will,
vou ter que hookar tambem a cManager, porem creio que o hook dela seja em classe...
isso procede? ou n preciso hookar ela?
p/ que Motivo hooka a cmanager? não precisa, ali é bem facil, basta chamar os valores da mesma para serem usados na sua dll, exemplos de como fazer isso tem aos montes na Internet, não é facil, mas também não é dificil não...
[]'s
n entendi brow... pode explicar melhor? oO
toda classe pode ser chamada de dentro de uma DLL, pórem o Modo é diferente... tem sources na internet que mostram isso... sources famosas ainda, basta procurar pela internet.
[]'s
pelo q vi sobre esse cmanager, eh um comando obsoleto...comentei a linha vou testar
vlw nego!
----------------------------------
Edit
Nfunfo ainda will.. estou testando aki mas a barra n aparece
mas vlw do msm jeito... abraços
algum turorial pra colocar em diversos gs's e clientes? ^^
alguem poderia disponibilizar o download?? está off
A Source Fica Dando Erro Tem Como Fixar Esse Erro Não Quando Vai Criar a DLL?