• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Solved [SOLVED] Where can i find the underwater config tile?

Joe Rod

Discord: joerod1
Joined
Mar 16, 2011
Messages
499
Solutions
2
Reaction score
172
GitHub
joerod1
Hi, i wonder if you could say me where is located the "underwater config" on sources, i mean the function or tile property, w/e refered to that. Especifically where it makes slower the creature over it.

I was looking for it via: itemid of tiles, drown word, underwater word

but i could not find anything

Thanks in advance
 
Last edited:
for example in tfs 1.x
in movements.xml
Code:
    <movevent event="StepIn" itemid="5405" script="drowning.lua"/>
    <movevent event="StepOut" itemid="5405" script="drowning.lua"/>
and the script
Code:
local condition = Condition(CONDITION_DROWN)
condition:setParameter(CONDITION_PARAM_PERIODICDAMAGE, -20)
condition:setParameter(CONDITION_PARAM_TICKS, -1)
condition:setParameter(CONDITION_PARAM_TICKINTERVAL, 2000)

function onStepIn(cid, item, position, fromPosition)
    local player = Player(cid)
    if not player then
        return true
    end
    if math.random(1, 10) == 1 then
        position:sendMagicEffect(CONST_ME_BUBBLES)
    end
    player:addCondition(condition)
end

function onStepOut(cid, item, position, fromPosition)
    local player = Player(cid)
    if not player then
        return false
    end

    player:removeCondition(CONDITION_DROWN)
end
 
for tfs 1.0 all lines that contain drown xD
Code:
Find all "drown", Subfolders, Find Results 1, Entire Solution, ""
  D:\forgottenserver-1.0\src\combat.cpp(160):        case CONDITION_DROWN:
  D:\forgottenserver-1.0\src\combat.cpp(161):            return COMBAT_DROWNDAMAGE;
  D:\forgottenserver-1.0\src\combat.cpp(191):        case COMBAT_DROWNDAMAGE:
  D:\forgottenserver-1.0\src\combat.cpp(192):            return CONDITION_DROWN;
  D:\forgottenserver-1.0\src\condition.cpp(182):        case CONDITION_DROWN:
  D:\forgottenserver-1.0\src\condition.cpp(1335):        case CONDITION_DROWN:
  D:\forgottenserver-1.0\src\condition.cpp(1336):            icons |= ICON_DROWNING;
  D:\forgottenserver-1.0\src\const.h(335):    ICON_DROWNING = 256,
  D:\forgottenserver-1.0\src\creature.cpp(1095):        case CONDITION_DROWN:
  D:\forgottenserver-1.0\src\creature.cpp(1096):            bRemove = (field->getCombatType() != COMBAT_DROWNDAMAGE);
  D:\forgottenserver-1.0\src\enums.h(137):    COMBAT_DROWNDAMAGE = 256,
  D:\forgottenserver-1.0\src\enums.h(268):    CONDITION_DROWN             = 32768,
  D:\forgottenserver-1.0\src\game.cpp(3930):        case COMBAT_DROWNDAMAGE: {
  D:\forgottenserver-1.0\src\items.cpp(801):        } else if (tmpStrValue == "absorbpercentdrown") {
  D:\forgottenserver-1.0\src\items.cpp(802):            it.getAbilities()->absorbPercent[combatTypeToIndex(COMBAT_DROWNDAMAGE)] += pugi::cast<int16_t>(valueAttribute.value());
  D:\forgottenserver-1.0\src\items.cpp(825):        } else if (tmpStrValue == "suppressdrown") {
  D:\forgottenserver-1.0\src\items.cpp(827):                it.getAbilities()->conditionSuppressions |= CONDITION_DROWN;
  D:\forgottenserver-1.0\src\items.cpp(862):            } else if (tmpStrValue == "drown") {
  D:\forgottenserver-1.0\src\items.cpp(863):                conditionDamage = new ConditionDamage(CONDITIONID_COMBAT, CONDITION_DROWN);
  D:\forgottenserver-1.0\src\items.cpp(864):                combatType = COMBAT_DROWNDAMAGE;
  D:\forgottenserver-1.0\src\luascript.cpp(1208):    registerEnum(COMBAT_DROWNDAMAGE)
  D:\forgottenserver-1.0\src\luascript.cpp(1240):    registerEnum(CONDITION_DROWN)
  D:\forgottenserver-1.0\src\monsters.cpp(486):            } else if ((attr = node.attribute("drown"))) {
  D:\forgottenserver-1.0\src\monsters.cpp(487):                conditionType = CONDITION_DROWN;
  D:\forgottenserver-1.0\src\monsters.cpp(544):        } else if (tmpName == "drown") {
  D:\forgottenserver-1.0\src\monsters.cpp(545):            combat->setParam(COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE);
  D:\forgottenserver-1.0\src\monsters.cpp(640):                   tmpName == "drowncondition" || tmpName == "bleedcondition" ||
  D:\forgottenserver-1.0\src\monsters.cpp(654):            } else if (tmpName == "drowncondition") {
  D:\forgottenserver-1.0\src\monsters.cpp(655):                conditionType = CONDITION_DROWN;
  D:\forgottenserver-1.0\src\monsters.cpp(994):                } else if (tmpStrValue == "drown") {
  D:\forgottenserver-1.0\src\monsters.cpp(995):                    mType->damageImmunities |= COMBAT_DROWNDAMAGE;
  D:\forgottenserver-1.0\src\monsters.cpp(996):                    mType->conditionImmunities |= CONDITION_DROWN;
  D:\forgottenserver-1.0\src\monsters.cpp(1043):            } else if ((attr = immunityNode.attribute("drown"))) {
  D:\forgottenserver-1.0\src\monsters.cpp(1045):                    mType->damageImmunities |= COMBAT_DROWNDAMAGE;
  D:\forgottenserver-1.0\src\monsters.cpp(1046):                    mType->conditionImmunities |= CONDITION_DROWN;
  D:\forgottenserver-1.0\src\monsters.cpp(1154):            } else if ((attr = elementNode.attribute("drownPercent"))) {
  D:\forgottenserver-1.0\src\monsters.cpp(1155):                mType->elementMap[COMBAT_DROWNDAMAGE] = pugi::cast<int32_t>(attr.value());
  D:\forgottenserver-1.0\src\player.cpp(3558):        case CONDITION_DROWN:
  D:\forgottenserver-1.0\src\player.cpp(3559):            sendTextMessage(MESSAGE_STATUS_DEFAULT, "You are drowning.");
  D:\forgottenserver-1.0\src\spells.cpp(419):        "drown",
  D:\forgottenserver-1.0\src\spells.cpp(433):        "drowncondition",
  D:\forgottenserver-1.0\src\tools.cpp(575):    {"drown",        COMBAT_DROWNDAMAGE},
  D:\forgottenserver-1.0\src\tools.cpp(827):        case COMBAT_DROWNDAMAGE:
  Matching lines: 43    Matching files: 12    Total files searched: 154

open your source and read each line with number + function xD
 
i did that but i could'nt find something useful. I mean the part where it checks the tile (i guess it could be found at tile.cpp or creature.cpp) and it makes slower the creature if is under water
 
Back
Top