📄 npc_exchangeman.c
字号:
}
}
#endif
}else if(NPC_Util_GetStrFromStrWithDelim(buf, "NomalWindowMsg",
token, sizeof( token) )
!=NULL) {
/*--它奶件玉它匹丢永本□斥毛忒允--*/
int fd = getfdFromCharaIndex( talker);
#ifdef _NEWEVENT
if(NPC_Util_GetStrFromStrWithDelim(buf, "NomalWindowMsg1",
buf2, sizeof(buf2)) != NULL){
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_NEXT,
CHAR_WINDOWTYPE_WINDOWEVENT_STARTMSG,
CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
token);
}else {
#endif
char token2[14*50];
if(NPC_AcceptDel( meindex, talker,0) == FALSE) return FALSE;
if( EvNo != -1) NPC_NowEventSetFlg( talker, EvNo);
if(NPC_Util_GetStrFromStrWithDelim( buf,"NpcWarp",
token2,sizeof( token2) ) != NULL){
NPC_EventWarpNpc(meindex,token2);
}
if(NPC_Util_GetStrFromStrWithDelim( buf, "EndSetFlg",
buf2, sizeof( buf2) ) !=NULL){
char buf3[16];
int k = 1;
if(EvNo != -1) NPC_NowEventSetFlgCls( talker, EvNo);
while(getStringFromIndexWithDelim(buf2 , "," ,k,
buf3, sizeof(buf3)) !=FALSE ){
k++;
NPC_EventSetFlg( talker, atoi( buf3));
}
}
//奶矛件玄白仿弘毛壅允
if( NPC_Util_GetStrFromStrWithDelim( buf, "CleanFlg",
buf2, sizeof( buf2)) != NULL) {
char buf3[16];
int k = 1;
k= 1 ;
while(getStringFromIndexWithDelim(buf2 , "," , k,
buf3, sizeof(buf3)) != FALSE ){
NPC_NowEndEventSetFlgCls( talker, atoi(buf3));
k++;
}
}
#ifdef _ANGEL_SUMMON
// 完成召唤任务
if( NPC_Util_GetStrFromStrWithDelim( buf, "MISSIONOVER",
buf2, sizeof( buf2)) != NULL)
{
int mindex;
int mission;
char nameinfo[64];
mission = atoi( buf2);
mindex = checkIfAngel( talker);
if( mission == missiontable[mindex].mission )
{
char msg[1024];
print(" ====完成召唤任务==== ");
CHAR_setInt( talker, CHAR_HEROCNT,
CHAR_getInt( talker, CHAR_HEROCNT)+1 );
getMissionNameInfo( talker, nameinfo);
saacproto_ACMissionTable_send( acfd, MISSION_HERO_COMPLETE, 4, nameinfo, "");
sprintf( msg, " 完成任务 i:%d m:%d %s ", mindex, mission, nameinfo);
print( msg);
LogAngel( msg );
}
}
// 清除召唤任务
if( NPC_Util_GetStrFromStrWithDelim( buf, "MISSIONCLEAN",
buf2, sizeof( buf2)) != NULL)
{
int mindex;
int mission;
char nameinfo[64];
mission = atoi( buf2);
mindex = checkIfAngel( talker);
if( mission == missiontable[mindex].mission )
{
print(" ====清除召唤任务==== ");
getMissionNameInfo( talker, nameinfo);
saacproto_ACMissionTable_send( acfd, mindex, 3, nameinfo, "");
}
}
#endif
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_YES,
CHAR_WINDOWTYPE_WINDOWEVENT_STARTMSG,
CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
token);
#ifdef _NEWEVENT
}
#endif
}
return TRUE;
}else if(strstr( buf2, "CLEAN") != NULL) {
NPC_CleanMain( meindex, talker, buf);
return TRUE;
}
}
}
}
strcpy( buf, "\0");
if( NPC_Util_GetStrFromStrWithDelim( argstr, "NomalMainMsg", buf, sizeof( buf)) == NULL ) {
print("\n err:NOT FIND NomalMainMsg");
return FALSE;
}
i = 1;
while(getStringFromIndexWithDelim( buf, ",", i, buf2, sizeof( buf2))!= FALSE){
i++;
}
i--;
i = rand()%i + 1;
getStringFromIndexWithDelim( buf,",", i, buf2, sizeof( buf2));
CHAR_talkToCli( talker, meindex, buf2, CHAR_COLORWHITE);
return TRUE;
}
/*-----------------------------------
*正奶皿 卞质 毛坌仃月
------------------------------------*/
static void NPC_ExChangeMan_selectWindow( int meindex, int talker,int num)
{
switch( num) {
/*--伉弁巨旦玄滇--*/
case 0:
/*-奶矛件玄 卅及匹}奶矛件玄毛鞅户月井升丹井毛 丹--*/
NPC_MsgDisp( meindex, talker, 0);
break;
case 1:
/*--蕙筋卞奶矛件玄垫丹--*/
NPC_MsgDisp( meindex, talker, 5);
break;
/*--失弁本皿玄滇--*/
case 2:
/*--熬仃潸曰--*/
NPC_MsgDisp( meindex, talker, 6);
break;
case 3:
/*--熬仃潸曰--*/
NPC_MsgDisp( meindex, talker, 11);
break;
}
}
/*-------------------------------------
*奶矛件玄毛匙 允月质 及丢奶件
--------------------------------------*/
void NPC_RequestMain(int meindex,int talker,char *buf)
{
int shiftbit;
char buf2[128];
/*--奶矛件玄瓜件田□毛必永玄--*/
NPC_Util_GetStrFromStrWithDelim( buf,"EventNo", buf2,sizeof( buf2) );
shiftbit = atoi( buf2);
if(NPC_NowEventCheckFlg( talker, shiftbit) == TRUE) {
NPC_ExChangeMan_selectWindow( meindex, talker, 0);
}else{
NPC_ExChangeMan_selectWindow( meindex, talker, 1);
}
}
/*---------------------------------------
* 奶矛件玄蔽 及丢奶件
----------------------------------------*/
void NPC_AcceptMain(int meindex,int talker ,char *buf)
{
NPC_ExChangeMan_selectWindow( meindex, talker, 2);
}
/*----------------------------------------
* 白仿弘毛弁伉失允月啃及丢奶件
----------------------------------------*/
void NPC_CleanMain(int meindex,int talker,char *buf)
{
NPC_ExChangeMan_selectWindow( meindex, talker, 3);
}
/*-----------------------------------------
弁仿奶失件玄井日忒匀化五凶凛卞裟太请今木月[
-------------------------------------------*/
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));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -