📄 npc_raceman.c
字号:
}
break;
case WINDOW_BUTTONTYPE_OK:
Raceman_SelectWindow( meindex, talkerindex,0,-1); break;
default:break;
}
break;
case CHAR_WINDOWTYPE_RACE_SHOWRANK14:
switch(select){
case WINDOW_BUTTONTYPE_NEXT:
case WINDOW_BUTTONTYPE_PREV:
{
int fd;
fd = getfdFromCharaIndex( talkerindex );
if( fd == -1 ) return;
Pageindex += 10 * (( select == WINDOW_BUTTONTYPE_NEXT) ? 1 : -1);
if(history4[Pageindex].catchcnt==0) {
Raceman_SelectWindow( meindex, talkerindex,0,-1);
return;
}
if( Pageindex < 0 ) return;
buttontype = WINDOW_BUTTONTYPE_OK;
if( history4[Pageindex+10].catchcnt==0)
buttontype |= WINDOW_BUTTONTYPE_PREV;
else if( Pageindex == 0)
buttontype |= WINDOW_BUTTONTYPE_NEXT;
else{
buttontype |= WINDOW_BUTTONTYPE_PREV;
buttontype |= WINDOW_BUTTONTYPE_NEXT;
}
//收集资料
strcpy(listbuf,"『高手历史无奇不有排行榜』 ");
for (i=Pageindex;i<Pageindex+10;i++)
{
if(history4[i].rank == 0 || strlen(history4[i].name) == 0 || history4[i].catchcnt == 0) break;
sprintf(tmp_buffer,"%d %s %d ",history4[i].rank,history4[i].name , history4[i].catchcnt);
strcat(listbuf,tmp_buffer);
}
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_RACEMAN_RANK,
buttontype,
CHAR_WINDOWTYPE_RACE_SHOWRANK14,
CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
listbuf );
}
break;
case WINDOW_BUTTONTYPE_OK:
Raceman_SelectWindow( meindex, talkerindex,0,-1); break;
default:break;
}
break;
case CHAR_WINDOWTYPE_RACE_SHOWRANK15:
//目前秀到哪一笔
switch(select){
case WINDOW_BUTTONTYPE_NEXT:
case WINDOW_BUTTONTYPE_PREV:
{
int fd;
fd = getfdFromCharaIndex( talkerindex );
if( fd == -1 ) return;
Pageindex += 10 * (( select == WINDOW_BUTTONTYPE_NEXT) ? 1 : -1);
if(history5[Pageindex].catchcnt==0) {
//Pageindex = Pageindex - 10; 无下一页一率回首页
Raceman_SelectWindow( meindex, talkerindex,0,-1);
return;
}
if( Pageindex < 0 ) return; //
buttontype = WINDOW_BUTTONTYPE_OK;
if( history5[Pageindex+10].catchcnt==0)
buttontype |= WINDOW_BUTTONTYPE_PREV;
else if( Pageindex == 0)
buttontype |= WINDOW_BUTTONTYPE_NEXT;
else{
buttontype |= WINDOW_BUTTONTYPE_PREV;
buttontype |= WINDOW_BUTTONTYPE_NEXT;
}
//收集资料
strcpy(listbuf,"『家族历史无奇不有排行榜』 ");
for (i=Pageindex;i<Pageindex+10;i++)
{
if(history5[i].rank == 0 || strlen(history5[i].name) == 0 || history5[i].catchcnt == 0) break;
sprintf(tmp_buffer,"%d %s %d ",history5[i].rank,history5[i].name , history5[i].catchcnt);
strcat(listbuf,tmp_buffer);
}
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_RACEMAN_RANK,
buttontype,
CHAR_WINDOWTYPE_RACE_SHOWRANK15,
CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
listbuf );
}
break;
case WINDOW_BUTTONTYPE_OK:
Raceman_SelectWindow( meindex, talkerindex,0,-1); break;
default:break;
}
break;
case CHAR_WINDOWTYPE_RACE_QUIZ:
ret = Raceman_CheckAnswer( meindex , talkerindex , data );
if(ret == TRUE)
Raceman_SelectWindow( meindex, talkerindex,3,-1); //答对了
else
Raceman_MsgDisp( meindex, talkerindex,94,-1);//答错了
break;
default: break;
}
}
void Raceman_MsgDisp(int meindex,int talker,int num ,int select)
{
char token[4096],tmp_buffer[4096];
char buf[256],buf2[256],buf3[256];
char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
int fd = getfdFromCharaIndex( talker);
int buttontype=0,windowtype=0,windowno=0;
int i;
if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr)) == NULL) { //读参数
print("MsgDisp:GetArgStrErr");
print("NPCName=%s\n", CHAR_getChar( meindex, CHAR_NAME));
return ;
}
switch( num) {
case 0:
// 空白处请勿更动
strcpy( token, " ☆猎宠大会☆\n\n");
strcat( token, " 《 猎宠比赛题目 》\n");
strcat( token, " 《 领取猎宠证 》\n");
strcat( token, " 《 猎宠登记 》\n");
strcat( token, " 《 猎宠排行榜 》\n");
strcat( token, " 《 猎宠战利品 》\n\n");
strcat( token, " 《 离开 》\n");
buttontype=WINDOW_BUTTONTYPE_NONE;
windowtype=WINDOW_MESSAGETYPE_SELECT;
windowno=CHAR_WINDOWTYPE_RACE_START;
break;
case 1: //比赛题目
strcpy( token, " ☆猎宠大会报告☆\n\n");
if( NPC_Util_GetStrFromStrWithDelim( argstr, "subject_msg",
buf,sizeof(buf))!= NULL)
{
sprintf( buf2 ,"比赛题目:%s\n\n",buf);
}
strcat( token , buf2 );
if( NPC_Util_GetStrFromStrWithDelim( argstr, "time_msg",
buf, sizeof( buf)) != NULL){
sprintf( buf2 ,"时间限制:%s\n\n",buf);
}
strcat( token , buf2 );
buttontype=WINDOW_BUTTONTYPE_OK;
windowtype=WINDOW_MESSAGETYPE_MESSAGE;
windowno=CHAR_WINDOWTYPE_RACE_SUBJECT;
break;
case 2: //领猎宠证
strcpy( token, " ☆猎宠证核发处☆\n\n");
NPC_Util_GetStrFromStrWithDelim( argstr, "EndFlag",buf, sizeof( buf) );
if( strcmp(buf,"on")==0){
NPC_Util_GetStrFromStrWithDelim( argstr , "ending_msg", buf, sizeof( buf));
strcat( token , buf );
//strcat(token,"\n 比赛已经结束,无法再领取猎宠证!");
windowno=CHAR_WINDOWTYPE_RACE_NORMAL;
}else{
if( NPC_Util_GetStrFromStrWithDelim( argstr, "card_msg",buf, sizeof( buf) ) != NULL)
strcat( token, buf );
windowno=CHAR_WINDOWTYPE_RACE_TICKET;
}
buttontype=WINDOW_BUTTONTYPE_OK;
windowtype=WINDOW_MESSAGETYPE_MESSAGE;
break;
case 21://道具已满讯息
if( NPC_Util_GetStrFromStrWithDelim( argstr, "itemfull_msg",buf, sizeof( buf) ) != NULL)
strcpysafe(token, sizeof( buf), buf);
buttontype=WINDOW_BUTTONTYPE_OK;
windowtype=WINDOW_MESSAGETYPE_MESSAGE;
windowno=CHAR_WINDOWTYPE_RACE_NORMAL;
break;
case 22://已经有猎宠证讯息
if( NPC_Util_GetStrFromStrWithDelim( argstr, "haditem_msg",buf, sizeof( buf) ) != NULL)
strcpysafe(token, sizeof( buf), buf);
buttontype=WINDOW_BUTTONTYPE_OK;
windowtype=WINDOW_MESSAGETYPE_MESSAGE;
windowno=CHAR_WINDOWTYPE_RACE_NORMAL;
break;
case 3: //猎宠登记
strcpy( token, " ☆猎宠登记处☆\n\n");
buttontype=WINDOW_BUTTONTYPE_CANCEL;
windowtype=WINDOW_MESSAGETYPE_PETSELECT;
windowno=CHAR_WINDOWTYPE_RACE_PETSELECT;
break;
case 31://检查宠物
//CHAR_getWorkInt( meindex , CHAR_WORKPETSELECT );
if(Raceman_checkpet( meindex, talker , select , token ) == FALSE){ // false 表示已登记
buttontype=WINDOW_BUTTONTYPE_OK;
windowtype = WINDOW_MESSAGETYPE_MESSAGE;
windowno=CHAR_WINDOWTYPE_RACE_NORMAL;
}else{
//PetSelect = select-1;
CHAR_setWorkInt( talker , CHAR_WORK_PETSELECT, select-1 );
if( NPC_Util_GetStrFromStrWithDelim( argstr, "DelFlag",buf, sizeof( buf) ) != NULL){
if( strcmp(buf,"on")==0) strcat(token,"\n\n 请注意,您必须交出宠物才能登记唷!");
}
buttontype = WINDOW_BUTTONTYPE_YESNO;
windowtype = WINDOW_MESSAGETYPE_MESSAGE;
windowno=CHAR_WINDOWTYPE_RACE_CHECKIN;
}
break;
case 32://无猎宠证讯息
if( NPC_Util_GetStrFromStrWithDelim( argstr, "nonitem_msg",buf, sizeof( buf) ) != NULL){
strcpysafe(token, sizeof( buf), buf);
}
buttontype=WINDOW_BUTTONTYPE_OK;
windowtype=WINDOW_MESSAGETYPE_MESSAGE;
windowno=CHAR_WINDOWTYPE_RACE_NORMAL;
break;
case 4: //猎宠排行榜
strcpy( token, " ☆猎宠排行榜☆\n\n");
NPC_Util_GetStrFromStrWithDelim( argstr, "EndFlag",buf, sizeof( buf) );
if(strcmp(buf,"off")==0){
NPC_Util_GetStrFromStrWithDelim( argstr, "HasGame",buf, sizeof( buf) );
i = 1;
while( getStringFromIndexWithDelim( buf , "," , i , buf2 , sizeof(buf2) )){
sprintf( buf3 , " %s\n",rankname[atoi(buf2)-1]);
strcat( token , buf3 );
i++ ;
}
}else{
NPC_Util_GetStrFromStrWithDelim( argstr, "GameMode",buf, sizeof( buf) );
sprintf( buf3 , " %s\n",historyrank[atoi(buf)-1]);
strcat( token , buf3 );
}
buttontype=WINDOW_BUTTONTYPE_NONE;
windowtype=WINDOW_MESSAGETYPE_SELECT;
windowno=CHAR_WINDOWTYPE_RACE_RANK;
break;
case 41: //新手的比赛 限定种类比数量
token[0]='\0';
strcpy(token,"『新手惊为天人排行榜』 ");
for (i=0;i<10;i++)
{
if(ranktable1[i].rank == 0 || strlen(ranktable1[i].name) == 0 || ranktable1[i].catchcnt == 0) break;
sprintf(tmp_buffer,"%d %s %d ",ranktable1[i].rank , ranktable1[i].name , ranktable1[i].catchcnt);
strcat(token,tmp_buffer);
}
Pageindex = 0; //回到第一页
buttontype=WINDOW_BUTTONTYPE_OK|WINDOW_BUTTONTYPE_NEXT;
windowtype=WINDOW_MESSAGETYPE_RACEMAN_RANK;
windowno=CHAR_WINDOWTYPE_RACE_SHOWRANK1;
break;
case 42://个人同种类排名
token[0]='\0';
strcpy(token,"『高手惊为天人排行榜』 ");
for (i=0;i<10;i++)
{
if(ranktable2[i].rank == 0 || strlen(ranktable2[i].name) == 0 || ranktable2[i].catchcnt == 0) break;
sprintf(tmp_buffer,"%d %s %d ",ranktable2[i].rank , ranktable2[i].name , ranktable2[i].catchcnt);
strcat(token,tmp_buffer);
}
Pageindex = 0;
buttontype=WINDOW_BUTTONTYPE_OK|WINDOW_BUTTONTYPE_NEXT;
windowtype=WINDOW_MESSAGETYPE_RACEMAN_RANK;
windowno=CHAR_WINDOWTYPE_RACE_SHOWRANK2;
break;
case 43://家族不同种类排名
token[0]='\0';
strcpy(token,"『家族惊为天人排行榜』 ");
for (i=0;i<10;i++)
{
if(ranktable3[i].rank == 0 || strlen(ranktable3[i].name) == 0 || ranktable3[i].catchcnt == 0) break;
sprintf(tmp_buffer,"%d %s %d ",ranktable3[i].rank , ranktable3[i].name , ranktable3[i].catchcnt);
strcat(token,tmp_buffer);
}
Pageindex = 0;
buttontype=WINDOW_BUTTONTYPE_OK|WINDOW_BUTTONTYPE_NEXT;
windowtype=WINDOW_MESSAGETYPE_RACEMAN_RANK;
windowno=CHAR_WINDOWTYPE_RACE_SHOWRANK3;
break;
case 44://个人同种类排名
token[0]='\0';
strcpy(token,"『高手无奇不有排行榜』 ");
for (i=0;i<10;i++)
{
if(ranktable4[i].rank == 0 || strlen(ranktable4[i].name) == 0 || ranktable4[i].catchcnt == 0) break;
sprintf(tmp_buffer,"%d %s %d ",ranktable4[i].rank , ranktable4[i].name , ranktable4[i].catchcnt);
strcat(token,tmp_buffer);
}
Pageindex = 0;
buttontype=WINDOW_BUTTONTYPE_OK|WINDOW_BUTTONTYPE_NEXT;
windowtype=WINDOW_MESSAGETYPE_RACEMAN_RANK;
windowno=CHAR_WINDOWTYPE_RACE_SHOWRANK4;
break;
case 45://家族不同种类排名
token[0]='\0';
strcpy(token,"『家族无奇不有排行榜』 ");
for (i=0;i<10;i++)
{
if(ranktable5[i].rank == 0 || strlen(ranktable5[i].name) == 0 || ranktable5[i].catchcnt == 0) break;
sprintf(tmp_buffer,"%d %s %d ",ranktable5[i].rank , ranktable5[i].name , ranktable5[i].catchcnt);
strcat(token,tmp_buffer);
}
Pageindex = 0;
buttontype=WINDOW_BUTTONTYPE_OK|WINDOW_BUTTONTYPE_NEXT;
windowtype=WINDOW_MESSAGETYPE_RACEMAN_RANK;
windowno=CHAR_WINDOWTYPE_RACE_SHOWRANK5;
break;
case 411:
token[0]='\0';
strcpy(token,"『新手历史惊为天人排行榜』 ");
for (i=0;i<10;i++)
{
if(history1[i].rank == 0 || strlen(history1[i].name) == 0 || history1[i].catchcnt == 0) break;
sprintf(tmp_buffer,"%d %s %d ",history1[i].rank , history1[i].name , history1[i].catchcnt);
strcat(token,tmp_buffer);
}
Pageindex = 0;
buttontype=WINDOW_BUTTONTYPE_OK|WINDOW_BUTTONTYPE_NEXT;
windowtype=WINDOW_MESSAGETYPE_RACEMAN_RANK;
windowno=CHAR_WINDOWTYPE_RACE_SHOWRANK11;
break;
case 412:
token[0]='\0';
strcpy(token,"『高手历史惊为天人排行榜』 ");
for (i=0;i<10;i++)
{
if(history2[i].rank == 0 || strlen(history2[i].name) == 0 || history2[i].catchcnt == 0) break;
sprintf(tmp_buffer,"%d %s %d ",history2[i].rank , history2[i].name , history2[i].catchcnt);
strcat(token,tmp_buffer);
}
Pageindex = 0;
buttontype=WINDOW_BUTTONTYPE_OK|WINDOW_BUTTONTYPE_NEXT;
windowtype=WINDOW_MESSAGETYPE_RACEMAN_RANK;
windowno=CHAR_WINDOWTYPE_RACE_SHOWRANK12;
break;
case 413:
token[0]='\0';
strcpy(token,"『家族历史惊为天人排行榜』 ");
for (i=0;i<10;i++)
{
if(history3[i].rank == 0 || strlen(history3[i].name) == 0 || history3[i].catchcnt == 0) break;
sprintf(tmp_buffer,"%d %s %d ",history3[i].rank , history3[i].name , history3[i].catchcnt);
strcat(token,tmp_buffer);
}
Pageindex = 0;
buttontype=WINDOW_BUTTONTYPE_OK|WINDOW_BUTTONTYPE_NEXT;
windowtype=WINDOW_MESSAGETYPE_RACEMAN_RANK;
windowno=CHAR_WINDOWTYPE_RACE_SHOWRANK13;
break;
case 414:
token[0]='\0';
strcpy(token,"『高手历史无奇不有排行榜』 ");
for (i=0;i<10;i++)
{
if(history4[i].rank == 0 || strlen(history4[i].name) == 0 || history4[i].catchcnt == 0) break;
sprintf(tmp_buffer,"%d %s %d ",history4[i].rank , history4[i].name , history4[i].catchcnt);
strcat(token,tmp_buffer);
}
Pageindex = 0;
buttontype=WINDOW_BUTTONTYPE_OK|WINDOW_BUTTONTYPE_NEXT;
windowtype=WINDOW_MESSAGETYPE_RACEMAN_RANK;
windowno=CHAR_WINDOWTYPE_RACE_SHOWRANK14;
break;
case 415:
token[0]='\0';
strcpy(token,"『家族历史无奇不有排行榜』 ");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -