• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Hi, I have 2 questions.

Naterion

Member
Joined
Aug 25, 2022
Messages
16
Reaction score
6
Hi, I have 2 questions.

1) I have a sql engine probably based on linux / ubuntu. And I'd like to run it on windows to do some tests. What program do you recommend to start this engine?

2) And second question, I also have a source engine for this. I will add that this is a version of the game 7.6 (base) + new stuff from newer Tibia. New outfits from the newer Tibia have been added to this game. And I would like to ask you how to turn off these new outfits to restore only the old ones. I will also add that I do not want to get rid of them completely from the game, but to make the player choose only retro outfits.

Thanks for any help.
 
Hi, I have 2 questions.

1) I have a sql engine probably based on linux / ubuntu. And I'd like to run it on windows to do some tests. What program do you recommend to start this engine?

2) And second question, I also have a source engine for this. I will add that this is a version of the game 7.6 (base) + new stuff from newer Tibia. New outfits from the newer Tibia have been added to this game. And I would like to ask you how to turn off these new outfits to restore only the old ones. I will also add that I do not want to get rid of them completely from the game, but to make the player choose only retro outfits.

Thanks for any help.
Outfits are handled in protocolgame.cpp if i remember correctly, if not protocolgame.cpp im pretty sure that older versions handles outfits in source,
I recommend UniServerZ [Been using for 6 years now thanks to Znote i knew it from him
 
Outfits are handled in protocolgame.cpp if i remember correctly, if not protocolgame.cpp im pretty sure that older versions handles outfits in source,
I recommend UniServerZ [Been using for 6 years now thanks to Znote i knew it from him
Thank you for your response. But as for the first question, I didn't mean a program to run a mysql database, but an engine file that I can't open on Windows because it's incompatible.

- When it comes to outfits, I found a few lines. But I don't know what to change?
void Protocol76::parseRequestOutfit(NetworkMessage &msg)
{
msg.Reset();

msg.AddByte(0xC8);
msg.AddByte(player->looktype);
msg.AddByte(player->lookhead);
msg.AddByte(player->lookbody);
msg.AddByte(player->looklegs);
msg.AddByte(player->lookfeet);

switch (player->getSex())
{
case PLAYERSEX_FEMALE:
msg.AddByte(PLAYER_FEMALE_1);
#ifdef YUR_PREMIUM_PROMOTION
msg.AddByte(player->premmium == true? PLAYER_FEMALE_14 : PLAYER_FEMALE_4);
#else
msg.AddByte(PLAYER_FEMALE_4);
#endif //YUR_PREMIUM_PROMOTION
break;



case PLAYERSEX_MALE:
msg.AddByte(PLAYER_MALE_1);
#ifdef YUR_PREMIUM_PROMOTION
msg.AddByte(player->premmium == true? PLAYER_MALE_12 : PLAYER_MALE_4);
#else
msg.AddByte(PLAYER_MALE_4);
#endif //YUR_PREMIUM_PROMOTION
break;


/////////////////////////
case PLAYERSEX_MALET:
msg.AddByte(PLAYER_MALE_13);
#ifdef YUR_PREMIUM_PROMOTION
msg.AddByte(player->premmium == true? PLAYER_MALE_14 : PLAYER_MALE_13);
#else
msg.AddByte(PLAYER_MALE_13);
#endif //YUR_PREMIUM_PROMOTION
break;
/////////////////////////////

/////////////////////////
case PLAYERSEX_TEST:
msg.AddByte(PLAYER_TEST_1);
#ifdef YUR_PREMIUM_PROMOTION
msg.AddByte(player->premmium == true? PLAYER_TEST_17 : PLAYER_TEST_1);
#else
msg.AddByte(PLAYER_TEST_17);
#endif //YUR_PREMIUM_PROMOTION
break;
/////////////////////////////

/////////////////////////
case PLAYERSEX_TUTOR_F:
msg.AddByte(PLAYER_FEMALE_15);
#ifdef YUR_PREMIUM_PROMOTION
msg.AddByte(player->premmium == true? PLAYER_FEMALE_15 : PLAYER_FEMALE_15);
#else
msg.AddByte(PLAYER_FEMALE_15);
#endif //YUR_PREMIUM_PROMOTION
break;
/////////////////////////////

/////////////////////////
case PLAYERSEX_MALEGM:
msg.AddByte(PLAYER_MALE_1);
#ifdef YUR_PREMIUM_PROMOTION
msg.AddByte(player->premmium == true? PLAYER_MALE_15 : PLAYER_MALE_11);
#else
msg.AddByte(PLAYER_MALE_1);
#endif //YUR_PREMIUM_PROMOTION
break;
/////////////////////////////

case PLAYERSEX_OLDMALE:
msg.AddByte(160);
msg.AddByte(160);
break;

default:
msg.AddByte(PLAYER_MALE_1);
#ifdef YUR_PREMIUM_PROMOTION
msg.AddByte(player->premmium == true? PLAYER_MALE_12 : PLAYER_MALE_4);
#else
msg.AddByte(PLAYER_MALE_4);
#endif //YUR_PREMIUM_PROMOTION
}

WriteBuffer(msg);
}

void Protocol76::sendSetOutfit(const Creature* creature)
{
if (CanSee(creature))
{
NetworkMessage newmsg;
newmsg.AddByte(0x8E);
newmsg.AddU32(creature->getID());
if (creature->looktype > 1000)
{
newmsg.AddByte(0);
newmsg.AddU16(Item::items[creature->looktype].clientId);
}
else
{
if (creature->isInvisible())
{
newmsg.AddByte(0);
newmsg.AddU16(0);
}
else
{
newmsg.AddByte(creature->looktype);
newmsg.AddByte(creature->lookhead);
newmsg.AddByte(creature->lookbody);
newmsg.AddByte(creature->looklegs);
newmsg.AddByte(creature->lookfeet);
}
}

WriteBuffer(newmsg);
}
}
And this
void Protocol76::parseSetOutfit(NetworkMessage &msg)
{
int32_t temp = msg.GetByte();


if ((player->getSex() == PLAYERSEX_FEMALE && temp >= PLAYER_FEMALE_1 &&
#ifdef YUR_PREMIUM_PROMOTION
temp <= (player->premmium == true? PLAYER_FEMALE_14 : PLAYER_FEMALE_4)) ||
#else
temp <= PLAYER_FEMALE_14) ||
#endif //YUR_PREMIUM_PROMOTION


(player->getSex() == PLAYERSEX_MALE && temp >= PLAYER_MALE_1 &&
#ifdef YUR_PREMIUM_PROMOTION
temp <= (player->premmium == true? PLAYER_MALE_12 : PLAYER_MALE_4)) ||
#else
temp <= PLAYER_MALE_12) ||
#endif //YUR_PREMIUM_PROMOTION


(player->getSex() == PLAYERSEX_MALEGM && temp >= PLAYER_MALE_1 &&
#ifdef YUR_PREMIUM_PROMOTION
temp <= (player->premmium == true? PLAYER_MALE_15 : PLAYER_MALE_4)) ||
#else
temp <= PLAYER_MALE_15) ||
#endif //YUR_PREMIUM_PROMOTION



(player->getSex() == PLAYERSEX_TUTOR_F && temp >= PLAYER_FEMALE_15 &&
#ifdef YUR_PREMIUM_PROMOTION
temp <= (player->premmium == true? PLAYER_FEMALE_15 : PLAYER_FEMALE_15)) ||
#else
temp <= PLAYER_FEMALE_15) ||
#endif //YUR_PREMIUM_PROMOTION


(player->getSex() == PLAYERSEX_TEST && temp >= PLAYER_TEST_1 &&
#ifdef YUR_PREMIUM_PROMOTION
temp <= (player->premmium == true? PLAYER_TEST_17 : PLAYER_TEST_1)) ||
#else
temp <= PLAYER_TEST_1) ||
#endif //YUR_PREMIUM_PROMOTION

(player->getSex() == PLAYERSEX_MALET && temp >= PLAYER_MALE_13 &&
#ifdef YUR_PREMIUM_PROMOTION
temp <= (player->premmium == true? PLAYER_MALE_14 : PLAYER_MALE_13)))
#else
temp <= PLAYER_MALE_13))
#endif //YUR_PREMIUM_PROMOTION
{


player->looktype= temp;
player->lookmaster = player->looktype;
player->lookhead=msg.GetByte();
player->lookbody=msg.GetByte();
player->looklegs=msg.GetByte();
player->lookfeet=msg.GetByte();

game->creatureChangeOutfit(player);
}
}
 
Last edited:
Back
Top