├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── Plugins ├── AbilityTimer │ ├── AbilityTimer.cpp │ └── CMakeLists.txt ├── AntiLag │ ├── AntiLag.cpp │ └── CMakeLists.txt ├── ClientUpdate │ ├── CMakeLists.txt │ └── ClientUpdate.cpp ├── Resend │ ├── CMakeLists.txt │ └── Resend.cpp └── Welcome │ ├── CMakeLists.txt │ └── Welcome.cpp ├── README.md ├── RealmLib ├── CMakeLists.txt ├── Exports │ ├── Constants.cpp │ ├── IPlugin.cpp │ ├── Packet.cpp │ ├── ServerManager.cpp │ ├── TypeManager.cpp │ └── XmlData.cpp ├── Packets │ ├── Client │ │ ├── AcceptArenaDeath.cpp │ │ ├── AcceptTrade.cpp │ │ ├── ActivePetUpdateRequest.cpp │ │ ├── AoeAck.cpp │ │ ├── Buy.cpp │ │ ├── CancelTrade.cpp │ │ ├── ChangeGuildRank.cpp │ │ ├── ChangePetSkin.cpp │ │ ├── ChangeTrade.cpp │ │ ├── CheckCredits.cpp │ │ ├── ChooseName.cpp │ │ ├── ClaimLoginReward.cpp │ │ ├── Create.cpp │ │ ├── CreateGuild.cpp │ │ ├── EditAccountList.cpp │ │ ├── EnemyHit.cpp │ │ ├── EnterArena.cpp │ │ ├── Escape.cpp │ │ ├── FetchQuest.cpp │ │ ├── GotoAck.cpp │ │ ├── GotoQuestRoom.cpp │ │ ├── GroundDamage.cpp │ │ ├── GuildInvite.cpp │ │ ├── GuildRemove.cpp │ │ ├── Hello.cpp │ │ ├── InvDrop.cpp │ │ ├── InvSwap.cpp │ │ ├── JoinGuild.cpp │ │ ├── KeyInfoRequest.cpp │ │ ├── Load.cpp │ │ ├── Move.cpp │ │ ├── OtherHit.cpp │ │ ├── PetUpgradeRequest.cpp │ │ ├── PlayerHit.cpp │ │ ├── PlayerShoot.cpp │ │ ├── PlayerText.cpp │ │ ├── Pong.cpp │ │ ├── QuestRedeem.cpp │ │ ├── RequestTrade.cpp │ │ ├── Reskin.cpp │ │ ├── ReskinPet.cpp │ │ ├── SetCondition.cpp │ │ ├── ShootAck.cpp │ │ ├── SquareHit.cpp │ │ ├── Teleport.cpp │ │ ├── UpdateAck.cpp │ │ ├── UseItem.cpp │ │ └── UsePortal.cpp │ ├── DataObjects │ │ ├── Array.cpp │ │ ├── BitmapData.cpp │ │ ├── Entity.cpp │ │ ├── Location.cpp │ │ ├── MoveRecord.cpp │ │ ├── PlayerData.cpp │ │ ├── QuestData.cpp │ │ ├── SlotObject.cpp │ │ ├── StatData.cpp │ │ ├── Status.cpp │ │ ├── String.cpp │ │ ├── Tile.cpp │ │ └── TradeItem.cpp │ ├── PacketReader.cpp │ ├── PacketReader.h │ ├── PacketWriter.cpp │ ├── PacketWriter.h │ └── Server │ │ ├── AccountList.cpp │ │ ├── ActivePetUpdate.cpp │ │ ├── AllyShoot.cpp │ │ ├── Aoe.cpp │ │ ├── ArenaDeath.cpp │ │ ├── ArenaNextWave.cpp │ │ ├── BuyResult.cpp │ │ ├── ClaimLoginRewardResponse.cpp │ │ ├── ClientStat.cpp │ │ ├── CreateSuccess.cpp │ │ ├── Damage.cpp │ │ ├── Death.cpp │ │ ├── EnemyShoot.cpp │ │ ├── Failure.cpp │ │ ├── FetchQuestResponse.cpp │ │ ├── File.cpp │ │ ├── GlobalNotification.cpp │ │ ├── Goto.cpp │ │ ├── GuildResult.cpp │ │ ├── InvResult.cpp │ │ ├── InvitedToGuild.cpp │ │ ├── KeyInfoResponse.cpp │ │ ├── MapInfo.cpp │ │ ├── NameResult.cpp │ │ ├── NewAbilityUnlocked.cpp │ │ ├── NewTick.cpp │ │ ├── Notification.cpp │ │ ├── PasswordPrompt.cpp │ │ ├── PetDeleted.cpp │ │ ├── PetEvolved.cpp │ │ ├── PetHatched.cpp │ │ ├── PetYardUpdate.cpp │ │ ├── Pic.cpp │ │ ├── Ping.cpp │ │ ├── PlaySound.cpp │ │ ├── QuestObjId.cpp │ │ ├── QuestRedeemResponse.cpp │ │ ├── Reconnect.cpp │ │ ├── ReskinUnlock.cpp │ │ ├── ServerPlayerShoot.cpp │ │ ├── ShowEffect.cpp │ │ ├── Text.cpp │ │ ├── TradeAccepted.cpp │ │ ├── TradeChanged.cpp │ │ ├── TradeDone.cpp │ │ ├── TradeRequested.cpp │ │ ├── TradeStart.cpp │ │ ├── Update.cpp │ │ └── VerifyEmail.cpp ├── Structures │ ├── CharacterData.cpp │ ├── ConditionEffectData.cpp │ ├── ItemData.cpp │ ├── ObjectData.cpp │ ├── ProjectileData.cpp │ └── TileData.cpp ├── Util │ ├── Random.cpp │ └── Random.h ├── stdafx.cpp └── stdafx.h ├── RealmNet ├── CMakeLists.txt ├── Crypto │ ├── RC4Cipher.cpp │ └── RC4Cipher.h ├── Data │ ├── CallbackFunc.cpp │ ├── CallbackFunc.h │ ├── KeyHook.cpp │ ├── KeyHook.h │ ├── PluginManager.cpp │ ├── PluginManager.h │ ├── ServerSelection.cpp │ ├── ServerSelection.h │ ├── SettingsFile.cpp │ └── SettingsFile.h ├── Networking │ ├── Acceptor.cpp │ ├── Acceptor.h │ ├── ClientConnection.cpp │ ├── ClientConnection.h │ ├── Connection.cpp │ ├── Connection.h │ ├── Proxy.cpp │ ├── Proxy.h │ ├── ServerConnection.cpp │ └── ServerConnection.h ├── Program.cpp ├── stdafx.cpp └── stdafx.h ├── RealmXml ├── CMakeLists.txt ├── Https │ ├── Downloader.cpp │ └── Downloader.h ├── Parser │ ├── DataParser.cpp │ ├── DataParser.h │ ├── ServerParser.cpp │ └── ServerParser.h ├── RealmXml.cpp ├── Util │ ├── Util.cpp │ └── Util.h ├── stdafx.cpp └── stdafx.h ├── data.bin ├── documentation.md ├── include ├── DataObjects │ ├── Array.h │ ├── BitmapData.h │ ├── Entity.h │ ├── Location.h │ ├── MoveRecord.h │ ├── PlayerData.h │ ├── QuestData.h │ ├── SlotObject.h │ ├── StatData.h │ ├── Status.h │ ├── String.h │ ├── Tile.h │ └── TradeItem.h ├── DataStructures │ ├── CharacterData.h │ ├── ConditionEffectData.h │ ├── ItemData.h │ ├── ObjectData.h │ ├── ProjectileData.h │ └── TileData.h ├── GameData │ ├── Constants.h │ ├── ServerManager.h │ ├── TypeManager.h │ └── XmlData.h ├── Interface │ └── IPlugin.h ├── Packets │ ├── AcceptArenaDeath.h │ ├── AcceptTrade.h │ ├── AccountList.h │ ├── ActivePetUpdate.h │ ├── ActivePetUpdateRequest.h │ ├── AllyShoot.h │ ├── Aoe.h │ ├── AoeAck.h │ ├── ArenaDeath.h │ ├── ArenaNextWave.h │ ├── Buy.h │ ├── BuyResult.h │ ├── CancelTrade.h │ ├── ChangeGuildRank.h │ ├── ChangePetSkin.h │ ├── ChangeTrade.h │ ├── CheckCredits.h │ ├── ChooseName.h │ ├── ClaimLoginReward.h │ ├── ClaimLoginRewardResponse.h │ ├── ClientPackets.h │ ├── ClientStat.h │ ├── Create.h │ ├── CreateGuild.h │ ├── CreateSuccess.h │ ├── Damage.h │ ├── Death.h │ ├── EditAccountList.h │ ├── EnemyHit.h │ ├── EnemyShoot.h │ ├── EnterArena.h │ ├── Escape.h │ ├── Failure.h │ ├── FetchQuest.h │ ├── FetchQuestResponse.h │ ├── File.h │ ├── GlobalNotification.h │ ├── Goto.h │ ├── GotoAck.h │ ├── GotoQuestRoom.h │ ├── GroundDamage.h │ ├── GuildInvite.h │ ├── GuildRemove.h │ ├── GuildResult.h │ ├── Hello.h │ ├── InvDrop.h │ ├── InvResult.h │ ├── InvSwap.h │ ├── InvitedToGuild.h │ ├── JoinGuild.h │ ├── KeyInfoRequest.h │ ├── KeyInfoResponse.h │ ├── Load.h │ ├── MapInfo.h │ ├── Move.h │ ├── NameResult.h │ ├── NewAbilityUnlocked.h │ ├── NewTick.h │ ├── Notification.h │ ├── OtherHit.h │ ├── Packet.h │ ├── PasswordPrompt.h │ ├── PetDeleted.h │ ├── PetEvolved.h │ ├── PetHatched.h │ ├── PetUpgradeRequest.h │ ├── PetYardUpdate.h │ ├── Pic.h │ ├── Ping.h │ ├── PlaySound.h │ ├── PlayerHit.h │ ├── PlayerShoot.h │ ├── PlayerText.h │ ├── Pong.h │ ├── QuestObjId.h │ ├── QuestRedeem.h │ ├── QuestRedeemResponse.h │ ├── Reconnect.h │ ├── RequestTrade.h │ ├── Reskin.h │ ├── ReskinPet.h │ ├── ReskinUnlock.h │ ├── ServerPackets.h │ ├── ServerPlayerShoot.h │ ├── SetCondition.h │ ├── ShootAck.h │ ├── ShowEffect.h │ ├── SquareHit.h │ ├── Teleport.h │ ├── Text.h │ ├── TradeAccepted.h │ ├── TradeChanged.h │ ├── TradeDone.h │ ├── TradeRequested.h │ ├── TradeStart.h │ ├── Update.h │ ├── UpdateAck.h │ ├── UseItem.h │ ├── UsePortal.h │ └── VerifyEmail.h └── rapidxml │ ├── rapidxml.hpp │ ├── rapidxml_iterators.hpp │ ├── rapidxml_print.hpp │ └── rapidxml_utils.hpp ├── packets.bin ├── realmnet_logo.png ├── screenshot.png └── servers.bin /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.11 FATAL_ERROR) 2 | project(RealmNet) 3 | set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS true) 4 | set(CMAKE_SUPPRESS_REGENERATION true) 5 | set_property(GLOBAL PROPERTY USE_FOLDERS ON) 6 | 7 | add_subdirectory(RealmLib) 8 | add_subdirectory(RealmNet) 9 | 10 | add_subdirectory(Plugins/AbilityTimer) 11 | add_subdirectory(Plugins/AntiLag) 12 | add_subdirectory(Plugins/ClientUpdate) 13 | add_subdirectory(Plugins/Resend) 14 | add_subdirectory(Plugins/Welcome) 15 | 16 | add_subdirectory(RealmXml) 17 | 18 | set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT RealmNet) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Ville Myllyniemi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Plugins/AbilityTimer/AbilityTimer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/Plugins/AbilityTimer/AbilityTimer.cpp -------------------------------------------------------------------------------- /Plugins/AbilityTimer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(AbilityTimer) 2 | 3 | file(GLOB TOP_LEVEL "*.cpp" "*.h") 4 | file(GLOB PROJECT_FILES FILES ${TOP_LEVEL}) 5 | 6 | include_directories("../../include" ".") 7 | add_library(AbilityTimer SHARED ${PROJECT_FILES}) 8 | set_target_properties(AbilityTimer PROPERTIES FOLDER "Plugins") 9 | set_target_properties(AbilityTimer PROPERTIES RUNTIME_OUTPUT_DIRECTORY "../..") 10 | target_link_libraries(AbilityTimer RealmLib) 11 | 12 | source_group("" FILES ${TOP_LEVEL}) -------------------------------------------------------------------------------- /Plugins/AntiLag/AntiLag.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/Plugins/AntiLag/AntiLag.cpp -------------------------------------------------------------------------------- /Plugins/AntiLag/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(AntiLag) 2 | 3 | file(GLOB TOP_LEVEL "*.cpp" "*.h") 4 | file(GLOB PROJECT_FILES FILES ${TOP_LEVEL}) 5 | 6 | include_directories("../../include" ".") 7 | add_library(AntiLag SHARED ${PROJECT_FILES}) 8 | set_target_properties(AntiLag PROPERTIES FOLDER "Plugins") 9 | set_target_properties(AntiLag PROPERTIES RUNTIME_OUTPUT_DIRECTORY "../..") 10 | target_link_libraries(AntiLag RealmLib) 11 | 12 | source_group("" FILES ${TOP_LEVEL}) -------------------------------------------------------------------------------- /Plugins/ClientUpdate/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(ClientUpdate) 2 | 3 | file(GLOB TOP_LEVEL "*.cpp" "*.h") 4 | file(GLOB PROJECT_FILES FILES ${TOP_LEVEL}) 5 | 6 | include_directories("../../include" ".") 7 | add_library(ClientUpdate SHARED ${PROJECT_FILES}) 8 | set_target_properties(ClientUpdate PROPERTIES FOLDER "Plugins") 9 | set_target_properties(ClientUpdate PROPERTIES RUNTIME_OUTPUT_DIRECTORY "../..") 10 | target_link_libraries(ClientUpdate RealmLib) 11 | 12 | source_group("" FILES ${TOP_LEVEL}) -------------------------------------------------------------------------------- /Plugins/ClientUpdate/ClientUpdate.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/Plugins/ClientUpdate/ClientUpdate.cpp -------------------------------------------------------------------------------- /Plugins/Resend/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(Resend) 2 | 3 | file(GLOB TOP_LEVEL "*.cpp" "*.h") 4 | file(GLOB PROJECT_FILES FILES ${TOP_LEVEL}) 5 | 6 | include_directories("../../include" ".") 7 | add_library(Resend SHARED ${PROJECT_FILES}) 8 | set_target_properties(Resend PROPERTIES FOLDER "Plugins") 9 | set_target_properties(Resend PROPERTIES RUNTIME_OUTPUT_DIRECTORY "../..") 10 | target_link_libraries(Resend RealmLib) 11 | 12 | source_group("" FILES ${TOP_LEVEL}) -------------------------------------------------------------------------------- /Plugins/Resend/Resend.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/Plugins/Resend/Resend.cpp -------------------------------------------------------------------------------- /Plugins/Welcome/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(Welcome) 2 | 3 | file(GLOB TOP_LEVEL "*.cpp" "*.h") 4 | file(GLOB PROJECT_FILES FILES ${TOP_LEVEL}) 5 | 6 | include_directories("../../include" ".") 7 | add_library(Welcome SHARED ${PROJECT_FILES}) 8 | set_target_properties(Welcome PROPERTIES FOLDER "Plugins") 9 | set_target_properties(Welcome PROPERTIES RUNTIME_OUTPUT_DIRECTORY "../..") 10 | target_link_libraries(Welcome RealmLib) 11 | 12 | source_group("" FILES ${TOP_LEVEL}) -------------------------------------------------------------------------------- /Plugins/Welcome/Welcome.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/Plugins/Welcome/Welcome.cpp -------------------------------------------------------------------------------- /RealmLib/Exports/Constants.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include -------------------------------------------------------------------------------- /RealmLib/Exports/IPlugin.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/RealmLib/Exports/IPlugin.cpp -------------------------------------------------------------------------------- /RealmLib/Exports/Packet.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include -------------------------------------------------------------------------------- /RealmLib/Exports/ServerManager.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | const char* ServerManager::idToAddr[Server::NUM_SERVERS]; 6 | 7 | char* addresses; 8 | 9 | void ServerManager::loadServers() 10 | { 11 | int temp; 12 | std::fstream bin("servers.bin", std::ios::in | std::ios::binary); 13 | if (!bin.good()) 14 | { 15 | printf("servers.bin not found\n"); 16 | return; 17 | } 18 | bin.read((char*)&temp, 4); 19 | addresses = new char[temp]; 20 | bin.read(addresses, temp); 21 | 22 | bin.read((char*)&temp, 4); 23 | printf("Loaded %d servers\n", temp); 24 | int* offsets = new int[temp]; 25 | bin.read((char*)offsets, temp * sizeof(int)); 26 | 27 | for (byte i = 0; i < Server::NUM_SERVERS; i++) 28 | { 29 | idToAddr[i] = addresses + offsets[i]; 30 | } 31 | } -------------------------------------------------------------------------------- /RealmLib/Exports/TypeManager.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | 6 | byte TypeManager::typeToId[PacketType::NUM_PACKETS]; 7 | byte TypeManager::idToType[256]; 8 | 9 | void TypeManager::mapPackets() 10 | { 11 | std::ifstream packets(".\\packets.bin", std::ios::binary); 12 | if (!packets.good()) 13 | { 14 | printf("packets.bin not found\n"); 15 | return; 16 | } 17 | std::copy(std::istreambuf_iterator(packets), std::istreambuf_iterator(), typeToId); 18 | 19 | memset(idToType, PacketType::NUM_PACKETS, 256); 20 | for (byte i = 0; i < PacketType::NUM_PACKETS; i++) 21 | idToType[typeToId[i]] = i; 22 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/AcceptArenaDeath.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | 7 | #include 8 | 9 | AcceptArenaDeath::AcceptArenaDeath() 10 | { 11 | 12 | } 13 | 14 | AcceptArenaDeath::AcceptArenaDeath(byte* data) 15 | { 16 | 17 | } 18 | 19 | void AcceptArenaDeath::emplace(byte* buffer) const 20 | { 21 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::AcceptArenaDeath]); 22 | } 23 | 24 | int AcceptArenaDeath::size() const 25 | { 26 | return 5; 27 | } 28 | 29 | String AcceptArenaDeath::toString() const 30 | { 31 | return String("ACCEPTARENADEATH"); 32 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/AcceptTrade.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | AcceptTrade::AcceptTrade(const Array& myOffer, const Array& yourOffer) 11 | : myOffer(myOffer), yourOffer(yourOffer) 12 | { 13 | 14 | } 15 | 16 | AcceptTrade::AcceptTrade(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(myOffer); 21 | r.read(yourOffer); 22 | } 23 | 24 | void AcceptTrade::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::AcceptTrade]); 27 | 28 | w.write(myOffer); 29 | w.write(yourOffer); 30 | } 31 | 32 | int AcceptTrade::size() const 33 | { 34 | return 9 + myOffer.length + yourOffer.length; 35 | } 36 | 37 | String AcceptTrade::toString() const 38 | { 39 | return String("ACCEPTTRADE"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/ActivePetUpdateRequest.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ActivePetUpdateRequest::ActivePetUpdateRequest(byte commandType, int instanceId) 11 | : commandType(commandType), instanceId(instanceId) 12 | { 13 | 14 | } 15 | 16 | ActivePetUpdateRequest::ActivePetUpdateRequest(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(commandType); 21 | r.read(instanceId); 22 | } 23 | 24 | void ActivePetUpdateRequest::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ActivePetUpdateRequest]); 27 | 28 | w.write(commandType); 29 | w.write(instanceId); 30 | } 31 | 32 | int ActivePetUpdateRequest::size() const 33 | { 34 | return 10; 35 | } 36 | 37 | String ActivePetUpdateRequest::toString() const 38 | { 39 | return String("ACTIVEPETUPDATEREQUEST"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/AoeAck.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | AoeAck::AoeAck(int time, const Location& position) 11 | : time(time), position(position) 12 | { 13 | 14 | } 15 | 16 | AoeAck::AoeAck(int time, float x, float y) 17 | : time(time), position(x, y) 18 | { 19 | 20 | } 21 | 22 | AoeAck::AoeAck(byte* data) 23 | { 24 | PacketReader r(data); 25 | 26 | r.read(time); 27 | r.read(position); 28 | } 29 | 30 | void AoeAck::emplace(byte* buffer) const 31 | { 32 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::AoeAck]); 33 | 34 | w.write(time); 35 | w.write(position); 36 | } 37 | 38 | int AoeAck::size() const 39 | { 40 | return 17; 41 | } 42 | 43 | String AoeAck::toString() const 44 | { 45 | return String("AOEACK"); 46 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/Buy.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Buy::Buy(int objectId, int quantity) 11 | : objectId(objectId), quantity(quantity) 12 | { 13 | 14 | } 15 | 16 | Buy::Buy(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(objectId); 21 | r.read(quantity); 22 | } 23 | 24 | void Buy::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Buy]); 27 | 28 | w.write(objectId); 29 | w.write(quantity); 30 | } 31 | 32 | int Buy::size() const 33 | { 34 | return 13; 35 | } 36 | 37 | String Buy::toString() const 38 | { 39 | return String("BUY"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/CancelTrade.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | 7 | #include 8 | 9 | CancelTrade::CancelTrade() 10 | { 11 | 12 | } 13 | 14 | CancelTrade::CancelTrade(byte* data) 15 | { 16 | 17 | } 18 | 19 | void CancelTrade::emplace(byte* buffer) const 20 | { 21 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::CancelTrade]); 22 | } 23 | 24 | int CancelTrade::size() const 25 | { 26 | return 5; 27 | } 28 | 29 | String CancelTrade::toString() const 30 | { 31 | return String("CANCELTRADE"); 32 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/ChangeGuildRank.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ChangeGuildRank::ChangeGuildRank(const String& name, int guildRank) 11 | : name(name), guildRank(guildRank) 12 | { 13 | 14 | } 15 | 16 | ChangeGuildRank::ChangeGuildRank(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(name); 21 | r.read(guildRank); 22 | } 23 | 24 | void ChangeGuildRank::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ChangeGuildRank]); 27 | 28 | w.write(name); 29 | w.write(guildRank); 30 | } 31 | 32 | int ChangeGuildRank::size() const 33 | { 34 | return 11 + name.length; 35 | } 36 | 37 | String ChangeGuildRank::toString() const 38 | { 39 | return String("CHANGEGUILDRANK"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/ChangePetSkin.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ChangePetSkin::ChangePetSkin(int petId, int skinType, int currency) 11 | : petId(petId), skinType(skinType), currency(currency) 12 | { 13 | 14 | } 15 | 16 | ChangePetSkin::ChangePetSkin(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(petId); 21 | r.read(skinType); 22 | r.read(currency); 23 | } 24 | 25 | void ChangePetSkin::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ChangePetSkin]); 28 | 29 | w.write(petId); 30 | w.write(skinType); 31 | w.write(currency); 32 | } 33 | 34 | int ChangePetSkin::size() const 35 | { 36 | return 17; 37 | } 38 | 39 | String ChangePetSkin::toString() const 40 | { 41 | return String("CHANGEPETSKIN"); 42 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/ChangeTrade.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ChangeTrade::ChangeTrade(const Array& offer) 11 | : offer(offer) 12 | { 13 | 14 | } 15 | 16 | ChangeTrade::ChangeTrade(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(offer); 21 | } 22 | 23 | void ChangeTrade::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ChangeTrade]); 26 | 27 | w.write(offer); 28 | } 29 | 30 | int ChangeTrade::size() const 31 | { 32 | return 7 + offer.length; 33 | } 34 | 35 | String ChangeTrade::toString() const 36 | { 37 | return String("CHANGETRADE"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/CheckCredits.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | 7 | #include 8 | 9 | CheckCredits::CheckCredits() 10 | { 11 | 12 | } 13 | 14 | CheckCredits::CheckCredits(byte* data) 15 | { 16 | 17 | } 18 | 19 | void CheckCredits::emplace(byte* buffer) const 20 | { 21 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::CheckCredits]); 22 | } 23 | 24 | int CheckCredits::size() const 25 | { 26 | return 5; 27 | } 28 | 29 | String CheckCredits::toString() const 30 | { 31 | return String("CHECKCREDITS"); 32 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/ChooseName.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ChooseName::ChooseName(const String& name) 11 | : name(name) 12 | { 13 | 14 | } 15 | 16 | ChooseName::ChooseName(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(name); 21 | } 22 | 23 | void ChooseName::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ChooseName]); 26 | 27 | w.write(name); 28 | } 29 | 30 | int ChooseName::size() const 31 | { 32 | return 7 + name.length; 33 | } 34 | 35 | String ChooseName::toString() const 36 | { 37 | return String("CHOOSENAME"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/ClaimLoginReward.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ClaimLoginReward::ClaimLoginReward(const String& claimKey, const String& type) 11 | : claimKey(claimKey), type(type) 12 | { 13 | 14 | } 15 | 16 | ClaimLoginReward::ClaimLoginReward(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(claimKey); 21 | r.read(type); 22 | } 23 | 24 | void ClaimLoginReward::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ClaimLoginReward]); 27 | 28 | w.write(claimKey); 29 | w.write(type); 30 | } 31 | 32 | int ClaimLoginReward::size() const 33 | { 34 | return 9 + claimKey.length + type.length; 35 | } 36 | 37 | String ClaimLoginReward::toString() const 38 | { 39 | return String("CLAIMLOGINREWARD"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/Create.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Create::Create(ushort classType) 11 | : classType(classType), skinType(0) 12 | { 13 | 14 | } 15 | 16 | Create::Create(ushort classType, ushort skinType) 17 | : classType(classType), skinType(skinType) 18 | { 19 | 20 | } 21 | 22 | Create::Create(byte* data) 23 | { 24 | PacketReader r(data); 25 | 26 | r.read(classType); 27 | r.read(skinType); 28 | } 29 | 30 | void Create::emplace(byte* buffer) const 31 | { 32 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Create]); 33 | 34 | w.write(classType); 35 | w.write(skinType); 36 | } 37 | 38 | int Create::size() const 39 | { 40 | return 9; 41 | } 42 | 43 | String Create::toString() const 44 | { 45 | return String("CREATE"); 46 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/CreateGuild.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | CreateGuild::CreateGuild(const String& name) 11 | : name(name) 12 | { 13 | 14 | } 15 | 16 | CreateGuild::CreateGuild(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(name); 21 | } 22 | 23 | void CreateGuild::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::CreateGuild]); 26 | 27 | w.write(name); 28 | } 29 | 30 | int CreateGuild::size() const 31 | { 32 | return 7 + name.length; 33 | } 34 | 35 | String CreateGuild::toString() const 36 | { 37 | return String("CREATEGUILD"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/EditAccountList.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | EditAccountList::EditAccountList(int accountListId, bool add, int objectId) 11 | : accountListId(accountListId), add(add), objectId(objectId) 12 | { 13 | 14 | } 15 | 16 | EditAccountList::EditAccountList(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(accountListId); 21 | r.read(add); 22 | r.read(objectId); 23 | } 24 | 25 | void EditAccountList::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::EditAccountList]); 28 | 29 | w.write(accountListId); 30 | w.write(add); 31 | w.write(objectId); 32 | } 33 | 34 | int EditAccountList::size() const 35 | { 36 | return 14; 37 | } 38 | 39 | String EditAccountList::toString() const 40 | { 41 | return String("EDITACCOUNTLIST"); 42 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/EnemyHit.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | EnemyHit::EnemyHit(int time, byte bulletId, int targetId, bool kill) 11 | : time(time), bulletId(bulletId), targetId(targetId), kill(kill) 12 | { 13 | 14 | } 15 | 16 | EnemyHit::EnemyHit(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(time); 21 | r.read(bulletId); 22 | r.read(targetId); 23 | r.read(kill); 24 | } 25 | 26 | void EnemyHit::emplace(byte* buffer) const 27 | { 28 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::EnemyHit]); 29 | 30 | w.write(time); 31 | w.write(bulletId); 32 | w.write(targetId); 33 | w.write(kill); 34 | } 35 | 36 | int EnemyHit::size() const 37 | { 38 | return 15; 39 | } 40 | 41 | String EnemyHit::toString() const 42 | { 43 | return String("ENEMYHIT"); 44 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/EnterArena.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | EnterArena::EnterArena(int currency) 11 | : currency(currency) 12 | { 13 | 14 | } 15 | 16 | EnterArena::EnterArena(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(currency); 21 | } 22 | 23 | void EnterArena::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::EnterArena]); 26 | 27 | w.write(currency); 28 | } 29 | 30 | int EnterArena::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String EnterArena::toString() const 36 | { 37 | return String("ENTERARENA"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/Escape.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | 7 | #include 8 | 9 | Escape::Escape() 10 | { 11 | 12 | } 13 | 14 | Escape::Escape(byte* data) 15 | { 16 | 17 | } 18 | 19 | void Escape::emplace(byte* buffer) const 20 | { 21 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Escape]); 22 | } 23 | 24 | int Escape::size() const 25 | { 26 | return 5; 27 | } 28 | 29 | String Escape::toString() const 30 | { 31 | return String("ESCAPE"); 32 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/FetchQuest.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | 7 | #include 8 | 9 | FetchQuest::FetchQuest() 10 | { 11 | 12 | } 13 | 14 | FetchQuest::FetchQuest(byte* data) 15 | { 16 | 17 | } 18 | 19 | void FetchQuest::emplace(byte* buffer) const 20 | { 21 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::FetchQuest]); 22 | } 23 | 24 | int FetchQuest::size() const 25 | { 26 | return 5; 27 | } 28 | 29 | String FetchQuest::toString() const 30 | { 31 | return String("FETCHQUEST"); 32 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/GotoAck.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | GotoAck::GotoAck(int time) 11 | : time(time) 12 | { 13 | 14 | } 15 | 16 | GotoAck::GotoAck(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(time); 21 | } 22 | 23 | void GotoAck::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::GotoAck]); 26 | 27 | w.write(time); 28 | } 29 | 30 | int GotoAck::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String GotoAck::toString() const 36 | { 37 | return String("GOTOACK"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/GotoQuestRoom.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | 7 | #include 8 | 9 | GotoQuestRoom::GotoQuestRoom() 10 | { 11 | 12 | } 13 | 14 | GotoQuestRoom::GotoQuestRoom(byte* data) 15 | { 16 | 17 | } 18 | 19 | void GotoQuestRoom::emplace(byte* buffer) const 20 | { 21 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::GotoQuestRoom]); 22 | } 23 | 24 | int GotoQuestRoom::size() const 25 | { 26 | return 5; 27 | } 28 | 29 | String GotoQuestRoom::toString() const 30 | { 31 | return String("GOTOQUESTROOM"); 32 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/GroundDamage.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | GroundDamage::GroundDamage(int time, float x, float y) 11 | : time(time), position(x, y) 12 | { 13 | 14 | } 15 | 16 | GroundDamage::GroundDamage(int time, const Location& position) 17 | : time(time), position(position) 18 | { 19 | 20 | } 21 | 22 | GroundDamage::GroundDamage(byte* data) 23 | { 24 | PacketReader r(data); 25 | 26 | r.read(time); 27 | r.read(position); 28 | } 29 | 30 | void GroundDamage::emplace(byte* buffer) const 31 | { 32 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::GroundDamage]); 33 | 34 | w.write(time); 35 | w.write(position); 36 | } 37 | 38 | int GroundDamage::size() const 39 | { 40 | return 17; 41 | } 42 | 43 | String GroundDamage::toString() const 44 | { 45 | return String("GROUNDDAMAGE"); 46 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/GuildInvite.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | GuildInvite::GuildInvite(const String& name) 11 | : name(name) 12 | { 13 | 14 | } 15 | 16 | GuildInvite::GuildInvite(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(name); 21 | } 22 | 23 | void GuildInvite::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::GuildInvite]); 26 | 27 | w.write(name); 28 | } 29 | 30 | int GuildInvite::size() const 31 | { 32 | return 7 + name.length; 33 | } 34 | 35 | String GuildInvite::toString() const 36 | { 37 | return String("GUILDINVITE"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/GuildRemove.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | GuildRemove::GuildRemove(const String& name) 11 | : name(name) 12 | { 13 | 14 | } 15 | 16 | GuildRemove::GuildRemove(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(name); 21 | } 22 | 23 | void GuildRemove::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::GuildRemove]); 26 | 27 | w.write(name); 28 | } 29 | 30 | int GuildRemove::size() const 31 | { 32 | return 7 + name.length; 33 | } 34 | 35 | String GuildRemove::toString() const 36 | { 37 | return String("GUILDREMOVE"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/InvDrop.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | InvDrop::InvDrop(const SlotObject& slot) 11 | : slot(slot) 12 | { 13 | 14 | } 15 | 16 | InvDrop::InvDrop(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(slot); 21 | } 22 | 23 | void InvDrop::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::InvDrop]); 26 | 27 | w.write(slot); 28 | } 29 | 30 | int InvDrop::size() const 31 | { 32 | return 14; 33 | } 34 | 35 | String InvDrop::toString() const 36 | { 37 | return String("INVDROP"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/InvSwap.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | InvSwap::InvSwap(int time, const Location& position, const SlotObject& slotObject1, const SlotObject& slotObject2) 11 | : time(time), position(position), slotObject1(slotObject1), slotObject2(slotObject2) 12 | { 13 | 14 | } 15 | 16 | InvSwap::InvSwap(int time, float x, float y, const SlotObject& slotObject1, const SlotObject& slotObject2) 17 | : time(time), position(x, y), slotObject1(slotObject1), slotObject2(slotObject2) 18 | { 19 | 20 | } 21 | 22 | InvSwap::InvSwap(byte* data) 23 | { 24 | PacketReader r(data); 25 | 26 | r.read(time); 27 | r.read(position); 28 | r.read(slotObject1); 29 | r.read(slotObject2); 30 | } 31 | 32 | void InvSwap::emplace(byte* buffer) const 33 | { 34 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::InvSwap]); 35 | 36 | w.write(time); 37 | w.write(position); 38 | w.write(slotObject1); 39 | w.write(slotObject2); 40 | } 41 | 42 | int InvSwap::size() const 43 | { 44 | return 35; 45 | } 46 | 47 | String InvSwap::toString() const 48 | { 49 | return String("INVSWAP"); 50 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/JoinGuild.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | JoinGuild::JoinGuild(const String& guildName) 11 | : guildName(guildName) 12 | { 13 | 14 | } 15 | 16 | JoinGuild::JoinGuild(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(guildName); 21 | } 22 | 23 | void JoinGuild::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::JoinGuild]); 26 | 27 | w.write(guildName); 28 | } 29 | 30 | int JoinGuild::size() const 31 | { 32 | return 7 + guildName.length; 33 | } 34 | 35 | String JoinGuild::toString() const 36 | { 37 | return String("JOINGUILD"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/KeyInfoRequest.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | KeyInfoRequest::KeyInfoRequest(int itemType) 11 | : itemType(itemType) 12 | { 13 | 14 | } 15 | 16 | KeyInfoRequest::KeyInfoRequest(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(itemType); 21 | } 22 | 23 | void KeyInfoRequest::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::KeyInfoRequest]); 26 | 27 | w.write(itemType); 28 | } 29 | 30 | int KeyInfoRequest::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String KeyInfoRequest::toString() const 36 | { 37 | return String("KEYINFOREQUEST"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/Load.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Load::Load(int charId) 11 | : charId(charId), isFromArena(false) 12 | { 13 | 14 | } 15 | 16 | Load::Load(int charId, bool isFromArena) 17 | : charId(charId), isFromArena(isFromArena) 18 | { 19 | 20 | } 21 | 22 | Load::Load(byte* data) 23 | { 24 | PacketReader r(data); 25 | 26 | r.read(charId); 27 | r.read(isFromArena); 28 | } 29 | 30 | void Load::emplace(byte* buffer) const 31 | { 32 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Load]); 33 | 34 | w.write(charId); 35 | w.write(isFromArena); 36 | } 37 | 38 | int Load::size() const 39 | { 40 | return 10; 41 | } 42 | 43 | String Load::toString() const 44 | { 45 | return String("LOAD"); 46 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/Move.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Move::Move(int tickId, int time, const Location& newPosition) 11 | : tickId(tickId), time(time), newPosition(newPosition) 12 | { 13 | 14 | } 15 | 16 | Move::Move(int tickId, int time, const Location& newPosition, const Array& records) 17 | : tickId(tickId), time(time), newPosition(newPosition), records(records) 18 | { 19 | 20 | } 21 | 22 | Move::Move(byte* data) 23 | { 24 | PacketReader r(data); 25 | 26 | r.read(tickId); 27 | r.read(time); 28 | r.read(newPosition); 29 | r.read(records); 30 | } 31 | 32 | void Move::emplace(byte* buffer) const 33 | { 34 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Move]); 35 | 36 | w.write(tickId); 37 | w.write(time); 38 | w.write(newPosition); 39 | w.write(records); 40 | } 41 | 42 | int Move::size() const 43 | { 44 | return 23 + 12 * records.length; 45 | } 46 | 47 | String Move::toString() const 48 | { 49 | return String("MOVE"); 50 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/OtherHit.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | OtherHit::OtherHit(int time, byte bulletId, int objectId, int targetId) 11 | : time(time), bulletId(bulletId), objectId(objectId), targetId(targetId) 12 | { 13 | 14 | } 15 | 16 | OtherHit::OtherHit(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(time); 21 | r.read(bulletId); 22 | r.read(objectId); 23 | r.read(targetId); 24 | } 25 | 26 | void OtherHit::emplace(byte* buffer) const 27 | { 28 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::OtherHit]); 29 | 30 | w.write(time); 31 | w.write(bulletId); 32 | w.write(objectId); 33 | w.write(targetId); 34 | } 35 | 36 | int OtherHit::size() const 37 | { 38 | return 18; 39 | } 40 | 41 | String OtherHit::toString() const 42 | { 43 | return String("OTHERHIT"); 44 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/PetUpgradeRequest.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | PetUpgradeRequest::PetUpgradeRequest(byte petTransType, int pid1, int pid2, int objectId, byte paymentTransType, const Array& slots) 11 | : petTransType(petTransType), pid1(pid1), pid2(pid2), objectId(objectId), paymentTransType(paymentTransType), slots(slots) 12 | { 13 | 14 | } 15 | 16 | PetUpgradeRequest::PetUpgradeRequest(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(petTransType); 21 | r.read(pid1); 22 | r.read(pid2); 23 | r.read(objectId); 24 | r.read(paymentTransType); 25 | r.read(slots); 26 | } 27 | 28 | void PetUpgradeRequest::emplace(byte* buffer) const 29 | { 30 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::PetUpgradeRequest]); 31 | 32 | w.write(petTransType); 33 | w.write(pid1); 34 | w.write(pid2); 35 | w.write(objectId); 36 | w.write(paymentTransType); 37 | w.write(slots); 38 | } 39 | 40 | int PetUpgradeRequest::size() const 41 | { 42 | return 21 + 9 * slots.length; 43 | } 44 | 45 | String PetUpgradeRequest::toString() const 46 | { 47 | return String("PETUPGRADEREQUEST"); 48 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/PlayerHit.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | PlayerHit::PlayerHit(byte bulletId, int objectId) 11 | : bulletId(bulletId), objectId(objectId) 12 | { 13 | 14 | } 15 | 16 | PlayerHit::PlayerHit(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(bulletId); 21 | r.read(objectId); 22 | } 23 | 24 | void PlayerHit::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::PlayerHit]); 27 | 28 | w.write(bulletId); 29 | w.write(objectId); 30 | } 31 | 32 | int PlayerHit::size() const 33 | { 34 | return 10; 35 | } 36 | 37 | String PlayerHit::toString() const 38 | { 39 | return String("PLAYERHIT"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/PlayerShoot.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | #include 10 | 11 | PlayerShoot::PlayerShoot(int time, byte bulletId, short itemType, const Location& position, float angle) 12 | : time(time), bulletId(bulletId), itemType(itemType), position(position), angle(angle) 13 | { 14 | 15 | } 16 | 17 | PlayerShoot::PlayerShoot(byte* data) 18 | { 19 | PacketReader r(data); 20 | 21 | r.read(time); 22 | r.read(bulletId); 23 | r.read(itemType); 24 | r.read(position); 25 | r.read(angle); 26 | } 27 | 28 | void PlayerShoot::emplace(byte* buffer) const 29 | { 30 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::PlayerShoot]); 31 | 32 | w.write(time); 33 | w.write(bulletId); 34 | w.write(itemType); 35 | w.write(position); 36 | w.write(angle); 37 | } 38 | 39 | int PlayerShoot::size() const 40 | { 41 | return 24; 42 | } 43 | 44 | String PlayerShoot::toString() const 45 | { 46 | return String("PLAYERSHOOT"); 47 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/PlayerText.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | PlayerText::PlayerText(const String& text) 11 | : text(text) 12 | { 13 | 14 | } 15 | 16 | PlayerText::PlayerText(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(text); 21 | } 22 | 23 | void PlayerText::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::PlayerText]); 26 | 27 | w.write(text); 28 | } 29 | 30 | int PlayerText::size() const 31 | { 32 | return 7 + text.length; 33 | } 34 | 35 | String PlayerText::toString() const 36 | { 37 | return String("PLAYERTEXT"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/Pong.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Pong::Pong(int serial, int time) 11 | : serial(serial), time(time) 12 | { 13 | 14 | } 15 | 16 | Pong::Pong(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(serial); 21 | r.read(time); 22 | } 23 | 24 | void Pong::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Pong]); 27 | 28 | w.write(serial); 29 | w.write(time); 30 | } 31 | 32 | int Pong::size() const 33 | { 34 | return 13; 35 | } 36 | 37 | String Pong::toString() const 38 | { 39 | return String("PONG"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/QuestRedeem.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | QuestRedeem::QuestRedeem(const String& questId, const Array& slots, int item) 11 | : questId(questId), slots(slots), item(item) 12 | { 13 | 14 | } 15 | 16 | QuestRedeem::QuestRedeem(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(questId); 21 | r.read(slots); 22 | r.read(item); 23 | } 24 | 25 | void QuestRedeem::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::QuestRedeem]); 28 | 29 | w.write(questId); 30 | w.write(slots); 31 | w.write(item); 32 | } 33 | 34 | int QuestRedeem::size() const 35 | { 36 | return 13 + questId.length + 9 * slots.length; 37 | } 38 | 39 | String QuestRedeem::toString() const 40 | { 41 | return String("QUESTREDEEM"); 42 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/RequestTrade.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | RequestTrade::RequestTrade(const String& name) 11 | : name(name) 12 | { 13 | 14 | } 15 | 16 | RequestTrade::RequestTrade(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(name); 21 | } 22 | 23 | void RequestTrade::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::RequestTrade]); 26 | 27 | w.write(name); 28 | } 29 | 30 | int RequestTrade::size() const 31 | { 32 | return 7 + name.length; 33 | } 34 | 35 | String RequestTrade::toString() const 36 | { 37 | return String("REQUESTTRADE"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/Reskin.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Reskin::Reskin(int skinId) 11 | : skinId(skinId) 12 | { 13 | 14 | } 15 | 16 | Reskin::Reskin(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(skinId); 21 | } 22 | 23 | void Reskin::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Reskin]); 26 | 27 | w.write(skinId); 28 | } 29 | 30 | int Reskin::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String Reskin::toString() const 36 | { 37 | return String("RESKIN"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/ReskinPet.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ReskinPet::ReskinPet(int instanceId, int newPetType, const SlotObject& item) 11 | : instanceId(instanceId), newPetType(newPetType), item(item) 12 | { 13 | 14 | } 15 | 16 | ReskinPet::ReskinPet(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(instanceId); 21 | r.read(newPetType); 22 | r.read(item); 23 | } 24 | 25 | void ReskinPet::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ReskinPet]); 28 | 29 | w.write(instanceId); 30 | w.write(newPetType); 31 | w.write(item); 32 | } 33 | 34 | int ReskinPet::size() const 35 | { 36 | return 21; 37 | } 38 | 39 | String ReskinPet::toString() const 40 | { 41 | return String("RESKINPET"); 42 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/SetCondition.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | SetCondition::SetCondition(byte effect, float duration) 11 | : effect(effect), duration(duration) 12 | { 13 | 14 | } 15 | 16 | SetCondition::SetCondition(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(effect); 21 | r.read(duration); 22 | } 23 | 24 | void SetCondition::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::SetCondition]); 27 | 28 | w.write(effect); 29 | w.write(duration); 30 | } 31 | 32 | int SetCondition::size() const 33 | { 34 | return 10; 35 | } 36 | 37 | String SetCondition::toString() const 38 | { 39 | return String("SETCONDITION"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/ShootAck.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ShootAck::ShootAck(int time) 11 | : time(time) 12 | { 13 | 14 | } 15 | 16 | ShootAck::ShootAck(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(time); 21 | } 22 | 23 | void ShootAck::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ShootAck]); 26 | 27 | w.write(time); 28 | } 29 | 30 | int ShootAck::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String ShootAck::toString() const 36 | { 37 | return String("SHOOTACK"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/SquareHit.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | SquareHit::SquareHit(int time, byte bulletId, int objectId) 11 | : time(time), bulletId(bulletId), objectId(objectId) 12 | { 13 | 14 | } 15 | 16 | SquareHit::SquareHit(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(time); 21 | r.read(bulletId); 22 | r.read(objectId); 23 | } 24 | 25 | void SquareHit::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::SquareHit]); 28 | 29 | w.write(time); 30 | w.write(bulletId); 31 | w.write(objectId); 32 | } 33 | 34 | int SquareHit::size() const 35 | { 36 | return 14; 37 | } 38 | 39 | String SquareHit::toString() const 40 | { 41 | return String("SQUAREHIT"); 42 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/Teleport.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Teleport::Teleport(int objectId) 11 | : objectId(objectId) 12 | { 13 | 14 | } 15 | 16 | Teleport::Teleport(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(objectId); 21 | } 22 | 23 | void Teleport::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Teleport]); 26 | 27 | w.write(objectId); 28 | } 29 | 30 | int Teleport::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String Teleport::toString() const 36 | { 37 | return String("TELEPORT"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/UpdateAck.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | 7 | #include 8 | 9 | UpdateAck::UpdateAck() 10 | { 11 | 12 | } 13 | 14 | UpdateAck::UpdateAck(byte* data) 15 | { 16 | 17 | } 18 | 19 | void UpdateAck::emplace(byte* buffer) const 20 | { 21 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::UpdateAck]); 22 | } 23 | 24 | int UpdateAck::size() const 25 | { 26 | return 5; 27 | } 28 | 29 | String UpdateAck::toString() const 30 | { 31 | return String("UPDATEACK"); 32 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/UseItem.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | UseItem::UseItem(int time, const SlotObject& slotObject, const Location& position, byte useType) 11 | : position(position), time(time), slotObject(slotObject), useType(useType) 12 | { 13 | 14 | } 15 | 16 | UseItem::UseItem(int time, const SlotObject& slotObject, float x, float y, byte useType) 17 | : position(x, y), time(time), slotObject(slotObject), useType(useType) 18 | { 19 | 20 | } 21 | 22 | UseItem::UseItem(byte* data) 23 | { 24 | PacketReader r(data); 25 | 26 | r.read(time); 27 | r.read(slotObject); 28 | r.read(position); 29 | r.read(useType); 30 | } 31 | 32 | void UseItem::emplace(byte* buffer) const 33 | { 34 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::UseItem]); 35 | 36 | w.write(time); 37 | w.write(slotObject); 38 | w.write(position); 39 | w.write(useType); 40 | } 41 | 42 | int UseItem::size() const 43 | { 44 | return 27; 45 | } 46 | 47 | String UseItem::toString() const 48 | { 49 | return String("USEITEM"); 50 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Client/UsePortal.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | UsePortal::UsePortal(int objectId) 11 | : objectId(objectId) 12 | { 13 | 14 | } 15 | 16 | UsePortal::UsePortal(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(objectId); 21 | } 22 | 23 | void UsePortal::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::UsePortal]); 26 | 27 | w.write(objectId); 28 | } 29 | 30 | int UsePortal::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String UsePortal::toString() const 36 | { 37 | return String("USEPORTAL"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/DataObjects/BitmapData.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | BitmapData::BitmapData(int width, int height, const Array& data) 6 | : width(width), height(height), data(data) 7 | { 8 | 9 | } 10 | 11 | BitmapData::BitmapData() 12 | { 13 | 14 | } -------------------------------------------------------------------------------- /RealmLib/Packets/DataObjects/Entity.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | Entity::Entity(ushort objectType, const Status& status) 6 | : objectType(objectType), status(status) 7 | { 8 | 9 | } 10 | 11 | Entity::Entity() 12 | { 13 | 14 | } -------------------------------------------------------------------------------- /RealmLib/Packets/DataObjects/Location.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | Location::Location(float x, float y) 6 | : x(x), y(y) 7 | { 8 | 9 | } 10 | 11 | Location::Location() 12 | : x(0), y(0) 13 | { 14 | 15 | } -------------------------------------------------------------------------------- /RealmLib/Packets/DataObjects/MoveRecord.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | MoveRecord::MoveRecord(int time, float x, float y) 6 | : time(time), x(x), y(y) 7 | { 8 | 9 | } 10 | 11 | MoveRecord::MoveRecord() 12 | { 13 | 14 | } -------------------------------------------------------------------------------- /RealmLib/Packets/DataObjects/PlayerData.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | -------------------------------------------------------------------------------- /RealmLib/Packets/DataObjects/QuestData.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | QuestData::QuestData(const String& id, const String& name, const String& description, int category, const Array& requirements, const Array& rewards, bool completed, bool itemOfChoice) 6 | : id(id), name(name), description(description), category(category), requirements(requirements), rewards(rewards), completed(completed), itemOfChoice(itemOfChoice) 7 | { 8 | 9 | } 10 | 11 | QuestData::QuestData() 12 | { 13 | 14 | } -------------------------------------------------------------------------------- /RealmLib/Packets/DataObjects/SlotObject.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | SlotObject::SlotObject(int objectId, byte slotId, int objectType) 6 | : objectId(objectId), slotId(slotId), objectType(objectType) 7 | { 8 | 9 | } 10 | 11 | SlotObject::SlotObject() 12 | { 13 | 14 | } -------------------------------------------------------------------------------- /RealmLib/Packets/DataObjects/StatData.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | StatData::StatData(byte id, const String& stringValue) 6 | : id(id), stringValue(stringValue) 7 | { 8 | 9 | } 10 | 11 | StatData::StatData(byte id, int intValue) 12 | : id(id), intValue(intValue) 13 | { 14 | 15 | } 16 | 17 | StatData::StatData() 18 | { 19 | 20 | } 21 | 22 | bool StatData::isStringValue() const //TODO more proper implementation 23 | { 24 | return id == 31 || id == 62 || id == 82 || id == 38 || id == 54; 25 | } -------------------------------------------------------------------------------- /RealmLib/Packets/DataObjects/Status.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | Status::Status(int objectId, const Location& position, const Array& data) 6 | : objectId(objectId), position(position), data(data) 7 | { 8 | 9 | } 10 | 11 | Status::Status() 12 | { 13 | 14 | } -------------------------------------------------------------------------------- /RealmLib/Packets/DataObjects/Tile.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | Tile::Tile(short x, short y, ushort type) 6 | : x(x), y(y), type(type) 7 | { 8 | 9 | } 10 | 11 | Tile::Tile() 12 | { 13 | 14 | } -------------------------------------------------------------------------------- /RealmLib/Packets/DataObjects/TradeItem.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | TradeItem::TradeItem(int item, int slotType, bool tradable, bool included) 6 | : item(item), slotType(slotType), tradable(tradable), included(included) 7 | { 8 | 9 | } 10 | 11 | TradeItem::TradeItem() 12 | { 13 | 14 | } -------------------------------------------------------------------------------- /RealmLib/Packets/PacketReader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | class PacketReader 14 | { 15 | private: 16 | int offset; 17 | byte* data; 18 | 19 | public: 20 | PacketReader(byte* data); 21 | 22 | bool more(); 23 | 24 | void read(int& val); 25 | void read(float& val); 26 | void read(uint& val); 27 | void read(ushort& val); 28 | void read(short& val); 29 | 30 | void read(byte& val); 31 | void read(bool& val); 32 | 33 | void read(SlotObject& val); 34 | void read(Location& val); 35 | void read(MoveRecord& val); 36 | void read(TradeItem& val); 37 | void read(Status& val); 38 | void read(StatData& val); 39 | void read(BitmapData& val); 40 | void read(Tile& val); 41 | void read(Entity& val); 42 | void read(QuestData& val); 43 | 44 | void read(String& val); 45 | void read32(String& val); 46 | void read(Array& val); 47 | void read8(Array& val); 48 | void read(Array& val); 49 | void read(Array& val); 50 | void read(Array& val); 51 | void read(Array& val); 52 | void read(Array& val); 53 | void read(Array& val); 54 | void read(Array& val); 55 | void read(Array& val); 56 | void read(Array& val); 57 | void read(Array& val); 58 | void read(Array& val); 59 | void read32(Array& val); 60 | }; -------------------------------------------------------------------------------- /RealmLib/Packets/Server/AccountList.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | AccountList::AccountList(int accountListId, const Array& accountIds, int lockAction) 11 | : accountListId(accountListId), accountIds(accountIds), lockAction(lockAction) 12 | { 13 | 14 | } 15 | 16 | AccountList::AccountList(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(accountListId); 21 | r.read(accountIds); 22 | r.read(lockAction); 23 | } 24 | 25 | void AccountList::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::AccountList]); 28 | 29 | w.write(accountListId); 30 | w.write(accountIds); 31 | w.write(lockAction); 32 | } 33 | 34 | int AccountList::size() const 35 | { 36 | int size = 15 + accountIds.length; 37 | 38 | for (size_t i = 0; i < accountIds.length; i++) 39 | size += 2 + accountIds[i].length; 40 | 41 | return size; 42 | } 43 | 44 | String AccountList::toString() const 45 | { 46 | return String("ACCOUNTLIST"); 47 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/ActivePetUpdate.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ActivePetUpdate::ActivePetUpdate(int instanceId) 11 | : instanceId(instanceId) 12 | { 13 | 14 | } 15 | 16 | ActivePetUpdate::ActivePetUpdate(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(instanceId); 21 | } 22 | 23 | void ActivePetUpdate::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ActivePetUpdate]); 26 | 27 | w.write(instanceId); 28 | } 29 | 30 | int ActivePetUpdate::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String ActivePetUpdate::toString() const 36 | { 37 | return String("ACTIVEPETUPDATE"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/AllyShoot.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | AllyShoot::AllyShoot(byte bulletId, int ownerId, short itemType, float angle) 11 | : bulletId(bulletId), ownerId(ownerId), itemType(itemType), angle(angle) 12 | { 13 | 14 | } 15 | 16 | AllyShoot::AllyShoot(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(bulletId); 21 | r.read(ownerId); 22 | r.read(itemType); 23 | r.read(angle); 24 | } 25 | 26 | void AllyShoot::emplace(byte* buffer) const 27 | { 28 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::AllyShoot]); 29 | 30 | w.write(bulletId); 31 | w.write(ownerId); 32 | w.write(itemType); 33 | w.write(angle); 34 | } 35 | 36 | int AllyShoot::size() const 37 | { 38 | return 16; 39 | } 40 | 41 | String AllyShoot::toString() const 42 | { 43 | return String("ALLYSHOOT"); 44 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/Aoe.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Aoe::Aoe(const Location& position, float radius, ushort damage, byte effect, float duration, ushort originType, int color) 11 | : position(position), radius(radius), damage(damage), effect(effect), duration(duration), originType(originType), color(color) 12 | { 13 | 14 | } 15 | 16 | Aoe::Aoe(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(position); 21 | r.read(radius); 22 | r.read(damage); 23 | r.read(effect); 24 | r.read(duration); 25 | r.read(originType); 26 | r.read(color); 27 | } 28 | 29 | void Aoe::emplace(byte* buffer) const 30 | { 31 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Aoe]); 32 | 33 | w.write(position); 34 | w.write(radius); 35 | w.write(damage); 36 | w.write(effect); 37 | w.write(duration); 38 | w.write(originType); 39 | w.write(color); 40 | } 41 | 42 | int Aoe::size() const 43 | { 44 | return 30; 45 | } 46 | 47 | String Aoe::toString() const 48 | { 49 | return String("AOE"); 50 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/ArenaDeath.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ArenaDeath::ArenaDeath(int restartPrice) 11 | : restartPrice(restartPrice) 12 | { 13 | 14 | } 15 | 16 | ArenaDeath::ArenaDeath(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(restartPrice); 21 | } 22 | 23 | void ArenaDeath::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ArenaDeath]); 26 | 27 | w.write(restartPrice); 28 | } 29 | 30 | int ArenaDeath::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String ArenaDeath::toString() const 36 | { 37 | return String("ARENADEATH"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/ArenaNextWave.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ArenaNextWave::ArenaNextWave(int currentRuntime) 11 | : currentRuntime(currentRuntime) 12 | { 13 | 14 | } 15 | 16 | ArenaNextWave::ArenaNextWave(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(currentRuntime); 21 | } 22 | 23 | void ArenaNextWave::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ArenaNextWave]); 26 | 27 | w.write(currentRuntime); 28 | } 29 | 30 | int ArenaNextWave::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String ArenaNextWave::toString() const 36 | { 37 | return String("ARENANEXTWAVE"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/BuyResult.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | BuyResult::BuyResult(int result, const String& message) 11 | : result(result), message(message) 12 | { 13 | 14 | } 15 | 16 | BuyResult::BuyResult(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(result); 21 | r.read(message); 22 | } 23 | 24 | void BuyResult::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::BuyResult]); 27 | 28 | w.write(result); 29 | w.write(message); 30 | } 31 | 32 | int BuyResult::size() const 33 | { 34 | return 11 + message.length; 35 | } 36 | 37 | String BuyResult::toString() const 38 | { 39 | return String("BUYRESULT"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/ClaimLoginRewardResponse.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ClaimLoginRewardResponse::ClaimLoginRewardResponse(int itemId, int quantity, int gold) 11 | : itemId(itemId), quantity(quantity), gold(gold) 12 | { 13 | 14 | } 15 | 16 | ClaimLoginRewardResponse::ClaimLoginRewardResponse(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(itemId); 21 | r.read(quantity); 22 | r.read(gold); 23 | } 24 | 25 | void ClaimLoginRewardResponse::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ClaimLoginRewardResponse]); 28 | 29 | w.write(itemId); 30 | w.write(quantity); 31 | w.write(gold); 32 | } 33 | 34 | int ClaimLoginRewardResponse::size() const 35 | { 36 | return 17; 37 | } 38 | 39 | String ClaimLoginRewardResponse::toString() const 40 | { 41 | return String("CLAIMLOGINREWARDRESPONSE"); 42 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/ClientStat.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ClientStat::ClientStat(const String& name, int value) 11 | : name(name), value(value) 12 | { 13 | 14 | } 15 | 16 | ClientStat::ClientStat(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(name); 21 | r.read(value); 22 | } 23 | 24 | void ClientStat::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ClientStat]); 27 | 28 | w.write(name); 29 | w.write(value); 30 | } 31 | 32 | int ClientStat::size() const 33 | { 34 | return 11 + name.length; 35 | } 36 | 37 | String ClientStat::toString() const 38 | { 39 | return String("CLIENTSTAT"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/CreateSuccess.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | CreateSuccess::CreateSuccess(int objectId, int charId) 11 | : objectId(objectId), charId(charId) 12 | { 13 | 14 | } 15 | 16 | CreateSuccess::CreateSuccess(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(objectId); 21 | r.read(charId); 22 | } 23 | 24 | void CreateSuccess::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::CreateSuccess]); 27 | 28 | w.write(objectId); 29 | w.write(charId); 30 | } 31 | 32 | int CreateSuccess::size() const 33 | { 34 | return 13; 35 | } 36 | 37 | String CreateSuccess::toString() const 38 | { 39 | return String("CREATESUCCESS"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/Damage.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Damage::Damage(int targetId, const Array& effects, int damage, bool kill, bool armorPierce, byte bulletId, int objectId) 11 | : targetId(targetId), effects(effects), damage(damage), kill(kill), armorPierce(armorPierce), bulletId(bulletId), objectId(objectId) 12 | { 13 | 14 | } 15 | 16 | Damage::Damage(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(targetId); 21 | r.read8(effects); 22 | r.read(damage); 23 | r.read(kill); 24 | r.read(armorPierce); 25 | r.read(bulletId); 26 | r.read(objectId); 27 | } 28 | 29 | void Damage::emplace(byte* buffer) const 30 | { 31 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Damage]); 32 | 33 | w.write(targetId); 34 | w.write8(effects); 35 | w.write(damage); 36 | w.write(kill); 37 | w.write(armorPierce); 38 | w.write(bulletId); 39 | w.write(objectId); 40 | } 41 | 42 | int Damage::size() const 43 | { 44 | return 21; 45 | } 46 | 47 | String Damage::toString() const 48 | { 49 | return String("DAMAGE"); 50 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/Death.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Death::Death(const String& accountId, int charId, const String& killedBy, int zombieType, int zombieId) 11 | : accountId(accountId), charId(charId), killedBy(killedBy), zombieType(zombieType), zombieId(zombieId) 12 | { 13 | 14 | } 15 | 16 | Death::Death(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(accountId); 21 | r.read(charId); 22 | r.read(killedBy); 23 | r.read(zombieType); 24 | r.read(zombieId); 25 | } 26 | 27 | void Death::emplace(byte* buffer) const 28 | { 29 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Death]); 30 | 31 | w.write(accountId); 32 | w.write(charId); 33 | w.write(killedBy); 34 | w.write(zombieType); 35 | w.write(zombieId); 36 | } 37 | 38 | int Death::size() const 39 | { 40 | return 21 + accountId.length + killedBy.length; 41 | } 42 | 43 | String Death::toString() const 44 | { 45 | return String("DEATH"); 46 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/EnemyShoot.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | EnemyShoot::EnemyShoot(byte bulletId, int ownerId, byte bulletType, const Location& position, float angle, short damage, byte numShots, float angleInc) 11 | : bulletId(bulletId), ownerId(ownerId), bulletType(bulletType), position(position), angle(angle), damage(damage), numShots(numShots), angleInc(angleInc) 12 | { 13 | 14 | } 15 | 16 | EnemyShoot::EnemyShoot(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(bulletId); 21 | r.read(ownerId); 22 | r.read(bulletType); 23 | r.read(position); 24 | r.read(angle); 25 | r.read(damage); 26 | 27 | if (r.more()) 28 | { 29 | r.read(numShots); 30 | r.read(angleInc); 31 | } 32 | else 33 | { 34 | numShots = 1; 35 | angleInc = 0; 36 | } 37 | } 38 | 39 | void EnemyShoot::emplace(byte* buffer) const 40 | { 41 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::EnemyShoot]); 42 | 43 | w.write(bulletId); 44 | w.write(ownerId); 45 | w.write(bulletType); 46 | w.write(position); 47 | w.write(angle); 48 | w.write(damage); 49 | 50 | if (numShots != 1) 51 | { 52 | w.write(numShots); 53 | w.write(angleInc); 54 | } 55 | } 56 | 57 | int EnemyShoot::size() const 58 | { 59 | if (numShots == 1) 60 | return 25; 61 | else 62 | return 30; 63 | } 64 | 65 | String EnemyShoot::toString() const 66 | { 67 | return String("ENEMYSHOOT"); 68 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/Failure.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Failure::Failure(int errorId, const String& message) 11 | : errorId(errorId), message(message) 12 | { 13 | 14 | } 15 | 16 | Failure::Failure(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(errorId); 21 | r.read(message); 22 | } 23 | 24 | void Failure::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Failure]); 27 | 28 | w.write(errorId); 29 | w.write(message); 30 | } 31 | 32 | int Failure::size() const 33 | { 34 | return 11 + message.length; 35 | } 36 | 37 | String Failure::toString() const 38 | { 39 | return String("FAILURE"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/FetchQuestResponse.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | FetchQuestResponse::FetchQuestResponse(const Array& quests) 11 | : quests(quests) 12 | { 13 | 14 | } 15 | 16 | FetchQuestResponse::FetchQuestResponse(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(quests); 21 | } 22 | 23 | void FetchQuestResponse::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::FetchQuestResponse]); 26 | 27 | w.write(quests); 28 | } 29 | 30 | int FetchQuestResponse::size() const 31 | { 32 | int size = 7 + 16 * quests.length; 33 | 34 | for (size_t i = 0; i < quests.length; i++) 35 | size += quests[i].id.length + quests[i].name.length + quests[i].description.length + 4 * quests[i].requirements.length + 4 * quests[i].rewards.length; 36 | 37 | return size; 38 | } 39 | 40 | String FetchQuestResponse::toString() const 41 | { 42 | return String("FETCHQUESTRESPONSE"); 43 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/File.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | File::File(const String& filename, const String& contents) 11 | : filename(filename), contents(contents) 12 | { 13 | 14 | } 15 | 16 | File::File(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(filename); 21 | r.read(contents); 22 | } 23 | 24 | void File::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::File]); 27 | 28 | w.write(filename); 29 | w.write(contents); 30 | } 31 | 32 | int File::size() const 33 | { 34 | return 9 + filename.length + contents.length; 35 | } 36 | 37 | String File::toString() const 38 | { 39 | return String("FILE"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/GlobalNotification.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | GlobalNotification::GlobalNotification(int type, const String& text) 11 | : type(type), text(text) 12 | { 13 | 14 | } 15 | 16 | GlobalNotification::GlobalNotification(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(type); 21 | r.read(text); 22 | } 23 | 24 | void GlobalNotification::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::GlobalNotification]); 27 | 28 | w.write(type); 29 | w.write(text); 30 | } 31 | 32 | int GlobalNotification::size() const 33 | { 34 | return 11 + text.length; 35 | } 36 | 37 | String GlobalNotification::toString() const 38 | { 39 | return String("GLOBALNOTIFICATION"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/Goto.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Goto::Goto(int objectId, const Location& position) 11 | : objectId(objectId), position(position) 12 | { 13 | 14 | } 15 | 16 | Goto::Goto(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(objectId); 21 | r.read(position); 22 | } 23 | 24 | void Goto::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Goto]); 27 | 28 | w.write(objectId); 29 | w.write(position); 30 | } 31 | 32 | int Goto::size() const 33 | { 34 | return 17; 35 | } 36 | 37 | String Goto::toString() const 38 | { 39 | return String("GOTO"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/GuildResult.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | GuildResult::GuildResult(bool success, const String& json) 11 | : success(success), json(json) 12 | { 13 | 14 | } 15 | 16 | GuildResult::GuildResult(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(success); 21 | r.read(json); 22 | } 23 | 24 | void GuildResult::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::GuildResult]); 27 | 28 | w.write(success); 29 | w.write(json); 30 | } 31 | 32 | int GuildResult::size() const 33 | { 34 | return 8 + json.length; 35 | } 36 | 37 | String GuildResult::toString() const 38 | { 39 | return String("GUILDRESULT"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/InvResult.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | InvResult::InvResult(int result) 11 | : result(result) 12 | { 13 | 14 | } 15 | 16 | InvResult::InvResult(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(result); 21 | } 22 | 23 | void InvResult::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::InvResult]); 26 | 27 | w.write(result); 28 | } 29 | 30 | int InvResult::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String InvResult::toString() const 36 | { 37 | return String("INVRESULT"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/InvitedToGuild.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | InvitedToGuild::InvitedToGuild(const String& name, const String& guildName) 11 | : name(name), guildName(guildName) 12 | { 13 | 14 | } 15 | 16 | InvitedToGuild::InvitedToGuild(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(name); 21 | r.read(guildName); 22 | } 23 | 24 | void InvitedToGuild::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::InvitedToGuild]); 27 | 28 | w.write(name); 29 | w.write(guildName); 30 | } 31 | 32 | int InvitedToGuild::size() const 33 | { 34 | return 9 + name.length + guildName.length; 35 | } 36 | 37 | String InvitedToGuild::toString() const 38 | { 39 | return String("INVITEDTOGUILD"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/KeyInfoResponse.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | KeyInfoResponse::KeyInfoResponse(const String& name, const String& description, const String& creator) 11 | : name(name), description(description), creator(creator) 12 | { 13 | 14 | } 15 | 16 | KeyInfoResponse::KeyInfoResponse(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(name); 21 | r.read(description); 22 | r.read(creator); 23 | } 24 | 25 | void KeyInfoResponse::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::KeyInfoResponse]); 28 | 29 | w.write(name); 30 | w.write(description); 31 | w.write(creator); 32 | } 33 | 34 | int KeyInfoResponse::size() const 35 | { 36 | return 11 + name.length + description.length + creator.length; 37 | } 38 | 39 | String KeyInfoResponse::toString() const 40 | { 41 | return String("KEYINFORESPONSE"); 42 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/MapInfo.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | MapInfo::MapInfo(byte* data) 11 | { 12 | PacketReader r(data); 13 | 14 | r.read(width); 15 | r.read(height); 16 | r.read(name); 17 | r.read(displayName); 18 | r.read(difficulty); 19 | r.read(seed); 20 | r.read(background); 21 | r.read(allowTeleport); 22 | r.read(showDisplays); 23 | r.read32(clientXML); 24 | r.read32(extraXML); 25 | } 26 | 27 | void MapInfo::emplace(byte* buffer) const 28 | { 29 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::MapInfo]); 30 | 31 | w.write(width); 32 | w.write(height); 33 | w.write(name); 34 | w.write(displayName); 35 | w.write(difficulty); 36 | w.write(seed); 37 | w.write(background); 38 | w.write(allowTeleport); 39 | w.write(showDisplays); 40 | w.write32(clientXML); 41 | w.write32(extraXML); 42 | } 43 | 44 | int MapInfo::size() const 45 | { 46 | int size = 35 + name.length + displayName.length; 47 | 48 | for (size_t i = 0; i < clientXML.length; i++) 49 | size += 4 + clientXML[i].length; 50 | 51 | for (size_t i = 0; i < extraXML.length; i++) 52 | size += 4 + extraXML[i].length; 53 | 54 | return size; 55 | } 56 | 57 | String MapInfo::toString() const 58 | { 59 | return String("MAPINFO"); 60 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/NameResult.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | NameResult::NameResult(bool success, const String& errorMessage) 11 | : success(success), errorMessage(errorMessage) 12 | { 13 | 14 | } 15 | 16 | NameResult::NameResult(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(success); 21 | r.read(errorMessage); 22 | } 23 | 24 | void NameResult::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::NameResult]); 27 | 28 | w.write(success); 29 | w.write(errorMessage); 30 | } 31 | 32 | int NameResult::size() const 33 | { 34 | return 8 + errorMessage.length; 35 | } 36 | 37 | String NameResult::toString() const 38 | { 39 | return String("NAMERESULT"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/NewAbilityUnlocked.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | NewAbilityUnlocked::NewAbilityUnlocked(int type) 11 | : type(type) 12 | { 13 | 14 | } 15 | 16 | NewAbilityUnlocked::NewAbilityUnlocked(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(type); 21 | } 22 | 23 | void NewAbilityUnlocked::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::NewAbilityUnlocked]); 26 | 27 | w.write(type); 28 | } 29 | 30 | int NewAbilityUnlocked::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String NewAbilityUnlocked::toString() const 36 | { 37 | return String("NEWABILITYUNLOCKED"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/NewTick.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | NewTick::NewTick(int tickId, int tickTime, const Array& statuses) 11 | : tickId(tickId), tickTime(tickTime), statuses(statuses) 12 | { 13 | 14 | } 15 | 16 | NewTick::NewTick(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(tickId); 21 | r.read(tickTime); 22 | r.read(statuses); 23 | } 24 | 25 | void NewTick::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::NewTick]); 28 | 29 | w.write(tickId); 30 | w.write(tickTime); 31 | w.write(statuses); 32 | } 33 | 34 | int NewTick::size() const 35 | { 36 | int size = 15 + 14 * statuses.length; 37 | 38 | for (size_t i = 0; i < statuses.length; i++) 39 | { 40 | for (size_t j = 0; j < statuses[i].data.length; j++) 41 | { 42 | StatData* data = &statuses[i].data[j]; 43 | size += data->isStringValue() ? 3 + data->stringValue.length : 5; 44 | } 45 | } 46 | 47 | return size; 48 | } 49 | 50 | String NewTick::toString() const 51 | { 52 | return String("NEWTICK"); 53 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/Notification.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Notification::Notification(int objectId, const String& message, int color) 11 | : objectId(objectId), message(message), color(color) 12 | { 13 | 14 | } 15 | 16 | Notification::Notification(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(objectId); 21 | r.read(message); 22 | r.read(color); 23 | } 24 | 25 | void Notification::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Notification]); 28 | 29 | w.write(objectId); 30 | w.writeMsg(message); 31 | w.write(color); 32 | } 33 | 34 | int Notification::size() const 35 | { 36 | if (message.c_str[0] != '{') 37 | return 51 + message.length; 38 | else 39 | return 15 + message.length; 40 | } 41 | 42 | String Notification::toString() const 43 | { 44 | return String("NOTIFICATION"); 45 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/PasswordPrompt.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | PasswordPrompt::PasswordPrompt(int cleanPasswordStatus) 11 | : cleanPasswordStatus(cleanPasswordStatus) 12 | { 13 | 14 | } 15 | 16 | PasswordPrompt::PasswordPrompt(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(cleanPasswordStatus); 21 | } 22 | 23 | void PasswordPrompt::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::PasswordPrompt]); 26 | 27 | w.write(cleanPasswordStatus); 28 | } 29 | 30 | int PasswordPrompt::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String PasswordPrompt::toString() const 36 | { 37 | return String("PASSWORDPROMPT"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/PetDeleted.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | PetDeleted::PetDeleted(int petId) 11 | : petId(petId) 12 | { 13 | 14 | } 15 | 16 | PetDeleted::PetDeleted(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(petId); 21 | } 22 | 23 | void PetDeleted::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::PetDeleted]); 26 | 27 | w.write(petId); 28 | } 29 | 30 | int PetDeleted::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String PetDeleted::toString() const 36 | { 37 | return String("PETDELETED"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/PetEvolved.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | PetEvolved::PetEvolved(int petId, int initialSkin, int finalSkin) 11 | : petId(petId), initialSkin(initialSkin), finalSkin(finalSkin) 12 | { 13 | 14 | } 15 | 16 | PetEvolved::PetEvolved(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(petId); 21 | r.read(initialSkin); 22 | r.read(finalSkin); 23 | } 24 | 25 | void PetEvolved::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::PetEvolved]); 28 | 29 | w.write(petId); 30 | w.write(initialSkin); 31 | w.write(finalSkin); 32 | } 33 | 34 | int PetEvolved::size() const 35 | { 36 | return 17; 37 | } 38 | 39 | String PetEvolved::toString() const 40 | { 41 | return String("PETEVOLVED"); 42 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/PetHatched.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | PetHatched::PetHatched(const String& name, int skin, int itemType) 11 | : name(name), skin(skin), itemType(itemType) 12 | { 13 | 14 | } 15 | 16 | PetHatched::PetHatched(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(name); 21 | r.read(skin); 22 | r.read(itemType); 23 | } 24 | 25 | void PetHatched::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::PetHatched]); 28 | 29 | w.write(name); 30 | w.write(skin); 31 | w.write(itemType); 32 | } 33 | 34 | int PetHatched::size() const 35 | { 36 | return 15 + name.length; 37 | } 38 | 39 | String PetHatched::toString() const 40 | { 41 | return String("PETHATCHED"); 42 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/PetYardUpdate.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | PetYardUpdate::PetYardUpdate(int type) 11 | : type(type) 12 | { 13 | 14 | } 15 | 16 | PetYardUpdate::PetYardUpdate(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(type); 21 | } 22 | 23 | void PetYardUpdate::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::PetYardUpdate]); 26 | 27 | w.write(type); 28 | } 29 | 30 | int PetYardUpdate::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String PetYardUpdate::toString() const 36 | { 37 | return String("PETYARDUPDATE"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/Pic.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Pic::Pic(const BitmapData& bitmapData) 11 | : bitmapData(bitmapData) 12 | { 13 | 14 | } 15 | 16 | Pic::Pic(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(bitmapData); 21 | } 22 | 23 | void Pic::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Pic]); 26 | 27 | w.write(bitmapData); 28 | } 29 | 30 | int Pic::size() const 31 | { 32 | return 8 + bitmapData.width * bitmapData.height * 4; 33 | } 34 | 35 | String Pic::toString() const 36 | { 37 | return String("PIC"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/Ping.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Ping::Ping(int serial) 11 | : serial(serial) 12 | { 13 | 14 | } 15 | 16 | Ping::Ping(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(serial); 21 | } 22 | 23 | void Ping::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Ping]); 26 | 27 | w.write(serial); 28 | } 29 | 30 | int Ping::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String Ping::toString() const 36 | { 37 | return String("PING"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/PlaySound.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | PlaySound::PlaySound(int ownerId, byte soundId) 11 | : ownerId(ownerId), soundId(soundId) 12 | { 13 | 14 | } 15 | 16 | PlaySound::PlaySound(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(ownerId); 21 | r.read(soundId); 22 | } 23 | 24 | void PlaySound::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::PlaySound]); 27 | 28 | w.write(ownerId); 29 | w.write(soundId); 30 | } 31 | 32 | int PlaySound::size() const 33 | { 34 | return 10; 35 | } 36 | 37 | String PlaySound::toString() const 38 | { 39 | return String("PLAYSOUND"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/QuestObjId.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | QuestObjId::QuestObjId(int objectId) 11 | : objectId(objectId) 12 | { 13 | 14 | } 15 | 16 | QuestObjId::QuestObjId(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(objectId); 21 | } 22 | 23 | void QuestObjId::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::QuestObjId]); 26 | 27 | w.write(objectId); 28 | } 29 | 30 | int QuestObjId::size() const 31 | { 32 | return 9; 33 | } 34 | 35 | String QuestObjId::toString() const 36 | { 37 | return String("QUESTOBJID"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/QuestRedeemResponse.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | QuestRedeemResponse::QuestRedeemResponse(bool ok, const String& message) 11 | : ok(ok), message(message) 12 | { 13 | 14 | } 15 | 16 | QuestRedeemResponse::QuestRedeemResponse(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(ok); 21 | r.read(message); 22 | } 23 | 24 | void QuestRedeemResponse::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::QuestRedeemResponse]); 27 | 28 | w.write(ok); 29 | w.write(message); 30 | } 31 | 32 | int QuestRedeemResponse::size() const 33 | { 34 | return 8 + message.length; 35 | } 36 | 37 | String QuestRedeemResponse::toString() const 38 | { 39 | return String("QUESTREDEEMRESPONSE"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/Reconnect.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Reconnect::Reconnect(const String& name, const String& host, int gameId) 11 | : name(name), host(host), gameId(gameId), port(2050), keyTime(-1), isFromArena(false) 12 | { 13 | 14 | } 15 | 16 | Reconnect::Reconnect(const String& name, const String& host, int gameId, int keyTime, const Array& key) 17 | : name(name), host(host), gameId(gameId), port(2050), keyTime(keyTime), key(key), isFromArena(false) 18 | { 19 | 20 | } 21 | 22 | Reconnect::Reconnect(byte* data) 23 | { 24 | PacketReader r(data); 25 | 26 | r.read(name); 27 | r.read(host); 28 | r.read(stats); 29 | r.read(port); 30 | r.read(gameId); 31 | r.read(keyTime); 32 | r.read(isFromArena); 33 | r.read(key); 34 | } 35 | 36 | void Reconnect::emplace(byte* buffer) const 37 | { 38 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Reconnect]); 39 | 40 | w.write(name); 41 | w.write(host); 42 | w.write(stats); 43 | w.write(port); 44 | w.write(gameId); 45 | w.write(keyTime); 46 | w.write(isFromArena); 47 | w.write(key); 48 | } 49 | 50 | int Reconnect::size() const 51 | { 52 | return 26 + name.length + host.length + stats.length + key.length; 53 | } 54 | 55 | String Reconnect::toString() const 56 | { 57 | return String("RECONNECT"); 58 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/ReskinUnlock.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ReskinUnlock::ReskinUnlock(int skinId, int isPetSkin) 11 | : skinId(skinId), isPetSkin(isPetSkin) 12 | { 13 | 14 | } 15 | 16 | ReskinUnlock::ReskinUnlock(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(skinId); 21 | r.read(isPetSkin); 22 | } 23 | 24 | void ReskinUnlock::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ReskinUnlock]); 27 | 28 | w.write(skinId); 29 | w.write(isPetSkin); 30 | } 31 | 32 | int ReskinUnlock::size() const 33 | { 34 | return 13; 35 | } 36 | 37 | String ReskinUnlock::toString() const 38 | { 39 | return String("RESKINUNLOCK"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/ServerPlayerShoot.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ServerPlayerShoot::ServerPlayerShoot(byte bulletId, int ownerId, int item, const Location& startPos, float angle, short damage) 11 | : bulletId(bulletId), ownerId(ownerId), item(item), startPos(startPos), angle(angle), damage(damage) 12 | { 13 | 14 | } 15 | 16 | ServerPlayerShoot::ServerPlayerShoot(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(bulletId); 21 | r.read(ownerId); 22 | r.read(item); 23 | r.read(startPos); 24 | r.read(angle); 25 | r.read(damage); 26 | } 27 | 28 | void ServerPlayerShoot::emplace(byte* buffer) const 29 | { 30 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ServerPlayerShoot]); 31 | 32 | w.write(bulletId); 33 | w.write(ownerId); 34 | w.write(item); 35 | w.write(startPos); 36 | w.write(angle); 37 | w.write(damage); 38 | } 39 | 40 | int ServerPlayerShoot::size() const 41 | { 42 | return 28; 43 | } 44 | 45 | String ServerPlayerShoot::toString() const 46 | { 47 | return String("SERVERPLAYERSHOOT"); 48 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/ShowEffect.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | ShowEffect::ShowEffect(byte effectType, int targetId, const Location& pos1, const Location& pos2, int color, float duration) 11 | : effectType(effectType), targetId(targetId), pos1(pos1), pos2(pos2), color(color), duration(duration) 12 | { 13 | 14 | } 15 | 16 | ShowEffect::ShowEffect(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(effectType); 21 | r.read(targetId); 22 | r.read(pos1); 23 | r.read(pos2); 24 | r.read(color); 25 | r.read(duration); 26 | } 27 | 28 | void ShowEffect::emplace(byte* buffer) const 29 | { 30 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::ShowEffect]); 31 | 32 | w.write(effectType); 33 | w.write(targetId); 34 | w.write(pos1); 35 | w.write(pos2); 36 | w.write(color); 37 | w.write(duration); 38 | } 39 | 40 | int ShowEffect::size() const 41 | { 42 | return 34; 43 | } 44 | 45 | String ShowEffect::toString() const 46 | { 47 | return String("SHOWEFFECT"); 48 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/Text.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Text::Text(const String& name, const String& text) 11 | : name(name), objectId(-1), numStars(-1), text(text), bubbleTime(10), isSupporter(false) 12 | { 13 | 14 | } 15 | 16 | Text::Text(const String& name, int objectId, int numStars, const String& recipient, const String& text) 17 | : name(name), objectId(objectId), numStars(numStars), recipient(recipient), text(text), bubbleTime(10), isSupporter(false) 18 | { 19 | 20 | } 21 | 22 | Text::Text(const String& name, int objectId, int numStars, const String& recipient, const String& text, bool isSupporter) 23 | : name(name), objectId(objectId), numStars(numStars), recipient(recipient), text(text), bubbleTime(10), isSupporter(isSupporter) 24 | { 25 | 26 | } 27 | 28 | Text::Text(byte* data) 29 | { 30 | PacketReader r(data); 31 | 32 | r.read(name); 33 | r.read(objectId); 34 | r.read(numStars); 35 | r.read(bubbleTime); 36 | r.read(recipient); 37 | r.read(text); 38 | r.read(cleanText); 39 | r.read(isSupporter); 40 | } 41 | 42 | void Text::emplace(byte* buffer) const 43 | { 44 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Text]); 45 | 46 | w.write(name); 47 | w.write(objectId); 48 | w.write(numStars); 49 | w.write(bubbleTime); 50 | w.write(recipient); 51 | w.write(text); 52 | w.write(cleanText); 53 | w.write(isSupporter); 54 | } 55 | 56 | int Text::size() const 57 | { 58 | return 22 + name.length + recipient.length + text.length + cleanText.length; 59 | } 60 | 61 | String Text::toString() const 62 | { 63 | return String("TEXT"); 64 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/TradeAccepted.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | TradeAccepted::TradeAccepted(const Array& myOffer, const Array& yourOffer) 11 | : myOffer(myOffer), yourOffer(yourOffer) 12 | { 13 | 14 | } 15 | 16 | TradeAccepted::TradeAccepted(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(myOffer); 21 | r.read(yourOffer); 22 | } 23 | 24 | void TradeAccepted::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::TradeAccepted]); 27 | 28 | w.write(myOffer); 29 | w.write(yourOffer); 30 | } 31 | 32 | int TradeAccepted::size() const 33 | { 34 | return 9 + myOffer.length + yourOffer.length; 35 | } 36 | 37 | String TradeAccepted::toString() const 38 | { 39 | return String("TRADEACCEPTED"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/TradeChanged.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | TradeChanged::TradeChanged(const Array& offer) 11 | : offer(offer) 12 | { 13 | 14 | } 15 | 16 | TradeChanged::TradeChanged(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(offer); 21 | } 22 | 23 | void TradeChanged::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::TradeChanged]); 26 | 27 | w.write(offer); 28 | } 29 | 30 | int TradeChanged::size() const 31 | { 32 | return 7 + offer.length; 33 | } 34 | 35 | String TradeChanged::toString() const 36 | { 37 | return String("TRADECHANGED"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/TradeDone.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | TradeDone::TradeDone(int result, const String& message) 11 | : result(result), message(message) 12 | { 13 | 14 | } 15 | 16 | TradeDone::TradeDone(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(result); 21 | r.read(message); 22 | } 23 | 24 | void TradeDone::emplace(byte* buffer) const 25 | { 26 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::TradeDone]); 27 | 28 | w.write(result); 29 | w.write(message); 30 | } 31 | 32 | int TradeDone::size() const 33 | { 34 | return 11 + message.length; 35 | } 36 | 37 | String TradeDone::toString() const 38 | { 39 | return String("TRADEDONE"); 40 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/TradeRequested.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | TradeRequested::TradeRequested(const String& name) 11 | : name(name) 12 | { 13 | 14 | } 15 | 16 | TradeRequested::TradeRequested(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(name); 21 | } 22 | 23 | void TradeRequested::emplace(byte* buffer) const 24 | { 25 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::TradeRequested]); 26 | 27 | w.write(name); 28 | } 29 | 30 | int TradeRequested::size() const 31 | { 32 | return 7 + name.length; 33 | } 34 | 35 | String TradeRequested::toString() const 36 | { 37 | return String("TRADEREQUESTED"); 38 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/TradeStart.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | TradeStart::TradeStart(const Array& myItems, const String& yourName, const Array& yourItems) 11 | : myItems(myItems), yourName(yourName), yourItems(yourItems) 12 | { 13 | 14 | } 15 | 16 | TradeStart::TradeStart(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(myItems); 21 | r.read(yourName); 22 | r.read(yourItems); 23 | } 24 | 25 | void TradeStart::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::TradeStart]); 28 | 29 | w.write(myItems); 30 | w.write(yourName); 31 | w.write(yourItems); 32 | } 33 | 34 | int TradeStart::size() const 35 | { 36 | return 11 + yourName.length + 10 * (myItems.length + yourItems.length); 37 | } 38 | 39 | String TradeStart::toString() const 40 | { 41 | return String("TRADESTART"); 42 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/Update.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | #include "Packets/PacketReader.h" 7 | 8 | #include 9 | 10 | Update::Update(const Array& tiles, const Array& newObjs, const Array& drops) 11 | : tiles(tiles), newObjs(newObjs), drops(drops) 12 | { 13 | 14 | } 15 | 16 | Update::Update(byte* data) 17 | { 18 | PacketReader r(data); 19 | 20 | r.read(tiles); 21 | r.read(newObjs); 22 | r.read(drops); 23 | } 24 | 25 | void Update::emplace(byte* buffer) const 26 | { 27 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::Update]); 28 | 29 | w.write(tiles); 30 | w.write(newObjs); 31 | w.write(drops); 32 | } 33 | 34 | int Update::size() const 35 | { 36 | int size = 11 + 6 * tiles.length + 16 * newObjs.length + 4 * drops.length; 37 | 38 | for (size_t i = 0; i < newObjs.length; i++) 39 | { 40 | for (size_t j = 0; j < newObjs[i].status.data.length; j++) 41 | { 42 | StatData* data = &newObjs[i].status.data[j]; 43 | size += data->isStringValue() ? 3 + data->stringValue.length : 5; 44 | } 45 | } 46 | 47 | return size; 48 | } 49 | 50 | String Update::toString() const 51 | { 52 | return String("UPDATE"); 53 | } -------------------------------------------------------------------------------- /RealmLib/Packets/Server/VerifyEmail.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | #include 5 | #include "Packets/PacketWriter.h" 6 | 7 | #include 8 | 9 | VerifyEmail::VerifyEmail() 10 | { 11 | 12 | } 13 | 14 | VerifyEmail::VerifyEmail(byte* data) 15 | { 16 | 17 | } 18 | 19 | void VerifyEmail::emplace(byte* buffer) const 20 | { 21 | PacketWriter w(buffer, size(), TypeManager::typeToId[PacketType::VerifyEmail]); 22 | } 23 | 24 | int VerifyEmail::size() const 25 | { 26 | return 5; 27 | } 28 | 29 | String VerifyEmail::toString() const 30 | { 31 | return String("VERIFYEMAIL"); 32 | } -------------------------------------------------------------------------------- /RealmLib/Structures/CharacterData.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | ProjectileData* CharacterData::getProjectile(byte bulletId) 6 | { 7 | for (byte i = 0; i < projectilesAmount; i++) 8 | if (projectiles[i].id == bulletId) 9 | return projectiles + i; 10 | return nullptr; 11 | } -------------------------------------------------------------------------------- /RealmLib/Structures/ConditionEffectData.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | -------------------------------------------------------------------------------- /RealmLib/Structures/ItemData.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | -------------------------------------------------------------------------------- /RealmLib/Structures/ObjectData.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | -------------------------------------------------------------------------------- /RealmLib/Structures/ProjectileData.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | -------------------------------------------------------------------------------- /RealmLib/Structures/TileData.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include 4 | 5 | -------------------------------------------------------------------------------- /RealmLib/Util/Random.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "Random.h" 4 | 5 | uint x = 123456789, y = 362436069, z = 521288629; 6 | 7 | uint Random::xorshf96() //period 2^96-1 8 | { 9 | uint t; 10 | x ^= x << 16; 11 | x ^= x >> 5; 12 | x ^= x << 1; 13 | 14 | t = x; 15 | x = y; 16 | y = z; 17 | z = t ^ x ^ y; 18 | 19 | return z; 20 | } -------------------------------------------------------------------------------- /RealmLib/Util/Random.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace Random 4 | { 5 | uint xorshf96(); 6 | } -------------------------------------------------------------------------------- /RealmLib/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/RealmLib/stdafx.cpp -------------------------------------------------------------------------------- /RealmLib/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/RealmLib/stdafx.h -------------------------------------------------------------------------------- /RealmNet/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(RealmNet) 2 | 3 | set(Boost_USE_STATIC_LIBS ON) 4 | set(Boost_USE_MULTITHREADED ON) 5 | set(Boost_USE_STATIC_RUNTIME OFF) 6 | find_package(Boost REQUIRED COMPONENTS system date_time filesystem regex thread) 7 | 8 | file(GLOB TOP_LEVEL "*.cpp" "*.h") 9 | file(GLOB SRC_CRYPTO "./Crypto/*.cpp" "./Crypto/*.h") 10 | file(GLOB SRC_DATA "./Data/*.cpp" "./Data/*.h") 11 | file(GLOB SRC_NETWORKING "./Networking/*.cpp" "./Networking/*.h") 12 | file(GLOB PROJECT_FILES FILES ${TOP_LEVEL} ${SRC_CRYPTO} ${SRC_DATA} ${SRC_NETWORKING}) 13 | 14 | if(MSVC) 15 | foreach(src_file ${PROJECT_FILES}) 16 | set_source_files_properties(${src_file} PROPERTIES COMPILE_FLAGS "/Yustdafx.h") 17 | endforeach(src_file ${PROJECT_FILES}) 18 | set_source_files_properties(stdafx.cpp PROPERTIES COMPILE_FLAGS "/Ycstdafx.h") 19 | endif(MSVC) 20 | 21 | if(Boost_FOUND) 22 | include_directories(${Boost_INCLUDE_DIRS} "../include" ".") 23 | add_executable(RealmNet ${PROJECT_FILES}) 24 | set_target_properties(RealmNet PROPERTIES RUNTIME_OUTPUT_DIRECTORY "..") 25 | target_link_libraries(RealmNet ${Boost_LIBRARIES} RealmLib) 26 | endif() 27 | 28 | source_group("Crypto" FILES ${SRC_CRYPTO}) 29 | source_group("Data" FILES ${SRC_DATA}) 30 | source_group("Networking" FILES ${SRC_NETWORKING}) 31 | source_group("" FILES ${TOP_LEVEL}) -------------------------------------------------------------------------------- /RealmNet/Crypto/RC4Cipher.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "RC4Cipher.h" 4 | 5 | RC4Cipher::RC4Cipher(const byte* key) 6 | { 7 | workingKey = (byte*)key; 8 | reset(); 9 | } 10 | 11 | void RC4Cipher::reset() 12 | { 13 | x = y = 0; 14 | 15 | for (size_t i = 0; i < 256; i++) 16 | engineState[i] = (byte)i; 17 | 18 | int a = 0; 19 | int b = 0; 20 | 21 | for (size_t i = 0; i < 256; i++) 22 | { 23 | b = ((workingKey[a] & 0xff) + engineState[i] + b) & 0xff; 24 | 25 | //swap 26 | std::swap(engineState[i], engineState[b]); 27 | 28 | a = (a + 1) % 13; //% keylength 29 | } 30 | } 31 | 32 | void RC4Cipher::cipher(byte* buffer, int size) 33 | { 34 | for (size_t i = 0; i < size; i++) 35 | { 36 | x = (x + 1) & 0xff; 37 | y = (engineState[x] + y) & 0xff; 38 | 39 | //swap 40 | std::swap(engineState[x], engineState[y]); 41 | 42 | //xor 43 | buffer[i] ^= engineState[(engineState[x] + engineState[y]) & 0xff]; 44 | } 45 | } -------------------------------------------------------------------------------- /RealmNet/Crypto/RC4Cipher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class RC4Cipher 4 | { 5 | private: 6 | byte engineState[256]; 7 | byte* workingKey; 8 | int x; 9 | int y; 10 | 11 | public: 12 | static constexpr byte key0[13]{ 0x6a,0x39,0x57,0x0c,0xc9,0xde,0x4e,0xc7,0x1d,0x64,0x82,0x18,0x94 }; //client to server 13 | static constexpr byte key1[13]{ 0xc7,0x93,0x32,0xb1,0x97,0xf9,0x2b,0xa8,0x5e,0xd2,0x81,0xa0,0x23 }; //server to client 14 | 15 | RC4Cipher(const byte* key); 16 | void reset(); 17 | void cipher(byte* buffer, int size); 18 | }; -------------------------------------------------------------------------------- /RealmNet/Data/CallbackFunc.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "CallbackFunc.h" 4 | 5 | template class CallbackFunc; 6 | template class CallbackFunc; 7 | template class CallbackFunc<>; 8 | 9 | template 10 | CallbackFunc::CallbackFunc(IPlugin* ptr, void(IPlugin::*callback)(T ...)) 11 | : ptr(ptr), callback(callback) 12 | { 13 | 14 | } 15 | 16 | template 17 | void CallbackFunc::operator()(T ... args) 18 | { 19 | (*ptr.*callback)(args ...); 20 | } -------------------------------------------------------------------------------- /RealmNet/Data/CallbackFunc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | template 6 | class CallbackFunc 7 | { 8 | private: 9 | IPlugin* ptr; 10 | void(IPlugin::*callback)(T ...); 11 | 12 | public: 13 | CallbackFunc(IPlugin* ptr, void(IPlugin::*callback)(T ...)); 14 | CallbackFunc() = delete; 15 | void operator()(T ... args); 16 | }; -------------------------------------------------------------------------------- /RealmNet/Data/KeyHook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Networking/Proxy.h" 4 | 5 | namespace KeyHook 6 | { 7 | extern Proxy* recentActivity; 8 | extern std::vector> hookedKeys; 9 | 10 | void add(Proxy* proxy); 11 | void remove(Proxy* proxy); 12 | 13 | void monitorKeys(); 14 | } -------------------------------------------------------------------------------- /RealmNet/Data/PluginManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace PluginManager 6 | { 7 | extern std::vector instantiators; 8 | extern std::vector disconnectCallbacks; 9 | 10 | void attachPlugins(); 11 | } -------------------------------------------------------------------------------- /RealmNet/Data/ServerSelection.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "ServerSelection.h" 4 | 5 | ServerSelection::ServerSelection(const char* server) 6 | : defaultHost(server), currentHost(server) 7 | { 8 | 9 | } -------------------------------------------------------------------------------- /RealmNet/Data/ServerSelection.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class ServerSelection 6 | { 7 | public: 8 | String defaultHost; //ip of the currently selected game server (e.g. EUN2) 9 | String currentHost; //ip of the current world instance (e.g. nexus or a realm) 10 | 11 | ServerSelection(const char* server); 12 | }; -------------------------------------------------------------------------------- /RealmNet/Data/SettingsFile.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "SettingsFile.h" 4 | 5 | Settings SettingsFile::settings; 6 | 7 | Settings::Settings() 8 | { 9 | std::fstream bin("settings.bin", std::ios::in | std::ios::binary); 10 | if (!bin.good()) 11 | { 12 | //no settings file -> default settings 13 | defaultHost = "52.59.198.155"; //eun2 14 | } 15 | else 16 | { 17 | int temp; 18 | bin.read((char*)&temp, 4); 19 | defaultHost = new char[temp]; 20 | bin.read((char*)defaultHost, temp); //* sizeof(char) 21 | } 22 | } 23 | 24 | void Settings::save() 25 | { 26 | std::fstream bin("settings.bin", std::ios::out | std::ios::binary); 27 | 28 | int temp = strlen(defaultHost) + 1; 29 | bin.write((char*)&temp, 4); 30 | bin.write(defaultHost, temp); 31 | 32 | bin.close(); 33 | } -------------------------------------------------------------------------------- /RealmNet/Data/SettingsFile.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class Settings 4 | { 5 | public: 6 | const char* defaultHost; 7 | 8 | Settings(); 9 | void save(); 10 | 11 | //no copying 12 | Settings(const Settings&) = delete; 13 | void operator=(const Settings&) = delete; 14 | }; 15 | 16 | namespace SettingsFile 17 | { 18 | extern Settings settings; 19 | } -------------------------------------------------------------------------------- /RealmNet/Networking/Acceptor.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "Acceptor.h" 4 | #include "Data/SettingsFile.h" 5 | 6 | //an Acceptor class that creates Proxy instance for each connection 7 | 8 | Acceptor::Acceptor(boost::asio::io_service& ios) 9 | : ios(ios), acceptor(ios, boost::asio::ip::tcp::endpoint(boost::asio::ip::address_v4::loopback(), 2050)), 10 | server(SettingsFile::settings.defaultHost) 11 | { 12 | beginAccept(); 13 | } 14 | 15 | void Acceptor::beginAccept() 16 | { 17 | clientSock = new boost::asio::ip::tcp::socket(ios); 18 | acceptor.async_accept(*clientSock, boost::bind(&Acceptor::acceptCallback, this, boost::asio::placeholders::error)); 19 | } 20 | 21 | void Acceptor::acceptCallback(const boost::system::error_code& error) 22 | { 23 | if (!error) 24 | { 25 | printf("Connecting to %s\n", server.currentHost.c_str); 26 | beginConnect(server.currentHost.c_str); //TODO multiple servers 27 | } 28 | else 29 | { 30 | printf("acceptCallback(): %s\n", error.message().c_str()); 31 | } 32 | } 33 | 34 | void Acceptor::beginConnect(const char* address) 35 | { 36 | serverSock = new boost::asio::ip::tcp::socket(ios); 37 | serverSock->async_connect( 38 | boost::asio::ip::tcp::endpoint(boost::asio::ip::address_v4::from_string(address), 2050), 39 | boost::bind(&Acceptor::connectCallback, this, boost::asio::placeholders::error) 40 | ); 41 | } 42 | 43 | void Acceptor::connectCallback(const boost::system::error_code& error) 44 | { 45 | //puts("Connected"); 46 | if (!error) 47 | { 48 | new Proxy(server, clientSock, serverSock); //will delete itself 49 | beginAccept(); 50 | } 51 | else 52 | { 53 | printf("connectCallback(): %s\n", error.message().c_str()); 54 | } 55 | } -------------------------------------------------------------------------------- /RealmNet/Networking/Acceptor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Proxy.h" 4 | #include "Data/ServerSelection.h" 5 | 6 | class Acceptor 7 | { 8 | private: 9 | boost::asio::io_service& ios; 10 | boost::asio::ip::tcp::acceptor acceptor; 11 | 12 | boost::asio::ip::tcp::socket* clientSock; 13 | boost::asio::ip::tcp::socket* serverSock; 14 | 15 | ServerSelection server; //TODO multiple servers 16 | 17 | public: 18 | Acceptor(boost::asio::io_service& ios); 19 | 20 | void beginAccept(); 21 | void acceptCallback(const boost::system::error_code& error); 22 | 23 | void beginConnect(const char* address); 24 | void connectCallback(const boost::system::error_code& error); 25 | }; -------------------------------------------------------------------------------- /RealmNet/Networking/ClientConnection.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Connection.h" 4 | 5 | class ClientConnection : public Connection 6 | { 7 | protected: 8 | void onPacket() override; 9 | 10 | public: 11 | ClientConnection(Proxy* proxy, boost::asio::ip::tcp::socket* receiveSocket, boost::asio::ip::tcp::socket* sendSocket); 12 | }; -------------------------------------------------------------------------------- /RealmNet/Networking/Connection.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Crypto/RC4Cipher.h" 4 | #include 5 | #include 6 | 7 | class Proxy; 8 | 9 | class Connection 10 | { 11 | private: 12 | bool connectionTerminated(); 13 | 14 | protected: 15 | Proxy& proxy; 16 | boost::asio::ip::tcp::socket* receiveSocket; 17 | boost::asio::ip::tcp::socket* sendSocket; 18 | RC4Cipher incomingCipher; 19 | RC4Cipher outgoingCipher; 20 | 21 | enum { receiveDoubleSize = 262144, receiveSize = 131072, sendSize = 1024 }; 22 | byte receiveBuffer[receiveDoubleSize]; 23 | byte* receiveBuffer2 = receiveBuffer + receiveSize; 24 | byte* receivePtr = receiveBuffer2; 25 | byte sendBuffer[sendSize]; 26 | 27 | int addBytes = 0; 28 | int dataAmount = 0; 29 | int head = 0; 30 | int headAccumulate = 0; 31 | 32 | bool receiving = false; 33 | bool discard = false; 34 | byte packetType; 35 | 36 | virtual void onPacket() = 0; 37 | 38 | public: 39 | Connection(Proxy* proxy, boost::asio::ip::tcp::socket* receiveSocket, boost::asio::ip::tcp::socket* sendSocket, const byte* key); 40 | 41 | void disconnect(); 42 | 43 | void beginRead(const boost::system::error_code& error); 44 | void readCallback(const boost::system::error_code& error, const size_t& bytes_transferred); 45 | 46 | void sendPacket(const Packet& packet); 47 | void sendPacketCallback(const boost::system::error_code& error); 48 | 49 | void updatePacket(Packet& packet); 50 | void discardPacket(Packet& packet); 51 | void fireCallbacks(Packet& packet); 52 | }; -------------------------------------------------------------------------------- /RealmNet/Networking/Proxy.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "Networking/ClientConnection.h" 5 | #include "Networking/ServerConnection.h" 6 | #include "Data/CallbackFunc.h" 7 | #include "Data/ServerSelection.h" 8 | #include "Data/KeyHook.h" 9 | 10 | class Proxy : public IProxy 11 | { 12 | private: 13 | ClientConnection clientConn; 14 | ServerConnection serverConn; 15 | 16 | public: 17 | std::vector> callbacks[255]; 18 | std::vector>> commandCallbacks; 19 | 20 | IPlugin** plugins; 21 | ServerSelection& server; 22 | 23 | int previousTime; 24 | std::chrono::time_point lastUpdate; 25 | 26 | Proxy(ServerSelection& server, boost::asio::ip::tcp::socket* clientSock, boost::asio::ip::tcp::socket* serverSock); 27 | ~Proxy(); 28 | 29 | void hookPacket(byte packetType, IPlugin* instance, void(IPlugin::*callback)(Packet&)) override; 30 | void hookCommand(const char* command, IPlugin* instance, void(IPlugin::*callback)(int, const char**)) override; 31 | 32 | int getTime() override; 33 | 34 | void sendPacket(const ServerPacket& packet) override; 35 | void sendPacket(const ClientPacket& packet) override; 36 | void updatePacket(ServerPacket& packet) override; 37 | void updatePacket(ClientPacket& packet) override; 38 | void discardPacket(ServerPacket& packet) override; 39 | void discardPacket(ClientPacket& packet) override; 40 | 41 | void disconnect() override; 42 | }; -------------------------------------------------------------------------------- /RealmNet/Networking/ServerConnection.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Connection.h" 4 | #include 5 | #include 6 | 7 | class ServerConnection : public Connection 8 | { 9 | private: 10 | void updateStatData(const Array& data); 11 | 12 | protected: 13 | void onPacket() override; 14 | 15 | public: 16 | ServerConnection(Proxy* proxy, boost::asio::ip::tcp::socket* receiveSocket, boost::asio::ip::tcp::socket* sendSocket); 17 | 18 | void closeSocket(); 19 | }; -------------------------------------------------------------------------------- /RealmNet/Program.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/RealmNet/Program.cpp -------------------------------------------------------------------------------- /RealmNet/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/RealmNet/stdafx.cpp -------------------------------------------------------------------------------- /RealmNet/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/RealmNet/stdafx.h -------------------------------------------------------------------------------- /RealmXml/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(RealmXml) 2 | 3 | file(GLOB TOP_LEVEL "*.cpp" "*.h") 4 | file(GLOB SRC_HTTPS "./Https/*.cpp" "./Https/*.h") 5 | file(GLOB SRC_PARSER "./Parser/*.cpp" "./Parser/*.h") 6 | file(GLOB SRC_UTIL "./Util/*.cpp" "./Util/*.h") 7 | file(GLOB PROJECT_FILES FILES ${TOP_LEVEL} ${SRC_HTTPS} ${SRC_PARSER} ${SRC_UTIL}) 8 | 9 | if(MSVC) 10 | foreach(src_file ${PROJECT_FILES}) 11 | set_source_files_properties(${src_file} PROPERTIES COMPILE_FLAGS "/Yustdafx.h") 12 | endforeach(src_file ${PROJECT_FILES}) 13 | set_source_files_properties(stdafx.cpp PROPERTIES COMPILE_FLAGS "/Ycstdafx.h") 14 | endif(MSVC) 15 | 16 | include_directories("../include" ".") 17 | add_executable(RealmXml ${PROJECT_FILES}) 18 | set_target_properties(RealmXml PROPERTIES RUNTIME_OUTPUT_DIRECTORY "..") 19 | target_link_libraries(RealmXml RealmLib) 20 | 21 | source_group("Https" FILES ${SRC_HTTPS}) 22 | source_group("Parser" FILES ${SRC_PARSER}) 23 | source_group("Util" FILES ${SRC_UTIL}) 24 | source_group("" FILES ${TOP_LEVEL}) -------------------------------------------------------------------------------- /RealmXml/Https/Downloader.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "Downloader.h" 4 | 5 | void Downloader::download(const char* url, const char* path, const char* filename) 6 | { 7 | HINTERNET hIntSession = InternetOpenA("", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); 8 | HINTERNET hHttpSession = InternetConnectA(hIntSession, url, 80, 0, 0, INTERNET_SERVICE_HTTP, 0, NULL); 9 | HINTERNET hHttpRequest = HttpOpenRequestA(hHttpSession, "GET", path, 0, 0, 0, INTERNET_FLAG_RELOAD, 0); 10 | 11 | const char* szHeaders = "Content-Type: */*\n"; 12 | CHAR szReq[1024] = ""; 13 | if (!HttpSendRequestA(hHttpRequest, szHeaders, strlen(szHeaders), szReq, strlen(szReq))) 14 | { 15 | DWORD dwErr = GetLastError(); 16 | printf("Error %d\n", dwErr); 17 | } 18 | 19 | CHAR* szBuffer = new char[1024 * 1024 * 8]; //8 MB 20 | DWORD dwRead = 0; 21 | DWORD totalRead = 0; 22 | while (InternetReadFile(hHttpRequest, szBuffer+totalRead, 1024 * 1024 * 8 - totalRead, &dwRead) && dwRead) 23 | { 24 | szBuffer[dwRead] = 0; 25 | totalRead += dwRead; 26 | } 27 | 28 | InternetCloseHandle(hHttpRequest); 29 | InternetCloseHandle(hHttpSession); 30 | InternetCloseHandle(hIntSession); 31 | 32 | std::fstream bin(filename, std::ios::out | std::ios::binary); 33 | bin.write(szBuffer, totalRead); 34 | bin.close(); 35 | 36 | printf("Downloaded %s\n", filename); 37 | } -------------------------------------------------------------------------------- /RealmXml/Https/Downloader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace Downloader 4 | { 5 | void download(const char* url, const char* path, const char* filename); 6 | } -------------------------------------------------------------------------------- /RealmXml/Parser/DataParser.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DataParser 4 | { 5 | void parse(); 6 | } -------------------------------------------------------------------------------- /RealmXml/Parser/ServerParser.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "ServerParser.h" 4 | 5 | #define MAX_SERVERS 32 6 | 7 | void ServerParser::parse() 8 | { 9 | rapidxml::file xmlFile("CharList.xml"); 10 | 11 | rapidxml::xml_document doc; 12 | doc.parse<0>(xmlFile.data()); 13 | 14 | char addresses[1024]; 15 | int offsets[MAX_SERVERS]; 16 | int offset = 0; 17 | 18 | rapidxml::xml_node* rootNode = doc.first_node("Chars")->first_node("Servers"); 19 | int offsetsAmount = 0; 20 | for (rapidxml::xml_node* topNode = rootNode->first_node("Server"); topNode; topNode = topNode->next_sibling()) 21 | { 22 | char* address = topNode->first_node("DNS")->value(); 23 | int size = strlen(address) + 1; 24 | memcpy(addresses + offset, address, size); 25 | offsets[offsetsAmount++] = offset; 26 | offset += size; 27 | } 28 | printf("servers %d/%d\n", offsetsAmount, MAX_SERVERS); 29 | 30 | std::fstream bin("servers.bin", std::ios::out | std::ios::binary); 31 | 32 | bin.write((char*)&offset, 4); 33 | bin.write(addresses, offset); 34 | 35 | bin.write((char*)&offsetsAmount, 4); 36 | bin.write((char*)offsets, offsetsAmount * sizeof(int)); 37 | 38 | bin.close(); 39 | } -------------------------------------------------------------------------------- /RealmXml/Parser/ServerParser.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace ServerParser 4 | { 5 | void parse(); 6 | } -------------------------------------------------------------------------------- /RealmXml/RealmXml.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/RealmXml/RealmXml.cpp -------------------------------------------------------------------------------- /RealmXml/Util/Util.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "Util.h" 4 | 5 | int Util::occurences(const char* text, const char* pattern) 6 | { 7 | int count = 0; 8 | const char* temp = text; 9 | while (temp = strstr(temp, pattern)) 10 | count++, temp++; 11 | return count; 12 | } -------------------------------------------------------------------------------- /RealmXml/Util/Util.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace Util 4 | { 5 | int occurences(const char* text, const char* pattern); 6 | } -------------------------------------------------------------------------------- /RealmXml/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/RealmXml/stdafx.cpp -------------------------------------------------------------------------------- /RealmXml/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/RealmXml/stdafx.h -------------------------------------------------------------------------------- /data.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/data.bin -------------------------------------------------------------------------------- /include/DataObjects/Array.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef LIB 4 | #define PACKET_API __declspec(dllexport) 5 | #else 6 | #define PACKET_API __declspec(dllimport) 7 | #endif 8 | 9 | template 10 | class PACKET_API Array 11 | { 12 | public: 13 | size_t length; 14 | T* data; 15 | 16 | Array(); 17 | Array(T* data, size_t size); 18 | Array(const Array& array); 19 | //Array(Array&& array) noexcept; 20 | ~Array(); 21 | 22 | T& operator[](size_t index) const; 23 | void operator=(const Array& array); 24 | 25 | void reserve(size_t size); 26 | void emplace_back(T& item); 27 | }; -------------------------------------------------------------------------------- /include/DataObjects/BitmapData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API BitmapData 12 | { 13 | public: 14 | int width; 15 | int height; 16 | Array data; 17 | 18 | BitmapData(int width, int height, const Array& data); 19 | BitmapData(); 20 | }; -------------------------------------------------------------------------------- /include/DataObjects/Entity.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Entity 12 | { 13 | public: 14 | ushort objectType; 15 | Status status; 16 | 17 | Entity(ushort objectType, const Status& status); 18 | Entity(); 19 | }; -------------------------------------------------------------------------------- /include/DataObjects/Location.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef LIB 4 | #define PACKET_API __declspec(dllexport) 5 | #else 6 | #define PACKET_API __declspec(dllimport) 7 | #endif 8 | 9 | class PACKET_API Location 10 | { 11 | public: 12 | float x; 13 | float y; 14 | 15 | Location(float x, float y); 16 | Location(); 17 | }; -------------------------------------------------------------------------------- /include/DataObjects/MoveRecord.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef LIB 4 | #define PACKET_API __declspec(dllexport) 5 | #else 6 | #define PACKET_API __declspec(dllimport) 7 | #endif 8 | 9 | class PACKET_API MoveRecord 10 | { 11 | public: 12 | int time; 13 | float x; 14 | float y; 15 | 16 | MoveRecord(int time, float x, float y); 17 | MoveRecord(); 18 | }; -------------------------------------------------------------------------------- /include/DataObjects/PlayerData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API PlayerData 13 | { 14 | public: 15 | int objectId; 16 | int objectType; //class 17 | String name; 18 | Location position; 19 | int inventory[20]; 20 | 21 | int maxHp; 22 | int hp; 23 | int maxMp; 24 | int mp; 25 | int attack; 26 | int defense; 27 | int speed; 28 | int dexterity; 29 | int wisdom; 30 | int vitality; 31 | 32 | int effects; 33 | int effects2; 34 | 35 | int oxygen; 36 | int sinkLevel; 37 | }; -------------------------------------------------------------------------------- /include/DataObjects/QuestData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API QuestData 13 | { 14 | public: 15 | String id; 16 | String name; 17 | String description; 18 | int category; 19 | Array requirements; 20 | Array rewards; 21 | bool completed; 22 | bool itemOfChoice; 23 | byte unused = 0; 24 | 25 | QuestData(const String& id, const String& name, const String& description, int category, const Array& requirements, const Array& rewards, bool completed, bool itemOfChoice); 26 | QuestData(); 27 | }; -------------------------------------------------------------------------------- /include/DataObjects/SlotObject.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef LIB 4 | #define PACKET_API __declspec(dllexport) 5 | #else 6 | #define PACKET_API __declspec(dllimport) 7 | #endif 8 | 9 | class PACKET_API SlotObject 10 | { 11 | public: 12 | int objectId; 13 | byte slotId; 14 | int objectType; 15 | 16 | SlotObject(int objectId, byte slotId, int objectType); 17 | SlotObject(); 18 | }; -------------------------------------------------------------------------------- /include/DataObjects/StatData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API StatData 12 | { 13 | public: 14 | byte id; 15 | int intValue; 16 | String stringValue; 17 | 18 | StatData(byte id, const String& stringValue); 19 | StatData(byte id, int intValue); 20 | StatData(); 21 | 22 | bool isStringValue() const; 23 | }; -------------------------------------------------------------------------------- /include/DataObjects/Status.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #ifdef LIB 8 | #define PACKET_API __declspec(dllexport) 9 | #else 10 | #define PACKET_API __declspec(dllimport) 11 | #endif 12 | 13 | class PACKET_API Status 14 | { 15 | public: 16 | int objectId; 17 | Location position; 18 | Array data; 19 | 20 | Status(int objectId, const Location& position, const Array& data); 21 | Status(); 22 | }; -------------------------------------------------------------------------------- /include/DataObjects/String.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef LIB 4 | #define PACKET_API __declspec(dllexport) 5 | #else 6 | #define PACKET_API __declspec(dllimport) 7 | #endif 8 | 9 | class PACKET_API String 10 | { 11 | public: 12 | size_t length; 13 | char* c_str; 14 | 15 | String(); 16 | String(const char* string); 17 | String(char* buffer, size_t size); 18 | String(const String& string); 19 | ~String(); 20 | 21 | void operator=(const char* string); 22 | void operator=(const String& string); 23 | 24 | bool operator==(const char* string); 25 | bool operator!=(const char* string); 26 | }; -------------------------------------------------------------------------------- /include/DataObjects/Tile.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef LIB 4 | #define PACKET_API __declspec(dllexport) 5 | #else 6 | #define PACKET_API __declspec(dllimport) 7 | #endif 8 | 9 | class PACKET_API Tile 10 | { 11 | public: 12 | short x; 13 | short y; 14 | ushort type; 15 | 16 | Tile(short x, short y, ushort type); 17 | Tile(); 18 | }; -------------------------------------------------------------------------------- /include/DataObjects/TradeItem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef LIB 4 | #define PACKET_API __declspec(dllexport) 5 | #else 6 | #define PACKET_API __declspec(dllimport) 7 | #endif 8 | 9 | class PACKET_API TradeItem 10 | { 11 | public: 12 | int item; 13 | int slotType; 14 | bool tradable; 15 | bool included; 16 | 17 | TradeItem(int item, int slotType, bool tradable, bool included); 18 | TradeItem(); 19 | }; -------------------------------------------------------------------------------- /include/DataStructures/CharacterData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API CharacterData : public ObjectData 13 | { 14 | public: 15 | int maxHp; 16 | short defense; 17 | bool enemy; 18 | 19 | byte projectilesAmount; 20 | ProjectileData* projectiles; 21 | 22 | ProjectileData* getProjectile(byte bulletId); 23 | }; -------------------------------------------------------------------------------- /include/DataStructures/ConditionEffectData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef LIB 4 | #define PACKET_API __declspec(dllexport) 5 | #else 6 | #define PACKET_API __declspec(dllimport) 7 | #endif 8 | 9 | class PACKET_API ConditionEffectData 10 | { 11 | public: 12 | byte effect; 13 | ushort duration; 14 | }; -------------------------------------------------------------------------------- /include/DataStructures/ItemData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ItemData 12 | { 13 | public: 14 | ushort type; 15 | const char* name; 16 | 17 | byte slotType; 18 | byte tier; 19 | byte bagType; 20 | byte numProjectiles; 21 | 22 | bool soulbound; 23 | bool consumable; 24 | short buffDuration; 25 | 26 | ushort manaCost; 27 | ushort cooldown; 28 | ushort feedPower; 29 | 30 | float fireRate; 31 | 32 | byte projectilesAmount; 33 | ProjectileData* projectiles; 34 | }; -------------------------------------------------------------------------------- /include/DataStructures/ObjectData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef LIB 4 | #define PACKET_API __declspec(dllexport) 5 | #else 6 | #define PACKET_API __declspec(dllimport) 7 | #endif 8 | 9 | class PACKET_API ObjectData //inherit to CharacterData, GameObjectData, WallData 10 | { 11 | public: 12 | byte dataClass; 13 | ushort type; 14 | const char* name; 15 | }; -------------------------------------------------------------------------------- /include/DataStructures/ProjectileData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ProjectileData //TODO add id 12 | { 13 | public: 14 | byte id; 15 | 16 | short damage; 17 | short lifetime; 18 | float speed; 19 | 20 | short maxDamage; 21 | short minDamage; 22 | 23 | float amplitude; 24 | float frequency; 25 | float magnitude; 26 | 27 | bool multiHit; 28 | bool passesCover; 29 | bool armorPierce; 30 | 31 | bool boomerang; 32 | bool parametric; 33 | bool wavy; 34 | 35 | short effectsAmount; 36 | ConditionEffectData* effects; 37 | }; -------------------------------------------------------------------------------- /include/DataStructures/TileData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef LIB 4 | #define PACKET_API __declspec(dllexport) 5 | #else 6 | #define PACKET_API __declspec(dllimport) 7 | #endif 8 | 9 | class PACKET_API TileData 10 | { 11 | public: 12 | ushort type; 13 | const char* name; 14 | bool noWalk; 15 | float speed; 16 | bool sink; 17 | ushort minDamage; 18 | ushort maxDamage; 19 | }; -------------------------------------------------------------------------------- /include/GameData/ServerManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | namespace ServerManager 12 | { 13 | PACKET_API extern const char* idToAddr[Server::NUM_SERVERS]; 14 | constexpr const char* idToAbbr[Server::NUM_SERVERS] 15 | { 16 | "use", 17 | "ase", 18 | "uss", 19 | "ussw", 20 | "use2", 21 | "usnw", 22 | "ae", 23 | "eusw", 24 | "uss2", 25 | "eun2", 26 | "eus", 27 | "uss3", 28 | "euw2", 29 | "usmw", 30 | "euw", 31 | "use3", 32 | "usw", 33 | "usw3", 34 | "usmw2", 35 | "eue", 36 | "aus", 37 | "eun", 38 | "usw2" 39 | }; 40 | 41 | PACKET_API void loadServers(); 42 | } -------------------------------------------------------------------------------- /include/GameData/TypeManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | namespace TypeManager 12 | { 13 | PACKET_API extern byte typeToId[PacketType::NUM_PACKETS]; 14 | PACKET_API extern byte idToType[256]; 15 | 16 | PACKET_API void mapPackets(); 17 | } -------------------------------------------------------------------------------- /include/GameData/XmlData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #ifdef LIB 10 | #define PACKET_API __declspec(dllexport) 11 | #else 12 | #define PACKET_API __declspec(dllimport) 13 | #endif 14 | 15 | namespace XmlData 16 | { 17 | PACKET_API ItemData* typeToItem(int type); 18 | PACKET_API ObjectData* typeToObject(int type); 19 | PACKET_API CharacterData* typeToCharacter(int type); 20 | PACKET_API TileData* typeToTile(ushort type); 21 | 22 | PACKET_API void loadData(); 23 | } -------------------------------------------------------------------------------- /include/Packets/AcceptArenaDeath.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API AcceptArenaDeath : public ClientPacket 12 | { 13 | public: 14 | AcceptArenaDeath(); 15 | AcceptArenaDeath(byte* data); 16 | 17 | void emplace(byte* buffer) const override; 18 | int size() const override; 19 | String toString() const override; 20 | }; -------------------------------------------------------------------------------- /include/Packets/AcceptTrade.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API AcceptTrade : public ClientPacket 13 | { 14 | public: 15 | Array myOffer; 16 | Array yourOffer; 17 | 18 | AcceptTrade(const Array& myOffer, const Array& yourOffer); 19 | AcceptTrade(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/AccountList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API AccountList : public ServerPacket 13 | { 14 | public: 15 | int accountListId; 16 | Array accountIds; 17 | int lockAction; 18 | 19 | AccountList(int accountListId, const Array& accountIds, int lockAction); 20 | AccountList(byte* data); 21 | 22 | void emplace(byte* buffer) const override; 23 | int size() const override; 24 | String toString() const override; 25 | }; -------------------------------------------------------------------------------- /include/Packets/ActivePetUpdate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ActivePetUpdate : public ServerPacket 12 | { 13 | public: 14 | int instanceId; 15 | 16 | ActivePetUpdate(int instanceId); 17 | ActivePetUpdate(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/ActivePetUpdateRequest.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ActivePetUpdateRequest : public ClientPacket 12 | { 13 | public: 14 | byte commandType; 15 | int instanceId; 16 | 17 | ActivePetUpdateRequest(byte commandType, int instanceId); 18 | ActivePetUpdateRequest(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/AllyShoot.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API AllyShoot : public ServerPacket 12 | { 13 | public: 14 | byte bulletId; 15 | int ownerId; 16 | short itemType; 17 | float angle; 18 | 19 | AllyShoot(byte bulletId, int ownerId, short itemType, float angle); 20 | AllyShoot(byte* data); 21 | 22 | void emplace(byte* buffer) const override; 23 | int size() const override; 24 | String toString() const override; 25 | }; -------------------------------------------------------------------------------- /include/Packets/Aoe.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API Aoe : public ServerPacket 13 | { 14 | public: 15 | Location position; 16 | float radius; 17 | ushort damage; 18 | byte effect; 19 | float duration; 20 | ushort originType; 21 | int color; 22 | 23 | Aoe(const Location& position, float radius, ushort damage, byte effect, float duration, ushort originType, int color); 24 | Aoe(byte* data); 25 | 26 | void emplace(byte* buffer) const override; 27 | int size() const override; 28 | String toString() const override; 29 | }; -------------------------------------------------------------------------------- /include/Packets/AoeAck.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API AoeAck : public ClientPacket 13 | { 14 | public: 15 | int time; 16 | Location position; 17 | 18 | AoeAck(int time, const Location& position); 19 | AoeAck(int time, float x, float y); 20 | AoeAck(byte* data); 21 | 22 | void emplace(byte* buffer) const override; 23 | int size() const override; 24 | String toString() const override; 25 | }; -------------------------------------------------------------------------------- /include/Packets/ArenaDeath.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ArenaDeath : public ServerPacket 12 | { 13 | public: 14 | int restartPrice; 15 | 16 | ArenaDeath(int restartPrice); 17 | ArenaDeath(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/ArenaNextWave.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ArenaNextWave : public ServerPacket 12 | { 13 | public: 14 | int currentRuntime; 15 | 16 | ArenaNextWave(int currentRuntime); 17 | ArenaNextWave(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/Buy.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Buy : public ClientPacket 12 | { 13 | public: 14 | int objectId; 15 | int quantity; 16 | 17 | Buy(int objectId, int quantity); 18 | Buy(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/BuyResult.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API BuyResult : public ServerPacket 12 | { 13 | public: 14 | int result; 15 | String message; 16 | 17 | BuyResult(int result, const String& message); 18 | BuyResult(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/CancelTrade.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API CancelTrade : public ClientPacket 12 | { 13 | public: 14 | CancelTrade(); 15 | CancelTrade(byte* data); 16 | 17 | void emplace(byte* buffer) const override; 18 | int size() const override; 19 | String toString() const override; 20 | }; -------------------------------------------------------------------------------- /include/Packets/ChangeGuildRank.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ChangeGuildRank : public ClientPacket 12 | { 13 | public: 14 | String name; 15 | int guildRank; 16 | 17 | ChangeGuildRank(const String& name, int guildRank); 18 | ChangeGuildRank(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/ChangePetSkin.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ChangePetSkin : public ClientPacket 12 | { 13 | public: 14 | int petId; 15 | int skinType; 16 | int currency; 17 | 18 | ChangePetSkin(int petId, int skinType, int currency); 19 | ChangePetSkin(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/ChangeTrade.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API ChangeTrade : public ClientPacket 13 | { 14 | public: 15 | Array offer; 16 | 17 | ChangeTrade(const Array& offer); 18 | ChangeTrade(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/CheckCredits.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API CheckCredits : public ClientPacket 12 | { 13 | public: 14 | CheckCredits(); 15 | CheckCredits(byte* data); 16 | 17 | void emplace(byte* buffer) const override; 18 | int size() const override; 19 | String toString() const override; 20 | }; -------------------------------------------------------------------------------- /include/Packets/ChooseName.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ChooseName : public ClientPacket 12 | { 13 | public: 14 | String name; 15 | 16 | ChooseName(const String& name); 17 | ChooseName(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/ClaimLoginReward.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ClaimLoginReward : public ClientPacket 12 | { 13 | public: 14 | String claimKey; 15 | String type; 16 | 17 | ClaimLoginReward(const String& claimKey, const String& type); 18 | ClaimLoginReward(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/ClaimLoginRewardResponse.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ClaimLoginRewardResponse : public ServerPacket 12 | { 13 | public: 14 | int itemId; 15 | int quantity; 16 | int gold; 17 | 18 | ClaimLoginRewardResponse(int itemId, int quantity, int gold); 19 | ClaimLoginRewardResponse(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/ClientPackets.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include -------------------------------------------------------------------------------- /include/Packets/ClientStat.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ClientStat : public ServerPacket 12 | { 13 | public: 14 | String name; 15 | int value; 16 | 17 | ClientStat(const String& name, int value); 18 | ClientStat(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/Create.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Create : public ClientPacket 12 | { 13 | public: 14 | ushort classType; 15 | ushort skinType; 16 | 17 | Create(ushort classType); 18 | Create(ushort classType, ushort skinType); 19 | Create(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/CreateGuild.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API CreateGuild : public ClientPacket 13 | { 14 | public: 15 | String name; 16 | 17 | CreateGuild(const String& name); 18 | CreateGuild(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/CreateSuccess.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API CreateSuccess : public ServerPacket 12 | { 13 | public: 14 | int objectId; 15 | int charId; 16 | 17 | CreateSuccess(int objectId, int charId); 18 | CreateSuccess(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/Damage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API Damage : public ServerPacket 13 | { 14 | public: 15 | int targetId; 16 | Array effects; 17 | int damage; 18 | bool kill; 19 | bool armorPierce; 20 | byte bulletId; 21 | int objectId; 22 | 23 | Damage(int targetId, const Array& effects, int damage, bool kill, bool armorPierce, byte bulletId, int objectId); 24 | Damage(byte* data); 25 | 26 | void emplace(byte* buffer) const override; 27 | int size() const override; 28 | String toString() const override; 29 | }; -------------------------------------------------------------------------------- /include/Packets/Death.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Death : public ServerPacket 12 | { 13 | public: 14 | String accountId; 15 | int charId; 16 | String killedBy; 17 | int zombieType; 18 | int zombieId; 19 | 20 | Death(const String& accountId, int charId, const String& killedBy, int zombieType, int zombieId); 21 | Death(byte* data); 22 | 23 | void emplace(byte* buffer) const override; 24 | int size() const override; 25 | String toString() const override; 26 | }; -------------------------------------------------------------------------------- /include/Packets/EditAccountList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API EditAccountList : public ClientPacket 12 | { 13 | public: 14 | int accountListId; 15 | bool add; 16 | int objectId; 17 | 18 | EditAccountList(int accountListId, bool add, int objectId); 19 | EditAccountList(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/EnemyHit.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API EnemyHit : public ClientPacket 12 | { 13 | public: 14 | int time; 15 | byte bulletId; 16 | int targetId; 17 | bool kill; 18 | 19 | EnemyHit(int time, byte bulletId, int targetId, bool kill); 20 | EnemyHit(byte* data); 21 | 22 | void emplace(byte* buffer) const override; 23 | int size() const override; 24 | String toString() const override; 25 | }; -------------------------------------------------------------------------------- /include/Packets/EnemyShoot.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API EnemyShoot : public ServerPacket 13 | { 14 | public: 15 | byte bulletId; 16 | int ownerId; 17 | byte bulletType; 18 | Location position; 19 | float angle; 20 | short damage; 21 | byte numShots; 22 | float angleInc; 23 | 24 | EnemyShoot(byte bulletId, int ownerId, byte bulletType, const Location& position, float angle, short damage, byte numShots, float angleInc); 25 | EnemyShoot(byte* data); 26 | 27 | void emplace(byte* buffer) const override; 28 | int size() const override; 29 | String toString() const override; 30 | }; -------------------------------------------------------------------------------- /include/Packets/EnterArena.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API EnterArena : public ClientPacket 12 | { 13 | public: 14 | int currency; 15 | 16 | EnterArena(int currency); 17 | EnterArena(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/Escape.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Escape : public ClientPacket 12 | { 13 | public: 14 | Escape(); 15 | Escape(byte* data); 16 | 17 | void emplace(byte* buffer) const override; 18 | int size() const override; 19 | String toString() const override; 20 | }; -------------------------------------------------------------------------------- /include/Packets/Failure.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Failure : public ServerPacket 12 | { 13 | public: 14 | int errorId; 15 | String message; 16 | 17 | Failure(int errorId, const String& message); 18 | Failure(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/FetchQuest.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API FetchQuest : public ClientPacket 12 | { 13 | public: 14 | FetchQuest(); 15 | FetchQuest(byte* data); 16 | 17 | void emplace(byte* buffer) const override; 18 | int size() const override; 19 | String toString() const override; 20 | }; -------------------------------------------------------------------------------- /include/Packets/FetchQuestResponse.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #ifdef LIB 8 | #define PACKET_API __declspec(dllexport) 9 | #else 10 | #define PACKET_API __declspec(dllimport) 11 | #endif 12 | 13 | class PACKET_API FetchQuestResponse : public ServerPacket 14 | { 15 | public: 16 | Array quests; 17 | 18 | FetchQuestResponse(const Array& quests); 19 | FetchQuestResponse(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/File.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API File : public ServerPacket 12 | { 13 | public: 14 | String filename; 15 | String contents; 16 | 17 | File(const String& filename, const String& contents); 18 | File(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/GlobalNotification.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API GlobalNotification : public ServerPacket 12 | { 13 | public: 14 | int type; 15 | String text; 16 | 17 | GlobalNotification(int type, const String& text); 18 | GlobalNotification(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/Goto.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Goto : public ServerPacket 12 | { 13 | public: 14 | int objectId; 15 | Location position; 16 | 17 | Goto(int objectId, const Location& position); 18 | Goto(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/GotoAck.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API GotoAck : public ClientPacket 12 | { 13 | public: 14 | int time; 15 | 16 | GotoAck(int time); 17 | GotoAck(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/GotoQuestRoom.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API GotoQuestRoom : public ClientPacket 12 | { 13 | public: 14 | GotoQuestRoom(); 15 | GotoQuestRoom(byte* data); 16 | 17 | void emplace(byte* buffer) const override; 18 | int size() const override; 19 | String toString() const override; 20 | }; -------------------------------------------------------------------------------- /include/Packets/GroundDamage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API GroundDamage : public ClientPacket 13 | { 14 | public: 15 | int time; 16 | Location position; 17 | 18 | GroundDamage(int time, float x, float y); 19 | GroundDamage(int time, const Location& position); 20 | GroundDamage(byte* data); 21 | 22 | void emplace(byte* buffer) const override; 23 | int size() const override; 24 | String toString() const override; 25 | }; -------------------------------------------------------------------------------- /include/Packets/GuildInvite.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API GuildInvite : public ClientPacket 12 | { 13 | public: 14 | String name; 15 | 16 | GuildInvite(const String& name); 17 | GuildInvite(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/GuildRemove.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API GuildRemove : public ClientPacket 12 | { 13 | public: 14 | String name; 15 | 16 | GuildRemove(const String& name); 17 | GuildRemove(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/GuildResult.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API GuildResult : public ServerPacket 12 | { 13 | public: 14 | bool success; 15 | String json; 16 | 17 | GuildResult(bool success, const String& json); 18 | GuildResult(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/Hello.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API Hello : public ClientPacket 13 | { 14 | public: 15 | String buildVersion; 16 | int gameId; 17 | String guid; 18 | int random1; 19 | String password; 20 | int random2; 21 | String secret; 22 | int keyTime; 23 | Array key; 24 | String mapJSON; 25 | String entryTag; 26 | String gameNet; 27 | String gameNetUserId; 28 | String playPlatform; 29 | String platformToken; 30 | String userToken; 31 | 32 | Hello(const String& buildVersion, const String& guid, const String& password, int gameId, int keyTime, const Array& key); 33 | Hello(const String& buildVersion, const String& guid, const String& password, int gameId); 34 | Hello(byte* data); 35 | 36 | void emplace(byte* buffer) const override; 37 | int size() const override; 38 | String toString() const override; 39 | }; -------------------------------------------------------------------------------- /include/Packets/InvDrop.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API InvDrop : public ClientPacket 13 | { 14 | public: 15 | SlotObject slot; 16 | 17 | InvDrop(const SlotObject& slot); 18 | InvDrop(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/InvResult.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API InvResult : public ServerPacket 12 | { 13 | public: 14 | int result; 15 | 16 | InvResult(int result); 17 | InvResult(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/InvSwap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #ifdef LIB 8 | #define PACKET_API __declspec(dllexport) 9 | #else 10 | #define PACKET_API __declspec(dllimport) 11 | #endif 12 | 13 | class PACKET_API InvSwap : public ClientPacket 14 | { 15 | public: 16 | int time; 17 | Location position; 18 | SlotObject slotObject1; 19 | SlotObject slotObject2; 20 | 21 | InvSwap(int time, const Location& position, const SlotObject& slotObject1, const SlotObject& slotObject2); 22 | InvSwap(int time, float x, float y, const SlotObject& slotObject1, const SlotObject& slotObject2); 23 | InvSwap(byte* data); 24 | 25 | void emplace(byte* buffer) const override; 26 | int size() const override; 27 | String toString() const override; 28 | }; -------------------------------------------------------------------------------- /include/Packets/InvitedToGuild.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API InvitedToGuild : public ServerPacket 12 | { 13 | public: 14 | String name; 15 | String guildName; 16 | 17 | InvitedToGuild(const String& name, const String& guildName); 18 | InvitedToGuild(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/JoinGuild.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API JoinGuild : public ClientPacket 12 | { 13 | public: 14 | String guildName; 15 | 16 | JoinGuild(const String& guildName); 17 | JoinGuild(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/KeyInfoRequest.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API KeyInfoRequest : public ClientPacket 12 | { 13 | public: 14 | int itemType; 15 | 16 | KeyInfoRequest(int itemType); 17 | KeyInfoRequest(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/KeyInfoResponse.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API KeyInfoResponse : public ServerPacket 12 | { 13 | public: 14 | String name; 15 | String description; 16 | String creator; 17 | 18 | KeyInfoResponse(const String& name, const String& description, const String& creator); 19 | KeyInfoResponse(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/Load.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Load : public ClientPacket 12 | { 13 | public: 14 | int charId; 15 | bool isFromArena; 16 | 17 | Load(int charId); 18 | Load(int charId, bool isFromArena); 19 | Load(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/MapInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API MapInfo : public ServerPacket 13 | { 14 | public: 15 | int width; 16 | int height; 17 | String name; 18 | String displayName; 19 | int difficulty; 20 | uint seed; 21 | int background; 22 | bool allowTeleport; 23 | bool showDisplays; 24 | Array clientXML; 25 | Array extraXML; 26 | 27 | MapInfo(byte* data); 28 | 29 | void emplace(byte* buffer) const override; 30 | int size() const override; 31 | String toString() const override; 32 | }; -------------------------------------------------------------------------------- /include/Packets/Move.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #ifdef LIB 9 | #define PACKET_API __declspec(dllexport) 10 | #else 11 | #define PACKET_API __declspec(dllimport) 12 | #endif 13 | 14 | class PACKET_API Move : public ClientPacket 15 | { 16 | public: 17 | int tickId; 18 | int time; 19 | Location newPosition; 20 | Array records; 21 | 22 | Move(int tickId, int time, const Location& newPosition); 23 | Move(int tickId, int time, const Location& newPosition, const Array& records); 24 | Move(byte* data); 25 | 26 | void emplace(byte* buffer) const override; 27 | int size() const override; 28 | String toString() const override; 29 | }; -------------------------------------------------------------------------------- /include/Packets/NameResult.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API NameResult : public ServerPacket 12 | { 13 | public: 14 | bool success; 15 | String errorMessage; 16 | 17 | NameResult(bool success, const String& errorMessage); 18 | NameResult(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/NewAbilityUnlocked.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API NewAbilityUnlocked : public ServerPacket 12 | { 13 | public: 14 | int type; 15 | 16 | NewAbilityUnlocked(int type); 17 | NewAbilityUnlocked(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/NewTick.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #ifdef LIB 8 | #define PACKET_API __declspec(dllexport) 9 | #else 10 | #define PACKET_API __declspec(dllimport) 11 | #endif 12 | 13 | class PACKET_API NewTick : public ServerPacket 14 | { 15 | public: 16 | int tickId; 17 | int tickTime; 18 | Array statuses; 19 | 20 | NewTick(int tickId, int tickTime, const Array& statuses); 21 | NewTick(byte* data); 22 | 23 | void emplace(byte* buffer) const override; 24 | int size() const override; 25 | String toString() const override; 26 | }; -------------------------------------------------------------------------------- /include/Packets/Notification.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Notification : public ServerPacket 12 | { 13 | public: 14 | int objectId; 15 | String message; 16 | int color; 17 | 18 | Notification(int objectId, const String& message, int color); 19 | Notification(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/OtherHit.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API OtherHit : public ClientPacket 12 | { 13 | public: 14 | int time; 15 | byte bulletId; 16 | int objectId; 17 | int targetId; 18 | 19 | OtherHit(int time, byte bulletId, int objectId, int targetId); 20 | OtherHit(byte* data); 21 | 22 | void emplace(byte* buffer) const override; 23 | int size() const override; 24 | String toString() const override; 25 | }; -------------------------------------------------------------------------------- /include/Packets/Packet.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | typedef unsigned char byte; 12 | 13 | class PACKET_API Packet 14 | { 15 | public: 16 | virtual void emplace(byte* buffer) const = 0; 17 | virtual int size() const = 0; 18 | virtual String toString() const = 0; 19 | }; 20 | 21 | class PACKET_API ClientPacket : public Packet 22 | { 23 | 24 | }; 25 | 26 | class PACKET_API ServerPacket : public Packet 27 | { 28 | 29 | }; -------------------------------------------------------------------------------- /include/Packets/PasswordPrompt.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API PasswordPrompt : public ServerPacket 12 | { 13 | public: 14 | int cleanPasswordStatus; 15 | 16 | PasswordPrompt(int result); 17 | PasswordPrompt(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/PetDeleted.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API PetDeleted : public ServerPacket 12 | { 13 | public: 14 | int petId; 15 | 16 | PetDeleted(int petId); 17 | PetDeleted(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/PetEvolved.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API PetEvolved : public ServerPacket 12 | { 13 | public: 14 | int petId; 15 | int initialSkin; 16 | int finalSkin; 17 | 18 | PetEvolved(int petId, int initialSkin, int finalSkin); 19 | PetEvolved(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/PetHatched.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API PetHatched : public ServerPacket 12 | { 13 | public: 14 | String name; 15 | int skin; 16 | int itemType; 17 | 18 | PetHatched(const String& name, int skin, int itemType); 19 | PetHatched(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/PetUpgradeRequest.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #ifdef LIB 8 | #define PACKET_API __declspec(dllexport) 9 | #else 10 | #define PACKET_API __declspec(dllimport) 11 | #endif 12 | 13 | class PACKET_API PetUpgradeRequest : public ClientPacket 14 | { 15 | public: 16 | byte petTransType; 17 | int pid1; 18 | int pid2; 19 | int objectId; 20 | byte paymentTransType; 21 | Array slots; 22 | 23 | PetUpgradeRequest(byte petTransType, int pid1, int pid2, int objectId, byte paymentTransType, const Array& slots); 24 | PetUpgradeRequest(byte* data); 25 | 26 | void emplace(byte* buffer) const override; 27 | int size() const override; 28 | String toString() const override; 29 | }; -------------------------------------------------------------------------------- /include/Packets/PetYardUpdate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API PetYardUpdate : public ServerPacket 12 | { 13 | public: 14 | int type; 15 | 16 | PetYardUpdate(int type); 17 | PetYardUpdate(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/Pic.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API Pic : public ServerPacket 13 | { 14 | public: 15 | BitmapData bitmapData; 16 | 17 | Pic(const BitmapData& bitmapData); 18 | Pic(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/Ping.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Ping : public ServerPacket 12 | { 13 | public: 14 | int serial; 15 | 16 | Ping(int serial); 17 | Ping(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/PlaySound.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API PlaySound : public ServerPacket 12 | { 13 | public: 14 | int ownerId; 15 | byte soundId; 16 | 17 | PlaySound(int ownerId, byte soundId); 18 | PlaySound(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/PlayerHit.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API PlayerHit : public ClientPacket 12 | { 13 | public: 14 | byte bulletId; 15 | int objectId; 16 | 17 | PlayerHit(byte bulletId, int objectId); 18 | PlayerHit(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/PlayerShoot.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API PlayerShoot : public ClientPacket 13 | { 14 | public: 15 | int time; 16 | byte bulletId; 17 | short itemType; 18 | Location position; 19 | float angle; 20 | 21 | PlayerShoot(int time, byte bulletId, short itemType, const Location& position, float angle); 22 | PlayerShoot(byte* data); 23 | 24 | void emplace(byte* buffer) const override; 25 | int size() const override; 26 | String toString() const override; 27 | }; -------------------------------------------------------------------------------- /include/Packets/PlayerText.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API PlayerText : public ClientPacket 12 | { 13 | public: 14 | String text; 15 | 16 | PlayerText(const String& text); 17 | PlayerText(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/Pong.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Pong : public ClientPacket 12 | { 13 | public: 14 | int serial; 15 | int time; 16 | 17 | Pong(int serial, int time); 18 | Pong(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/QuestObjId.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API QuestObjId : public ServerPacket 12 | { 13 | public: 14 | int objectId; 15 | 16 | QuestObjId(int objectId); 17 | QuestObjId(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/QuestRedeem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #ifdef LIB 8 | #define PACKET_API __declspec(dllexport) 9 | #else 10 | #define PACKET_API __declspec(dllimport) 11 | #endif 12 | 13 | class PACKET_API QuestRedeem : public ClientPacket 14 | { 15 | public: 16 | String questId; 17 | Array slots; 18 | int item; 19 | 20 | QuestRedeem(const String& questId, const Array& slots, int item); 21 | QuestRedeem(byte* data); 22 | 23 | void emplace(byte* buffer) const override; 24 | int size() const override; 25 | String toString() const override; 26 | }; -------------------------------------------------------------------------------- /include/Packets/QuestRedeemResponse.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API QuestRedeemResponse : public ServerPacket 12 | { 13 | public: 14 | bool ok; 15 | String message; 16 | 17 | QuestRedeemResponse(bool ok, const String& message); 18 | QuestRedeemResponse(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/Reconnect.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API Reconnect : public ServerPacket 13 | { 14 | public: 15 | String name; 16 | String host; 17 | String stats; 18 | int port; 19 | int gameId; 20 | int keyTime; 21 | bool isFromArena; 22 | Array key; 23 | 24 | Reconnect(const String& name, const String& host, int gameId); 25 | Reconnect(const String& name, const String& host, int gameId, int keyTime, const Array& key); 26 | Reconnect(byte* data); 27 | 28 | void emplace(byte* buffer) const override; 29 | int size() const override; 30 | String toString() const override; 31 | }; -------------------------------------------------------------------------------- /include/Packets/RequestTrade.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API RequestTrade : public ClientPacket 12 | { 13 | public: 14 | String name; 15 | 16 | RequestTrade(const String& name); 17 | RequestTrade(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/Reskin.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Reskin : public ClientPacket 12 | { 13 | public: 14 | int skinId; 15 | 16 | Reskin(int skinId); 17 | Reskin(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/ReskinPet.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API ReskinPet : public ClientPacket 13 | { 14 | public: 15 | int instanceId; 16 | int newPetType; 17 | SlotObject item; 18 | 19 | ReskinPet(int instanceId, int newPetType, const SlotObject& item); 20 | ReskinPet(byte* data); 21 | 22 | void emplace(byte* buffer) const override; 23 | int size() const override; 24 | String toString() const override; 25 | }; -------------------------------------------------------------------------------- /include/Packets/ReskinUnlock.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ReskinUnlock : public ServerPacket 12 | { 13 | public: 14 | int skinId; 15 | int isPetSkin; 16 | 17 | ReskinUnlock(int skinId, int isPetSkin); 18 | ReskinUnlock(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/ServerPlayerShoot.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API ServerPlayerShoot : public ServerPacket 13 | { 14 | public: 15 | byte bulletId; 16 | int ownerId; 17 | int item; 18 | Location startPos; 19 | float angle; 20 | short damage; 21 | 22 | ServerPlayerShoot(byte bulletId, int ownerId, int item, const Location& startPos, float angle, short damage); 23 | ServerPlayerShoot(byte* data); 24 | 25 | void emplace(byte* buffer) const override; 26 | int size() const override; 27 | String toString() const override; 28 | }; -------------------------------------------------------------------------------- /include/Packets/SetCondition.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API SetCondition : public ClientPacket 12 | { 13 | public: 14 | byte effect; 15 | float duration; 16 | 17 | SetCondition(byte effect, float duration); 18 | SetCondition(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/ShootAck.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API ShootAck : public ClientPacket 12 | { 13 | public: 14 | int time; 15 | 16 | ShootAck(int time); 17 | ShootAck(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/ShowEffect.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API ShowEffect : public ServerPacket 13 | { 14 | public: 15 | byte effectType; 16 | int targetId; 17 | Location pos1; 18 | Location pos2; 19 | int color; 20 | float duration; 21 | 22 | ShowEffect(byte effectType, int targetId, const Location& pos1, const Location& pos2, int color, float duration); 23 | ShowEffect(byte* data); 24 | 25 | void emplace(byte* buffer) const override; 26 | int size() const override; 27 | String toString() const override; 28 | }; -------------------------------------------------------------------------------- /include/Packets/SquareHit.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API SquareHit : public ClientPacket 12 | { 13 | public: 14 | int time; 15 | byte bulletId; 16 | int objectId; 17 | 18 | SquareHit(int time, byte bulletId, int objectId); 19 | SquareHit(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/Teleport.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Teleport : public ClientPacket 12 | { 13 | public: 14 | int objectId; 15 | 16 | Teleport(int objectId); 17 | Teleport(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/Text.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API Text : public ServerPacket 12 | { 13 | public: 14 | String name; 15 | int objectId; 16 | int numStars; 17 | byte bubbleTime; 18 | String recipient; 19 | String text; 20 | String cleanText; 21 | bool isSupporter; 22 | 23 | Text(const String& name, const String& text); 24 | Text(const String& name, int objectId, int numStars, const String& recipient, const String& text); 25 | Text(const String& name, int objectId, int numStars, const String& recipient, const String& text, bool isSupporter); 26 | Text(byte* data); 27 | 28 | void emplace(byte* buffer) const override; 29 | int size() const override; 30 | String toString() const override; 31 | }; -------------------------------------------------------------------------------- /include/Packets/TradeAccepted.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API TradeAccepted : public ServerPacket 13 | { 14 | public: 15 | Array myOffer; 16 | Array yourOffer; 17 | 18 | TradeAccepted(const Array& myOffer, const Array& yourOffer); 19 | TradeAccepted(byte* data); 20 | 21 | void emplace(byte* buffer) const override; 22 | int size() const override; 23 | String toString() const override; 24 | }; -------------------------------------------------------------------------------- /include/Packets/TradeChanged.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef LIB 7 | #define PACKET_API __declspec(dllexport) 8 | #else 9 | #define PACKET_API __declspec(dllimport) 10 | #endif 11 | 12 | class PACKET_API TradeChanged : public ServerPacket 13 | { 14 | public: 15 | Array offer; 16 | 17 | TradeChanged(const Array& offer); 18 | TradeChanged(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/TradeDone.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API TradeDone : public ServerPacket 12 | { 13 | public: 14 | int result; 15 | String message; 16 | 17 | TradeDone(int result, const String& message); 18 | TradeDone(byte* data); 19 | 20 | void emplace(byte* buffer) const override; 21 | int size() const override; 22 | String toString() const override; 23 | }; -------------------------------------------------------------------------------- /include/Packets/TradeRequested.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API TradeRequested : public ServerPacket 12 | { 13 | public: 14 | String name; 15 | 16 | TradeRequested(const String& name); 17 | TradeRequested(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/TradeStart.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #ifdef LIB 8 | #define PACKET_API __declspec(dllexport) 9 | #else 10 | #define PACKET_API __declspec(dllimport) 11 | #endif 12 | 13 | class PACKET_API TradeStart : public ServerPacket 14 | { 15 | public: 16 | Array myItems; 17 | String yourName; 18 | Array yourItems; 19 | 20 | TradeStart(const Array& myItems, const String& yourName, const Array& yourItems); 21 | TradeStart(byte* data); 22 | 23 | void emplace(byte* buffer) const override; 24 | int size() const override; 25 | String toString() const override; 26 | }; -------------------------------------------------------------------------------- /include/Packets/Update.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #ifdef LIB 9 | #define PACKET_API __declspec(dllexport) 10 | #else 11 | #define PACKET_API __declspec(dllimport) 12 | #endif 13 | 14 | class PACKET_API Update : public ServerPacket 15 | { 16 | public: 17 | Array tiles; 18 | Array newObjs; 19 | Array drops; 20 | 21 | Update(const Array& tiles, const Array& newObjs, const Array& drops); 22 | Update(byte* data); 23 | 24 | void emplace(byte* buffer) const override; 25 | int size() const override; 26 | String toString() const override; 27 | }; -------------------------------------------------------------------------------- /include/Packets/UpdateAck.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API UpdateAck : public ClientPacket 12 | { 13 | public: 14 | UpdateAck(); 15 | UpdateAck(byte* data); 16 | 17 | void emplace(byte* buffer) const override; 18 | int size() const override; 19 | String toString() const override; 20 | }; -------------------------------------------------------------------------------- /include/Packets/UseItem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #ifdef LIB 8 | #define PACKET_API __declspec(dllexport) 9 | #else 10 | #define PACKET_API __declspec(dllimport) 11 | #endif 12 | 13 | class PACKET_API UseItem : public ClientPacket 14 | { 15 | public: 16 | int time; 17 | SlotObject slotObject; 18 | Location position; 19 | byte useType; 20 | 21 | UseItem(int time, const SlotObject& slotObject, const Location& position, byte useType); 22 | UseItem(int time, const SlotObject& slotObject, float x, float y, byte useType); 23 | UseItem(byte* data); 24 | 25 | void emplace(byte* buffer) const override; 26 | int size() const override; 27 | String toString() const override; 28 | }; -------------------------------------------------------------------------------- /include/Packets/UsePortal.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API UsePortal : public ClientPacket 12 | { 13 | public: 14 | int objectId; 15 | 16 | UsePortal(int objectId); 17 | UsePortal(byte* data); 18 | 19 | void emplace(byte* buffer) const override; 20 | int size() const override; 21 | String toString() const override; 22 | }; -------------------------------------------------------------------------------- /include/Packets/VerifyEmail.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef LIB 6 | #define PACKET_API __declspec(dllexport) 7 | #else 8 | #define PACKET_API __declspec(dllimport) 9 | #endif 10 | 11 | class PACKET_API VerifyEmail : public ServerPacket 12 | { 13 | public: 14 | VerifyEmail(); 15 | VerifyEmail(byte* data); 16 | 17 | void emplace(byte* buffer) const override; 18 | int size() const override; 19 | String toString() const override; 20 | }; -------------------------------------------------------------------------------- /packets.bin: -------------------------------------------------------------------------------- 1 | ,4J;:P/$'dL.R VU>2c[hDWTC`f_Q (AeK?\]7M9B#)*S^3=ZE 58<&aNY" 2 | 1b0O@-!g%Xi -------------------------------------------------------------------------------- /realmnet_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/realmnet_logo.png -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/screenshot.png -------------------------------------------------------------------------------- /servers.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SometimesRain/RealmNet/76ead08b4a0163a05b65389e512942a620331256/servers.bin --------------------------------------------------------------------------------