2012-01-08 19:29:41 +01:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2010-2012 OTClient <https://github.com/edubart/otclient>
|
|
|
|
*
|
|
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
|
|
* in the Software without restriction, including without limitation the rights
|
|
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
|
|
* furnished to do so, subject to the following conditions:
|
|
|
|
*
|
|
|
|
* The above copyright notice and this permission notice shall be included in
|
|
|
|
* all copies or substantial portions of the Software.
|
|
|
|
*
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
|
* THE SOFTWARE.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef PROTOCOLCODES_H
|
|
|
|
#define PROTOCOLCODES_H
|
|
|
|
|
|
|
|
#include <otclient/global.h>
|
|
|
|
|
2012-05-12 06:52:16 +02:00
|
|
|
#if !(PROTOCOL == 810) && \
|
|
|
|
!(PROTOCOL == 854) && \
|
|
|
|
!(PROTOCOL >= 860 && PROTOCOL <= 862) && \
|
|
|
|
!(PROTOCOL >= 870 && PROTOCOL <= 871) && \
|
|
|
|
!(PROTOCOL >= 910 && PROTOCOL <= 953)
|
2012-01-08 19:29:41 +01:00
|
|
|
#error "the supplied protocol version is not supported"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
namespace Proto {
|
|
|
|
#ifdef CIPSOFT_RSA
|
2012-02-20 03:27:08 +01:00
|
|
|
constexpr const char* RSA = "1321277432058722840622950990822933849527763264961655079678763618"
|
|
|
|
"4334395343554449668205332383339435179772895415509701210392836078"
|
|
|
|
"6959821132214473291575712138800495033169914814069637740318278150"
|
|
|
|
"2907336840325241747827401343576296990629870233111328210165697754"
|
|
|
|
"88792221429527047321331896351555606801473202394175817";
|
2012-01-08 19:29:41 +01:00
|
|
|
#else
|
2012-02-20 03:27:08 +01:00
|
|
|
constexpr const char* RSA = "1091201329673994292788609605089955415282375029027981291234687579"
|
|
|
|
"3726629149257644633073969600111060390723088861007265581882535850"
|
|
|
|
"3429057592827629436413108566029093628212635953836686562675849720"
|
|
|
|
"6207862794310902180176810615217550567108238764764442605581471797"
|
|
|
|
"07119674283982419152118103759076030616683978566631413";
|
2012-01-08 19:29:41 +01:00
|
|
|
#endif
|
|
|
|
|
2012-05-12 06:52:16 +02:00
|
|
|
constexpr int PicSignature = 0x4F8C231A; // 953 pic signature
|
2012-02-20 03:27:08 +01:00
|
|
|
constexpr int ClientVersion = PROTOCOL;
|
2012-01-08 19:29:41 +01:00
|
|
|
|
2012-05-11 21:25:29 +02:00
|
|
|
enum OsTypes {
|
2012-05-12 03:44:13 +02:00
|
|
|
OsLinux = 1,
|
|
|
|
OsWindows = 2,
|
|
|
|
OsFlash = 3,
|
2012-05-14 23:36:54 +02:00
|
|
|
OsOtclientLinux = 10,
|
|
|
|
OsOtclientWindows = 11,
|
|
|
|
OsOtclientMac = 12,
|
2012-05-11 21:25:29 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef OSTYPE
|
|
|
|
constexpr int ClientOs = OSTYPE;
|
|
|
|
#elif defined WIN32
|
2012-05-14 23:36:54 +02:00
|
|
|
constexpr int ClientOs = OsOtclientWindows;
|
2012-05-11 21:25:29 +02:00
|
|
|
#else
|
2012-05-14 23:36:54 +02:00
|
|
|
constexpr int ClientOs = OsOtclientLinux;
|
2012-05-11 21:25:29 +02:00
|
|
|
#endif
|
|
|
|
|
2012-01-08 19:29:41 +01:00
|
|
|
enum LoginServerOpts {
|
|
|
|
LoginServerError = 10,
|
|
|
|
LoginServerMotd = 20,
|
|
|
|
LoginServerUpdateNeeded = 30,
|
|
|
|
LoginServerCharacterList = 100
|
|
|
|
};
|
|
|
|
|
2012-05-12 22:16:33 +02:00
|
|
|
enum CreatureOpcode {
|
|
|
|
UnknownCreature = 97,
|
|
|
|
OutdatedCreature = 98,
|
|
|
|
Creature = 99
|
|
|
|
};
|
|
|
|
|
2012-05-12 13:55:22 +02:00
|
|
|
enum GameServerOpcodes {
|
2012-05-12 03:44:13 +02:00
|
|
|
GameServerInitGame = 10,
|
|
|
|
GameServerGMActions = 11,
|
|
|
|
GameServerLoginError = 20,
|
|
|
|
GameServerLoginAdvice = 21,
|
|
|
|
GameServerLoginWait = 22,
|
2012-05-12 06:52:16 +02:00
|
|
|
GameServerPingBack = 29,
|
2012-05-12 03:44:13 +02:00
|
|
|
GameServerPing = 30,
|
|
|
|
GameServerChallange = 31,
|
|
|
|
GameServerDeath = 40,
|
2012-05-12 13:55:22 +02:00
|
|
|
|
2012-05-17 17:24:41 +02:00
|
|
|
// all in game opcodes must be greater than 50
|
2012-05-12 13:55:22 +02:00
|
|
|
GameServerFirstGameOpcode = 50,
|
|
|
|
|
2012-05-15 01:13:48 +02:00
|
|
|
// otclient ONLY
|
|
|
|
GameServerExtendedOpcode = 50,
|
|
|
|
|
2012-05-12 13:55:22 +02:00
|
|
|
// NOTE: add any custom opcodes in this range
|
2012-05-14 23:36:54 +02:00
|
|
|
// 51 - 99
|
2012-05-12 13:55:22 +02:00
|
|
|
|
|
|
|
// original tibia ONLY
|
2012-05-12 03:44:13 +02:00
|
|
|
GameServerFullMap = 100,
|
|
|
|
GameServerMapTopRow = 101,
|
|
|
|
GameServerMapRightRow = 102,
|
|
|
|
GameServerMapBottomRow = 103,
|
|
|
|
GameServerMapLeftRow = 104,
|
|
|
|
GameServerUpdateTile = 105,
|
|
|
|
GameServerCreateOnMap = 106,
|
|
|
|
GameServerChangeOnMap = 107,
|
|
|
|
GameServerDeleteOnMap = 108,
|
|
|
|
GameServerMoveCreature = 109,
|
|
|
|
GameServerOpenContainer = 110,
|
|
|
|
GameServerCloseContainer = 111,
|
|
|
|
GameServerCreateContainer = 112,
|
|
|
|
GameServerChangeInContainer = 113,
|
|
|
|
GameServerDeleteInContainer = 114,
|
|
|
|
GameServerSetInventory = 120,
|
|
|
|
GameServerDeleteInventory = 121,
|
|
|
|
GameServerOpenNpcTrade = 122,
|
|
|
|
GameServerPlayerGoods = 123,
|
|
|
|
GameServerCloseNpcTrade = 124,
|
|
|
|
GameServerOwnTrade = 125,
|
|
|
|
GameServerCounterTrade = 126,
|
|
|
|
GameServerCloseTrade = 127,
|
|
|
|
GameServerAmbient = 130,
|
|
|
|
GameServerGraphicalEffect = 131,
|
|
|
|
GameServerTextEffect = 132,
|
|
|
|
GameServerMissleEffect = 133,
|
|
|
|
GameServerMarkCreature = 134,
|
|
|
|
GameServerTrappers = 135,
|
|
|
|
GameServerCreatureHealth = 140,
|
|
|
|
GameServerCreatureLight = 141,
|
|
|
|
GameServerCreatureOutfit = 142,
|
|
|
|
GameServerCreatureSpeed = 143,
|
|
|
|
GameServerCreatureSkull = 144,
|
|
|
|
GameServerCreatureParty = 145,
|
|
|
|
GameServerCreatureUnpass = 146,
|
|
|
|
GameServerEditText = 150,
|
|
|
|
GameServerEditList = 151,
|
2012-05-12 13:55:22 +02:00
|
|
|
GameServerPlayerDataBasic = 159, // 910
|
2012-05-12 03:44:13 +02:00
|
|
|
GameServerPlayerData = 160,
|
|
|
|
GameServerPlayerSkills = 161,
|
|
|
|
GameServerPlayerState = 162,
|
|
|
|
GameServerClearTarget = 163,
|
|
|
|
GameServerSpellDelay = 164, // 870
|
|
|
|
GameServerSpellGroupDelay = 165, // 870
|
2012-05-12 13:55:22 +02:00
|
|
|
GameServerMultiUseDelay = 166, // 870
|
2012-05-12 03:44:13 +02:00
|
|
|
GameServerTalk = 170,
|
|
|
|
GameServerChannels = 171,
|
|
|
|
GameServerOpenChannel = 172,
|
|
|
|
GameServerOpenPrivateChannel = 173,
|
|
|
|
GameServerRuleViolationChannel = 174,
|
|
|
|
GameServerRuleViolationRemove = 175,
|
|
|
|
GameServerRuleViolationCancel = 176,
|
|
|
|
GameServerRuleViolationLock = 177,
|
|
|
|
GameServerOpenOwnChannel = 178,
|
|
|
|
GameServerCloseChannel = 179,
|
|
|
|
GameServerTextMessage = 180,
|
|
|
|
GameServerCancelWalk = 181,
|
2012-05-12 13:55:22 +02:00
|
|
|
GameServerWalkWait = 182,
|
2012-05-12 03:44:13 +02:00
|
|
|
GameServerFloorChangeUp = 190,
|
|
|
|
GameServerFloorChangeDown = 191,
|
|
|
|
GameServerChooseOutfit = 200,
|
|
|
|
GameServerVipAdd = 210,
|
|
|
|
GameServerVipLogin = 211,
|
|
|
|
GameServerVipLogout = 212,
|
|
|
|
GameServerTutorialHint = 220,
|
|
|
|
GameServerAutomapFlag = 221,
|
|
|
|
GameServerQuestLog = 240,
|
|
|
|
GameServerQuestLine = 241,
|
2012-05-12 13:55:22 +02:00
|
|
|
GameServerChannelEvent = 243, // 910
|
|
|
|
GameServerItemInfo = 244, // 910
|
2012-05-12 03:44:13 +02:00
|
|
|
GameServerPlayerInventory = 245, // 910
|
2012-05-12 06:52:16 +02:00
|
|
|
GameServerMarketEnter = 246, // 944
|
|
|
|
GameServerMarketLeave = 247, // 944
|
2012-05-12 13:55:22 +02:00
|
|
|
GameServerMarketDetail = 248, // 944
|
|
|
|
GameServerMarketBrowse = 249, // 944
|
2012-01-08 19:29:41 +01:00
|
|
|
};
|
|
|
|
|
2012-05-12 13:55:22 +02:00
|
|
|
enum ClientOpcodes {
|
2012-05-12 03:44:13 +02:00
|
|
|
ClientEnterAccount = 1,
|
|
|
|
ClientEnterGame = 10,
|
|
|
|
ClientLeaveGame = 20,
|
2012-05-12 13:55:22 +02:00
|
|
|
ClientPing = 29,
|
|
|
|
ClientPingBack = 30,
|
|
|
|
|
|
|
|
// all in game opcodes must be equal or greater than 50
|
|
|
|
ClientFirstGameOpcode = 50,
|
|
|
|
|
|
|
|
// otclient ONLY
|
2012-05-15 01:13:48 +02:00
|
|
|
ClientExtendedOpcode = 50,
|
|
|
|
|
|
|
|
// NOTE: add any custom opcodes in this range
|
|
|
|
// 51 - 99
|
2012-05-12 13:55:22 +02:00
|
|
|
|
|
|
|
// original tibia ONLY
|
2012-05-12 03:44:13 +02:00
|
|
|
ClientAutoWalk = 100,
|
|
|
|
ClientWalkNorth = 101,
|
|
|
|
ClientWalkEast = 102,
|
|
|
|
ClientWalkSouth = 103,
|
|
|
|
ClientWalkWest = 104,
|
|
|
|
ClientStop = 105,
|
|
|
|
ClientWalkNorthEast = 106,
|
|
|
|
ClientWalkSouthEast = 107,
|
|
|
|
ClientWalkSouthWest = 108,
|
|
|
|
ClientWalkNorthWest = 109,
|
|
|
|
ClientTurnNorth = 111,
|
|
|
|
ClientTurnEast = 112,
|
|
|
|
ClientTurnSouth = 113,
|
|
|
|
ClientTurnWest = 114,
|
2012-05-12 13:55:22 +02:00
|
|
|
ClientEquipItem = 119, // 910
|
2012-05-12 03:44:13 +02:00
|
|
|
ClientMove = 120,
|
|
|
|
ClientInspectNpcTrade = 121,
|
|
|
|
ClientBuyItem = 122,
|
|
|
|
ClientSellItem = 123,
|
|
|
|
ClientCloseNpcTrade = 124,
|
|
|
|
ClientRequestTrade = 125,
|
|
|
|
ClientInspectTrade = 126,
|
|
|
|
ClientAcceptTrade = 127,
|
|
|
|
ClientRejectTrade = 128,
|
|
|
|
ClientUseItem = 130,
|
|
|
|
ClientUseItemWith = 131,
|
|
|
|
ClientUseOnCreature = 132,
|
|
|
|
ClientRotateItem = 133,
|
|
|
|
ClientCloseContainer = 135,
|
|
|
|
ClientUpContainer = 136,
|
|
|
|
ClientEditText = 137,
|
|
|
|
ClientEditList = 138,
|
|
|
|
ClientLook = 140,
|
|
|
|
ClientTalk = 150,
|
|
|
|
ClientRequestChannels = 151,
|
|
|
|
ClientJoinChannel = 152,
|
|
|
|
ClientLeaveChannel = 153,
|
|
|
|
ClientOpenPrivateChannel = 154,
|
|
|
|
ClientCloseNpcChannel = 158,
|
|
|
|
ClientChangeFightModes = 160,
|
|
|
|
ClientAttack = 161,
|
|
|
|
ClientFollow = 162,
|
|
|
|
ClientInviteToParty = 163,
|
|
|
|
ClientJoinParty = 164,
|
|
|
|
ClientRevokeInvitation = 165,
|
|
|
|
ClientPassLeadership = 166,
|
|
|
|
ClientLeaveParty = 167,
|
|
|
|
ClientShareExperience = 168,
|
|
|
|
ClientDisbandParty = 169,
|
|
|
|
ClientOpenOwnChannel = 170,
|
|
|
|
ClientInviteToOwnChannel = 171,
|
|
|
|
ClientExcludeFromOwnChannel = 172,
|
|
|
|
ClientCancelAttackAndFollow = 190,
|
|
|
|
ClientRefreshContainer = 202,
|
|
|
|
ClientRequestOutfit = 210,
|
|
|
|
ClientChangeOutfit = 211,
|
|
|
|
ClientMount = 212, // 870
|
|
|
|
ClientAddVip = 220,
|
|
|
|
ClientRemoveVip = 221,
|
|
|
|
ClientBugReport = 230,
|
|
|
|
ClientRuleViolation = 231,
|
|
|
|
ClientDebugReport = 232,
|
|
|
|
ClientRequestQuestLog = 240,
|
|
|
|
ClientRequestQuestLine = 241,
|
2012-05-12 13:55:22 +02:00
|
|
|
ClientNewRuleViolation = 242, // 910
|
|
|
|
ClientRequestItemInfo = 243, // 910
|
2012-05-12 06:52:16 +02:00
|
|
|
ClientMarketLeave = 244, // 944
|
|
|
|
ClientMarketBrowse = 245, // 944
|
2012-05-12 13:55:22 +02:00
|
|
|
ClientMarketCreate = 246, // 944
|
|
|
|
ClientMarketCancel = 247, // 944
|
|
|
|
ClientMarketAccept = 248, // 944
|
2012-01-08 19:29:41 +01:00
|
|
|
};
|
|
|
|
|
2012-02-03 05:45:56 +01:00
|
|
|
enum ServerSpeakType {
|
2012-05-12 03:44:13 +02:00
|
|
|
#if PROTOCOL>=910
|
|
|
|
ServerSpeakSay = 1,
|
|
|
|
ServerSpeakWhisper,
|
|
|
|
ServerSpeakYell,
|
|
|
|
ServerSpeakPrivateFrom, // new
|
|
|
|
ServerSpeakPrivateTo, // new
|
|
|
|
ServerSpeakChannelManagement, // new
|
|
|
|
ServerSpeakChannelYellow,
|
|
|
|
ServerSpeakChannelOrange,
|
|
|
|
ServerSpeakSpell, // new
|
|
|
|
ServerSpeakPrivatePlayerToNpc,
|
|
|
|
ServerSpeakPrivateNpcToPlayer,
|
|
|
|
ServerSpeakBroadcast,
|
|
|
|
ServerSpeakChannelRed,
|
|
|
|
ServerSpeakPrivateRedFrom, // new
|
|
|
|
ServerSpeakPrivateRedTo, // new
|
2012-05-12 13:55:22 +02:00
|
|
|
// 16 - 33
|
2012-05-12 03:44:13 +02:00
|
|
|
ServerSpeakMonsterSay = 34,
|
|
|
|
ServerSpeakMonsterYell,
|
|
|
|
|
|
|
|
// unsupported
|
|
|
|
ServerSpeakRVRChannel = 255,
|
|
|
|
ServerSpeakRVRAnswer,
|
|
|
|
ServerSpeakRVRContinue,
|
|
|
|
ServerSpeakChannelRed2,
|
|
|
|
ServerSpeakChannelWhite
|
|
|
|
#elif PROTOCOL>=861
|
2012-02-03 06:10:55 +01:00
|
|
|
ServerSpeakSay = 1,
|
|
|
|
ServerSpeakWhisper,
|
|
|
|
ServerSpeakYell,
|
|
|
|
ServerSpeakPrivatePlayerToNpc,
|
|
|
|
ServerSpeakPrivateNpcToPlayer,
|
2012-05-12 03:44:13 +02:00
|
|
|
ServerSpeakPrivateTo,
|
|
|
|
ServerSpeakPrivateFrom = ServerSpeakPrivateTo,
|
2012-02-03 06:10:55 +01:00
|
|
|
ServerSpeakChannelYellow,
|
|
|
|
ServerSpeakChannelWhite,
|
|
|
|
ServerSpeakBroadcast,
|
|
|
|
ServerSpeakChannelRed,
|
2012-05-12 16:10:47 +02:00
|
|
|
ServerSpeakPrivateRedTo,
|
|
|
|
ServerSpeakPrivateRedFrom = ServerSpeakPrivateRedTo,
|
2012-02-03 06:10:55 +01:00
|
|
|
ServerSpeakChannelOrange,
|
|
|
|
ServerSpeakMonsterSay,
|
|
|
|
ServerSpeakMonsterYell,
|
2012-01-08 21:11:50 +01:00
|
|
|
|
2012-05-11 20:02:57 +02:00
|
|
|
// unsupported
|
2012-02-03 01:25:18 +01:00
|
|
|
ServerSpeakRVRChannel = 255,
|
|
|
|
ServerSpeakRVRAnswer,
|
|
|
|
ServerSpeakRVRContinue,
|
|
|
|
ServerSpeakChannelRed2
|
2012-05-11 20:35:17 +02:00
|
|
|
#elif PROTOCOL>=854
|
2012-02-03 01:25:18 +01:00
|
|
|
ServerSpeakSay = 1,
|
|
|
|
ServerSpeakWhisper,
|
|
|
|
ServerSpeakYell,
|
|
|
|
ServerSpeakPrivatePlayerToNpc,
|
|
|
|
ServerSpeakPrivateNpcToPlayer,
|
2012-05-12 03:44:13 +02:00
|
|
|
ServerSpeakPrivateTo,
|
|
|
|
ServerSpeakPrivateFrom = ServerSpeakPrivateTo,
|
2012-02-03 01:25:18 +01:00
|
|
|
ServerSpeakChannelYellow,
|
|
|
|
ServerSpeakChannelWhite,
|
|
|
|
ServerSpeakRVRChannel,
|
|
|
|
ServerSpeakRVRAnswer,
|
|
|
|
ServerSpeakRVRContinue,
|
|
|
|
ServerSpeakBroadcast,
|
|
|
|
ServerSpeakChannelRed,
|
2012-05-12 03:44:13 +02:00
|
|
|
ServerSpeakPrivateRedTo,
|
|
|
|
ServerSpeakPrivateRedFrom = ServerSpeakPrivateRedTo,
|
2012-02-03 01:25:18 +01:00
|
|
|
ServerSpeakChannelOrange,
|
2012-05-12 13:55:22 +02:00
|
|
|
// 16
|
2012-02-03 01:25:18 +01:00
|
|
|
ServerSpeakChannelRed2 = 17,
|
2012-05-12 13:55:22 +02:00
|
|
|
// 18
|
2012-02-03 01:25:18 +01:00
|
|
|
ServerSpeakMonsterSay = 19,
|
|
|
|
ServerSpeakMonsterYell
|
2012-05-11 20:02:57 +02:00
|
|
|
#elif PROTOCOL>=810
|
|
|
|
ServerSpeakSay = 1,
|
|
|
|
ServerSpeakWhisper,
|
|
|
|
ServerSpeakYell,
|
2012-05-12 03:44:13 +02:00
|
|
|
ServerSpeakPrivateTo,
|
|
|
|
ServerSpeakPrivateFrom = ServerSpeakPrivateTo,
|
2012-05-11 20:02:57 +02:00
|
|
|
ServerSpeakChannelYellow,
|
|
|
|
ServerSpeakRVRChannel,
|
|
|
|
ServerSpeakRVRAnswer,
|
|
|
|
ServerSpeakRVRContinue,
|
|
|
|
ServerSpeakBroadcast,
|
|
|
|
ServerSpeakChannelRed,
|
2012-05-12 03:44:13 +02:00
|
|
|
ServerSpeakPrivateRedTo,
|
|
|
|
ServerSpeakPrivateRedFrom = ServerSpeakPrivateRedTo,
|
2012-05-11 20:02:57 +02:00
|
|
|
ServerSpeakChannelOrange,
|
2012-05-12 13:55:22 +02:00
|
|
|
// 13
|
2012-05-11 20:02:57 +02:00
|
|
|
ServerSpeakChannelRed2 = 14,
|
2012-05-12 13:55:22 +02:00
|
|
|
// 15
|
2012-05-11 20:02:57 +02:00
|
|
|
ServerSpeakMonsterSay = 16,
|
|
|
|
ServerSpeakMonsterYell,
|
|
|
|
|
|
|
|
// unsupported
|
|
|
|
ServerSpeakPrivatePlayerToNpc = 255,
|
|
|
|
ServerSpeakPrivateNpcToPlayer,
|
|
|
|
ServerSpeakChannelWhite
|
2012-01-08 19:29:41 +01:00
|
|
|
#endif
|
|
|
|
};
|
|
|
|
|
|
|
|
enum MessageTypes {
|
2012-05-12 03:44:13 +02:00
|
|
|
#if PROTOCOL>=910
|
2012-05-12 13:55:22 +02:00
|
|
|
// 1-3
|
2012-05-12 03:44:13 +02:00
|
|
|
MessageConsoleBlue = 4, // old
|
2012-05-12 13:55:22 +02:00
|
|
|
// 5-11
|
2012-05-12 03:44:13 +02:00
|
|
|
MessageConsoleRed = 12, // old
|
2012-05-12 13:55:22 +02:00
|
|
|
// 13-15
|
2012-05-12 03:44:13 +02:00
|
|
|
MessageStatusDefault = 16, // old
|
|
|
|
MessageWarning, // old
|
|
|
|
MessageEventAdvance, // old
|
|
|
|
MessageStatusSmall, // old
|
|
|
|
MessageInfoDescription, // old
|
|
|
|
MessageDamageDealt, // new
|
|
|
|
MessageDamageReceived, // new
|
|
|
|
MessageHealed, // new
|
|
|
|
MessageExperience, // new
|
|
|
|
MessageDamageOthers, // new
|
|
|
|
MessageHealedOthers, // new
|
|
|
|
MessageExperienceOthers, // new
|
|
|
|
MessageEventDefault, // old
|
|
|
|
MessageLoot, // new
|
|
|
|
MessageTradeNpc, // unused
|
|
|
|
MessageChannelGuild, // new
|
|
|
|
MessagePartyManagment, // unused
|
|
|
|
MessageParty, // unused
|
|
|
|
MessageEventOrange, // old
|
|
|
|
MessageConsoleOrange, // old
|
|
|
|
MessageReport, // unused
|
|
|
|
MessageHotkeyUse, // unused
|
|
|
|
MessageTutorialHint, // unused
|
|
|
|
|
|
|
|
// unsupported
|
|
|
|
MessageConsoleOrange2 = 255
|
|
|
|
#elif PROTOCOL>=861
|
2012-01-28 19:33:12 +01:00
|
|
|
MessageConsoleOrange = 13,
|
2012-01-25 01:50:30 +01:00
|
|
|
MessageConsoleOrange2,
|
2012-01-08 19:29:41 +01:00
|
|
|
MessageWarning,
|
|
|
|
MessageEventAdvance,
|
|
|
|
MessageEventDefault,
|
|
|
|
MessageStatusDefault,
|
2012-01-28 19:33:12 +01:00
|
|
|
MessageInfoDescription,
|
2012-01-08 19:29:41 +01:00
|
|
|
MessageStatusSmall,
|
2012-01-28 19:33:12 +01:00
|
|
|
MessageConsoleBlue,
|
|
|
|
MessageConsoleRed
|
2012-05-11 20:35:17 +02:00
|
|
|
#elif PROTOCOL>=854
|
2012-01-28 19:33:12 +01:00
|
|
|
MessageConsoleRed = 18,
|
|
|
|
MessageConsoleOrange,
|
2012-01-25 01:50:30 +01:00
|
|
|
MessageConsoleOrange2,
|
2012-01-08 19:29:41 +01:00
|
|
|
MessageWarning,
|
|
|
|
MessageEventAdvance,
|
|
|
|
MessageEventDefault,
|
|
|
|
MessageStatusDefault,
|
2012-05-11 20:02:57 +02:00
|
|
|
MessageInfoDescription,
|
2012-01-08 19:29:41 +01:00
|
|
|
MessageStatusSmall,
|
2012-01-28 19:33:12 +01:00
|
|
|
MessageConsoleBlue
|
2012-05-11 20:02:57 +02:00
|
|
|
#elif PROTOCOL>=810
|
|
|
|
MessageWarning = 18,
|
|
|
|
MessageEventAdvance,
|
|
|
|
MessageEventDefault,
|
|
|
|
MessageStatusDefault,
|
|
|
|
MessageInfoDescription,
|
|
|
|
MessageStatusSmall,
|
|
|
|
MessageConsoleBlue,
|
|
|
|
MessageConsoleRed,
|
|
|
|
|
|
|
|
// unsupported
|
|
|
|
MessageConsoleOrange = 255,
|
|
|
|
MessageConsoleOrange2,
|
2012-01-08 19:29:41 +01:00
|
|
|
#endif
|
|
|
|
};
|
|
|
|
|
2012-05-12 03:44:13 +02:00
|
|
|
enum CreatureType {
|
|
|
|
CreatureTypePlayer = 0,
|
|
|
|
CreatureTypeMonster,
|
|
|
|
CreatureTypeNpc
|
|
|
|
};
|
|
|
|
|
2012-01-08 19:29:41 +01:00
|
|
|
enum CreaturesIdRange {
|
|
|
|
PlayerStartId = 0x10000000,
|
|
|
|
PlayerEndId = 0x40000000,
|
|
|
|
MonsterStartId = 0x40000000,
|
|
|
|
MonsterEndId = 0x80000000,
|
|
|
|
NpcStartId = 0x80000000,
|
|
|
|
NpcEndId = 0xffffffff
|
|
|
|
};
|
|
|
|
|
2012-02-03 01:25:18 +01:00
|
|
|
inline Otc::SpeakType translateSpeakTypeFromServer(int type) {
|
2012-01-08 19:29:41 +01:00
|
|
|
switch(type) {
|
2012-02-03 01:25:18 +01:00
|
|
|
case Proto::ServerSpeakSay: return Otc::SpeakSay;
|
|
|
|
case Proto::ServerSpeakWhisper: return Otc::SpeakWhisper;
|
|
|
|
case Proto::ServerSpeakYell: return Otc::SpeakYell;
|
|
|
|
case Proto::ServerSpeakMonsterSay: return Otc::SpeakMonsterSay;
|
|
|
|
case Proto::ServerSpeakMonsterYell: return Otc::SpeakMonsterYell;
|
|
|
|
case Proto::ServerSpeakPrivateNpcToPlayer: return Otc::SpeakPrivateNpcToPlayer;
|
|
|
|
case Proto::ServerSpeakChannelYellow: return Otc::SpeakChannelYellow;
|
|
|
|
case Proto::ServerSpeakChannelWhite: return Otc::SpeakChannelWhite;
|
|
|
|
case Proto::ServerSpeakChannelRed: return Otc::SpeakChannelRed;
|
|
|
|
case Proto::ServerSpeakChannelRed2: return Otc::SpeakChannelRed;
|
|
|
|
case Proto::ServerSpeakChannelOrange: return Otc::SpeakChannelOrange;
|
2012-05-12 03:44:13 +02:00
|
|
|
case Proto::ServerSpeakPrivateTo: return Otc::SpeakPrivate;
|
2012-02-03 01:25:18 +01:00
|
|
|
case Proto::ServerSpeakPrivatePlayerToNpc: return Otc::SpeakPrivate;
|
|
|
|
case Proto::ServerSpeakBroadcast: return Otc::SpeakBroadcast;
|
2012-05-12 03:44:13 +02:00
|
|
|
case Proto::ServerSpeakPrivateRedTo: return Otc::SpeakPrivateRed;
|
2012-01-08 19:29:41 +01:00
|
|
|
default:
|
2012-06-01 22:39:23 +02:00
|
|
|
g_logger.error(stdext::format("unknown protocol speak type %d", type));
|
2012-02-03 01:25:18 +01:00
|
|
|
return Otc::SpeakSay;
|
2012-01-08 19:29:41 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-02-03 01:25:18 +01:00
|
|
|
inline Proto::ServerSpeakType translateSpeakTypeToServer(int type) {
|
|
|
|
switch(type) {
|
|
|
|
case Otc::SpeakSay: return Proto::ServerSpeakSay;
|
|
|
|
case Otc::SpeakWhisper: return Proto::ServerSpeakWhisper;
|
|
|
|
case Otc::SpeakYell: return Proto::ServerSpeakYell;
|
|
|
|
case Otc::SpeakBroadcast: return Proto::ServerSpeakBroadcast;
|
2012-05-12 03:44:13 +02:00
|
|
|
case Otc::SpeakPrivate: return Proto::ServerSpeakPrivateFrom;
|
|
|
|
case Otc::SpeakPrivateRed: return Proto::ServerSpeakPrivateRedFrom;
|
2012-02-03 01:25:18 +01:00
|
|
|
case Otc::SpeakPrivatePlayerToNpc: return Proto::ServerSpeakPrivatePlayerToNpc;
|
|
|
|
case Otc::SpeakPrivateNpcToPlayer: return Proto::ServerSpeakPrivateNpcToPlayer;
|
|
|
|
case Otc::SpeakChannelYellow: return Proto::ServerSpeakChannelYellow;
|
|
|
|
case Otc::SpeakChannelWhite: return Proto::ServerSpeakChannelWhite;
|
|
|
|
case Otc::SpeakChannelRed: return Proto::ServerSpeakChannelRed;
|
|
|
|
case Otc::SpeakChannelOrange: return Proto::ServerSpeakChannelOrange;
|
|
|
|
case Otc::SpeakMonsterSay: return Proto::ServerSpeakMonsterSay;
|
|
|
|
case Otc::SpeakMonsterYell: return Proto::ServerSpeakMonsterYell;
|
|
|
|
default:
|
2012-06-01 22:39:23 +02:00
|
|
|
g_logger.error(stdext::format("unknown protocol speak type desc %d", type));
|
2012-02-03 01:25:18 +01:00
|
|
|
return Proto::ServerSpeakSay;
|
2012-01-14 02:37:15 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-01-08 21:11:50 +01:00
|
|
|
inline std::string translateTextMessageType(int type) {
|
2012-01-08 19:29:41 +01:00
|
|
|
switch(type) {
|
2012-01-25 01:50:30 +01:00
|
|
|
case Proto::MessageConsoleOrange: return "consoleOrange";
|
|
|
|
case Proto::MessageConsoleOrange2: return "consoleOrange";
|
|
|
|
case Proto::MessageWarning: return "warning";
|
|
|
|
case Proto::MessageEventAdvance: return "eventAdvance";
|
|
|
|
case Proto::MessageEventDefault: return "eventDefault";
|
|
|
|
case Proto::MessageStatusDefault: return "statusDefault";
|
|
|
|
case Proto::MessageInfoDescription: return "infoDescription";
|
|
|
|
case Proto::MessageStatusSmall: return "statusSmall";
|
|
|
|
case Proto::MessageConsoleBlue: return "consoleBlue";
|
|
|
|
case Proto::MessageConsoleRed: return "consoleRed";
|
2012-01-08 19:29:41 +01:00
|
|
|
default:
|
2012-06-01 22:39:23 +02:00
|
|
|
g_logger.error(stdext::format("unknown protocol text message type %d", type));
|
2012-01-08 19:29:41 +01:00
|
|
|
return "unknown";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|