avatar_Fiesta

Как подключить HP bar и рисовать игровую панель в MU online

Автор Fiesta, 2011 Нояб. 25, 20:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

8BitCore

S1mple, а заголовок пакета кто объявлять будет?

#pragma pack(1)
struct PMSG_ATTACKRESULT_HPBAR
{
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; // E
};
#pragma pack()

// в GCDamageSend в конце
if ( gObj[aIndex].Type == OBJ_USER )
{
if ( gObj[TargetIndex].Type == OBJ_MONSTER )
{
pResult.Life = gObj[TargetIndex].Life;
pResult.MaxLife = gObj[TargetIndex].MaxLife;
}
else
{
pResult.Life = 0;
pResult.MaxLife = 0;
}

DataSend(aIndex, (LPBYTE)&pResult, pResult.h.size);
}

Furion

Спойлер
ЦитироватьЕсли каждый будет что то писать, то так можно и гайд слепить
Если каждый то да, но половина будут говорить что это бред и ничего не получится, как некоторые выше..
[свернуть]

DangeR

if ( gObj[TargetIndex].Type == OBJ_USER || gObj[TargetIndex].Type == OBJ_MONSTER)
{
pResult.Life = (DWORD)(gObj[TargetIndex].Life);
pResult.MaxLife = (DWORD)(gObj[TargetIndex].MaxLife + gObj[TargetIndex].AddLife);
}
else
{
pResult.Life = 0;
pResult.MaxLife = 0;
}
Не забываем про игрока и баф

Simp1e

Мож мне в скайп постучать о цене договоримся. скаип в личке

Furion

Так, давайте не будем про цены и личку - раз начали доведем до конца чтобы любой мог себе такое установить. Иначе они правы окажутся!

NightWish

#25
Цитата: Furion от 2013 Май 23, 20:24  Так, давайте не будем про цены и личку - раз начали доведем до конца чтобы любой мог себе такое установить. Иначе они правы окажутся!

Посмотри первый пост ТС-а, скачай сурсы, там всё под определённой версии, или вы хотите под все версии и сразу? примера не хватает?

Simp1e

#26
попробовал добавить её но на самом деле ставить себе такую штуку бессмысленно именно по этому исходнику потому что она кривая и на большинство мобов работает криво ... надо дописывать

DangeR

Цитироватьпопробовал добавить её но на самом деле ставить себе такую штуку бессмысленно именно по этому исходнику потому что она кривая и на большинство мобов работает криво ... надо дописывать
На каких это таких мобах ? =)
## здесь был скриншот ##

Simp1e

#28
У тебя явно не по этому исходнику ))) во первых цифры показывается а тут такого вообще нету и на самом главном видео от разработчика пишет на 1 минуте ровно Stone Golem Bug Serverside и полоса не отображается я еще на некоторых мобах заметил такое именно по исходнику что был выложен в 1 теме

Furion

По всей видимости у DangeR'a, другая реализация для этого мода.

f1x

Цитата: Furion от 2013 Май 28, 09:47  По всей видимости у DangeR'a, другая реализация для этого мода.
Это понятно стало и 6-ти летнему ребенку.

Или ты решил набить лишний пост ? :facepalm:

MaxSpeed

DangeR
can you share source hp bar of server, i add main ok but i can't add for server

MaxSpeed

I have a problem :



Server side :
void GCDamageSend(int aIndex, int TargetIndex, int AttackDamage, int MSBFlag, int MSBDamage, int iShieldDamage)
{
PMSG_ATTACKRESULT pResult;

PHeadSetB((LPBYTE)&pResult, PROTOCOL_ATTACK, 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);

// HPBAR
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);
}

}

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; // E
};

plz help me :( !

Похожие темы (5)

Сообщений: 37
Просмотров: 21598

Сообщений: 127
Просмотров: 38094

Сообщений: 32
Просмотров: 12415