?? npc_fmdengon.c
字號:
fmsmemo.memoindex = 0;
dengonindex = fmsmemo.memoindex;
if( dengonindex < 6 && fmsmemo.memonum<FMSDENGONFILELINENUM)
dengonindex = 6;
memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1));
getStringFromIndexWithDelim(data,"|",2,tmp_buffer,sizeof(tmp_buffer));
sprintf( m_buf,"%s|%2d/%02d %2d:%02d %s",
tmp_buffer,
tm1.tm_mon +1, tm1.tm_mday, tm1.tm_hour, tm1.tm_min,
CHAR_getChar( talker, CHAR_NAME));
strcpy( fmsmemo.memo[fmsmemo.memoindex], m_buf);
// send acsv
saacproto_ACFMWriteMemo_send( acfd, "FMS",
FMSDENGON_SN,
makeEscapeString( fmsmemo.memo[fmsmemo.memoindex], buf, sizeof(buf)),
FMSDENGON_SN);
if( dengonindex >= 6){
strcpy( NPC_sendbuf, fmsmemo.memo[dengonindex - 6]);
strcat( NPC_sendbuf, "\n");
for( i=(dengonindex - 5); i<=dengonindex; i++){
strcat( NPC_sendbuf, fmsmemo.memo[i]);
strcat( NPC_sendbuf, "\n");
}
sprintf(tmp, "%d\n", dengonindex);
strcat( NPC_sendbuf, tmp);
}
if(dengonindex < 6){
strcpy( NPC_sendbuf, fmsmemo.memo[fmsmemo.memonum+(dengonindex - 6)]);
strcat( NPC_sendbuf, "\n");
for( i=fmsmemo.memonum+(dengonindex - 5); i<fmsmemo.memonum; i++){
strcat( NPC_sendbuf, fmsmemo.memo[i]);
strcat( NPC_sendbuf, "\n");
}
for( i=0; i<=dengonindex; i++){
strcat( NPC_sendbuf, fmsmemo.memo[i]);
strcat( NPC_sendbuf, "\n");
}
sprintf(tmp, "%d\n", dengonindex);
strcat( NPC_sendbuf, tmp);
}
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_FMSDENGON,
WINDOW_BUTTONTYPE_OKCANCEL|
WINDOW_BUTTONTYPE_PREV,
CHAR_WINDOWTYPE_FM_FMSDENGON,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( NPC_sendbuf, buf, sizeof(buf)));
}
break;
default: break;
} // Switch End
} // If End
// 說明視窗(家族據點)
else if( seqno == CHAR_WINDOWTYPE_FM_MESSAGE1)
{
int fd,i;
char pointbuf[4096];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
switch( select ){
case WINDOW_BUTTONTYPE_OK:
{
strcpy( pointbuf, fmpointlist.pointlistarray[0]);
strcat( pointbuf, "\n");
for( i=1; i<=FMPOINTNUM; i++){
strcat( pointbuf, fmpointlist.pointlistarray[i]);
strcat( pointbuf, "\n");
}
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_POINTLIST,
WINDOW_BUTTONTYPE_OK,
CHAR_WINDOWTYPE_FM_POINTLIST,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( pointbuf, buf, sizeof(buf)));
}
break;
default:
break;
}
}
// 說明視窗(成員列表)
else if( seqno == CHAR_WINDOWTYPE_FM_MESSAGE2)
{
int fd,i;
char numberlistbuf[4096];
int fmindex_wk;
fmindex_wk = CHAR_getWorkInt( talker, CHAR_WORKFMINDEXI);
if( fmindex_wk < 0 || fmindex_wk >= FMMAXNUM) return;
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
switch( select ){
case WINDOW_BUTTONTYPE_OK:
{
strcpy( numberlistbuf, memberlist[fmindex_wk].numberlistarray[0]);
strcat( numberlistbuf, "\n");
for( i=1; i<10; i++){
strcat( numberlistbuf, memberlist[fmindex_wk].numberlistarray[i]);
strcat( numberlistbuf, "\n");
}
// 增加程式碼(向AC要召募人員的值)
sprintf(enlistbuf, "是否繼續召募家族人員|0|%d",memberlist[fmindex_wk].accept);
strcat( numberlistbuf, enlistbuf);
strcat( numberlistbuf, "\n");
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_SELECT,
WINDOW_BUTTONTYPE_OK|
WINDOW_BUTTONTYPE_NEXT,
CHAR_WINDOWTYPE_FM_MEMBERLIST,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( numberlistbuf, buf, sizeof(buf)));
}
break;
default:
break;
}
}
// 強者表的選項視窗
else if( seqno == CHAR_WINDOWTYPE_FM_DPSELECT)
{
int fmindex_wk;
fmindex_wk = CHAR_getWorkInt( talker, CHAR_WORKFMINDEXI);
if( CHAR_getInt(talker, CHAR_FMINDEX) > 0 ){
if( fmindex_wk < 0 || fmindex_wk >= FMMAXNUM){
print("FamilyNumber Data Error!!");
return;
}
}
buttonevent = atoi(data);
switch( buttonevent ){
case 1: // 前叁十大家族綜合聲望列表
{
int fd,i;
char listbuf[4096];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
strcpy( listbuf, fmdptop.topmemo[0]);
strcat( listbuf, "\n");
for( i=1; i<10; i++){
strcat( listbuf, fmdptop.topmemo[i]);
strcat( listbuf, "\n");
}
strcat( listbuf, "0\n");
#ifdef _FMVER21
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_TOP30DP,
#else
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP,
#endif
WINDOW_BUTTONTYPE_OK|
WINDOW_BUTTONTYPE_NEXT,
CHAR_WINDOWTYPE_FM_DPTOP,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( listbuf, buf, sizeof(buf)));
}
break;
case 2: // 前十大家族冒險列表
{
int fd,i;
char listbuf[4096];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
strcpy( listbuf, fmdptop.adv_topmemo[0]);
strcat( listbuf, "\n");
for( i=1; i<10; i++){
strcat( listbuf, fmdptop.adv_topmemo[i]);
strcat( listbuf, "\n");
}
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP,
WINDOW_BUTTONTYPE_OK|
WINDOW_BUTTONTYPE_PREV,
CHAR_WINDOWTYPE_FM_DPME,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( listbuf, buf, sizeof(buf)));
}
break;
case 3: // 前十大家族伺育列表
{
int fd,i;
char listbuf[4096];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
strcpy( listbuf, fmdptop.feed_topmemo[0]);
strcat( listbuf, "\n");
for( i=1; i<10; i++){
strcat( listbuf, fmdptop.feed_topmemo[i]);
strcat( listbuf, "\n");
}
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP,
WINDOW_BUTTONTYPE_OK|
WINDOW_BUTTONTYPE_PREV,
CHAR_WINDOWTYPE_FM_DPME,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( listbuf, buf, sizeof(buf)));
}
break;
#ifndef _NEW_MANOR_LAW
case 4: // 前十大家族合成列表
{
int fd,i;
char listbuf[4096];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
strcpy( listbuf, fmdptop.syn_topmemo[0]);
strcat( listbuf, "\n");
for( i=1; i<10; i++){
strcat( listbuf, fmdptop.syn_topmemo[i]);
strcat( listbuf, "\n");
}
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP,
WINDOW_BUTTONTYPE_OK|
WINDOW_BUTTONTYPE_PREV,
CHAR_WINDOWTYPE_FM_DPME,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( listbuf, buf, sizeof(buf)));
}
break;
case 5: // 前十大家族料理列表
{
int fd,i;
char listbuf[4096];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
strcpy( listbuf, fmdptop.food_topmemo[0]);
strcat( listbuf, "\n");
for( i=1; i<10; i++){
strcat( listbuf, fmdptop.food_topmemo[i]);
strcat( listbuf, "\n");
}
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP,
WINDOW_BUTTONTYPE_OK|
WINDOW_BUTTONTYPE_PREV,
CHAR_WINDOWTYPE_FM_DPME,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( listbuf, buf, sizeof(buf)));
}
break;
#endif
#ifdef _NEW_MANOR_LAW
case 4: // 前十大家族PK列表
#else
case 6: // 前十大家族PK列表
#endif
{
int fd,i;
char listbuf[4096];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
strcpy( listbuf, fmdptop.pk_topmemo[0]);
strcat( listbuf, "\n");
for( i=1; i<10; i++){
strcat( listbuf, fmdptop.pk_topmemo[i]);
strcat( listbuf, "\n");
}
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP,
WINDOW_BUTTONTYPE_OK|
WINDOW_BUTTONTYPE_PREV,
CHAR_WINDOWTYPE_FM_DPME,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( listbuf, buf, sizeof(buf)));
}
break;
#ifdef _NEW_MANOR_LAW
case 5: // 十大氣勢家族
{
int fd,i;
char listbuf[4096];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
strcpy( listbuf, fmdptop.momentum_topmemo[0]);
strcat( listbuf, "\n");
for( i=1; i<10; i++){
strcat( listbuf, fmdptop.momentum_topmemo[i]);
strcat( listbuf, "\n");
}
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_10_MEMONTUM,
WINDOW_BUTTONTYPE_OK|
WINDOW_BUTTONTYPE_PREV,
CHAR_WINDOWTYPE_FM_DPME,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( listbuf, buf, sizeof(buf)));
}
break;
#endif
#ifndef _NEW_MANOR_LAW
case 7: // 自己家族聲望排行榜
#else
case 6:
#endif
{
int fd,i,h,k,fmid;
char listbuf[4096];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
fmid = CHAR_getWorkInt(talker, CHAR_WORKFMINDEXI);
if( fmid < 0 ){
sprintf( NPC_sendbuf, " 『警 告』\n 抱歉!你不是家族人員,無法查看。");
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE, WINDOW_BUTTONTYPE_OK,
-1,
-1,
makeEscapeString( NPC_sendbuf, buf, sizeof(buf)));
return;
}
for( h=0; h<FMMAXNUM; h++)
if( fmdptop.fmtopid[h] == fmid )
break;
k = h; // 標示顏色用(多傳一個1,以供Client之用)
if(h <= 4) h = 0;
else if(h >= 994 ) h = 990;
else h -= 4;
strcpy( listbuf, fmdptop.topmemo[h]);
if( k == h ) strcat( listbuf, "|1");
strcat( listbuf, "\n");
for( i = h + 1; i < h + 10; i++){
strcat( listbuf, fmdptop.topmemo[i]);
if(i == k) strcat( listbuf, "|1");
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -