📄 smallmenu.cpp
字号:
{
AutoChangeEquip( 0 );
}
f_change_equip1 = true;
}
}
else
{
f_change_equip1 = false;
}
static bool f_change_equip2 = false;
if(g_aCurrentKeys[DIK_F10] & 0x80 )
{
if( !f_change_equip2 )
{
if( lcontrol )
{
EquipSaveFlag[1] = TRUE;
for(int i=0;i<8;i++)
{
SaveArmor[1][i] = EquipItemAttr[i].item_no;
}
}
else
{
AutoChangeEquip( 1 );
}
f_change_equip2 = true;
}
}
else
{
f_change_equip2 = false;
}
}
int AutoChangeEquip( int flag_key ) // f3, f4甫 喘范阑锭
{
if( IsDead( Hero ) ) return 0; // 磷菌阑锭 荤侩阑 给窍霸 茄促.
if( !EquipSaveFlag[flag_key] ) return 0;
if( Hero->ready_Magic == 1 ) return 0;
ServerConnectMenuClose(); // 背券芒阑 辆丰 矫挪促.
static DWORD time = g_curr_time-20;
DWORD gab = g_curr_time-time;
if( gab < 10 )
{
MP3( SN_WARNING );
AddCurrentStatusMessage( 200, 20, 20, lan->OutputMessage(6,36), 10-gab );//010215 lsw
return 0;
}
if( EquipItemAttr[WT_SHIELD].item_no ) // 刚历 规菩甫 绝矩促.
{
int a1, b1, c1;
int ret = SearchEmpty( a1, b1, c1 );
if( ret )
{
POS pos_s, pos_t;
SetItemPos( EQUIP, WT_SHIELD, &pos_s );
SetItemPos(INV, a1, b1, c1, &pos_t);
SendMoveItem( EquipItemAttr[WT_SHIELD].item_no, pos_s, pos_t );
CallItemVirtualFunction( VF_RELEASE_ITEM, EquipItemAttr[WT_SHIELD].item_no );
InvItemAttr[a1][b1][c1] = EquipItemAttr[WT_SHIELD];
memset( &EquipItemAttr[WT_SHIELD], 0, sizeof( ItemAttr ) );
time = g_curr_time;
}
}
for(int i=0;i<8;i++)
{
if(EquipItemAttr[i].item_no != SaveArmor[flag_key][i])
{
for(int a=0;a<3;a++)
{
for(int b=0;b<3;b++)
{
for(int c=0;c<8;c++)
{
if(SaveArmor[flag_key][i])
{
if( InvItemAttr[a][b][c].item_no == SaveArmor[flag_key][i] )
{
POS pos_s, pos_t;
SetItemPos(INV, a, b, c, &pos_s);
SetItemPos( EQUIP, i, &pos_t );
SendMoveItem( InvItemAttr[a][b][c].item_no, pos_s, pos_t );
CallItemVirtualFunction( VF_RELEASE_ITEM, EquipItemAttr[i].item_no );
CallItemVirtualFunction( VF_EQUIP_ITEM, InvItemAttr[a][b][c].item_no );
EquipItemAttr[i] = InvItemAttr[a][b][c];
memset( &InvItemAttr[a][b][c], 0, sizeof( ItemAttr ) );
time = g_curr_time;
goto kein3;
}
}
else
{
if( EquipItemAttr[i].item_no )
{
int a1, b1, c1;
int ret = SearchEmpty( a1, b1, c1 );
if( ret )
{
POS pos_s, pos_t;
SetItemPos( EQUIP, i, &pos_s );
SetItemPos(INV, a1, b1, c1, &pos_t);
SendMoveItem( EquipItemAttr[i].item_no, pos_s, pos_t );
CallItemVirtualFunction( VF_RELEASE_ITEM, EquipItemAttr[i].item_no );
InvItemAttr[a1][b1][c1] = EquipItemAttr[i];
memset( &EquipItemAttr[i], 0, sizeof( ItemAttr ) );
time = g_curr_time;
}
}
goto kein3;
}
}
}
}
}
kein3: continue;
}
ChangeEquip( Hero, EquipItemAttr, WT_WEAPON );
return 1;
}
void ChangeEquip( LPCHARACTER lpCharacter , ItemAttr *equip_item, int type ) // 8俺..
{
int *a;
int sprno;
int changeflag = 0;
int tno;
g_SokSungFlag = 0; // 加己 眉农
for( int i=0; i<8; i++ )
{
if( EquipItemAttr[i].attr[IATTR_RARE_MAIN] )
{
g_SokSungFlag = 1;
break;
}
}
GetTatics(); // 货肺 馒侩茄 公扁狼 琶平阑 掘绢 柯促.
if( lpCharacter== NULL ) return;
if( SysInfo.notconectserver )
{
a = lpCharacter->accessory;
sprno = lpCharacter->sprno;
if( lpCharacter == g_CharacterList.lpFirst )
{
tno = GetItemAttr(equip_item[WT_ARMOR].item_no, ITEMSHOW);
if( tno != a[0] )
{
changeflag = 1;
FreeHeroClothAccessoryDataOne( sprno, a[0] );
LoadHeroClothAccessoryDataOne( sprno, tno );
a[0] = tno;
}
tno = GetItemAttr(EquipItemAttr[WT_HELMET].item_no, ITEMSHOW);
if( tno != a[1] )
{
changeflag = 1;
FreeHeroClothAccessoryDataOne( sprno, a[1] );
LoadHeroClothAccessoryDataOne( sprno, tno );
a[1] = tno;
}
tno = GetItemAttr(EquipItemAttr[WT_WEAPON].item_no, ITEMSHOW);
if( tno != a[2] )
{
changeflag = 1;
FreeHeroClothAccessoryDataOne( sprno, a[2] );
LoadHeroClothAccessoryDataOne( sprno, tno );
a[2] = tno;
}
// 011030 KHS JJING
if( (( RareMain*)(&EquipItemAttr[WT_WEAPON].attr[ IATTR_RARE_MAIN]))->grade >=5 )
{
changeflag = 1;
LoadHeroClothAccessoryDataOne( sprno, tno + 200);
}
if( (( RareMain*)(&EquipItemAttr[WT_WEAPON].attr[ IATTR_RARE_MAIN]))->grade >=9 )
{
changeflag = 1;
LoadHeroClothAccessoryDataOne( sprno, tno + 201);
}
tno = GetItemAttr(EquipItemAttr[WT_SHIELD].item_no, ITEMSHOW);
if( tno != a[3] )
{
changeflag = 1;
FreeHeroClothAccessoryDataOne( sprno, a[3] );
LoadHeroClothAccessoryDataOne( sprno, tno );
a[3] = tno;
}
// 011018 KHS 噶肚
if( EquipItemAttr[WT_NECK].item_no != lpCharacter->mantle )
{
changeflag = 1;
FreeHeroClothAccessoryDataOne( sprno, GetItemAttr2( sprno, lpCharacter->mantle, ITEMSHOW ));
tno = GetItemAttr2( sprno, EquipItemAttr[WT_NECK].item_no, ITEMSHOW );
LoadHeroClothAccessoryDataOne( sprno, tno );
lpCharacter->mantle = EquipItemAttr[WT_NECK].item_no;
}
}
else
{
}
if( changeflag )
{
//SendChangeEquip( Hero ); // 辑滚俊辑 磊眉 魄窜秦辑 焊郴霖促.
}
// 0 : 茄颊八.
// 1 : 剧颊八.
if( lpCharacter->accessory[2] != 0 )
{
int check;
if( GetItemAttr( EquipItemAttr[WT_WEAPON].item_no, WEAR_ABLE ) == WEAR_TWO_HAND ) check = 1;
else check = 0;
switch( check )
{
case 0 : lpCharacter->basicAction = ACTION_BATTLE_NONE;
lpCharacter->basicWalk = ACTION_BATTLE_WALK_OWNHAND;
break;
case 1 :
lpCharacter->basicAction = ACTION_BATTLE_NONE_TWOHAND;
lpCharacter->basicWalk = ACTION_BATTLE_WALK_TWOHAND;
break;
}
}
else
{
lpCharacter->basicAction = ACTION_NONE;
lpCharacter->basicWalk = ACTION_BASIC_WALK;
}
}
SettingBasicActionSub( lpCharacter );
if( type == WT_WEAPON )
{
// GetItemAnimationNumber(aArmor_Inventory[WT_WEAPON], int &a, int &b, int &c, int &d, int &e, int &f, int &g)
}
///////////////////// AC 罐酒 坷扁 ////////////////////////
if( SMenu[MN_STATUS].bActive )
{
CallServer( CMD_REQ_AC );
}
///////////////////// DMG 罐酒 坷扁 ////////////////////////
if( SMenu[MN_STATUS].bActive )
{
CallServer( CMD_REQ_DMG );
}
}
ItemAttr *SearchEmpty()
{
for(int a=0;a<3;a++)
for(int b=0;b<3;b++)
for(int c=0;c<8;c++)
if(!InvItemAttr[a][b][c].item_no)
return &InvItemAttr[a][b][c];
return NULL;
}
int SearchEmpty(int &a, int &b, int &c)
{
for(a=0;a<3;a++)
for(b=0;b<3;b++)
for(c=0;c<8;c++)
if(!InvItemAttr[a][b][c].item_no)
return 1;
return 0;
}
int SearchEmptyBank(int &a, int &b, int &c)
{
for(a=0;a<5;a++)
for(b=0;b<3;b++)
for(c=0;c<6;c++)
if(!BankItemAttr[a][b][c].item_no)
return 1;
return 0;
}
int SearchEmptyQuickItem()
{
for( int a=0; a<5; a++ )
{
if( !QuickItemAttr[a].item_no ) return a;
}
return -1;
}
int IsMagicWindowOn()
{
return 0;
}
int ItemDrop()
{ //付快胶 扩率 滚瓢捞 棵扼哎锭 酒捞袍捞 付快胶客 楷搬夌绊 角力 霸烙胶农赴俊 甸绢啊 乐栏搁 酒捞袍阑 初绰促
int kkk = IsMagicWindowOn();
if( g_MouseItemType )
{ //劝己拳等 皋春甸阑 眉农茄促
if( g_MouseInMenu ){return kkk;}
const int *m = ( is_mainmenu_active )?mainmenu:smallmenu;
const int max = ( is_mainmenu_active )?MAX_MAIN:MAX_SMALL;
for(int t=0;t<max;t++)
{
int menu = m[t];
if(SMenu[menu].bActive)
{
RECT box;
Spr *s = GetSprOfMenu( SMenu[menu].nImageType, SMenu[menu].nImageNumber );
if( !s ) continue;
SetRect(box, SMenu[menu].x, SMenu[menu].y, SMenu[menu].x+s->xl, SMenu[menu].y+s->yl);
if(MouseInRectCheak(0,0, box)) return kkk;
}
}
if( g_MouseItemType == 1 && !g_DropOnHero ) // 酒捞袍老 版快父 辑滚 妮
{
if( IP_base.type != GROUND )
{
DropItemSound( HandItemAttr.item_no );
SendDropItem( HandItemAttr.item_no, Mox, Moy, HandItemAttr.attr );
g_MouseItemType=0;
g_MouseItemNumber=0;
DeleteItem( &HandItemAttr );
}
}
}
return kkk;
}
void MoveMenu()
{
cLMoveMenu = 5;
cRMoveMenu = 5;
switch(fLMoveMenu)
{
case MM_STATUS_OPEN : SMenu[MN_STATUS].bActive=TRUE;
SMenu[MN_STATUS].x=-320+64*cLMoveMenu;
if(cLMoveMenu == 5 )
{
MenuStack.PutMenu(MN_STATUS);
cLMoveMenu=0;
fLMoveMenu=0;
break;
}
cLMoveMenu++;
break;
case MM_STATUS_CLOSE : SMenu[MN_STATUS].x=0-64*cLMoveMenu; //32绰 鸥老农扁, 茄锅俊 鸥老农扁究 捞悼捞促.
if(cLMoveMenu == 5 )
{
cLMoveMenu=0;
fLMoveMenu=0;
SMenu[MN_STATUS].bActive=FALSE;
MenuStack.DelMenu(MN_STATUS);
break;
}
cLMoveMenu++;
break;
case MM_ABILITY_CLOSE : SMenu[MN_ABILITY].x=0-64*cLMoveMenu; //32绰 鸥老农扁, 茄锅俊 鸥老农扁究 捞悼捞促.
if(cLMoveMenu == 5 )
{
cLMoveMenu=0;
fLMoveMenu=0;
SMenu[MN_ABILITY].x=0;
SMenu[MN_ABILITY].bActive=FALSE;
MenuStack.DelMenu(MN_ABILITY);
break;
}
cLMoveMenu++;
break;
case MM_ARIGEMENT_CLOSE : SMenu[MN_ARIGEMENT].x=0-64*cLMoveMenu; //32绰 鸥老农扁, 茄锅俊 鸥老农扁究 捞悼捞促.
if(cLMoveMenu == 5 )
{
cLMoveMenu=0;
fLMoveMenu=0;
SMenu[MN_ARIGEMENT].x=0;
SMenu[MN_ARIGEMENT].bActive=FALSE;
MenuStack.DelMenu(MN_ARIGEMENT);
break;
}
cLMoveMenu++;
break;
case MM_TACTICS_CLOSE : SMenu[MN_TACTICS].x=0-64*cLMoveMenu; //32绰 鸥老农扁, 茄锅俊 鸥老农扁究 捞悼捞促.
if(cLMoveMenu == 5 )
{
cLMoveMenu=0;
fLMoveMenu=0;
SMenu[MN_TACTICS].x=0;
SMenu[MN_TACTICS].bActive=FALSE;
MenuStack.DelMenu(MN_TACTICS);
break;
}
cLMoveMenu++;
break;
default : fLMoveMenu=0; break;
}
switch(fRMoveMenu)
{
case MM_ITEM_OPEN :
{
SMenu[MN_ITEM].bActive=TRUE;
SMenu[MN_ITEM].x=SCREEN_WIDTH-64*cRMoveMenu; //32绰 鸥老农扁, 茄锅俊 鸥老农扁究 捞悼捞促.
if(cRMoveMenu == 5 )
{
cRMoveMenu=0;
fRMoveMenu=0;
RightClose();
SMenu[MN_ITEM].bActive=TRUE;
if( nItemOther )
{
SMenu[nItemOther].bActive = TRUE; // 酒捞袍苞 鞍捞 栋具窍绰 皋春啊 乐促搁 鞍捞 夺促.
// nItemOther = 0;
LeftMenuClose();
}
MenuStack.PutMenu(MN_ITEM);
break;
}
cRMoveMenu++;
break; //捞犯霸 秦辑 付快胶 涝仿阑 阜绰促.
}
case MM_ITEM_CLOSE :
SMenu[MN_ITEM].x=480+64*cRMoveMenu; //32绰 鸥老农扁, 茄锅俊 鸥老农扁究 捞悼捞促.
if(cRMoveMenu == 5 )
{
cRMoveMenu=0;
fRMoveMenu=0;
SMenu[MN_ITEM].x=480;
SMenu[MN_ITEM].bActive=FALSE;
if( nItemOther )
{
SMenu[nItemOther].bActive = false;
nItemOther = 0;
}
if(SMenu[MN_BANK_CUSTODY].bActive)
{
SMenu[MN_BANK_CUSTODY].bActive = FALSE;
// SmallMenuClose(); MN_BANK_CUSTODY ==> 胶隔 皋春啊 酒匆铂
}
MenuStack.DelMenu(MN_ITEM);
break;
}
cRMoveMenu++;
break;
// 颇萍 皋春 框流捞搁辑 殿厘
case MM_PARTY_OPEN :
SMenu[MN_PARTY].bActive=TRUE;
SMenu[MN_PARTY].x=SCREEN_WIDTH-64*cRMoveMenu; //32绰 鸥老农扁, 茄锅俊 鸥老农扁究 捞悼捞促.
if(cRMoveMenu == 5 )
{
cRMoveMenu=0;
fRMoveMenu=0;
// RightClose();
SMenu[nPartyState].bActive=FALSE;
// MenuStack.DelMenu(nPartyState);
SMenu[MN_PARTY].bActive=TRUE;
MenuStack.PutMenu(MN_PARTY);
break;
}
cRMoveMenu++;
break; //捞犯霸 秦辑 付快胶 涝仿阑 阜绰促.
// 颇萍 皋春 框流捞搁辑 硼厘
case MM_PARTY_CLOSE :
if(nPartyState) SMenu[nPartyState].bActive=TRUE; //刚历 傈俊 栋乐菌带 皋春甫 劝己拳 矫虐绊
SMenu[MN_PARTY].x=480+64*cRMoveMenu; //32绰 鸥老农扁, 茄锅俊 鸥老农扁究 捞悼捞促.
if(cRMoveMenu == 5)
{
cRMoveMenu=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -