?? item.c
字號:
work = itemEffect[i].accumulation; }else{ work = CHAR_getWorkInt(index,itemEffect[i].charmodifyparamindex) + itemEffect[i].accumulation; work = min( itemEffect[i].max, work ); work = max( itemEffect[i].min, work ); } CHAR_setWorkInt( index, itemEffect[i].charmodifyparamindex, work ); } for( i = 0; i < 4; i ++ ) { CHAR_setWorkInt( index, CHAR_WORKFIXEARTHAT + i, CHAR_getWorkInt( index, CHAR_WORKFIXEARTHAT + i) + attribaccum[i]); } for( i = 0; i < 4; i ++ ) { int j; for( j = 0; j < 4; j ++ ) { if( i != j ) { CHAR_setWorkInt( index, CHAR_WORKFIXEARTHAT + j, CHAR_getWorkInt(index, CHAR_WORKFIXEARTHAT + j) - attribaccum[i]); } } } for( i = 0; i < 4; i ++ ) { if( CHAR_getWorkInt( index, CHAR_WORKFIXEARTHAT + i) > CHAR_MAXATTRIB) { CHAR_setWorkInt( index, CHAR_WORKFIXEARTHAT + i, CHAR_MAXATTRIB); } } { int work; work = CHAR_getWorkInt(index,CHAR_WORKFIXSTR)+ itemEffect[0].accumulation; CHAR_setWorkInt( index, CHAR_WORKFIXSTR, max( 0, work ) ); work = CHAR_getWorkInt(index,CHAR_WORKFIXTOUGH) + itemEffect[1].accumulation; CHAR_setWorkInt( index, CHAR_WORKFIXTOUGH, max( -100, work ) ); work = CHAR_getWorkInt( index, CHAR_WORKFIXDEX) + itemEffect[2].accumulation; CHAR_setWorkInt( index, CHAR_WORKFIXDEX, max( -100, work ) ); }}void Other_DefcharWorkInt( int index){#ifdef _SUIT_ITEM int mfix,mtgh,mdex,mods,maxhp; mfix = CHAR_getWorkInt( index, CHAR_WORKFIXSTR); mtgh = CHAR_getWorkInt( index, CHAR_WORKFIXTOUGH); mdex = CHAR_getWorkInt( index, CHAR_WORKFIXDEX); maxhp = CHAR_getWorkInt( index, CHAR_WORKMAXHP); mods = CHAR_getWorkInt( index, CHAR_WORKSUITMODSTR); mfix = mfix+((mfix*mods)/100); CHAR_setWorkInt( index, CHAR_WORKFIXSTR, mfix+CHAR_getWorkInt( index, CHAR_WORKSUITSTR)); CHAR_setWorkInt( index, CHAR_WORKFIXTOUGH, mtgh+CHAR_getWorkInt( index, CHAR_WORKSUITTGH)); CHAR_setWorkInt( index, CHAR_WORKFIXDEX, mdex+CHAR_getWorkInt( index, CHAR_WORKSUITDEX)); CHAR_setWorkInt( index, CHAR_WORKMAXHP, maxhp+ CHAR_getWorkInt( index, CHAR_WORKSUITVIT));#ifdef _SUIT_ADDPART3 if( mfix > 0 ) CHAR_setWorkInt( index, CHAR_WORKFIXSTR, CHAR_getWorkInt( index, CHAR_WORKFIXSTR)+mfix*CHAR_getWorkInt( index, CHAR_WORKSUITSTR_P)/100.0); if( mtgh > 0 ) CHAR_setWorkInt( index, CHAR_WORKFIXTOUGH, CHAR_getWorkInt( index, CHAR_WORKFIXTOUGH)+mtgh*CHAR_getWorkInt( index, CHAR_WORKSUITTGH_P)/100.0); if( mdex > 0) CHAR_setWorkInt( index, CHAR_WORKFIXDEX, CHAR_getWorkInt( index, CHAR_WORKFIXDEX)+mdex*CHAR_getWorkInt( index, CHAR_WORKSUITDEX_P)/100.0);#endif#endif//_SUIT_ITEM#ifdef _MAGIC_RESIST_EQUIT // WON ADD 職業抗性裝備 /*{ int f_res = -1, i_res = -1, t_res = -1; f_res = CHAR_getWorkInt( index, CHAR_WORK_F_RESIST ); i_res = CHAR_getWorkInt( index, CHAR_WORK_I_RESIST ); t_res = CHAR_getWorkInt( index, CHAR_WORK_T_RESIST ); CHAR_setWorkInt( index, CHAR_WORK_F_RESIST, f_res+CHAR_getWorkInt( index, CHAR_WORK_F_SUIT ) ); CHAR_setWorkInt( index, CHAR_WORK_I_RESIST, i_res+CHAR_getWorkInt( index, CHAR_WORK_I_SUIT ) ); CHAR_setWorkInt( index, CHAR_WORK_T_RESIST, t_res+CHAR_getWorkInt( index, CHAR_WORK_T_SUIT ) ); }*/#endif#ifdef _PETSKILL_SETDUCK //profession fix //使用回避招式時,會將防值減去30%然後設定成回避值,奇怪的設定,也造成原本設定的回避值跟沒設一樣,因此我(Change)先把整段拿掉 /*if( CHAR_getWorkInt( index, CHAR_MYSKILLDUCK) > 0 ){ int mtgh = CHAR_getWorkInt( index, CHAR_WORKFIXTOUGH); mtgh -= (mtgh*30)/100; if( mtgh < 0 ) mtgh=0; CHAR_setWorkInt( index, CHAR_MYSKILLDUCKPOWER, mtgh); }*/#endif#ifdef _MAGICPET_SKILL if( CHAR_getWorkInt( index, CHAR_MYSKILLSTR) > 0 ){ int mpower, mdef; mpower = CHAR_getWorkInt( index, CHAR_WORKFIXSTR); mdef = CHAR_getWorkInt( index, CHAR_MYSKILLSTRPOWER); mpower += (mtgh*mdef)/100; if( mtgh < 0 ) mtgh=0; CHAR_setWorkInt( index, CHAR_WORKFIXSTR, mpower); } if( CHAR_getWorkInt( index, CHAR_MYSKILLTGH) > 0 ){ int mpower, mdef; mpower = CHAR_getWorkInt( index, CHAR_WORKFIXTOUGH); mdef = CHAR_getWorkInt( index, CHAR_MYSKILLTGHPOWER); mpower += (mtgh*mdef)/100; if( mtgh < 0 ) mtgh=0; CHAR_setWorkInt( index, CHAR_WORKFIXTOUGH, mpower); } if( CHAR_getWorkInt( index, CHAR_MYSKILLDEX) > 0 ){ int mpower, mdef; mpower = CHAR_getWorkInt( index, CHAR_WORKFIXDEX); mdef = CHAR_getWorkInt( index, CHAR_MYSKILLDEXPOWER); mpower += (mtgh*mdef)/100; if( mtgh < 0 ) mtgh=0; CHAR_setWorkInt( index, CHAR_WORKFIXDEX, mpower); }#endif#ifdef _PROFESSION_SKILL // WON ADD 人物職業技能 if( CHAR_getWorkInt( index, CHAR_MYSKILLHIT) > 0 ){ int mpower, mdef; mpower = CHAR_getWorkInt( index, CHAR_MYSKILLHIT); mdef = CHAR_getWorkInt( index, CHAR_WORKHITRIGHT); mpower += (mtgh*mdef)/100; if( mtgh < 0 ) mtgh=0; CHAR_setWorkInt( index, CHAR_MYSKILLHIT, mpower); } if( CHAR_getWorkInt( index, CHAR_WORK_WEAPON) > 0 ){ // 武器專精 int mpower, mdef; mpower = CHAR_getWorkInt( index, CHAR_WORKFIXSTR); mdef = CHAR_getWorkInt( index, CHAR_WORKMOD_WEAPON); mpower = mpower * ( 100 + mdef ) /100; if( mtgh < 0 ) mtgh=0; CHAR_setWorkInt( index, CHAR_WORKFIXSTR, mpower); }#endif#ifdef _VARY_WOLF if(CHAR_getInt( index, CHAR_BASEIMAGENUMBER)==101428){ int Rands=0, power; Rands = CHAR_getWorkInt( index, CHAR_SKILLSTRPOWER); power = CHAR_getWorkInt( index, CHAR_WORKFIXSTR); power = power + (power*Rands)/100; CHAR_setWorkInt( index, CHAR_WORKFIXSTR, power); Rands = CHAR_getWorkInt( index, CHAR_SKILLDEXPOWER); power = CHAR_getWorkInt( index, CHAR_WORKFIXDEX); power = power + (power*Rands)/100; CHAR_setWorkInt( index, CHAR_WORKFIXDEX, power); }#endif#ifdef _PROFESSION_ADDSKILL if( CHAR_getWorkInt( index, CHAR_WORKFEAR ) > 0 ){ CHAR_setWorkInt( index, CHAR_WORKFIXSTR, CHAR_getWorkInt( index, CHAR_WORKFIXSTR ) - mfix*0.1 ); CHAR_setWorkInt( index, CHAR_WORKFIXTOUGH, CHAR_getWorkInt( index, CHAR_WORKFIXTOUGH ) - mtgh*0.1 ); CHAR_setWorkInt( index, CHAR_WORKFIXDEX, CHAR_getWorkInt( index, CHAR_WORKFIXDEX ) - mdex*0.2 ); }#endif#ifdef _MAGIC_WEAKEN if(CHAR_getWorkInt(index,CHAR_WORKWEAKEN)>0){ CHAR_setWorkInt( index, CHAR_WORKFIXSTR, CHAR_getWorkInt( index, CHAR_WORKFIXSTR)*0.8); CHAR_setWorkInt( index, CHAR_WORKFIXTOUGH, CHAR_getWorkInt( index, CHAR_WORKFIXTOUGH)*0.8); CHAR_setWorkInt( index, CHAR_WORKFIXDEX, CHAR_getWorkInt( index, CHAR_WORKFIXDEX)*0.8); CHAR_setWorkInt( index, CHAR_WORKWEAKEN, CHAR_getWorkInt( index, CHAR_WORKWEAKEN)-1); }#endif#ifdef _MAGIC_BARRIER// vincent 精靈:魔障 if( CHAR_getWorkInt( index, CHAR_WORKBARRIER) > 0){ CHAR_setWorkInt( index, CHAR_WORKBARRIER, CHAR_getWorkInt( index, CHAR_WORKBARRIER) - 1); }#endif CHAR_setWorkInt(index, CHAR_WORKATTACKPOWER, CHAR_getWorkInt( index, CHAR_WORKFIXSTR ) ); CHAR_setWorkInt(index, CHAR_WORKDEFENCEPOWER, CHAR_getWorkInt( index, CHAR_WORKFIXTOUGH ) ); CHAR_setWorkInt(index, CHAR_WORKQUICK, CHAR_getWorkInt( index, CHAR_WORKFIXDEX ) );}char* ITEM_getAppropriateName(int itemindex){ int nameindex; if( !ITEM_CHECKINDEX(itemindex ) )return NULL; if( ITEM_getInt(itemindex,ITEM_LEAKLEVEL) <= 0 ) nameindex = ITEM_NAME; else nameindex = ITEM_SECRETNAME; return ITEM_getChar(itemindex,nameindex);}char* ITEM_getEffectString( int itemindex ){ if( !ITEM_CHECKINDEX(itemindex))return NULL; return ITEM_item[itemindex].itm.string[ITEM_EFFECTSTRING].string;}char *ITEM_getItemInfoFromNumber( int itemid ){ return ITEMTBL_getChar( itemid, ITEM_EFFECTSTRING);}INLINE char* _ITEM_getNameFromNumber( char *file, int line, int itemid ){ if( ITEM_CHECKITEMTABLE(itemid) == FALSE ){ print("Can't Get ItemTable for:%d! - %s:%d\n",itemid, file, line); return NULL; } return ITEMTBL_getChar( itemid, ITEM_NAME);}int ITEM_getcostFromITEMtabl( int itemid ){ return ITEMTBL_getInt( itemid, ITEM_COST);}int ITEM_getlevelFromITEMtabl( int itemid ){ return ITEMTBL_getInt( itemid, ITEM_LEVEL);}int ITEM_getgraNoFromITEMtabl( int itemid ){ return ITEMTBL_getInt( itemid, ITEM_BASEIMAGENUMBER);}int ITEM_getcanpetmailFromITEMtabl( int itemid ){ return ITEMTBL_getInt( itemid, ITEM_CANPETMAIL);}int ITEM_getvanishatdropFromITEMtabl( int itemid ){ return ITEMTBL_getInt( itemid, ITEM_VANISHATDROP);}int ITEM_getdropatlogoutFromITEMtabl( int itemid ){ return ITEMTBL_getInt( itemid, ITEM_DROPATLOGOUT);}int ITEM_getmergeItemFromFromITEMtabl( int itemid ){ return ITEMTBL_getInt( itemid, ITEM_CANMERGEFROM);}BOOL ITEM_canuseMagic( int itemindex){ if( !ITEM_CHECKINDEX(itemindex))return FALSE; if( MAGIC_getMagicArray( ITEM_item[itemindex].itm.data[ITEM_MAGICID]) != -1 ) { return TRUE; } return FALSE;}INLINE ITEM_Item *ITEM_getItemPointer( int index ){ if(!ITEM_CHECKINDEX(index))return NULL; return &ITEM_item[index].itm;}int ITEM_isTargetValid( int charaindex, int itemindex, int toindex){ int itemtarget; int Myside; itemtarget = ITEM_getInt( itemindex, ITEM_TARGET ); Myside = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLESIDE ); if ((toindex >= 0x0) && (toindex <= 0x13)) return 0; if (toindex == 0x14) {//20 右下全 0 if (itemtarget == ITEM_TARGET_ALLMYSIDE){ if( Myside == 0 )return 0; }else if(itemtarget == ITEM_TARGET_ALLOTHERSIDE ){ if( Myside == 1 )return 0; } }else if (toindex == 0x15) {//21 左上全 1 if (itemtarget == ITEM_TARGET_ALLMYSIDE){ if( Myside == 1 )return 0; }else if( itemtarget == ITEM_TARGET_ALLOTHERSIDE ){ if( Myside == 0 )return 0; } }else if (toindex == 0x16) { if (itemtarget == ITEM_TARGET_ALL) return 0; } return -1;}// Nuke end#ifdef _ITEM_CHECKWARESBOOL CHAR_CheckInItemForWares( int charaindex, int flg){ int itemindex, i; char token[256]; for( i=0; i<24; i++) { itemindex = CHAR_getItemIndex( charaindex, i); if( !ITEM_CHECKINDEX( itemindex) ) continue; if( ITEM_getInt( itemindex, ITEM_TYPE) == ITEM_WARES ) { if( flg == 0 ){ return FALSE; } sprintf(token,"交出%s",ITEM_getChar( itemindex, ITEM_NAME)); CHAR_talkToCli( charaindex, -1, token, CHAR_COLORYELLOW); CHAR_setItemIndex( charaindex, i ,-1); ITEM_endExistItemsOne( itemindex); CHAR_sendItemDataOne( charaindex, i); } } return TRUE;}#endif#ifdef _IMPOROVE_ITEMTABLEBOOL ITEMTBL_CHECKINDEX( int ItemID){ if( ItemID < 0 || ItemID >= defitemtbls ) return FALSE; return ITEM_TransformList[ ItemID].use;}int ITEM_getSIndexFromTransList( int ItemID){ if( !ITEMTBL_CHECKINDEX( ItemID) ) return -1; return ITEM_TransformList[ ItemID].Si;}int ITEM_getTotalitemtblsFromTransList(){ return totalitemtbls;}int ITEM_getMaxitemtblsFromTransList(){ return defitemtbls;}#endifint ITEMTBL_getInt( int ItemID, ITEM_DATAINT datatype){#ifdef _IMPOROVE_ITEMTABLE int itemsi=0; if( !ITEM_CHECKITEMTABLE( ItemID) ) return -1; itemsi = ITEM_getSIndexFromTransList( ItemID); if( datatype >= ITEM_DATAINTNUM || datatype < 0 ) return -1; return ITEM_tbl[itemsi].itm.data[datatype]; //new#else if( datatype >= ITEM_DATAINTNUM || datatype < 0 ) return -1; if( ITEM_CHECKITEMTABLE(ItemID) == FALSE )return -1; return ITEM_tbl[ItemID].itm.data[datatype]; //new#endif}char *ITEMTBL_getChar( int ItemID, ITEM_DATACHAR datatype){#ifdef _IMPOROVE_ITEMTABLE int itemsi=0; if( !ITEM_CHECKITEMTABLE( ItemID) ) return NULL; itemsi = ITEM_getSIndexFromTransList( ItemID); if( datatype >= ITEM_DATACHARNUM || datatype < 0 ) return NULL; return ITEM_tbl[itemsi].itm.string[datatype].string; //new#else if( datatype >= ITEM_DATACHARNUM || datatype < 0 ) return NULL; if( ITEM_CHECKITEMTABLE(ItemID) == FALSE )return NULL; return ITEM_tbl[ItemID].itm.string[datatype].string; //new#endif}INLINE BOOL ITEM_CHECKITEMTABLE( int number ){#ifdef _IMPOROVE_ITEMTABLE int itemsi=0; if( !ITEMTBL_CHECKINDEX( number) ) return FALSE; itemsi = ITEM_getSIndexFromTransList( number); if( itemsi < 0 || itemsi >= ITEM_tblen ) return FALSE; return ITEM_tbl[itemsi].use; //new#else if( number < 0 || number >= ITEM_tblen ){ //andy_log print("ITEM_CHECKITEMTABLE() number:%d ITEM_tblen:%d !!\n", number, ITEM_tblen ); return FALSE; } return ITEM_tbl[number].use; //new#endif}int ITEM_getItemDamageCrusheED( int itemindex){ int crushe = ITEM_getInt( itemindex, ITEM_DAMAGECRUSHE); int maxcrushe = ITEM_getInt( itemindex, ITEM_MAXDAMAGECRUSHE); if(maxcrushe < 1)return -1; if( maxcrushe > 1000000) maxcrushe = 1000000; if( crushe > 1000000) crushe = 1000000; return ((int) (crushe*100)/maxcrushe);}void ITEM_RsetEquit( int charaindex){ int i, itemindex, ti=-1; for( i=0; i<CHAR_STARTITEMARRAY; i++){ itemindex = CHAR_getItemIndex( charaindex , i ); if( !ITEM_CHECKINDEX( itemindex)) continue; if( i == ITEM_getEquipPlace( charaindex, itemindex ) ) continue; if( (ti = CHAR_findEmptyItemBox( charaindex )) == -1 ) return; CHAR_setItemIndex( charaindex , i, -1); CHAR_setItemIndex( charaindex , ti, itemindex); }}void ITEM_reChangeItemToPile( int itemindex){ int itemID; if( !ITEM_CHECKINDEX(itemindex) ) return; if( ITEM_getInt( itemindex, ITEM_USEPILENUMS) <= 0 ) ITEM_setInt( itemindex, ITEM_USEPILENUMS, 1); itemID = ITEM_getInt( itemindex, ITEM_ID); if( !ITEM_CHECKITEMTABLE( itemID) ) return; if( itemID == 20284 ) return;//鐵槍叁另外處理 if( ITEM_getInt( itemindex, ITEM_CANBEPILE) != ITEMTBL_getInt( itemID, ITEM_CANBEPILE) ) ITEM_setInt( itemindex, ITEM_CANBEPILE, ITEMTBL_getInt( itemID, ITEM_CANBEPILE) );}void ITEM_reChangeItemName( int itemindex){//ITEM_NAME/* int itemID; char *IDNAME; char *NAME; if( !ITEM_CHECKINDEX(itemindex) ) return; itemID = ITEM_getInt( itemindex, ITEM_ID); if( !ITEM_CHECKITEMTABLE( itemID) ) return; IDNAME = ITEMTBL_getChar( itemID, ITEM_NAME); NAME = ITEM_getChar( itemindex, ITEM_NAME); if( IDNAME==NULL || NAME==NULL ) return; if( !strcmp( IDNAME, NAME) ) return; ITEM_setChar( itemindex, ITEM_NAME, IDNAME);*/}#ifdef _CHECK_ITEM_MODIFYvoid ITEM_che
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -