?? char_base.c
字號(hào):
"profession_thunder_r",#endif#ifdef _ALLDOMAN // (不可開(kāi)) Syu ADD 排行榜NPC "herofloor",#endif#ifdef _PETSKILL_BECOMEPIG "becomepig", "becomepig_bbi",#endif "leavetime", // CHAR_LASTLEAVETIME#ifdef _NEW_MANOR_LAW "momentum", // CHAR_MOMENTUM#endif#ifdef _ITEM_ADDEXP2 "aexp", // CHAR_ADDEXPPOWER "aexpt", // CHAR_ADDEXPTIME#endif#ifdef _ANGEL_SUMMON "herocnt", // CHAR_HEROCNT#endif#ifdef _TEACHER_SYSTEM "tsf", // CHAR_TEACHER_FAME, // 導(dǎo)師領(lǐng)導(dǎo)聲望#endif#ifdef _RACEMAN "checkin", // CHAR_CHECKIN "catchcnt1", // CHAR_CATCHCNT1 "catchcnt2", // CHAR_CATCHCNT2 "catchcnt3", // CHAR_CATCHCNT3 "catchcnt4", // CHAR_CATCHCNT4 "catchcnt5", // CHAR_CATCHCNT5 "kindcnt1", //CHAR_KINDCNT1, /* (0~31) */ "kindcnt2", //CHAR_KINDCNT2, /* (32~63) */ "kindcnt3", //CHAR_KINDCNT3, /* (64~95) */ "kindcnt4", //CHAR_KINDCNT4, /* (96~127) */ "kindcnt5", //CHAR_KINDCNT5, /* (128~159) */ "kindcnt6", //CHAR_KINDCNT6, /* (160~191) */ "kindcnt7", //CHAR_KINDCNT7, /* (192~223) */ "kindcnt8", //CHAR_KINDCNT8, /* (224~255) */ "kindcnt9", //CHAR_KINDCNT9, /* (256~287) */ "kindcnt10", //CHAR_KINDCNT10, /* (288~319) */#endif#ifdef _GM_ITEM "gmtime", // 玩家GM命令次數(shù)#endif};static char* CHAR_setchardata[CHAR_DATACHARNUM]={ /* dcc , PLAYER */ "name" , /* CHAR_NAME */ "ownt" , /* CHAR_OWNTITLE*/ "arg", /* CHAR_NPCARGUMENT */ "ocd", /* CHAR_OWNERCDKEY */ "ocn", /* CHAR_OWNERCHARANAME */ "fmname", // CoolFish: Family 2001/5/24 家族名稱 CHAR_FMNAME#ifdef _UNIQUE_P_I "ucode", // CoolFish: 2001/10/11 UNIQUE_P_I CHAR_UNIQUECODE#endif#ifdef _ACTION_GMQUE //人物 npc 使用 "gmque", //CHAR_GMQUESTR1, //"temp2", //CHAR_GMQUESTR2, //"temp3", //CHAR_GMQUESTR3, //"temp4", //CHAR_GMQUESTR4,#endif#ifdef _GM_IDENTIFY "gmidentify", //gm名稱#endif#ifdef _TEACHER_SYSTEM "tsi", // 導(dǎo)師帳號(hào) "tsn", // 導(dǎo)師名字#endif#ifdef _ITEM_SETLOVER "love", // 結(jié)婚判斷 "lovrrid", // 愛(ài)人帳號(hào) "lovrrneme", // 愛(ài)人名字#endif#ifdef _GM_ITEM "gmfunction", // 玩家GM命令#endif};INLINE BOOL _CHAR_CHECKINDEX( char *file, int line, int index ){ if( CHAR_charanum<=index || index<0 ) { return FALSE; } if( CHAR_chara[(index)].use == FALSE ) { return FALSE; } return TRUE;}static INLINE BOOL CHAR_CHECKINTDATAINDEX(int index){ if( CHAR_DATAINTNUM<=index || index<0 )return FALSE; return TRUE;}static INLINE BOOL CHAR_CHECKCHARDATAINDEX(int index){ if( CHAR_DATACHARNUM<=index || index<0 )return FALSE; return TRUE;}static INLINE BOOL CHAR_CHECKFLGDATAINDEX( int index ){ if( CHAR_FLGNUM<=index || index<0 )return FALSE; return TRUE;}static INLINE BOOL CHAR_CHECKCHARWORKDATAINDEX(int index){ if( CHAR_WORKDATACHARNUM<=index || index<0 )return FALSE; return TRUE;}static INLINE BOOL CHAR_CHECKCHARFUNCTABLEINDEX(int index){ if( CHAR_FUNCTABLENUM <= index || index < 0 )return FALSE; return TRUE;}INLINE BOOL _CHAR_CHECKITEMINDEX( char *file, int line, int charaindex, int ti ){ if( 0 <= ti && ti < CHAR_MAXITEMHAVE ) return TRUE; return FALSE;}static INLINE BOOL CHAR_CHECKSKILLINDEX( int skillindex ){ if( skillindex<0 || CHAR_SKILLMAXHAVE <= skillindex )return FALSE; return TRUE;}static INLINE BOOL CHAR_CHECKADDRESSBOOKINDEX( int aindex ){ if( aindex < 0 || ADDRESSBOOK_MAX <= aindex ) return FALSE; return TRUE;}static INLINE BOOL CHAR_CHECKTITLEINDEX( int titleindex ){ if( titleindex<0 || CHAR_TITLEMAXHAVE <= titleindex )return FALSE; return TRUE;}INLINE BOOL _CHAR_CHECKPETINDEX( char *file, int line, int petindex ){ if( petindex < 0 || CHAR_MAXPETHAVE <= petindex ) { if( petindex != -1 ) { print( "err %s:%d \n", file, line); } return FALSE; } return TRUE;}INLINE BOOL _CHAR_CHECKPOOLPETINDEX( char *file, int line, int petindex ){ if( petindex < 0 || CHAR_MAXPOOLPETHAVE <= petindex ) { if( petindex != -1 ) { print( "err %s:%d :%d \n", file, line, petindex); } return FALSE; } return TRUE;}INLINE BOOL _CHAR_CHECKPETSKILLINDEX( char *file, int line, int havepetskillindex ){ if( havepetskillindex < 0 || CHAR_MAXPETSKILLHAVE <= havepetskillindex ) { if( havepetskillindex != -1 ) { print( "err %s:%d \n", file, line); } return FALSE; } return TRUE;}INLINE int CHAR_getIntStrict( int index ,CHAR_DATAINT element,int* error){ if(!CHAR_CHECKINDEX(index))return *error=FALSE; if(!CHAR_CHECKINTDATAINDEX(element))return *error=FALSE; return CHAR_chara[index].data[element];}INLINE int CHAR_getInt( int index , CHAR_DATAINT element){ return CHAR_chara[index].data[element];}INLINE int CHAR_setIntStrict( int index ,CHAR_DATAINT element,int data, int* error){ int buf; if(!CHAR_CHECKINDEX(index))return *error=FALSE; if(!CHAR_CHECKINTDATAINDEX(element))return *error=FALSE; buf = CHAR_chara[index].data[element]; CHAR_chara[index].data[element] = data; return buf;}INLINE int _CHAR_setInt( char *file, int line, int index ,CHAR_DATAINT element, int data){ int buf; if( !CHAR_CHECKINDEX( index) ) { //print(" err CHAR_setInt index:%d. !:%s-%d\n", index, file, line); return -1; } if( CHAR_DATAPLACENUMBER > element || element >= CHAR_DATAINTNUM ) { print(" err CHAR_setInt element:%d.%s :%s-%d\n", element, CHAR_getChar( index, CHAR_CDKEY),file, line); return -1; } buf = CHAR_chara[index].data[element]; CHAR_chara[index].data[element] = data; return buf;}#ifdef _FIX_SETWORKINTINLINE int _CHAR_getWorkInt( char *file, int line, int index ,CHAR_WORKDATAINT element)#elseINLINE int CHAR_getWorkInt( int index ,CHAR_WORKDATAINT element)#endif{ if( CHAR_WORKBATTLEMODE > element || element >= CHAR_WORKDATAINTNUM ) { print("err Get WorkInt element=%d :: file:%s %d!\n", element, file, line); return -1; } return CHAR_chara[index].workint[element];}#ifdef _FIX_SETWORKINTINLINE int _CHAR_setWorkInt( char *file, int line, int index ,CHAR_WORKDATAINT element, int data)#elseINLINE int CHAR_setWorkInt( int index ,CHAR_WORKDATAINT element, int data)#endif{ int buf; if( !CHAR_CHECKINDEX( index) ) { //print( "err Set WorkInt index:%d:%s[%d].\n", index, file, line); return -1; } if( CHAR_WORKBATTLEMODE > element || element >= CHAR_WORKDATAINTNUM ) {#ifdef _FIX_SETWORKINT print("err Set WorkInt element=%d.%s:%s[%d]!\n", element, CHAR_getChar( index, CHAR_CDKEY), file, line);#else print("err Set WorkInt element=%d.%s!\n", element, CHAR_getChar( index, CHAR_CDKEY) );#endif return -1; } buf = CHAR_chara[index].workint[element]; CHAR_chara[index].workint[element] = data; return buf;}INLINE char* _CHAR_getChar( char *file, int line, int index ,CHAR_DATACHAR element ){ if(!CHAR_CHECKINDEX(index)) { print( "err _CHAR_getChar %s:%d index[%d] !!\n", file, line, index); return NULL; } if(!CHAR_CHECKCHARDATAINDEX(element)) { print( "err _CHAR_getChar %s:%d element[%d] !!\n", file, line, element); return NULL; } return CHAR_chara[index].string[element].string;}INLINE BOOL _CHAR_setChar( char *file, int line, int index ,CHAR_DATACHAR element, char* new ){ if(!CHAR_CHECKINDEX(index)) { print( "err _CHAR_setChar %s:%d !\n", file, line); return FALSE; } if(!CHAR_CHECKCHARDATAINDEX(element)) { print( "err _CHAR_setChar %s:%d !\n", file, line); return FALSE; } strcpysafe( CHAR_chara[index].string[element].string, sizeof(CHAR_chara[index].string[element].string), new ); return TRUE;}static INLINE char* CHAR_getCharfunctable( int index ,CHAR_FUNCTABLE element ){ if(!CHAR_CHECKINDEX(index))return NULL; if(!CHAR_CHECKCHARFUNCTABLEINDEX(element))return NULL; return CHAR_chara[index].charfunctable[element].string;}INLINE char* _CHAR_getWorkChar( char *file, int line, int index ,CHAR_WORKDATACHAR element ){ if(!CHAR_CHECKINDEX(index)) { print( "err %s:%d \n", file, line); return NULL; } if(!CHAR_CHECKCHARWORKDATAINDEX(element)) { print( "err %s:%d \n", file, line); return NULL; } return CHAR_chara[index].workchar[element].string;}INLINE BOOL _CHAR_setWorkChar( char *file, int line, int index ,CHAR_WORKDATACHAR element, char* new ){ if(!CHAR_CHECKINDEX(index)) { print( "err %s:%d \n", file, line); return FALSE; } if(!CHAR_CHECKCHARWORKDATAINDEX(element)) { print( "err %s:%d \n", file, line); return FALSE; } strcpysafe( CHAR_chara[index].workchar[element].string, sizeof(CHAR_chara[index].workchar[element].string), new ); return TRUE;}static char CHAR_flgbitmaskpattern[]={ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,};INLINE BOOL _CHAR_getFlg( char *file, int line, int index ,CHAR_DATAFLG element ){ int elementnum; int bitnum; if(!CHAR_CHECKINDEX(index)) { //print( "err %s:%d from %s:%d \n", __FILE__, __LINE__,file, line); return FALSE; } if(!CHAR_CHECKFLGDATAINDEX(element)) { //print( "err %s:%d from %s:%d \n", __FILE__, __LINE__,file, line); return FALSE; } elementnum = element / (sizeof( char )*8); bitnum = element % (sizeof( char )*8); if( CHAR_chara[index].flg[elementnum] & CHAR_flgbitmaskpattern[bitnum]) return TRUE; else return FALSE;}INLINE char _CHAR_setFlg( char *file, int line, int index , CHAR_DATACHAR element, int newdata ){ int buf; int elementnum; int bitnum; char bitpattern; if(!CHAR_CHECKINDEX(index)) { print( "err %s:%d \n", file, line); return FALSE; } if(!CHAR_CHECKFLGDATAINDEX(element)) { print( "err %s:%d \n", file, line); return FALSE; } elementnum = element / (sizeof( char )*8); bitnum = element % (sizeof( char )*8); /* 檣及襖毛轉(zhuǎn) */ buf = CHAR_chara[index].flg[elementnum] & CHAR_flgbitmaskpattern[bitnum]; if( newdata != 0 ){ bitpattern = CHAR_flgbitmaskpattern[bitnum]; CHAR_chara[index].flg[elementnum] |= bitpattern; }else{ bitpattern = ~CHAR_flgbitmaskpattern[bitnum]; CHAR_chara[index].flg[elementnum] &= bitpattern; } if( buf )return 1; else return 0;}INLINE int _CHAR_getItemIndex( char *file, int line, int charaindex ,int ti){ if( !CHAR_CHECKINDEX( charaindex)) { print( "err %s:%d from %s:%d\n", __FILE__, __LINE__,file, line); return -1; } if( !CHAR_CHECKITEMINDEX( charaindex, ti) ){ print( "err %s:%d from %s:%d \n", __FILE__, __LINE__,file, line); return -1; } return CHAR_chara[charaindex].indexOfExistItems[ti];}INLINE int _CHAR_setItemIndex( char *file, int line, int index ,int iindex,int id ){ int buf; if( !CHAR_CHECKINDEX(index)) { print( "err %s:%d \n", file, line); return -1; } if( CHAR_MAXITEMHAVE <= iindex || iindex < 0 ) { print( "err %s:%d \n", file, line); return -1; }// CoolFish: 2001/10/12#ifdef _UNIQUE_P_I if ( (id != -1) && (ITEM_getChar(id, ITEM_UNIQUECODE) != NULL) ) // shan add hjj
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -