runsicky
Member
- Joined
- Apr 19, 2018
- Messages
- 80
- Reaction score
- 12
Like lot other ppl i love this new imbuements from new tibia, but i also like i lot ppl, i love the 8.6
Here on forum i discovery it would be able to get all together (thank you xikini): the imbuements system on a 8.6 server
I have something working, but there are two problems
1) How to convert that time 1565493648 to a something usefull to the users like that has imbuements for 239 minutes left.
2) There is a bug, if i relog with a enchanted boots, with more 500 speed
And remove the boots, the character speed just bug
How to fix it?
Scripts so far:
movemments
npc
Here on forum i discovery it would be able to get all together (thank you xikini): the imbuements system on a 8.6 server
I have something working, but there are two problems
1) How to convert that time 1565493648 to a something usefull to the users like that has imbuements for 239 minutes left.
Code:
04:20 You see steel boots (Arm:5). It can only be wielded properly by knights. It weighs 29.00 oz.
It can only be wielded properly by knights.
It weighs 29.00 oz.
swiftness,1565493648
Code:
04:22 You see a pair of soft boots (Arm:1) that has energy for 239 minutes left.
2) There is a bug, if i relog with a enchanted boots, with more 500 speed
And remove the boots, the character speed just bug
How to fix it?
Scripts so far:
movemments
Code:
-- credits @Xikini / @StreamSide
local feet_IB_storage = 700
local legs_IB_storage = 701
local armour_IB_storage = 702
local head_IB_storage = 703
local boots_IB_storage = 704
local atkweapon_IB_storage = 705
local defweapon_IB_storage = 706
function onEquip(cid, item, slot)
print("player equip an item")
local ibID = getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid
local itemString = getItemSpecialDescription(item.uid)
local one, two = itemString:match("([^,]+),([^,]+)")
print(one)
print(two)
-- bonus speed
if one == "swiftness" and two + 0 > os.time() then
if getPlayerStorageValue(cid, feet_IB_storage) < 1 then
doChangeSpeed(cid, getCreatureSpeed(cid) + 500)
setPlayerStorageValue(cid, feet_IB_storage, 1)
print("ENCHANTED ITEM EQUIPED")
end
--elseif others
end
return true
end
function onDeEquip(cid, item, slot)
if slot == CONST_SLOT_FEET then
if getPlayerStorageValue(cid, feet_IB_storage) > 0 then
doChangeSpeed(cid, getCreatureSpeed(cid) - 500)
print("ENCHANTED ITEM UNEQUIPED")
end
end
return true
end
npc
Code:
--[[
CONST_SLOT_FIRST = 1
CONST_SLOT_HEAD = CONST_SLOT_FIRST
CONST_SLOT_NECKLACE = 2
CONST_SLOT_BACKPACK = 3
CONST_SLOT_ARMOR = 4
CONST_SLOT_RIGHT = 5
CONST_SLOT_LEFT = 6
CONST_SLOT_LEGS = 7
CONST_SLOT_FEET = 8
CONST_SLOT_RING = 9
CONST_SLOT_AMMO = 10
CONST_SLOT_LAST = CONST_SLOT_AMMO
]]
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local Topic, Description = {}, {}
local thinkMsg = {
"I can personalise your items, come to me!",
"Want to upgrade your items temporarily? Come to me!"
}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function greetCallback(cid)
Topic[cid], Description[cid] = 1, nil
return true
end
function creatureSayCallback(cid, type, msg)
if not npcHandler:isFocused(cid) then
return false
elseif (Topic[cid] == 1) and (msgcontains(msg, 'yes') or msgcontains(msg, 'imbuement') or msgcontains(msg, 'imbuements')) then
npcHandler:say('Choose the imbuements type: {swiftness}', cid)
Topic[cid] = 2
elseif Topic[cid] == 2 and msgcontains(msg, 'swiftness') then
npcHandler:say('What kinda of weapon you want to upgrade? {boots}', cid)
Topic[cid] = 17
-- swiftness
elseif Topic[cid] == 17 and msgcontains(msg, 'boots') then
local ib_UID = getPlayerSlotItem(cid, CONST_SLOT_FEET).uid
-- HOW TO CHECK IF PLAYER IS USING A BOOTS?
local recipient_itemid = 11219 -- compasses
local recipient_neededammount = 25
if(getPlayerItemCount(cid, recipient_itemid) >= recipient_neededammount) then
doPlayerRemoveItem(cid,recipient_itemid,recipient_neededammount)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_RED)
npcHandler:say('Here you are. May I help you with something else? ', cid)
local hours = 60 * 60
local time = 20 * hours
doSetItemSpecialDescription(ib_UID, "swiftness," .. (os.time() + time) .. "")
Topic[cid] = 1
else
npcHandler:say('You do not have the recipients enoght to make the Imbuement! May I help you with something else?', cid)
Topic[cid] = 1
end
end
return true
end
npcHandler:setMessage(MESSAGE_FAREWELL, 'I hope you made the right choice, have a wonderful day.')
npcHandler:setMessage(MESSAGE_WALKAWAY, 'Okay well, I guess you don\'t care if someone steals your stuff... You will have no idea if it\'s yours...')
npcHandler:setMessage(MESSAGE_GREET, 'Hello, |PLAYERNAME|! I am a brander. I can personalize any of your items for a price, would you like to continue to the next step?')
npcHandler:setCallback(CALLBACK_ONTHINK, thinkCallback)
npcHandler:setCallback(CALLBACK_GREET, greetCallback)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())