• 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!

Increase effect limit

Stanos

Veteran OT User
Joined
Jun 12, 2018
Messages
587
Solutions
4
Reaction score
315
Location
Europe
Hello,
cant find full tutorial in otland how to increase effect limit as far as i know i need to increase unit8 to unit16 or unit32
Code:
enum MagicEffectClasses : uint16_t {
    CONST_ME_NONE,
At this point i dont know anything else what should i do next. Using simple extended tibia client 8.60 and tfs 1.2
 
 
msg->AddByte(type + 1);
is in client?
 
Which client version do you use?
Using 8.60
Try change magic effects first, check if it works and then change distance shoot.
Show server side. server change this
Should be changed:
C++:
msg->AddByte(type + 1);
to: to this
C++:
msg->AddWord(type + 1);
and ofc type of type variable everywhere.

Like Quote Reply
Report
I dont need to edit distance shoot since i need to increase only effects atm. msg->AddByte(type + 1); you said c++ but in which file? And what do you mean by "and ofc type of type variable everywhere. "
 
Server side;
Protocolgame.cpp
Code:
void ProtocolGame::sendMagicEffect(const Position& pos, uint8_t type)
To
Code:
void ProtocolGame::sendMagicEffect(const Position& pos, uint16_t type)

+ (too in "ProtocolGame::sendMagicEffect(const..."

Code:
msg.addByte(type);
To
Code:
msg.add<uint16_t>(type);

Client side (hex editor);
A7 95 0E 00 0F B6 C0
To
47 97 0E 00 0F B7 C0
 
Server side;
Protocolgame.cpp
Code:
void ProtocolGame::sendMagicEffect(const Position& pos, uint8_t type)
To
Code:
void ProtocolGame::sendMagicEffect(const Position& pos, uint16_t type)

+ (too in "ProtocolGame::sendMagicEffect(const..."

Code:
msg.addByte(type);
To
Code:
msg.add<uint16_t>(type);

Client side (hex editor);
A7 95 0E 00 0F B6 C0
To
47 97 0E 00 0F B7 C0
34472
Cant find A7 95 0E 00 0F B6 C0

And
Code:
1>..\src\protocolgame.cpp(1578): error C2511: 'void ProtocolGame::sendMagicEffect(const Position &,uint16_t)': overloaded member function not found in 'ProtocolGame'
1>c:\server\src\player.h(41): note: see declaration of 'ProtocolGame'
1>..\src\protocolgame.cpp(1579): error C2352: 'ProtocolGame::canSee': illegal call of non-static member function
1>..\src\protocolgame.cpp(632): note: see declaration of 'ProtocolGame::canSee'
1>..\src\protocolgame.cpp(1587): error C2352: 'ProtocolGame::writeToOutputBuffer': illegal call of non-static member function
1>..\src\protocolgame.cpp(370): note: see declaration of 'ProtocolGame::writeToOutputBuffer'
 
Last edited:
otland_limit.png

Change the "type" to hex-string ^^

+

game.cpp
Code:
void Game::addMagicEffect(const Position& pos, uint8_t effect)
to
Code:
void Game::addMagicEffect(const Position& pos, uint16_t effect)

and

Code:
void Game::addMagicEffect(const SpectatorHashSet& spectators, const Position& pos, uint8_t effect)
to
Code:
void Game::addMagicEffect(const SpectatorHashSet& spectators, const Position& pos, uint16_t effect)


game.h
Code:
void addMagicEffect(const Position& pos, uint8_t effect);
to
Code:
void addMagicEffect(const Position& pos, uint16_t effect);

and

Code:
static void addMagicEffect(const SpectatorHashSet& spectators, const Position& pos, uint8_t effect);
to
Code:
static void addMagicEffect(const SpectatorHashSet& spectators, const Position& pos, uint16_t effect);


player.h
Code:
void sendMagicEffect(const Position& pos, uint8_t type)
to
Code:
void sendMagicEffect(const Position& pos, uint16_t type)


protocolgame.cpp
Code:
void ProtocolGame::sendMagicEffect(const Position& pos, uint8_t type)
{
    if (!canSee(pos)) {
        return;
    }

    NetworkMessage msg;
    msg.addByte(0x83);
    msg.addPosition(pos);
    msg.addByte(type);
    writeToOutputBuffer(msg);
}
to
Code:
void ProtocolGame::sendMagicEffect(const Position& pos, uint16_t type)
{
    if (!canSee(pos)) {
        return;
    }

    NetworkMessage msg;
    msg.addByte(0x83);
    msg.addPosition(pos);
    msg.add<uint16_t>(type);
    writeToOutputBuffer(msg);
}


protocolgame.h
Code:
void sendMagicEffect(const Position& pos, uint8_t type);
to
Code:
void sendMagicEffect(const Position& pos, uint16_t type);

and recompile.
 

Attachments

otland_limit.png

Change the "type" to hex-string ^^

+

game.cpp
Code:
void Game::addMagicEffect(const Position& pos, uint8_t effect)
to
Code:
void Game::addMagicEffect(const Position& pos, uint16_t effect)

and

Code:
void Game::addMagicEffect(const SpectatorHashSet& spectators, const Position& pos, uint8_t effect)
to
Code:
void Game::addMagicEffect(const SpectatorHashSet& spectators, const Position& pos, uint16_t effect)


game.h
Code:
void addMagicEffect(const Position& pos, uint8_t effect);
to
Code:
void addMagicEffect(const Position& pos, uint16_t effect);

and

Code:
static void addMagicEffect(const SpectatorHashSet& spectators, const Position& pos, uint8_t effect);
to
Code:
static void addMagicEffect(const SpectatorHashSet& spectators, const Position& pos, uint16_t effect);


player.h
Code:
void sendMagicEffect(const Position& pos, uint8_t type)
to
Code:
void sendMagicEffect(const Position& pos, uint16_t type)


protocolgame.cpp
Code:
void ProtocolGame::sendMagicEffect(const Position& pos, uint8_t type)
{
    if (!canSee(pos)) {
        return;
    }

    NetworkMessage msg;
    msg.addByte(0x83);
    msg.addPosition(pos);
    msg.addByte(type);
    writeToOutputBuffer(msg);
}
to
Code:
void ProtocolGame::sendMagicEffect(const Position& pos, uint16_t type)
{
    if (!canSee(pos)) {
        return;
    }

    NetworkMessage msg;
    msg.addByte(0x83);
    msg.addPosition(pos);
    msg.add<uint16_t>(type);
    writeToOutputBuffer(msg);
}


protocolgame.h
Code:
void sendMagicEffect(const Position& pos, uint8_t type);
to
Code:
void sendMagicEffect(const Position& pos, uint16_t type);

and recompile.
Top tier comment goes straight to the point. Appreciate buddy everything works (y)
 
Back
Top