📄 npc_fmwarpman.c
字号:
{ lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE, WINDOW_BUTTONTYPE_OK, -1, -1, makeEscapeString("\n这场战斗你好像还没同意呢!\n下次请记得提早来跟我确认~", token, sizeof(token))); return; }#ifdef _FMVER21 if (CHAR_getInt(toindex, CHAR_FMLEADERFLAG) == FMMEMBER_APPLY)#else if (CHAR_getInt(toindex, CHAR_FMLEADERFLAG) == 0)#endif { char tmpbuf[256]; sprintf(tmpbuf, "\n你还没有正式加入%s家族,所以不能进场!", fmpks[fmpks_pos].guest_name); lssproto_WN_send(fd, WINDOW_MESSAGETYPE_MESSAGE, WINDOW_BUTTONTYPE_OK, -1, -1, makeEscapeString(tmpbuf, token, sizeof(token))); return; } //andy_add 2003/06/17 CHECK_FMPknumInFloor( meindex); if( CHAR_getWorkInt( meindex, NPC_WORK_FMNUMII) > (fmpks[fmpks_pos].max_player - 1)){ lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE, WINDOW_BUTTONTYPE_OK, -1, -1, makeEscapeString("已经不能再进去罗~!\n家族进场人数已经到达设定上限了!", token, sizeof(token))); return; } } if(NPC_Util_GetStrFromStrWithDelim( npcarg, "FreeMsg", buf2, sizeof( buf2)) == NULL) return; CONNECT_set_pass(fd, TRUE); CONNECT_set_first_warp(fd, TRUE); sprintf(token, buf2, fmpks[fmpks_pos].guest_name, fmpks[fmpks_pos].host_name, tm1.tm_hour, tm1.tm_min); CHAR_setWorkInt( toindex , CHAR_WORKFMMANINDEX, meindex ); CHAR_setWorkInt( toindex , CHAR_WORKSHOPRELEVANTTRD , -1 ); } else if ((((CHAR_getWorkInt(toindex, CHAR_WORKFMINDEXI) == fmpks[fmpks_pos + 1].host_index) && (strcmp(CHAR_getChar(toindex, CHAR_FMNAME), fmpks[fmpks_pos + 1].host_name) == 0)) || ((CHAR_getWorkInt(toindex, CHAR_WORKFMINDEXI) == fmpks[fmpks_pos + 1].guest_index) && (strcmp(CHAR_getChar(toindex, CHAR_FMNAME), fmpks[fmpks_pos + 1].guest_name) == 0))) && (((fmpks[fmpks_pos + 1].flag == FMPKS_FLAG_SCHEDULED) || (fmpks[fmpks_pos + 1].flag == FMPKS_FLAG_MANOR_PREPARE))) ) { if(NPC_Util_GetStrFromStrWithDelim( npcarg, "NextMsg", buf2, sizeof( buf2)) == NULL) return; sprintf(token, buf2, fl, tm1.tm_hour, tm1.tm_min); CONNECT_set_pass(fd, FALSE); CONNECT_set_first_warp(fd, FALSE); } else if ((strcmp(fmpks[fmpks_pos].host_name, "") == 0) || (strcmp(fmpks[fmpks_pos].guest_name, "") == 0)) { if(NPC_Util_GetStrFromStrWithDelim( npcarg, "TalkMsg", buf2, sizeof( buf2)) == NULL) return; sprintf(token, buf2); CONNECT_set_pass(fd, FALSE); CONNECT_set_first_warp(fd, FALSE); } else { if(NPC_Util_GetStrFromStrWithDelim( npcarg, "AskMsg", buf2, sizeof( buf2)) == NULL) return; CONNECT_set_pass(fd, FALSE); CONNECT_set_first_warp(fd, FALSE); sprintf(token, buf2, fmpks[fmpks_pos].guest_name, fmpks[fmpks_pos].host_name); } } else if (CHAR_getWorkInt(meindex, NPC_WORK_MODEFLAG) == NPC_STATEBUSY) // 两家族战斗中 { if (((CHAR_getWorkInt(toindex, CHAR_WORKFMINDEXI) == fmpks[fmpks_pos].host_index) && (strcmp(CHAR_getChar(toindex, CHAR_FMNAME), fmpks[fmpks_pos].host_name) == 0)) || ((CHAR_getWorkInt(toindex, CHAR_WORKFMINDEXI) == fmpks[fmpks_pos].guest_index) && (strcmp(CHAR_getChar(toindex, CHAR_FMNAME), fmpks[fmpks_pos].guest_name) == 0))) { if(NPC_Util_GetStrFromStrWithDelim( npcarg, "BusyMsg", buf2, sizeof( buf2)) == NULL){ print("\nGet BusyMsg Message Error"); return; } NPC_GetPKFMNum(floor, fmpks[fmpks_pos].host_index, fmpks[fmpks_pos].guest_index, &num1, &num2); sprintf(token, buf2, fmpks[fmpks_pos].host_name, num1, fmpks[fmpks_pos].guest_name, num2, tm1.tm_hour, tm1.tm_min); } else if ((((CHAR_getWorkInt(toindex, CHAR_WORKFMINDEXI) == fmpks[fmpks_pos + 1].host_index) && (strcmp(CHAR_getChar(toindex, CHAR_FMNAME), fmpks[fmpks_pos + 1].host_name) == 0)) || ((CHAR_getWorkInt(toindex, CHAR_WORKFMINDEXI) == fmpks[fmpks_pos + 1].guest_index) && (strcmp(CHAR_getChar(toindex, CHAR_FMNAME), fmpks[fmpks_pos + 1].guest_name) == 0))) && (((fmpks[fmpks_pos + 1].flag == FMPKS_FLAG_SCHEDULED) || (fmpks[fmpks_pos + 1].flag == FMPKS_FLAG_MANOR_PREPARE))) ) { if(NPC_Util_GetStrFromStrWithDelim( npcarg, "NextMsg", buf2, sizeof( buf2)) == NULL) return; sprintf(token, buf2, fl, tm1.tm_hour, tm1.tm_min); } else { if(NPC_Util_GetStrFromStrWithDelim( npcarg, "AskMsg", buf2, sizeof( buf2)) == NULL) return; sprintf(token, buf2, fmpks[fmpks_pos].guest_name, fmpks[fmpks_pos].host_name); } CONNECT_set_pass(fd, FALSE); CONNECT_set_first_warp(fd, FALSE); } else if (CHAR_getWorkInt(meindex, NPC_WORK_MODEFLAG) == NPC_STATEWAIT) // 两家族战斗结束 { if (((CHAR_getWorkInt(toindex, CHAR_WORKFMINDEXI) == fmpks[fmpks_pos].host_index) && (strcmp(CHAR_getChar(toindex, CHAR_FMNAME), fmpks[fmpks_pos].host_name) == 0)) || ((CHAR_getWorkInt(toindex, CHAR_WORKFMINDEXI) == fmpks[fmpks_pos].guest_index) && (strcmp(CHAR_getChar(toindex, CHAR_FMNAME), fmpks[fmpks_pos].guest_name) == 0))) { char tmpbuf[256]; if(NPC_Util_GetStrFromStrWithDelim( npcarg, "EndMsg", buf2, sizeof( buf2)) == NULL){ print("\nGet EndMsg Message Error"); return; } NPC_GetPKFMNum(floor, fmpks[fmpks_pos].host_index, fmpks[fmpks_pos].guest_index, &num1, &num2); if (strcmp(CHAR_getWorkChar(meindex, NPC_WORK_WINFMNAME), "") == 0) sprintf(tmpbuf, "双方平手!"); else sprintf(tmpbuf, "%s获胜了!!", CHAR_getWorkChar(meindex, NPC_WORK_WINFMNAME)); sprintf(token, buf2, fmpks[fmpks_pos].guest_name, fmpks[fmpks_pos].host_name, tmpbuf); } else if ((((CHAR_getWorkInt(toindex, CHAR_WORKFMINDEXI) == fmpks[fmpks_pos + 1].host_index) && (strcmp(CHAR_getChar(toindex, CHAR_FMNAME), fmpks[fmpks_pos + 1].host_name) == 0)) || ((CHAR_getWorkInt(toindex, CHAR_WORKFMINDEXI) == fmpks[fmpks_pos + 1].guest_index) && (strcmp(CHAR_getChar(toindex, CHAR_FMNAME), fmpks[fmpks_pos + 1].guest_name) == 0))) && (((fmpks[fmpks_pos + 1].flag == FMPKS_FLAG_SCHEDULED) || (fmpks[fmpks_pos + 1].flag == FMPKS_FLAG_MANOR_PREPARE))) ) { if(NPC_Util_GetStrFromStrWithDelim( npcarg, "NextMsg", buf2, sizeof( buf2)) == NULL) return; sprintf(token, buf2, fl, tm1.tm_hour, tm1.tm_min); } else { if(NPC_Util_GetStrFromStrWithDelim( npcarg, "AskMsg", buf2, sizeof( buf2)) == NULL) return; sprintf(token, buf2, fmpks[fmpks_pos].guest_name, fmpks[fmpks_pos].host_name); } CONNECT_set_pass(fd, FALSE); CONNECT_set_first_warp(fd, FALSE); } /*-仇仇匹霜耨允月--*/ lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE, WINDOW_BUTTONTYPE_YESNO, CHAR_WINDOWTYPE_WINDOWWARPMAN_MAIN, CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), token); }int NPC_FMFloorUse(int floor){ int i; int players = 0; int playernum = CHAR_getPlayerMaxNum(); /* 皿伊奶乩□民尼永弁 */ for( i=0 ; i< playernum ; i++ ){ if( CHAR_getCharUse(i) == FALSE )continue; if(CHAR_getInt(i,CHAR_FLOOR)==floor){ players++; } } return players;}void NPC_GetPKFMNum(int floor, int index1, int index2, int *num1, int *num2){ int i = 0, charindex; *num1 = 0; *num2 = 0; /* 皿伊奶乩□民尼永弁 */ for (i = 0 ; i < FAMILY_MAXMEMBER; i++ ){ charindex = familyMemberIndex[ index1][i]; if( CHAR_getCharUse( charindex) ){ if (CHAR_getInt(charindex, CHAR_FLOOR) == floor) *num1 = *num1 + 1; }else familyMemberIndex[ index1][i] = -1; charindex = familyMemberIndex[index2][i]; if (CHAR_getCharUse(charindex)){ if (CHAR_getInt(charindex, CHAR_FLOOR) == floor) *num2 = *num2 + 1; }else familyMemberIndex[ index2][i] = -1; }}void NPC_FMBATTLESET(int floor, int index1, int index2, int flag){ int i = 0, charindex; for (i = 0; i < FAMILY_MAXMEMBER; i++) { charindex = familyMemberIndex[index1][i]; if (CHAR_getCharUse(charindex)) { if (CHAR_getInt(charindex ,CHAR_FLOOR) == floor) { CHAR_setWorkInt( charindex, CHAR_WORKBATTLEFLAG, flag); if(flag==1) CHAR_setFlg(charindex, CHAR_ISDUEL, 1); } } else familyMemberIndex[index1][i] = -1; charindex = familyMemberIndex[index2][i]; if (CHAR_getCharUse(charindex)) { if (CHAR_getInt(charindex ,CHAR_FLOOR) == floor) { CHAR_setWorkInt( charindex, CHAR_WORKBATTLEFLAG, flag); if(flag==1) CHAR_setFlg(charindex, CHAR_ISDUEL, 1); } } else familyMemberIndex[index2][i] = -1; }}void NPC_CleanPK(int floor, int meindex){ int i; int playernum = CHAR_getPlayerMaxNum(); int fl = CHAR_getInt(meindex, CHAR_FLOOR); int x = CHAR_getInt(meindex, CHAR_X); int y = CHAR_getInt(meindex, CHAR_Y); for( i=0 ; i< playernum ; i++ ) { if( CHAR_getCharUse(i) == FALSE )continue; if(CHAR_getInt(i,CHAR_FLOOR)==floor) CHAR_warpToSpecificPoint(i, fl, x, y); }}void NPC_talkToFloor(int floor, int index1, int index2, char *data){ int i = 0, charindex; for (i = 0; i < FAMILY_MAXMEMBER; i++) { charindex = familyMemberIndex[index1][i]; if (CHAR_getCharUse(charindex)) {// print("charname:%s fmname:%s\n", // CHAR_getChar(charindex, CHAR_NAME),// CHAR_getChar(charindex, CHAR_FMNAME)); if (CHAR_getInt(charindex, CHAR_FLOOR) == floor) CHAR_talkToCli(charindex, -1, data, CHAR_COLORYELLOW); } else familyMemberIndex[index1][i] = -1; charindex = familyMemberIndex[index2][i]; if (CHAR_getCharUse(charindex)) {// print("charname:%s fmname:%s\n", // CHAR_getChar(i, CHAR_NAME),// CHAR_getChar(i, CHAR_FMNAME)); if (CHAR_getInt(charindex, CHAR_FLOOR) == floor) CHAR_talkToCli(charindex, -1, data, CHAR_COLORRED); } else familyMemberIndex[index2][i] = -1; }}void NPC_WarpFamily(int floor, int index1, int index2, int fl, int x, int y){ int i, charindex1, charindex2; for (i = 0; i < FAMILY_MAXMEMBER; i++){ charindex1 = familyMemberIndex[index1][i]; charindex2 = familyMemberIndex[index2][i]; if (CHAR_getCharUse(charindex1)) { if (CHAR_getInt(charindex1, CHAR_FLOOR) == floor) { CHAR_setWorkInt(charindex1, CHAR_WORKBATTLEFLAG, FALSE); CHAR_warpToSpecificPoint(charindex1, fl, x, y); } } else familyMemberIndex[index1][i] = -1; if (CHAR_getCharUse(charindex2)) { if (CHAR_getInt(charindex2, CHAR_FLOOR) == floor) { CHAR_setWorkInt(charindex2, CHAR_WORKBATTLEFLAG, FALSE); CHAR_warpToSpecificPoint(charindex2, fl, x, y); } } else familyMemberIndex[index1][i] = -1; }}void NPC_BattleOut(int index1, int index2){ int i, charindex1, charindex2; for (i = 0; i < FAMILY_MAXMEMBER; i++) { charindex1 = familyMemberIndex[index1][i]; charindex2 = familyMemberIndex[index2][i]; if(CHAR_getCharUse(charindex1)){ if(CHAR_getWorkInt( charindex1, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) BATTLE_WatchStop(charindex1); } else familyMemberIndex[index1][i] = -1; if(CHAR_getCharUse(charindex2)){ if(CHAR_getWorkInt( charindex2, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) BATTLE_WatchStop(charindex2); } else familyMemberIndex[index2][i] = -1; } }void CheckLeavePK(int npcindex, int floor, int index1, int index2){ int i = 0, charindex, fl = 0, x = 0, y = 0; fl = CHAR_getInt(npcindex, CHAR_FLOOR); x = CHAR_getInt(npcindex, CHAR_X); y = CHAR_getInt(npcindex, CHAR_Y); for (i = 0; i < FAMILY_MAXMEMBER; i++) { charindex = familyMemberIndex[index1][i]; if (CHAR_getCharUse(charindex)){ if (CHAR_getInt(charindex, CHAR_FLOOR) == floor){ if (CHAR_getWorkInt(charindex, CHAR_WORKFMPKFLAG) < 0){ if (CHAR_getWorkInt(charindex, CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE) CHAR_DischargeParty( charindex, 0); CHAR_setWorkInt(charindex, CHAR_WORKWARPCHECK, FALSE); CHAR_setWorkInt(charindex, CHAR_WORKBATTLEFLAG, FALSE); CHAR_warpToSpecificPoint(charindex, fl, x, y); CHAR_talkToCli(charindex, -1, "战败离场", CHAR_COLORRED); } } }else familyMemberIndex[index1][i] = -1; charindex = familyMemberIndex[index2][i]; if (CHAR_getCharUse(charindex)){ if (CHAR_getInt(charindex, CHAR_FLOOR) == floor){ if (CHAR_getWorkInt(charindex, CHAR_WORKFMPKFLAG) < 0){ if (CHAR_getWorkInt(charindex, CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE) CHAR_DischargeParty(charindex, 0); CHAR_setWorkInt(charindex, CHAR_WORKWARPCHECK, FALSE); CHAR_setWorkInt(charindex, CHAR_WORKBATTLEFLAG, FALSE); CHAR_warpToSpecificPoint(charindex, fl, x, y); CHAR_talkToCli(charindex, -1, "战败离场", CHAR_COLORRED); } } }else familyMemberIndex[index2][i] = -1; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -