?? skill.cpp
字號:
break;
case 3: //Skill->瞇閡
InsertMagic( scr, scr, 214, -2, Mox, Moy, 0, 0 ); //Skill_瞇閡
break;
case 4:
InsertMagic( scr, scr, 218, 0, Mox, Moy, 0, 0 ); //付過葷.楷陛賤葷 滾幾備撫
break;
case 5:
InsertMagic( scr, scr, 208, 0, Mox, Moy, 0, 0 ); //惑磊 凱菌闌矯 何厚飄乏 氣頗
break;
case 6:
InsertMagic( scr, scr, 215, -2, Mox, Moy, 0, 0 ); //淬陛龍-薦劉扁
break;
case 7:
InsertMagic( scr, scr, 207, 0, Mox, Moy, 0, 0 ); //葛風/噶摹龍 膠頗農
break;
case 8:
InsertMagic( scr, scr, 210, 0, Mox, Moy, 0, 0 ); //何剿倒 膠頗農
break;
case 9:
InsertMagic( scr, scr, 216, 0, Mox, Moy, 0, 0 ); //奔兌/儈堡肺 楷扁(膠葛弊)
break;
case 10:
InsertMagic( scr, scr, 217, -2, Mox, Moy, 0, 0 ); //厘累閡
break;
case 11:
InsertMagic( scr, scr, 219, rand()%6, Mox, Moy, 0, 0 ); //拱絆扁 薦擱困肺 頓絹棵扼坷扁
break;
case 12:
InsertMagic( scr, scr, 226+rand()%5, rand()%6, Mox, Moy, 0, 0 ); //牢拱 見扁扁 瓤苞 5俺 菩畔(random 免仿)
break;
*/
static int startcirclemagic;
static int startcirclemagicID;
void StartCircleMagic( int id, int type )
{
switch( type )
{
case 0 : startcirclemagic = 50;
startcirclemagicID = id;
break;
}
}
void CircleMagic( void )
{
if( startcirclemagic == 0 ) return;
int x, y;
startcirclemagic--;
if( startcirclemagic )
{
LPCHARACTER ch = ReturnCharacterPoint( startcirclemagicID );
if( ch == NULL ) return;
x = (int )((20.+(50.))*cos((startcirclemagic *30)%360*3.1415/180.));
y = (int )((10.+(50.))*sin((startcirclemagic *30)%360*3.1415/180.));
InsertMagic( ch, ch, 213, 9, 0, 0, ch->x + x, ch->y + y);//, 0,0 );
}
}
void RecvSkillInfo( t_server_skill_info *p )
{
int skillno, x, y, targettype, target_id;
int id;
LPCHARACTER ch = ReturnCharacterPoint( p->server_id );
if( ch == NULL ) return;//
id = p->server_id;
x = p->x;
y = p->y;
skillno = p->skillno;
targettype= p->targettype;
target_id = p->target_id;
// if( ch == Hero ) CursorNo( 1 );
// 拳擱俊 矯傈竅綽巴闌 惑措規俊霸綽 焊咯林瘤 臼綽促. ( Cursor )...
if( ch != Hero )
switch( skillno )
{
// stealing..
case 1 :
case 2 :
case 3 : break;
case 19 : return; //1007 zhh 壬摹扁父 巢俊霸 救 焊咯霖促
default :
ChangeDirection( &ch->todir, ch->x, ch->y, x, y );
//1006 zhh //1007 zhh
// AddSkillCursor( Hero, skillno, SkillTable[ skillno].Curser3, x, y, 1 );
break;
}
//AddSkillCursor( skilno, SkillTable[ skillno].Curser2, x, y, 3 );
if(SkillTable[ skillno].effect_wave!=0)
PlayListAutoSounds( SkillTable[ skillno].effect_wave , 0, 0, 0 );
/////////////////////////////////////// 撈痹繞 1226(堡盔) ///////////////////////////////////////
switch( skillno )
{
// Ghost Detect...
case 1 :
case 2 :
case 3 : StartCircleMagic( p->server_id, 0 );
break;
case 6 : InsertMagic( Hero, Hero, 212, 9, 0, 0, x, y-80);//, 0,0 );
return;
case 7 : InsertMagic( Hero, Hero, 212, 9, 0, 0, x, y-80);//, 0,0 );
return;
// Reclaim
case 21 :
case 24 :
case 32 :
case 36 :
//1006 zhh
case 75 : if( ch == Hero )
{
StopDoingSkillCursor( ch );
//1006 zhh
AddSkillCursor( ch, skillno, SkillTable[ skillno].Curser2, x, y, 2 );
}
PlayListAutoSounds( 2438, 0, 0, 0 );
break;
//1017 zhh
case 30:
case 28 : if( TileMap[ x/TILE_SIZE][y/TILE_SIZE].attr_river )
InsertMagic( Hero, Hero, 219, rand()%8, x, y, 0, 0 ); //拱絆扁 薦擱困肺 頓絹棵扼坷扁
//1017 zhh
if( ch == Hero )
{
StopDoingSkillCursor( ch );
//1006 zhh
AddSkillCursor( ch, skillno, SkillTable[ skillno].Curser2, x, y, 2 );
}
return;
case 33 :
//1006 zhh
if( ch == Hero )
//1006 zhh
AddSkillCursor( ch, skillno, SkillTable[ skillno].Curser2, x, y, 4 );
break;
case 25 :
case 35 : //AddDetectTile( 0, x, y, RGB16( 0, 255, 0 ));
if( ch == Hero )
//1006 zhh
AddSkillCursor( ch, skillno, SkillTable[ skillno].Curser2, x, y, 4 );
InsertMagic( Hero, Hero, 253, 9, 0, 0, x, y);//,0,0 );
break;
// MakeFire
case 74 : InsertMagic( Hero, Hero, 210, 9, 0, 0, x, y);//, 0, 0 );
return;
//1011 zhh
default: if( ch == Hero )
{
StopDoingSkillCursor( ch );
//1006 zhh
AddSkillCursor( ch, skillno, SkillTable[ skillno].Curser2, x, y, 2 );
}
break;
}
}
//1024 zhh
//1019 zhh
void RecvSkillAnimalLore( t_packet *p )
{
char temp[ FILENAME_MAX];
t_server_skill_animal_lore haha = p->u.server_skill_animal_lore;
switch(haha.result)
{
case 0:
sprintf( temp," <%s> HP %d/%d", haha.name , haha.NowLife , haha.MaxLife );
AddCurrentStatusMessage( 255,150,150, temp );
break;
case 1:
sprintf( temp," <%s> HP %d/%d", haha.name , haha.NowLife , haha.MaxLife );
AddCurrentStatusMessage( 255,150,150, temp );
sprintf( temp," <%s> Level:%d Exp:%d", haha.name , haha.Level , haha.exp );
AddCurrentStatusMessage( 255,150,150, temp );
break;
case 2:
sprintf( temp," <%s> HP %d/%d", haha.name , haha.NowLife , haha.MaxLife );
AddCurrentStatusMessage( 255,150,150, temp );
sprintf( temp," <%s> Level:%d Exp:%d", haha.name , haha.Level , haha.exp );
AddCurrentStatusMessage( 255,150,150, temp );
sprintf( temp," <%s> Loyalty:%d", haha.name , haha.loyalty );
AddCurrentStatusMessage( 255,150,150, temp );
break;
case 3:
sprintf( temp," <%s> HP %d/%d", haha.name , haha.NowLife , haha.MaxLife );
AddCurrentStatusMessage( 255,150,150, temp );
sprintf( temp," <%s> Level:%d Exp:%d", haha.name , haha.Level , haha.exp );
AddCurrentStatusMessage( 255,150,150, temp );
sprintf( temp," <%s> Loyalty:%d", haha.name , haha.loyalty );
AddCurrentStatusMessage( 255,150,150, temp );
sprintf( temp," <%s> Damage:%d", haha.name ,haha.damage );
AddCurrentStatusMessage( 255,150,150, temp );
break;
default:
return ;
}
::strcpy( Hero->szChatMessage, lan->OutputMessage(2,33) );
Hero->ChatDelay = 50;
SkillSettingClear();
}
void RecvOutPutMessage(t_packet *p )
{
DWORD para1 = p->u.server_output_message.para1;
DWORD para2 = p->u.server_output_message.para2;
::AddCurrentStatusMessage( FONT_COLOR_ORANGE, lan->OutputMessage(para1,para2) );
}
void RecvSoundOut(t_packet *p )
{
DWORD para1 = p->u.server_output_message.para1;
DWORD para2 = p->u.server_output_message.para2;
::MP3( para2 );
}
void RecvSkillResult( t_packet *p )
{
char temp[ FILENAME_MAX] = {0,};
int result = p->u.server_skill_result.result;
if( result == -999 )
{
::SkillSettingClear();
::AddCurrentStatusMessage( 255,150,150, lan->OutputMessage(2,32) );
}
//////////////////////////////////// 撈痹繞 1226(堡盔) ////////////////////////////////////
::InsertMagic( Hero, Hero, 250, (rand()%4) + 1, p->u.server_skill_result.x, p->u.server_skill_result.y, 0, 0);//, 0, 0);
::PlayListAutoSounds( 2408, 0, 0, 0 );
Hero->ChatDelay = 0;
/* 己傍 250, 1,
// 2,
// 3,
// 4,
// 5- 角菩...
// 6- 角菩...
己傍 Wave鍋齲 : 108
角菩 Wave鍋齲 : 109 */
switch( p->h.header.type )
{
case CMD_SKILL_RESULT :
switch( p->u.server_skill_result.skillno )
{
case 1 : //020320 lsw 絆膠飄焊扁 絆膠飄客 富竅扁 烹欽
case 2 :
{
Hero->bCanViewGhost = true;
//1024 zhh
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,22), result );
SkillSettingClear();
break;
}
case 105 :
{
LPCHARACTER ch = ReturnCharacterPoint( result );
//1024 zhh
if( ch ) AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,24), ch->name );
// if( ch ) AddCurrentStatusMessage( 255,255,0 , "寸腳狼 堪盔欄肺 '%s'(闌)甫 磷瀾俊輯 備秦 陳嚼聰促.", ch->name );
SkillSettingClear();
break;
}
case 5 :
{
Hero->bCanViewTrap = true;
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,27), result );//020401 LSW
SkillSettingClear();
}break;
case 16 :
{
Hero->bCanViewBomb = true;
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,28), result );//020401 LSW
SkillSettingClear();
}break;
case 6 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,141) );
SkillSettingClear();
}break;
case 7 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,142) );
SkillSettingClear();
}break;
case 17 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,144) );
SkillSettingClear();
}break;
case 18 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,145) );
SkillSettingClear();
}break;
case 19 :
{
if( p->u.server_skill_result.result == 2 ) // 甸淖促.
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,146) );
}
else
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,147) );
// AddCurrentStatusMessage( 255,255,0 , " 竅唱 壬煤嚼聰促." );
}
SkillSettingClear();
}break;
case 21 :
{
sprintf( SkillOutputMessage, "%d", p->u.server_skill_result.result );
GameStatusOutput( 7 );
if(p->u.server_skill_result.result<100)
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,148), p->u.server_skill_result.result);
}
else
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,139));
}
AddSkillGauge( SkillNo, p->u.server_skill_result.x, p->u.server_skill_result.y, p->u.server_skill_result.result );
}break;
case 22 :
{
switch( p->u.server_skill_result.result )
{
case 0 : AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,149) );
break;
//1024 zhh
case 1 : AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,150) );
break;
}
strcpy( Hero->szChatMessage, lan->OutputMessage(2,151) );
Hero->ChatDelay = 50;
}
break;
case 23 :
{
if(p->u.server_skill_result.result)
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,152) );
}
else
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,153) );
}
}break;
case 24 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,154));
SkillSettingClear();
}break;
case 25 :
{
switch(rand()%2)
{
case 0 : sprintf( temp, lan->OutputMessage(2,155) ); break;
case 1 : sprintf( temp, lan->OutputMessage(2,156), subMineType[p->u.server_skill_result.result] +2); break;
}
strcpy( Hero->szChatMessage, temp );
Hero->ChatDelay = 50;
SkillSettingClear();
}break;
case 26 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,157) );
SkillSettingClear();
}
break;
case 28 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,158) );
SkillSettingClear();
}break;
case 30 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,159) );
SkillSettingClear();
}break;
case 32 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,160) );
SkillSettingClear();
}break;
case 33 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,161) ,GetItemHanName( Skill_CursorCheckedItem->no )
,GetItemHanName( Skill_CursorCheckedItem->no ));
SkillSettingClear();
}
break;
case 34 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,162) );
SkillSettingClear();
}break;
case 35 :
{
sprintf( temp, lan->OutputMessage(2,163), subHubType[p->u.server_skill_result.result] + 2 );
strcpy( Hero->szChatMessage, temp );
Hero->ChatDelay = 50;
}break;
case 36 :
{
CItem *ti = ItemUnit(p->u.server_skill_result.result/1000,p->u.server_skill_result.result%1000);
if( ti )
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,164), ti->GetItemHanName() );
SkillSettingClear();
}
}
break;
case 41 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,165) );
SkillSettingClear();
}break;
case 46 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,166) );
SkillSettingClear();
}break;
case 59 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,167) );
SkillSettingClear();
}break;
case 58 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,168) );
SkillSettingClear();
}break;
case 54 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,169) );
SkillSettingClear();
}break;
case 65 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,170) );
SkillSettingClear();
}break;
case 67 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,171) );
SkillSettingClear();
}break;
case 69 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,172) );
SkillSettingClear();
}break;
case 70 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,173) );
SkillSettingClear();
}break;
case 71 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,174) );
SkillSettingClear();
}break;
case 74 :
{
AddCurrentStatusMessage( 255,255,0 , lan->OutputMessage(2,175) );
SkillSettingClear();
}break;
case 75 : switch( rand()%4 )
{
case 0 : sprintf( temp, lan->OutputMessage(2,176) ); break;
case 1 : sprintf( temp, lan->OutputMessage(2,177) ); break;
case 2 : sprintf( temp, lan->OutputMessage(2,178) ); break;
case 3 : sprintf( temp, lan->OutputMessage(2,179) ); break;
}
strcpy( Hero->szChatMessage, temp );
Hero->ChatDelay = 50;
if( p->u.server_skill_result.result == 200 )
{
AddCurrentStatusMessage( 180,214,82,lan->OutputMessage(2,180) );
}
else
{
AddCurrentStatusMessage( 180,214,82,lan->OutputMessage(2,181), p->u.server_skill_result.result );
}
SkillSettingClear();
break;
default :
{
switch( rand()%3 )
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -