?? npc_fmwarpman.c
字號:
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) // 兩家族戰(zhàn)斗中
{
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) // 兩家族戰(zhàn)斗結(jié)束
{
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, "戰(zhàn)敗離場", 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, "戰(zhàn)敗離場", CHAR_COLORRED);
}
}
}else
familyMemberIndex[index2][i] = -1;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -