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

CreatureEvent [TFS 1.3] Upgrade System

OP
oen432

oen432

Excellent OT User
Joined
Oct 3, 2014
Messages
1,033
Solutions
38
Reaction score
971
Location
Poland
GitHub
Oen44
19:13 You see a common brass helmet (Arm:3).
Item Level: 0
It can only be wielded properly by players of level 0 or higher.
It weighs 27.00 oz.
Item ID: 2460


the thing is even when i use the spawn command, the items also gets common. and i killed 100 minotaurs, none dropped anythign else than common
I just asked you if these item have Item Level higher than 0 and you are posting one with 0...
You haven't installed everything correctly then. Or your autoloot is looting items faster than the script is editing them.
As for creating items with a command, from NPCs and such - Oen44/TFS-Upgrade-System (https://github.com/Oen44/TFS-Upgrade-System/wiki/developer-notes)

I'm really getting tired of posting same thing over and over again, can't you people read!?
 

marcioziomek

Active Member
Joined
Sep 22, 2018
Messages
80
Reaction score
36
thanks for help anyways, gonna check if i installed everything correctly again.
Post automatically merged:

I have reinstalled everything, followed step by step when installing and still getting item level 0 when killing monsters. Have you maybe any ideas what the reason for that could be?
EDIT: im not using autoloot
 
Last edited:

marcioziomek

Active Member
Joined
Sep 22, 2018
Messages
80
Reaction score
36
i maybe wrote the autoloot edit a bit late so you didnt see it. but nope im not using autoloot
 
OP
oen432

oen432

Excellent OT User
Joined
Oct 3, 2014
Messages
1,033
Solutions
38
Reaction score
971
Location
Poland
GitHub
Oen44
Then the only option left is... wrong installation. I'm not even joking, EVERY single time someone has issues like this, it's because they missed (or copy pasted in wrong place) something while installing.
 

SorketROrk

New Member
Joined
Oct 14, 2020
Messages
10
Reaction score
3
Hey!

Great work, the system is nice and exactly what ots need :)

I was wondering if you know maybe why my elemental resistance % is not working properly? It does not apply resistance.

I've been testing quite a lot and everything seems to work, skills, mlvl and increase of dmg % works nicely, how would you go about testing this? I tried with poison/energy/fire bombs with no luck. Maybe its triggered by other sources of damage?

Hopefully you can guide me to look for something i might have missed, thanks!

/SRO
 

macacaue

New Member
Joined
Mar 22, 2012
Messages
5
Reaction score
0
Help me plz...
Last tfs update...
On look give this error

Lua:
Lua Script Error: [Event Interface]
data/events/scripts/player.lua:[email protected]
data/upgrade_system_core.lua:855: attempt to index local 'description' (a nil value)
stack traceback:
        [C]: in function '__index'
        data/upgrade_system_core.lua:855: in function 'onItemUpgradeLook'
        data/events/scripts/player.lua:10: in function <data/events/scripts/player.lua:9>

Player.lua
Code:
function Player:onBrowseField(position)
    if hasEventCallback(EVENT_CALLBACK_ONBROWSEFIELD) then
        return EventCallback(EVENT_CALLBACK_ONBROWSEFIELD, self, position)
    else
        return true
    end
end

function Player:onLook(thing, position, distance)
    local ret = EventCallback(EVENT_CALLBACK_ONLOOK, self, thing, position, distance)
    local description = onItemUpgradeLook(self, thing, position, distance, description)
    self:sendTextMessage(MESSAGE_INFO_DESCR, description)
end

function Player:onLookInBattleList(creature, distance)
    local ret = EventCallback(EVENT_CALLBACK_ONLOOKINBATTLELIST, self, creature, distance)
    self:sendTextMessage(MESSAGE_INFO_DESCR, ret)
end

function Player:onLookInTrade(partner, item, distance)
    local description = "You see " .. item:getDescription(distance)
    local ret = hasEventCallback(EVENT_CALLBACK_ONLOOKINTRADE) and EventCallback(EVENT_CALLBACK_ONLOOKINTRADE, self, partner, item, distance, description) or description
    self:sendTextMessage(MESSAGE_INFO_DESCR, ret)
end

function Player:onLookInShop(itemType, count, description)
    local description = "You see " .. description
    local ret = hasEventCallback(EVENT_CALLBACK_ONLOOKINSHOP) and EventCallback(EVENT_CALLBACK_ONLOOKINSHOP, self, itemType, count, description) or description
    self:sendTextMessage(MESSAGE_INFO_DESCR, ret)
end

function Player:onMoveItem(item, count, fromPosition, toPosition, fromCylinder, toCylinder)
    if hasEventCallback(EVENT_CALLBACK_ONMOVEITEM) then
        return EventCallback(EVENT_CALLBACK_ONMOVEITEM, self, item, count, fromPosition, toPosition, fromCylinder, toCylinder)
    else
        return us_onMoveItem(self, item, fromPosition, toPosition)
    end
end

function Player:onItemMoved(item, count, fromPosition, toPosition, fromCylinder, toCylinder)
    if hasEventCallback(EVENT_CALLBACK_ONITEMMOVED) then
        EventCallback(EVENT_CALLBACK_ONITEMMOVED, self, item, count, fromPosition, toPosition, fromCylinder, toCylinder)
    end
end

function Player:onMoveCreature(creature, fromPosition, toPosition)
    if hasEventCallback(EVENT_CALLBACK_ONMOVECREATURE) then
        return EventCallback(EVENT_CALLBACK_ONMOVECREATURE, self, creature, fromPosition, toPosition)
    else
        return true
    end
end

function Player:onReportRuleViolation(targetName, reportType, reportReason, comment, translation)
    if hasEventCallback(EVENT_CALLBACK_ONREPORTRULEVIOLATION) then
        EventCallback(EVENT_CALLBACK_ONREPORTRULEVIOLATION, self, targetName, reportType, reportReason, comment, translation)
    end
end

function Player:onReportBug(message, position, category)
    if hasEventCallback(EVENT_CALLBACK_ONREPORTBUG) then
        return EventCallback(EVENT_CALLBACK_ONREPORTBUG, self, message, position, category)
    else
        return true
    end
end

function Player:onTurn(direction)
    if hasEventCallback(EVENT_CALLBACK_ONTURN) then
        return EventCallback(EVENT_CALLBACK_ONTURN, self, direction)
    else
        return true
    end
end

function Player:onTradeRequest(target, item)
    if hasEventCallback(EVENT_CALLBACK_ONTRADEREQUEST) then
        return EventCallback(EVENT_CALLBACK_ONTRADEREQUEST, self, target, item)
    else
        return true
    end
end

function Player:onTradeAccept(target, item, targetItem)
    if hasEventCallback(EVENT_CALLBACK_ONTRADEACCEPT) then
        return EventCallback(EVENT_CALLBACK_ONTRADEACCEPT, self, target, item, targetItem)
    else
        return true
    end
end

function Player:onTradeCompleted(target, item, targetItem, isSuccess)
    if hasEventCallback(EVENT_CALLBACK_ONTRADECOMPLETED) then
        EventCallback(EVENT_CALLBACK_ONTRADECOMPLETED, self, target, item, targetItem, isSuccess)
    end
end

local soulCondition = Condition(CONDITION_SOUL, CONDITIONID_DEFAULT)
soulCondition:setTicks(4 * 60 * 1000)
soulCondition:setParameter(CONDITION_PARAM_SOULGAIN, 1)

local function useStamina(player)
    local staminaMinutes = player:getStamina()
    if staminaMinutes == 0 then
        return
    end

    local playerId = player:getId()
    local currentTime = os.time()
    local timePassed = currentTime - nextUseStaminaTime[playerId]
    if timePassed <= 0 then
        return
    end

    if timePassed > 60 then
        if staminaMinutes > 2 then
            staminaMinutes = staminaMinutes - 2
        else
            staminaMinutes = 0
        end
        nextUseStaminaTime[playerId] = currentTime + 120
    else
        staminaMinutes = staminaMinutes - 1
        nextUseStaminaTime[playerId] = currentTime + 60
    end
    player:setStamina(staminaMinutes)
end

function Player:onGainExperience(source, exp, rawExp)
    if not source or source:isPlayer() then
        exp = us_onGainExperience(self, source, exp, rawExp)
        return exp
    end

    -- Soul regeneration
    local vocation = self:getVocation()
    if self:getSoul() < vocation:getMaxSoul() and exp >= self:getLevel() then
        soulCondition:setParameter(CONDITION_PARAM_SOULTICKS, vocation:getSoulGainTicks() * 1000)
        self:addCondition(soulCondition)
    end

    if source:isMonster() then
        local bonusExperience = source:getMonsterLevel() * 0.03
        if source:getMonsterLevel() > 0 and bonusExperience > 1 then
            exp = exp * bonusExperience
        end
    end

    -- Apply experience stage multiplier
    exp = exp * Game.getExperienceStage(self:getLevel())
   
    -- Stamina modifier
    if configManager.getBoolean(configKeys.STAMINA_SYSTEM) then
        useStamina(self)

        local staminaMinutes = self:getStamina()
        if staminaMinutes > 2400 and self:isPremium() then
            exp = exp * 1.5
        elseif staminaMinutes <= 840 then
            exp = exp * 0.5
        end
    end

    return hasEventCallback(EVENT_CALLBACK_ONGAINEXPERIENCE) and EventCallback(EVENT_CALLBACK_ONGAINEXPERIENCE, self, source, exp, rawExp) or exp
end

function Player:onInventoryUpdate(item, slot, equip)
    itemAttributes(self, item, slot, equip)
end

function Player:onLoseExperience(exp)
    return hasEventCallback(EVENT_CALLBACK_ONLOSEEXPERIENCE) and EventCallback(EVENT_CALLBACK_ONLOSEEXPERIENCE, self, exp) or exp
end

function Player:onGainSkillTries(skill, tries)
    if APPLY_SKILL_MULTIPLIER == false then
        return hasEventCallback(EVENT_CALLBACK_ONGAINSKILLTRIES) and EventCallback(EVENT_CALLBACK_ONGAINSKILLTRIES, self, skill, tries) or tries
    end

    if skill == SKILL_MAGLEVEL then
        tries = tries * configManager.getNumber(configKeys.RATE_MAGIC)
        return hasEventCallback(EVENT_CALLBACK_ONGAINSKILLTRIES) and EventCallback(EVENT_CALLBACK_ONGAINSKILLTRIES, self, skill, tries) or tries
    end
    tries = tries * configManager.getNumber(configKeys.RATE_SKILL)
    return hasEventCallback(EVENT_CALLBACK_ONGAINSKILLTRIES) and EventCallback(EVENT_CALLBACK_ONGAINSKILLTRIES, self, skill, tries) or tries
end

function Player:onWrapItem(item)
    local topCylinder = item:getTopParent()
    if not topCylinder then
        return
    end

    local tile = Tile(topCylinder:getPosition())
    if not tile then
        return
    end

    local house = tile:getHouse()
    if not house then
        self:sendCancelMessage("You can only wrap and unwrap this item inside a house.")
        return
    end

    if house ~= self:getHouse() and not string.find(house:getAccessList(SUBOWNER_LIST):lower(), "%f[%a]" .. self:getName():lower() .. "%f[%A]") then
        self:sendCancelMessage("You cannot wrap or unwrap items from a house, which you are only guest to.")
        return
    end

    local wrapId = item:getAttribute("wrapid")
    if wrapId == 0 then
        return
    end

    if not hasEventCallback(EVENT_CALLBACK_ONWRAPITEM) or EventCallback(EVENT_CALLBACK_ONWRAPITEM, self, item) then
        local oldId = item:getId()
        item:remove(1)
        local item = tile:addItem(wrapId)
        if item then
            item:setAttribute("wrapid", oldId)
        end
    end
end

Sorry My bad English, Thanks
 
OP
oen432

oen432

Excellent OT User
Joined
Oct 3, 2014
Messages
1,033
Solutions
38
Reaction score
971
Location
Poland
GitHub
Oen44
Help me plz...
Last tfs update...
On look give this error

Lua:
Lua Script Error: [Event Interface]
data/events/scripts/player.lua:[email protected]
data/upgrade_system_core.lua:855: attempt to index local 'description' (a nil value)
stack traceback:
        [C]: in function '__index'
        data/upgrade_system_core.lua:855: in function 'onItemUpgradeLook'
        data/events/scripts/player.lua:10: in function <data/events/scripts/player.lua:9>

Player.lua
Code:
function Player:onBrowseField(position)
    if hasEventCallback(EVENT_CALLBACK_ONBROWSEFIELD) then
        return EventCallback(EVENT_CALLBACK_ONBROWSEFIELD, self, position)
    else
        return true
    end
end

function Player:onLook(thing, position, distance)
    local ret = EventCallback(EVENT_CALLBACK_ONLOOK, self, thing, position, distance)
    local description = onItemUpgradeLook(self, thing, position, distance, description)
    self:sendTextMessage(MESSAGE_INFO_DESCR, description)
end

function Player:onLookInBattleList(creature, distance)
    local ret = EventCallback(EVENT_CALLBACK_ONLOOKINBATTLELIST, self, creature, distance)
    self:sendTextMessage(MESSAGE_INFO_DESCR, ret)
end

function Player:onLookInTrade(partner, item, distance)
    local description = "You see " .. item:getDescription(distance)
    local ret = hasEventCallback(EVENT_CALLBACK_ONLOOKINTRADE) and EventCallback(EVENT_CALLBACK_ONLOOKINTRADE, self, partner, item, distance, description) or description
    self:sendTextMessage(MESSAGE_INFO_DESCR, ret)
end

function Player:onLookInShop(itemType, count, description)
    local description = "You see " .. description
    local ret = hasEventCallback(EVENT_CALLBACK_ONLOOKINSHOP) and EventCallback(EVENT_CALLBACK_ONLOOKINSHOP, self, itemType, count, description) or description
    self:sendTextMessage(MESSAGE_INFO_DESCR, ret)
end

function Player:onMoveItem(item, count, fromPosition, toPosition, fromCylinder, toCylinder)
    if hasEventCallback(EVENT_CALLBACK_ONMOVEITEM) then
        return EventCallback(EVENT_CALLBACK_ONMOVEITEM, self, item, count, fromPosition, toPosition, fromCylinder, toCylinder)
    else
        return us_onMoveItem(self, item, fromPosition, toPosition)
    end
end

function Player:onItemMoved(item, count, fromPosition, toPosition, fromCylinder, toCylinder)
    if hasEventCallback(EVENT_CALLBACK_ONITEMMOVED) then
        EventCallback(EVENT_CALLBACK_ONITEMMOVED, self, item, count, fromPosition, toPosition, fromCylinder, toCylinder)
    end
end

function Player:onMoveCreature(creature, fromPosition, toPosition)
    if hasEventCallback(EVENT_CALLBACK_ONMOVECREATURE) then
        return EventCallback(EVENT_CALLBACK_ONMOVECREATURE, self, creature, fromPosition, toPosition)
    else
        return true
    end
end

function Player:onReportRuleViolation(targetName, reportType, reportReason, comment, translation)
    if hasEventCallback(EVENT_CALLBACK_ONREPORTRULEVIOLATION) then
        EventCallback(EVENT_CALLBACK_ONREPORTRULEVIOLATION, self, targetName, reportType, reportReason, comment, translation)
    end
end

function Player:onReportBug(message, position, category)
    if hasEventCallback(EVENT_CALLBACK_ONREPORTBUG) then
        return EventCallback(EVENT_CALLBACK_ONREPORTBUG, self, message, position, category)
    else
        return true
    end
end

function Player:onTurn(direction)
    if hasEventCallback(EVENT_CALLBACK_ONTURN) then
        return EventCallback(EVENT_CALLBACK_ONTURN, self, direction)
    else
        return true
    end
end

function Player:onTradeRequest(target, item)
    if hasEventCallback(EVENT_CALLBACK_ONTRADEREQUEST) then
        return EventCallback(EVENT_CALLBACK_ONTRADEREQUEST, self, target, item)
    else
        return true
    end
end

function Player:onTradeAccept(target, item, targetItem)
    if hasEventCallback(EVENT_CALLBACK_ONTRADEACCEPT) then
        return EventCallback(EVENT_CALLBACK_ONTRADEACCEPT, self, target, item, targetItem)
    else
        return true
    end
end

function Player:onTradeCompleted(target, item, targetItem, isSuccess)
    if hasEventCallback(EVENT_CALLBACK_ONTRADECOMPLETED) then
        EventCallback(EVENT_CALLBACK_ONTRADECOMPLETED, self, target, item, targetItem, isSuccess)
    end
end

local soulCondition = Condition(CONDITION_SOUL, CONDITIONID_DEFAULT)
soulCondition:setTicks(4 * 60 * 1000)
soulCondition:setParameter(CONDITION_PARAM_SOULGAIN, 1)

local function useStamina(player)
    local staminaMinutes = player:getStamina()
    if staminaMinutes == 0 then
        return
    end

    local playerId = player:getId()
    local currentTime = os.time()
    local timePassed = currentTime - nextUseStaminaTime[playerId]
    if timePassed <= 0 then
        return
    end

    if timePassed > 60 then
        if staminaMinutes > 2 then
            staminaMinutes = staminaMinutes - 2
        else
            staminaMinutes = 0
        end
        nextUseStaminaTime[playerId] = currentTime + 120
    else
        staminaMinutes = staminaMinutes - 1
        nextUseStaminaTime[playerId] = currentTime + 60
    end
    player:setStamina(staminaMinutes)
end

function Player:onGainExperience(source, exp, rawExp)
    if not source or source:isPlayer() then
        exp = us_onGainExperience(self, source, exp, rawExp)
        return exp
    end

    -- Soul regeneration
    local vocation = self:getVocation()
    if self:getSoul() < vocation:getMaxSoul() and exp >= self:getLevel() then
        soulCondition:setParameter(CONDITION_PARAM_SOULTICKS, vocation:getSoulGainTicks() * 1000)
        self:addCondition(soulCondition)
    end

    if source:isMonster() then
        local bonusExperience = source:getMonsterLevel() * 0.03
        if source:getMonsterLevel() > 0 and bonusExperience > 1 then
            exp = exp * bonusExperience
        end
    end

    -- Apply experience stage multiplier
    exp = exp * Game.getExperienceStage(self:getLevel())
  
    -- Stamina modifier
    if configManager.getBoolean(configKeys.STAMINA_SYSTEM) then
        useStamina(self)

        local staminaMinutes = self:getStamina()
        if staminaMinutes > 2400 and self:isPremium() then
            exp = exp * 1.5
        elseif staminaMinutes <= 840 then
            exp = exp * 0.5
        end
    end

    return hasEventCallback(EVENT_CALLBACK_ONGAINEXPERIENCE) and EventCallback(EVENT_CALLBACK_ONGAINEXPERIENCE, self, source, exp, rawExp) or exp
end

function Player:onInventoryUpdate(item, slot, equip)
    itemAttributes(self, item, slot, equip)
end

function Player:onLoseExperience(exp)
    return hasEventCallback(EVENT_CALLBACK_ONLOSEEXPERIENCE) and EventCallback(EVENT_CALLBACK_ONLOSEEXPERIENCE, self, exp) or exp
end

function Player:onGainSkillTries(skill, tries)
    if APPLY_SKILL_MULTIPLIER == false then
        return hasEventCallback(EVENT_CALLBACK_ONGAINSKILLTRIES) and EventCallback(EVENT_CALLBACK_ONGAINSKILLTRIES, self, skill, tries) or tries
    end

    if skill == SKILL_MAGLEVEL then
        tries = tries * configManager.getNumber(configKeys.RATE_MAGIC)
        return hasEventCallback(EVENT_CALLBACK_ONGAINSKILLTRIES) and EventCallback(EVENT_CALLBACK_ONGAINSKILLTRIES, self, skill, tries) or tries
    end
    tries = tries * configManager.getNumber(configKeys.RATE_SKILL)
    return hasEventCallback(EVENT_CALLBACK_ONGAINSKILLTRIES) and EventCallback(EVENT_CALLBACK_ONGAINSKILLTRIES, self, skill, tries) or tries
end

function Player:onWrapItem(item)
    local topCylinder = item:getTopParent()
    if not topCylinder then
        return
    end

    local tile = Tile(topCylinder:getPosition())
    if not tile then
        return
    end

    local house = tile:getHouse()
    if not house then
        self:sendCancelMessage("You can only wrap and unwrap this item inside a house.")
        return
    end

    if house ~= self:getHouse() and not string.find(house:getAccessList(SUBOWNER_LIST):lower(), "%f[%a]" .. self:getName():lower() .. "%f[%A]") then
        self:sendCancelMessage("You cannot wrap or unwrap items from a house, which you are only guest to.")
        return
    end

    local wrapId = item:getAttribute("wrapid")
    if wrapId == 0 then
        return
    end

    if not hasEventCallback(EVENT_CALLBACK_ONWRAPITEM) or EventCallback(EVENT_CALLBACK_ONWRAPITEM, self, item) then
        local oldId = item:getId()
        item:remove(1)
        local item = tile:addItem(wrapId)
        if item then
            item:setAttribute("wrapid", oldId)
        end
    end
end

Sorry My bad English, Thanks
Lua:
function Player:onLook(thing, position, distance)
    local ret = EventCallback(EVENT_CALLBACK_ONLOOK, self, thing, position, distance)
    ret = onItemUpgradeLook(self, thing, position, distance, ret)
    self:sendTextMessage(MESSAGE_INFO_DESCR, ret)
end
 

SorketROrk

New Member
Joined
Oct 14, 2020
Messages
10
Reaction score
3
Hey,

Could you explain in detail how you would add the item:setItemLevel(item_level, true) to a chest reward?
I couldn't get it to work? It appears as lvl 0.

I would like to give players reward from quest with these awesome upgrades on the items :)

/SRO
 
OP
oen432

oen432

Excellent OT User
Joined
Oct 3, 2014
Messages
1,033
Solutions
38
Reaction score
971
Location
Poland
GitHub
Oen44
Hey,

Could you explain in detail how you would add the item:setItemLevel(item_level, true) to a chest reward?
I couldn't get it to work? It appears as lvl 0.

I would like to give players reward from quest with these awesome upgrades on the items :)

/SRO
Lua:
local item = Game.createItem(itemId, count)
if item then
  item:setItemLevel(chest.itemLevel, true) -- you should have table with rewards for each chest, add itemLevel and use it in code
  player:addItemEx(item)
end
 

SorketROrk

New Member
Joined
Oct 14, 2020
Messages
10
Reaction score
3
Lua:
local item = Game.createItem(itemId, count)
if item then
  item:setItemLevel(chest.itemLevel, true) -- you should have table with rewards for each chest, add itemLevel and use it in code
  player:addItemEx(item)
end
Hey,

Im having a hard time understanding how to apply that into this script:

Lua:
function onUse(cid, item, frompos, item2, topos)


    if item.itemid == 1740 then
          queststatus = getPlayerStorageValue(cid, 9070)


          if queststatus == -1 then
                     setPlayerStorageValue(cid, 9070, 1)
            doPlayerAddItem(cid, 2495, 1)
            doPlayerSendTextMessage(cid,22,"You have found Demon Legs.")
        else
                doPlayerSendTextMessage(cid, 22, "it is empty.")
        end
     end


       return 1


end

Would you mind helping me understand?
Sorry if noob but i have been away from ots/tibia for over 10 years, just need to get back into it..

I would like for the player to recieve demon legs from a chest but they appear lvl 0, how would you implement success? :D

