stoneage8.5/石器时代8.5客户端最新源代码/石器源码/system/onlinegm.cpp

2023 lines
60 KiB
C++
Raw Normal View History

2020-06-23 15:27:59 +08:00
//cyg ʵ<><CAB5><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ϵͳ (<28><><EFBFBD>ϻر<CFBB>ϵͳ)
#include"../systeminc/version.h"
#include"../systeminc/system.h"
#include"../systeminc/loadrealbin.h"
#include"../systeminc/loadsprbin.h"
#include"../systeminc/anim_tbl.h"
#include"../systeminc/login.h"
#include"../systeminc/menu.h"
#include"../systeminc/map.h"
#include"../systeminc/lssproto_cli.h"
#include"../systeminc/pc.h"
#include"../systeminc/netmain.h"
#include"../systeminc/handletime.h"
#include"../systeminc/character.h"
#include"../other/caryIme.h"
#include"../systeminc/ime_sa.h"
#include"../systeminc/t_music.h"
#include"../systeminc/netproc.h"
#include"../systeminc/tool.h"
#include "time.h"
#include "../wgs/descrypt.h"
#include"../systeminc/onlinegm.h"
char ProblemClass[DEF_CLASS_TOTAL][16]={
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
};
char ProblemC1[DEF_C1_TOTAL][30]={
"<EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>ʯ",
"<EFBFBD><EFBFBD>ҳָ<EFBFBD><EFBFBD>",
"<EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD>",
"<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD>Ա<EFBFBD>ʺ<EFBFBD>",
"<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򼰴<EFBFBD>ֵ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>ܱ<EFBFBD><DCB1><EFBFBD>Ʒ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>/<2F><>·״<C2B7><D7B4><EFBFBD><EFBFBD>Ӧ",
"<EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>",
"<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
};
char ProblemC1Help[DEF_C1_TOTAL][60]={
"<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʺš<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص㡢<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѶϢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD>ѯ<EFBFBD><EFBFBD>Ϸר<EFBFBD><EFBFBD><EFBFBD><EFBFBD>վ<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״<EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD>ֿ۵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ(<28><>Ϸ<EFBFBD>۵<EFBFBD><DBB5><EFBFBD><EFBFBD><EFBFBD>)",
"",
"<EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD>ѯר<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD>ػ",
"",
"<EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD>ѯ<EFBFBD><EFBFBD>ҳFAQ",
"",
""
};
char ProblemC2[DEF_C2_TOTAL][16]={
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD>ףǣӿ۵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>
char ProblemC2_1[3][16]={
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>
char ProblemC2_2[3][16]={
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD>߹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>
char ProblemC2_3[5][16]={
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char ProblemC2_4[2][16]={
"<EFBFBD><EFBFBD><EFBFBD>׺<EFBFBD><EFBFBD><EFBFBD>ʧ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
};
//<2F><><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>
char ProblemC2_5[2][16]={
"<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ò<EFBFBD>ѯ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char ProblemC2_6[3][16]={
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
};
//<2F><>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>
char ProblemC2_7[3][16]={
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
};
//HELP<4C><50>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD>Ͻṹ
typedef struct PAGE{
short desc_index; //˵<><CBB5><EFBFBD><EFBFBD><E1B9B9>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>desc_indexΪ<78><CEAA><EFBFBD><EFBFBD>seg_index<65><78>help_indexȡ<78><C8A1>DESC<53><43><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>index)
int desc_num;//BYTE desc_num; //˵<><CBB5><EFBFBD>Ľṹ<C4BD><E1B9B9>
}*LPPAGE;
//ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//HELP<4C><50>ʹ<EFBFBD>õ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻṹ
typedef struct DESC{
BYTE color; //<2F><>ɫ
char description[60]; //˵<><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}*LPDESC;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ cyg
typedef struct{
char no[20];
char state[40];
char okdate[10];
int okH;
char wrongdate[10];
int wrongH;
int class0;
char class1[40];
char cont[4000];
char answer[4000];
char error[2000];
BOOL delflag;
}PRODATA;
DESC Prohelp_desc1[]={
//<2F><>ɫ<EFBFBD><C9AB>˵<EFBFBD><CBB5> //fix
{ 4 , "1. ʹ<><CAB9>˵<EFBFBD><CBB5>"},
{ 0 , " <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ20<32>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⵥɾ<E2B5A5><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , " <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>"},
{ 0 , " <09><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B5A5><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>"},
{ 4 , "2. <20><><EFBFBD><EFBFBD>"},
{ 0 , " <09><>2003/12/31<33>շ<EFBFBD><D5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD>ʽ"},
{ 0 , " <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFB5B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , " <09><><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><E8B6A8><EFBFBD>£<EFBFBD>"},
{ 0 , " <09><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ι<EFBFBD><CEB9><EFBFBD><EFBFBD><E8B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һСʱ<D0A1><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߻<EFBFBD><DFBB><EFBFBD><EFBFBD><EFBFBD><EFB5B0><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ٴε<D9B4><CEB5><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , " <20><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ι<EFBFBD><CEB9><EFBFBD><EFBFBD>ʱ<EFBFBD>"},
{ 4 , "3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ"},
{ 0 , " <09><>Ϸ<EFBFBD><CFB7>ʽ<EFBFBD><EFBFBD><E8B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬһ<CDAC>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſڵ<C5BF>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա]"},
};
DESC Prohelp_desc2[]={
{ 0 , " ȡ<>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>"},
{ 0 , " <09>ʺš<CABA><C5A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>ڡ<EFBFBD>"},
{ 4 , "4. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ"},
{ 0 , " <09><>Ϸ<EFBFBD><CFB7>ʽ<EFBFBD><EFBFBD><E8B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬһ<CDAC>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſڵ<C5BF>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա]"},
{ 0 , " ȡ<>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>"},
{ 0 , " <09>ʺš<CABA><C5A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>ڡ<EFBFBD>"},
//{ 4 , "4. <20><><EFBFBD><EFBFBD>ս<EFBFBD><D5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>"},
//{ 0 , " <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ϶ȵ<CFB6><C8B5><EFBFBD>20<32><30><EFBFBD>£<EFBFBD><C2A3><EFBFBD>ս<EFBFBD><D5BD><EFBFBD>оͻ<D0BE><CDBB><EFBFBD><EFBFBD>ߡ<EFBFBD><DFA1><EFBFBD>Ϊԭ<CEAA><D4AD>Ϸ<EFBFBD>趨"},
//{ 0 , " <09><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD>"},
{ 4 , "5. <20><><EFBFBD>׺<EFBFBD><D7BA><EFBFBD>Ʒ<EFBFBD><C6B7>ʧ-<2D><><EFBFBD><EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , " <09><><EFBFBD>׷<EFBFBD><D7B7><EFBFBD><EFBFBD>ʺŻ<CABA><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD><EFBFBD>׵ij<D7B5><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ȼ<EFBFBD>"},
{ 0 , " <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
{ 4 , "6. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NPC-<2D>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , " <09><>Ϊԭ<CEAA><D4AD>Ϸ<EFBFBD><EFBFBD><E8B6A8><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD>"},
{ 4 , "7. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><DFB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>-<2D>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , " <09><>Ϊԭ<CEAA><D4AD>Ϸ<EFBFBD><EFBFBD><E8B6A8><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD>ҿ<EFBFBD><D2BF><EFBFBD><EFBFBD><EFBFBD>"},
};
DESC Prohelp_desc3[]={
{ 0 , " Ϸ<><CFB7>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD>ת<EFBFBD>ơ<EFBFBD>"},
{ 4 , "8. <20><><EFBFBD><EFBFBD><EFBFBD>쳣-<2D><><EFBFBD><EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , " <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB3A3><EFBFBD><EFBFBD><E5B3A4><EFBFBD><EFBFBD><EFBFBD>ʺ<EFBFBD><CABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>š<EFBFBD><C5A1>"},
{ 0 , " ״<><D7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬ϵͳ<CFB5>Զ<EFBFBD><D4B6><EFBFBD>ɢ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><E5A3AC>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , " <09>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , " <09><> <20><><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>߶<EFBFBD><DFB6>Զ<EFBFBD><D4B6>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B6A8>ϵ"},
{ 0 , " ͳÿ<CDB3><C3BF><EFBFBD><EFBFBD><E1B2BB>ʱ<EFBFBD><CAB1>ɨ<EFBFBD><EFBFBD><E8A1A2><EFBFBD>"},
{ 0 , " <09><> Ŀǰ<C4BF><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><E8B6A8><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>7<EFBFBD><37><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7>ټ<EFBFBD><D9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
{ 4 , "9. <20><><EFBFBD><EFBFBD>DP<44>쳣-<2D>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD> "},
{ 0 , " <09><><EFBFBD><EFBFBD>DP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD><ECA3AC><EFBFBD>޿<EFBFBD><DEBF>Ŵ˹<C5B4><CBB9>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD>Ҳ<EFBFBD>ѯ<EFBFBD><D1AF>"},
{ 4 , "10. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC>ʧ-<2D>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , " <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD>Ķ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>һ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ж<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>"},
{ 0 , " Ƭ)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>޷<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>޿<EFBFBD><DEBF>Ŵ<EFBFBD>"},
};
DESC Prohelp_desc4[]={
{ 0 , " <09><><EFBFBD>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD>Ҳ<EFBFBD>ѯ<EFBFBD><D1AF>"},
{ 4 , "11. <20><><EFBFBD><EFBFBD>&թƭ<D5A9><C6AD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , " <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1>ȼ<EFBFBD><C8BC>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա"},
{ 0 , " <09>ɲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
{ 0 , "<>г<EFBFBD><D0B3><EFBFBD><EFA1A2><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ʯ<EFBFBD><CAAF>)<29><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṩ֮<E1B9A9><D6AE><EFBFBD>ߡ<EFBFBD>"},
{ 0 , " <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>ѯ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>"},
{ 4 , "12. <20><>ȸת<C8B8><D7AA><EFBFBD>趨 2003/06/21"},
{ 0 , " <09><EFBFBD><EEB6AF><EFBFBD><EFBFBD>֮<EFBFBD><D6AE>ȸ<EFBFBD><C8B8><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ɳ<EFBFBD><C9B3>ռ<D5BC><E4A3AC>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>"},
{ 0 , " ֵ<><D6B5><EFBFBD>ݲ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>ת<EFBFBD><D7AA>ǰ<EFBFBD>ߵ<DFB5>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫת<D2AA><D7AA><EFBFBD><EFBFBD>ȸʱ<C8B8><CAB1>"},
{ 0 , " <09><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD><D3BF>ǡ<EFBFBD><C7A1>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ת<EFBFBD><D7AA>ǰ<EFBFBD><C7B0>ȸ֮<C8B8><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
};
//DESC Prohelp_desc5[]={
//};
LPDESC Prohelp_Index[] ={
&Prohelp_desc1[0],
&Prohelp_desc2[0],
&Prohelp_desc3[0],
&Prohelp_desc4[0]
// &Prohelp_desc5[0]
};
PAGE ProHelp_page[]={
{ 0 , sizeof(Prohelp_desc1)/sizeof(Prohelp_desc1[0])},
{ 0 , sizeof(Prohelp_desc2)/sizeof(Prohelp_desc2[0])},
{ 0 , sizeof(Prohelp_desc3)/sizeof(Prohelp_desc3[0])},
{ 0 , sizeof(Prohelp_desc4)/sizeof(Prohelp_desc4[0])}
// { 0 , sizeof(Prohelp_desc5)/sizeof(Prohelp_desc5[0])}
};
INPUT_HISTORY InputHistory ; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿһ<C3BF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
STR_BUFFER SubBuffer ; // ÿһ<C3BF>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>buf
#ifdef __ONLINEGM // ȫ<>ص<EFBFBD>
char DataBuffer[500]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻõ<CFBA><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
char InputBuffer[8050]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char ContentBuf[8050]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻõ<CFBA><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PRODATA Prodata[100]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD>100<30><30>
int PutKey,PushKey ;
int ProNoSelect; // <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int HistorySelect; // <20>ϴ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ѯ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL ProNoSelectFlag; // <20><>û<EFBFBD><C3BB>ѡ<EFBFBD><D1A1><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>
int ProNoIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B5A5>
int ProNoValue; // <20><>ʾ<EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B5A5>
BOOL TitleFlag ;
int SegmentIndex ; // һ<><D2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>
int SegmentTotal ; // <20><>¼<EFBFBD>ܹ<EFBFBD><DCB9>м<EFBFBD><D0BC><EFBFBD>
char SegmentBuf[2][2500];// <20><>¼ij<C2BC>ʵ<EFBFBD><CAB5>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD>ݺͿͷ<CDBF><CDB7><EFBFBD>Ӧ
int okY,okM,okD,okH,wrongY,wrongM,wrongD,wrongH;
int ClassIndex , ClassIndex1 , ClassIndex2 ; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL DeleteBtnFlag; //Ҫ<><D2AA>ѡ<EFBFBD><D1A1>ij<EFBFBD><C4B3><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//OnlineGm <20><>Log ר<><D7A8><EFBFBD><EFBFBD> Begin
#ifdef _STONDEBUG_
char inlogstr[512];
#define filename "onlinegm.log"
#endif
//OnlineGm <20><>Log ר<><D7A8><EFBFBD><EFBFBD> End
//<2F>߻<EFBFBD>ϵͳ <20><><EFBFBD><EFBFBD>Server IP : 10.1.0.17
BOOL QueryOnlineGmIP(char HostName[]);
char *OnlineGmIP; //ʹ<><CAB9>domain name
//char OnlineGmIP[20]; //ʹ<><CAB9>ֱ<EFBFBD><D6B1>ip
#define SMSDomainName "ingame.wayi.com.tw"//"sms.hwaei.com.tw"
int ResultCode; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static char *pContent=NULL;
BOOL ResetFlag = TRUE;
BOOL DirFlag = TRUE;
DWORD LastTime = 0;
int iReturnNo; //<2F><>¼<EFBFBD>ش<EFBFBD><D8B4>ĵ<EFBFBD><C4B5><EFBFBD>
int TotalAddValue; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>Ŀǰ<C4BF><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int ProblemType ; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><E2B5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> һ<><D2BB>0<EFBFBD>쳣1
int SendType ; //<2F><>¼<EFBFBD><C2BC><EFBFBD>͸<EFBFBD>serverǰ<72><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned int ichecklooptime = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߻<EFBFBD>Ȧʱ<C8A6><CAB1>
//*************************************
// <09><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
//*************************************
void InitOnlineGm( void )
{
int i;
PutKey = 0;
PushKey = 0;
ProNoSelectFlag = FALSE;
ProNoSelect = 0;
HistorySelect = 5000; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ProNoIndex = 0;
ProNoValue = 0;
SegmentIndex =0;
SegmentTotal = 0;
okY=okM=okD=okH=wrongY=wrongM=wrongD=wrongH=0;
ClassIndex = 1;
ClassIndex1 = ClassIndex2 =0;
ResetFlag = TRUE ;
DirFlag = TRUE ;
DeleteBtnFlag = FALSE ;
DataBuffer[0] = '\0';
InputBuffer[0] = '\0';
ContentBuf[0] = '\0';
SegmentBuf[0][0]='\0';
SegmentBuf[1][0]='\0';
for( i=0;i<DEF_MAX_ADD_VALUE;i++){
Prodata[i].no[0] = '\0';
Prodata[i].state[0] = '\0';
Prodata[i].okdate[0] = '\0';
Prodata[i].okH = 0;
Prodata[i].wrongdate[0] = '\0';
Prodata[i].wrongH = 0;
Prodata[i].class0 = 0;
Prodata[i].class1[0] = '\0';
Prodata[i].cont[0] = '\0';
Prodata[i].answer[0] = '\0';
Prodata[i].error[0] = '\0';
Prodata[i].delflag = FALSE;
}
LastTime = 0;
iReturnNo = 0;
TotalAddValue = 0;
ProblemType = 0;
SendType = 0;
}
//************************************************
//<2F><>ʽ : <20><><EFBFBD><EFBFBD>Log<6F><67>(<28><>Local<61><6C>Ŀ¼<C4BF><C2BC>)<29><>ר<EFBFBD>ú<EFBFBD>ʽ
//<2F>ش<EFBFBD>ֵ : None
//<2F><> ע : ֻ<><D6BB>Debug mode<64><65><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2>д<EFBFBD><D0B4>log<6F><67>!!
//************************************************
#ifdef _STONDEBUG_
void WriteInLog( char cData[], char cFile[])
{
char totals[65536];//[1024];
struct tm nowTime;
time_t longTime;
time( &longTime );
localtime_s(&nowTime, &longTime );
sprintf_s(totals,"%02d/%02d/%02d %02d:%02d:%02d ",(nowTime.tm_year % 100), nowTime.tm_mon+1, nowTime.tm_mday,
nowTime.tm_hour, nowTime.tm_min, nowTime.tm_sec);
lstrcat(totals,cData);
lstrcat(totals,"\r\n\r\n\r\n");
FILE *fp;
fp = fopen(filename, "a" );
if(fp)
{
fprintf(fp,totals);
fclose(fp);
}
}
#endif
//************************************************
//<2F><>ʽһ : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>ASP<53>乵ͨ<E4B9B5><CDA8>ר<EFBFBD>ú<EFBFBD>ʽ
//<2F>ش<EFBFBD>ֵ : 0 --- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> & <20><><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1>ɹ<EFBFBD>
// 1 --- <20><><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
// 2 --- <20>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
// 3 --- <20>ֻ<EFBFBD>ѶϢ<D1B6><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>)
// 4 --- <20><>·<EFBFBD>˴<EFBFBD><CBB4><EFBFBD>
// 5 --- WGS<47><53><EFBFBD><EFBFBD>(<28><>ͨ<EFBFBD><CDA8>)<29>Ѳ<EFBFBD><D1B2><EFBFBD>!!(С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
// 6 --- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ(<28><>DNSʧ<53><CAA7>)
// 7 --- ASP<53>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
//************************************************
// pid:id ppw:password pdb:<3A>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD> pinput:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int SendProblemMsg(char pid[16], char ppw[16], char pdb[] , char pinput[])
{
char returndata[20] ; //<2F><>¼<EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ִ<EFBFBD>
int nRet,wait=1;
if(!QueryOnlineGmIP(SMSDomainName)) return 6;
//if((pdb[0] =='\0') || (lstrlen(pdb) != 23)) return 2;
//if(lstrlen(pc.name)>16) return 3;
#ifdef _FIX_URLENCODE
char OutTmp[8000];
char *pOutTmp ;
char *pInTmp ;
char Hex[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
// do encoding
pInTmp=pinput;
pOutTmp=OutTmp;
while (*pInTmp)
{
if ( (*pInTmp>= '0') && (*pInTmp <= '9')
|| (*pInTmp>= 'a') && (*pInTmp <= 'z')
|| (*pInTmp>= 'A') && (*pInTmp <= 'Z')
)
*pOutTmp++ = *pInTmp;
else
{
if(*pInTmp==0x20&&(!IsDBCSLeadByte(*pInTmp)))
*pOutTmp++ = '+';
else
{
*pOutTmp++ = '%';
*pOutTmp++ = Hex[(*pInTmp>>4)&0x0f];
*pOutTmp++ = Hex[(*pInTmp)&0x0f];
}
}
pInTmp++;
}
*pOutTmp = '\0';
sprintf_s(pinput,8050,"&qcontent=%s",OutTmp);
#endif
SOCKET hSock;
SOCKADDR_IN stName;
fd_set rfds,wfds;
timeval tmTimeOut;
char *result;
int len, cnt, ret ;
tmTimeOut.tv_usec=0;
tmTimeOut.tv_sec=5;
if( INVALID_SOCKET != ( hSock = socket( AF_INET, SOCK_STREAM, 0) ) )
{
DWORD flg = 1;
if( SOCKET_ERROR != ioctlsocket( hSock, FIONBIO, &flg))
{
ZeroMemory( &stName, sizeof(struct sockaddr));
stName.sin_family = PF_INET;
stName.sin_port = htons(80);
stName.sin_addr.s_addr = inet_addr(OnlineGmIP);
ret = connect( hSock, (LPSOCKADDR)&stName, sizeof(struct sockaddr) );
if( SOCKET_ERROR != ret || WSAEWOULDBLOCK == WSAGetLastError() )
{
cnt = 0;
char buf[3000];
if(ProblemType==0){
SendType=0; //һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sprintf_s(buf,"GET //normal_check.asp?wgsid=%s&gamepwd=%s&game=1%s%s",pid,ppw,pdb,pinput);
}else{
SendType=1; //<2F><EFBFBD><ECB3A3><EFBFBD><EFBFBD>
sprintf_s(buf,"GET //handle_check.asp?wgsid=%s&gamepwd=%s&game=1%s%s",pid,ppw,pdb,pinput);
}
strcat_s(buf," HTTP/1.1\r\nAccept: text/*\r\nUser-Agent: StoneAge\r\n");
sprintf_s(buf,"%sHost: %s\r\n\r\n",buf,OnlineGmIP);
#ifdef _STONDEBUG_ //д<><D0B4>onlinegm.log
WriteInLog( buf , filename);
#endif
len = lstrlen(buf);
ichecklooptime = TimeGetTime();
while(1)
{
FD_ZERO( &wfds);
FD_SET( hSock, &wfds);
nRet = select( NULL, (fd_set*)NULL, &wfds, (fd_set*)NULL, &tmTimeOut);
if(nRet == SOCKET_ERROR||nRet==-1){
closesocket(hSock);
return 4;
}else if(nRet == 0){
closesocket(hSock);
return 8;
}
if( FD_ISSET( hSock, &wfds) ){
ret = send( hSock, &buf[cnt], len, 0);
cnt += ret;
len -= ret;
if(len<1) break; //ok
}
if( TimeGetTime() - ichecklooptime > 3000 ){
closesocket(hSock);
return 8;
}
}
Sleep(500);
len = (InputHistory.newNo*70)+500 ; //1024;
cnt = 0;
ichecklooptime = TimeGetTime();
while(1)
{
if(wait>=3){
closesocket(hSock);
return 8;
}
FD_ZERO( &rfds);
FD_SET( hSock, &rfds);
select( NULL, &rfds, (fd_set*)NULL, (fd_set*)NULL, &tmTimeOut);
if(nRet == SOCKET_ERROR||nRet==-1){
closesocket(hSock);
return 4;
}
if(nRet == 0){
wait++;
continue;
}
if( FD_ISSET( hSock, &rfds) ){
ret = recv( hSock, &buf[cnt], len, 0);
if(ret<0){
closesocket(hSock);
return 4;
}
}
buf[cnt+ret] = 0;
result = strstr( buf, "\r\n\r\n") + 4;
getStringToken(result ,',',1,sizeof(returndata)-1,returndata);
if(atoi(returndata)!=1){ //<2F><><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>ʾok
closesocket(hSock);
return atoi(returndata);
}else{
getStringToken(result ,':',2,sizeof(returndata)-1,returndata);
iReturnNo = atoi(returndata); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
if(result) break;
cnt += ret;
len -= ret;
if( TimeGetTime() > ichecklooptime + 3000 ){
closesocket(hSock);
return 8;
}
}
}else{
closesocket(hSock);
return 6;
}
}
closesocket(hSock);
return 1;
}
return 4;
}
//************************************************
// <20><><EFBFBD><EFBFBD>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>ʽ
// <20>ش<EFBFBD>ֵ :0 --- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> & <20><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>ɹ<EFBFBD>
// 3 --- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
// 4 --- <20><>·<EFBFBD>˴<EFBFBD><CBB4><EFBFBD>
// 6 --- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ(<28><>DNSʧ<53><CAA7>)
//************************************************
int SendDeleteMsg(char pid[16], char ppw[16] , char pno[16] )
{
int nRet;
if(!QueryOnlineGmIP(SMSDomainName)) return 6;
int ret,len,cnt,icheck,wait=1;
SOCKET hSock;
SOCKADDR_IN stName;
fd_set rfds,wfds;
timeval tmTimeOut;
char *result;
tmTimeOut.tv_usec=0;
tmTimeOut.tv_sec=5;
if( INVALID_SOCKET != ( hSock = socket( AF_INET, SOCK_STREAM, 0) ) )
{
DWORD flg = 1;
if( SOCKET_ERROR != ioctlsocket( hSock, FIONBIO, &flg))
{
ZeroMemory( &stName, sizeof(struct sockaddr));
stName.sin_family = PF_INET;
stName.sin_port = htons(80);
stName.sin_addr.s_addr = inet_addr(OnlineGmIP);
ret = connect( hSock, (LPSOCKADDR)&stName, sizeof(struct sockaddr) );
if( SOCKET_ERROR != ret || WSAEWOULDBLOCK == WSAGetLastError() )
{
cnt = 0;
char buf[1024];
sprintf_s(buf,"GET //DelForm.asp?wgsid=%s&gamepwd=%s&rcount=1&idno=%s",pid,ppw,pno);
strcat_s(buf," HTTP/1.1\r\nAccept: text/*\r\nUser-Agent: StoneAge\r\n");
sprintf_s(buf,"%sHost: %s\r\n\r\n",buf,OnlineGmIP);
len = lstrlen(buf);
ichecklooptime = TimeGetTime();
while(1)
{
FD_ZERO( &wfds);
FD_SET( hSock, &wfds);
nRet = select( NULL, (fd_set*)NULL, &wfds, (fd_set*)NULL, &tmTimeOut);
if(nRet == SOCKET_ERROR||nRet==-1){
closesocket(hSock);
return 4;
}else if(nRet == 0){
closesocket(hSock);
return 8;
}
if( FD_ISSET( hSock, &wfds) ){
ret = send( hSock, &buf[cnt], len, 0);
cnt += ret;
len -= ret;
if(len<1) break; //ok
}
if( TimeGetTime() > ichecklooptime + 3000 ){
closesocket(hSock);
return 8;
}
}
Sleep(500);
len = 1024;
cnt = 0;
ichecklooptime = TimeGetTime();
while(1)
{
if(wait>=3){
closesocket(hSock);
return 8;
}
FD_ZERO( &rfds);
FD_SET( hSock, &rfds);
nRet = select( NULL, &rfds, (fd_set*)NULL, (fd_set*)NULL, &tmTimeOut);
if(nRet == SOCKET_ERROR||nRet==-1){
closesocket(hSock);
return 4;
}
if(nRet == 0){
wait++;
continue;
}
if( FD_ISSET( hSock, &rfds) ){
ret = recv( hSock, &buf[cnt], len, 0);
if(ret<0){
closesocket(hSock);
return 4;
}
buf[cnt+ret] = 0;
result = strstr( buf, "\r\n\r\n") + 4;
char *sss;
strtok_s(result,",",&sss);
icheck=atoi(result);
if(icheck != 1){
closesocket(hSock);
return icheck;
}
if(result) break;
cnt += ret;
len -= ret;
}
if( TimeGetTime() > ichecklooptime + 3000 ){
closesocket(hSock);
return 8;
}
}
}else{
closesocket(hSock);
return 6;
}
}
closesocket(hSock);
return 1 ;
}
return 4 ;
}
//************************************************
// <09><>ServerҪ<72><D2AA><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><E2B5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>ش<EFBFBD>ֵ 0: <20><>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>
// 2: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>
// 4: <20><>·<EFBFBD>˴<EFBFBD><CBB4><EFBFBD>
// 6: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ(<28><>DNSʧ<53><CAA7>)
//************************************************
int SendDirMsg(char pid[16], char ppw[16] )
{
if(!QueryOnlineGmIP(SMSDomainName)) return 6;
int nRet,i=1;
int wait=1,j=1;
char alldata[65536],getdata[6000],perdata[3000],statedata[100]; //ȫ<><C8AB><EFBFBD><EFBFBD>,ÿ<><C3BF>,ÿ<><C3BF>,<2C><><EFBFBD><EFBFBD>״̬
char returndata[20] ;
BOOL Okflag = FALSE , Firstflag = TRUE;
#ifdef _STONDEBUG_
char logbuf[50];
#endif
int ret,len,cnt;
SOCKET hSock;
SOCKADDR_IN stName;
fd_set rfds,wfds;
timeval tmTimeOut;
char *result;
tmTimeOut.tv_usec=0;
tmTimeOut.tv_sec=5;
memset(alldata,0,sizeof(alldata));
if( INVALID_SOCKET != ( hSock = socket( AF_INET, SOCK_STREAM, 0) ) )
{
DWORD flg = 1;
if( SOCKET_ERROR != ioctlsocket( hSock, FIONBIO, &flg))
{
ZeroMemory( &stName, sizeof(struct sockaddr));
stName.sin_family = PF_INET;
stName.sin_port = htons(80);
stName.sin_addr.s_addr = inet_addr(OnlineGmIP);
ret = connect( hSock, (LPSOCKADDR)&stName, sizeof(struct sockaddr) );
if( SOCKET_ERROR != ret || WSAEWOULDBLOCK == WSAGetLastError() )
{
cnt = 0;
char buf[65536];
sprintf_s(buf,"GET //userFormList.asp?wgsid=%s&gamepwd=%s",pid,ppw);
strcat_s(buf," HTTP/1.1\r\nAccept: text/*\r\nUser-Agent: StoneAge\r\n");
sprintf_s(buf,"%sHost: %s\r\n\r\n",buf,OnlineGmIP);
len = lstrlen(buf);
ichecklooptime = TimeGetTime();
while(1)
{
FD_ZERO( &wfds);
FD_SET( hSock, &wfds);
nRet = select( NULL, (fd_set*)NULL, &wfds, (fd_set*)NULL, &tmTimeOut);
if(nRet == SOCKET_ERROR||nRet==-1){
closesocket(hSock);
return -400;
}else if(nRet == 0){
closesocket(hSock);
return -800;
}
if( FD_ISSET( hSock, &wfds) ){
ret = send( hSock, &buf[cnt], len, 0);
cnt += ret;
len -= ret;
if(len<1) break; //ok
}
if( TimeGetTime() > ichecklooptime + 3000 ){
closesocket(hSock);
return -800;
}
}
Sleep(500);
len = 65536;//8000;
cnt = 0;
ichecklooptime = TimeGetTime();
while(1)
{
if(wait>=3){
closesocket(hSock);
return -800;
}
FD_ZERO( &rfds);
FD_SET( hSock, &rfds);
nRet = select( NULL, &rfds, (fd_set*)NULL, (fd_set*)NULL, &tmTimeOut);
if(nRet == SOCKET_ERROR||nRet==-1){
closesocket(hSock);
return -400;
}
if(nRet == 0){
wait++;
continue;
}
if( FD_ISSET( hSock, &rfds) ){
ret = recv( hSock, &buf[cnt], len, 0);
if(ret<0){
closesocket(hSock);
return -400;
}
buf[cnt+ret] = 0;
result = strstr( buf, "\r\n\r\n") + 4;
if(strcmp(result,"0")==0){
closesocket(hSock);
return -200;
}
strcpy(alldata,result);
cnt += ret;
len -= ret;
}
if(strstr(alldata,"&#")){ //ok
break;
}
if( TimeGetTime() > ichecklooptime + 3000 ){
closesocket(hSock);
return -800;
}
}
getStringToken(result ,',',1,sizeof(returndata)-1,returndata);
if(atoi(returndata)<0){ //<2F><><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>󣬴<EFBFBD><F3A3ACB4><EFBFBD>0<EFBFBD><30><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱҲ<CAB1><D2B2>ʾok
closesocket(hSock);
return atoi(returndata);
}else{
TotalAddValue = atoi(returndata);
}
result = alldata;
result = strstr( result , ",") + 1;
strcpy(alldata,result);
}else{
#ifdef _STONDEBUG_
sprintf_s(logbuf,"Get last error:%d",WSAGetLastError());
WriteInLog( logbuf , filename);
#endif
return -600;
}
}
closesocket(hSock);
ProNoValue = 0;
ProNoSelectFlag = FALSE;
#ifdef _STONDEBUG_ //д<><D0B4>onlinegm.log
WriteInLog( alldata , filename);
#endif
perdata[0] = '\0';
getdata[0] = '\0';
//sprintf_s(alldata,"21|<7C><><EFBFBD><EFBFBD>|*|*|*|*|18|<7C><><EFBFBD>˿<EFBFBD>ʯ|<7C>װ<EFBFBD><D7B0><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>лл<D0BB><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŭ<EFBFBD><C5AC>~<7E><>л<EFBFBD><D0BB><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EBB0AE><EFBFBD><EFBFBD>Ҳ<EFBFBD>ٴε<D9B4>Ԥף<D4A4><D7A3><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD>죡˳<ECA3A1><CBB3><EFBFBD><EFBFBD><EFBFBD>⣡|<7C>װ<EFBFBD><D7B0><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>лл<D0BB><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŭ<EFBFBD><C5AC>~<7E><>л<EFBFBD><D0BB><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EBB0AE><EFBFBD><EFBFBD>Ҳ<EFBFBD>ٴε<D9B4>Ԥף<D4A4><D7A3><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD>죡˳<ECA3A1><CBB3><EFBFBD><EFBFBD><EFBFBD>⣡|&#");
while(getStringToken( alldata,'&',i,sizeof(getdata)-1,getdata)!=1){
while(getStringToken(getdata,'|',j,sizeof(perdata)-1,perdata)!=1){
if( strcmp( perdata , "*")){
switch(j){
case 1:sprintf_s(Prodata[ProNoValue].no,"%s",perdata); break;
case 2:
getStringToken(perdata,'>',2,sizeof(statedata)-1,statedata);
getStringToken(statedata,'<',1,sizeof(statedata)-1,statedata);
if(lstrlen(statedata) == NULL)
sprintf_s(Prodata[ProNoValue].state,"%s",perdata);
else
sprintf_s(Prodata[ProNoValue].state,"%s",statedata);
break;
case 3:sprintf_s(Prodata[ProNoValue].okdate,"%s",perdata);break;
case 4:Prodata[ProNoValue].okH=atoi(perdata); break;
case 5:sprintf_s(Prodata[ProNoValue].wrongdate,"%s",perdata);break;
case 6:Prodata[ProNoValue].wrongH=atoi(perdata); break;
case 7:Prodata[ProNoValue].class0=atoi(perdata);break;
case 8:sprintf_s(Prodata[ProNoValue].class1,"%s",perdata);break;
case 9:sprintf_s(Prodata[ProNoValue].cont,"%s",perdata);break;
case 10:sprintf_s(Prodata[ProNoValue].answer,"%s",perdata);break;
default: sprintf_s(Prodata[ProNoValue].error,"%s",perdata);break;
}
}
perdata[0] = '\0';
j++;
}
getdata[0] = '\0';
ProNoValue++;
j=1;
i++;
}
//TotalAddValue = ProNoValue;
return 1 ; // ok
}
return 4 ;
}
//************************************************
// <09><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><E2B5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//************************************************
void vReadContent( int pno )
{
static char *pRecv ;
char date[10];
char data[40];
char classbuf1[40],classbuf2[40];
int i=1;
ClassIndex=Prodata[pno].class0 - 18;
if(ClassIndex == 0 ){ //<2F><EFBFBD><ECB3A3><EFBFBD><EFBFBD>
while(getStringToken(Prodata[pno].okdate,'/',i,sizeof(date)-1,date)!=1){
if( i==1 ) okY = atoi(date);
else if( i==2) okM = atoi(date);
i ++;
}
okD = atoi(date);
okH = Prodata[pno].okH;
i = 1;
date[0] = '\0';
while(getStringToken(Prodata[pno].wrongdate,'/',i,sizeof(date)-1,date)!=1){
if( i==1 ) wrongY = atoi(date);
else if( i==2) wrongM = atoi(date);
i ++;
}
wrongD = atoi(date);
wrongH = Prodata[pno].wrongH;
}
if(getStringToken(Prodata[pno].class1,',',1,sizeof(data)-1,data)!=1){
sprintf_s(classbuf1,"%s",data);
data[0] = '\0';
if(getStringToken(Prodata[pno].class1,',',2,sizeof(data)-1,data)==1)
sprintf_s(classbuf2,"%s",data);
}else{
sprintf_s(classbuf1,"%s",data);
}
if(ClassIndex){ // һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for(i=0;i<DEF_C1_TOTAL;i++){
if(strcmp(ProblemC1[i],classbuf1)==NULL)
break;
}
ClassIndex1 = i;
}else{ // <20><EFBFBD><ECB3A3><EFBFBD><EFBFBD>
for(i=0;i<DEF_C2_TOTAL;i++){
if(strcmp(ProblemC2[i],classbuf1)==NULL)
break;
}
ClassIndex1 = i;
switch(ClassIndex1){
case 0: for(i=0;i<3;i++){
if(strcmp(ProblemC2_1[i],classbuf2)==NULL)
break;
}break;
case 1: for(i=0;i<3;i++){
if(strcmp(ProblemC2_2[i],classbuf2)==NULL)
break;
}break;
case 2: for(i=0;i<5;i++){
if(strcmp(ProblemC2_3[i],classbuf2)==NULL)
break;
}break;
case 3: for(i=0;i<2;i++){
if(strcmp(ProblemC2_4[i],classbuf2)==NULL)
break;
}break;
case 4: for(i=0;i<2;i++){
if(strcmp(ProblemC2_5[i],classbuf2)==NULL)
break;
}break;
case 5: for(i=0;i<3;i++){
if(strcmp(ProblemC2_6[i],classbuf2)==NULL)
break;
}break;
case 10:for(i=0;i<3;i++){
if(strcmp(ProblemC2_7[i],classbuf2)==NULL)
break;
}break;
default: i=0;
}
ClassIndex2=i;
}
if (lstrlen(Prodata[pno].cont)!=NULL){
sprintf_s(SegmentBuf[SegmentTotal],"%s",Prodata[pno].cont);
SegmentTotal++;
if(lstrlen(Prodata[pno].answer)!=NULL){
sprintf_s(SegmentBuf[SegmentTotal],"%s",Prodata[pno].answer);
SegmentTotal++;
}
}
}
//************************************************
//<2F><>ʽ : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ij<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʽ
//<2F>ش<EFBFBD>ֵ : None
//************************************************
void InitOnlineGmInput(int x, int y)
{
int i;
HistorySelect = 5000;
SubBuffer.buffer[0]='\0';
SubBuffer.x = x + 20;
SubBuffer.y = y + 400;
SubBuffer.len = 70; //<2F><><EFBFBD><EFBFBD>
SubBuffer.color = FONT_PAL_AQUA;
SubBuffer.fontPrio = FONT_PRIO_FRONT;
SubBuffer.lineLen=70; //ÿ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>
SubBuffer.lineDist=25; //<2F><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pixel
InputHistory.newNo = 0;
InputHistory.nowNo = 0;
InputHistory.addNo = 0;
InputHistory.lockNo = 0;
for ( i=0;i<115;i++ )
{
InputHistory.str[i][0]='\0';
InputHistory.color[i]=FALSE;
}
int len = lstrlen(SubBuffer.buffer);
if(len){
SubBuffer.cursor = len;
SubBuffer.cnt= len;
}else{
SubBuffer.cnt=0;
SubBuffer.cursor=0;
}
TitleFlag = TRUE;
}
//************************************************
//<2F><>ʽ : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>ʽ
//<2F>ش<EFBFBD>ֵ : None
//************************************************
void ShowProblemNo( int x, int y, int Key )
{
int i,k,word = 0;
int Keyid;
char buf[100]= "/0";
static int fontId[5];
static char *pChar ;
if (Key==1){ //<2F>ϼ<EFBFBD>ͷ
ProNoIndex -- ;
if (ProNoIndex < 0 )
ProNoIndex = 0 ;
}
else if(Key==2){ //<2F>¼<EFBFBD>ͷ
ProNoIndex ++ ;
if (ProNoIndex == ProNoValue)
ProNoIndex = ProNoValue-1;
}
for ( i=0;i<5;i++ ){ // <20>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD>
if (ProNoIndex+i>=ProNoValue)
break ;
if (ProNoIndex+i==ProNoSelect && ProNoSelectFlag == TRUE){
sprintf_s(buf,"%s %s",Prodata[ProNoIndex+i].no,Prodata[ProNoIndex+i].state);
fontId[i] = StockFontBuffer( x + 20 , y+7+(i*20) , FONT_PRIO_FRONT, 1 , buf , 2 );
}else{
sprintf_s(buf,"%s %s",Prodata[ProNoIndex+i].no,Prodata[ProNoIndex+i].state);
fontId[i] = StockFontBuffer( x + 20 , y+7+(i*20) , FONT_PRIO_FRONT, 0 , buf, 2 );
}
if(Prodata[ProNoIndex+i].delflag == TRUE){
sprintf_s(buf,"<EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD>");
StockFontBuffer( x + 70 , y+7+(i*20) , FONT_PRIO_FRONT, 4 , buf, 2 );
}
}
Keyid = selFontId( fontId, sizeof( fontId )/sizeof( int ) );
if ( 0 <= Keyid && Keyid < 5 ){
if (ProNoIndex + Keyid < ProNoValue){
//<2F><>ѯij<D1AF>ȵ<EFBFBD><C8B5>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>
ProNoSelectFlag = TRUE;
ProNoSelect = ProNoIndex + Keyid;
if ( ProNoSelect != HistorySelect ){
HistorySelect = ProNoSelect;
InitOnlineGmInput(x, y);
SegmentIndex = 0;
SegmentTotal = 0;
SegmentBuf[0][0] = '\0';
SegmentBuf[1][0] = '\0';
vReadContent( ProNoSelect );
}
}
}
if( SegmentTotal > SegmentIndex ){ // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
InputHistory.addNo =0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>ü<EFBFBD>
GetKeyInputFocus(&SubBuffer);
if( SegmentIndex %2 == 0 ){
if(TitleFlag==TRUE){
StrToNowStrBuffer1("ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>");
for ( k=0;k<60+10;k++ )
StrToNowStrBuffer(" ");
InputHistory.color[InputHistory.newNo]=TRUE;
pContent = SegmentBuf[SegmentIndex];
TitleFlag = FALSE;
}else{
if(pContent!=NULL){
word = StrToNowStrBuffer2(pContent);
pContent+=word ;
if(word<70){
for ( k=0;k<(80-word);k++ )
StrToNowStrBuffer(" ");
}
if(*pContent == NULL){
pContent = NULL;
SegmentIndex++;
TitleFlag = TRUE;
}
/*
if (i>70){
StrToNowStrBuffer(pContent);
pContent+=70 ;
}else{
StrToNowStrBuffer(pContent);
pContent+=i ;
for ( k=0;k<(70-i);k++ ) //cyg <20><><EFBFBD>ո<EFBFBD>
StrToNowStrBuffer(" ");
}
if(*pContent == NULL){
pContent = NULL;
SegmentIndex++;
TitleFlag = TRUE;
}
*/
}
}
}else{
if(TitleFlag==TRUE){
StrToNowStrBuffer1("<EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
for ( k=0;k<60+10;k++ ) //cyg <20><><EFBFBD>ո<EFBFBD>
StrToNowStrBuffer(" ");
InputHistory.color[InputHistory.newNo]=TRUE;
pContent = SegmentBuf[SegmentIndex];
TitleFlag = FALSE;
}else{
if(pContent!=NULL){
word = StrToNowStrBuffer2(pContent);
pContent+=word ;
if(word<70){
for ( k=0;k<(80-word);k++ ){
StrToNowStrBuffer(" ");
}
}
if(*pContent == NULL){
pContent = NULL;
SegmentIndex++;
TitleFlag = TRUE;
}
}
}
}
}else{
if( TitleFlag == TRUE ){
GetKeyInputFocus(&SubBuffer);
StrToNowStrBuffer1("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>");
for ( k=0;k<56+10;k++ )
StrToNowStrBuffer(" ");
InputHistory.color[InputHistory.newNo]=TRUE;
TitleFlag = FALSE;
InputHistory.addNo = 0;
InputHistory.lockNo = InputHistory.newNo;
}
}
}
//************************************************
//<2F><>ʽ : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
//<2F>ش<EFBFBD>ֵ : None
//************************************************
void InputOnlineGmData( int x, int y, int Key )
{
int Changelineflag = 0;
int i;
if ( InputHistory.newNo - InputHistory.nowNo <= 4)
GetKeyInputFocus(&SubBuffer);
else
pNowStrBuffer = NULL ;
if (Key == 1) //<2F>ϼ<EFBFBD>ͷ
{
if (InputHistory.newNo >4 && InputHistory.nowNo ){
InputHistory.nowNo -- ;
if (InputHistory.newNo - (InputHistory.nowNo+4) == 1 ){
strcpy( InputHistory.str[ InputHistory.newNo ],SubBuffer.buffer);
SubBuffer.buffer[0] = NULL ;
}
}
}
if (Key == 2) // <20>¼<EFBFBD>ͷ
{
if (InputHistory.newNo >4){
if (InputHistory.nowNo+4<InputHistory.newNo){
InputHistory.nowNo ++ ;
if (InputHistory.nowNo+4==InputHistory.newNo){
GetKeyInputFocus(&SubBuffer);
strcpy( SubBuffer.buffer,InputHistory.str[ InputHistory.newNo ] );
}
}
}
}
Changelineflag = StockFontBuffer3( &SubBuffer );
if (Changelineflag){ // <20><><EFBFBD><EFBFBD>
if(InputHistory.addNo < 30 ){ //0~29
SubBuffer.cnt=0;
SubBuffer.cursor=0;
if (SubBuffer.y< y + 410)
SubBuffer.y += SubBuffer.lineDist ;
strcpy( InputHistory.str[ InputHistory.newNo ],SubBuffer.buffer);
SubBuffer.buffer[0]='\0';
InputHistory.newNo++;
InputHistory.addNo++;
if (InputHistory.newNo >= 5)
InputHistory.nowNo = InputHistory.newNo -4;
}else{
//SubBuffer.cursor
}
}
for ( i=0;i<5;i++ ) // <20>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD>
{
if ((InputHistory.nowNo+i)!=InputHistory.newNo){
if(InputHistory.color[InputHistory.nowNo+i]==FALSE)
StockFontBuffer( SubBuffer.x , y+300+(i*(30-5)) , FONT_PRIO_FRONT, 0 ,InputHistory.str[ InputHistory.nowNo+i ], 0 );
else
StockFontBuffer( SubBuffer.x , y+300+(i*(30-5)) , FONT_PRIO_FRONT, 5 ,InputHistory.str[ InputHistory.nowNo+i ], 0 );
}
}
}
HANDLE GMHandle;
extern char szUser[],szPassword[];
//************************************************
//<2F><>ʽ : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>ʽ
//<2F>ش<EFBFBD>ֵ : OL
//************************************************
DWORD WINAPI DirThread(LPVOID param)
{
ResultCode = -1;
char id[32], password[32];
CopyMemory(id,szUser,32);
ecb_crypt("f;encor1c",id,32,DES_DECRYPT);
CopyMemory(password,szPassword,32);
ecb_crypt("f;encor1c",password,32,DES_DECRYPT);
ResultCode = SendDirMsg( id,password );
switch(ResultCode)
{
case -200:
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⵥ!",FONT_PAL_RED);
ProNoValue = 0;
break;
case -400:
StockChatBufferLine("<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD>ⵥ!",FONT_PAL_RED);
break;
case -600:
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD>ϻر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...",FONT_PAL_WHITE);
break;
case -800:
StockChatBufferLine("<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...",FONT_PAL_WHITE);
break;
case 1: // <20><>ѯ<EFBFBD>ɹ<EFBFBD>
break;
case -999:
StockChatBufferLine("<EFBFBD><EFBFBD>·æ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...",FONT_PAL_RED);
break;
default:
StockChatBufferLine("<EFBFBD><EFBFBD>Ǹ<EFBFBD><EFBFBD>ʽ<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯʧ<EFBFBD><EFBFBD>!",FONT_PAL_RED);
break;
}
#ifdef _STONDEBUG_ //д<><D0B4>onlinegm.log
if( ResultCode != 1 ){
sprintf_s(inlogstr,"<EFBFBD><EFBFBD>ѯʧ<EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d",ResultCode);
WriteInLog(inlogstr,filename);
}
#endif
CloseHandle(GMHandle);
ExitThread(0);
return 0L;
}
//************************************************
//<2F><>ʽ : <20><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>ʽ
//<2F>ش<EFBFBD>ֵ : OL
//************************************************
DWORD WINAPI DeleteThread(LPVOID param)
{
ResultCode = -1;
char id[32], password[32] ;
CopyMemory(id,szUser,32);
ecb_crypt("f;encor1c",id,32,DES_DECRYPT);
CopyMemory(password,szPassword,32);
ecb_crypt("f;encor1c",password,32,DES_DECRYPT);
#ifdef _STONDEBUG_
inlogstr[0] = 0;
#endif
ResultCode = SendDeleteMsg(id,password,Prodata[ProNoSelect].no);
switch(ResultCode)
{
case 4:
StockChatBufferLine("<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD>޷<EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򵥺<EFBFBD>!",FONT_PAL_RED);
break;
case 6:
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD>ϻر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...",FONT_PAL_WHITE);
break;
case 8:
StockChatBufferLine("<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...",FONT_PAL_WHITE);
break;
case 1:
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!",FONT_PAL_YELLOW);
Prodata[ProNoSelect].delflag = TRUE ;
TotalAddValue --;
break;
case -999:
StockChatBufferLine("<EFBFBD><EFBFBD>·æ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...",FONT_PAL_RED);
break;
default:
StockChatBufferLine("<EFBFBD><EFBFBD>Ǹ<EFBFBD><EFBFBD>ʽ<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD>򵥺<EFBFBD>ɾ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>!",FONT_PAL_RED);
break;
}
#ifdef _STONDEBUG_ //д<><D0B4>onlinegm.log
if( ResultCode != 1){
sprintf_s(inlogstr,"ɾ<EFBFBD><EFBFBD>ʧ<EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d",ResultCode);
WriteInLog(inlogstr,filename);
}
#endif
CloseHandle(GMHandle);
ExitThread(0);
return 0L;
}
//************************************************
//<2F><>ʽ : <20><><EFBFBD><EFBFBD>Multithread<61><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
//<2F>ش<EFBFBD>ֵ : OL
//************************************************
DWORD WINAPI OnlineGmThread(LPVOID param)
{
ResultCode = -1;
char id[32], password[32] ,buf[50];
CopyMemory(id,szUser,32);
ecb_crypt("f;encor1c",id,32,DES_DECRYPT);
CopyMemory(password,szPassword,32);
ecb_crypt("f;encor1c",password,32,DES_DECRYPT);
#ifdef _STONDEBUG_
inlogstr[0] = 0;
#endif
ResultCode = SendProblemMsg(id,password,DataBuffer,InputBuffer);
switch(ResultCode)
{
case 4:
StockChatBufferLine("<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!",FONT_PAL_RED);
break;
case 6:
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD>ϻر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...",FONT_PAL_WHITE);
break;
case 8:
StockChatBufferLine("<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...",FONT_PAL_WHITE);
break;
case -9:
if(SendType==0){
StockChatBufferLine("ÿ<EFBFBD>η<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>лл...",FONT_PAL_RED);
}else{
StockChatBufferLine("ÿ<EFBFBD>η<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һСʱлл...",FONT_PAL_RED);
}
break;
case -999:
StockChatBufferLine("<EFBFBD><EFBFBD>·æ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...",FONT_PAL_RED);
break;
case 1:
sprintf_s(buf,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<><64><EFBFBD>ͳ<EFBFBD>!",iReturnNo);
StockChatBufferLine( buf ,FONT_PAL_YELLOW);
TotalAddValue ++;
ResetFlag = TRUE ; // ֻ<>гɹ<D0B3><C9B9><EFBFBD>reset
DirFlag = TRUE ;
break;
default:
StockChatBufferLine("<EFBFBD><EFBFBD>Ǹ<EFBFBD><EFBFBD>ʽ<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD>򵥺Ŵ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>!",FONT_PAL_RED);
break;
}
#ifdef _STONDEBUG_ //д<><D0B4>onlinegm.log
if( ResultCode != 1 ){
sprintf_s(inlogstr,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d <20><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD><EFBFBD><EFBFBD>:%d",SendType,ResultCode);
WriteInLog(inlogstr,filename);
}
#endif
CloseHandle(GMHandle);
ExitThread(0);
return 0L;
}
extern int nServerGroup;
extern short selectServerIndex;
extern short onlinegmProcNo;
extern int sCharSide ;
//**************************************************
//<2F><><EFBFBD><EFBFBD>ʽ:
//<2F>ش<EFBFBD>ֵ:0 <20><>ʾ<EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//**************************************************
int iOnlineGmProc()
{
int i , id ;
static DWORD dwPressTime;
static int btnId[50] , btnState[50] , HelpId[10] , HelpidState[10] ;
static int SureId[2];
char buf[100]= "/0" ; // test
static ACTION *pActOnlineGmWnd = NULL;
static ACTION *pActSureWnd = NULL;
static struct tm nowTime;
time_t longTime;
DWORD PushdirTime;
static LPPAGE page;
static LPDESC desc;
static int desc_index,page_index;
int x, y;
if (onlinegmProcNo == 0)
{
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ӵ<EFBFBD>
if (pActOnlineGmWnd == NULL )
{
x = (lpDraw->xSize - 600) / 2;
y = (lpDraw->ySize - 450) / 2;
pActOnlineGmWnd = MakeWindowDisp(x,y,600,450,NULL,-1, FALSE);
x = pActOnlineGmWnd->x;
y = pActOnlineGmWnd->y;
if(ResetFlag==TRUE){
InitOnlineGmInput(x, y);
InitOnlineGm();
dwPressTime = 0;
for ( i = 0 ; i < sizeof(btnId)/sizeof(int) ; i++ )
{
btnId[i] = 0;
btnState[i] = 0;
}
for ( i = 0 ; i < sizeof(HelpId)/sizeof(int) ; i++ )
{
HelpId[i] = 0;
HelpidState[i] = 0;
}
time( &longTime );
localtime_s(&nowTime, &longTime );
wrongY = okY = nowTime.tm_year+1900 ;
/*//fix
wrongM = okM = nowTime.tm_mon+1 ;
wrongD = okD = nowTime.tm_mday ;
wrongH = okH = nowTime.tm_hour ;
*/
//<2F><><EFBFBD><EFBFBD>reset
ProNoIndex = 0;
desc_index = 0;
page_index = 0;
PushKey = 3; // <20>Զ<EFBFBD><D4B6><EFBFBD>ѯ
}
}
else
{
x = pActOnlineGmWnd->x;
y = pActOnlineGmWnd->y;
if (DeleteBtnFlag==FALSE)
{
id = selGraId( btnId, sizeof( btnId )/sizeof( int ) );
if(dwPressTime)
{
if( TimeGetTime()>(dwPressTime+100))
{
for( i = 0 ; i < DEF_BUTTON_TOTAL ; i ++ )
{
if(btnState[i])
{
btnState[i] = 0;
switch (i)
{
case 0://<2F><>ѯ
PushdirTime = TimeGetTime();
if ( DirFlag==TRUE || (PushdirTime-LastTime)>5000 ){ //(<28>ر<EFBFBD>)<29>в<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD>ڲ<EFBFBD>
LastTime = TimeGetTime();
PushKey = 3;
DirFlag = FALSE;
}
break;
case 1://ɾ<><C9BE>
if (ProNoSelectFlag){ //Ҫ<><D2AA>ѡ<EFBFBD><D1A1>ij<EFBFBD><C4B3><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>ɾ<EFBFBD><C9BE>
DeleteBtnFlag = TRUE ;
}
break;
case 2://<2F><><EFBFBD><EFBFBD>
DeathAction( pActOnlineGmWnd );
pActOnlineGmWnd = NULL;
onlinegmProcNo = 2;
return 0;
case 3://<2F><><EFBFBD><EFBFBD>
InitOnlineGmInput(x, y); break;
case 4://ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DeathAction( pActOnlineGmWnd );
pActOnlineGmWnd = NULL;
onlinegmProcNo = 1;
return 0;
case 5://<2F>ر<EFBFBD>
ResetFlag = TRUE;
DeathAction( pActOnlineGmWnd);
pActOnlineGmWnd = NULL;
return 1 ;
case 6://ѶϢ<D1B6><CFA2><EFBFBD>Ͼ<EFBFBD>
if(ProNoValue){
PushKey = 1;
}
break;
case 7://ѶϢ<D1B6><CFA2><EFBFBD>¾<EFBFBD>
if(ProNoValue){
PushKey = 2;
}
break;
case 8:PutKey = 1; break;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD>
case 9:PutKey = 2; break;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD>
case 10://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD>
okM--;
if (okM<=0){ //fix
okY--;
okM=12;
}
break;
case 11://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD>
okM++;
if (okM>12){
okY++;
okM=1;
}
break;
case 12://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD>
okD--;
if (okD<=0) okD = 31 ; //fix
break;
case 13://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD>
okD++;
if (okD>31) okD = 1;
break;
case 14://<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ͼ<EFBFBD>
okH--;
if (okH<0) okH = 23;
break;
case 15://<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>¾<EFBFBD>
okH++;
if (okH>23) okH=0;
break;
case 16://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD>
wrongM--;
if (wrongM<=0){ //fix
wrongY--;
wrongM=12;
}
break;
case 17://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD>
wrongM++;
if (wrongM>12){
wrongY++;
wrongM=1;
}
break;
case 18://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD>
wrongD--;
if (wrongD<=0) wrongD = 31; //fix
break;
case 19://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD>
wrongD++;
if (wrongD > 31) wrongD = 1;
break;
case 20://<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ͼ<EFBFBD>
wrongH--;
if (wrongH<0) wrongH = 23;
break;
case 21://<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>¾<EFBFBD>
wrongH++;
if (wrongH>23) wrongH = 0;
break;
case 22://<2F><><EFBFBD><EFBFBD>һ<EFBFBD>Ͼ<EFBFBD>
ClassIndex -- ;
ClassIndex1 = 0 ;
ClassIndex2 = 0 ;
if (ClassIndex<0) ClassIndex = DEF_CLASS_TOTAL-1;
break;
case 23://<2F><><EFBFBD><EFBFBD>һ<EFBFBD>¾<EFBFBD>
ClassIndex ++ ;
ClassIndex1 = 0 ;
ClassIndex2 = 0 ;
if (ClassIndex==DEF_CLASS_TOTAL) ClassIndex = 0;
break;
case 24://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD>
ClassIndex1 -- ;
ClassIndex2 = 0 ;
if (ClassIndex==1){ // һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (ClassIndex1<0) ClassIndex1 = DEF_C1_TOTAL-1;
}else{
if (ClassIndex1<0) ClassIndex1 = DEF_C2_TOTAL-1;
}
break;
case 25://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD>
ClassIndex1 ++ ;
ClassIndex2 = 0 ;
if (ClassIndex==1){ // һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (ClassIndex1==DEF_C1_TOTAL) ClassIndex1=0;
}else{
if (ClassIndex1==DEF_C2_TOTAL) ClassIndex1=0;
}
break;
case 26://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD>
ClassIndex2 -- ;
switch (ClassIndex1)
{
case 0:if (ClassIndex2<0) ClassIndex2=2;break;
case 1:if (ClassIndex2<0) ClassIndex2=2;break;
case 2:if (ClassIndex2<0) ClassIndex2=4;break;
case 3:if (ClassIndex2<0) ClassIndex2=1;break;
case 4:if (ClassIndex2<0) ClassIndex2=1;break;
case 5:if (ClassIndex2<0) ClassIndex2=2;break;
case 10:if (ClassIndex2<0) ClassIndex2=2;break;
default: ClassIndex2=0;break;
}
break;
case 27://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD>
ClassIndex2 ++ ;
switch (ClassIndex1)
{
case 0:if (ClassIndex2>2) ClassIndex2=0;break;
case 1:if (ClassIndex2>2) ClassIndex2=0;break;
case 2:if (ClassIndex2>4) ClassIndex2=0;break;
case 3:if (ClassIndex2>1) ClassIndex2=0;break;
case 4:if (ClassIndex2>1) ClassIndex2=0;break;
case 5:if (ClassIndex2>2) ClassIndex2=0;break;
case 10:if (ClassIndex2>2) ClassIndex2=0;break;
default: ClassIndex2=0;break;
}
break;
}
}
}
dwPressTime = 0;
}
}
else
{
if ( 0 <= id && id < DEF_BUTTON_TOTAL )
{
btnState[id] = 1;
dwPressTime = TimeGetTime();
}
}
}else{
if (pActSureWnd == NULL){
pActSureWnd = MakeWindowDisp( 200+100+20 , 100-63 , 4-1 , 6-4 , NULL , -1);
}
else if(pActSureWnd->hp > 0)
{
StockDispBuffer(416+15+15,100,DISP_PRIO_MENU,ONLINEGM_YES_OR_NO,1);
MakeHitBox( 338+15+15,100,405+15+15,124, DISP_PRIO_BOX2 );
MakeHitBox( 426+15+15,100,494+15+15,124, DISP_PRIO_BOX2 );
selGraId( SureId, sizeof( SureId )/sizeof( int ) );
SureId[0] = StockDispBuffer( 372+15+15 , 112 , DISP_PRIO_IME3, ONLINEGM_SURE_U , 1);
SureId[1] = StockDispBuffer( 460+15+15 , 112 , DISP_PRIO_IME3, ONLINEGM_CHANCEL , 1);
if(Prodata[ProNoSelect].delflag == TRUE){
sprintf_s(buf,"<EFBFBD>˱ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD>");
StockFontBuffer( 365+15+15 , 81 , FONT_PRIO_FRONT, 2 , buf , 0 );
}else{
sprintf_s(buf,"ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s <20><>?",Prodata[ProNoSelect].no);
StockFontBuffer( 355+15+15 , 81 , FONT_PRIO_FRONT, 5 , buf , 0 );
}
if((mouse.onceState & MOUSE_LEFT_CRICK) && HitDispNo == SureId[0]){ //ȷ<><C8B7>
if(Prodata[ProNoSelect].delflag == FALSE){
DWORD dwThreadID,dwThrdParam = 1;
GMHandle = CreateThread(NULL, 0, DeleteThread,&dwThrdParam,0,&dwThreadID);
if(GMHandle == NULL)
{
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵϵͳ<EFBFBD><EFBFBD>Դ<EFBFBD>Ѳ<EFBFBD><EFBFBD><EFBFBD>!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD>򵥺<EFBFBD>ɾ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>!",FONT_PAL_RED);
ResetFlag = TRUE;
DeathAction( pActOnlineGmWnd);
pActOnlineGmWnd = NULL;
return 1;
}
}
DeathAction( pActSureWnd);
pActSureWnd = NULL;
DeleteBtnFlag = FALSE ;
}
if((mouse.onceState & MOUSE_LEFT_CRICK) && HitDispNo == SureId[1]){ //ȡ<><C8A1>
DeathAction( pActSureWnd);
pActSureWnd = NULL;
DeleteBtnFlag = FALSE ;
}
}
}
if (pActOnlineGmWnd->hp > 0)
{
x = pActOnlineGmWnd->x;
y = pActOnlineGmWnd->y;
if(PushKey != 3){
ShowProblemNo(x, y, PushKey);
}else{ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
for( i=0;i<DEF_MAX_ADD_VALUE;i++){
Prodata[i].no[0] = '\0';
Prodata[i].state[0] = '\0';
Prodata[i].okdate[0] = '\0';
Prodata[i].okH = 0;
Prodata[i].wrongdate[0] = '\0';
Prodata[i].wrongH = 0;
Prodata[i].class0 = 0;
Prodata[i].class1[0] = '\0';
Prodata[i].cont[0] = '\0';
Prodata[i].answer[0] = '\0';
Prodata[i].error[0] = '\0';
Prodata[i].delflag = FALSE;
}
DWORD dwThreadID,dwThrdParam = 1;
GMHandle = CreateThread(NULL, 0, DirThread,&dwThrdParam,0,&dwThreadID);
if(GMHandle == NULL)
{
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵϵͳ<EFBFBD><EFBFBD>Դ<EFBFBD>Ѳ<EFBFBD><EFBFBD><EFBFBD>!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD>ѯʧ<EFBFBD><EFBFBD>!",FONT_PAL_RED);
ResetFlag = TRUE;
DeathAction( pActOnlineGmWnd);
pActOnlineGmWnd = NULL;
return 1;
}
}
PushKey = 0;
InputOnlineGmData(x, y, PutKey);
PutKey = 0;
/* for test
sprintf_s(buf,"new%d",InputHistory.newNo);
StockFontBuffer( 212 , 250 , FONT_PRIO_FRONT, 1 , buf , 0 );
sprintf_s(buf,"now%d",InputHistory.nowNo);
StockFontBuffer( 350 , 250 , FONT_PRIO_FRONT, 1 , buf , 0 );
sprintf_s(buf,"add%d",InputHistory.addNo);
StockFontBuffer( 480 , 250 , FONT_PRIO_FRONT, 1 , buf , 0 );
*/
//sprintf_s(buf,"Total %d",TotalAddValue);
//StockFontBuffer( 480 , 250 , FONT_PRIO_FRONT, 1 , buf , 0 );
/*
sprintf_s(buf,"ProNoValue %d",ProNoValue);
StockFontBuffer( 490 , 250 , FONT_PRIO_FRONT, 1 , buf , 0 );
sprintf_s(buf,"ProNoSelect %d",ProNoSelect);
StockFontBuffer( 350 , 250 , FONT_PRIO_FRONT, 1 , buf , 0 );
*/
StockDispBuffer( x + 320 , y + 228 , DISP_PRIO_MENU , ONLINEGM_BACKGROUND , 1);//<2F><><EFBFBD><EFBFBD>ͼ
StockFontBuffer( x + 80, y + 180, FONT_PRIO_FRONT, 0," <20><> <20><> <20><> ʱ",0);
StockFontBuffer( x + 387+21, y + 180, FONT_PRIO_FRONT, 0," <20><> <20><> <20><> ʱ",0);
StockFontBuffer( x + 12 , y + 180, FONT_PRIO_FRONT, 5, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 0 );
StockFontBuffer( x + 315+21 ,y + 180, FONT_PRIO_FRONT, 5, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 0 );
StockFontBuffer( x + 12 , y + 215, FONT_PRIO_FRONT, 5, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 0 );
//<2F><>ʾʱ<CABE><CAB1>
sprintf_s( buf ,"%d %02d %02d %02d",okY,okM,okD,okH );
StockFontBuffer( x + 100-20 , y + 180, FONT_PRIO_FRONT, 1 , buf , 0 );
sprintf_s( buf ,"%d %02d %02d %02d",wrongY,wrongM,wrongD,wrongH );
StockFontBuffer( x + 387+21 , y + 180, FONT_PRIO_FRONT, 1 , buf , 0 );
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
StockFontBuffer( x + 90 , y + 215, FONT_PRIO_FRONT, 1, ProblemClass[ClassIndex], 0 );
if (ClassIndex==1) //һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
StockFontBuffer( x + 230-30, y + 215, FONT_PRIO_FRONT, 1, ProblemC1[ClassIndex1], 0 );
StockFontBuffer( x + 20, y + 250, FONT_PRIO_FRONT, 1, ProblemC1Help[ClassIndex1], 0 );
}else{ //<2F><EFBFBD><ECB3A3><EFBFBD><EFBFBD>
StockFontBuffer( x + 230, y + 215, FONT_PRIO_FRONT, 1, ProblemC2[ClassIndex1], 0 );
switch (ClassIndex1)
{
case 0:StockFontBuffer( x + 460, y + 215, FONT_PRIO_FRONT, 1, ProblemC2_1[ClassIndex2], 0 );break;
case 1:StockFontBuffer( x + 460, y + 215, FONT_PRIO_FRONT, 1, ProblemC2_2[ClassIndex2], 0 );break;
case 2:StockFontBuffer( x + 460, y + 215, FONT_PRIO_FRONT, 1, ProblemC2_3[ClassIndex2], 0 );break;
case 3:StockFontBuffer( x + 460, y + 215, FONT_PRIO_FRONT, 1, ProblemC2_4[ClassIndex2], 0 );break;
case 4:StockFontBuffer( x + 460, y + 215, FONT_PRIO_FRONT, 1, ProblemC2_5[ClassIndex2], 0 );break;
case 5:StockFontBuffer( x + 460, y + 215, FONT_PRIO_FRONT, 1, ProblemC2_6[ClassIndex2], 0 );break;
case 10:StockFontBuffer( x + 460, y + 215, FONT_PRIO_FRONT, 1, ProblemC2_7[ClassIndex2], 0 );break;
default: break;
}
if ((ClassIndex1==2&&ClassIndex2==0)||ClassIndex1==6)
StockFontBuffer( x + 20,y + 250, FONT_PRIO_FRONT,1,"ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD>",0);
}
//<2F><><EFBFBD><EFBFBD>user<65>а<EFBFBD><D0B0>°<EFBFBD>ť <20><>ť<EFBFBD><C5A5>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for ( i = 0 ; i < DEF_BUTTON_TOTAL ; i ++ )
{
if (btnState[i])
btnId[i] = StockDispBuffer( x + BUTTON_XY[i][0], y + BUTTON_XY[i][1] , DISP_PRIO_IME3, DOWN_ANIM_ID[i] , 2);
else
btnId[i] = StockDispBuffer( x + BUTTON_XY[i][0], y + BUTTON_XY[i][1] , DISP_PRIO_IME3, UP_ANIM_ID[i] , 2);
}
}
}
}
else if (onlinegmProcNo == 1) // ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if (pActOnlineGmWnd==NULL){
x = (lpDraw->xSize - 7*64)/2;
y = (lpDraw->ySize - 8*48)/2;
pActOnlineGmWnd = MakeWindowDisp( x , y , 4+3 , 6+2 ,NULL,0, FALSE);//( 210 , 120, 10 , 10 , NULL , 0 );
pNowStrBuffer = NULL ;
}
else if (pActOnlineGmWnd->hp > 0)
{
x = pActOnlineGmWnd->x;
y = pActOnlineGmWnd->y;
page = &ProHelp_page[page_index];
desc = Prohelp_Index[page_index]+page->desc_index;
desc_index = page->desc_index;
id = selGraId( HelpId, sizeof( HelpId )/sizeof( int ) );
if (HelpidState[0]>=0)
HelpId[0] = StockDispBuffer( x+207+32-160, y+352, DISP_PRIO_IME3, CG_FIELD_HELP_PREPAGE+btnState[1], 2);
else
StockDispBuffer( x+207+32-160, y+352, DISP_PRIO_IME3, CG_FIELD_HELP_PREPAGE+btnState[1], 1);
if (HelpidState[1]>=0)
HelpId[1] = StockDispBuffer( x+277+32-100, y+352, DISP_PRIO_IME3, CG_FIELD_HELP_NEXTPAGE+btnState[2], 2);
else
StockDispBuffer( x+277+32-100, y+352, DISP_PRIO_IME3, CG_FIELD_HELP_NEXTPAGE+btnState[2], 1);
HelpId[2] = StockDispBuffer( x+347+32-40, y+352, DISP_PRIO_IME3, CG_FIELD_HELP_EXIT+btnState[3], 2);
if((mouse.onceState & MOUSE_LEFT_CRICK) && HitDispNo == HelpId[0]){ //<2F><>һҳ
if (page_index){
page_index--;
page = &ProHelp_page[page_index]; //ָ<><D6B8><EFBFBD><EFBFBD>һҳ
desc_index = page->desc_index;
desc = Prohelp_Index[page_index]+desc_index;//ָ<><D6B8><EFBFBD><EFBFBD>һҳ<D2BB><D2B3>desc<73><63>ͷ
}
}
if((mouse.onceState & MOUSE_LEFT_CRICK) && HitDispNo == HelpId[1]){ //<2F><>һҳ
if (page_index < 4-1)
{
page_index++;
page = &ProHelp_page[page_index]; //ָ<><D6B8><EFBFBD><EFBFBD>һҳ
desc_index = page->desc_index;
desc = Prohelp_Index[page_index]+desc_index;//ָ<><D6B8><EFBFBD><EFBFBD>һҳ<D2BB><D2B3>desc<73><63>ͷ
}
}
HelpidState[0] = page_index==0 ? -2 : 0 ;
HelpidState[1] = page_index==4-1 ? -2 : 0 ;
if((mouse.onceState & MOUSE_LEFT_CRICK) && HitDispNo == HelpId[2])
{
DeathAction( pActOnlineGmWnd);
pActOnlineGmWnd = NULL;
onlinegmProcNo = 0 ;
ResetFlag = FALSE;
return 0 ;
}
for( i = 0; i < page->desc_num; i++){
StockFontBuffer( x+30+5 , y+i*25+10, FONT_PRIO_FRONT, desc->color, desc->description, 0);
desc++;
}
}
}
else if (onlinegmProcNo == 2) //cyg ׼<><D7BC><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>Ӵ<EFBFBD>
{
if (pActOnlineGmWnd==NULL){
x = (lpDraw->xSize - 5*64)/2;
y = (lpDraw->ySize - 5*48)/2;
pActOnlineGmWnd = MakeWindowDisp( x , y , 5 , 5 ,NULL,0, FALSE);
pNowStrBuffer = NULL ;
}
else if (pActOnlineGmWnd->hp > 0)
{
x = pActOnlineGmWnd->x;
y = pActOnlineGmWnd->y;
MakeHitBox( x + 36,y + 238-85-35,x + 40,y + 238-85+35, DISP_PRIO_BOX );
MakeHitBox( x + 156+18,y + 238-85-35,x + 156+18,y + 238-85+35, DISP_PRIO_BOX );
id = selGraId( btnId, sizeof( btnId )/sizeof( int ) );
int SureBtn[2];
SureBtn[0] = StockDispBuffer( x + 70 , y + 250-85+35 , DISP_PRIO_IME3, ONLINEGM_SURE_U , 1);
SureBtn[1] = StockDispBuffer( x + 190+18 , y + 250-85+35 , DISP_PRIO_IME3, ONLINEGM_CHANCEL , 1);
sprintf_s( buf ,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѶϢ->");
StockFontBuffer( x + 20 , y+ 20+60 , FONT_PRIO_FRONT, 4 , buf , 0 );
if( TotalAddValue >= DEF_MAX_ADD_VALUE ){ // <20><>û<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>󽨵<EFBFBD><F3BDA8B5><EFBFBD>
sprintf_s( buf ,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>20<EFBFBD><EFBFBD>!!");
StockFontBuffer( x + 235 , y + 150 , FONT_PRIO_FRONT, 4 , buf , 0 );
sprintf_s( buf ,"<EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>лл",TotalAddValue );
StockFontBuffer( x + 235 , y + 185 , FONT_PRIO_FRONT, 4 , buf , 0 );
if((mouse.onceState & MOUSE_LEFT_CRICK) && HitDispNo == SureBtn[0])
{
DeathAction( pActOnlineGmWnd);
pActOnlineGmWnd = NULL;
onlinegmProcNo = 0 ;
ResetFlag = FALSE;
return 0 ;
}
}else{
if (ClassIndex==1){
sprintf_s( buf ,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-> %s",ProblemClass[ClassIndex]);
StockFontBuffer( x + 20 , y + 20+10, FONT_PRIO_FRONT, 1 , buf , 0 );
sprintf_s( buf ,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-> %s",ProblemC1[ClassIndex1]);
StockFontBuffer( x + 20 , y + 20+35, FONT_PRIO_FRONT, 1 , buf , 0 );
}else{
sprintf_s( buf ,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-> %s",ProblemClass[ClassIndex]);
StockFontBuffer( x + 20 , y + 20+10, FONT_PRIO_FRONT, 1 , buf , 0 );
sprintf_s( buf ,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-> %s",ProblemC2[ClassIndex1]);
StockFontBuffer( x + 20 , y + 20+35, FONT_PRIO_FRONT, 1 , buf , 0 );
switch (ClassIndex1)
{
case 0: sprintf_s( buf,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>-> %s",ProblemC2_1[ClassIndex2] );break;
case 1: sprintf_s( buf,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>-> %s",ProblemC2_2[ClassIndex2] );break;
case 2: sprintf_s( buf,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>-> %s",ProblemC2_3[ClassIndex2] );break;
case 3: sprintf_s( buf,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>-> %s",ProblemC2_4[ClassIndex2] );break;
case 4: sprintf_s( buf,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>-> %s",ProblemC2_5[ClassIndex2] );break;
case 5: sprintf_s( buf,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>-> %s",ProblemC2_6[ClassIndex2] );break;
case 10: sprintf_s( buf,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>-> %s",ProblemC2_7[ClassIndex2] );break;
default: buf[0] = '\0';
}
StockFontBuffer( x + 220-25 , y + 120+60, FONT_PRIO_FRONT, 1 , buf , 0 );
sprintf_s( buf ,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-> %4d<34><64>%02d<32><64>%02d<32><64>%02dʱ",okY,okM,okD,okH);
StockFontBuffer( x + 220-25 , y + 120+85, FONT_PRIO_FRONT, 1 , buf , 0 );
sprintf_s( buf ,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-> %4d<34><64>%02d<32><64>%02d<32><64>%02dʱ",wrongY,wrongM,wrongD,wrongH );
StockFontBuffer( x + 220-25 , y + 120+110, FONT_PRIO_FRONT, 1 , buf , 0 );
}
if( lstrlen(InputHistory.str[InputHistory.lockNo+1]) == 0 && lstrlen(SubBuffer.buffer) == 0 ){
sprintf_s( buf ,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
StockFontBuffer( x + 20 , y + 120, FONT_PRIO_FRONT, 4 , buf , 0 );
if((mouse.onceState & MOUSE_LEFT_CRICK) && HitDispNo == SureBtn[0])
{
DeathAction( pActOnlineGmWnd);
pActOnlineGmWnd = NULL;
onlinegmProcNo = 0 ;
ResetFlag = FALSE;
return 0 ;
}
}else if(ClassIndex==0&&(!okY||!okM||!okD||!wrongY||!wrongM||!wrongD)){ //fix
sprintf_s( buf ,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>д[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]<5D><>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]");
StockFontBuffer( x + 280-10+2 , y + 260 , FONT_PRIO_FRONT, 4 , buf , 0 );
if((mouse.onceState & MOUSE_LEFT_CRICK) && HitDispNo == SureBtn[0])
{
DeathAction( pActOnlineGmWnd);
pActOnlineGmWnd = NULL;
onlinegmProcNo = 0 ;
ResetFlag = FALSE;
return 0 ;
}
}else{
if((mouse.onceState & MOUSE_LEFT_CRICK) && HitDispNo == SureBtn[0])
{
ResetFlag = FALSE;
ContentBuf[0] = '\0';
for ( i=0;i<InputHistory.addNo-1;i++)
strcat_s(ContentBuf,InputHistory.str[InputHistory.newNo-(InputHistory.addNo-1)+i]); //<2F><><EFBFBD><EFBFBD>ÿһ<C3BF><D2BB>
strcat_s(ContentBuf,SubBuffer.buffer);
sprintf_s( InputBuffer,"%s",ContentBuf);
if (ClassIndex==1){ // һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> û<><C3BB><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>ʱ<EFBFBD><CAB1>
ProblemType=0;
sprintf_s( DataBuffer,"&star=%s&earth=%s&qtype1=%s&msource=19",gmgroup[nServerGroup].name,gmsv[selectServerIndex].name,ProblemC1[ClassIndex1]);
}else{ // <20><EFBFBD><ECB3A3><EFBFBD><EFBFBD>
ProblemType=1;
char tempbuf[60];
sprintf_s( tempbuf,"%s",ProblemC2[ClassIndex1]);
switch (ClassIndex1)
{
case 0: sprintf_s( tempbuf,"%s,%s",tempbuf,ProblemC2_1[ClassIndex2] );break;
case 1: sprintf_s( tempbuf,"%s,%s",tempbuf,ProblemC2_2[ClassIndex2] );break;
case 2: sprintf_s( tempbuf,"%s,%s",tempbuf,ProblemC2_3[ClassIndex2] );break;
case 3: sprintf_s( tempbuf,"%s,%s",tempbuf,ProblemC2_4[ClassIndex2] );break;
case 4: sprintf_s( tempbuf,"%s,%s",tempbuf,ProblemC2_5[ClassIndex2] );break;
case 5: sprintf_s( tempbuf,"%s,%s",tempbuf,ProblemC2_6[ClassIndex2] );break;
case 10: sprintf_s( tempbuf,"%s,%s",tempbuf,ProblemC2_7[ClassIndex2] );break;
default: break;
}
#ifdef _CHAR_PROFESSION
if(lstrlen(pc.profession_class_name) == NULL){
strcpy(pc.profession_class_name,"<EFBFBD><EFBFBD>");
}
#endif
char side[10];
if(sCharSide == 1)
strcpy(side,"<EFBFBD><EFBFBD>");
else
strcpy(side,"<EFBFBD><EFBFBD>");
#ifdef _CHAR_PROFESSION
sprintf_s( DataBuffer,"&SY=%d&SM=%d&SD=%d&EY=%d&EM=%d&ED=%d&datarighttime=%d&datawrongtime=%d&msource=18&exceptcont=%s&G1grade1=%d&G1grade2=%d&G1Loc1=%s&G1Job1=%s&star=%s&G1gname1=%s",okY,okM,okD,wrongY,wrongM,wrongD,okH,wrongH,tempbuf,pc.transmigration,pc.level,side,pc.profession_class_name,gmgroup[nServerGroup].name,pc.name);
#else
sprintf_s( DataBuffer,"&SY=%d&SM=%d&SD=%d&EY=%d&EM=%d&ED=%d&datarighttime=%d&datawrongtime=%d&msource=18&exceptcont=%s&G1grade1=%d&G1grade2=%d&G1Loc1=%s&G1Job1=%s&G1gname1=%s",okY,okM,okD,wrongY,wrongM,wrongD,okH,wrongH,tempbuf,pc.transmigration,pc.level,side,gmgroup[nServerGroup].name,pc.name);
#endif
}
DeathAction( pActOnlineGmWnd);
pActOnlineGmWnd = NULL;
DWORD dwThreadID,dwThrdParam = 1;
GMHandle = CreateThread(NULL, 0, OnlineGmThread,&dwThrdParam,0,&dwThreadID);
if(GMHandle == NULL)
{
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵϵͳ<EFBFBD><EFBFBD>Դ<EFBFBD>Ѳ<EFBFBD><EFBFBD><EFBFBD>!!",FONT_PAL_RED);
StockChatBufferLine("<EFBFBD><EFBFBD><EFBFBD>򵥺Ŵ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>!",FONT_PAL_RED);
ResetFlag = TRUE;
DeathAction( pActOnlineGmWnd);
pActOnlineGmWnd = NULL;
return 1;
}
onlinegmProcNo = 0 ;
return 0 ;
}
}
}
if((mouse.onceState & MOUSE_LEFT_CRICK) && HitDispNo == SureBtn[1]) //ȡ<><C8A1>ť
{
DeathAction( pActOnlineGmWnd);
pActOnlineGmWnd = NULL;
onlinegmProcNo = 0 ;
ResetFlag = FALSE;
return 0 ;
}
}
}
if(CheckMenuFlag()){
ResetFlag = TRUE;
DeathAction( pActOnlineGmWnd);
pActOnlineGmWnd = NULL;
return 1;
}
return 0 ;
}
//************************************************
//<2F><>ʽ : DNSר<53>ú<EFBFBD>ʽ
//<2F>ش<EFBFBD>ֵ : TRUE --- ת<><D7AA><EFBFBD>ɹ<EFBFBD>
// FALSE --- ת<><D7AA>ʧ<EFBFBD><CAA7>
//************************************************
BOOL QueryOnlineGmIP(char HostName[])
{
PHOSTENT info;
// strcpy(OnlineGmIP,"10.0.1.60"); // ֱ<>Ӹ<EFBFBD>ip,<2C><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>code
// return TRUE;
if( (info = gethostbyname(HostName)) == NULL)
return FALSE;
else{
OnlineGmIP = inet_ntoa(*(struct in_addr *)*info->h_addr_list);
}
return TRUE;
}
#endif