📄 skill_lsw.cpp
字号:
#include "stdafx.h"
#include <ddraw.h>
#include "Hangul.h"
#include "dragon.h"
#include "Menu.h"
#include "Hong_Sprite.h"
#include "SmallMenuSet.h"
#include "stdio.h"
#include "directsound.h"
#include "directinput.h"
#include "Char.h"
#include "SmallMenu.h"
#include "Hong_Sub.h"
#include "Effect.h"
#include "map.h"
#include "tool.h"
#include "MenuSet.h"
#include "skill.h"
#include "MenuNetwork.h"
#include "MouseCursor.h"
#include "CharDataTable.h"
#include "gameproc.h"
#include "kh_cpp.h"
#include "skill_lsw.h"
#include "menudef.h"
#include "menudef2.h"
#include "TextOutMgr.h"
#include "Auction.h"
#include "item.h"
#define DIVIDE_ITEM_UPGRDEABLE_MIN 2000
#define DIVIDE_ITEM_UPGRDEABLE_MAX 5000
t_SkillMakeItemInfo skillmakeiteminfo;
extern DWORD g_ClientTimeNoGap;
extern void ConvertSpecialWord(char *txt,const char *delTarget,const char AfterConvert);
t_CombatSkill CombatSkill[MAX_COMBAT_SKILL_STRUCT] = {0,};//傈捧 胶懦 Doning 皋春俊辑 静绰巴// 0,0 -> 荤侩且 胶懦 锅龋 1,2,3->弊缝 0 磊府绰 救敬促 救俊绰 胶懦 饭骇父 历厘 等促
t_CombatSkillExplain CombatSkillExplain[MAX_COMBAT_SKILL_EXPLAIN];//傈捧胶懦 汲疙侩
t_CombatSkillGroupExplain CombatSkillGroupExplain[MAX_COMBAT_SKILL_GROUP_EXPLAIN];//傈捧胶懦 汲疙侩
int gm_make_item_result_needitem[2];
MakeItem gm_make_item_list[MAX_UPGRADE_RARE]; //GM捞 父甸 酒捞袍狼 府胶飘
MakeItem gm_make_item_result; //GM捞 父甸 搬苞拱
//MakeItem aMRMakeSrc[3];
extern int iGM_Makeable_Item_List[300];
t_raregroup RareGroup[5][MAX_RARE_GROUP];//0 篮 饭绢弊缝// 1篮 沏记 弊缝
t_ItemFunction ItemFunction[MAX_ITEM_FUNCTION];
t_rareprobability RareProbability[MAX_RARE_PROBABILITY];
ITEM_LEGEND g_aItemLegend[MAX_ITEM_LEGEND];//021113 lsw
ITEM_LEGEND_BONUS g_aLegendBonus[MAX_ITEM_LEGEND_BONUS];
bool CheckBy2ndGM_This_Item_Upgradeable( ItemAttr ia ,const int iType)//郴啊 捞 酒捞袍阑 诀弊饭捞靛 矫懦荐 乐绰啊困秦辑 捞吧 父甸荐 乐唱甫 夯促
{
RareMain gmattr;
CItem *t;
t = ItemUnit(ia.item_no);
const short int item_no = ia.item_no;
if(!t)//肋给等 酒捞袍捞扼搁..
{
return false;
}
if(!item_no) {return false;}//酒捞袍 逞滚啊 绝栏搁
const RareMain *pInRare = (RareMain*)(&ia.attr[IATTR_RARE_MAIN]);
if(pInRare->soksung2 || pInRare->soksung3)
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,880) );
return false;
}
const int iUpgradeType = ItemMutantKind[t->GetItemKind()].upgrade_type - 1;//020701 lsw -1 庆辑 曼炼 窍扼
if(0 > iUpgradeType ) {return false;}//诀臂 救登绰扒单 ぱぱ;;
if(DIVIDE_ITEM == t->GetRButton())//唱穿绢 柳促搁 肮荐 眉农甫 秦具 茄促.
{
if(ia.attr[IATTR_MUCH]<DIVIDE_ITEM_UPGRDEABLE_MIN || ia.attr[IATTR_MUCH]>DIVIDE_ITEM_UPGRDEABLE_MAX )
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,266),DIVIDE_ITEM_UPGRDEABLE_MIN,DIVIDE_ITEM_UPGRDEABLE_MAX);
return false;
}
}
if ( !(ia.attr[IATTR_RARE_MAIN]) )//加己捞 绝栏搁 诀弊饭捞靛 阂啊
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,511));
return false;
}
memcpy(&gmattr,&ia.attr[IATTR_RARE_MAIN],sizeof(int));
if( gmattr.grade > 16)
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,512));
return false;
}
if(iType)//扁己狼 钢萍饭绢 父甸扁 力茄
{
if( !ItemGrade[gmattr.grade].iAble)
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,512));
return false;
}
}
else//GM狼 诀弊饭捞靛 力茄
{
if( !ItemGrade[gmattr.grade+1].iAble)
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,512));
return false;
}
}
if( gmattr.iHighLevel)//021119 lsw
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,519));//饭绢酒捞袍捞 酒凑聪促
return false;
}
for( int i=0; i<SCharacterData.ItemIdCount; i++ )
{
if( item_no == iGM_Makeable_Item_List[i] )
{
gm_make_item_result.item_no = HandItemAttr.item_no;
gm_make_item_result.attr = HandItemAttr;
gm_make_item_result_needitem[0] = ItemMutantKind[GetItemAttr( item_no, ITEM_KIND)].AddItem[0]/100;//020505 lsw
gm_make_item_result_needitem[1] = ItemMutantKind[GetItemAttr( item_no, ITEM_KIND)].AddItem[1]/100;
return true;//诀弊饭捞靛俊 利钦茄 磊脚狼 胶懦俊 嘎绰 酒捞袍
}
}
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,513));
return false;
}
const int MAX_CORRECT_RARE = 5;
const int Convert[2][MAX_CORRECT_RARE]=
{
{RARE_POWER, RARE_POWER, RARE_POWER, RARE_VIGOR, RARE_POWER},
{RARE_VIGOR, RARE_VIGOR, RARE_VIGOR, RARE_PIERCING, RARE_PIERCING}
};//020823 lsw
bool CorrectRareKindJustKind(const int iResultSok, const int iTargetSok)
{
if(iResultSok == iTargetSok)
{
return true;
}
else
{
for(int i = 0; i < MAX_CORRECT_RARE; i++)
{
if( Convert [0][i] == iResultSok)
{
if( Convert [1][i] == iTargetSok)
{
return true;
}
}
else if( Convert [1][i] == iResultSok)
{
if( Convert [0][i] == iTargetSok)
{
return true;
}
}
}
}
return false;
}
bool CorrectRareKind(const int iResultAttr,const int iCompareAttr)
{
RareMain *result = ((LPRareMain)(&iResultAttr));
RareMain *compare = ((LPRareMain)(&iCompareAttr));
const int iResultSok = result->soksung1;
const int iTargetSok = compare->soksung1;
if( result->grade != compare->grade){return false;}
if( result->iHighLevel != compare->iHighLevel){return false;}
if( result->soksung2 != compare->soksung2){return false;}
if( result->soksung3 != compare->soksung3){return false;}
if( result->IsDynamicRare != compare->IsDynamicRare){return false;}
for(int i = 0; i < MAX_CORRECT_RARE; i++)
{
if( Convert [0][i] == iResultSok)
{
if( Convert [1][i] == iTargetSok)
{
return true;
}
}
else if( Convert [1][i] == iResultSok)
{
if( Convert [0][i] == iTargetSok)
{
return true;
}
}
}
return false;
}
bool CheckBy2ndGM_Insert_to_GMItemList(ItemAttr ia, const int iType)
{
const int item_no = gm_make_item_result.item_no;//诀弊饭捞靛 何啊 酒捞袍老 版快
CItem *t;
t = ItemUnit(ia.item_no);
if(!t)
{
return false;
}
if( !ia.item_no )
{ AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,514) );
return false;
}
const RareMain *pInRare = (RareMain*)(&ia.attr[IATTR_RARE_MAIN]);
if(pInRare->soksung2 || pInRare->soksung3)
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,880) );
return false;
}
if(DIVIDE_ITEM == t->GetRButton())
{
if(ia.attr[IATTR_MUCH]<DIVIDE_ITEM_UPGRDEABLE_MIN || ia.attr[IATTR_MUCH]>DIVIDE_ITEM_UPGRDEABLE_MAX )
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,266),DIVIDE_ITEM_UPGRDEABLE_MIN,DIVIDE_ITEM_UPGRDEABLE_MAX);
return false;
}
}
if(iType)//扁己狼 诀臂
{
if( !ia.attr[IATTR_RARE_MAIN] ) //加己捞 绝衬
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,516));
return false;
}
for(int ct = 0; ct <2; ct++)//酒捞袍 磊府啊 鞍促( Pos 眉农 )
{
if(!memcmp(&g_MultiRareSrc.MultiRareSrc[ct].pos , &IP_base,sizeof(POS)))
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,518));
return false;
}
const RareMain *pRare = (RareMain*)(&g_MultiRareSrc.MultiRareSrc[ct].attr.attr[IATTR_RARE_MAIN] );
if(pInRare->soksung1)
{
if(MAX_DOUBLE_RARE_GRADE < pInRare->grade + pRare->grade)//021212 lsw
{
AddCurrentStatusMessage(FONT_COLOR_MAX, lan->OutputMessage(2,881));
return false;
}
if(pRare->soksung1 == pInRare->soksung1)
{
AddCurrentStatusMessage(FONT_COLOR_MAX, lan->OutputMessage(2,890));
return false;
}
else//
{
if(CorrectRareKindJustKind(pRare->soksung1, pInRare->soksung1))//促弗单档 阂备窍档 鞍篮扒啊
{
return false;
}
}
}
else
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,511));//饭绢啊 酒聪垒酒
return false;
}
const int iTargetNo = g_MultiRareSrc.MultiRareSrc[ct].attr.item_no;
if(iTargetNo)
{
if(ia.item_no != iTargetNo)
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,515));
return false;
}
}
}
return true;
}
else //瘤骏狼 诀臂
{
if(ItemMutantKind[GetItemAttr( item_no, ITEM_KIND)].AddItem[0]/100 == ia.item_no)//鞘夸 酒捞袍 1锅 捞衬?
{
return true;
}
if(ItemMutantKind[GetItemAttr( item_no, ITEM_KIND)].AddItem[1]/100 == ia.item_no)//鞘夸 酒捞袍 2锅 捞衬?
{
return true;
}
if( !ia.attr[IATTR_RARE_MAIN] ) //加己捞 绝衬
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,516));
return false;
}
for(int ct = 0; ct <20; ct++)//酒捞袍 磊府啊 鞍促( Pos 眉农 )
{
if(!memcmp(&gm_make_item_list[ct].pos , &IP_base,sizeof(POS)))
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,518));
return false;
}
}
// 扁瓷 酒捞袍苞 酒囱 酒捞袍阑 备盒 窍磊.
if(((RareMain*)&ia.attr[IATTR_RARE_MAIN])->IsDynamicRare)//捞 if巩捞 窃荐狼 付瘤阜阑 厘侥秦具 钦聪促.
{ //扁瓷 酒捞袍 何盒
if(gm_make_item_result.attr.item_no != ia.item_no)
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,515));
return false;
}
if( gm_make_item_result.attr.attr[IATTR_RARE_MAIN] == ia.attr[IATTR_RARE_MAIN] )//加己捞 鞍促..
{
}
else//钢萍 扁瓷捞 等促
{//加己 促弗芭匙
return false;
}
}
else
{
if(gm_make_item_result.attr.item_no != ia.item_no)
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,515));
return false;
}
if( gm_make_item_result.attr.attr[IATTR_RARE_MAIN] != ia.attr[IATTR_RARE_MAIN] )//加己捞 促福促..
{
if(CorrectRareKind(gm_make_item_result.attr.attr[IATTR_RARE_MAIN],ia.attr[IATTR_RARE_MAIN]))
{
//true肺 府畔登搁 宝满澜
}
else
{
AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,517));
return false;
}
}
}
return true;
}
return false;
}
//010708 lsw
int Call_GM_2ND_Skill_Menu()
{
CloseAllMenu();
fRMoveMenu = MM_ITEM_OPEN; // 困狼 if巩阑 父练且 锭父
nItemOther = MN_GM_2ND_SKILL;
y_MenuFocus = 0;
ZeroMemory( &gm_make_item_result, sizeof(MakeItem) ); //府胶飘 檬扁拳
ZeroMemory( gm_make_item_list , sizeof(MakeItem[MAX_UPGRADE_RARE]) );
return 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -