📄 skill_lsw.cpp
字号:
{
char buf[1024];
FILE *fp ;
char filename[MAX_FILENAME],filenameBin[MAX_FILENAME];
sprintf(filename, ".\\data\\CombatSkillExplain.txt");
sprintf(filenameBin, ".\\data\\CombatSkillExplain.bin");
#ifdef _DEBUG // 031110 YGI
if( fp= Fopen(filename, "rt") )
{
int i=0;
while( !feof(fp) )
{
fgets(buf, 1023, fp);
if( *buf == ';' ) continue;
if(i> MAX_COMBAT_SKILL_EXPLAIN-1 ) break;
ReadCombatSkillExplain(buf, i);
i++;
}
fclose(fp);
if(fp=Fopen( filenameBin, "wb" ) )
{
fwrite( CombatSkillExplain, sizeof(t_CombatSkillExplain)*MAX_COMBAT_SKILL_EXPLAIN, 1, fp);
fclose(fp);
}
}
else
#endif
{
if(fp=Fopen( filenameBin, "rb" ) )
{
fread( CombatSkillExplain, sizeof(t_CombatSkillExplain)*MAX_COMBAT_SKILL_EXPLAIN, 1, fp);
fclose(fp);
}
else return 0;
}
return 1;
}
inline void ReadCombatSkillGroupExplain(char * buf,int i)
{
char *token;
token = strtok(buf, "\t\n\r"); if( token == NULL ) return;
const int iIndex = CombatSkillGroupExplain[i].iNo = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;CombatSkillGroupExplain[iIndex].iGroupNo = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;CombatSkillGroupExplain[iIndex].iGroupNo = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;
memcpy(CombatSkillGroupExplain[iIndex].EngName ,token,30);
EatRearWhiteChar( CombatSkillGroupExplain[iIndex].EngName);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;
memcpy(CombatSkillGroupExplain[iIndex].LocalName,token, 30);
EatRearWhiteChar( CombatSkillGroupExplain[iIndex].LocalName);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;CombatSkillGroupExplain[iIndex].iSkillId[0] = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;CombatSkillGroupExplain[iIndex].iSkillId[1] = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;CombatSkillGroupExplain[iIndex].iSkillId[2] = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;CombatSkillGroupExplain[iIndex].iSkillId[3] = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;CombatSkillGroupExplain[iIndex].iSkillId[4] = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;CombatSkillGroupExplain[iIndex].iSkillId[5] = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;
memcpy(CombatSkillGroupExplain[iIndex].Explain,token, 100);
EatRearWhiteChar( CombatSkillGroupExplain[iIndex].Explain);
ConvertSpecialWord(CombatSkillGroupExplain[iIndex].Explain,"\n",'\n');
ConvertSpecialWord(CombatSkillGroupExplain[iIndex].Explain,"\t",'\t');
ConvertSpecialWord(CombatSkillGroupExplain[iIndex].Explain,"\r",'\r');
return;
}
bool LoadCombatSkillGroupExplain()
{
char buf[1024];
FILE *fp ;
char filename[MAX_FILENAME],filenameBin[MAX_FILENAME];
sprintf(filename, ".\\data\\CombatSkillGroupExplain.txt");
sprintf(filenameBin, ".\\data\\CombatSkillGroupExplain.bin");
#ifdef _DEBUG //< BBD 031214 咆胶飘绰 叼滚弊葛靛父 佬磊
if( fp= Fopen(filename, "rt") )
{
int i=0;
while( !feof(fp) )
{
fgets(buf, 1023, fp);
if( *buf == ';' ) continue;
if(i> MAX_COMBAT_SKILL_GROUP_EXPLAIN-1 ) break;
ReadCombatSkillGroupExplain(buf, i);
i++;
}
fclose(fp);
if(fp=Fopen( filenameBin, "wb" ) )
{
fwrite( CombatSkillGroupExplain, sizeof(t_CombatSkillGroupExplain)*MAX_COMBAT_SKILL_GROUP_EXPLAIN, 1, fp);
fclose(fp);
}
}
else
#endif //> BBD 031214 咆胶飘绰 叼滚弊葛靛父 佬磊
{
if(fp=Fopen( filenameBin, "rb" ) )
{
fread( CombatSkillGroupExplain, sizeof(t_CombatSkillGroupExplain)*MAX_COMBAT_SKILL_GROUP_EXPLAIN, 1, fp);
fclose(fp);
}
else return 0;
}
return 1;
}
void DrawRareExplain(const int iExplainX, const int iExplainY, const int iRareIndex, const int iRareType)
{
int iCount = 0;
const int iLineGab = 24;
const int trans = 20;
const int iWidth = 130;
Spr *back_spr = GetSprOfMenu( MAIN_ETC, 55 );
SetHangulAlign( TA_LEFT);
char *txt;
switch(iRareType)
{
case 0:
{
txt = ItemRare[iRareIndex].Explain;
}break;
case 2:
case 3:
case 4:
{
txt = ItemFunction[iRareIndex].Exp;
}break;
default:
{
return;
}break;
}
const int line = GetLineRectTextPut( iWidth,txt );
for( int i = 0; i<line; i++ )
{
FieldTypeNomalPutFx( iExplainX, iExplainY+iLineGab*(iCount+i), 0,0, 71, 10, 1 );
}
Hcolor( FONT_COLOR_YELLOW );
RectTextPut(iExplainX+8,iExplainY+8,iWidth,txt);
}
void DrawCombatSkillExplain(const int iExplainX, const int iExplainY, const int iCSIndex)
{
SetHangulAlign(TA_LEFT);
const int iWidth = TXT_BG_NORMAL_WIDTH;
const int iCSkillIndex = CombatSkill[iCSIndex].iSkillNo;
int iCount = 0;
int iReultLineCount = 0;
int iBlankGab = 0;
int iReultBlankSize = 0;
const int iLineGab = TxtOut.GetLineGab();
const int iBlankGabSize = TxtOut.GetBlankGabSize();
LPCombatSkillExplain pCSE = &CombatSkillExplain[iCSkillIndex];
//庆歹弊覆
TxtOut.Init(COLOR_BLACK,TXT_BG_NORMAL_WIDTH);
TxtOut.PutTextHeaderBGImg(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth);
//傈捧胶懦 捞抚
Hcolor(FONT_COLOR_RARE_MAIN);
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,0,lan->OutputMessage(0,411),pCSE->LocalName);
iCount += iReultLineCount;
iReultBlankSize = TxtOut.RcBlankOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,1);
iBlankGab+=iReultBlankSize;
//Class 臂磊 + //努贰胶 汲疙 捞抚
Hcolor(FONT_COLOR_BLIGHT_GREEN2);
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,0,lan->OutputMessage(0,421),pCSE->ClassName);
Hcolor(FONT_COLOR_RARE_MAIN);
RectTextPut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,lan->OutputMessage(0,420));
iCount += iReultLineCount;
//琶平 汲疙 捞抚
Hcolor(FONT_COLOR_BLIGHT_GREEN2);
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,8,lan->OutputMessage(0,417),pCSE->WeaponTactic);
iCount += iReultLineCount;
iReultBlankSize = TxtOut.RcBlankOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,1);
iBlankGab+=iReultBlankSize;
//弊成 汲疙
Hcolor(FONT_COLOR_WHITE);
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,0,pCSE->Explain);
iCount += iReultLineCount;
iReultBlankSize = TxtOut.RcBlankOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,1);
iBlankGab+=iReultBlankSize;
if(1)//努贰胶 硅快扁 啊瓷 窍搁
{ //How To Use
// Hcolor(FONT_COLOR_RARE_MAIN);
Hcolor(FONT_COLOR_BLIGHT_ORANGE);
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,0,lan->OutputMessage(0,418));
iCount += iReultLineCount;
//荤侩规过
Hcolor(FONT_COLOR_BLIGHT_ORANGE);
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,8,pCSE->Use);
iCount += iReultLineCount;
iReultBlankSize = TxtOut.RcBlankOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,1);
iBlankGab+=iReultBlankSize;
const int iSkillLv = SCharacterData.SkillId[iCSkillIndex];
Hcolor(FONT_COLOR_RARE_MAIN);
if(iSkillLv)//
{
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,0,lan->OutputMessage(0,412),iSkillLv);
iCount += iReultLineCount;
Hcolor(FONT_COLOR_RARE_MAIN);
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,8,lan->OutputMessage(0,413),pCSE->iLvCp[iSkillLv-1]);
iCount += iReultLineCount;
//硅奎阑锭 饭骇俊 蝶弗 扁瓷
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,8,pCSE->MicroExplain[iSkillLv-1]);//Micro explain//硅凯捞扁 锭巩俊 iSkillLv+1 秦 霖促
iCount += iReultLineCount;
iReultBlankSize = TxtOut.RcBlankOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,1);
iBlankGab+=iReultBlankSize;
}
else//酒流 救 硅奎阑锭
{
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,0,lan->OutputMessage(0,414));
iCount += iReultLineCount;
iReultBlankSize = TxtOut.RcBlankOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,1);
iBlankGab+=iReultBlankSize;
}
if(3 > iSkillLv)//促澜 饭骇 包访 沥焊//促澜饭骇捞 3焊促 累绊 0 焊促 目具 茄促// 恐衬 . 促澜 饭骇 捞聪鳖
{
//Next Lv
Hcolor(FONT_COLOR_SOLID_RED);
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,0,lan->OutputMessage(0,415),iSkillLv+1);//Next Level
iCount += iReultLineCount;
//Need Lv
Hcolor(FONT_COLOR_SOLID_RED);
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,8,lan->OutputMessage(0,416),pCSE->iNeedLv[iSkillLv]);//Require
iCount += iReultLineCount;
if((iSkillLv+1) > SCharacterData.SkillId[iCSkillIndex])
Hcolor(FONT_COLOR_SOLID_RED);
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,8,pCSE->MicroExplain[iSkillLv]);//Micro explain
iCount += iReultLineCount;
}
}
else //努贰胶 促福霸
{
Hcolor(FONT_COLOR_RED);
iReultLineCount = TxtOut.RcTXTOut(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth,0,lan->OutputMessage(0,422));
iCount += iReultLineCount;
}
//部府弊覆
TxtOut.PutTextTailBGImg(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth);
}
void DrawCombatSkillGroupExplain(const int iExplainX, const int iExplainY, const int iGroupNo, const int iGroupType)
{
SetHangulAlign(TA_LEFT);
const int iWidth = TXT_BG_SHORT_WIDTH;
int iIndex = (iGroupNo-1)*2 +(iGroupType);
int iCount = 0;
const int iLineGab = TxtOut.GetLineGab();
int iReultLineCount = 0;
int iBlankGab = 0;
const int iBlankGabSize = 3;
LPCombatSkillGroupExplain pCSGE = &CombatSkillGroupExplain[iIndex];
//庆歹弊覆
TxtOut.Init(COLOR_BLACK,TXT_BG_SHORT_WIDTH);
TxtOut.PutTextHeaderBGImg(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth);
Hcolor(FONT_COLOR_GREEN);
iReultLineCount = TxtOut.RcTXTOut( iExplainX, iExplainY+iLineGab*iCount,iWidth,0, "< %s >", pCSGE->LocalName); //临埃拜篮 15捞促
iCount+=iReultLineCount;
Hcolor(FONT_COLOR_WHITE);
iReultLineCount = TxtOut.RcTXTOut( iExplainX, iExplainY+iLineGab*iCount, iWidth,0, pCSGE->Explain);
iCount+=iReultLineCount;
//庆歹弊覆
TxtOut.PutTextTailBGImg(iExplainX,iExplainY+iBlankGab+iLineGab*iCount,iWidth);
}
inline void ReadFunctionGroup(char * buf,int i)
{
char *token;
token = strtok(buf, "\t\n\r"); if( token == NULL ) return;const int iIndex = RareGroup[1][i].no = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[1][iIndex].name ,token,39);
EatRearWhiteChar( RareGroup[1][iIndex].name );
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[1][iIndex].rareset[0].rare,token, 39);
EatRearWhiteChar( RareGroup[1][iIndex].rareset[0].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[0].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[0].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[1][iIndex].rareset[1].rare ,token, 39);
EatRearWhiteChar( RareGroup[1][iIndex].rareset[1].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[1].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[1].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[1][iIndex].rareset[2].rare ,token, 39);
EatRearWhiteChar( RareGroup[1][iIndex].rareset[2].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[2].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[2].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[1][iIndex].rareset[3].rare ,token, 39);
EatRearWhiteChar( RareGroup[1][iIndex].rareset[3].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[3].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[3].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[1][iIndex].rareset[4].rare ,token, 39);
EatRearWhiteChar( RareGroup[1][iIndex].rareset[4].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[4].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[4].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[1][iIndex].rareset[5].rare ,token, 39);
EatRearWhiteChar( RareGroup[1][iIndex].rareset[5].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[5].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[5].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[1][iIndex].rareset[6].rare ,token, 39);
EatRearWhiteChar( RareGroup[1][iIndex].rareset[6].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[6].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[6].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[1][iIndex].rareset[7].rare ,token, 39);
EatRearWhiteChar( RareGroup[1][iIndex].rareset[7].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[7].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].rareset[7].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[1][iIndex].group_buffer_1 ,token, 39);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[1][iIndex].group_buffer_2 ,token, 39);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[1][iIndex].group_buffer_3 ,token, 39);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].group_buffer_4 = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].group_buffer_5 = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].group_buffer_6 = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].group_buffer_7 = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].group_buffer_8 = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].group_buffer_9 = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[1][iIndex].group_buffer_10 = atoi(token);
return;
}
void RareGroupSet()
{
int i1 = 1,i2 = 1, i3 = 1, i4 = 1;
for (;i1 < MAX_RARE_GROUP;i1++)
{
const int iGroupSet = RareGroup[1][i1].group_buffer_10;
switch(iGroupSet)
{
case 2:
{
RareGroup[iGroupSet][i2] = RareGroup[1][i1];
i2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -