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

Solved Server did work but can't login anymore now! ._.

L

LordVissie

Guest
Hey guys, 2 days ago I was on my server with another guy out of brazil. (Wich I didn't know but just came on my server due I set the server on Otservlist for a hour for testing.) Before that I used the no-ip.org site to mask my IP. Then next day I wanted to turn up the server and it gives no errors or something but nobody can't login in my server (I can't login either). I've no idea what happend. The only thing I can find in my server startup log is this.

[15/08/2015 11:28:43] >> Checking software version... failed checking - malformed file.

Is this normal?

I'm using TheForgottenServerV8.2 on 8.60. I downloaded the files again and started all over but it still doesn't go on. I can login when I use 127.0.0.1 but when I set in my IP adress into the config file at connection I can't login.

I was so glad that everything worked and suddenly it broke.

I'm desperate, Does anyone know whats the problem? I'll give rep++.

Already thanks.
 
Okay, It still didn't worked somehow :(

It gives this error now..

Code:
[16/08/2015 19:27:02] [Error - LuaScriptInterface::loadFile] data/globalevents/scripts/effectile.lua:3: ']' expected near '!'
[16/08/2015 19:27:02] [Warning - Event::loadScript] Cannot load script (data/globalevents/scripts/effectile.lua)
[16/08/2015 19:27:02] data/globalevents/scripts/effectile.lua:3: ']' expected near '!'

My script again:

Code:
local config = {
positions = {
[ Monsters! ] = { x = 996, y = 1002, z = 7 },
[ text here ] = { x = xxx, y = yyy, z = z },
},

effects = {
CONST_ME_MAGIC_BLUE,
CONST_ME_MAGIC_GREEN,
CONST_ME_MORTAREA
},

colors = {
TEXTCOLOR_WHITE,
TEXTCOLOR_ORANGE,
TEXTCOLOR_GREEN,
TEXTCOLOR_BLUE
}
}

function onThink(cid, interval, lastExecution)
for text, pos in pairs(config.positions) do
doSendMagicEffect(pos, config.effects[math.random(1, #config.effects)])
doSendAnimatedText(pos, text, config.colors[math.random(1, #config.colors)])
end
return TRUE
end
 
Edit: Ah limos was faster haha
Code:
local config = {
positions = {
["Monsters!"] = { x = 996, y = 1002, z = 7 },
["text here"] = { x = xxx, y = yyy, z = z },
},

effects = {
CONST_ME_MAGIC_BLUE,
CONST_ME_MAGIC_GREEN,
CONST_ME_MORTAREA
},

colors = {
TEXTCOLOR_WHITE,
TEXTCOLOR_ORANGE,
TEXTCOLOR_GREEN,
TEXTCOLOR_BLUE
}
}

function onThink(cid, interval, lastExecution)
for text, pos in pairs(config.positions) do
doSendMagicEffect(pos, config.effects[math.random(1, #config.effects)])
doSendAnimatedText(pos, text, config.colors[math.random(1, #config.colors)])
end
return TRUE
end


// try to take a look at the code and the error.
Regards Alw
 
Thanks boys <3

Hey guys, :)

I want to use mana pots and health pots in my server, but I've 2 problems. ;)

1. When I use a mana potion you get a empty potion in my BP. And I don't want that cuz I don't think it's really needed on my OT to sell them and people throw them on the ground. So I want if you use a mana pot/hp pot, strong hp pot ect. I don't want to have a empty flask back. I looked in my items.xml but couldn't find such thing about it.
2. And I want to change the mana what is given to the person who uses the mana/hp potion :) (I also looked in my Items.xml for it but I only saw the value changed that but nothing was different) :p

Thanks :cool:
 
Last edited by a moderator:
Sure Awl, I don't know what distro is but here is the script ( I modified it tho)

Code:
local config = {
    removeOnUse = "no",
    usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
    splashable = "no",
    range = -1,
    realAnimation = "no", -- make text effect visible only for players in range 1x1
    multiplier = {
        health = 3.0,
        mana = 3.0
    }
}

config.removeOnUse = getBooleanFromString(config.removeOnUse)
config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
config.splashable = getBooleanFromString(config.splashable)
config.realAnimation = getBooleanFromString(config.realAnimation)

local POTIONS = {
    [8704] = {empty = 7636, splash = 42, health = {100, 100}}, -- small health potion
    [7618] = {empty = 7636, splash = 42, health = {100, 100}}, -- health potion
    [7588] = {empty = 7634, splash = 42, health = {100, 250}, level = 75, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
    [7591] = {empty = 7635, splash = 42, health = {200, 300}, level = 150, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
    [8473] = {empty = 7635, splash = 42, health = {300, 450}, level = 200, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

    [7620] = {empty = 7636, splash = 47, mana = {100, 100}}, -- mana potion
    [7589] = {empty = 7634, splash = 47, mana = {130, 210}, level = 100, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
    [7590] = {empty = 7635, splash = 47, mana = {300, 500}, level = 250, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

    [8472] = {empty = 7635, splash = 43, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
}

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local potion = POTIONS[item.itemid]
    if(not potion) then
        return false
    end

    if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
        if(not config.splashable) then
            return false
        end

        if(toPosition.x == CONTAINER_POSITION) then
            toPosition = getThingPosition(item.uid)
        end

        doDecayItem(doCreateItem(POOL, potion.splash, toPosition))
        doRemoveItem(item.uid, 1)
        if(not potion.empty or config.removeOnUse) then
            return true
        end

        if(fromPosition.x ~= CONTAINER_POSITION) then
            doCreateItem(potion.empty, fromPosition)
           
        end

        return true
    end

    if(hasCondition(cid, CONDITION_EXHAUST)) then
        doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
        return true
    end

    if(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)))) and
        not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
    then
        doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
        return true
    end

    if(config.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > config.range) then
        return false
    end

    local health = potion.health
    if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.multiplier.health))) then
        return false
    end

    local mana = potion.mana
    if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.multiplier.mana))) then
        return false
    end

    doSendMagicEffect(getThingPosition(itemEx.uid), CONST_ME_MAGIC_BLUE)
    if(not config.realAnimation) then
        doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
    else
        for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), 1, 1)) do
            if(isPlayer(tid)) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
            end
        end
    end

    doAddCondition(cid, exhaust)
    doRemoveItem(item.uid, 1)
    if(not potion.empty or config.removeOnUse) then
        return true
    end

    if(fromPosition.x ~= CONTAINER_POSITION) then
        doCreateItem(potion.empty, fromPosition)
    end

    return true
end
 
Now it shouldn't drop any empty potions. Anyway to change the values you change the rows that says mana/health.
Ex.
[7620] = {empty = 7636, splash = 47, mana = {100, 100}}, -- mana potion. As is says there mana = 100,100 what it means is that the minimum mana you will gain is 100 and the max mana is 100. Which means that you will gain 100 Mana.
Ex2.
[7620] = {empty = 7636, splash = 47, mana = {100, 350}}, Now it says mana = 100,350. Which means that you will gain mana which could be anything between 100 and 350.
----
mana = {100, 350}

So you change the first number in this case 100 to the minimum mana the player will gain.
Then you change the second number in this case 350 to the maximum amount of mana the player will gain.

Hope you understood.

Code:
local config = {
    removeOnUse = "no",
    usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
    splashable = "no",
    range = -1,
    realAnimation = "no", -- make text effect visible only for players in range 1x1
    multiplier = {
        health = 3.0,
        mana = 3.0
    }
}

config.removeOnUse = getBooleanFromString(config.removeOnUse)
config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
config.splashable = getBooleanFromString(config.splashable)
config.realAnimation = getBooleanFromString(config.realAnimation)

local POTIONS = {
    [8704] = {empty = 7636, splash = 42, health = {100, 100}}, -- small health potion
    [7618] = {empty = 7636, splash = 42, health = {100, 100}}, -- health potion
    [7588] = {empty = 7634, splash = 42, health = {100, 250}, level = 75, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
    [7591] = {empty = 7635, splash = 42, health = {200, 300}, level = 150, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
    [8473] = {empty = 7635, splash = 42, health = {300, 450}, level = 200, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

    [7620] = {empty = 7636, splash = 47, mana = {100, 100}}, -- mana potion
    [7589] = {empty = 7634, splash = 47, mana = {130, 210}, level = 100, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
    [7590] = {empty = 7635, splash = 47, mana = {300, 500}, level = 250, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

    [8472] = {empty = 7635, splash = 43, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
}

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local potion = POTIONS[item.itemid]
    if(not potion) then
        return false
    end

    if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
        if(not config.splashable) then
            return false
        end

        if(toPosition.x == CONTAINER_POSITION) then
            toPosition = getThingPosition(item.uid)
        end

        doDecayItem(doCreateItem(POOL, potion.splash, toPosition))
        doRemoveItem(item.uid, 1)
        if(not potion.empty or config.removeOnUse) then
            return true
        end

        if(fromPosition.x ~= CONTAINER_POSITION) then
            doCreateItem(potion.empty, fromPosition)
          
        end

        return true
    end

    if(hasCondition(cid, CONDITION_EXHAUST)) then
        doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
        return true
    end

    if(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)))) and
        not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
    then
        doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
        return true
    end

    if(config.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > config.range) then
        return false
    end

    local health = potion.health
    if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.multiplier.health))) then
        return false
    end

    local mana = potion.mana
    if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.multiplier.mana))) then
        return false
    end

    doSendMagicEffect(getThingPosition(itemEx.uid), CONST_ME_MAGIC_BLUE)
    if(not config.realAnimation) then
        doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
    else
        for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), 1, 1)) do
            if(isPlayer(tid)) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
            end
        end
    end

    doAddCondition(cid, exhaust)
    doRemoveItem(item.uid, 1)
    if(not potion.empty or config.removeOnUse) then
        return true
    end

    if(fromPosition.x ~= CONTAINER_POSITION) then
        doCreateItem(potion.empty, fromPosition)
    end

    return true
end

Regards Alw
 
Hey guys, I've again a question :D

I've houses in my map but when I open the server it gives this Error:

[16/08/2015 22:49:48] [Warning - Houses::loadFromXml] House entry not set for: Forgotten headquarter (Flat 1, Area 42) (258)

This is one of the 200 houses what gives this error. I understand that there no entry for these houses, so other players can open the door but can't walk in. But I have set the house entry (I think) here is a picture of 2 examples these two houses give an error.
xn0Hpxx.png

Kinda big maybe lol sry for that :confused:

I never seen that bloodcross thingy as an house entry but I selected "select exit" and clicked on the door in my map editor :cool:

Do I need to do all houses over again? or is there a solution?

Kind regards. :p

~Edit~

I selected the 2nd house that's why it's another color :p
 
Last edited by a moderator:
Entry should be next to the door, it's the position where players are being teleported after housekick commands.
The walls and doors should also be house zone/tiles btw, the walls for the hangables so they don't disappear after restart and the doors to make the house buyable, for door acces and to have the owner name on the description.
 
Hm, all houses are fixed now but the Errors keep comming. Kinda weird but it says something about forgotten and I changed the forgotten map to another map, but my server works with those are errors so I dont really mind :)

I almost have no questions anymore lol. ;)

Hey guys I've a question. I've changed the Exhaust length of pots and attack speed, but does anyone know how to change the exhaust length of Runes for example SD's?
 
Last edited by a moderator:
Okay I got a important question now :(

Other people can't login in my server anymore only I can, my brother on another PC (Same connection) can't login either. Yesterday other people could login and now it suddenly broke again, my IPv4 address is static and is still the same as before, and my Global IP where other people login with is as the one in the Config. People can see Account manager but can't login or if they login with their account they made earlier then it says invalid password.

I've no idea what's wrong. :(

My server doesn't gives an Error but It says something about this :

Code:
[21/08/2015 12:47:19] [Error - GlobalEvent Interface]
[21/08/2015 12:47:19] data/globalevents/scripts/start.lua:onStartup
[21/08/2015 12:47:19] Description:
[21/08/2015 12:47:19] data/globalevents/scripts/start.lua:2: attempt to concatenate a nil value
[21/08/2015 12:47:19] stack traceback:
[21/08/2015 12:47:19]     data/globalevents/scripts/start.lua:2: in function <data/globalevents/scripts/start.lua:1>

I think it was before too but I'm not sure.

Hope someone can help me, thanks :oops:
 
Last edited by a moderator:
Back
Top Bottom