📄 npc_quiz.c
字号:
#include "version.h"
#include <string.h>
#include "common.h"
#include "char_base.h"
#include "npc_quiz.h"
#include "npcutil.h"
#include "char.h"
#include "lssproto_serv.h"
#include "buf.h"
#include "function.h"
#include "readmap.h"
#include "object.h"
#include "log.h"
#define MEPLAYER 8
#define OLDNO 100
enum {
CHAR_WORK_PLAYER1 = CHAR_NPCWORKINT1,
CHAR_WORK_PLAYER2 = CHAR_NPCWORKINT2,
CHAR_WORK_PLAYER3 = CHAR_NPCWORKINT3,
CHAR_WORK_PLAYER4 = CHAR_NPCWORKINT4,
CHAR_WORK_PLAYER5 = CHAR_NPCWORKINT5,
CHAR_WORK_PLAYER6 = CHAR_NPCWORKINT6,
CHAR_WORK_PLAYER7 = CHAR_NPCWORKINT7,
CHAR_WORK_PLAYER8 = CHAR_NPCWORKINT8,
CHAR_WORK_QUIZNUM = CHAR_NPCWORKINT9,
};
NPC_QUIZ* Quiz;
struct pl{
int talkerindex;
int quizno;
int answer;
int ansno;
int oldno[OLDNO];
int *ptr;
};
static int quizcnt = 0;
static void NPC_Quiz_selectWindow( int meindex, int talker, int num);
int *NPC_GetQuestion(int meindex);
BOOL NPC_QuizItemFullCheck(int meindex, int talker);
BOOL NPC_PlayerCheck(int meindex,int talker);
int NPC_RealyCheack(int meindex,int talker);
int NPC_QuizRandAnswer(int p_no,int q_no, int mode,
char *work1,char *work2,char *work3);
int NPC_QuizBorderLine(int ans, char *buf);
int NPC_QuizWarpBorderLine(int ans, char *buf);
BOOL NPC_QuizAddItem(int talker,char *buf);
BOOL NPC_EntryItemDel(int talker,char *buf);
BOOL NPC_EntryItemCheck(int talker,char *buf);
BOOL NPC_EntryStoneDel(int talker,char *buf);
BOOL NPC_EntryStoneCheck(int talker,char *buf);
BOOL NPC_QUIZPARTY_CHAECK(int meindex,int talker);
BOOL NPC_QuizInit( int meindex )
{
char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
char buf[1024];
int *tbl;
int i;
NPC_Util_GetArgStr( meindex, argstr, sizeof( argstr));
if(NPC_Util_GetStrFromStrWithDelim( argstr, "StartMsg", buf, sizeof( buf)) == NULL){
print("Quiz_StartMsgErr:%s", CHAR_getChar( meindex, CHAR_NAME));
return FALSE;
}
if(NPC_Util_GetStrFromStrWithDelim( argstr, "Quiznum", buf, sizeof( buf)) == NULL){
print("QuizNumErrErr:%s", CHAR_getChar( meindex, CHAR_NAME));
return FALSE;
}
CHAR_setWorkInt( meindex, CHAR_WORK_QUIZNUM, atoi( buf));
for(i =0 ; i < 8 ; i++){
CHAR_setWorkInt( meindex, CHAR_WORK_PLAYER1 + i, -1);
}
tbl = NPC_GetQuestion( meindex);
if( CHAR_getWorkInt( meindex, CHAR_WORK_QUIZNUM) > ( tbl[0] - 1)){
print(
"%s丗符合条件,圆圈quiz的问题数(%d
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -