#include "../systeminc/version.h" #include "../systeminc/system.h" #include "../systeminc/Turntable.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" char 二级窗口内容[1024]; #ifdef _ICONBUTTONS_ extern unsigned int sockfd; extern int nowGx, nowGy; extern int indexWN; extern int idWN; ACTION* 转盘动作地址=0; typedef struct { int 形像; char 名[64]; char 数据[512]; }转盘道具结构; typedef struct { int x; int y; }转盘坐标结构; int 转盘道具位置[10][2]={ {0x0,-0x74}, {0x53,-0x5B}, {0x86,-0x13}, {0x86,0x43}, {0x57,0x8A}, {0x2,0xA6}, {-0x51,0x8A}, {-0x84,0x46}, {-0x85,-0x10}, {-0x52,-0x58}, }; 转盘坐标结构 转盘坐标[10]; typedef struct { int x; int y; int 选中索引; BOOL 二级窗口; int 转动;//(0未转动 1转动中 2转动完了) int 指针位置; int 指针次数; int 指针圈数; 转盘道具结构 道具[10]; }转盘窗口结构; 转盘窗口结构 转盘窗口; void 转盘窗口初始化(char * 内容) { 转盘坐标[0].x=0; 转盘坐标[0].y=-0x30; 转盘坐标[1].x=0x2C; 转盘坐标[1].y=-0x21; 转盘坐标[2].x=0x49; 转盘坐标[2].y=0x7; 转盘坐标[3].x=0x48; 转盘坐标[3].y=0x2F; 转盘坐标[4].x=0x2D; 转盘坐标[4].y=0x57; 转盘坐标[5].x=0x4; 转盘坐标[5].y=0x66; 转盘坐标[6].x=-0x27; 转盘坐标[6].y=0x5A; 转盘坐标[7].x=-0x48; 转盘坐标[7].y=0x32; 转盘坐标[8].x=-0x47; 转盘坐标[8].y=0x8; 转盘坐标[9].x=-0x2A; 转盘坐标[9].y=-0x20; memset(&转盘窗口,0,sizeof(转盘窗口结构)); memset(二级窗口内容,0,1024); if(转盘动作地址) DeathAction(转盘动作地址); 转盘动作地址=0; char *临时=new char [513]; char *临时1=new char [513]; int i; for(i=0;i<10;i++){ memset(临时,0,512); memset(临时1,0,20); getStringFromIndexWithDelim_body((char *) 内容,(char *)"#@",i+1,临时,512); getStringFromIndexWithDelim_body((char *) 临时,(char *)"|",1,临时1,512); 转盘窗口.道具[i].形像 = atoi(临时1); getStringFromIndexWithDelim_body((char *) 临时,(char *)"|",2,转盘窗口.道具[i].名,64); getStringFromIndexWithDelim_body((char *) 临时,(char *)"|",3,转盘窗口.道具[i].数据,512); } delete 临时; delete 临时1; int 窗口宽=424; int 窗口高=424; 转盘窗口.x=(800-窗口宽)/2+窗口宽/2; 转盘窗口.y=(600-窗口高)/2-40+窗口高/2; } ACTION* 创建转盘窗口() { if(转盘动作地址) DeathAction(转盘动作地址); 转盘动作地址=0; 转盘动作地址 = MakeWindowDisp(转盘窗口.x,转盘窗口.y,0,0,40166,0,FALSE); play_se(202,320,240); return 转盘动作地址; } void 转动后没给道具() { if(转盘窗口.转动==1){ 转盘窗口.转动=2; lssproto_WN_send(sockfd,nowGx,nowGy,indexWN,idWN,0,"2"); } } extern short wnCloseFlag; extern int windowTypeWN; void 清除转盘动作() { if(转盘动作地址) DeathAction(转盘动作地址); 转动后没给道具(); 转盘动作地址=0; wnCloseFlag=0; windowTypeWN = -1; wnCloseFlag = 1; } extern int cloasewindows; ACTION* 转盘数据显示() { //底图 StockDispBuffer(转盘窗口.x,转盘窗口.y+28,104,40166,1); //关闭 if(MakeHitBox(转盘窗口.x+0x61,转盘窗口.y-0x99,转盘窗口.x+0x80,转盘窗口.y-0x7D,1)==1){ StockDispBuffer(转盘窗口.x+0x71-2,转盘窗口.y-0x8B,105,40165,1); if( (mouse.onceState & MOUSE_LEFT_CRICK) && !转盘窗口.二级窗口){ windowTypeWN = -1; wnCloseFlag = 1; } } //开始按钮 if(转盘窗口.转动) StockDispBuffer(转盘窗口.x,转盘窗口.y+0x1B+1,105,40164,1); else{ if(MakeHitBox(转盘窗口.x-0x30,转盘窗口.y-0x14,转盘窗口.x+0x30,转盘窗口.y+0x4A,1)==1){ StockDispBuffer(转盘窗口.x,转盘窗口.y+0x1B+1,105,40164,1); if( (mouse.onceState & MOUSE_LEFT_CRICK) && !转盘窗口.二级窗口){ lssproto_WN_send(sockfd,nowGx,nowGy,indexWN,idWN,0,"1"); } } } if(转盘窗口.转动==1){ if(转盘窗口.指针次数>2){ 转盘窗口.指针次数 = 0; if(转盘窗口.指针位置==9) { 转盘窗口.指针圈数++; 转盘窗口.指针位置=0; } else 转盘窗口.指针位置++; }else 转盘窗口.指针次数++; if(转盘窗口.指针圈数 == 8 && 转盘窗口.指针位置==(转盘窗口.选中索引-1)) { 转盘窗口.转动=2; 转盘窗口.二级窗口=TRUE; lssproto_WN_send(sockfd,nowGx,nowGy,indexWN,idWN,0,"2"); } } StockDispBuffer(转盘窗口.x+转盘坐标[转盘窗口.指针位置].x,转盘窗口.y+转盘坐标[转盘窗口.指针位置].y,106,40153+转盘窗口.指针位置,1); //道具显示 int i; for(i=0;i<10;i++){ StockDispBuffer(转盘窗口.x+转盘道具位置[i][0],转盘窗口.y+转盘道具位置[i][1],106,转盘窗口.道具[i].形像,1); if(!转盘窗口.二级窗口) if(MakeHitBox(转盘窗口.x+转盘道具位置[i][0]-30,转盘窗口.y+转盘道具位置[i][1]-30,转盘窗口.x+转盘道具位置[i][0]+30,转盘窗口.y+转盘道具位置[i][1]+30,1)==1){ //extern void 显示道具数据(short x,short y,UCHAR 层次,char* 内容,int 形像 ,char*名字); 显示道具数据(转盘窗口.x+转盘道具位置[i][0],转盘窗口.y+转盘道具位置[i][1],107,转盘窗口.道具[i].数据,0,转盘窗口.道具[i].名); } } //窗口提示 if(转盘窗口.二级窗口){ StockDispBuffer(转盘窗口.x-0xC1,转盘窗口.y-0x32,107,40088,1); extern int getTextLength(char * str); StockFontBuffer(转盘窗口.x-getTextLength(二级窗口内容)/2,转盘窗口.y+5,2,0,二级窗口内容,1); int 按钮ID = StockDispBuffer(转盘窗口.x,转盘窗口.y+50,109,26042,2); if( mouse.onceState & MOUSE_LEFT_CRICK ){ if( HitDispNo == 按钮ID ){ 转盘窗口.二级窗口=0; windowTypeWN = -1; wnCloseFlag = 1; 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 选中索引) { 转盘窗口.转动=1; 转盘窗口.选中索引=选中索引; } #endif