?? title.c
字號:
j ++ )
{
print( "name[%s] data[%d] flg[%s] ",
TITLE_param[TITLE_ConfigTable[i].paramindex[j]].paramname,
TITLE_ConfigTable[i].param[j],
TITLE_compare[TITLE_ConfigTable[i].compareflg[j]].compare
);
if( j %2 ==0 ) print( "\n");
}
print( "\nTitleindex [%d] ",TITLE_ConfigTable[i].title);
print( "equipcheckflg [%d]\n",TITLE_ConfigTable[i].equipcheckflg);
}
}
#endif
return TRUE;
}
/*------------------------------------------------------------
* 憊寞澀爛卞寧丹井譬屯化憊寞毛芨尹月[
* 婁醒
* charaindex int 平乓仿奶件犯永弁旦
* mode BOOL TRUE:item=及手及及心譬屯月 FALSE:蟈
* 忒曰襖
* TRUE: 憊寞卞 祭 曰[
* FALSE:窒手 井勻兇[
*------------------------------------------------------------*/
static BOOL TITLE_TitleCheck_Main( int charaindex, BOOL mode, int *addcnt, int *delcnt)
{
int i, j,k, ret;
/* 賡渝祭 */
{
int i;
for( i = 0; i < TITLE_titlecfgnum && TITLE_configbuf[i].title != -1; i ++ ) {
TITLE_configbuf[i].title = -1;
TITLE_configbuf[i].flg = 0;
}
}
*addcnt = 0;
*delcnt = 0;
for( i = 0; i < TITLE_titlecfgnum; i ++ ) {
int rc = TRUE;
int title = TITLE_ConfigTable[i].title;
if( mode == TRUE ) {
if( TITLE_ConfigTable[i].equipcheckflg != TRUE ) {
continue;
}
}
for( j = 0;
j < arraysizeof( TITLE_ConfigTable[i].param) &&
TITLE_ConfigTable[i].param[j][0] != -1 ;
j ++ )
{
int index = TITLE_ConfigTable[i].paramindex[j];
if( TITLE_param[index].checkfunc != NULL ) {
rc = TITLE_param[index].checkfunc(
charaindex,
TITLE_param[index].element,
TITLE_ConfigTable[i].param[j],
TITLE_ConfigTable[i].compareflg[j]
);
if( rc != TRUE ) break;
}
}
/* 醒橢瘀卞 元憊寞互喃曰癲化日木化中月凜及啃卞]
* 域繹田永白央卞霪戶化公及瑛絆井日add,deltile允月
*/
for( k = 0; k < TITLE_titlecfgnum; k ++ ) {
if( TITLE_configbuf[k].title == title ) {
if( rc ) {
TITLE_configbuf[k].flg = 1;
}
break;
}
else if( TITLE_configbuf[k].title == -1 ) {
TITLE_configbuf[k].title = title;
TITLE_configbuf[k].flg = rc ? 1: -1;
break;
}
}
}
ret = FALSE;
for( i = 0; i < TITLE_titlecfgnum && TITLE_configbuf[i].title != -1; i ++ ) {
if( TITLE_configbuf[i].flg == -1 ) {
*delcnt += TITLE_deltitle( charaindex, TITLE_configbuf[i].title);
}
else {
*addcnt += TITLE_addtitle( charaindex, TITLE_configbuf[i].title) ? 1:0;
}
}
if( *delcnt > 0 || *addcnt > 0) {
ret = TRUE;
}
return ret;
}
/*------------------------------------------------------------
* 憊寞澀爛卞寧丹井譬屯化憊寞毛芨尹月[
* 婁醒
* charaindex int 平乓仿奶件犯永弁旦
* mode BOOL TRUE:item=及手及及心譬屯月 FALSE:蟈
* 忒曰襖
* TRUE: 憊寞卞 祭 曰[
* FALSE:窒手 井勻兇[
*------------------------------------------------------------*/
BOOL TITLE_TitleCheck( int charaindex, BOOL mode)
{
#define TITLE_MSGUNIT1 "TSU"
#define TITLE_MSGUNIT2 "KO"
int addcnt,delcnt;
BOOL rc;
char msgbuf[64];
rc = TITLE_TitleCheck_Main( charaindex, mode, &addcnt,&delcnt);
if( rc ) {
if( delcnt > 0 ) {
snprintf( msgbuf, sizeof( msgbuf),
"失去%d%s 稱號!", delcnt,
delcnt < 10 ? TITLE_MSGUNIT1:TITLE_MSGUNIT2);
CHAR_talkToCli( charaindex, -1, msgbuf, CHAR_COLORYELLOW);
}
if( addcnt > 0 ) {
snprintf( msgbuf, sizeof( msgbuf),
"獲得%d%s 稱號!", addcnt,
addcnt < 10 ? TITLE_MSGUNIT1:TITLE_MSGUNIT2);
CHAR_talkToCli( charaindex, -1, msgbuf, CHAR_COLORYELLOW);
}
}
return rc;
}
/*------------------------------------------------------------
* 憊寞澀爛卞寧丹井譬屯化憊寞毛芨尹月[
* 婁醒
* charaindex int 平乓仿奶件犯永弁旦
* mode BOOL TRUE:item=及手及及心譬屯月 FALSE:蟈
* 忒曰襖
* TRUE: 憊寞卞 祭 曰[
* FALSE:窒手 井勻兇[
*------------------------------------------------------------*/
BOOL TITLE_TitleCheck_Nomsg( int charaindex, BOOL mode, int *addcnt, int *delcnt)
{
return( TITLE_TitleCheck_Main( charaindex, mode, addcnt,delcnt));
}
static int TITLE_IntCheck( int charaindex, int elem, int *data, int flg)
{
int rc = FALSE;
int i;
for( i = 0; i < TITLE_PARAMSIZE && *(data+i) != -1; i ++ ) {
switch( flg) {
case 0: /* "<=" */
if( CHAR_getInt( charaindex, elem) <= *(data+i) ) rc = TRUE;
break;
case 1: /* ">=" */
if( CHAR_getInt( charaindex, elem) >= *(data+i) ) rc = TRUE;
break;
case 2: /* "<>" */
if( CHAR_getInt( charaindex, elem) != *(data+i) ) rc = TRUE;
break;
case 3: /* ">" */
if( CHAR_getInt( charaindex, elem) > *(data+i) ) rc = TRUE;
break;
case 4: /* "<" */
if( CHAR_getInt( charaindex, elem) < *(data+i) ) rc = TRUE;
break;
case 5: /* "=" */
if( CHAR_getInt( charaindex, elem) == *(data+i) ) rc = TRUE;
break;
default:
rc= FALSE;
break;
}
if( rc) break;
}
return rc;
}
static int TITLE_WorkIntCheck( int charaindex,int elem, int *data, int flg)
{
int rc = FALSE;
int i;
for( i = 0; i < TITLE_PARAMSIZE && *(data+i) != -1; i ++ ) {
switch( flg) {
case 0: /* "<=" */
if( CHAR_getWorkInt( charaindex, elem) <= *(data+i) ) rc = TRUE;
break;
case 1: /* ">=" */
if( CHAR_getWorkInt( charaindex, elem) >= *(data+i) ) rc = TRUE;
break;
case 2: /* "<>" */
if( CHAR_getWorkInt( charaindex, elem) != *(data+i) ) rc = TRUE;
break;
case 3: /* ">" */
if( CHAR_getWorkInt( charaindex, elem) > *(data +i)) rc = TRUE;
break;
case 4: /* "<" */
if( CHAR_getWorkInt( charaindex, elem) < *(data+i) ) rc = TRUE;
break;
case 5: /* "=" */
if( CHAR_getWorkInt( charaindex, elem) == *(data+i) ) rc = TRUE;
break;
default:
rc= FALSE;
break;
}
if( rc ) break;
}
return rc;
}
/* --------------------------------------
* 隙爛今木兇data午 勻化中月失奶 丞毛 勝允月[
* -------------------------------------*/
static int TITLE_ItemCheckMain( int charaindex, int itemhaveindex, int *data, int flg)
{
int i,j;
int rc = FALSE;
if( flg == 2 ) rc = TRUE;
for( j = 0; j < TITLE_PARAMSIZE && *(data+j) != -1; j ++ ) {
for( i =0; i < itemhaveindex; i ++ ) {
int itemindex = CHAR_getItemIndex(charaindex,i);
if( ITEM_CHECKINDEX(itemindex) ) {
switch( flg) {
case 0: /* "<=" */
if( ITEM_getInt( itemindex, ITEM_ID) <= *(data+j) ) rc = TRUE;
break;
case 1: /* ">=" */
if( ITEM_getInt( itemindex, ITEM_ID) >= *(data+j) ) rc = TRUE;
break;
case 3: /* ">" */
if( ITEM_getInt( itemindex, ITEM_ID) > *(data +j)) rc = TRUE;
break;
case 4: /* "<" */
if( ITEM_getInt( itemindex, ITEM_ID) < *(data +j)) rc = TRUE;
break;
case 5: /* "=" */
if( ITEM_getInt( itemindex, ITEM_ID) == *(data +j)) rc = TRUE;
break;
/* 仇木分仃 健中[
* 失奶 丞蟈 毛葦化公木毛 勻化中卅井勻兇日蕞午允月[
* 仇仇匹反 勻化中月儀毛絮午仄化民尼永弁
*/
case 2: /* "<>" */
if( ITEM_getInt( itemindex, ITEM_ID) == *(data +j)) rc = FALSE;
break;
default:
rc= FALSE;
break;
}
if( rc && flg != 2) break;
}
}
if( rc) break;
}
return rc;
}
static int TITLE_ItemCheck( int charaindex,int elem, int *data, int flg)
{
return( TITLE_ItemCheckMain( charaindex, CHAR_MAXITEMHAVE,data,flg));
}
static int TITLE_ItemEquipCheck( int charaindex,int elem, int *data, int flg)
{
return( TITLE_ItemCheckMain( charaindex, CHAR_EQUIPPLACENUM,data,flg));
}
static int TITLE_SkillCheck( int charaindex,int elem, int *data, int flg)
{
int i;
int rc = FALSE;
CHAR_HaveSkill* hskill;
for( i = 0 ; i < CHAR_SKILLMAXHAVE ; i ++ ){
hskill = CHAR_getCharHaveSkill( charaindex, i );
if( hskill != NULL && hskill->use == TRUE ) {
if( *(data + 1) != -2 ) {
if( SKILL_getInt( &hskill->skill, SKILL_IDENTITY) == *data) {
rc = TRUE;
break;
}
}
else {
if( SKILL_getInt( &hskill->skill, SKILL_IDENTITY) == *data) {
rc = FALSE;
break;
}
else {
rc = TRUE;
}
}
}
}
if( rc ) {
if( *(data+1) != -1 && *(data+1) != -2) {
rc = FALSE;
switch( flg) {
case 0: /* "<=" */
if( SKILL_getInt( &hskill->skill, SKILL_LEVEL) <= *(data+1) ) rc = TRUE;
break;
case 1: /* ">=" */
if( SKILL_getInt( &hskill->skill, SKILL_LEVEL) >= *(data+1) ) rc = TRUE;
break;
case 2: /* "<>" */
if( SKILL_getInt( &hskill->skill, SKILL_LEVEL) != *(data+1) ) rc = TRUE;
break;
case 3: /* ">" */
if( SKILL_getInt( &hskill->skill, SKILL_LEVEL) > *(data +1)) rc = TRUE;
break;
case 4: /* "<" */
if( SKILL_getInt( &hskill->skill, SKILL_LEVEL) < *(data+1) ) rc = TRUE;
break;
case 5: /* "=" */
if( SKILL_getInt( &hskill->skill, SKILL_LEVEL) == *(data+1) ) rc = TRUE;
break;
default:
rc= FALSE;
break;
}
}
}
return rc;
}
/* --------------------------------------
* 襠平乓仿井輝平乓仿井民尼永弁允月[
* -------------------------------------*/
static int TITLE_SexCheck( int charaindex,int elem, int *data, int flg)
{
int i,j;
struct {
int sex[25];
}s_sex[] =
{ { { 30008,30009,30010,30011,30012,30013,30014,30015,
30020,30021,30022,30023,30024,30025,30026,30027,
30028,30029,30030,30031,30032,30033,30034,30035,-1}
},
{ {30000,30001,30002,30003,30004,30005,30006,30007,
30016,30017,30018,30019,30036,30037,30038,30039,
-1, -1, -1, -1, -1, -1, -1, -1, -1}
}
};
for( i = 0; i < 2; i ++ ) {
for( j = 0; s_sex[i].sex[j] != -1 ; j ++ ) {
if( CHAR_getInt( charaindex, CHAR_BASEBASEIMAGENUMBER )
== s_sex[i].sex[j] )
{
if( i == *data ) return TRUE;
else return FALSE;
}
}
}
return FALSE;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -