bind all channels/chat lua functions
This commit is contained in:
parent
a4546942d2
commit
496efc44ce
|
@ -478,6 +478,14 @@ void Game::talkPrivate(const std::string& speakTypeDesc, const std::string& rece
|
||||||
m_protocolGame->sendTalk(speakTypeDesc, 0, receiver, message);
|
m_protocolGame->sendTalk(speakTypeDesc, 0, receiver, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Game::openPrivateChannel(const std::string& receiver)
|
||||||
|
{
|
||||||
|
if(!isOnline() || !checkBotProtection())
|
||||||
|
return;
|
||||||
|
m_protocolGame->sendOpenPrivateChannel(receiver);
|
||||||
|
}
|
||||||
|
|
||||||
void Game::requestChannels()
|
void Game::requestChannels()
|
||||||
{
|
{
|
||||||
if(!isOnline() || !checkBotProtection())
|
if(!isOnline() || !checkBotProtection())
|
||||||
|
|
|
@ -84,6 +84,7 @@ public:
|
||||||
void talk(const std::string& message);
|
void talk(const std::string& message);
|
||||||
void talkChannel(const std::string& speakTypeDesc, int channelId, const std::string& message);
|
void talkChannel(const std::string& speakTypeDesc, int channelId, const std::string& message);
|
||||||
void talkPrivate(const std::string& speakTypeDesc, const std::string& receiver, const std::string& message);
|
void talkPrivate(const std::string& speakTypeDesc, const std::string& receiver, const std::string& message);
|
||||||
|
void openPrivateChannel(const std::string& receiver);
|
||||||
void requestChannels();
|
void requestChannels();
|
||||||
void joinChannel(int channelId);
|
void joinChannel(int channelId);
|
||||||
void leaveChannel(int channelId);
|
void leaveChannel(int channelId);
|
||||||
|
|
|
@ -86,6 +86,7 @@ void MapView::draw(const Rect& rect)
|
||||||
++it;
|
++it;
|
||||||
|
|
||||||
tile->draw(transformPositionTo2D(tile->getPosition()), scaleFactor, drawFlags);
|
tile->draw(transformPositionTo2D(tile->getPosition()), scaleFactor, drawFlags);
|
||||||
|
g_painter.drawBoundingRect(Rect(transformPositionTo2D(tile->getPosition()), Size(1,1)*Otc::TILE_PIXELS*scaleFactor));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(drawFlags & Otc::DrawMissiles) {
|
if(drawFlags & Otc::DrawMissiles) {
|
||||||
|
|
|
@ -190,6 +190,9 @@ void OTClient::registerLuaFunctions()
|
||||||
g_lua.bindClassStaticFunction<Game>("requestOutfit", std::bind(&Game::requestOutfit, &g_game));
|
g_lua.bindClassStaticFunction<Game>("requestOutfit", std::bind(&Game::requestOutfit, &g_game));
|
||||||
g_lua.bindClassStaticFunction<Game>("requestChannels", std::bind(&Game::requestChannels, &g_game));
|
g_lua.bindClassStaticFunction<Game>("requestChannels", std::bind(&Game::requestChannels, &g_game));
|
||||||
g_lua.bindClassStaticFunction<Game>("joinChannel", std::bind(&Game::joinChannel, &g_game, _1));
|
g_lua.bindClassStaticFunction<Game>("joinChannel", std::bind(&Game::joinChannel, &g_game, _1));
|
||||||
|
g_lua.bindClassStaticFunction<Game>("leaveChannel", std::bind(&Game::leaveChannel, &g_game, _1));
|
||||||
|
g_lua.bindClassStaticFunction<Game>("closeNpcChannel", std::bind(&Game::closeNpcChannel, &g_game));
|
||||||
|
g_lua.bindClassStaticFunction<Game>("openPrivateChannel", std::bind(&Game::openPrivateChannel, &g_game, _1));
|
||||||
g_lua.bindClassStaticFunction<Game>("setOutfit", std::bind(&Game::setOutfit, &g_game, _1));
|
g_lua.bindClassStaticFunction<Game>("setOutfit", std::bind(&Game::setOutfit, &g_game, _1));
|
||||||
g_lua.bindClassStaticFunction<Game>("look", std::bind(&Game::look, &g_game, _1));
|
g_lua.bindClassStaticFunction<Game>("look", std::bind(&Game::look, &g_game, _1));
|
||||||
g_lua.bindClassStaticFunction<Game>("open", std::bind(&Game::open, &g_game, _1, _2));
|
g_lua.bindClassStaticFunction<Game>("open", std::bind(&Game::open, &g_game, _1, _2));
|
||||||
|
|
|
@ -123,7 +123,7 @@ namespace Proto {
|
||||||
GameServerTalk = 170,
|
GameServerTalk = 170,
|
||||||
GameServerChannels = 171,
|
GameServerChannels = 171,
|
||||||
GameServerOpenChannel = 172,
|
GameServerOpenChannel = 172,
|
||||||
GameServerPrivateChannel = 173,
|
GameServerOpenPrivateChannel = 173,
|
||||||
GameServerRuleViolationChannel = 174, // deprecated in last tibia
|
GameServerRuleViolationChannel = 174, // deprecated in last tibia
|
||||||
GameServerRuleViolationRemove = 175, // deprecated in last tibia
|
GameServerRuleViolationRemove = 175, // deprecated in last tibia
|
||||||
GameServerRuleViolationCancel = 176, // deprecated in last tibia
|
GameServerRuleViolationCancel = 176, // deprecated in last tibia
|
||||||
|
@ -190,7 +190,7 @@ namespace Proto {
|
||||||
ClientGetChannels = 151,
|
ClientGetChannels = 151,
|
||||||
ClientJoinChannel = 152,
|
ClientJoinChannel = 152,
|
||||||
ClientLeaveChannel = 153,
|
ClientLeaveChannel = 153,
|
||||||
ClientPrivateChannel = 154,
|
ClientOpenPrivateChannel = 154,
|
||||||
ClientCloseNpcChannel = 158,
|
ClientCloseNpcChannel = 158,
|
||||||
ClientSetTactics = 160,
|
ClientSetTactics = 160,
|
||||||
ClientAttack = 161,
|
ClientAttack = 161,
|
||||||
|
|
|
@ -77,7 +77,7 @@ public:
|
||||||
void sendGetChannels();
|
void sendGetChannels();
|
||||||
void sendJoinChannel(int channelId);
|
void sendJoinChannel(int channelId);
|
||||||
void sendLeaveChannel(int channelId);
|
void sendLeaveChannel(int channelId);
|
||||||
void sendPrivateChannel(const std::string& receiver);
|
void sendOpenPrivateChannel(const std::string& receiver);
|
||||||
void sendCloseNpcChannel();
|
void sendCloseNpcChannel();
|
||||||
void sendFightTatics(Otc::FightModes fightMode, Otc::ChaseModes chaseMode, bool safeFight);
|
void sendFightTatics(Otc::FightModes fightMode, Otc::ChaseModes chaseMode, bool safeFight);
|
||||||
void sendAttack(uint creatureId);
|
void sendAttack(uint creatureId);
|
||||||
|
@ -155,9 +155,9 @@ private:
|
||||||
void parseCreatureSpeak(InputMessage& msg);
|
void parseCreatureSpeak(InputMessage& msg);
|
||||||
void parseChannelList(InputMessage& msg);
|
void parseChannelList(InputMessage& msg);
|
||||||
void parseOpenChannel(InputMessage& msg);
|
void parseOpenChannel(InputMessage& msg);
|
||||||
void parseOpenPrivatePlayerChat(InputMessage& msg);
|
void parseOpenPrivateChannel(InputMessage& msg);
|
||||||
void parseCreatePrivateChannel(InputMessage& msg);
|
void parseCreateOwnPrivateChannel(InputMessage& msg);
|
||||||
void parseClosePrivateChannel(InputMessage& msg);
|
void parseCloseChannel(InputMessage& msg);
|
||||||
void parseSafeTradeRequest(InputMessage& msg);
|
void parseSafeTradeRequest(InputMessage& msg);
|
||||||
void parseSafeTradeClose(InputMessage&);
|
void parseSafeTradeClose(InputMessage&);
|
||||||
void parseTextMessage(InputMessage& msg);
|
void parseTextMessage(InputMessage& msg);
|
||||||
|
|
|
@ -195,8 +195,8 @@ void ProtocolGame::parseMessage(InputMessage& msg)
|
||||||
case Proto::GameServerOpenChannel:
|
case Proto::GameServerOpenChannel:
|
||||||
parseOpenChannel(msg);
|
parseOpenChannel(msg);
|
||||||
break;
|
break;
|
||||||
case Proto::GameServerPrivateChannel:
|
case Proto::GameServerOpenPrivateChannel:
|
||||||
parseOpenPrivatePlayerChat(msg);
|
parseOpenPrivateChannel(msg);
|
||||||
break;
|
break;
|
||||||
case Proto::GameServerRuleViolationChannel:
|
case Proto::GameServerRuleViolationChannel:
|
||||||
msg.getU16();
|
msg.getU16();
|
||||||
|
@ -210,10 +210,10 @@ void ProtocolGame::parseMessage(InputMessage& msg)
|
||||||
case Proto::GameServerRuleViolationLock:
|
case Proto::GameServerRuleViolationLock:
|
||||||
break;
|
break;
|
||||||
case Proto::GameServerOpenOwnChannel:
|
case Proto::GameServerOpenOwnChannel:
|
||||||
parseCreatePrivateChannel(msg);
|
parseCreateOwnPrivateChannel(msg);
|
||||||
break;
|
break;
|
||||||
case Proto::GameServerCloseChannel:
|
case Proto::GameServerCloseChannel:
|
||||||
parseClosePrivateChannel(msg);
|
parseCloseChannel(msg);
|
||||||
break;
|
break;
|
||||||
case Proto::GameServerMessage:
|
case Proto::GameServerMessage:
|
||||||
parseTextMessage(msg);
|
parseTextMessage(msg);
|
||||||
|
@ -780,20 +780,26 @@ void ProtocolGame::parseOpenChannel(InputMessage& msg)
|
||||||
g_lua.callGlobalField("Game", "onOpenChannel", channelId, name);
|
g_lua.callGlobalField("Game", "onOpenChannel", channelId, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProtocolGame::parseOpenPrivatePlayerChat(InputMessage& msg)
|
void ProtocolGame::parseOpenPrivateChannel(InputMessage& msg)
|
||||||
{
|
{
|
||||||
msg.getString(); // name
|
std::string name = msg.getString();
|
||||||
|
|
||||||
|
g_lua.callGlobalField("Game", "onOpenPrivateChannel", name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProtocolGame::parseCreatePrivateChannel(InputMessage& msg)
|
void ProtocolGame::parseCreateOwnPrivateChannel(InputMessage& msg)
|
||||||
{
|
{
|
||||||
msg.getU16(); // channel id
|
int id = msg.getU16(); // channel id
|
||||||
msg.getString(); // channel name
|
std::string name = msg.getString(); // channel name
|
||||||
|
|
||||||
|
g_lua.callGlobalField("Game", "onOpenOwnPrivateChannel", id, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProtocolGame::parseClosePrivateChannel(InputMessage& msg)
|
void ProtocolGame::parseCloseChannel(InputMessage& msg)
|
||||||
{
|
{
|
||||||
msg.getU16(); // channel id
|
int id = msg.getU16(); // channel id
|
||||||
|
|
||||||
|
g_lua.callGlobalField("Game", "onCloseChannel", id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProtocolGame::parseTextMessage(InputMessage& msg)
|
void ProtocolGame::parseTextMessage(InputMessage& msg)
|
||||||
|
|
|
@ -390,10 +390,10 @@ void ProtocolGame::sendLeaveChannel(int channelId)
|
||||||
send(oMsg);
|
send(oMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProtocolGame::sendPrivateChannel(const std::string& receiver)
|
void ProtocolGame::sendOpenPrivateChannel(const std::string& receiver)
|
||||||
{
|
{
|
||||||
OutputMessage oMsg;
|
OutputMessage oMsg;
|
||||||
oMsg.addU8(Proto::ClientPrivateChannel);
|
oMsg.addU8(Proto::ClientOpenPrivateChannel);
|
||||||
oMsg.addString(receiver);
|
oMsg.addString(receiver);
|
||||||
send(oMsg);
|
send(oMsg);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue