Skip to content

Instantly share code, notes, and snippets.

@neikeq
Created May 27, 2015 13:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save neikeq/d6d00bd24db606dd0b86 to your computer and use it in GitHub Desktop.
Save neikeq/d6d00bd24db606dd0b86 to your computer and use it in GitHub Desktop.
XKick packets stuff
#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
#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;
}
}
#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
#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
#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
#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