📄 horse.cpp
字号:
{
ch->diedelay = 3; // 荤扼瘤绰悼累阑 玫玫洒...
ch->dieani = 80; // 32焊促 累栏搁 荤扼柳促.
ch->dieanitype = 0; //
}
}
else //辑滚客 楷搬等 版快
#endif
{
if( ch->blood_Set == false && ch->dieani == 0 )
{
ch->diedelay = 3;
ch->dieani = 80;
ch->blood_Set = true;
}
}
}
}
}
void cHorseRider::CheckMoveAnimation(LPCHARACTER ch)
{
int HorseNo=CheckHorseKind(ch);
if (ch->nCurrentFrame>=HorseRiderAniTable[CheckSex(ch)][HorseNo][ ch->nCurrentAction].nCount )
{
if( !IsDead(ch) && (ch->pathcount > 2 || ch->moveFlag == TRUE) )
{
CharDoAni_Moving(ch, ch->movetype );
}
else
{
ch->nCurrentFrame =0;
}
}
}
void cHorseRider::CheckAttackAnimation(LPCHARACTER ch)
{
int HorseNo=CheckHorseKind(ch);
if (ch->nCurrentFrame>=HorseRiderAniTable[CheckSex(ch)][HorseNo][ ch->nCurrentAction].nCount )
{
if( !IsDead(ch) && (ch->pathcount > 2 || ch->moveFlag == TRUE) )
{
CharDoAni_Moving(ch, ch->movetype );
}
else
{
ch->changeActionFlag = 0;
ch->nCurrentAction = ch->basicAction;
ch->nCurrentFrame = 0;
ch->offset.x = 0; ch->offset.y = 0;
if (ch->nActiveCombat == SHARK_MISSILE)
{
ch->attackanimationON = 0;
}
}
}
}
int cHorseRider::GetDistance(LPCHARACTER ch)
{
int HorseNo=CheckHorseKind(ch);
return HorseRiderAniTable[CheckSex(ch)][HorseNo][ ch->nCurrentAction].dx[ ch->nCurrentFrame];
}
inline void cHorseRider::FreeRiderSprite(int SexType,int SpriteKind)
{
MemFree(RiderPicBuffer[SexType][SpriteKind]);
}
inline void cHorseRider::ClearRiderSprite()
{
for (int i=0;i<HSEX_TYPE_MAX;i++)
{
for (int j=0;j<HRIDER_TYPE_MAX;j++)
{
FreeRiderSprite(i,j);
}
}
}
inline void cHorseRider::FreeRiderBandSprite(int SexType,int SpriteKind)
{
MemFree(RiderBandPicBuffer[SexType][SpriteKind]);
}
inline void cHorseRider::ClearRiderBandSprite()
{
for (int i=0;i<HSEX_TYPE_MAX;i++)
{
for (int j=0;j<HRIDER_TYPE_MAX;j++)
{
FreeRiderBandSprite(i,j);
}
}
}
inline void cHorseRider::FreeHorseSprite(int SpriteKind)
{
MemFree(HorsePicBuffer[SpriteKind]);
}
inline void cHorseRider::ClearHorseSprite()
{
for (int i=0;i<HHORSE_TYPE_MAX;i++)
{
FreeHorseSprite(i);
}
}
inline void cHorseRider::FreeHorseSaddleSprite(int SpriteKind)
{
MemFree(HorseSaddlePicBuffer[SpriteKind]);
}
inline void cHorseRider::ClearHorseSaddleSprite()
{
for (int i=0;i<HHORSE_TYPE_MAX;i++)
{
FreeHorseSaddleSprite(i);
}
}
inline void cHorseRider::FreeWeaponSprite(int SexType,int SpriteKind)
{
MemFree(WeaponPicBuffer[SexType][SpriteKind]);
}
inline void cHorseRider::ClearWeaponSprite()
{
// for (int i=0;i<HSEX_TYPE_MAX;i++)
// {
for (int j=0;j<HWEAPON_TYPE_MAX;j++)
{
FreeWeaponSprite(0,j);
FreeWeaponSprite(1,j);
}
// }
}
inline void cHorseRider::FreeGuardSprite(int SexType,int SpriteKind)
{
MemFree(GuardPicBuffer[SexType]);
}
inline void cHorseRider::ClearGuardSprite()
{
// for (int i=0;i<HSEX_TYPE_MAX;i++)
// {
// for (int j=0;j<HGUARD_TYPE_MAX;j++)
// {
//FreeGuardSprite(i,j);
FreeGuardSprite(0,0);
// }
// }
}
inline void cHorseRider::FreeRiderGradeSprite(int SexType,int SpriteKind,int GradeType)
{
MemFree(RiderGradePicBuffer[SexType][SpriteKind][GradeType]);
}
inline void cHorseRider::ClearRiderGradeSprite()
{
for (int i=0;i<HSEX_TYPE_MAX;i++)
{
for (int j=0;j<HHORSE_TYPE_MAX;j++)
{
for (int k=0;k<HGRADE_MAX;k++)
{
FreeRiderGradeSprite(i,j,k);
}
}
}
}
inline void cHorseRider::FreeHorseGradeSprite(int SpriteKind,int GradeType)
{
MemFree(HorseGradePicBuffer[SpriteKind][GradeType]);
}
inline void cHorseRider::ClearHorseGradeSprite()
{
for (int i=0;i<HHORSE_TYPE_MAX;i++)
{
for (int j=0;j<HHORSE_GRADE_MAX;j++)
{
FreeHorseGradeSprite(i,j);
}
}
}
inline void cHorseRider::FreeRiderMantleSprite(int SexType)
{
MemFree(RiderMantlePicBuffer[SexType]);
}
inline void cHorseRider::ClearRiderMantleSprite()
{
FreeRiderMantleSprite(0);
FreeRiderMantleSprite(1);
}
void cHorseRider::ClearSpriteAll()
{
ClearRiderSprite();
ClearHorseSprite();
ClearWeaponSprite();
ClearGuardSprite();
ClearRiderGradeSprite();
ClearHorseGradeSprite();
ClearRiderMantleSprite();
}
inline int cHorseRider::CheckSex(LPCHARACTER ch)
{
return ch->sprno;
}
inline int cHorseRider::CheckRiderKind(LPCHARACTER ch) // 背眉
{
return ch->RiderNo-1;
}
inline int cHorseRider::CheckHorseKind(LPCHARACTER ch) // 背眉
{
switch (ch->HorseNo)
{
case 0 :
case 1 :
case 2 :
case 3 : return ch->HorseNo-1; break;
default : return 0;
}
}
inline int cHorseRider::CheckWeaponKind(LPCHARACTER ch) // 背眉
{ //< CSD-031020
int Accessory=ch->accessory[2]; // 61篮 公扁狼 矫累锅龋
if (Accessory>=61&&Accessory<93)
{
Accessory-=61; // 0锅何磐
}
else
if (Accessory>=121&&Accessory<127)
{
Accessory-=121; // 0锅何磐
Accessory+=32; // 咯扁何磐 标惯单捞磐
}
else if (Accessory >= 160 && Accessory < 170)
{
Accessory -= 160;
return HorseEffectWeaponConvertTable[CheckSex(ch)][Accessory];
}
else if (Accessory >= 170 && Accessory < 180)
{
Accessory -= 170;
return HorseEffectWeaponConvertTable[CheckSex(ch)][Accessory];
}
else
{
return -1;
}
return HorseWeaponConvertTable[CheckSex(ch)][Accessory];
} //> CSD-031020
inline int cHorseRider::CheckGuardKind(LPCHARACTER ch) // 背眉
{
int Accessory=ch->accessory[3]-87; // 87篮 规菩狼 矫累锅龋
/* if (Accessory<0||Accessory>6)
{
MessageBox(NULL,"Error!!","Shield Sprite Number Error...",MB_OK);
return 0;
}*/
if (Accessory<0) return -1;
return 0;
}
inline int cHorseRider::CheckRiderGrade(LPCHARACTER ch) // 背眉
{
return ch->RiderGrade-1;
}
inline int cHorseRider::CheckHorseGrade(LPCHARACTER ch) // 背眉
{
return ch->HorseGrade-1;
}
inline Spr* cHorseRider::GetSpriteData(int SexType,int SpriteType,int SpriteKind,int Direction,int Frame)
{
switch(SpriteType)
{
case HSRIDER : return &RiderPic[SexType][SpriteKind][Direction][Frame];
case HSRBAND : return &RiderBandPic[SexType][SpriteKind][Direction][Frame];
case HSHORSE : return &HorsePic[SpriteKind][Direction][Frame];
case HSSADDLE : return &HorseSaddlePic[SpriteKind][Direction][Frame];
case HSWEAPON : return &WeaponPic[SexType][SpriteKind][Direction][Frame];
case HSSHEILD : return &GuardPic[SexType][Direction][Frame];
}
return NULL;
}
inline void cHorseRider::PutConfusion(LPCHARACTER ch)
{
DWORD Color1 = ReturnBlendRGB( 255, 0, 0);
DWORD Color2 = ReturnBlendRGB( 255, 100, 100);
DrawRGBColor(ch,Color1,Color2);
}
inline void cHorseRider::PutCurse(LPCHARACTER ch)
{
int Trans=5;
int Operation=2;
DrawFX(ch,Trans,Operation);
}
inline void cHorseRider::PutFrozen(LPCHARACTER ch)
{
DWORD Color1 = ReturnBlendRGB(0, 0, 255);
DWORD Color2 = ReturnBlendRGB(100, 100, 255);
DrawRGBColor(ch,Color1,Color2);
}
inline void cHorseRider::PutGhost(LPCHARACTER ch)
{
int Trans=10;
int Operation=1;
DrawFX(ch,Trans,Operation);
}
inline void cHorseRider::PutGreen(LPCHARACTER ch)
{
DWORD //color = ReturnBlendRGB( 116,254,178 );
//color = ReturnBlendRGB( 192,251,148 );
Color2 = ReturnBlendRGB( 125,251,226 );
DrawRGBColor(ch,0,Color2);
}
inline void cHorseRider::PutPoison(LPCHARACTER ch)
{
DWORD Color1 = ReturnBlendRGB( 0,255, 0);
DWORD Color2 = ReturnBlendRGB( 100, 255, 100);
DrawRGBColor(ch,Color1,Color2);
}
inline void cHorseRider::PutRed(LPCHARACTER ch)
{
DWORD Color2 = ReturnBlendRGB( 255,100,100 );
DrawRGBColor(ch,0,Color2);
}
inline void cHorseRider::PutSlow(LPCHARACTER ch)
{
DWORD Color1 = ReturnBlendRGB( 255, 255, 0);
DWORD Color2 = ReturnBlendRGB( 255, 255, 100);
DrawRGBColor(ch,Color1,Color2);
}
inline void cHorseRider::PutStone(LPCHARACTER ch)
{
DWORD Color1 = ReturnBlendRGB( 100, 100, 100);
DWORD Color2 = ReturnBlendRGB( 100, 100, 100);
DrawRGBColor(ch,Color1,Color2);
}
inline void cHorseRider::PutTransparency(LPCHARACTER ch)
{
if (ch==Hero)
{
int Trans=6;
int Operation=1;
DrawFX(ch,Trans,Operation);
}
else
{
DrawVoid(ch);
}
}
inline void cHorseRider::DrawRider(LPCHARACTER ch) // LTS HORSERIDER ADD
{
int RiderGrade=CheckRiderGrade(ch);
int SexType=CheckSex(ch);
int RiderKind=CheckRiderKind(ch);
int LocateX=ch->x-Mapx;
int LocateY=ch->y-Mapy;
int HorseNo=CheckHorseKind(ch);
int Frame=HorseRiderAniTable[CheckSex(ch)][HorseNo][ch->nCurrentAction].cFrame[ch->nCurrentFrame];
Spr* RiderSpr=GetSpriteData(SexType,HSRIDER,RiderKind,ch->direction,Frame);
Spr* RiderBandSpr=GetSpriteData(SexType,HSRBAND,RiderKind,ch->direction,Frame);
Spr* RiderGradeSpr=NULL;
Spr* RiderMantleSpr=NULL;
// if (ch->mantlecolor!=0&&ch->mantlecolor!=65535) RiderMantleSpr=&RiderMantlePic[SexType][ch->direction][Frame];
if (RiderGrade>=0) RiderGradeSpr=&RiderGradePic[SexType][RiderKind][RiderGrade][ch->direction][Frame]; // 裹困楷魂俊 巩力 积辫.
// if (ch->direction==DIRECTION_DOWN||ch->direction==DIRECTION_RIGHTDOWN||ch->direction==DIRECTION_LEFTDOWN)
// PutCompressedImageCharRGB(LocateX,LocateY,RiderMantleSpr,ch->mantlecolor);
// PutCompressedImage(LocateX,LocateY,RiderMantleSpr);
PutCompressedImage(LocateX,LocateY,RiderSpr);
PutCompressedImageCharRGB(LocateX,LocateY,RiderBandSpr, ch->bodycolor);
PutCompressedImage(LocateX,LocateY,RiderGradeSpr);
// if (ch->direction!=DIRECTION_DOWN&&ch->direction!=DIRECTION_RIGHTDOWN&&ch->direction!=DIRECTION_LEFTDOWN)
// PutCompressedImageCharRGB(LocateX,LocateY,RiderMantleSpr,ch->mantlecolor);
// PutCompressedImage(LocateX,LocateY,RiderMantleSpr);
}
inline void cHorseRider::DrawRiderColor(LPCHARACTER ch,DWORD Color1,DWORD Color2)
{
int RiderGrade=CheckRiderGrade(ch);
int SexType=CheckSex(ch);
int RiderKind=CheckRiderKind(ch);
int LocateX=ch->x-Mapx;
int LocateY=ch->y-Mapy;
int HorseNo=CheckHorseKind(ch);
int Frame=HorseRiderAniTable[CheckSex(ch)][HorseNo][ch->nCurrentAction].cFrame[ch->nCurrentFrame];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -