📄 chardatatable.cpp
字号:
if( wave <= 0 ) return 0;
// if( wave > MAX_SOUND && wave != 9999 ) return 0;
/////////////////////////// 40% 犬伏肺 家府巢 ////////////////////////
//if( (wave>=66 && wave<=80) || (wave>=84 && wave<=98) || (wave>=267 && wave<=318)
// || wave==132 || wave==134 || wave==135 || wave==136 ) //扁钦苞 厚疙 家府狼 版快
//{
// if(rand()%5<2)
// return wave;
// else
// return 0;
//}
// wave 抛捞喉 亲格狼 蔼捞 9999牢 版快 某腐磐狼 厘馒等 厘厚 棺 NPC辆幅俊 蝶扼 舅嘎篮 瓤苞澜 免仿
if(wave == 9999)
{
if( ch->type==SPRITETYPE_CHARACTER ) //PC Character
{
switch( ch->nCurrentAction )
{
case ACTION_ATTACK_ONESWORD1: //茄颊傍拜1
case ACTION_ATTACK_ONESWORD2: //茄颊傍拜2
case ACTION_ATTACK_BONG_DOWN: //郴妨摹扁傍拜
case ACTION_ATTACK_BONG_JJIRKI: //骂福扁傍拜
case ACTION_ATTACK_PENSING1: //埔教傍拜1
case ACTION_ATTACK_PENSING2: //埔教傍拜2
case ACTION_ATTACK_BONG_ROUND: //戎滴福扁
case ACTION_ATTACK_BOW: //劝筋扁
case ACTION_THROW: //厚八带瘤扁
return_Wave=ReturnPCAutoWave(ch, 0); //秦寸 某腐磐啊 厘馒窍绊 乐绰 公扁俊 蝶扼 促弗 家府 府畔
break;
case ACTION_ATTACKED: //嘎扁
return_Wave=ReturnPCAutoWave(ch, 1); //秦寸 某腐磐啊 厘馒窍绊 乐绰 焊龋备俊 蝶扼 促弗 家府 府畔
break;
}
}
else if( ch->type==SPRITETYPE_NPC || ch->type==SPRITETYPE_MONSTER ) //NPC Character
{
switch( ch->nCurrentAction )
{
case MON1_BATTLE_ATTACK: //茄颊傍拜
return_Wave=ReturnNPCAutoWave(ch, 0);
break;
case MON1_ATTACKED: //嘎扁
return_Wave=ReturnNPCAutoWave(ch, 1);
break;
}
}
return return_Wave;
}
// 8XXX牢 版快 -> 某腐狼 绊蜡澜牢 版快(漂沥 俊聪皋捞记捞 拌加 馆汗登绰 版快 漂沥 埃拜 付促 磊楷澜捞 免仿登霸 窍绰 风凭 / XXX->漂沥锅龋)
if(wave/1000 == 8)
{
//int gap = 5; //绊蜡澜 敲饭捞矫 俊聪皋捞记 馆汗 冉荐
int wave_Natural = wave%1000;
if(ch->naturalSound_Time < g_curr_time) //促澜 磊楷澜阑 惯积矫懦 父怒 矫埃捞 版苞茄 版快
{
// 泅犁矫埃俊促 13~25檬 捞饶付促
ch->naturalSound_Time = g_curr_time + 13 + ( rand()%13 );
if(rand()%3==0) return wave_Natural; //绊蜡澜
else return 0;
}
}
// 33% 犬伏肺 家府 郴扁 7XXX
if( wave/1000 == 7 )
{
if(rand()%3)
return (wave%1000);
}
// 父窜困啊 1牢 版快:秦寸锅龋 捞饶 割锅掳 拳老鳖瘤 罚待 敲饭捞窍绰 版快
if(wave/10000 == 1) //玫窜困 箭磊:扁霖锅龋 捞饶 割锅掳 拳老鳖瘤, 归窜困 捞窍:角力 扁霖 荤款靛 锅龋
{
BOOL play_OnOff=TRUE;
// 扁钦家府绰 绢录促 茄锅(50% 犬伏)
switch( ch->nCurrentAction )
{
case ACTION_ATTACK_ONESWORD1: // 5 茄颊傍拜 窜规
case ACTION_ATTACK_ONESWORD2: // 6 茄颊傍拜 2楷鸥
case ACTION_ATTACK_BONG_DOWN: // 7 豪, 帮豪, 傍拜( 剧颊 郴妨摹扁-赣府困俊辑 酒贰肺 )
case ACTION_ATTACK_BONG_JJIRKI: // 8 芒 傍 拜( 茄颊 骂福扁-绢柄 困俊辑 )
case ACTION_ATTACK_BOW: // 9 劝筋扁
case ACTION_ATTACK_PENSING1: // 11 咯磊:奇教傍拜 1 (辨霸 茄规 骂福扁) 巢磊:剧颊 困俊辑 措阿急栏肺 海扁
case ACTION_ATTACK_PENSING2: // 12 咯磊:奇教傍拜 2 (困俊辑 酒贰肺 郴妨 骂福扁) 巢磊:剧颊 辨霸 骂福扁
case ACTION_THROW: // 19 带瘤扁傍拜
case ACTION_ATTACK_BONG_ROUND: // 23 咯磊:豪,芒,帮豪 糠俊辑 戎滴福扁 巢磊:3楷鸥 骂福扁
//if(rand()%2) play_OnOff = FALSE; // 50% 犬伏 利侩
break;
default:
break;
}
if(play_OnOff)
{
int wave_Real = (wave%1000); //角力 荤款靛 锅龋
int conti = (wave%10000)/1000; //霉锅掳 荤款靛 锅龋 捞饶 割锅掳鳖瘤
//acer7
if( conti )
wave_Real = wave_Real + rand()%conti; //角力 敲饭捞瞪 荤款靛 锅龋
return wave_Real;
}
}
return wave;
}
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
int ReturnEffectAnimation( LPCHARACTER ch ) // LTS HORSERIDER ADD
{
int effect;
if (ch->HorseNo>0)
{
if (ch->animationType==ANIMATION_TYPE_MON1) effect=ch->AnimationTable[ ch->nCurrentAction].effect[ ch->nCurrentFrame];
else effect=g_HorseRider.GetEffectWaveNo(ch);
}
else
{
effect=ch->AnimationTable[ ch->nCurrentAction].effect[ ch->nCurrentFrame];
if (effect == 3)
{
int k =0;
}
}
return effect;
}
int ReturnAttackWaveAnimation( LPCHARACTER ch ) // LTS HORSERIDER ADD
{
int wave;
if (ch->HorseNo>0)
{
if (ch->animationType==ANIMATION_TYPE_MON1) wave=ch->AnimationTable[ ch->nCurrentAction].wave[ ch->nCurrentFrame];
else wave=g_HorseRider.GetWaveNo(ch);
}
else
{
wave=ch->AnimationTable[ ch->nCurrentAction].wave[ ch->nCurrentFrame];
}
return wave;
}
int ReturnAttackedWaveAnimation( LPCHARACTER ch ) // LTS HORSERIDER ADD
{
int wave;
if (ch->HorseNo>0)
{
if (ch->animationType==ANIMATION_TYPE_MON1) wave=ch->AnimationTable[ ch->nCurrentAction].wave[ ch->nCurrentFrame];
else wave=g_HorseRider.GetWaveNo(ch);
}
else
{
wave=ch->AnimationTable[ ch->nCurrentAction].wave[ ch->nCurrentFrame];
}
return wave;
}
LPCHARACTER ReturnCharacterID( int id )
{
LPCHARACTER lpcharacter = Hero;
while( lpcharacter != NULL )
{
if( lpcharacter->id == id ) return lpcharacter;
lpcharacter = lpcharacter->lpNext;
}
return NULL;
}
LPCHARACTER ReturnCharacterPoint( int id )
{
LPCHARACTER lpcharacter = Hero;
while( lpcharacter != NULL )
{
if( lpcharacter->id == id ) return lpcharacter;
lpcharacter = lpcharacter->lpNext;
}
return NULL;
}
int PlusMovePDisTance( LPCHARACTER ch, int dx )
{
int ddx, rest;
if( dx == 0 ) return 0;
ddx = ch->movp * dx / 50;
rest = ddx * 50 / dx;
ch->restdx += abs( ch->movp - rest );
if( ch->restdx >= ch->movp )
{
ch->restdx -= ch->movp;
ddx ++;
}
ch->ddx = ddx;
return ddx;
}
void ReturnCharMoveDistance( LPCHARACTER ch, int *dist )
{
switch( ch->animationType )
{
case ANIMATION_TYPE_TEST :
case ANIMATION_TYPE_MAN :
case ANIMATION_TYPE_WOMAN : switch( ch->nCurrentAction )
{
case ACTION_BATTLE_WALK_TWOHAND ://傈捧叭扁 2 ( 剧颊俊 八 )
case ACTION_BATTLE_WALK_OWNHAND ://傈捧叭扁
case ACTION_BASIC_WALK ://扁夯叭扁
if (ch->HorseNo) // LTS HORSERIDER
{
*dist=g_HorseRider.GetDistance(ch);
}
else
{
*dist = ch->AnimationTable[ ch->nCurrentAction].dx[ ch->nCurrentFrame];
}
*dist = PlusMovePDisTance( ch, *dist );
return;
case ACTION_RUN ://顿扁 : 把扁狼 1.5硅..
if (ch->HorseNo) // LTS HORSERIDER
{
*dist=g_HorseRider.GetDistance(ch)*150/100;
}
else
{
*dist = (ch->AnimationTable[ ch->nCurrentAction].dx[ ch->nCurrentFrame])*150/100;
}
*dist = PlusMovePDisTance( ch, *dist );
return;
}
break;
case ANIMATION_TYPE_MON1 : switch( ch->nCurrentAction )
{
case MON1_BATTLE_WALK ://傈捧叭扁
*dist = ch->AnimationTable[ ch->nCurrentAction].dx[ ch->nCurrentFrame];
*dist = PlusMovePDisTance( ch, *dist );
return;
}
break;
}
}
int IsDead( LPCHARACTER ch )
{
if( ch == NULL ) return 1;
if( ch == Hero )
{
return (SCharacterData.nCharacterHP <= 0);
}
else
{
return ( ch->hp <= 0 );
}
return 0;
}
bool IsAttackAble( LPCHARACTER pTarget )
{
if(pTarget->type == SPRITETYPE_CHARACTER && pTarget->IsCounselor())
{ // 皋矫瘤 免仿 鞘夸
return false;
}
if( pTarget->viewtype == VIEWTYPE_GHOST_ )
{
return false;
}
return true;
}
void LoadLevelExpTable( void )
{
FILE *fp;
int i;
char crc, crc1=0;
fp = Fopen( "./data/levelexp.bin", "rb" ); // CSD-030306
if( fp )
{
fread( NPC_Lev_Ref, sizeof( NPCLev_to_Exp ), Num_Of_NPC_Lev, fp );
fread( &crc, 1, 1, fp );
fclose(fp);
char *tt = (char *)NPC_Lev_Ref;
for( i = 0 ; i < sizeof( NPCLev_to_Exp )*Num_Of_NPC_Lev ; i ++)
{
crc1 += *tt;
*tt -=( 100 + i );
tt ++;
}
if( CheckSumError == 0 )
{
CheckSumError = abs( crc1 - crc );
if( CheckSumError ) JustMsg( "LevelUpTable Error" );
}
}
}
extern void SendAction(int i,int Direction); // LTS ACTION
void SendSmileFace( int smileno )
{
t_packet p;
p.h.header.type = CMD_SMILE_FACE;
{
p.u.client_smile_face.smileno = smileno;
}
p.h.header.size = sizeof( t_client_smile_face );
/*//kyo
switch(smileno)
{
case 1:
case 6:
case 7:
{
SendAction(ACTION_ANGER,Hero->direction);
}break;
case 0:
case 4:
{
SendAction(ACTION_VICTORY,Hero->direction);
}break;
}
*/
QueuePacket( &p, 1 );
Hero->smiledelay = 120;
Hero->smileno = smileno;
}
void RecvSmileFace( int id, int smileno )
{
LPCHARACTER ch = ReturnCharacterPoint( id );
if( ch == NULL ) return;
if( smileno < 0 || smileno > 7 ) return;
ch->smiledelay = 120;
ch->smileno = smileno;
}
//-----------------------------------------------------------------------------------
/*
extern SystemInfo system_info;
void PlaySoundWalkingWater( LPCHARACTER ch, int anino )
{
int waveno;
int vol;
int left;
if( ch == Hero )
{
waveno = ReturnAttackWaveAnimation( ch );
if( waveno )
{
vol = system_info.sound;
switch( anino )
{
case ACTION_BATTLE_WALK_OWNHAND ://傈捧叭扁
case ACTION_BATTLE_WALK_TWOHAND ://傈捧叭扁 2 ( 剧颊俊 八 )
case ACTION_BASIC_WALK ://扁夯叭扁
waveno = 1144;
// 促练幅( 奴仇 )
// 促练幅(吝埃仇 )
// 促练幅( 累篮仇 )
// 措屈
// 奴惯
// 吝埃惯
// 累篮惯
case ACTION_RUN ://顿扁
waveno = 1146;
}
// 顿扁
//檬家屈
// 例兑芭覆
// 扁绢皑
// 蜡飞窍鞭
// 浇贰烙
}
}
else
{
vol = system_info.sound / 2;
switch( ch->sprno )
{
// 促练幅( 奴仇 )
// 促练幅(吝埃仇 )
// 促练幅( 累篮仇 )
// 措屈
// 奴惯
// 吝埃惯
// 累篮惯
// 顿扁
//檬家屈
// 例兑芭覆
// 扁绢皑
// 蜡飞窍鞭
// 浇贰烙
}
}
SetVolumeOne( waveno, vol );
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -