How can I make an if function so that it can only be seen in OTC(if I don't have player or creature as argument)?
networkmessage.cpp
in this example void NetworkMessage::addItem(const Item* item)
I don't have the creature or player argument
my goal is that
only apply in OTC
------------------------------------------------------------- Me fails------------------------------------------
Fail Number 1 : Creature is undefined
Fail Number 2 : does not print anything
Fail Number 3 : does not print anything
Fail Number 4
networkmessage.cpp
in this example void NetworkMessage::addItem(const Item* item)
I don't have the creature or player argument
my goal is that
C++:
void NetworkMessage::addItem(const Item* item)
{
const ItemType& it = Item::items[item->getID()];
//if Cliente otc {
addString(item->getShader()); // ONLY can applicable to OTC. why? Oldclient crash
//}
only apply in OTC
C++:
addString(item->getShader());
------------------------------------------------------------- Me fails------------------------------------------
Fail Number 1 : Creature is undefined
C++:
void NetworkMessage::addItem(const Item* item)
{
const ItemType& it = Item::items[item->getID()];
const Player* player = creature->getPlayer();
if (player->getOperatingSystem() >= CLIENTOS_OTCLIENT_LINUX) {
addString(item->getShader());
}
Fail Number 2 : does not print anything
C++:
void NetworkMessage::addItem(const Item* item)
{
const ItemType& it = Item::items[item->getID()];
SpectatorVec spectators;
g_game.map.getSpectators(spectators, getPosition(), false, true, 1, 1, 1, 1);
for (Creature* spectator : spectators) {
std::cout << "Client is: " << spectator->getPlayer()->getOperatingSystem() << std::endl;
if (spectator->getPlayer()->getOperatingSystem() >= CLIENTOS_OTCLIENT_LINUX) {
addString(item->getShader());
}
}
C++:
void NetworkMessage::addItem(const Item* item)
{
const ItemType& it = Item::items[item->getID()];
OperatingSystem_t operatingSystem = static_cast<OperatingSystem_t>(get<uint16_t>());
std::cout << "Client is: " <<operatingSystem << std::endl;
if (operatingSystem >= CLIENTOS_OTCLIENT_LINUX) {
addString(item->getShader());
}
C++:
#include "player.h"
void NetworkMessage::addItem(const Item* item)
{
const ItemType& it = Item::items[item->getID()];
if (getOperatingSystem >= CLIENTOS_OTCLIENT_LINUX) {
addString(item->getShader());
}
Last edited: