標題:
請求96 封包的詳細解決方法
[打印本頁]
作者:
hongbbn
時間:
2013-5-8 00:15
標題:
請求96 封包的詳細解決方法
在這位置
// shan 2002/01/10
void lssproto_PETST_recv( int fd, int nPet, int sPet )
{
int charaindex;
int i, nums=0;
CHECKFDANDTIME;
charaindex = CONNECT_getCharaindex( fd );
if (!CHAR_CHECKINDEX( charaindex ) ) return;
if( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE)
!= BATTLE_CHARMODE_NONE) return ;
for( i=0; i<5; i++) {
if( CHAR_getWorkInt( charaindex, CHAR_WORK_PET0_STAT+i) == TRUE )
nums++;
}
if( nums <= 3 )
CHAR_setWorkInt( charaindex, CHAR_WORK_PET0_STAT+nPet, sPet);
}
應該怎樣修改的???
我爬文看到的是
約是這樣:
if(nPet < 0 || nPet > 4 || sPet <0 || sPet >4 )
return ;
但應該從哪個位置修改呢?
有大大可以詳細說一下如果修改嗎?
我自己改了幾次,都編譯不到gmsv,直接//了後,在遊戲里的寵物切換"戰鬥,等待,郵件"等會出現錯誤
之後就掉線了
求解
[
本帖最後由 hongbbn 於 2013-5-8 00:20 編輯
]
作者:
囡囡
時間:
2013-5-11 08:10
// shan 2002/01/10
void lssproto_PETST_recv( int fd, int nPet, int sPet )
{
int charaindex;
int i, nums=0;
CHECKFDANDTIME;
charaindex = CONNECT_getCharaindex( fd );
if (!CHAR_CHECKINDEX( charaindex ) ) return;
if( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE)
!= BATTLE_CHARMODE_NONE) return ;
for( i=0; i<5; i++) {
if( CHAR_getWorkInt( charaindex, CHAR_WORK_PET0_STAT+i) == TRUE )
nums++;
}
if(nPet < 0 || nPet > 4 || sPet <0 || sPet >4 )
return ;
}
修复后会出现别的BUG
作者:
hongbbn
時間:
2013-5-14 19:09
if( nums <= 3 )
CHAR_setWorkInt( charaindex, CHAR_WORK_PET0_STAT+nPet, sPet);
轉到
if(nPet < 0 || nPet > 4 || sPet <0 || sPet >4 )
return ;
後,會出現什麼樣的bugs?
我編譯源碼時,直接加上
if(nPet < 0 || nPet > 4 || sPet <0 || sPet >4 )
return ;
請問會有作用嗎?
謝謝指教
作者:
vickelyz
時間:
2013-5-20 03:19
判断后,是否溢出,测返回…………
作者:
shen
時間:
2013-5-21 10:38
這段直接放在 function 最前面就行了
if(nPet < 0 || nPet > 4 || sPet <0 || sPet >4 )
return ;
作者:
hongbbn
時間:
2013-5-21 20:09
謝謝指教
歡迎光臨 We Love SA 石器時代研討中心 (http://lab.welovesa.com/)
Powered by Discuz! 6.0.0