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

Monster Monsterpack, spellpack and creaturescriptspack for Tibia 10.7(TFS 1.1) based on Real Tibia

Prince Drazzak Is dropping all his loot.
 
Prince Drazzak Is dropping all his loot.
Actually his loot isn't 100% real tibia, i'd say it isn't even 15%. You may ask why. It's because I did this monster way before it was even possible to kill on global tibia and I was too lazy to make it drop his real loot xD.
Same thing goes to Omrafir, his loot is not the real loot, it has Gaz'haragoth drops(Prince Drazzak too).
 
Is it just me getting debugged by something Gaz'Haragoth is doing?

Something about MaxLenght or something? :p

Could it be because of this?

(Unknown scriptfile)
data/spells/scripts/monster/gaz'haragoth death.lua:67: attempt to call global 'positionToVariant' (a nil value)
stack traceback:
[C]: in function 'positionToVariant'
data/spells/scripts/monster/gaz'haragoth death.lua:67: in function <data/spells/scripts/monster/gaz'haragoth death.lua:61>
 
Is it just me getting debugged by something Gaz'Haragoth is doing?

Something about MaxLenght or something? :p

Could it be because of this?

(Unknown scriptfile)
data/spells/scripts/monster/gaz'haragoth death.lua:67: attempt to call global 'positionToVariant' (a nil value)
stack traceback:
[C]: in function 'positionToVariant'
data/spells/scripts/monster/gaz'haragoth death.lua:67: in function <data/spells/scripts/monster/gaz'haragoth death.lua:61>
It works fine for me. Prolly you need to update compat.lua
What if you try this script?
Code:
local voc = {1, 2, 3, 4, 5, 6, 7, 8}

    arr = {
    {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0},
    {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0},
    {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0},
    {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
    {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
    {1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1},
    {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
    {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
    {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0},
    {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0},
    {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0},
    {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
    }

local area = createCombatArea(arr)

local combat = Combat()
combat:setArea(area)

function onTargetTile(creature, pos)
    local creatureTable = {}
    local n, i = Tile({x=pos.x, y=pos.y, z=pos.z}).creatures, 1
    if n ~= 0 then
        local v = getThingfromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i}).uid
        while v ~= 0 do
            if isCreature(v) == true then
                table.insert(creatureTable, v)
                if n == #creatureTable then
                    break
                end
            end
            i = i + 1
            v = getThingfromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i}).uid
        end
    end
    if #creatureTable ~= nil and #creatureTable > 0 then
        for r = 1, #creatureTable do
            if creatureTable[r] ~= creature then
                local min = 30000
                local max = 30000
                local player = Player(creatureTable[r])
               
                if isPlayer(creatureTable[r]) == true and isInArray(voc, player:getVocation():getId()) then
                    doTargetCombatHealth(creature, creatureTable[r], COMBAT_ENERGYDAMAGE, -min, -max, CONST_ME_NONE)
                elseif isMonster(creatureTable[r]) == true then
                    doTargetCombatHealth(creature, creatureTable[r], COMBAT_ENERGYDAMAGE, -min, -max, CONST_ME_NONE)
                end
            end
        end
    end
    pos:sendMagicEffect(CONST_ME_PURPLEENERGY)
    return true
end

combat:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTile")

local function delayedCastSpell(cid, var)
    local creature = Creature(cid)
    if not creature then
        return
    end
    creature:say("Gaz'haragoth calls down: DEATH AND DOOM!", TALKTYPE_ORANGE_2)
    return combat:execute(creature, Variant(creature:getPosition()))
end

function onCastSpell(creature, var)
    creature:say("Gaz'haragoth begins to channel DEATH AND DOOM into the area! RUN!", TALKTYPE_ORANGE_2)
    addEvent(delayedCastSpell, 5000, creature:getId(), var)
    return true
end
 
It works fine for me. Prolly you need to update compat.lua
What if you try this script?
Code:
local voc = {1, 2, 3, 4, 5, 6, 7, 8}

    arr = {
    {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0},
    {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0},
    {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0},
    {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
    {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
    {1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1},
    {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
    {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
    {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0},
    {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0},
    {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0},
    {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
    }

local area = createCombatArea(arr)

local combat = Combat()
combat:setArea(area)

function onTargetTile(creature, pos)
    local creatureTable = {}
    local n, i = Tile({x=pos.x, y=pos.y, z=pos.z}).creatures, 1
    if n ~= 0 then
        local v = getThingfromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i}).uid
        while v ~= 0 do
            if isCreature(v) == true then
                table.insert(creatureTable, v)
                if n == #creatureTable then
                    break
                end
            end
            i = i + 1
            v = getThingfromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i}).uid
        end
    end
    if #creatureTable ~= nil and #creatureTable > 0 then
        for r = 1, #creatureTable do
            if creatureTable[r] ~= creature then
                local min = 30000
                local max = 30000
                local player = Player(creatureTable[r])
              
                if isPlayer(creatureTable[r]) == true and isInArray(voc, player:getVocation():getId()) then
                    doTargetCombatHealth(creature, creatureTable[r], COMBAT_ENERGYDAMAGE, -min, -max, CONST_ME_NONE)
                elseif isMonster(creatureTable[r]) == true then
                    doTargetCombatHealth(creature, creatureTable[r], COMBAT_ENERGYDAMAGE, -min, -max, CONST_ME_NONE)
                end
            end
        end
    end
    pos:sendMagicEffect(CONST_ME_PURPLEENERGY)
    return true
end

combat:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTile")

local function delayedCastSpell(cid, var)
    local creature = Creature(cid)
    if not creature then
        return
    end
    creature:say("Gaz'haragoth calls down: DEATH AND DOOM!", TALKTYPE_ORANGE_2)
    return combat:execute(creature, Variant(creature:getPosition()))
end

function onCastSpell(creature, var)
    creature:say("Gaz'haragoth begins to channel DEATH AND DOOM into the area! RUN!", TALKTYPE_ORANGE_2)
    addEvent(delayedCastSpell, 5000, creature:getId(), var)
    return true
end

Well, now a new error

(Unknown scriptfile)
data/spells/scripts/monster/gaz'haragoth death.lua:30: attempt to call global 'isCreature' (a nil value)
stack traceback:
[C]: in function 'isCreature'
data/spells/scripts/monster/gaz'haragoth death.lua:30: in function <data/spells/scripts/monster/gaz'haragoth death.lua:24>
[C]: in function 'execute'
data/spells/scripts/monster/gaz'haragoth death.lua:67: in function <data/spells/scripts/monster/gaz'haragoth death.lua:61>


Still getting tibia client debugged by something, I have no idea what :/ Get something about message length or other debug error, I have no compat.lua atm, using ORTS by PrinterLua :)
 
Well, now a new error

(Unknown scriptfile)
data/spells/scripts/monster/gaz'haragoth death.lua:30: attempt to call global 'isCreature' (a nil value)
stack traceback:
[C]: in function 'isCreature'
data/spells/scripts/monster/gaz'haragoth death.lua:30: in function <data/spells/scripts/monster/gaz'haragoth death.lua:24>
[C]: in function 'execute'
data/spells/scripts/monster/gaz'haragoth death.lua:67: in function <data/spells/scripts/monster/gaz'haragoth death.lua:61>


Still getting tibia client debugged by something, I have no idea what :/ Get something about message length or other debug error, I have no compat.lua atm, using ORTS by PrinterLua :)
Paste this to your data folder.
http://www.mediafire.com/download/j5e58ajw6kess80/compat.lua
Open global.lua and paste this at the top of the file:
Code:
dofile('data/compat.lua')
Restart server and test again Gaz'haragoth.
 
bro have you fix the omrafir?
well, I remember that all time he give crash in server
when he die some times give a crash
 
You could add loot to be in alfabetical order like real tibia.
 
You could add loot to be in alfabetical order like real tibia.
Well, loot from several monsters is in equal order like in global tibia and it's not sorted by alphabet. I have already investigated that and anyone who say it's in alphabetical order is wrong.
 
Server is crashing on the welter egg script.

TFS 1.2
 
nah main post i assumed they got updated. i'll try those.
 
found another bug.. the spawn of the welter is healing players lol
 
Thats actually TFS bug, since on Global Tibia it won't heal you. So it needs to be fixed in TFS not in monster file. :)
 
Oh is it really? Fml... Can you think of any other monsters that do a mass heal wanna confirm it then start looking into a fix
 
Back
Top