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

C++ Problem making new spells

riesjuh666

Member
Joined
Sep 26, 2010
Messages
43
Reaction score
6
Hello Otland,

I have a problem with creating a spell,

i am working on a 7.4 server with costum spells and monster.

i added some spells from 8.6 into my 7.4 server

when i try to use Ice Strike (exori frigo) i see the sprite but i dont see damage.
the monsters due take damage.

i already changed some things in const.h and enums.h but nothing works

\/
ENUMS.H
C++:
////////////////////////////////////////////////////////////////////////
// OpenTibia - an opensource roleplaying game
////////////////////////////////////////////////////////////////////////
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
////////////////////////////////////////////////////////////////////////

#ifndef __ENUMS__
#define __ENUMS__

#include <string>
#include <list>

#define PLAYER_ID_RANGE 0x10000000
#define MONSTER_ID_RANGE 0x40000000
#define NPC_ID_RANGE 0x80000000

enum Vocation_t
{
    VOCATION_NONE = 0,
    VOCATION_SORCERER = 1,
    VOCATION_DRUID = 2,
    VOCATION_PALADIN = 3,
    VOCATION_KNIGHT = 4,
    VOCATION_MASTERSORCERER = 5,
    VOCATION_ELDERDRUID = 6,
    VOCATION_ROYALPALADIN = 7,
    VOCATION_ELITEKNIGHT = 8
};

enum multiplier_t
{
    MULTIPLIER_FIRST = 0,
    MULTIPLIER_MELEE = MULTIPLIER_FIRST,
    MULTIPLIER_DISTANCE = 1,
    MULTIPLIER_DEFENSE = 2,
    MULTIPLIER_MAGICDEFENSE = 3,
    MULTIPLIER_ARMOR = 4,
    MULTIPLIER_MAGIC = 5,
    MULTIPLIER_HEALING = 6,
    MULTIPLIER_WAND = 7,
    MULTIPLIER_MANA = 8,
    MULTIPLIER_LAST = MULTIPLIER_MANA
};

enum gain_t
{
    GAIN_FIRST = 0,
    GAIN_HEALTH = GAIN_FIRST,
    GAIN_MANA = 1,
    #ifdef _MULTIPLATFORM76
    GAIN_SOUL = 2,
    GAIN_LAST = GAIN_SOUL
    #else
    GAIN_LAST = GAIN_MANA
    #endif
};

enum CreatureType_t
{
    CREATURETYPE_PLAYER = 0,
    CREATURETYPE_MONSTER = 1,
    CREATURETYPE_NPC = 2
};

enum DatabaseEngine_t
{
    DATABASE_ENGINE_NONE = 0,
    DATABASE_ENGINE_MYSQL,
    DATABASE_ENGINE_SQLITE,
    DATABASE_ENGINE_POSTGRESQL
};

enum Encryption_t
{
    ENCRYPTION_PLAIN = 0,
    ENCRYPTION_MD5,
    ENCRYPTION_SHA1,
    ENCRYPTION_SHA256,
    ENCRYPTION_SHA512
};

enum GuildLevel_t
{
    GUILDLEVEL_NONE = 0,
    GUILDLEVEL_MEMBER,
    GUILDLEVEL_VICE,
    GUILDLEVEL_LEADER
};

enum Channels_t
{
    CHANNEL_GUILD = 0x00,
    CHANNEL_PARTY = 0x01,
    CHANNEL_RVR = 0x03,
    CHANNEL_HELP = 0x07,
    CHANNEL_DEFAULT = 0xFFFE, //internal usage only, there is no such channel
    CHANNEL_PRIVATE = 0xFFFF
};

enum ViolationAction_t
{
    ACTION_NOTATION = 0,
    ACTION_NAMEREPORT,
    ACTION_BANISHMENT,
    ACTION_BANREPORT,
    ACTION_BANFINAL,
    ACTION_BANREPORTFINAL,
    ACTION_STATEMENT,
    //internal use
    ACTION_DELETION,
    ACTION_NAMELOCK,
    ACTION_BANLOCK,
    ACTION_BANLOCKFINAL,
    ACTION_PLACEHOLDER
};

enum RaceType_t
{
    RACE_NONE = 0,
    RACE_VENOM,
    RACE_BLOOD,
    RACE_UNDEAD,
    RACE_FIRE,
    RACE_ENERGY
};

enum CombatType_t
{
    COMBAT_NONE                = 0x00,
    COMBAT_ALL                = COMBAT_NONE, /* for internal use only.*/

    COMBAT_PHYSICALDAMAGE    = 1 << 0,
    COMBAT_ENERGYDAMAGE        = 1 << 1,
    COMBAT_EARTHDAMAGE        = 1 << 2,
    COMBAT_FIREDAMAGE        = 1 << 3,
    COMBAT_UNDEFINEDDAMAGE    = 1 << 4,
    COMBAT_LIFEDRAIN        = 1 << 5,
    COMBAT_MANADRAIN        = 1 << 6,
    COMBAT_HEALING            = 1 << 7,
    COMBAT_DROWNDAMAGE        = 1 << 8,
    COMBAT_ICEDAMAGE        = 1 << 9,
    COMBAT_HOLYDAMAGE        = 1 << 10,
    COMBAT_DEATHDAMAGE        = 1 << 11,

    COMBAT_FIRST            = COMBAT_NONE,
    COMBAT_LAST                = COMBAT_DEATHDAMAGE
};

enum CombatParam_t
{
    COMBATPARAM_NONE = 0,
    COMBATPARAM_COMBATTYPE,
    COMBATPARAM_EFFECT,
    COMBATPARAM_DISTANCEEFFECT,
    COMBATPARAM_BLOCKEDBYSHIELD,
    COMBATPARAM_BLOCKEDBYARMOR,
    COMBATPARAM_TARGETCASTERORTOPMOST,
    COMBATPARAM_CREATEITEM,
    COMBATPARAM_AGGRESSIVE,
    COMBATPARAM_DISPEL,
    COMBATPARAM_USECHARGES,
    COMBATPARAM_TARGETPLAYERSORSUMMONS,
    COMBATPARAM_DIFFERENTAREADAMAGE,
    COMBATPARAM_HITEFFECT,
    COMBATPARAM_HITCOLOR,
    COMBATPARAM_ELEMENTTYPE,
    COMBATPARAM_ELEMENTDAMAGE
};

enum CallBackParam_t
{
    CALLBACKPARAM_NONE = 0,
    CALLBACKPARAM_LEVELMAGICVALUE,
    CALLBACKPARAM_SKILLVALUE,
    CALLBACKPARAM_TARGETTILECALLBACK,
    CALLBACKPARAM_TARGETCREATURECALLBACK
};

enum ConditionParam_t
{
    CONDITIONPARAM_OWNER = 1,
    CONDITIONPARAM_TICKS,
    CONDITIONPARAM_OUTFIT,
    CONDITIONPARAM_HEALTHGAIN,
    CONDITIONPARAM_HEALTHTICKS,
    CONDITIONPARAM_MANAGAIN,
    CONDITIONPARAM_MANATICKS,
    CONDITIONPARAM_DELAYED,
    CONDITIONPARAM_SPEED,
    CONDITIONPARAM_LIGHT_LEVEL,
    CONDITIONPARAM_LIGHT_COLOR,
    #ifdef _MULTIPLATFORM76
    CONDITIONPARAM_SOULGAIN,
    CONDITIONPARAM_SOULTICKS,
    #endif
    CONDITIONPARAM_MINVALUE,
    CONDITIONPARAM_MAXVALUE,
    CONDITIONPARAM_STARTVALUE,
    CONDITIONPARAM_TICKINTERVAL,
    CONDITIONPARAM_FORCEUPDATE,
    CONDITIONPARAM_SKILL_MELEE,
    CONDITIONPARAM_SKILL_FIST,
    CONDITIONPARAM_SKILL_CLUB,
    CONDITIONPARAM_SKILL_SWORD,
    CONDITIONPARAM_SKILL_AXE,
    CONDITIONPARAM_SKILL_DISTANCE,
    CONDITIONPARAM_SKILL_SHIELD,
    CONDITIONPARAM_SKILL_FISHING,
    CONDITIONPARAM_STAT_MAXHEALTH,
    CONDITIONPARAM_STAT_MAXMANA,
    #ifdef _MULTIPLATFORM76
    CONDITIONPARAM_STAT_SOUL,
    #endif
    CONDITIONPARAM_STAT_MAGICLEVEL,
    CONDITIONPARAM_STAT_MAXHEALTHPERCENT,
    CONDITIONPARAM_STAT_MAXMANAPERCENT,
    #ifdef _MULTIPLATFORM76
    CONDITIONPARAM_STAT_SOULPERCENT,
    #endif
    CONDITIONPARAM_STAT_MAGICLEVELPERCENT,
    CONDITIONPARAM_SKILL_MELEEPERCENT,
    CONDITIONPARAM_SKILL_FISTPERCENT,
    CONDITIONPARAM_SKILL_CLUBPERCENT,
    CONDITIONPARAM_SKILL_SWORDPERCENT,
    CONDITIONPARAM_SKILL_AXEPERCENT,
    CONDITIONPARAM_SKILL_DISTANCEPERCENT,
    CONDITIONPARAM_SKILL_SHIELDPERCENT,
    CONDITIONPARAM_SKILL_FISHINGPERCENT,
    CONDITIONPARAM_PERIODICDAMAGE,
    CONDITIONPARAM_BUFF,
    CONDITIONPARAM_SUBID,
    CONDITIONPARAM_FIELD,
    CONDITIONPARAM_COMBAT_PHYSICALDAMAGE,
    CONDITIONPARAM_COMBAT_ENERGYDAMAGE,
    CONDITIONPARAM_COMBAT_EARTHDAMAGE,
    CONDITIONPARAM_COMBAT_FIREDAMAGE,
    CONDITIONPARAM_COMBAT_UNDEFINEDDAMAGE,
    CONDITIONPARAM_COMBAT_LIFEDRAIN,
    CONDITIONPARAM_COMBAT_MANADRAIN,
    CONDITIONPARAM_COMBAT_HEALING,
    CONDITIONPARAM_COMBAT_DROWNDAMAGE,
    CONDITIONPARAM_COMBAT_ICEDAMAGE,
    CONDITIONPARAM_COMBAT_HOLYDAMAGE,
    CONDITIONPARAM_COMBAT_DEATHDAMAGE
};

enum Exhaust_t
{
    EXHAUST_SPELLGROUP_NONE = 1,
    EXHAUST_SPELLGROUP_ATTACK = 2,
    EXHAUST_SPELLGROUP_HEALING = 3,
    EXHAUST_SPELLGROUP_SUPPORT = 4,
    EXHAUST_SPELLGROUP_SPECIAL = 5,
    EXHAUST_MELEE = 6
};

enum BlockType_t
{
    BLOCK_NONE = 0,
    BLOCK_DEFENSE,
    BLOCK_ARMOR,
    BLOCK_IMMUNITY
};

enum Reflect_t
{
    REFLECT_FIRST = 0,
    REFLECT_PERCENT = REFLECT_FIRST,
    REFLECT_CHANCE,
    REFLECT_LAST = REFLECT_CHANCE
};

enum Increment_t
{
    INCREMENT_FIRST = 0,
    HEALING_VALUE = INCREMENT_FIRST,
    HEALING_PERCENT,
    MAGIC_VALUE,
    MAGIC_PERCENT,
    INCREMENT_LAST = MAGIC_PERCENT
};

enum stats_t
{
    STAT_FIRST = 0,
    STAT_MAXHEALTH = STAT_FIRST,
    STAT_MAXMANA,
    #ifdef _MULTIPLATFORM76
    STAT_SOUL,
    #endif
    STAT_LEVEL,
    STAT_MAGICLEVEL,
    STAT_LAST = STAT_MAGICLEVEL
};

enum lossTypes_t
{
    LOSS_FIRST = 0,
    LOSS_EXPERIENCE = LOSS_FIRST,
    LOSS_MANA,
    LOSS_SKILLS,
    LOSS_CONTAINERS,
    LOSS_ITEMS,
    LOSS_LAST = LOSS_ITEMS
};

enum formulaType_t
{
    FORMULA_UNDEFINED = 0,
    FORMULA_LEVELMAGIC,
    FORMULA_SKILL,
    FORMULA_VALUE
};

enum ConditionId_t
{
    CONDITIONID_DEFAULT = -1,
    CONDITIONID_COMBAT = 0,
    CONDITIONID_HEAD,
    CONDITIONID_NECKLACE,
    CONDITIONID_BACKPACK,
    CONDITIONID_ARMOR,
    CONDITIONID_RIGHT,
    CONDITIONID_LEFT,
    CONDITIONID_LEGS,
    CONDITIONID_FEET,
    CONDITIONID_RING,
    CONDITIONID_AMMO,
    CONDITIONID_OUTFIT
};

enum PlayerSex_t
{
    PLAYERSEX_FEMALE = 0,
    PLAYERSEX_MALE
    // DO NOT ADD HERE! Every higher sex is only for your
    // own use- each female should be even and male odd.
};

enum WarType_t
{
    WAR_FIRST = 0,
    WAR_GUILD = WAR_FIRST,
    WAR_ENEMY,
    WAR_LAST = WAR_ENEMY
};

struct War_t
{
    War_t()
    {
        war = 0;
        type = WAR_FIRST;

        memset(ids, 0, sizeof(ids));
        memset(frags, 0, sizeof(frags));

        limit = 0;
        payment = 0;
    }

    uint32_t war;
    WarType_t type;

    uint32_t ids[WAR_LAST + 1];
    std::string names[WAR_LAST + 1];
    uint16_t frags[WAR_LAST + 1];

    uint16_t limit;
    uint64_t payment;
};

struct Outfit_t
{
    Outfit_t()
    {
        lookType = lookTypeEx = 0;
        lookHead = lookBody = lookLegs = lookFeet = 0;
    }
    Outfit_t(uint16_t _lookType)
    {
        lookType = _lookType;
        lookTypeEx = 0;
        lookHead = lookBody = lookLegs = lookFeet = 0;
    }

    uint16_t lookType, lookTypeEx;
    uint8_t lookHead, lookBody, lookLegs, lookFeet;

    bool operator==(const Outfit_t& o) const
    {
        return (o.lookType == lookType && o.lookTypeEx == lookTypeEx
            && o.lookHead == lookHead && o.lookBody == lookBody
            && o.lookLegs == lookLegs && o.lookFeet == lookFeet);
    }

    bool operator!=(const Outfit_t& o) const
    {
        return !(*this == o);
    }
};

struct LightInfo
{
    uint32_t level, color;

    LightInfo() {level = color = 0;}
    LightInfo(uint32_t _level, uint32_t _color):
        level(_level), color(_color) {}
};
#endif

CONST.H

C++:
////////////////////////////////////////////////////////////////////////
// OpenTibia - an opensource roleplaying game
////////////////////////////////////////////////////////////////////////
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
////////////////////////////////////////////////////////////////////////

#ifndef __CONST__
#define __CONST__
#include "definitions.h"

enum OperatingSystem_t
{
    CLIENTOS_LINUX = 1,
    CLIENTOS_WINDOWS = 2,

    CLIENTOS_OTCLIENT_LINUX = 10,
    CLIENTOS_OTCLIENT_WINDOWS = 11,
    CLIENTOS_OTCLIENT_MAC = 12
};

enum ReportType_t
{
    REPORT_NAME = 0,
    REPORT_STATEMENT = 1,
    REPORT_BOT = 2
};

enum MagicEffect_t
{
    MAGIC_EFFECT_DRAW_BLOOD = 0,
    MAGIC_EFFECT_LOSE_ENERGY = 1,
    MAGIC_EFFECT_POFF = 2,
    MAGIC_EFFECT_BLOCKHIT = 3,
    MAGIC_EFFECT_EXPLOSION_AREA = 4,
    MAGIC_EFFECT_EXPLOSION_DAMAGE = 5,
    MAGIC_EFFECT_FIRE_AREA = 6,
    MAGIC_EFFECT_YELLOW_RINGS = 7,
    MAGIC_EFFECT_POISON_RINGS = 8,
    MAGIC_EFFECT_HIT_AREA = 9,
    MAGIC_EFFECT_TELEPORT = 10,
    MAGIC_EFFECT_ENERGY_DAMAGE = 11,
    MAGIC_EFFECT_WRAPS_BLUE = 12,
    MAGIC_EFFECT_WRAPS_RED = 13,
    MAGIC_EFFECT_WRAPS_GREEN = 14,
    MAGIC_EFFECT_HITBY_FIRE = 15,
    MAGIC_EFFECT_POISON = 16,
    MAGIC_EFFECT_MORT_AREA = 17,
    MAGIC_EFFECT_SOUND_GREEN = 18,
    MAGIC_EFFECT_SOUND_RED = 19,
    MAGIC_EFFECT_POISON_AREA = 20,
    MAGIC_EFFECT_SOUND_YELLOW = 21,
    MAGIC_EFFECT_SOUND_PURPLE = 22,
    MAGIC_EFFECT_SOUND_BLUE = 23,
    MAGIC_EFFECT_SOUND_WHITE = 24,
    MAGIC_EFFECT_ICE_TORNADO = 42,
    MAGIC_EFFECT_ICE_AREA = 43,
    MAGIC_EFFECT_LAST = MAGIC_EFFECT_ICE_AREA,

    //for internal use, dont send to client
    MAGIC_EFFECT_NONE = 0xFF,
    MAGIC_EFFECT_UNKNOWN = 0xFFFF
};

enum ShootEffect_t
{
    SHOOT_EFFECT_SPEAR = 0,
    SHOOT_EFFECT_BOLT = 1,
    SHOOT_EFFECT_ARROW = 2,
    SHOOT_EFFECT_FIRE = 3,
    SHOOT_EFFECT_ENERGY = 4,
    SHOOT_EFFECT_POISONARROW = 5,
    SHOOT_EFFECT_BURSTARROW = 6,
    SHOOT_EFFECT_THROWINGSTAR = 7,
    SHOOT_EFFECT_THROWINGKNIFE = 8,
    SHOOT_EFFECT_SMALLSTONE = 9,
    SHOOT_EFFECT_DEATH = 10,
    SHOOT_EFFECT_LARGEROCK = 11,
    SHOOT_EFFECT_SNOWBALL = 12,
    SHOOT_EFFECT_POWERBOLT = 13,
    SHOOT_EFFECT_POISONFIELD = 14,
    SHOOT_EFFECT_LAST = SHOOT_EFFECT_POISONFIELD,

    //for internal use, dont send to client
    SHOOT_EFFECT_WEAPONTYPE = 0xFE, //254
    SHOOT_EFFECT_NONE = 0xFF,
    SHOOT_EFFECT_UNKNOWN = 0xFFFF
};

enum MessageClasses
{
    MSG_NONE = 0,
    MSG_SPEAK_SAY = 1,
    MSG_SPEAK_WHISPER = 2,
    MSG_SPEAK_YELL = 3,
    MSG_PRIVATE = 4,
    MSG_CHANNEL = 5,
    MSG_RVR_CHANNEL = 6,
    MSG_RVR_ANSWER = 7,
    MSG_RVR_CONTINUE = 8,
    MSG_GAMEMASTER_BROADCAST = 9,
    MSG_GAMEMASTER_CHANNEL = 10,
    MSG_GAMEMASTER_PRIVATE = 11,
    MSG_CHANNEL_HIGHLIGHT = 12,
    MSG_CHANNEL_MANAGEMENT = 13,
    MSG_GAMEMASTER_ANONYMOUS = 14,
    MSG_SPEAK_MONSTER_SAY = 16,
    MSG_SPEAK_MONSTER_YELL = 17,
    MSG_SPEAK_FIRST = MSG_SPEAK_SAY,
    MSG_SPEAK_LAST = MSG_GAMEMASTER_ANONYMOUS,
    MSG_SPEAK_MONSTER_FIRST = MSG_SPEAK_MONSTER_SAY,
    MSG_SPEAK_MONSTER_LAST = MSG_SPEAK_MONSTER_YELL,

    MSG_EVENT_ORANGE = 16, /*Orange message in the console*/
    MSG_STATUS_CONSOLE_ORANGE = 17, /*Orange message in the console*/
    MSG_STATUS_WARNING = 18, /*Red message in game window and in the console*/
    MSG_EVENT_ADVANCE = 19, /*White message in game window and in the console*/
    MSG_EVENT_DEFAULT = 20, /*White message at the bottom of the game window and in the console*/
    MSG_STATUS_DEFAULT = 21, /*White message at the bottom of the game window and in the console*/
    MSG_INFO_DESCR = 22, /*Green message in game window and in the console*/
    MSG_STATUS_SMALL = 23, /*White message at the bottom of the game window"*/
    MSG_STATUS_CONSOLE_BLUE = 24, /*Blue message in the console*/
    MSG_STATUS_CONSOLE_RED = 25, /*Red message in the console*/

    //for internal use
    MSG_EVENT_GUILD = MSG_INFO_DESCR, /*Green message in game window and in the console*/
    MSG_PARTY_MANAGEMENT = MSG_INFO_DESCR, /*Green message in game window and in the console*/
    MSG_PARTY = MSG_INFO_DESCR /*Green message in game window and in the console*/
};

enum FluidColors_t
{
    FLUID_EMPTY = 0,
    FLUID_BLUE = 1,
    FLUID_RED = 2,
    FLUID_BROWN = 3,
    FLUID_GREEN = 4,
    FLUID_YELLOW = 5,
    FLUID_WHITE = 6,
    FLUID_PURPLE = 7
};

enum FluidTypes_t
{
    FLUID_NONE = FLUID_EMPTY,
    FLUID_WATER = FLUID_BLUE,
    FLUID_BLOOD = FLUID_RED,
    FLUID_BEER = FLUID_BROWN,
    FLUID_SLIME = FLUID_GREEN,
    FLUID_LEMONADE = FLUID_YELLOW,
    FLUID_MILK = FLUID_WHITE,
    FLUID_MANA = FLUID_PURPLE,

    FLUID_LIFE = FLUID_RED + 8,
    FLUID_OIL = FLUID_BROWN + 8,
    FLUID_URINE = FLUID_YELLOW + 8,
    FLUID_COCONUTMILK = FLUID_WHITE + 8,
    FLUID_WINE = FLUID_PURPLE + 8,

    FLUID_MUD = FLUID_BROWN + 16,
    FLUID_FRUITJUICE = FLUID_YELLOW + 16,

    FLUID_LAVA = FLUID_RED + 24,
    FLUID_RUM = FLUID_BROWN + 24,
    FLUID_SWAMP = FLUID_GREEN + 24,

    FLUID_TEA = FLUID_BROWN + 32,
    FLUID_MEAD = FLUID_BROWN + 40
};

const uint8_t reverseFluidMap[] =
{
    FLUID_EMPTY,
    FLUID_WATER,
    FLUID_MANA,
    FLUID_BEER,
    FLUID_EMPTY,
    FLUID_BLOOD,
    FLUID_SLIME,
    FLUID_EMPTY,
    FLUID_LEMONADE,
    FLUID_MILK
};

const uint8_t clientToServerFluidMap[] =
{
    FLUID_EMPTY,
    FLUID_WATER,
    FLUID_MANA,
    FLUID_BEER,
    FLUID_MUD,
    FLUID_BLOOD,
    FLUID_SLIME,
    FLUID_RUM,
    FLUID_LEMONADE,
    FLUID_MILK,
    FLUID_WINE,
    FLUID_LIFE,
    FLUID_URINE,
    FLUID_OIL,
    FLUID_FRUITJUICE,
    FLUID_COCONUTMILK,
    FLUID_TEA,
    FLUID_MEAD
};

enum ClientFluidTypes_t
{
    CLIENTFLUID_EMPTY = 0,
    CLIENTFLUID_BLUE = 1,
    CLIENTFLUID_PURPLE = 2,
    CLIENTFLUID_BROWN_1 = 3,
    CLIENTFLUID_BROWN_2 = 4,
    CLIENTFLUID_RED = 5,
    CLIENTFLUID_GREEN = 6,
    CLIENTFLUID_BROWN = 7
};

const uint8_t fluidMap[] =
{
    CLIENTFLUID_EMPTY,
    CLIENTFLUID_BLUE,
    CLIENTFLUID_PURPLE,
    CLIENTFLUID_BROWN_1,
    CLIENTFLUID_BROWN_2,
    CLIENTFLUID_RED,
    CLIENTFLUID_GREEN,
    CLIENTFLUID_BROWN
};

enum Color_t
{
    COLOR_BLACK = 0,
    COLOR_BLUE = 5,
    COLOR_GREEN = 18,
    COLOR_LIGHTBLUE = 35,
    COLOR_LIGHTGREEN = 66,
    COLOR_DARKBROWN = 78,
    COLOR_MAYABLUE = 95,
    COLOR_DARKRED = 108,
    COLOR_DARKPURPLE = 112,
    COLOR_BROWN = 120,
    COLOR_GREY = 129,
    COLOR_TEAL = 143,
    COLOR_DARKPINK = 152,
    COLOR_PURPLE = 154,
    COLOR_DARKORANGE = 156,
    COLOR_RED = 180,
    COLOR_PINK = 190,
    COLOR_ORANGE = 192,
    COLOR_DARKYELLOW = 205,
    COLOR_YELLOW = 210,
    COLOR_WHITE = 215,
    COLOR_NONE = 255,
    COLOR_UNKNOWN = 256
};

enum Icons_t
{
    ICON_NONE = 0,
    ICON_POISON = 1 << 0,
    ICON_BURN = 1 << 1,
    ICON_ENERGY = 1 << 2,
    ICON_DRUNK = 1 << 3,
    ICON_MANASHIELD = 1 << 4,
    ICON_PARALYZE = 1 << 5,
    ICON_HASTE = 1 << 6,
    ICON_SWORDS = 1 << 7
};

enum skills_t
{
    SKILL_NONE = -1,
    SKILL_FIRST = 0,
    SKILL_FIST = SKILL_FIRST,
    SKILL_CLUB,
    SKILL_SWORD,
    SKILL_AXE,
    SKILL_DIST,
    SKILL_SHIELD,
    SKILL_FISH,
    SKILL__MAGLEVEL,
    SKILL__LEVEL,
    SKILL__EXPERIENCE,
    SKILL_LAST = SKILL_FISH,
    SKILL__LAST = SKILL__EXPERIENCE
};

enum WeaponType_t
{
    WEAPON_NONE = 0,
    WEAPON_SWORD,
    WEAPON_CLUB,
    WEAPON_AXE,
    WEAPON_DIST,
    WEAPON_SHIELD,
    WEAPON_FIST,
    WEAPON_WAND,
    WEAPON_AMMO
};

enum Ammo_t
{
    AMMO_NONE = 0,
    AMMO_BOLT,
    AMMO_ARROW,
    AMMO_SPEAR,
    AMMO_THROWINGSTAR,
    AMMO_THROWINGKNIFE,
    AMMO_STONE,
    AMMO_SNOWBALL
};

enum AmmoAction_t
{
    AMMOACTION_NONE = 0,
    AMMOACTION_REMOVECOUNT,
    AMMOACTION_REMOVECHARGE,
    AMMOACTION_MOVE,
    AMMOACTION_MOVEBACK
};

enum WieldInfo_t
{
    WIELDINFO_LEVEL = 1,
    WIELDINFO_MAGLV = 2,
    WIELDINFO_VOCREQ = 4,
    WIELDINFO_PREMIUM = 8
};

enum Skulls_t
{
    SKULL_NONE = 0,
    SKULL_YELLOW,
    SKULL_GREEN,
    SKULL_WHITE,
    SKULL_RED,
    SKULL_LAST = SKULL_RED
};

enum PartyShields_t
{
    SHIELD_NONE = 0,
    SHIELD_WHITEYELLOW,
    SHIELD_WHITEBLUE,
    SHIELD_BLUE,
    SHIELD_YELLOW,
    SHIELD_LAST = SHIELD_YELLOW
};

enum SpellGroup_t
{
    SPELLGROUP_NONE = 0,
    SPELLGROUP_ATTACK = 1,
    SPELLGROUP_HEALING = 2,
    SPELLGROUP_SUPPORT = 3,
    SPELLGROUP_SPECIAL = 4
};

enum item_t
{
    ITEM_FIREFIELD = 1487,
    ITEM_FIREFIELD_SAFE = 1500,
    ITEM_POISONFIELD = 1490,
    ITEM_POISONFIELD_SAFE = 1503,
    ITEM_ENERGYFIELD = 1491,
    ITEM_ENERGYFIELD_SAFE = 1504,
    ITEM_MAGICWALL = 1497,
    ITEM_MAGICWALL_SAFE = ITEM_MAGICWALL,
    ITEM_WILDGROWTH = 1499,
    ITEM_WILDGROWTH_SAFE = ITEM_WILDGROWTH,
    ITEM_DEPOT = 2594,
    ITEM_LOCKER = 2589,
    ITEM_MALE_CORPSE = 3058,
    ITEM_FEMALE_CORPSE = 3065,
    ITEM_FULLSPLASH = 2016,
    ITEM_SMALLSPLASH = 2019,
    ITEM_PARCEL = 2595,
    ITEM_PARCEL_STAMPED = 2596,
    ITEM_LETTER = 2597,
    ITEM_LETTER_STAMPED = 2598,
    ITEM_LABEL = 2599,
    ITEM_STEALTH_RING = 2202,
    ITEM_HOUSE_TRANSFER = 1968
};

enum PlayerFlags
{
    PlayerFlag_CannotUseCombat = 0,
    PlayerFlag_CannotAttackPlayer,
    PlayerFlag_CannotAttackMonster,
    PlayerFlag_CannotBeAttacked,
    PlayerFlag_CanConvinceAll,
    PlayerFlag_CanSummonAll,
    PlayerFlag_CanIllusionAll,
    PlayerFlag_CanSenseInvisibility,
    PlayerFlag_IgnoredByMonsters,
    PlayerFlag_NotGainInFight,
    PlayerFlag_HasInfiniteMana,
    PlayerFlag_HasInfiniteSoul,
    PlayerFlag_HasNoExhaustion,
    PlayerFlag_CannotUseSpells,
    PlayerFlag_CannotPickupItem,
    PlayerFlag_CanAlwaysLogin,
    PlayerFlag_CanBroadcast,
    PlayerFlag_CanEditHouses,
    PlayerFlag_CannotBeBanned,
    PlayerFlag_CannotBePushed,
    PlayerFlag_HasInfiniteCapacity,
    PlayerFlag_CanPushAllCreatures,
    PlayerFlag_CanTalkRedPrivate,
    PlayerFlag_CanTalkRedChannel,
    PlayerFlag_TalkOrangeHelpChannel,
    PlayerFlag_NotGainExperience,
    PlayerFlag_NotGainMana,
    PlayerFlag_NotGainHealth,
    PlayerFlag_NotGainSkill,
    PlayerFlag_SetMaxSpeed,
    PlayerFlag_SpecialVIP,
    PlayerFlag_NotGenerateLoot,
    PlayerFlag_CanTalkRedChannelAnonymous,
    PlayerFlag_IgnoreProtectionZone,
    PlayerFlag_IgnoreSpellCheck,
    PlayerFlag_IgnoreEquipCheck,
    PlayerFlag_CannotBeMuted,
    PlayerFlag_IsAlwaysPremium,
    PlayerFlag_CanAnswerRuleViolations,
    PlayerFlag_39,
    PlayerFlag_ShowGroupNameInsteadOfVocation,
    PlayerFlag_HasInfiniteStamina,
    PlayerFlag_CannotMoveItems,
    PlayerFlag_CannotMoveCreatures,
    PlayerFlag_CanReportBugs,
    PlayerFlag_45,
    PlayerFlag_CannotBeSeen,
    PlayerFlag_HideHealth,
    PlayerFlag_CanPassThroughAllCreatures,
    PlayerFlag_LastFlag
};

enum PlayerCustomFlags
{
    PlayerCustomFlag_AllowIdle = 0,
    PlayerCustomFlag_CanSeePosition,
    PlayerCustomFlag_CanSeeItemDetails,
    PlayerCustomFlag_CanSeeCreatureDetails,
    PlayerCustomFlag_NotSearchable,
    PlayerCustomFlag_GamemasterPrivileges,
    PlayerCustomFlag_CanThrowAnywhere,
    PlayerCustomFlag_CanPushAllItems,
    PlayerCustomFlag_CanMoveAnywhere,
    PlayerCustomFlag_CanMoveFromFar,
    PlayerCustomFlag_CanUseFar,
    PlayerCustomFlag_CanLoginMultipleCharacters,
    PlayerCustomFlag_CanLogoutAnytime,
    PlayerCustomFlag_HideLevel,
    PlayerCustomFlag_IsProtected,
    PlayerCustomFlag_IsImmune,
    PlayerCustomFlag_NotGainSkull,
    PlayerCustomFlag_NotGainUnjustified,
    PlayerCustomFlag_IgnorePacification,
    PlayerCustomFlag_IgnoreLoginDelay,
    PlayerCustomFlag_CanStairhop,
    PlayerCustomFlag_CanTurnhop,
    PlayerCustomFlag_IgnoreHouseRent,
    PlayerCustomFlag_CanWearAllAddons,
    PlayerCustomFlag_IsWalkable,
    PlayerCustomFlag_25,
    PlayerCustomFlag_HasFullLight,
    PlayerCustomFlag_LastFlag
};

#define NETWORK_CRYPTOHEADER_SIZE 8
#define NETWORK_RETRY_TIMEOUT 5000
#define NETWORK_DEFAULT_SIZE 4096
#define NETWORK_HEADER_SIZE 2
#define NETWORK_MAX_SIZE 24590

#define IPBAN_FLAG 128
#define LOCALHOST 2130706433
#define SWIMMING_OUTFIT 267
#define GRATIS_PREMIUM 65535

#endif

I'm using otx server.
 
post your exori frigo . lua
otherwise i think it is in game.cpp?

u need something like this i think?
Code:
case COMBAT_ICEDAMAGE: {
color = TEXTCOLOR_RED;
effect = CONST_ME_MAGIC_RED;
break;
}
 
My ice strike:
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.25, -0, -0.55, 0)

function onCastSpell(cid, var)
    if exhaustion.check(cid, 30030) then
     doPlayerSendCancel(cid, "You are exhausted.")
     else
    exhaustion.set(cid, 30030, 1)
    return doCombat(cid, combat, var)
    end
end

and my Game.cpp \/
 
Game cpp is to big :( vut i think u mean those parts \/
C++:
                addCreatureHealth(list, target);
                if(params.combatType == COMBAT_PHYSICALDAMAGE)
                {
                    Item* splash = NULL;
                    switch(target->getRace())
                    {
                        case RACE_VENOM:
                            textColor = COLOR_LIGHTGREEN;
                            magicEffect = MAGIC_EFFECT_POISON;
                            splash = Item::CreateItem(ITEM_SMALLSPLASH, FLUID_GREEN);
                            break;

                        case RACE_BLOOD:
                            textColor = COLOR_RED;
                            magicEffect = MAGIC_EFFECT_DRAW_BLOOD;
                            splash = Item::CreateItem(ITEM_SMALLSPLASH, FLUID_BLOOD);
                            break;

                        case RACE_UNDEAD:
                            textColor = COLOR_GREY;
                            magicEffect = MAGIC_EFFECT_HIT_AREA;
                            break;

                        case RACE_FIRE:
                            textColor = COLOR_ORANGE;
                            magicEffect = MAGIC_EFFECT_DRAW_BLOOD;
                            break;

                        case RACE_ENERGY:
                            textColor = COLOR_PURPLE;
                            magicEffect = MAGIC_EFFECT_LOSE_ENERGY;
                            break;

                        default:
                            break;
                    }

and:
Code:
    MagicEffect_t effect = MAGIC_EFFECT_NONE;
    switch(combatType)
    {
        case COMBAT_UNDEFINEDDAMAGE:
            break;

        case COMBAT_ENERGYDAMAGE:
        case COMBAT_FIREDAMAGE:
        case COMBAT_PHYSICALDAMAGE:
        case COMBAT_ICEDAMAGE:
        case COMBAT_DEATHDAMAGE:
        case COMBAT_EARTHDAMAGE:
        case COMBAT_HOLYDAMAGE:
        {
            effect = MAGIC_EFFECT_BLOCKHIT;
            break;
        }

        default:
        {
            effect = MAGIC_EFFECT_POFF;
            break;
        }
    }

    addMagicEffect(list, targetPos, effect);
    return true;
}

i tried to Put
  1. case COMBAT_ICEDAMAGE: {
  2. color = TEXTCOLOR_RED;
  3. effect = CONST_ME_MAGIC_RED;
  4. break;
  5. }
But thats doesnt seems to work.
 
Back
Top