Created
May 27, 2015 13:00
-
-
Save neikeq/d6d00bd24db606dd0b86 to your computer and use it in GitHub Desktop.
XKick packets stuff
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef _CODES_H_ | |
#define _CODES_H_ | |
#define ID_STS_LOGIN 101 | |
#define ID_CERTIFY_LOGIN 1000 | |
#define ID_INSTANT_LOGIN 1001 | |
#define ID_CERTIFY_EXIT 1002 | |
#define ID_MEMBER_INFO 1100 | |
#define ID_CHARACTER_INFO 1200 | |
#define ID_CHARACTER_END 1201 | |
#define ID_CREATE_CHARACTER 1202 | |
#define ID_DELETE_CHARACTER 1203 | |
#define ID_CHOICE_CHARACTER 1204 | |
#define ID_CHARACTER_SEARCH 1205 | |
#define ID_SERVER_LIST 1300 | |
#define ID_EXECUTE_TUTORIAL 1400 | |
#define ID_EXECUTE_QUEST 1401 | |
#define ID_GAME_LOGIN 2000 | |
#define ID_GAME_EXIT 2001 | |
#define ID_UDP_CONFIRM 2002 | |
#define ID_NOTICE_LIST 2003 | |
#define ID_PLAYER_INFO 2100 | |
#define ID_ITEM_INFO 2101 | |
#define ID_SKILL_INFO 2102 | |
#define ID_TRAINING_INFO 2103 | |
#define ID_CEREMONY_INFO 2104 | |
#define ID_QUEST_INFO 2105 | |
#define ID_SALE_LIST 2110 | |
#define ID_ROOM_INFO 2200 | |
#define ID_ROOM_LIST 2201 | |
#define ID_LOBBY_LIST 2202 | |
#define ID_CREATE_ROOM 2203 | |
#define ID_SET_ROOM 2204 | |
#define ID_CHOICE_ROOM 2205 | |
#define ID_QUICK_ROOM 2206 | |
#define ID_LEAVE_ROOM 2300 | |
#define ID_CHANGE_PARENT 2301 | |
#define ID_CHANGE_JANG 2302 | |
#define ID_ATHLETE_INFO 2303 | |
#define ID_ATHLETE_END 2304 | |
#define ID_ROBOT_INFO 2305 | |
#define ID_ROBOT_END 2306 | |
#define ID_CHANGE_GROUND 2307 | |
#define ID_CHANGE_BALL 2308 | |
#define ID_FORCE_OUT 2309 | |
#define ID_INVITE_PLAYER 2310 | |
#define ID_GAME_READY 2400 | |
#define ID_GAME_START 2401 | |
#define ID_GAME_COUNT 2402 | |
#define ID_GAME_LOAD 2403 | |
#define ID_GAME_PLAY 2404 | |
#define ID_GAME_RESULT 2405 | |
#define ID_GAME_END 2406 | |
#define ID_LEVEL_UP 2407 | |
#define ID_CHANGE_TEAM 2501 | |
#define ID_CHANGE_POSITION 2502 | |
#define ID_CHANGE_MENT 2601 | |
#define ID_GROWUP_CHARACTER 2701 | |
#define ID_QUEST_REWARD 2702 | |
#define ID_MISSION_REWARD 2703 | |
#define ID_SHOPITEM_LIST 3100 | |
#define ID_UPDATE_ITEM 3101 | |
#define ID_EQUIP_ITEM 3102 | |
#define ID_DIVEST_ITEM 3103 | |
#define ID_BUY_ITEM 3104 | |
#define ID_GIFT_ITEM 3105 | |
#define ID_EXCHANGE_ITEM 3106 | |
#define ID_POST_ITEM 3107 | |
#define ID_SHOPSKILL_LIST 3200 | |
#define ID_UPDATE_SKILL 3201 | |
#define ID_EQUIP_SKILL 3202 | |
#define ID_DIVEST_SKILL 3203 | |
#define ID_BUY_SKILL 3204 | |
#define ID_SHOPTRAINING_LIST 3300 | |
#define ID_UPDATE_TRAINING 3301 | |
#define ID_BUY_TRAINING 3304 | |
#define ID_SHOPCEREMONY_LIST 3400 | |
#define ID_UPDATE_CEREMONY 3401 | |
#define ID_EQUIP_CEREMONY 3402 | |
#define ID_DIVEST_CEREMONY 3403 | |
#define ID_BUY_CEREMONY 3404 | |
#define ID_QUEST_LIST 3500 | |
#define ID_UPDATE_QUEST 3501 | |
#define ID_CREATE_QUEST 3502 | |
#define ID_TCP_PING 5000 | |
#define ID_SEND_MESSAGE 5001 | |
#define ID_RAISE_FACULTY 5002 | |
#define ID_CHANGE_SETTING 5003 | |
#define ID_UDP_PUNCHING 9000 | |
#define ID_UDP_PING 9001 | |
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "crypto.h" | |
int init_seq() | |
{ | |
time_t t; time(&t); | |
srand((int)t); | |
int nSeed = rand() % MAX_SECURE_SEQ; | |
init_seq(nSeed); | |
return nSeed; | |
} | |
int init_seq(int seq) | |
{ | |
recv_seq = seq; | |
send_seq = seq; | |
return seq; | |
} | |
int make_key(int* seq) | |
{ | |
(*seq)++; | |
if (*seq > MAX_SECURE_SEQ)*seq = 0; | |
int nArray1 = (*seq) % 128; | |
int nArray2 = (*seq/127) % 128; | |
int nResult = ((*seq) ^ (SECURE_ARRAY[nArray1] * SECURE_ARRAY[nArray2])); | |
return nResult; | |
} | |
int make_send_seq() | |
{ | |
return make_key(&send_seq); | |
} | |
int make_recv_seq() | |
{ | |
return make_key(&recv_seq); | |
} | |
void make_send_packet(HeadPacket* packet) | |
{ | |
if (packet == NULL) return -1; | |
char* buf = (char*)packet; | |
int sendSeq = make_send_seq(); | |
packet->mSequence = sendSeq; | |
encrypt(&buf[HEAD_SIZE], packet->mBodySize); | |
} | |
void make_recv_packet(HeadPacket* packet) | |
{ | |
if (packet == NULL) return -1; | |
char* buf = (char*)packet; | |
int recvSeq = make_recv_seq(); | |
if (packet->mSequence != recvSeq) return -2; | |
decrypt(&buf[HEAD_SIZE], packet->mBodySize); | |
} | |
void encrypt(char* buf, int len) | |
{ | |
int nArray1 = send_seq % 128; | |
int nArray2 = (send_seq / 127) % 128; | |
if (nArray1 == nArray2) nArray2++; | |
int i = 0; | |
for (i = 0; i < len; i++) | |
{ | |
buf[i] = buf[i] ^ SECURE_ARRAY[nArray1]; | |
buf[i] = buf[i] ^ SECURE_ARRAY[nArray2]; | |
nArray1++; if (nArray1 > 127) nArray1 = 0; | |
nArray2++; if (nArray2 > 127) nArray2 = 0; | |
} | |
} | |
void decrypt(char* buf, int len) | |
{ | |
int nArray1 = recv_seq % 128; | |
int nArray2 = (recv_seq / 127) % 128; | |
if (nArray1 == nArray2) nArray2++; | |
int i = 0; | |
for (i = 0; i < len; i++) | |
{ | |
buf[i] = buf[i] ^ SECURE_ARRAY[nArray2]; | |
buf[i] = buf[i] ^ SECURE_ARRAY[nArray1]; | |
nArray1++; if (nArray1 > 127) nArray1 = 0; | |
nArray2++; if (nArray2 > 127) nArray2 = 0; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef SECURE_H_ | |
#define SECURE_H_ | |
#include "struct_types.h" | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <time.h> | |
#define MAX_SECURE_SEQ 65535 | |
char SECURE_ARRAY[130] = | |
{ | |
'C', 'a', 'r', 'p', 'e', 'd', 'i', 'e', 'm', 'S', | |
'e', 'i', 'z', 'e', 'T', 'h', 'e', 'D', 'a', 'y', | |
'B', 'o', 'y', 's', 'M', 'a', 'k', 'e', 'Y', 'o', | |
'u', 'r', 'L', 'i', 'v', 'e', 's', 'E', 'x', 't', | |
'r', 'a', 'o', 'd', 'i', 'n', 'a', 'r', 'y', 'W', | |
'O', 'r', 'k', 'H', 'a', 'r', 'd', '!', 'H', 'a', | |
'v', 'e', 'F', 'u', 'n', '!', 'M', 'a', 'k', 'e', | |
'H', 'i', 's', 't', 'o', 'r', 'y', '!', 'B', 'e', | |
'T', 'h', 'e', 'C', 'h', 'a', 'n', 'g', 'e', 'Y', | |
'o', 'u', 'W', 'a', 'n', 'n', 'a', 'S', 'e', 'e', | |
'I', 'n', 'T', 'h', 'e', 'W', 'o', 'r', 'l', 'd', | |
'B', 'y', ' ', 'M', 'u', 't', 't', 'e', 'r', ' ', | |
'2', '0', '0', '9', '.', '0', '7', '@', '!', '#' | |
}; | |
int send_seq; | |
int recv_seq; | |
int encrypt(char* buf, int len); | |
int decrypt(char* buf, int len); | |
int make_key(int* seq); | |
int make_send_seq(); | |
int make_recv_seq(); | |
int init_seq(); | |
int init_seq(int seq); | |
int make_send_packet(HeadPacket* packet); | |
int make_recv_packet(HeadPacket* packet); | |
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef _DEFINE_H_ | |
#define _DEFINE_H_ | |
#define OK 0 | |
#define NOK -1 | |
#define YES 1 | |
#define NO 0 | |
#define MAX_SERVER 50 | |
#define MAX_PLAYER 500 | |
#define MAX_ROOM 150 | |
#define MAX_TEAM 150 | |
#define MAX_VIEWER 4 | |
#define MAX_ATHLETE 10 | |
#define MAX_ITEM 70 | |
#define MAX_LEVEL 50 | |
#define MAX_LEVEL_SECTION (MAX_LEVEL/5)+1 | |
#define MAX_TIP 50 | |
#define MAX_MISSION 46 | |
#define MAX_HOLIDAY 50 | |
#define MAX_CARDSKILL 3 | |
#define MAX_CARDRANK 4 | |
#define MAX_BUDDY 30 | |
#define MAX_BLACKLIST 30 | |
#define EMBLEM_TYPE_GOLD 604101101 | |
#define EMBLEM_TYPE_SILVER 604101102 | |
#define MAX_PATH 255 | |
#define GAME_PLAY_TIME 300 | |
#define ID_NAME_SIZE (15 * 2) + 1 | |
#define PLAYER_NAME_SIZE (7 * 2) + 1 | |
#define OBJECT_NAME_SIZE (20 * 2) + 1 | |
#define SERVER_NAME_SIZE (15 * 2) + 1 | |
#define TITLE_NAME_SIZE (23 * 2) + 1 | |
#define CLUB_NAME_SIZE (10 * 2) + 1 | |
#define PLAYER_MENT_SIZE (22 * 2) + 1 | |
#define MESSAGE_SIZE (40 * 2) + 1 | |
#define PASS_SIZE (10 * 2) + 1 | |
#define LOGIN_PASS_SIZE (32 * 2) + 1 | |
#define TIP_SIZE (60 * 2) + 1 | |
#define MISSTION_TEXT_SIZE (60 * 2) + 1 | |
#define MAX_MUSIC_COUNT 3 | |
#define MAX_EQUIP 17 | |
#define MAX_FACULTY 130 | |
#define MAX_CHARACTER 3 | |
#define MAX_INVEN 80 | |
#define MAX_SKILL 50 | |
#define MAX_CEREMONY 5 | |
#define MAX_CARD 100 | |
#define MAX_SCHEDULE_LIST 10 | |
#define MAX_BUDDY_LIST 10 | |
#define MAX_ITEM_LIST 10 | |
#define MAX_ITEM_LIST 10 | |
#define MAX_TRAINING_LIST 10 | |
#define MAX_CEREMONEY_LIST 5 | |
#define MAX_SKILL_LIST 50 | |
#define MAX_QUEST_LIST 10 | |
#define MAX_CARD_LIST 30 | |
#define PACKET_SIZE 2048 | |
#define HEAD_SIZE (int)sizeof(Header) | |
#define IP_SIZE 20 | |
#define TEAM_SIZE 6 | |
#define ITEM_OPTION_SIZE 5 | |
#define SLOT_SIZE 4 | |
#define BASE_CHARACTER_SIZE 1 | |
#define BASE_INVEN_SIZE 20 | |
#define BASE_SKILL_SIZE 8 | |
#define ITEM1_MIX_SIZE 5 | |
#define ITEM2_MIX_SIZE 5 | |
#define CARD_MIX_SIZE 12 | |
#define LIST5_SIZE 5 | |
#define LIST6_SIZE 6 | |
#define LIST8_SIZE 8 | |
#define LIST10_SIZE 10 | |
#define TEAM_SIZE 6 | |
#define SHOP_BIT_EXIST 0 | |
#define SHOP_BIT_NONE 1 | |
#define ITEM_FACE 100 | |
#define ITEM_HAIR 101 | |
#define ITEM_SHIRTS 102 | |
#define ITEM_PANTS 103 | |
#define ITEM_GLOVE 104 | |
#define ITEM_SHOES 105 | |
#define ITEM_DIGIT 1000000 | |
#define OPTION_DIGIT 100000 | |
#define POSITION_NONE 0 | |
#define POSITION_ALL 1 | |
#define POSITION_FW 10 | |
#define POSITION_ST 11 | |
#define POSITION_CF 12 | |
#define POSITION_WF 13 | |
#define POSITION_SS 14 | |
#define POSITION_FW_RANGE 4 | |
#define POSITION_MF 20 | |
#define POSITION_AM 21 | |
#define POSITION_CM 22 | |
#define POSITION_SM 23 | |
#define POSITION_DM 24 | |
#define POSITION_MF_RANGE 4 | |
#define POSITION_DF 30 | |
#define POSITION_SW 31 | |
#define POSITION_CB 32 | |
#define POSITION_SB 33 | |
#define POSITION_DF_RANGE 3 | |
#define POSITION_GK 40 | |
#define POSITION_BG 50 | |
#define AUTO_FACULTY_LEVEL1 10 | |
#define AUTO_FACULTY_LEVEL2 20 | |
#define MAX_AI_COSTUME 61 | |
#define PC_EXIT01 1 | |
#define PC_EXIT02 2 | |
#define PC_EXIT03 3 | |
#define PC_EXIT04 4 | |
#define PC_EXIT11 11 | |
#define PC_EXIT12 12 | |
#define PC_EXIT20 20 | |
#define PC_EXIT21 21 | |
#define PC_EXIT22 22 | |
#define PC_EXIT30 30 | |
#define PC_EXIT31 31 | |
#define PC_EXIT32 32 | |
#define PC_EXIT33 33 | |
#define PC_EXIT90 90 | |
#define ROOT2 1.414 | |
#define PROTOCOL_MAGIC (('O'<<24)+('G'<<16)+('R'<<8)+'E') | |
#define MAIN 100 | |
#define AAA 200 | |
#define BBB 300 | |
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef _PACKETS_H_ | |
#define _PACKETS_H_ | |
#include "define.h" | |
#include "struct_types.h" | |
#pragma pack(push, 1) | |
struct HeadPacket | |
{ | |
int mCommand; | |
int mBodySize; | |
}; | |
struct Client_CertifyLogin | |
{ | |
char mID[ID_NAME_SIZE]; | |
char mPass[PASS_SIZE]; | |
}; | |
struct Server_CertifyLogin | |
{ | |
char mResponse; | |
int mMemberSeq; | |
}; | |
struct Client_InstantLogin | |
{ | |
int mMemberSeq; | |
}; | |
struct Server_InstantLogin | |
{ | |
char mResponse; | |
}; | |
struct Client_CertifyExit | |
{ | |
char mReason; | |
}; | |
struct Server_CertifyExit | |
{ | |
char mResponse; | |
}; | |
struct Client_MemberInfo | |
{ | |
int mMemberSeq; | |
}; | |
struct Server_MemberInfo | |
{ | |
char mResponse; | |
int mLastSeq; | |
char mCount; | |
char mTutorial; | |
char mQuest; | |
struct Setting mSetting; | |
struct Money mMoney; | |
int mLoginDate; | |
int mDeleteDate; | |
}; | |
struct CharacterInfo | |
{ | |
int mPlayerSeq; | |
short mOrder; | |
char mPosition; | |
char mCondition; | |
char mAlias; | |
char mName[PLAYER_NAME_SIZE]; | |
struct Level mLevel; | |
struct Shape mShape; | |
int mEquipWear[MAX_EQUIP]; | |
int mHomeWear[4]; | |
int mAwayWear[4]; | |
}; | |
struct Client_CharacterInfo | |
{ | |
int mMemberSeq; | |
}; | |
struct Server_CharacterInfo | |
{ | |
char mResponse; | |
struct CharacterInfo mCharacterInfo; | |
}; | |
struct Client_CharacterEnd | |
{ | |
}; | |
struct Server_CharacterEnd | |
{ | |
char mResponse; | |
}; | |
struct Client_CreateCharacter | |
{ | |
char mName[PLAYER_NAME_SIZE]; | |
struct Shape mShape; | |
int mEquip[5]; | |
}; | |
struct Server_CreateCharacter | |
{ | |
char mResponse; | |
}; | |
struct Client_DeleteCharacter | |
{ | |
int mPlayerSeq; | |
char mJumin[20]; | |
}; | |
struct Server_DeleteCharacter | |
{ | |
char mResponse; | |
int mPlayerSeq; | |
int mDeleteDate; | |
}; | |
struct Client_ChoiceCharacter | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_ChoiceCharacter | |
{ | |
char mResponse; | |
int mPlayerSeq; | |
}; | |
struct Server_Data | |
{ | |
char mState; | |
int mServerCode; | |
char mTitle[SERVER_NAME_SIZE]; | |
short mMax; | |
short mCurrent; | |
struct Address mAddress; | |
}; | |
struct Client_ServerList | |
{ | |
char mChannel; | |
}; | |
struct Server_ServerList | |
{ | |
char mResponse; | |
char mChannel; | |
struct Server_Data mServerData[LIST10_SIZE]; | |
}; | |
struct Client_ExecuteTutorial | |
{ | |
char mTutorial; | |
char mOrder; | |
}; | |
struct Server_ExecuteTutorial | |
{ | |
char mResponse; | |
char mTutorial; | |
}; | |
struct Client_ExecuteQuest | |
{ | |
char mQuest; | |
char mOrder; | |
}; | |
struct Server_ExecuteQuest | |
{ | |
char mResponse; | |
char mQuest; | |
struct Money mMoney; | |
}; | |
struct Client_GameLogin | |
{ | |
int mMemberSeq; | |
int mPlayerSeq; | |
}; | |
struct Server_GameLogin | |
{ | |
char mResponse; | |
}; | |
struct Client_GameExit | |
{ | |
char mReason; | |
}; | |
struct Server_GameExit | |
{ | |
char mResponse; | |
}; | |
struct Client_UDPConfirm | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_UDPConfirm | |
{ | |
char mResponse; | |
}; | |
struct NoticeData | |
{ | |
int mNoticeSeq; | |
char mtrText[TIP_SIZE]; | |
}; | |
struct Client_NoticeList | |
{ | |
int mVersion; | |
}; | |
struct Server_NoticeList | |
{ | |
char mResponse; | |
int mVersion; | |
struct NoticeData mNoticeList[LIST10_SIZE]; | |
}; | |
struct PlayerInfo | |
{ | |
int mPlayerSeq; | |
char mName[PLAYER_NAME_SIZE]; | |
char mMent[PLAYER_MENT_SIZE]; | |
struct Level mLevel; | |
struct Faculty mBaseFaculty; | |
struct Faculty mRaiseFaculty; | |
struct Faculty mItemFaculty; | |
struct Faculty mTrainingFaculty; | |
struct Record mTotalRecord; | |
struct Record mQuarterRecord; | |
struct Ranking mTotalRanking; | |
struct Ranking mQuarterRanking; | |
}; | |
struct Client_PlayerInfo: public CHeadPacket | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_PlayerInfo | |
{ | |
char mResponse; | |
struct PlayerInfo mPlayerInfo; | |
}; | |
struct ItemInfo | |
{ | |
int mItemSeq; | |
int mCode; | |
char mEquipKind; | |
short mAmount; | |
char mSlot; | |
int mOptionCode[OPTION_SIZE]; | |
int mSlotCode[SLOT_SIZE]; | |
}; | |
struct Client_ItemInfo | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_ItemInfo | |
{ | |
char mResponse; | |
char mCount; | |
struct ItemInfo mItemInfo[MAX_ITEM_LIST]; | |
}; | |
struct Client_SkillInfo | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_SkillInfo | |
{ | |
char mResponse; | |
char mCount; | |
struct SkillInfo mSkillInfo[MAX_SKILL_LIST]; | |
}; | |
struct Client_TrainingInfo | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_TrainingInfo | |
{ | |
char mResponse; | |
char mCount; | |
struct TrainingInfo mTrainingInfo[MAX_TRAINING_LIST]; | |
}; | |
struct Client_CeremonyInfo | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_CeremonyInfo | |
{ | |
char mResponse; | |
char mCount; | |
struct CeremonyInfo mCeremonyInfo[MAX_CEREMONEY_LIST]; | |
}; | |
struct QuestInfo | |
{ | |
int mQuestSeq; | |
int mCode; | |
short mAmount; | |
int mPlayDate; | |
}; | |
struct Client_QuestInfo | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_QuestInfo | |
{ | |
char mResponse; | |
char mCount; | |
struct QuestInfo mQuestInfo[MAX_QUEST_LIST]; | |
}; | |
struct SaleList | |
{ | |
char mObjectKind; | |
int mCode; | |
char mSaleKind; | |
int mPrice; | |
short mAmount; | |
int mSaleDate; | |
}; | |
struct Client_SaleList | |
{ | |
char mPeriod; | |
char mPage; | |
}; | |
struct Server_SaleList | |
{ | |
char mResponse; | |
char mPeriod; | |
char mPage; | |
char mTotalPage; | |
struct SaleList mSaleList[LIST10_SIZE]; | |
}; | |
struct RoomInfo | |
{ | |
char mState; | |
char mMode; | |
char mCource; | |
int mRoomSeq; | |
char mRoomJangTeam; | |
int mHomeJangSeq; | |
int mAwayJangSeq; | |
char mTitle[TITLE_NAME_SIZE]; | |
char mPass[5]; | |
int mQuestCode; | |
char mGroundCode; | |
char mBallCode; | |
char mTimeCode; | |
char mWeatherCode; | |
char mAttackCode; | |
char mScaleCode; | |
char mAICode; | |
char mStartLevel; | |
char mEndLevel; | |
char mAttackTeam; | |
char mMaxCount; | |
char mCheckClub; | |
char mCheckTime; | |
char mCheckWeather; | |
char mCheckView; | |
char mCheckViewChat; | |
struct ReserveSeat mHomeSeat; | |
struct ReserveSeat mAwaySeat; | |
struct ReserveSeat mViewSeat; | |
}; | |
struct Client_RoomInfo | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_RoomInfo: public CHeadPacket | |
{ | |
char mResponse; | |
struct RoomInfo mRoomInfo; | |
}; | |
struct RoomData | |
{ | |
char mState; | |
char mMode; | |
char mCource; | |
int mRoomSeq; | |
char mTitle[TITLE_NAME_SIZE]; | |
char mScaleCode; | |
char mAICode; | |
char mStartLevel; | |
char mEndLevel; | |
char mCheckClub; | |
char mCheckView; | |
char mAthleteCount; | |
char mMaxCount; | |
char mViewCount; | |
struct ReserveSeat mHomeSeat; | |
struct ReserveSeat mAwaySeat; | |
}; | |
struct Client_RoomList | |
{ | |
char mListKind; | |
char mPage; | |
}; | |
struct Server_RoomList: public CHeadPacket | |
{ | |
char mResponse; | |
char mPage; | |
struct RoomData mRoomData[LIST5_SIZE]; | |
}; | |
struct LobbyData | |
{ | |
char mState; | |
char mPlayerSeq; | |
char mPosition; | |
char mLevel; | |
char mName[PLAYER_NAME_SIZE]; | |
char mMent[PLAYER_MENT_SIZE]; | |
}; | |
struct Client_LobbyList | |
{ | |
char mPage; | |
}; | |
struct Server_LobbyList | |
{ | |
char mResponse; | |
char mPage; | |
struct LobbyData mLobbyData[LIST10_SIZE]; | |
}; | |
struct Client_CreateRoom | |
{ | |
char mState; | |
char mMode; | |
char mTitle[TITLE_NAME_SIZE]; | |
char mPass[5]; | |
char mAttackCode; | |
char mScaleCode; | |
char mAICode; | |
char mStartLevel; | |
char mEndLevel; | |
char mCheckClub; | |
char mCheckTime; | |
char mCheckWeather; | |
char mCheckView; | |
char mCheckViewChat; | |
char mMaxCount; | |
char mHomePosition[TEAmIZE]; | |
char mAwayPosition[TEAmIZE]; | |
}; | |
struct Server_CreateRoom: public CHeadPacket | |
{ | |
char mResponse; | |
}; | |
struct Client_SetRoom | |
{ | |
int mRoomSeq; | |
char mState; | |
char mMode; | |
char mTitle[TITLE_NAME_SIZE]; | |
char mPass[5]; | |
char mAttackCode; | |
char mScaleCode; | |
char mAICode; | |
char mStartLevel; | |
char mEndLevel; | |
char mCheckClub; | |
char mCheckTime; | |
char mCheckWeather; | |
char mCheckView; | |
char mCheckViewChat; | |
char mMaxCount; | |
}; | |
struct Server_SetRoom | |
{ | |
char mResponse; | |
char mState; | |
char mMode; | |
char mTitle[TITLE_NAME_SIZE]; | |
char mPass[5]; | |
char mAttackCode; | |
char mScaleCode; | |
char mAICode; | |
char mStartLevel; | |
char mEndLevel; | |
char mCheckClub; | |
char mCheckTime; | |
char mCheckWeather; | |
char mCheckView; | |
char mCheckViewChat; | |
char mMaxCount; | |
}; | |
struct Client_ChoiceRoom | |
{ | |
int mRoomSeq; | |
char mType; | |
char mPass[5]; | |
}; | |
struct Server_ChoiceRoom: public CHeadPacket | |
{ | |
char mResponse; | |
int mRoomSeq; | |
char mTeam; | |
}; | |
struct Client_QuickRoom | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_QuickRoom | |
{ | |
char mResponse; | |
}; | |
struct Client_LeaveRoom | |
{ | |
int mRoomSeq; | |
}; | |
struct Server_LeaveRoom: public CHeadPacket | |
{ | |
char mResponse; | |
int mLeavePlayerSeq; | |
char mLeaveTeam; | |
}; | |
struct Client_ChangeParent | |
{ | |
}; | |
struct Server_ChangeParent: public CHeadPacket | |
{ | |
char mResponse; | |
int mParentSeq; | |
struct Address mParentAddress; | |
}; | |
struct Client_ChangeJang | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_ChangeJang: public CHeadPacket | |
{ | |
char mResponse; | |
char mRoomJangTeam; | |
int mHomeJangSeq; | |
int mAwayJangSeq; | |
}; | |
struct AthleteInfo | |
{ | |
int mPlayerSeq; | |
char mPosition; | |
char mTeam; | |
char mSeat; | |
char mName[PLAYER_NAME_SIZE]; | |
char mMent[PLAYER_MENT_SIZE]; | |
struct Level mLevel; | |
struct Shape mShape; | |
struct Address mAddress; | |
struct Faculty mBaseFaculty; | |
struct Faculty mRaiseFaculty; | |
struct Faculty mItemFaculty; | |
struct Faculty mTrainingFaculty; | |
int mEquipWear[MAX_EQUIP]; | |
int mHomeWear[4]; | |
int mAwayWear[4]; | |
struct SkillInfo mSkillInfo[MAX_SKILL]; | |
struct CeremonyInfo mCeremonyInfo[MAX_CEREMONY]; | |
}; | |
struct Client_AthleteInfo | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_AthleteInfo | |
{ | |
char mResponse; | |
struct AthleteInfo mAthleteInfo; | |
}; | |
struct Client_AthleteEnd | |
{ | |
}; | |
struct Server_AthleteEnd | |
{ | |
char mResponse; | |
}; | |
struct RobotInfo | |
{ | |
int mRobotSeq; | |
char mTeam; | |
char mSeat; | |
char mLevel; | |
char mPosition; | |
int mCostume; | |
}; | |
struct Client_RobotInfo | |
{ | |
int mRoomSeq; | |
}; | |
struct Server_RobotInfo | |
{ | |
char mResponse; | |
struct RobotInfo mRobotInfo; | |
}; | |
struct Client_RobotEnd | |
{ | |
}; | |
struct Server_RobotEnd | |
{ | |
char mResponse; | |
}; | |
struct Client_ChangeGround | |
{ | |
int mGroundCode; | |
}; | |
struct Server_ChangeGround | |
{ | |
char mResponse; | |
int mGroundCode; | |
}; | |
struct Client_ChangeBall | |
{ | |
int mBallCode; | |
}; | |
struct Server_ChangeBall | |
{ | |
char mResponse; | |
int mBallCode; | |
}; | |
struct Client_ForceOut | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_ForceOut | |
{ | |
char mResponse; | |
}; | |
struct Client_InvitePlayer | |
{ | |
int mPlayerSeq; | |
char mMessage[MESSAGE_SIZE]; | |
}; | |
struct Server_InvitePlayer | |
{ | |
char mResponse; | |
char mFromName[PLAYER_NAME_SIZE]; | |
char mMessage[MESSAGE_SIZE]; | |
char mPass[5]; | |
int mRoomSeq; | |
}; | |
struct Client_GameReady | |
{ | |
char mReady; | |
}; | |
struct Server_GameReady | |
{ | |
char mResponse; | |
char mReady; | |
char mCancelTeam; | |
}; | |
struct Client_GameStart | |
{ | |
int mRoomSeq; | |
}; | |
struct Server_GameStart | |
{ | |
char mResponse; | |
int mParentSeq; | |
struct Address mParentAddress; | |
struct Mission mMission; | |
}; | |
struct Client_GameCount | |
{ | |
char mCount; | |
}; | |
struct Server_GameCount | |
{ | |
char mResponse; | |
char mCount; | |
}; | |
struct Client_GameLoad | |
{ | |
char mStep; | |
}; | |
struct Server_GameLoad | |
{ | |
char mResponse; | |
int mPlayerSeq; | |
char mStep; | |
}; | |
struct Client_GamePlay | |
{ | |
int mRoomSeq; | |
}; | |
struct Server_GamePlay | |
{ | |
char mResponse; | |
}; | |
struct Client_GameResult | |
{ | |
int mMvpSeq; | |
char mMvpLevel; | |
char mMvpPosition; | |
char mMvpName[PLAYER_NAME_SIZE]; | |
float m_fCurrentTime; | |
struct Result mHomeResult; | |
struct Result mAwayResult; | |
struct EachResult mEachResult[TEAmIZE*2]; | |
}; | |
struct Server_GameResult | |
{ | |
char mResponse; | |
int mMvpSeq; | |
char mMvpLevel; | |
char mMvpPosition; | |
char mMvpName[PLAYER_NAME_SIZE]; | |
float m_fCurrentTime; | |
struct Result mHomeResult; | |
struct Result mAwayResult; | |
struct EachResult mEachResult[TEAmIZE*2]; | |
}; | |
struct Client_GameEnd | |
{ | |
int mRoomSeq; | |
}; | |
struct Server_GameEnd | |
{ | |
char mResponse; | |
}; | |
struct Client_LevelUp | |
{ | |
}; | |
struct Server_LevelUp: public CHeadPacket | |
{ | |
char mResponse; | |
struct Money mMoney; | |
struct Level mLevel; | |
struct Faculty mBaseFaculty; | |
}; | |
struct Client_ChangeTeam | |
{ | |
char mChangeTeam; | |
}; | |
struct Server_ChangeTeam | |
{ | |
char mResponse; | |
int mPlayerSeq; | |
char mFromTeam; | |
char mToTeam; | |
char mSeat; | |
struct ReserveSeat mHomeSeat; | |
struct ReserveSeat mAwaySeat; | |
struct ReserveSeat mViewSeat; | |
}; | |
struct Client_ChangePosition | |
{ | |
char mHomePosition[TEAmIZE]; | |
char mAwayPosition[TEAmIZE]; | |
}; | |
struct Server_ChangePosition | |
{ | |
char mResponse; | |
struct ReserveSeat mHomeSeat; | |
struct ReserveSeat mAwaySeat; | |
}; | |
struct Client_ChangeMent | |
{ | |
char mMent[PLAYER_MENT_SIZE]; | |
}; | |
struct Server_ChangeMent | |
{ | |
char mResponse; | |
char mMent[PLAYER_MENT_SIZE]; | |
}; | |
struct Client_GrowupCharacter | |
{ | |
char mPosition; | |
}; | |
struct Server_GrowupCharacter | |
{ | |
char mResponse; | |
struct PlayerInfo mPlayerInfo; | |
}; | |
struct Client_QuestReward | |
{ | |
char mQuest; | |
}; | |
struct Server_QuestReward | |
{ | |
char mResponse; | |
}; | |
struct ShopItemData | |
{ | |
int mCode; | |
int mRemain; | |
char mDiscount; | |
}; | |
struct Client_ShopItemList | |
{ | |
int mType; | |
char mBrand; | |
short mPage; | |
}; | |
struct Server_ShopItemList | |
{ | |
char mResponse; | |
short mCurrentPage; | |
short mTotalPage; | |
struct ShopItemData mShopItemData[LIST6_SIZE]; | |
}; | |
struct Client_UpdateItem | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_UpdateItem | |
{ | |
char mResponse; | |
char mUpdateKind; | |
int mItemSeq; | |
int mCode; | |
char mEquipKind; | |
short mAmount; | |
char mSlot; | |
int mOptionCode[OPTION_SIZE]; | |
int mSlotCode[SLOT_SIZE]; | |
struct Faculty mItemFaculty; | |
}; | |
struct Client_EquipItem | |
{ | |
int mItemSeq; | |
}; | |
struct Server_EquipItem | |
{ | |
char mResponse; | |
int mItemSeq; | |
char mEquipKind; | |
struct Faculty mItemFaculty; | |
int mEquipWear[MAX_EQUIP]; | |
}; | |
struct Client_DivestItem | |
{ | |
int mItemSeq; | |
}; | |
struct Server_DivestItem | |
{ | |
char mResponse; | |
int mItemSeq; | |
char mEquipKind; | |
struct Faculty mItemFaculty; | |
int mEquipWear[MAX_EQUIP]; | |
}; | |
struct Client_BuyItem | |
{ | |
int mCode; | |
char mBuyKind; | |
int mPrice; | |
int mOptionCode[OPTION_SIZE]; | |
}; | |
struct Server_BuyItem | |
{ | |
char mResponse; | |
struct Money mMoney; | |
struct Shape mShape; | |
int mEquipWear[MAX_EQUIP]; | |
char mEquipKind; | |
}; | |
struct Client_GiftItem | |
{ | |
int mToPlayerSeq; | |
int mCode; | |
char mBuyKind; | |
int mPrice; | |
int mOptionCode[OPTION_SIZE]; | |
}; | |
struct Server_GiftItem | |
{ | |
char mResponse; | |
struct Money mMoney; | |
}; | |
struct Client_ExchangeItem | |
{ | |
int mCode; | |
char mBuyKind; | |
int mPrice; | |
}; | |
struct Server_ExchangeItem | |
{ | |
char mResponse; | |
struct Money mMoney; | |
struct Shape mShape; | |
int mEquipWear[MAX_EQUIP]; | |
}; | |
struct ShopSkillData | |
{ | |
int mCode; | |
char mDiscount; | |
}; | |
struct Client_ShopSkillList | |
{ | |
char mType; | |
char mPosition; | |
short mPage; | |
}; | |
struct Server_ShopSkillList | |
{ | |
char mResponse; | |
short mCurrentPage; | |
short mTotalPage; | |
char mType; | |
char mPosition; | |
struct ShopSkillData mShopSkillData[LIST6_SIZE]; | |
}; | |
struct Client_UpdateSkill | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_UpdateSkill | |
{ | |
char mResponse; | |
char mUpdateKind; | |
int mSkillSeq; | |
int mCode; | |
char mEquipKind; | |
char mLevel; | |
}; | |
struct Client_EquipSkill | |
{ | |
int mSkillSeq; | |
}; | |
struct Server_EquipSkill | |
{ | |
char mResponse; | |
int mSkillSeq; | |
char mEquipKind; | |
}; | |
struct Client_DivestSkill | |
{ | |
int mSkillSeq; | |
}; | |
struct Server_DivestSkill | |
{ | |
char mResponse; | |
int mSkillSeq; | |
char mEquipKind; | |
}; | |
struct Client_BuySkill | |
{ | |
int mCode; | |
char mBuyKind; | |
int mPrice; | |
}; | |
struct Server_BuySkill | |
{ | |
char mResponse; | |
struct Money mMoney; | |
char mEquipKind; | |
}; | |
struct ShopTrainingData | |
{ | |
int mCode; | |
char mDiscount; | |
}; | |
struct Client_ShopTrainingList | |
{ | |
short mPage; | |
}; | |
struct Server_ShopTrainingList | |
{ | |
char mResponse; | |
short mCurrentPage; | |
short mTotalPage; | |
struct ShopTrainingData mShopTrainingData[LIST6_SIZE]; | |
}; | |
struct Client_UpdateTraining | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_UpdateTraining | |
{ | |
char mResponse; | |
char mUpdateKind; | |
int mTrainingSeq; | |
int mCode; | |
char mLevel; | |
}; | |
struct Client_BuyTraining | |
{ | |
int mCode; | |
char mBuyKind; | |
int mPrice; | |
}; | |
struct Server_BuyTraining | |
{ | |
char mResponse; | |
struct Money mMoney; | |
char mEquipKind; | |
struct Faculty mTrainingFaculty; | |
}; | |
struct ShopCeremonyData | |
{ | |
int mCode; | |
char mDiscount; | |
}; | |
struct Client_ShopCeremonyList | |
{ | |
short mPage; | |
}; | |
struct Server_ShopCeremonyList | |
{ | |
char mResponse; | |
short mCurrentPage; | |
short mTotalPage; | |
struct ShopCeremonyData mShopCeremonyData[LIST6_SIZE]; | |
}; | |
struct Client_UpdateCeremony | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_UpdateCeremony | |
{ | |
char mResponse; | |
char mUpdateKind; | |
int mCeremonySeq; | |
int mCode; | |
char mEquipKind; | |
}; | |
struct Client_EquipCeremony | |
{ | |
int mCeremonySeq; | |
}; | |
struct Server_EquipCeremony | |
{ | |
char mResponse; | |
int mCeremonySeq; | |
char mEquipKind; | |
}; | |
struct Client_DivestCeremony | |
{ | |
int mCeremonySeq; | |
}; | |
struct Server_DivestCeremony | |
{ | |
char mResponse; | |
int mCeremonySeq; | |
char mEquipKind; | |
}; | |
struct Client_BuyCeremony | |
{ | |
int mCode; | |
char mBuyKind; | |
int mPrice; | |
}; | |
struct Server_BuyCeremony | |
{ | |
char mResponse; | |
struct Money mMoney; | |
char mEquipKind; | |
}; | |
struct QuestData | |
{ | |
int mCode; | |
}; | |
struct Client_QuestList | |
{ | |
short mPage; | |
}; | |
struct Server_QuestList | |
{ | |
char mResponse; | |
short mCurrentPage; | |
short mTotalPage; | |
struct QuestData mQuestData[LIST6_SIZE]; | |
}; | |
struct Client_UpdateQuest | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_UpdateQuest | |
{ | |
char mResponse; | |
char mUpdateKind; | |
int mQuestSeq; | |
int mCode; | |
short mAmount; | |
int mPlayDate; | |
}; | |
struct Client_CreateQuest | |
{ | |
char mState; | |
char mMode; | |
char mTitle[TITLE_NAME_SIZE]; | |
char mPass[5]; | |
int mQuestCode; | |
char mAttackCode; | |
char mScaleCode; | |
char mAICode; | |
char mStartLevel; | |
char mEndLevel; | |
char mCheckClub; | |
char mCheckTime; | |
char mCheckWeather; | |
char mCheckView; | |
char mCheckViewChat; | |
char mMaxCount; | |
char mHomePosition[TEAmIZE]; | |
char mAwayPosition[TEAmIZE]; | |
}; | |
struct Server_CreateQuest | |
{ | |
char mResponse; | |
}; | |
struct Client_TCPPing | |
{ | |
char mNone; | |
}; | |
struct Server_TCPPing | |
{ | |
char mResponse; | |
}; | |
struct Client_SendMessage | |
{ | |
char mChatKind; | |
char mToName[PLAYER_NAME_SIZE]; | |
char mMessage[MESSAGE_SIZE]; | |
}; | |
struct Server_SendMessage | |
{ | |
int mPlayerSeq; | |
char mResponse; | |
char mChatKind; | |
char mFromName[PLAYER_NAME_SIZE]; | |
char mMessage[MESSAGE_SIZE]; | |
}; | |
struct Client_RaiseFaculty | |
{ | |
struct Faculty mChangeFaculty; | |
}; | |
struct Server_RaiseFaculty | |
{ | |
char mResponse; | |
struct Level mLevel; | |
struct Faculty mRaiseFaculty; | |
}; | |
struct Client_ChangeSetting | |
{ | |
char mInitSetting; | |
struct Setting mChangeSetting; | |
}; | |
struct Server_ChangeSetting | |
{ | |
char mResponse; | |
struct Setting mSetting; | |
}; | |
struct Client_UDPPunching | |
{ | |
int mPlayerSeq; | |
}; | |
struct Server_UDPPing | |
{ | |
char mResponse; | |
}; | |
struct Client_CharacterSearch | |
{ | |
char mName[PLAYER_NAME_SIZE]; | |
}; | |
struct Server_CharacterSearch | |
{ | |
char mResponse; | |
int mPlayerSeq; | |
}; | |
struct Client_PostItem | |
{ | |
int mItemSeq; | |
int mPlayerSeq; | |
}; | |
struct Server_PostItem | |
{ | |
char mResponse; | |
int mItemSeq; | |
struct Faculty mItemFaculty; | |
int mEquipWear[MAX_EQUIP]; | |
}; | |
struct Client_MissionReward | |
{ | |
struct Mission mMission; | |
}; | |
struct Server_MissionReward | |
{ | |
char mResponse; | |
}; | |
struct Client_StsLogin | |
{ | |
short mServerCode; | |
}; | |
struct Server_StsLogin | |
{ | |
char mResponse; | |
}; | |
#pragma pack(pop) | |
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef _STRUCT_TYPES_H_ | |
#define _STRUCT_TYPES_H_ | |
#include "define.h" | |
#pragma pack(push, 1) | |
struct Shape { | |
char mGender; | |
char mSkin; | |
char mUniform; | |
}; | |
struct Level { | |
short mLevel; | |
int mExp; | |
short mFaculty; | |
short mSkill; | |
}; | |
struct Money { | |
int mCash; | |
int mPoint; | |
int mCredit; | |
int mClubPoint; | |
}; | |
struct Size { | |
char mCharacterSize; | |
char mInvenSize; | |
char mSkillSize; | |
}; | |
struct Club { | |
char msClubNmae[CLUB_NAME_SIZE]; | |
int mClubSeq; | |
char mClubGradeCode; | |
}; | |
struct Address { | |
char msIP[IP_SIZE]; | |
int mPort; | |
}; | |
struct Faculty { | |
char mFaculty[ARRAY_FACULTY_SIZE]; | |
}; | |
struct ItemFacultyInfo { | |
char mFacultyCnt; | |
unsigned int mFaculty[MAX_ITEmFACULTY_SIZE]; | |
}; | |
struct FacultyInt { | |
int mFaculty[ARRAY_FACULTY_SIZE]; | |
}; | |
struct BuddyInfo { | |
int mSeq; | |
int mPlayerSeq; | |
int mState; | |
int mWhere; | |
short mLevel; | |
char mPosition; | |
char msName[PLAYER_NAME_SIZE]; | |
}; | |
struct Result { | |
short mResult[ARRAY_RESULT_SIZE]; | |
}; | |
struct Record { | |
int mRecord[ARRAY_RECORD_SIZE]; | |
}; | |
struct Ranking { | |
short mRanking[ARRAY_RANKING_SIZE]; | |
}; | |
struct SkillInfo { | |
int mSkillSeq; | |
int mCode; | |
char mEquipKind; | |
char mLevel; | |
}; | |
struct TrainingInfo { | |
int mTrainingSeq; | |
int mCode; | |
char mLevel; | |
}; | |
struct CeremonyInfo { | |
int mCeremonySeq; | |
int mCode; | |
char mEquipKind; | |
}; | |
struct Setting { | |
char mCameraType; | |
char mCameraTarget; | |
char mCameraTeam; | |
char mCameraZoom; | |
char mRadian; | |
char mShadow; | |
char mLabel; | |
char mSound; | |
char mMusic; | |
char mInvite; | |
char mWhisper; | |
char mFriend; | |
short mDefineKey[ARRAY_KEY_SIZE]; | |
int mAttackSkillCode[ARRAY_SKILL_KEY_SIZE]; | |
int mDefenceSkillCode[ARRAY_SKILL_KEY_SIZE]; | |
}; | |
struct Mission { | |
int mSeq; | |
int mCount; | |
int mReward; | |
char mKind; | |
}; | |
struct EachResult { | |
int mPlayerSeq; | |
char mTeam; | |
short mLevel; | |
char mPosition; | |
char msName[PLAYER_NAME_SIZE]; | |
int mExp; | |
int mPoint; | |
char mIsMvp; | |
char mIsExpItem; | |
char mIsPointItem; | |
char mIsGoldenTime; | |
char mIsNumber; | |
char mIsEvent; | |
char mIsLevelUp; | |
struct Result mPlayerResult; | |
}; | |
struct ReserveSeat { | |
char mReservePosition[TEAM_SIZE]; | |
char mUsingPosition[TEAM_SIZE]; | |
int mPlayerSeq[TEAM_SIZE]; | |
}; | |
struct Sale { | |
char mObjectKind; | |
char mSaleKind; | |
int mObjectSeq; | |
int mObjectCode; | |
int mPrice; | |
int mAmount; | |
}; | |
struct Gift { | |
char mKind; | |
int mCode; | |
int mAmount; | |
}; | |
struct TeamSeat { | |
char mTeam; | |
char mSeat; | |
}; | |
struct HeadPacket | |
{ | |
int mCommand; | |
int mBodySize; | |
int mSequence; | |
}; | |
struct ScheduleData | |
{ | |
char mTimeType; | |
char mDate; | |
int mServerCode; | |
int mTimeSeq; | |
int mStart; | |
int mEnd; | |
}; | |
struct WeatherData | |
{ | |
char mWeatherType; | |
char mDate; | |
int mWeatherSeq; | |
int mStart; | |
int mEnd; | |
}; | |
struct PlayLog | |
{ | |
int mExp; | |
int mMatch; | |
int mPoint; | |
int mCash; | |
int mDate; | |
}; | |
#pragma pack(pop) | |
#endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment