public static void HandleShoppingMall(Packet pkt, User pUser) { if (pkt.GetByte() != STORE_LETTER) return; byte opcode = pkt.GetByte(); switch (opcode) { // Are there any letters to be read? // This is for the notification at the top of the screen. case LETTER_UNREAD: ReqLetterUnread(pUser); break; // Lists all the new mail. case LETTER_LIST: ReqLetterList(true,pUser); break; // Lists all the old mail. case LETTER_HISTORY: ReqLetterList(false, pUser); break; // Opens up the letter & marks it as read. case LETTER_READ: ReqLetterRead(pkt, pUser); break; // Used to send a letter & any coins/items (coins are disabled though) case LETTER_SEND: ReqLetterSend(pkt, pUser); break; // Used to take an item from a letter. case LETTER_GET_ITEM: ReqLetterGetItem(pkt, pUser); break; // Deletes up to 5 old letters at a time. case LETTER_DELETE: ReqLetterDelete(pkt, pUser); break; } }
private void Parsing(Packet pkt) { Debug.WriteLine("Clientten İstek geldi"); byte command = pkt.GetByte(); switch ((LogonOpcodes)command) { case LogonOpcodes.LS_VERSION_REQ: HandleVersion(pkt); break; case LogonOpcodes.LS_DOWNLOADINFO_REQ: HandlePatches(pkt); break; case LogonOpcodes.LS_CRYPTION: HandleSetEncryptionPublicKey(pkt); break; case LogonOpcodes.LS_LOGIN_REQ: HandleLogin(pkt); break; case LogonOpcodes.LS_MGAME_LOGIN: break; case LogonOpcodes.LS_SERVERLIST: HandeleServerList(pkt); break; case LogonOpcodes.LS_NEWS: HandleNews(pkt); break; case LogonOpcodes.LS_UNKF7: break; } }
public void GameStart(Packet pkt) { if (IsInGame()) return; byte opcode = pkt.GetByte(); Console.WriteLine("Game Start Opcode : " + opcode); if (opcode == 1) { SendMyInfo(); g_pMain.UserInOutForMe(this); g_pMain.MerchantUserInOutForMe(this); g_pMain.NpcInOutForMe(this); SendNotice(); TopSendNotice(); SendTime(); SendWeather(); Packet result = new Packet(2); result.SetByte(WIZ_GAMESTART); Send(result); m_State = GameState.GAME_STATE_INGAME; UserInOut(InOutType.INOUT_RESPAWN, this); bGameStart = true; SetUserAbility(); if (isDead()) SendDeathAnimation(); // m_tGameStartTimeSavedMagic = UNIXTIME; m_LastX = GetX(); m_LastZ = GetZ(); } BlinkStart(); m_tHPLastTimeNormal = UNIXTIME; }
public void Parsing(Packet pkt) { byte command = pkt.GetByte(); Console.WriteLine("Client Received : 0x" + command.ToString("X2")); if (!bSelectChar) { switch (command) { case WIZ_VERSION_CHECK: VersionCheck(this); break; case WIZ_LOGIN: AccountLogin(this, pkt); break; case WIZ_ALLCHAR_INFO_REQ: LoadCharInfoReq(this, pkt); break; case WIZ_SEL_NATION: SelectNation(this, pkt); break; case WIZ_SEL_CHAR: SelCharToAgent(this, pkt); break; case WIZ_NEW_CHAR: CreateNewChar(this, pkt); break; case WIZ_LOGINCHECKFORV2: { Packet result = new Packet(WIZ_LOGINCHECKFORV2); result.SetByte(1); Send(result); } break; } } else { switch (command) { case WIZ_MOVE: break; case WIZ_USER_INOUT: break; case WIZ_ATTACK: break; case WIZ_ROTATE: break; case WIZ_NPC_INOUT: break; case WIZ_NPC_MOVE: break; case WIZ_ALLCHAR_INFO_REQ: break; case WIZ_GAMESTART: GameStart(pkt); break; case WIZ_MYINFO: break; case WIZ_LOGOUT: break; case WIZ_CHAT: break; case WIZ_DEAD: break; case WIZ_REGENE: break; case WIZ_TIME: break; case WIZ_WEATHER: break; case WIZ_REGIONCHANGE: break; case WIZ_REQ_USERIN: break; case WIZ_HP_CHANGE: break; case WIZ_MSP_CHANGE: break; case WIZ_ITEM_LOG: break; case WIZ_EXP_CHANGE: break; case WIZ_LEVEL_CHANGE: break; case WIZ_NPC_REGION: break; case WIZ_REQ_NPCIN: break; case WIZ_WARP: break; case WIZ_ITEM_MOVE: break; case WIZ_NPC_EVENT: break; case WIZ_ITEM_TRADE: break; case WIZ_TARGET_HP: break; case WIZ_ITEM_DROP: break; case WIZ_BUNDLE_OPEN_REQ: break; case WIZ_TRADE_NPC: break; case WIZ_ITEM_GET: break; case WIZ_ZONE_CHANGE: break; case WIZ_POINT_CHANGE: break; case WIZ_STATE_CHANGE: break; case WIZ_LOYALTY_CHANGE: break; case WIZ_CRYPTION: break; case WIZ_USERLOOK_CHANGE: break; case WIZ_NOTICE: break; case WIZ_PARTY: break; case WIZ_EXCHANGE: break; case WIZ_MAGIC_PROCESS: break; case WIZ_SKILLPT_CHANGE: break; case WIZ_OBJECT_EVENT: break; case WIZ_CLASS_CHANGE: break; case WIZ_CHAT_TARGET: break; case WIZ_CONCURRENTUSER: break; case WIZ_DATASAVE: break; case WIZ_DURATION: break; case WIZ_TIMENOTIFY: break; case WIZ_REPAIR_NPC: break; case WIZ_ITEM_REPAIR: break; case WIZ_KNIGHTS_PROCESS: break; case WIZ_ITEM_COUNT_CHANGE: break; case WIZ_KNIGHTS_LIST: break; case WIZ_ITEM_REMOVE: break; case WIZ_OPERATOR: break; case WIZ_SPEEDHACK_CHECK: break; case WIZ_COMPRESS_PACKET: break; case WIZ_SERVER_CHECK: break; case WIZ_CONTINOUS_PACKET: break; case WIZ_WAREHOUSE: break; case WIZ_SERVER_CHANGE: break; case WIZ_REPORT_BUG: break; case WIZ_HOME: break; case WIZ_FRIEND_PROCESS: break; case WIZ_GOLD_CHANGE: break; case WIZ_WARP_LIST: break; case WIZ_VIRTUAL_SERVER: break; case WIZ_ZONE_CONCURRENT: break; case WIZ_CORPSE: break; case WIZ_PARTY_BBS: break; case WIZ_MARKET_BBS: break; case WIZ_KICKOUT: break; case WIZ_CLIENT_EVENT: break; case WIZ_MAP_EVENT: break; case WIZ_WEIGHT_CHANGE: break; case WIZ_SELECT_MSG: break; case WIZ_NPC_SAY: break; case WIZ_BATTLE_EVENT: break; case WIZ_AUTHORITY_CHANGE: break; case WIZ_EDIT_BOX: break; case WIZ_SANTA: break; case WIZ_ITEM_UPGRADE: break; case WIZ_PACKET1: break; case WIZ_PACKET2: break; case WIZ_ZONEABILITY: break; case WIZ_EVENT: break; case WIZ_STEALTH: break; case WIZ_ROOM_PACKETPROCESS: break; case WIZ_ROOM: break; case WIZ_PACKET3: break; case WIZ_QUEST: break; case WIZ_PACKET4: break; case WIZ_KISS: break; case WIZ_RECOMMEND_USER: break; case WIZ_MERCHANT: break; case WIZ_MERCHANT_INOUT: break; case WIZ_SHOPPING_MALL: HandleShoppingMall(pkt, this); break; case WIZ_SERVER_INDEX: ServerIndex(pkt); break; case WIZ_EFFECT: break; case WIZ_SIEGE: break; case WIZ_NAME_CHANGE: break; case WIZ_WEBPAGE: break; case WIZ_CAPE: break; case WIZ_PREMIUM: break; case WIZ_HACKTOOL: break; case WIZ_RENTAL: Packet result = new Packet(20); result.SetByte(WIZ_RENTAL); result.SetByte(1); Send(result); break; case WIZ_PACKET5: break; case WIZ_CHALLENGE: break; case WIZ_PET: break; case WIZ_CHINA: break; case WIZ_KING: break; case WIZ_SKILLDATA: break; case WIZ_PROGRAMCHECK: break; case WIZ_BIFROST: break; case WIZ_REPORT: break; case WIZ_LOGOSSHOUT: break; case WIZ_PACKET6: break; case WIZ_PACKET7: break; case WIZ_RANK: break; case WIZ_STORY: break; case WIZ_PACKET8: break; case WIZ_PACKET9: break; case WIZ_PACKET10: break; case WIZ_PACKET11: break; case WIZ_MINING: break; case WIZ_HELMET: break; case WIZ_PVP: break; case WIZ_CHANGE_HAIR: break; case WIZ_PACKET12: break; case WIZ_PACKET13: break; case WIZ_PACKET14: break; case WIZ_PACKET15: break; case WIZ_PACKET16: break; case WIZ_PACKET17: break; case WIZ_DEATH_LIST: break; case WIZ_CLANPOINTS_BATTLE: break; case WIZ_TEST_PACKET: break; case WIZ_GENIE: break; case WIZ_USER_INFORMATIN: break; case WIZ_ACHIEVE: break; case WIZ_EXP_SEAL: break; case WIZ_SP_CHANGE: break; } } }
internal static void CreateNewChar(User user, Packet pkt) { Packet result = new Packet(WIZ_NEW_CHAR); byte nHair; short sClass; byte bCharIndex, bRace, bFace, str, sta, dex, intel, cha, errorCode = 0; string strUserID; bCharIndex = pkt.GetByte(); strUserID = pkt.GetString(); bRace = pkt.GetByte(); sClass = pkt.GetShort(); bFace = pkt.GetByte(); nHair = pkt.GetByte(); str = pkt.GetByte(); sta = pkt.GetByte(); dex = pkt.GetByte(); intel = pkt.GetByte(); cha = pkt.GetByte(); COEFFICIENT p_TableCoefficient = user.g_pMain.GetCoefficientData(sClass); if (bCharIndex > 2) errorCode = NEWCHAR_NO_MORE; else if (p_TableCoefficient == null || (str + sta + dex + intel + cha) > 300) errorCode = NEWCHAR_INVALID_DETAILS; else if (str < 50 || sta < 50 || dex < 50 || intel < 50 || cha < 50) errorCode = NEWCHAR_STAT_TOO_LOW; if (errorCode != 0) { result.SetByte(errorCode); user.Send(result); return; } int nRet = new KODatabase().CREATE_NEW_CHAR(user.GetAccountID(), bCharIndex, strUserID, bRace, sClass, nHair, bFace, str, sta, dex, intel, cha); result.SetByte((byte)nRet); user.Send(result); }
internal static void SelCharToAgent(User user, Packet pkt) { Packet result = new Packet(WIZ_SEL_CHAR); byte bInit, bResult = 0; string strCharID = string.Empty, strAccountID = string.Empty; strAccountID = pkt.GetString(); user.strCharID = strCharID = pkt.GetString(); bInit = pkt.GetByte(); if (user.GetAccountID() == String.Empty || user.GetName() == String.Empty || !DBAgent.LoadUserData(user.GetAccountID(), strCharID, ref user) || !DBAgent.LoadWarehouseData(user.GetAccountID(), user) || !DBAgent.LoadPremiumServiceUser(user.GetAccountID(), user) || !DBAgent.LoadSavedMagic(user)) { Debug.WriteLine("Kullanıcı girişi sırasında hata oluştu"); bResult = 0; goto fail_return; } bResult = 1; fail_return: user.SelectCharacter(bResult, bInit); }
internal static void SelectNation(User user, Packet pkt) { Packet result = new Packet(WIZ_SEL_NATION); byte nation = pkt.GetByte(); DBAgent.SelectNation(ref result,nation,user.strAccountID); user.Send(result); }
private static void ReqLetterSend(Packet pkt, User pUser) { Packet result = new Packet(WIZ_SHOPPING_MALL, STORE_LETTER); User ptUser = null; String strRecipient = String.Empty, strSubject = String.Empty, strMessage = String.Empty; _ITEM_DATA pItem = null; Int32 nItemID = 0, nCoins = 0, nCoinRequirement = 1000; Byte bType, bSrcPos; SByte bResult = 1; Int64 Serial = 0; //if(pUser.isTrading() || pUser.isMerchanting()) //{ // bResult = -1; // goto send_packet; //} pkt.SByte(); strRecipient = pkt.GetString(); strSubject = pkt.GetString(); bType = pkt.GetByte(); // invalid recipient name lenght if (strRecipient == String.Empty || strRecipient.Length > MAX_ID_SIZE // Invalid subject lenght || strSubject == String.Empty || strSubject.Length > 31 // Invalid type (as far we're concerned) || bType == 0 || bType > 2) bResult = -1; else if (STRCMP(strRecipient, pUser.strCharID)) bResult = -6; if (bResult != 1) goto send_packet; if(bType == 2) { if (nItemID != 0) nCoinRequirement = 10000; else nCoinRequirement = 5000; // Item alma fonksiyonu eklenecek } send_packet: result.SetByte(LETTER_SEND).SetByte(bResult); pUser.Send(result); }