edubart / otclient

An alternative tibia client for otserv written in C++11 and Lua, made with a modular system that uses lua scripts for ingame interface and functionality, making otclient flexible and easy to customize
Other
640 stars 402 forks source link

Distance Effect U16 #1175

Closed LuanGP closed 2 years ago

LuanGP commented 2 years ago

const.h GameAdditionalSkills = 76, ++GameDistanceEffectU16 = 77,

protocolgameparse.cpp void ProtocolGame::parseDistanceMissile(const InputMessagePtr& msg) Sub >>

void ProtocolGame::parseDistanceMissile(const InputMessagePtr& msg)
{
    Position fromPos = getPosition(msg);
    Position toPos = getPosition(msg);
    int shotId;
    if (g_game.getFeature(Otc::GameDistanceEffectU16))
        shotId = msg->getU16();
    else
        shotId = msg->getU8();

    if (!g_things.isValidDatId(shotId, ThingCategoryMissile)) {
        g_logger.traceError(stdext::format("invalid missile id %d", shotId));
        return;
    }

    MissilePtr missile = MissilePtr(new Missile());
    missile->setId(shotId);
    missile->setPath(fromPos, toPos);
    g_map.addThing(missile, fromPos);
}

modules\gamelib\const.lua GameAdditionalSkills = 76 ++GameDistanceEffectU16 = 77

Activating: modules/game_things/things.lua g_game.enableFeature(GameDistanceEffectU16)