📄 skill_lsw.cpp
字号:
}
int Call_Skill_Master_Menu()
{
CloseAllMenu();
fRMoveMenu = MM_ITEM_OPEN; // 困狼 if巩阑 父练且 锭父
nItemOther = MN_SKILL_MASTER_MAKE;
y_MenuFocus = 0;
ZeroMemory( &g_MultiRareSrc, sizeof(MULTIRARESRC) ); //府胶飘 檬扁拳
return 1;
}
int Call_MERCHANT_QUEST_MENU(const int iGmQuestIndex)
{
::SetGMQUESTMenu(iGmQuestIndex);
::CallSmallMenu(NM_MERCHANT_QUEST);
return 0;
}
int Call_EXCHANGE_BOND_MONEY_Menu()//021126 lsw
{
Auction.ClearBondItem();
CloseAllMenu();
fRMoveMenu = MM_ITEM_OPEN;
nItemOther = MN_EXCHANGE_BOND_MONEY;
y_MenuFocus = 0;
SetChatMode(CM_COMMAND);
return 1;
}
int Call_MERCHANT_REGISTER_Menu()
{
Auction.ClearSellItem();
CloseAllMenu();
fRMoveMenu = MM_ITEM_OPEN;
nItemOther = MN_MERCHANT_REGISTER;
y_MenuFocus = 0;
//魄概 前格 努府绢 霖厚
SetChatMode(CM_COMMAND);
SetFocus2(HWND_1);
return 1;
}
void Send2NDGMMAKE(int skillno)
{
ItemAttr *t = ::GetItemByPos( gm_make_item_result.pos );
// if(!t->item_no) return;
if( !gm_make_item_result.item_no)
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,504));
return;
}
t_packet p;
p.h.header.type = CMD_SKILL_RARE_UPGRADE;
p.h.header.size = sizeof( t_SkillRareUpgrade );
p.u.SkillRareUpgrade.iSkillNo = skillno;
p.u.SkillRareUpgrade.SourceItem = gm_make_item_result.attr;
for (int ti = 0; ti <MAX_UPGRADE_RARE ; ti++)
{
p.u.SkillRareUpgrade.pos[ti] = gm_make_item_list[ti].pos;
DeleteItem( gm_make_item_list[ti].pos ) ;//傍备芒狼 犁丰 绝俊扁
memset( &gm_make_item_list[ti], 0, sizeof( MakeItem ) );
}
QueuePacket( &p, 1 );
memset( &gm_make_item_result, 0, sizeof( MakeItem ) );
return;
}
void SendSkillMasterMake(int skillno)
{
ItemAttr *t = ::GetItemByPos( gm_make_item_result.pos );
if( !gm_make_item_result.item_no)
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,504));
return;
}
t_packet p;
p.h.header.type = CMD_SKILL_RARE_UPGRADE;
p.h.header.size = sizeof( t_SkillRareUpgrade );
p.u.SkillRareUpgrade.iSkillNo = skillno;
p.u.SkillRareUpgrade.SourceItem = gm_make_item_result.attr;
for (int ti = 0; ti <MAX_UPGRADE_RARE ; ti++)
{
p.u.SkillRareUpgrade.pos[ti] = gm_make_item_list[ti].pos;
DeleteItem( gm_make_item_list[ti].pos ) ;//傍备芒狼 犁丰 绝俊扁
memset( &gm_make_item_list[ti], 0, sizeof( MakeItem ) );
}
QueuePacket( &p, 1 );
memset( &gm_make_item_result, 0, sizeof( MakeItem ) );
return;
}
void Recv2NDGMMAKEResult(t_SkillRareUpgradeResult *p)
{
SkillStatus = SKILL_OFF;
p->SourceItem;//捞芭甫 捞侩 秦辑 楷免俊 焊呈胶甫 林磊
//牢磐 其捞胶 楷免啊瓷 窍档废 技泼
SMenu[MN_GM_2ND_SKILL].nField[4].nWillDo = p->iSuccess;
SkillStatus = SKILL_OFF;
nItemOther = 0 ;
SkillSettingClear( );
//011030 lsw
// SmallMenuClose(); 滚瓢 穿福搁 摧洒霸 窍扁
return;
}
//011030 lsw >
DWORD g_skillmaketime = 0;
//011030 lsw <
void Send2NDSKILLMAKE(int iTryRare, int iRareGroup)
{
//父甸 荐樊蔼苞 措惑 酒捞袍阑 焊辰促
POS s;
memset(&s,0,sizeof(POS));
s.p1 = iTryRare;
s.p2 = iRareGroup;//rared
s.p3 = skillmakeiteminfo.MakeMuch;
g_skillmaketime = (timeGetTime()+skillmakeiteminfo.MakeMuch*1500);
SendSkillInfo( SkillNo, Mox, Moy, SKILLTARGETTYPE_TABLE_, item_select_result.item_no, s);
//011025 >
skillmakeiteminfo.MakeMuch = 0;
SMenu[MN_ITEM_MAKE_SELECT].nField[10].nWillDo =0;
CloseAllMenu();
//011025 <
return;
}
inline void ReadRareGroup(char * buf,int i)
{
char *token;
token = strtok(buf, "\t\n\r"); if( token == NULL ) return;const int iIndex = RareGroup[0][i].no = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[0][iIndex].name ,token,39);
EatRearWhiteChar( RareGroup[0][iIndex].name );
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[0][iIndex].rareset[0].rare,token, 39);
EatRearWhiteChar( RareGroup[0][iIndex].rareset[0].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[0].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[0].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[0][iIndex].rareset[1].rare ,token, 39);
EatRearWhiteChar( RareGroup[0][iIndex].rareset[1].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[1].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[1].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[0][iIndex].rareset[2].rare ,token, 39);
EatRearWhiteChar( RareGroup[0][iIndex].rareset[2].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[2].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[2].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[0][iIndex].rareset[3].rare ,token, 39);
EatRearWhiteChar( RareGroup[0][iIndex].rareset[3].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[3].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[3].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[0][iIndex].rareset[4].rare ,token, 39);
EatRearWhiteChar( RareGroup[0][iIndex].rareset[4].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[4].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[4].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[0][iIndex].rareset[5].rare ,token, 39);
EatRearWhiteChar( RareGroup[0][iIndex].rareset[5].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[5].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[5].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[0][iIndex].rareset[6].rare ,token, 39);
EatRearWhiteChar( RareGroup[0][iIndex].rareset[6].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[6].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[6].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[0][iIndex].rareset[7].rare ,token, 39);
EatRearWhiteChar( RareGroup[0][iIndex].rareset[7].rare);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[7].rare_num = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].rareset[7].rare_rate = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[0][iIndex].group_buffer_1 ,token, 39);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[0][iIndex].group_buffer_2 ,token, 39);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;memcpy(RareGroup[0][iIndex].group_buffer_3 ,token, 39);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].group_buffer_4 = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].group_buffer_5 = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].group_buffer_6 = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].group_buffer_7 = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].group_buffer_8 = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].group_buffer_9 = atoi(token);
token = strtok(NULL,"\t\n\r"); if( token == NULL ) return;RareGroup[0][iIndex].group_buffer_10 = atoi(token);
return;
}
bool LoadRareGroup()
{
char buf[1024];
FILE *fp ;
char filename[MAX_FILENAME],filenameBin[MAX_FILENAME];
sprintf(filename, ".\\itemtable\\rare_group.txt");
sprintf(filenameBin, ".\\itemtable\\rare_group.bin");
if( fp= Fopen(filename, "rt") )
{
int i=0;
while( !feof(fp) )
{
fgets(buf, 1023, fp);
if( *buf == ';' ) continue;
if(i> MAX_RARE_GROUP-1 ) break;
ReadRareGroup(buf, i);
i++;
}
fclose(fp);
if(fp=Fopen( filenameBin, "wb" ) )
{
fwrite( RareGroup[0], sizeof(t_raregroup)*MAX_RARE_GROUP, 1, fp);
fclose(fp);
}
}
else
{
if(fp=Fopen( filenameBin, "rb" ) )
{
fread( RareGroup[0], sizeof(t_raregroup)*MAX_RARE_GROUP, 1, fp);
fclose(fp);
}
else return 0;
}
return 1;
}
inline void ReadRareProbability(char * buf,int i)
{
char *token;
int *TargetPointer;
TargetPointer = &RareProbability[i].num;
token=strtok(buf ,"\t\n\r");if( token == NULL ) return;
(*TargetPointer) = atoi(token);
TargetPointer++;
for (int j = 0 ; j < 18 ; j++)//钙胶 肮荐俊辑 贸澜波 朅 俺荐
{
token=strtok(NULL ,"\t\n\r");if( token == NULL ) return;
(*TargetPointer) = atoi(token);
TargetPointer++;
}
return;
}
bool LoadRareProbability()
{
char buf[1024] ;
FILE *fp ;
char filename[MAX_FILENAME],filenameBin[MAX_FILENAME];
sprintf(filename, ".\\itemtable\\rare_probability.txt");
sprintf(filenameBin, ".\\itemtable\\rare_probability.bin");
if( fp= Fopen(filename, "rt") )
{
int i=0;
while( !feof(fp) )
{
fgets(buf, 1023, fp);
if( *buf == ';' ) continue;
if(i> MAX_RARE_PROBABILITY-1 ) break;
ReadRareProbability(buf, i);
i++;
}
fclose(fp);
if(fp=Fopen( filenameBin, "wb" ) )
{
fwrite( RareProbability, sizeof(t_rareprobability)*MAX_RARE_PROBABILITY, 1, fp);
fclose(fp);
}
}
else
{
if(fp=Fopen( filenameBin, "rb" ) )
{
fread( RareProbability, sizeof(t_rareprobability)*MAX_RARE_PROBABILITY, 1, fp);
fclose(fp);
}
else return 0;
}
return 1;
}
void RecvCMD_RARE_UPGRADE_BBS(t_packet *p)
{
#ifdef KOREA_LOCALIZING_
ItemAttr item;
char name[20];
memcpy ( name,p->u.RareUpgradeBBS.name,20);
item = p->u.RareUpgradeBBS.Item;
RareMain Soksung;
memcpy(&Soksung,&item.attr[IATTR_RARE_MAIN],4);
//011025 lsw >
char itemname[300];
strcpy(itemname,GetItemName(item.item_no));
EatRearWhiteChar(itemname);
//011030 lsw >
MP3(67);
if(!Soksung.IsDynamicRare)//020626 lsw
{
AddCurrentStatusMessage(FONT_COLOR_RARE_MAIN,lan->OutputMessage(2,503),name,ItemRare[Soksung.soksung1].LocalName,itemname,Soksung.grade);
}
else
{
AddCurrentStatusMessage(FONT_COLOR_RARE_MAIN,lan->OutputMessage(2,503),name,ItemFunction[Soksung.soksung1].NameAdd,itemname,Soksung.grade);
}
//011030 lsw <
#endif
return;
}
int GetSkillResorceAmount(int &r1count ,int &r2count ,int &r3count ,int &r4count)
{
int join_no = item_select_result.join_no; // 父甸绊磊 窍绰 酒捞袍捞 割锅掳 酒捞袍牢啊...
CItem *rit1= ItemUnit(item_join[join_no].resource1);;
CItem *rit2= ItemUnit(item_join[join_no].resource2);;
CItem *rit3= ItemUnit(item_join[join_no].resource3);;
CItem *rit4= ItemUnit(item_join[join_no].resource4);;
int r1amount= item_join[join_no].resource1_amount;
int r2amount= item_join[join_no].resource2_amount;
int r3amount= item_join[join_no].resource3_amount;
int r4amount= item_join[join_no].resource4_amount;
int r1= -1;
int r2= -1;
int r3= -1;
int r4= -1;
int jj=0;
int kk=0;
int ii=0;
ItemAttr Item ;
const int ino1 = item_join[join_no].resource1;
const int ino2 = item_join[join_no].resource2;
const int ino3 = item_join[join_no].resource3;
const int ino4 = item_join[join_no].resource4;
for(jj=0;jj<3;jj++)
{
for(kk=0;kk<3;kk++)
{
for(ii=0;ii<8;ii++) //牢亥配府芒狼 技肺 弥措 农扁绰 3
{
Item = InvItemAttr[jj][kk][ii];
if( rit1 )
{
if(ino1 == Item.item_no)
{
if(DIVIDE_ITEM == rit1->GetRButton()){r1count += Item.attr[IATTR_MUCH];}
else{r1count++;}
}
}
if( rit2 )
{
if(ino2 == Item.item_no)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -