mirror of
https://github.com/edubart/otclient.git
synced 2025-10-16 12:34:55 +02:00
protocol 860 fixes
This commit is contained in:
@@ -105,7 +105,7 @@ void Game::processDeath()
|
||||
|
||||
void Game::processCreatureSpeak(const std::string& name, int level, const std::string& type, const std::string& message, int channelId, const Position& creaturePos)
|
||||
{
|
||||
if(creaturePos.isValid()) {
|
||||
if(creaturePos.isValid() && (type == "say" || type == "whisper" || type == "yell" || type == "monsterSay" || type == "monsterYell")) {
|
||||
StaticTextPtr staticText = StaticTextPtr(new StaticText);
|
||||
staticText->addMessage(name, type, message);
|
||||
g_map.addThing(staticText, creaturePos);
|
||||
|
@@ -228,7 +228,13 @@ namespace Proto {
|
||||
SpeakPrivateRed,
|
||||
SpeakChannelOrange,
|
||||
SpeakMonsterSay,
|
||||
SpeakMonsterYell
|
||||
SpeakMonsterYell,
|
||||
|
||||
// removed
|
||||
SpeakRVRChannel = 255,
|
||||
SpeakRVRAnswer,
|
||||
SpeakRVRContinue,
|
||||
SpeakChannelRed2
|
||||
#elif PROTOCOL==860
|
||||
SpeakSay = 1,
|
||||
SpeakWhisper,
|
||||
@@ -238,17 +244,15 @@ namespace Proto {
|
||||
SpeakPrivate,
|
||||
SpeakChannelYellow,
|
||||
SpeakChannelWhite,
|
||||
SpeakReportChannel,
|
||||
SpeakReportAnswer,
|
||||
SpeakReportContinue,
|
||||
SpeakRVRChannel,
|
||||
SpeakRVRAnswer,
|
||||
SpeakRVRContinue,
|
||||
SpeakBroadcast,
|
||||
SpeakChannelRed,
|
||||
SpeakPrivateRed,
|
||||
SpeakChannelOrange,
|
||||
SpeakUnk1,
|
||||
SpeakUnk2,
|
||||
SpeakUnk3,
|
||||
SpeakMonsterSay,
|
||||
SpeakChannelRed2 = 17,
|
||||
SpeakMonsterSay = 19,
|
||||
SpeakMonsterYell
|
||||
#endif
|
||||
};
|
||||
@@ -256,18 +260,18 @@ namespace Proto {
|
||||
enum MessageTypes {
|
||||
#if PROTOCOL==860
|
||||
MessageConsoleRed = 18,
|
||||
MessageConsoleOrange1,
|
||||
MessageConsoleOrange2,
|
||||
MessageEventOrange,
|
||||
MessageConsoleOrange,
|
||||
MessageWarning,
|
||||
MessageEventAdvance,
|
||||
MessageEventDefault,
|
||||
MessageStatusDefault,
|
||||
MessageInfoDescription,
|
||||
MessageInfoDescription ,
|
||||
MessageStatusSmall,
|
||||
MessageConsoleBlue
|
||||
#elif PROTOCOL==862
|
||||
MessageConsoleOrange1 = 12,
|
||||
MessageConsoleOrange2,
|
||||
MessageEventOrange = 12,
|
||||
MessageConsoleOrange,
|
||||
MessageWarning,
|
||||
MessageEventAdvance,
|
||||
MessageEventDefault,
|
||||
@@ -302,12 +306,12 @@ namespace Proto {
|
||||
return "monsterYell";
|
||||
case Proto::SpeakPrivateNpcToPlayer:
|
||||
return "npcToPlayer";
|
||||
break;
|
||||
case Proto::SpeakChannelYellow:
|
||||
return "channelYellow";
|
||||
case Proto::SpeakChannelWhite:
|
||||
return "channelWhite";
|
||||
case Proto::SpeakChannelRed:
|
||||
case Proto::SpeakChannelRed2:
|
||||
return "channelRed";
|
||||
case Proto::SpeakChannelOrange:
|
||||
return "channelOrange";
|
||||
@@ -320,18 +324,17 @@ namespace Proto {
|
||||
case Proto::SpeakPrivateRed:
|
||||
return "privateRed";
|
||||
default:
|
||||
logError("unknown protocol speak type ", type);
|
||||
return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
inline std::string translateMessageType(int type) {
|
||||
inline std::string translateTextMessageType(int type) {
|
||||
switch(type) {
|
||||
case Proto::MessageConsoleRed:
|
||||
return "consoleRed";
|
||||
case Proto::MessageConsoleOrange1:
|
||||
return "consoleOrange";
|
||||
case Proto::MessageConsoleOrange2:
|
||||
case Proto::MessageConsoleOrange:
|
||||
return "consoleOrange";
|
||||
case Proto::MessageEventOrange:
|
||||
return "eventOrange";
|
||||
case Proto::MessageWarning:
|
||||
return "warning";
|
||||
case Proto::MessageEventAdvance:
|
||||
@@ -346,7 +349,10 @@ namespace Proto {
|
||||
return "statusSmall";
|
||||
case Proto::MessageConsoleBlue:
|
||||
return "consoleBlue";
|
||||
case Proto::MessageConsoleRed:
|
||||
return "consoleRed";
|
||||
default:
|
||||
logError("unknown protocol text message type ", type);
|
||||
return "unknown";
|
||||
}
|
||||
}
|
||||
|
@@ -755,9 +755,7 @@ void ProtocolGame::parseCreatureSpeak(InputMessage& msg)
|
||||
case Proto::SpeakChannelYellow:
|
||||
case Proto::SpeakChannelWhite:
|
||||
case Proto::SpeakChannelRed:
|
||||
#if PROTOCOL==860
|
||||
case Proto::SpeakUnk2:
|
||||
#endif
|
||||
case Proto::SpeakChannelRed2:
|
||||
case Proto::SpeakChannelOrange:
|
||||
channelId = msg.getU16();
|
||||
break;
|
||||
@@ -766,11 +764,9 @@ void ProtocolGame::parseCreatureSpeak(InputMessage& msg)
|
||||
case Proto::SpeakBroadcast:
|
||||
case Proto::SpeakPrivateRed:
|
||||
break;
|
||||
#if PROTOCOL==860
|
||||
case Proto::SpeakReportChannel:
|
||||
case Proto::SpeakRVRChannel:
|
||||
msg.getU32();
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
logTraceError("unknown speak type ", type);
|
||||
break;
|
||||
@@ -834,7 +830,7 @@ void ProtocolGame::parseTextMessage(InputMessage& msg)
|
||||
{
|
||||
uint8 type = msg.getU8();
|
||||
|
||||
std::string typeDesc = Proto::translateMessageType(type);
|
||||
std::string typeDesc = Proto::translateTextMessageType(type);
|
||||
std::string message = msg.getString();
|
||||
|
||||
g_dispatcher.addEvent(std::bind(&Game::processTextMessage, &g_game, typeDesc, message));
|
||||
|
@@ -96,7 +96,6 @@ bool UIMap::onMousePress(const Point& mousePos, Fw::MouseButton button)
|
||||
EffectPtr effect = EffectPtr(new Effect);
|
||||
static int id = 0;
|
||||
effect->setId(id++);
|
||||
dump << id;
|
||||
g_map.addThing(effect, tilePos);
|
||||
}
|
||||
else if(button == Fw::MouseRightButton) {
|
||||
|
Reference in New Issue
Block a user