184 lines
5.6 KiB
C++
184 lines
5.6 KiB
C++
#include "../systeminc/version.h"
|
|
#include "../systeminc/system.h"
|
|
#include "../systeminc/CharSignDay.h"
|
|
#include "../newproto/autil.h"
|
|
#include "../systeminc/menu.h"
|
|
#include "../systeminc/shop.h"
|
|
#include "../systeminc/t_music.h"
|
|
#include "../newproto/protocol.h"
|
|
#include "../other/caryIme.h"
|
|
#include "../systeminc/field.h"
|
|
#include "../systeminc/netmain.h"
|
|
#ifdef _CHARSIGNDAY_
|
|
extern unsigned int sockfd;
|
|
extern int nowGx, nowGy;
|
|
extern int indexWN;
|
|
extern int idWN;
|
|
extern short wnCloseFlag;
|
|
extern int cloasewindows;
|
|
extern int windowTypeWN;
|
|
ACTION * 签到动作地址=0;
|
|
int 签到窗口X,签到窗口Y;
|
|
extern char 二级窗口内容[1024];
|
|
int 签到二级窗口;
|
|
|
|
typedef struct {
|
|
int ID;
|
|
char 道具名[64];
|
|
char 数据[512];
|
|
}签到道具结构;
|
|
|
|
typedef struct {
|
|
int 道具空;
|
|
int 状态;
|
|
int 当月天数;
|
|
int 当天几号;
|
|
签到道具结构 道具[30];
|
|
}签到结构;
|
|
|
|
签到结构 签到数据;
|
|
short 签到道具内容坐标[][2]={
|
|
{0,3},
|
|
{1,6},
|
|
{2,8},
|
|
{3,11},
|
|
{4,13},
|
|
{5,16}
|
|
};
|
|
int 签到窗口宽=588;
|
|
int 签到窗口高=396;
|
|
|
|
void 签到窗口初始化(char * 内容)
|
|
{
|
|
memset(&签到数据,0,sizeof(签到结构));
|
|
memset(二级窗口内容,0,1024);
|
|
if(签到动作地址) DeathAction(签到动作地址);
|
|
签到动作地址=0;
|
|
char *临时=new char [512];
|
|
char *临时数据=new char [512];
|
|
memset(临时,0,512);
|
|
memset(临时数据,0,512);
|
|
getStringFromIndexWithDelim_body((char *) 内容,(char *)"|",1,临时,10);
|
|
签到数据.道具空=atoi(临时);
|
|
memset(临时,0,10);
|
|
getStringFromIndexWithDelim_body((char *) 内容,(char *)"|",2,临时,10);
|
|
签到数据.当月天数=atoi(临时);
|
|
memset(临时,0,10);
|
|
getStringFromIndexWithDelim_body((char *) 内容,(char *)"|",3,临时,10);
|
|
签到数据.当天几号=atoi(临时);
|
|
memset(临时,0,10);
|
|
getStringFromIndexWithDelim_body((char *) 内容,(char *)"|",4,临时,30);
|
|
签到数据.状态=atoi(临时);
|
|
memset(临时,0,512);
|
|
memset(临时数据,0,512);
|
|
int i;
|
|
for(i=0;i<签到数据.当月天数;i++){
|
|
getStringFromIndexWithDelim_body((char *) 内容,(char *)"#@",2+i,临时,512);
|
|
getStringFromIndexWithDelim_body((char *) 临时,(char *)"|",1,临时数据,10);
|
|
签到数据.道具[i].ID=atoi(临时数据);
|
|
memset(临时数据,0,10);
|
|
getStringFromIndexWithDelim_body((char *) 临时,(char *)"|",2,临时数据,64);
|
|
sprintf(签到数据.道具[i].道具名,"%s",临时数据);
|
|
memset(临时数据,0,64);
|
|
getStringFromIndexWithDelim_body((char *) 临时,(char *)"|",3,临时数据,512);
|
|
sprintf(签到数据.道具[i].数据,"%s",临时数据);
|
|
memset(临时,0,512);
|
|
memset(临时数据,0,512);
|
|
}
|
|
delete 临时;
|
|
delete 临时数据;
|
|
签到二级窗口=0;
|
|
签到窗口X=(800-签到窗口宽)/2+签到窗口宽/2;
|
|
签到窗口Y=(600-签到窗口高)/2-40+签到窗口高/2;
|
|
}
|
|
|
|
ACTION* 创建签到窗口()
|
|
{
|
|
if(签到动作地址) DeathAction(签到动作地址);
|
|
签到动作地址 = MakeWindowDisp(签到窗口X,签到窗口Y,0,0,55217,0,FALSE);
|
|
play_se(202,320,240);
|
|
return 签到动作地址;
|
|
}
|
|
|
|
void 清除签到动作()
|
|
{
|
|
if(签到动作地址) DeathAction(签到动作地址);
|
|
签到动作地址=0;
|
|
wnCloseFlag=0;
|
|
windowTypeWN = -1;
|
|
wnCloseFlag = 1;
|
|
}
|
|
|
|
ACTION* 签到数据显示()
|
|
{
|
|
int 底座X=55;
|
|
int 底座Y=58;
|
|
int 当前底座数量=0;
|
|
int i,b;
|
|
for(i=0;i<5;++i){
|
|
for(b=0;b<6;++b){
|
|
当前底座数量++;
|
|
StockDispBuffer(签到窗口X-225+b*底座X,签到窗口Y-65+i*底座Y,106,签到数据.道具[当前底座数量-1].ID,1);//道具
|
|
if(MakeHitBox(签到窗口X-225+b*底座X-26,签到窗口Y-65+i*底座Y-26,签到窗口X-225+b*底座X+26,签到窗口Y-65+i*底座Y+26,1)==1){
|
|
if(!签到二级窗口) 显示道具数据(签到窗口X-225+b*底座X,签到窗口Y-65+i*底座Y,112,签到数据.道具[当前底座数量-1].数据,0,签到数据.道具[当前底座数量-1].道具名);
|
|
}
|
|
if((签到数据.状态&(1<<当前底座数量)))
|
|
// StockDispBuffer(400, 288, DISP_PRIO_MENU-1, 55256, 0);
|
|
StockDispBuffer(签到窗口X-225+b*底座X,签到窗口Y-65+i*底座Y,107,55269,1);//签到成功
|
|
if(当前底座数量 >= 签到数据.当月天数) break;
|
|
}
|
|
}
|
|
//底图
|
|
StockDispBuffer(签到窗口X,签到窗口Y+28,104,55217,1);
|
|
//签到
|
|
int 按钮ID = StockDispBuffer(签到窗口X+200,签到窗口Y+207,105,55216,2);
|
|
if( mouse.onceState & MOUSE_LEFT_CRICK ){
|
|
if( HitDispNo == 按钮ID ){
|
|
lssproto_WN_send(sockfd,nowGx,nowGy,indexWN,idWN,0,"1");
|
|
签到二级窗口=1;
|
|
}
|
|
|
|
}
|
|
|
|
//关闭
|
|
if(MakeHitBox(签到窗口X+253,签到窗口Y-175,签到窗口X+283,签到窗口Y-149,1)==1){
|
|
StockDispBuffer(签到窗口X+270,签到窗口Y-160,105,40165,1);
|
|
if(mouse.onceState & MOUSE_LEFT_CRICK && !签到二级窗口){
|
|
windowTypeWN = -1;
|
|
wnCloseFlag = 1;
|
|
}
|
|
}
|
|
|
|
if(签到二级窗口){
|
|
StockDispBuffer(签到窗口X-186,签到窗口Y-58,111,40088,1);
|
|
StockFontBuffer(签到窗口X-138,签到窗口Y-16,2,0,二级窗口内容,0);
|
|
按钮ID = StockDispBuffer(签到窗口X+5,签到窗口Y+37,112,26042,2);
|
|
if( mouse.onceState & MOUSE_LEFT_CRICK ){
|
|
if( HitDispNo == 按钮ID ){
|
|
签到二级窗口=0;
|
|
memset(二级窗口内容,0,1024);
|
|
}
|
|
}
|
|
}
|
|
if(CheckMenuFlag()
|
|
|| ((joy_trg[ 0 ] & JOY_ESC) && GetImeString() == NULL)
|
|
|| actBtn == 1
|
|
|| menuBtn == 1
|
|
|| disconnectServerFlag == TRUE
|
|
|| wnCloseFlag == 1
|
|
|| cloasewindows == 1) 清除签到动作();
|
|
return 签到动作地址;
|
|
}
|
|
|
|
void 置签到状态(int 状态)
|
|
{
|
|
签到数据.状态=状态;
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|