/SRO
 
OP
oen432

oen432

Excellent OT User
Joined
Oct 3, 2014
Messages
1,033
Solutions
38
Reaction score
971
Location
Poland
GitHub
Oen44
Hey,

Im having a hard time understanding how to apply that into this script:

Lua:
function onUse(cid, item, frompos, item2, topos)


    if item.itemid == 1740 then
          queststatus = getPlayerStorageValue(cid, 9070)


          if queststatus == -1 then
                     setPlayerStorageValue(cid, 9070, 1)
            doPlayerAddItem(cid, 2495, 1)
            doPlayerSendTextMessage(cid,22,"You have found Demon Legs.")
        else
                doPlayerSendTextMessage(cid, 22, "it is empty.")
        end
     end


       return 1


end

Would you mind helping me understand?
Sorry if noob but i have been away from ots/tibia for over 10 years, just need to get back into it..

I would like for the player to recieve demon legs from a chest but they appear lvl 0, how would you implement success? :D

/SRO
Create new thread, this is not the place to ask for code. Requests (https://otland.net/forums/requests.132/)
 

macacaue

New Member
Joined
Mar 22, 2012
Messages
5
Reaction score
0
Lua:
função Jogador:onLook(coisa, posição, distância)
ret local = EventCallback (EVENT_CALLBACK_ONLOOK, self, coisa, posição, distância)
ret = onItemUpgradeLook (self, coisa, posição, distância, ret)
    self:sendTextMessage(MESSAGE_INFO_DESCR, ret)
fim[/CÓDIGO]
[/QUOTE]
Thanks.
Its Works 100%
Only last tfs update :)
 

Sopago

Member
Joined
Dec 15, 2020
Messages
19
Reaction score
6
GitHub
Sopago
Create new thread, this is not the place to ask for code. Requests (https://otland.net/forums/requests.132/)
Hey, i have implemented your system but when im using Upgrade Crystal on the item i created as GameMaster its defensive value goes to 0 , is this the expected outcome?

EDIT : also using it on the looted item and upon first upgrade the item armor/attack decreases to 0 + what the crystal buffed it for.


Im using tfs 1.3 . Got no errors in the console.
 
Last edited:

ScorpionOT

uber n00b
Joined
Mar 28, 2015
Messages
358
Solutions
6
Reaction score
104
Before you ask questions: make sure you install it properly, Oen44 has stated it before and most of the bugs I see in this thread are because of a faulty installation. Install everything again if you have to, you lazy f*ckers, be grateful he released this system for free and instead of making him work harder to ALSO HAVE to fix your issues because you couldn't follow simple steps, try reading the tutorial better and fixing it you too.
 

Sopago

Member
Joined
Dec 15, 2020
Messages
19
Reaction score
6
GitHub
Sopago
Before you ask questions: make sure you install it properly, Oen44 has stated it before and most of the bugs I see in this thread are because of a faulty installation. Install everything again if you have to, you lazy f*ckers, be grateful he released this system for free and instead of making him work harder to ALSO HAVE to fix your issues because you couldn't follow simple steps, try reading the tutorial better and fixing it you too.
I assume its aimed towards me? i have spent like 4h trying to run it , i have tried twice running the whole tutorial , but its not working, i really appreciate the work , the amount of work surely has been high. I will run it again for the third time soon and see if that fix anything for me.
 
OP
oen432

oen432

Excellent OT User
Joined
Oct 3, 2014
Messages
1,033
Solutions
38
Reaction score
971
Location
Poland
GitHub
Oen44

ScorpionOT

uber n00b
Joined
Mar 28, 2015
Messages
358
Solutions
6
Reaction score
104
I assume its aimed towards me? i have spent like 4h trying to run it , i have tried twice running the whole tutorial , but its not working, i really appreciate the work , the amount of work surely has been high. I will run it again for the third time soon and see if that fix anything for me.
No lol we're here to help, I'd be glad to help out, but sometimes it's like customer suppotr "sir have you tried turning it off and on?"
 
Top