Protocol 10.93
This commit is contained in:
parent
0dfdb22509
commit
1c09c3770b
|
@ -74,7 +74,8 @@ function g_game.getSupportedClients()
|
||||||
1058, 1059, 1060, 1061, 1062,
|
1058, 1059, 1060, 1061, 1062,
|
||||||
1063, 1064, 1070, 1071, 1072,
|
1063, 1064, 1070, 1071, 1072,
|
||||||
1073, 1074, 1075, 1076, 1080,
|
1073, 1074, 1075, 1076, 1080,
|
||||||
1081, 1082, 1090, 1091
|
1081, 1082, 1090, 1091, 1092,
|
||||||
|
1093
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -406,6 +406,8 @@ namespace Otc
|
||||||
GameIdleAnimations = 71,
|
GameIdleAnimations = 71,
|
||||||
GameKeepUnawareTiles = 72,
|
GameKeepUnawareTiles = 72,
|
||||||
GameIngameStore = 73,
|
GameIngameStore = 73,
|
||||||
|
GameIngameStoreHighlights = 74,
|
||||||
|
GameIngameStoreServiceType = 75,
|
||||||
|
|
||||||
LastGameFeature = 101
|
LastGameFeature = 101
|
||||||
};
|
};
|
||||||
|
|
|
@ -1409,18 +1409,18 @@ void Game::requestTransactionHistory(int page, int entriesPerPage)
|
||||||
m_protocolGame->sendRequestTransactionHistory(page, entriesPerPage);
|
m_protocolGame->sendRequestTransactionHistory(page, entriesPerPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Game::requestStoreOffers(const std::string& categoryName)
|
void Game::requestStoreOffers(const std::string& categoryName, int serviceType)
|
||||||
{
|
{
|
||||||
if(!canPerformGameAction())
|
if(!canPerformGameAction())
|
||||||
return;
|
return;
|
||||||
m_protocolGame->sendRequestStoreOffers(categoryName);
|
m_protocolGame->sendRequestStoreOffers(categoryName, serviceType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Game::openStore()
|
void Game::openStore(int serviceType, const std::string& category)
|
||||||
{
|
{
|
||||||
if(!canPerformGameAction())
|
if(!canPerformGameAction())
|
||||||
return;
|
return;
|
||||||
m_protocolGame->sendOpenStore();
|
m_protocolGame->sendOpenStore(serviceType, category);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Game::transferCoins(const std::string& recipient, int amount)
|
void Game::transferCoins(const std::string& recipient, int amount)
|
||||||
|
@ -1492,7 +1492,7 @@ void Game::setProtocolVersion(int version)
|
||||||
if(isOnline())
|
if(isOnline())
|
||||||
stdext::throw_exception("Unable to change protocol version while online");
|
stdext::throw_exception("Unable to change protocol version while online");
|
||||||
|
|
||||||
if(version != 0 && (version < 740 || version > 1091))
|
if(version != 0 && (version < 740 || version > 1093))
|
||||||
stdext::throw_exception(stdext::format("Protocol version %d not supported", version));
|
stdext::throw_exception(stdext::format("Protocol version %d not supported", version));
|
||||||
|
|
||||||
m_protocolVersion = version;
|
m_protocolVersion = version;
|
||||||
|
@ -1510,7 +1510,7 @@ void Game::setClientVersion(int version)
|
||||||
if(isOnline())
|
if(isOnline())
|
||||||
stdext::throw_exception("Unable to change client version while online");
|
stdext::throw_exception("Unable to change client version while online");
|
||||||
|
|
||||||
if(version != 0 && (version < 740 || version > 1091))
|
if(version != 0 && (version < 740 || version > 1093))
|
||||||
stdext::throw_exception(stdext::format("Client version %d not supported", version));
|
stdext::throw_exception(stdext::format("Client version %d not supported", version));
|
||||||
|
|
||||||
m_features.reset();
|
m_features.reset();
|
||||||
|
@ -1666,6 +1666,15 @@ void Game::setClientVersion(int version)
|
||||||
enableFeature(Otc::GameIngameStore);
|
enableFeature(Otc::GameIngameStore);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(version >= 1092) {
|
||||||
|
enableFeature(Otc::GameIngameStoreServiceType);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(version >= 1093) {
|
||||||
|
enableFeature(Otc::GameIngameStoreHighlights);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
m_clientVersion = version;
|
m_clientVersion = version;
|
||||||
|
|
||||||
g_lua.callGlobalField("g_game", "onClientVersionChange", version);
|
g_lua.callGlobalField("g_game", "onClientVersionChange", version);
|
||||||
|
|
|
@ -291,8 +291,8 @@ public:
|
||||||
// >= 1080 ingame store
|
// >= 1080 ingame store
|
||||||
void buyStoreOffer(int offerId, int productType, const std::string& name = "");
|
void buyStoreOffer(int offerId, int productType, const std::string& name = "");
|
||||||
void requestTransactionHistory(int page, int entriesPerPage);
|
void requestTransactionHistory(int page, int entriesPerPage);
|
||||||
void requestStoreOffers(const std::string& categoryName);
|
void requestStoreOffers(const std::string& categoryName, int serviceType = 0);
|
||||||
void openStore();
|
void openStore(int serviceType = 0, const std::string& category = "");
|
||||||
void transferCoins(const std::string& recipient, int amount);
|
void transferCoins(const std::string& recipient, int amount);
|
||||||
void openTransactionHistory(int entriesPerPage);
|
void openTransactionHistory(int entriesPerPage);
|
||||||
|
|
||||||
|
|
|
@ -115,8 +115,8 @@ public:
|
||||||
void sendSeekInContainer(int cid, int index);
|
void sendSeekInContainer(int cid, int index);
|
||||||
void sendBuyStoreOffer(int offerId, int productType, const std::string& name);
|
void sendBuyStoreOffer(int offerId, int productType, const std::string& name);
|
||||||
void sendRequestTransactionHistory(int page, int entriesPerPage);
|
void sendRequestTransactionHistory(int page, int entriesPerPage);
|
||||||
void sendRequestStoreOffers(const std::string& categoryName);
|
void sendRequestStoreOffers(const std::string& categoryName, int serviceType);
|
||||||
void sendOpenStore();
|
void sendOpenStore(int serviceType, const std::string &category);
|
||||||
void sendTransferCoins(const std::string& recipient, int amount);
|
void sendTransferCoins(const std::string& recipient, int amount);
|
||||||
void sendOpenTransactionHistory(int entiresPerPage);
|
void sendOpenTransactionHistory(int entiresPerPage);
|
||||||
|
|
||||||
|
|
|
@ -481,6 +481,10 @@ void ProtocolGame::parseStore(const InputMessagePtr& msg)
|
||||||
std::string category = msg->getString();
|
std::string category = msg->getString();
|
||||||
std::string description = msg->getString();
|
std::string description = msg->getString();
|
||||||
|
|
||||||
|
int highlightState = 0;
|
||||||
|
if(g_game.getFeature(Otc::GameIngameStoreHighlights))
|
||||||
|
highlightState = msg->getU8();
|
||||||
|
|
||||||
std::vector<std::string> icons;
|
std::vector<std::string> icons;
|
||||||
int iconCount = msg->getU8();
|
int iconCount = msg->getU8();
|
||||||
for(int i = 0; i < iconCount; i++) {
|
for(int i = 0; i < iconCount; i++) {
|
||||||
|
@ -554,8 +558,12 @@ void ProtocolGame::parseStoreOffers(const InputMessagePtr& msg)
|
||||||
std::string offerDescription = msg->getString();
|
std::string offerDescription = msg->getString();
|
||||||
|
|
||||||
int price = msg->getU32();
|
int price = msg->getU32();
|
||||||
int state = msg->getU8();
|
int highlightState = msg->getU8();
|
||||||
int disabled = msg->getU8() == 1;
|
int disabledState = msg->getU8();
|
||||||
|
std::string disabledReason = "";
|
||||||
|
if(g_game.getFeature(Otc::GameIngameStoreHighlights) && disabledState == 1) {
|
||||||
|
disabledReason = msg->getString();
|
||||||
|
}
|
||||||
|
|
||||||
int icons = msg->getU8();
|
int icons = msg->getU8();
|
||||||
for(int j = 0; j < icons; j++) {
|
for(int j = 0; j < icons; j++) {
|
||||||
|
|
|
@ -886,20 +886,29 @@ void ProtocolGame::sendRequestTransactionHistory(int page, int entriesPerPage)
|
||||||
send(msg);
|
send(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProtocolGame::sendRequestStoreOffers(const std::string& categoryName)
|
void ProtocolGame::sendRequestStoreOffers(const std::string& categoryName, int serviceType)
|
||||||
{
|
{
|
||||||
OutputMessagePtr msg(new OutputMessage);
|
OutputMessagePtr msg(new OutputMessage);
|
||||||
msg->addU8(Proto::ClientRequestStoreOffers);
|
msg->addU8(Proto::ClientRequestStoreOffers);
|
||||||
|
|
||||||
|
if(g_game.getFeature(Otc::GameIngameStoreServiceType)) {
|
||||||
|
msg->addU8(serviceType);
|
||||||
|
}
|
||||||
msg->addString(categoryName);
|
msg->addString(categoryName);
|
||||||
|
|
||||||
send(msg);
|
send(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProtocolGame::sendOpenStore()
|
void ProtocolGame::sendOpenStore(int serviceType, const std::string& category)
|
||||||
{
|
{
|
||||||
OutputMessagePtr msg(new OutputMessage);
|
OutputMessagePtr msg(new OutputMessage);
|
||||||
msg->addU8(Proto::ClientOpenStore);
|
msg->addU8(Proto::ClientOpenStore);
|
||||||
|
|
||||||
|
if(g_game.getFeature(Otc::GameIngameStoreServiceType)) {
|
||||||
|
msg->addU8(serviceType);
|
||||||
|
msg->addString(category);
|
||||||
|
}
|
||||||
|
|
||||||
send(msg);
|
send(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue