Added missing premium trigger opcode.
This commit is contained in:
parent
ef7f94ac76
commit
d3d3294277
|
@ -107,6 +107,7 @@ namespace Proto {
|
||||||
GameServerCreatureType = 149,
|
GameServerCreatureType = 149,
|
||||||
GameServerEditText = 150,
|
GameServerEditText = 150,
|
||||||
GameServerEditList = 151,
|
GameServerEditList = 151,
|
||||||
|
GameServerPremiumTrigger = 158, // 1038
|
||||||
GameServerPlayerDataBasic = 159, // 950
|
GameServerPlayerDataBasic = 159, // 950
|
||||||
GameServerPlayerData = 160,
|
GameServerPlayerData = 160,
|
||||||
GameServerPlayerSkills = 161,
|
GameServerPlayerSkills = 161,
|
||||||
|
|
|
@ -178,6 +178,7 @@ private:
|
||||||
void parseCreatureUnpass(const InputMessagePtr& msg);
|
void parseCreatureUnpass(const InputMessagePtr& msg);
|
||||||
void parseEditText(const InputMessagePtr& msg);
|
void parseEditText(const InputMessagePtr& msg);
|
||||||
void parseEditList(const InputMessagePtr& msg);
|
void parseEditList(const InputMessagePtr& msg);
|
||||||
|
void parsePremiumTrigger(const InputMessagePtr& msg);
|
||||||
void parsePlayerInfo(const InputMessagePtr& msg);
|
void parsePlayerInfo(const InputMessagePtr& msg);
|
||||||
void parsePlayerStats(const InputMessagePtr& msg);
|
void parsePlayerStats(const InputMessagePtr& msg);
|
||||||
void parsePlayerSkills(const InputMessagePtr& msg);
|
void parsePlayerSkills(const InputMessagePtr& msg);
|
||||||
|
|
|
@ -207,6 +207,10 @@ void ProtocolGame::parseMessage(const InputMessagePtr& msg)
|
||||||
case Proto::GameServerEditList:
|
case Proto::GameServerEditList:
|
||||||
parseEditList(msg);
|
parseEditList(msg);
|
||||||
break;
|
break;
|
||||||
|
// PROTOCOL>=1038
|
||||||
|
case Proto::GameServerPremiumTrigger:
|
||||||
|
parsePremiumTrigger(msg);
|
||||||
|
break;
|
||||||
case Proto::GameServerPlayerData:
|
case Proto::GameServerPlayerData:
|
||||||
parsePlayerStats(msg);
|
parsePlayerStats(msg);
|
||||||
break;
|
break;
|
||||||
|
@ -1019,6 +1023,16 @@ void ProtocolGame::parseEditList(const InputMessagePtr& msg)
|
||||||
g_game.processEditList(id, doorId, text);
|
g_game.processEditList(id, doorId, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ProtocolGame::parsePremiumTrigger(const InputMessagePtr& msg)
|
||||||
|
{
|
||||||
|
int triggerCount = msg->getU8();
|
||||||
|
std::vector<int> triggers;
|
||||||
|
for(int i=0;i<triggerCount;++i) {
|
||||||
|
triggers.push_back(msg->getU8());
|
||||||
|
}
|
||||||
|
bool something = msg->getU8() == 1;
|
||||||
|
}
|
||||||
|
|
||||||
void ProtocolGame::parsePlayerInfo(const InputMessagePtr& msg)
|
void ProtocolGame::parsePlayerInfo(const InputMessagePtr& msg)
|
||||||
{
|
{
|
||||||
bool premium = msg->getU8(); // premium
|
bool premium = msg->getU8(); // premium
|
||||||
|
@ -2036,11 +2050,11 @@ ItemPtr ProtocolGame::getItem(const InputMessagePtr& msg, int id)
|
||||||
|
|
||||||
if(g_game.getFeature(Otc::GameItemAnimationPhase)) {
|
if(g_game.getFeature(Otc::GameItemAnimationPhase)) {
|
||||||
if(item->getAnimationPhases() > 1) {
|
if(item->getAnimationPhases() > 1) {
|
||||||
// 0xfe => random phase
|
// 0x00 => automatic phase
|
||||||
// 0xff => async?
|
// 0xFE => random phase
|
||||||
|
// 0xFF => async phase
|
||||||
msg->getU8();
|
msg->getU8();
|
||||||
// Remove async since OTB file in server is configured so every item with animationPhase > 1 is a random phase item.
|
//item->setPhase(msg->getU8());
|
||||||
//item->setAsync(msg->getU8() == 0xff);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue