📄 npc_exchangeman.c
字号:
}/*-----------------------------------------弁仿奶失件玄井日忒匀化五凶凛卞裟太请今木月[-------------------------------------------*/void NPC_ExChangeManWindowTalked( int meindex, int talkerindex, int seqno, int select, char *data){ /*-- 及引歹曰卞中卅中午五反蔽 --*/ if( NPC_Util_CharDistance( talkerindex, meindex ) > 2) { return; } switch( seqno) { /*--白仿弘毛壅允凛及它奶件玉它--*/ case CHAR_WINDOWTYPE_WINDOWEVENT_CLEANMSG: if( select == WINDOW_BUTTONTYPE_YES) { NPC_MsgDisp( meindex, talkerindex, 12); }else if(select == WINDOW_BUTTONTYPE_NO) { } break;#ifdef _NEWEVENT case CHAR_WINDOWTYPE_WINDOWEVENT_STARTMSG: if(select == WINDOW_BUTTONTYPE_NEXT) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD) + 1); NPC_MsgDisp( meindex, talkerindex, 99); }else if(select == WINDOW_BUTTONTYPE_PREV) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD) - 1); NPC_MsgDisp( meindex, talkerindex, 99); } break;#else case CHAR_WINDOWTYPE_WINDOWEVENT_STARTMSG: break;#endif /*--伉弁巨旦玄及丐曰互午丹丢永本□斥--*/ case CHAR_WINDOWTYPE_WINDOWEVENT_REQTHANK: if(select == WINDOW_BUTTONTYPE_NEXT) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)+1); NPC_MsgDisp( meindex, talkerindex, 22); }else if(select == WINDOW_BUTTONTYPE_PREV) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)-1); NPC_MsgDisp( meindex, talkerindex, 22); } break; /*--失弁本皿玄及丐曰互午丹丢永本□斥--*/ case CHAR_WINDOWTYPE_WINDOWEVENT_ACCTHANK: if(select == WINDOW_BUTTONTYPE_NEXT) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)+1); NPC_MsgDisp( meindex, talkerindex, 82); }else if(select == WINDOW_BUTTONTYPE_PREV) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)-1); NPC_MsgDisp( meindex, talkerindex, 82); } break; /*--蜇箕及奶矛件玄毛鞅户月井--*/ case CHAR_WINDOWTYPE_WINDOWEVENT_NOWEVENT: if(select == WINDOW_BUTTONTYPE_YES) { NPC_MsgDisp( meindex, talkerindex, 7); }else if(select == WINDOW_BUTTONTYPE_NO){ NPC_MsgDisp( meindex, talkerindex, 1); } break; /*--伉弁巨旦玄及丢奶件它奶件玉它--*/ case CHAR_WINDOWTYPE_WINDOWEVENT_REQMAINMSG: if(select == WINDOW_BUTTONTYPE_YES) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,0); NPC_MsgDisp( meindex, talkerindex, 2); }else if(select == WINDOW_BUTTONTYPE_NO) { }else if(select == WINDOW_BUTTONTYPE_NEXT) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)+1); NPC_MsgDisp( meindex, talkerindex, 55); }else if(select == WINDOW_BUTTONTYPE_PREV) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)-1); NPC_MsgDisp( meindex, talkerindex, 55); } break; /*--熬仃潸曰及丢奶件及它奶件玉它--*/ case CHAR_WINDOWTYPE_WINDOWEVENT_ACCMAINMSG: if(select == WINDOW_BUTTONTYPE_YES) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,0);#ifdef _NEWEVENT NPC_MsgDisp( meindex, talkerindex, 81);#else NPC_MsgDisp( meindex, talkerindex, 8);#endif }else if(select == WINDOW_BUTTONTYPE_NO) { }else if(select == WINDOW_BUTTONTYPE_NEXT) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)+1); NPC_MsgDisp( meindex, talkerindex, 66); }else if(select == WINDOW_BUTTONTYPE_PREV) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)-1); NPC_MsgDisp( meindex, talkerindex, 66); } break;#ifdef _NEWEVENT case CHAR_WINDOWTYPE_WINDOWEVENT_ACCTHANKNEW: if(select == WINDOW_BUTTONTYPE_OK){ CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,0); NPC_MsgDisp( meindex, talkerindex, 8); }else if(select == WINDOW_BUTTONTYPE_NEXT) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)+1); NPC_MsgDisp( meindex, talkerindex, 81); }else if(select == WINDOW_BUTTONTYPE_PREV) { CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)-1); NPC_MsgDisp( meindex, talkerindex, 81); } break;#endif /*--矢永玄及 毛芨尹月它奶件玉它--*/ case CHAR_WINDOWTYPE_WINDOWPETSKILLSHOP: if(CHAR_getWorkInt( talkerindex ,CHAR_WORKSHOPRELEVANTTRD) ==0) { NPC_EventPetSkill( meindex, talkerindex, data); NPC_MsgDisp( meindex, talkerindex, 25); }else{ NPC_EventPetSkill( meindex, talkerindex, data); NPC_MsgDisp( meindex, talkerindex, 88); } break; }}/*------------------------- * 椭瘀毛心凶仄化中月井 --------------------------*/int NPC_ExChangeManEventCheck( int meindex, int talker, char *buff1){ char buff2[512]; char buff3[128]; char buf[512]; int i = 1,j = 1; int loop = 0; NPC_Util_GetStrFromStrWithDelim( buff1, "EVENT", buf, sizeof( buf)); /*-- EVENt及椭瘀毛赐 卞苇化中仁 --*/ while( getStringFromIndexWithDelim(buf, ",", i, buff2,sizeof( buff2)) !=FALSE ) { i++; /*-- "&"互丐月及匹 醒椭瘀 --*/ if(strstr( buff2, "&")!=NULL){ j = 1; loop = 0; while(getStringFromIndexWithDelim(buff2, "&", j, buff3, sizeof( buff3)) != FALSE ) { j++; if(NPC_EventBigSmallCheck( meindex, talker, buff3) == FALSE) { loop = 1; break; } } if(loop == 0){ i--; return i; } /*--椭瘀互夫午勾--*/ }else{ if(NPC_EventBigSmallCheck( meindex, talker, buff2) == TRUE) { i--; return i; } } } return -1;}/*--------------------------------- * 凝筏寞民尼永弁 --------------------------------*/BOOL NPC_EventBigSmallCheck(int meindex,int talker, char* buf){ char buff2[128]; int kosuu; /*--矢永玄及民尼永弁互反中匀化中月桦宁反域绎PET椭瘀毛民尼永弁允月 --*/ if(strstr( buf, "PET") != NULL) { if(strstr( buf, "EV") != NULL) { if(NPC_PetLvCheck( meindex, talker, buf, 1) != FALSE) return TRUE; }else{ if(NPC_PetLvCheck( meindex, talker, buf, 0) != FALSE) return TRUE; } return FALSE; } /*--动票反} 骚及筏寞民尼永弁 --*/ if(strstr( buf, "<") != NULL) { getStringFromIndexWithDelim( buf, "<", 2, buff2, sizeof( buff2)); kosuu = atoi( buff2); getStringFromIndexWithDelim( buf, "<", 1, buff2, sizeof( buff2)); if(NPC_EventFreeIfCheck( meindex, talker, buff2, kosuu, 1) == TRUE) { return TRUE; } }else if(strstr( buf, ">") != NULL) { getStringFromIndexWithDelim( buf, ">", 2, buff2, sizeof(buff2)); kosuu = atoi(buff2); getStringFromIndexWithDelim( buf, ">" ,1, buff2, sizeof(buff2)); if(NPC_EventFreeIfCheck( meindex, talker, buff2, kosuu, 2)==TRUE) { return TRUE; } }else if(strstr( buf, "!=" ) != NULL) { getStringFromIndexWithDelim( buf, "!=", 2, buff2, sizeof( buff2)); kosuu = atoi( buff2); getStringFromIndexWithDelim( buf, "!=", 1, buff2, sizeof( buff2)); if(NPC_EventFreeIfCheck( meindex, talker, buff2, kosuu, 3) == TRUE) { return TRUE; } }else if(strstr( buf, "=") != NULL) { getStringFromIndexWithDelim( buf, "=", 2, buff2, sizeof( buff2)); kosuu = atoi( buff2); getStringFromIndexWithDelim( buf, "=", 1, buff2, sizeof( buff2)); if(strstr( buf, "*") != NULL) { if(NPC_EventReduce( meindex, talker, buf) == TRUE){ return TRUE; } }else if(NPC_EventFreeIfCheck( meindex, talker, buff2, kosuu, 0) == TRUE) { return TRUE; } } return FALSE;}/*----------------------------------- * 嫩 毛 凶仄化中月井及民尼永弁 *-----------------------------------*/BOOL NPC_EventFreeIfCheck(int meindex,int talker,char* buf,int kosuu,int flg){ /*--伊矛伙民尼永弁--*/ if(strcmp( buf, "LV") == 0) { if(NPC_EventLevelCheck( meindex, talker, kosuu, flg) == TRUE) { return TRUE; } } /*--失奶 丞民尼永弁--*/ if(strcmp( buf, "ITEM") == 0) { if(NPC_EventItemCheck( meindex, talker, kosuu, flg) == TRUE) { return TRUE; } } /*--蔽 奶矛件玄民尼永弁--*/ if(strcmp( buf, "ENDEV") == 0) { if(NPC_ENDEventNoCheck( meindex, talker, kosuu, flg) == TRUE) { return TRUE; } } if(strcmp( buf, "NOWEV") == 0) { if(NPC_NOWEventNoCheck( meindex, talker, kosuu, flg) == TRUE) { return TRUE; } } if(strcmp( buf, "SP" ) == 0) { if(NPC_SavePointCheck( meindex, talker, kosuu, flg) == TRUE) { return TRUE; } } if(strcmp( buf, "TIME") == 0) { if(NPC_TiemCheck( meindex, talker, kosuu, flg) == TRUE) { return TRUE; } } if(strcmp( buf, "IMAGE") == 0) { if(NPC_ImageCheck( meindex, talker, kosuu, flg) == TRUE) { return TRUE; } }#ifdef _ADD_reITEM if(strstr( buf, "reITEM" ) != NULL) { int i,count=0,itemindex=-1; for( i = CHAR_STARTITEMARRAY ; i < CHAR_MAXITEMHAVE ; i++ ){ itemindex = CHAR_getItemIndex( talker , i ); if( !ITEM_CHECKINDEX( itemindex) ) ++count; } if(NPC_EventBigSmallLastCheck( kosuu, count, flg) == TRUE) return TRUE; }#endif return FALSE;}/*-------------------------------- * 矢永玄及伊矛伙毛民尼永弁允月 ---------------------------------*/BOOL NPC_PetLvCheck(int meindex,int talker,char *buf,int mode){ char argstr[NPC_UTIL_GETARGSTR_BUFSIZE]; char buff2[16]; char buf3[8]; int petno; int baseno; int petlevel = 0; int flg=0; int mypetlevel = 0; int i = 0; int petindex; char name[512]; int cnt = 0; int loop; /*--隙烂今木凶矢永玄及瓜件田□ ID)毛潸 --*/ getStringFromIndexWithDelim( buf, "-", 2, buff2, sizeof( buff2)); if(strstr(buff2,"*") != NULL) { getStringFromIndexWithDelim( buff2, "*", 1, buf3, sizeof( buf3)); petno = atoi( buf3); getStringFromIndexWithDelim( buff2, "*", 2, buf3, sizeof( buf3)); loop = atoi( buf3); }else{ petno = atoi( buff2); loop = 1; } /*--矢永玄 互钒中化中月井及民尼永弁--*/ for(i=0; i < CHAR_MAXPETHAVE ; i++) { if(loop == cnt) return TRUE; petindex = CHAR_getCharPet( talker, i); if( petindex == -1 ) continue; /*--矢永玄及ID毛潸 仄化中仁--*/ baseno = CHAR_getInt( petindex, CHAR_PETID); /* 矢永玄及ID午}蜇箕及乒□玉毛譬屯月 */ if( (baseno == petno) && (CHAR_getInt( petindex, CHAR_ENDEVENT) == mode)) { /*--伊矛伙毛民尼永弁允月--*/ mypetlevel = CHAR_getInt( petindex, CHAR_LV); getStringFromIndexWithDelim( buf, "-", 1, buff2, sizeof( buff2)); if(strstr( buf, "<") != NULL) { flg = 1; getStringFromIndexWithDelim( buff2, "<", 2, buf3, sizeof(buf3)); }else if(strstr( buf, ">") != NULL) { getStringFromIndexWithDelim( buff2, ">", 2, buf3, sizeof(buf3)); flg = 2; }else if(strstr( buf, "=") != NULL) { getStringFromIndexWithDelim( buff2, "=", 2, buf3, sizeof(buf3)); flg = 0; } petlevel = atoi( buf3); if(NPC_EventBigSmallLastCheck( petlevel, mypetlevel, flg) == TRUE) { /*--矢永玄及 蟆互涩烂今木化中凶日 蟆及民尼永弁 月--*/ if(CHAR_getWorkInt(talker,CHAR_WORKSHOPRELEVANTSEC)==1) { char *usename; /*--涩烂白央奶伙及 心 心--*/ if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr)) == NULL) { print("PetLevel:GetArgStrErr"); return FALSE; } usename = CHAR_getUseName( petindex); NPC_Util_GetStrFromStrWithDelim( argstr, "Pet_Name", name,sizeof( name)); if(strcmp( name, usename) == 0) { cnt++; continue; } }else { CHAR_setWorkInt( talker, CHAR_WORKSHOPRELEVANTSEC, 0); cnt++; continue; } } } } if(loop == cnt) return TRUE; if(i == CHAR_MAXPETHAVE) return FALSE; return FALSE;}/*-------------------------------- * 矢永玄及伊矛伙毛民尼永弁允月 ---------------------------------*/int NPC_PetLvCheckType2(int petindex,int meindex,int talker,char *buf,int mode){ char argstr[NPC_UTIL_GETARGSTR_BUFSIZE]; char buff2[16]; char buf3[8]; int petno; int baseno; int petlevel = 0; int flg = 0; int mypetlevel = 0; char name[512]; /*--隙烂今木凶矢永玄及瓜件田□ ID)毛潸 --*/ getStringFromIndexWithDelim( buf, "-", 2, buff2, sizeof( buff2)); if(strstr(buff2,"*") != NULL) { getStringFromIndexWithDelim( buff2, "*", 1, buf3, sizeof( buf3)); petno = atoi( buf3); }else{ petno = atoi( buff2); } /*--矢永玄及ID毛潸 仄化中仁--*/ baseno = CHAR_getInt( petindex, CHAR_PETID); /*--矢永玄及ID午}蜇箕及乒□玉毛譬屯月--*/ if( (baseno == petno) && (CHAR_getInt( petindex, CHAR_ENDEVENT) == mode)) { /*--伊矛伙毛民尼永弁允月--*/ mypetlevel=CHAR_getInt( petindex, CHAR_LV); getStringFromIndexWithDelim( buf, "-", 1,buff2,sizeof(buff2)); if(strstr( buf, "<") != NULL) { flg = 1; getStringFromIndexWithDelim( buff2, "<", 2, buf3, sizeof(buf3)); }else if(strstr( buf, ">") != NULL) { getStringFromIndexWithDelim( buff2, ">", 2, buf3, sizeof(buf3)); flg = 2; }else if(strstr( buf, "=") != NULL) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -