• 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!
  • New resources must be posted under Resources tab. A discussion thread will be created automatically, you can't open threads manually anymore.

Blessed Woden Stake and Obsidian Knife [ TFS 1.O ] 100% Real Tibia

Mikii

Active Member
Joined
Mar 28, 2013
Messages
197
Reaction score
46
Last Version update.
Added userdata function and clean code. By Mikii.



Blessed Woden Stake
tools/blessed wooden atake.lua
PHP:
local skinning = {
  {monster = "Vampire",  corpse = 2956,  after = 2957,  skin = 5905, chance = 20 },
  {monster = "Vampire Viscount",  corpse = 21275, after = 21276,  skin = 5905, chance = 20 },
  {monster = "Vampire Bride",  corpse = 9654,  after = 9658,  skin = 5905, chance = 20 },
  {monster = "Vampire Lords",  corpse = 8938,  after = 8939,  skin = 5905, chance = 20 },
  {monster = "Demons",  corpse = 2916,  after = 2917,  skin = 5906, chance = 20 }
           }

function onUse(cid, item, fromPosition, itemEx, toPosition)
  for _, v in pairs(skinning) do
  if v.corpse == itemEx.itemid then
      local iEx = Item(itemEx.uid)
  if (math.random(1, 100) <= v.chance) then
  iEx:transform(v.after)
  toPosition:sendMagicEffect(CONST_ME_MAGIC_GREEN)
  Player(cid):addItem(v.skin, 1, true)
  else
  toPosition:sendMagicEffect(CONST_ME_BLOCKHIT)
  iEx:transform(v.after)
  end
  break
  end
  end

  return true
end


action.xml
PHP:
    <action itemid="5942" script="tools/blessed wooden atake.lua" />
 
Last edited:
Obsidian Knife.
tools/obsisian knife.lua

PHP:
function onUse(cid, item, fromPosition, itemEx, toPosition)
   local player = Player(cid)
   
   local skinning =    {
               {monster = "Killer Camain",        corpse = 11431, after = 11432,    skin = 11429,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Dragon",            corpse = 3104,    after = 3105,    skin = 5877,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Dragon Lord",          corpse = 2881,   after = 2882,    skin = 5948,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},             
               {monster = "Bonebeast",          corpse = 3031,   after = 3032,    skin = 5925,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Behemoth",            corpse = 2931,   after = 2932,    skin = 5893,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Lizard Sentinel",        corpse = 4259,   after = 4260,    skin = 5876,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Lizard Templar",        corpse = 4256,    after = 4257,    skin = 5876,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},   
               {monster = "Lizard Snakecharmer",      corpse = 4262,   after = 4263,    skin = 5876,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Lizard Dragon Priest",      corpse = 11277,   after = 11278,    skin = 5876,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Lizard High Guard",      corpse = 11269,   after = 11270,    skin = 5876,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},             
               {monster = "Lizard Legionnaire",      corpse = 11273,   after = 11274,    skin = 5876,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Lizard Zaogun",        corpse = 11281,   after = 11282,    skin = 5876,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},           
               {monster = "Minotaur",            corpse = 3090,   after = 3091,    skin = 5878,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Minotaur Archer",        corpse = 2871,   after = 2872,    skin = 5878,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Minotaur Mage",        corpse = 2866,   after = 2867,    skin = 5878,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Minotaur Guard",        corpse = 2876,   after = 2877,    skin = 5878,    chance = 20,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Lord of Elements",        corpse = 9010,   after = false,    skin = 8310,    chance = 100,    storage = 10001, special = false, WaitTime = false, achievement = false},
               {monster = "The Mutated Pumpkin",      corpse = 8961,   after = false,    skin = false,    chance = 100,    storage = 23000, special = true,  WaitTime = 3600,  achievement = false},
               {monster = "Pupikin",            corpse = 2683,   after =  2096,    skin = false,    chance = 100,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Ice Cube Stage 1",        corpse = 7441,   after =  7442,    skin = false,    chance =  70,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Ice Cube Stage 2",        corpse = 7442,   after =  7444,    skin = false,    chance =  60,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Ice Cube Stage 3",        corpse = 7444,   after =  7445,    skin = false,    chance =  40,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Ice Cube Last Stage",      corpse = 7445,   after =  7446,    skin = false,    chance =  30,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Marble Rock Stage 1",      corpse = 11343,   after =  11344,   skin = false,    chance =  70,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Marble Rock Stage 2",     corpse = 11344,   after =  11345,   skin = false,    chance =  40,    storage = false, special = false, WaitTime = false, achievement = false},
               {monster = "Marble Rock Last Stage",   corpse = 11345,   after =  11346,   skin = false,    chance =  30,    storage = false, special = false, WaitTime = false, achievement = false},
   
   
             }
   local especial =    {   
   
               ["The Mutated Pumpkin"] = {
                           {itemname = "Spiderwebs",          itemid = 8860, Count = 1},
                           {itemname = "Pumpkin",            itemid = 2683, Count = 1},
                           {itemname = "50 Candy Canes",        itemid = 2688, Count = 50},
                           {itemname = "Surprise Bag",        itemid = 6571, Count = 1},
                           {itemname = "Bat Decoration",        itemid = 6492, Count = 1},
                           {itemname = "Bar of Chocolate",      itemid = 6574, Count = 1},
                           {itemname = "Skeleton Decoration",      itemid = 6526, Count = 1},
                           {itemname = "Pumpkinhead",          itemid = 2096, Count = 1},
                           {itemname = "20 Yummy Gummy Worms",    itemid = 9005, Count = 20},
                           {itemname = "Surprise Bag",        itemid = 6570, Count = 1},                         
                           {itemname = "Toy Spider",          itemid = 9006, Count = 1},   
   
                             },
             }

             
             
             
       for k, v in pairs(skinning) do   
         if (v.corpse == itemEx.itemid) then
         local iEx = Item(itemEx.uid)
           if (v.skin ~= false) and (v.special == false) then
             if v.after ~= false then
               iEx:transform(v.after)
             else
               if (v.storage ~= false) then
                 if player:getStorageValue(v.storage) == 1 then
                   return false
                 end                 
                 player:setStorageValue(v.storage, 1)
               end   
             end
               
             if math.random(1, 100) <= v.chance then
               toPosition:sendMagicEffect(CONST_ME_MAGIC_GREEN)
               player:addItem(v.skin, 1, true)   
             else
               toPosition:sendMagicEffect(CONST_ME_BLOCKHIT)
             end   
           elseif ((v.skin == false) and (v.special == false) and (v.after ~= false)) then
             
             if math.random(1, 100) <= v.chance then
               iEx:transform(v.after)
               toPosition:sendMagicEffect(CONST_ME_MAGIC_GREEN)
             else
               toPosition:sendMagicEffect(CONST_ME_BLOCKHIT)
               iEx:remove(1, true)
             end       
           elseif ((v.skin == false) and (v.special == true)) then   
             for id, value in pairs(especial) do
               if tostring(id):lower() == tostring(v.monster):lower() then
                 if (player:getStorageValue(v.storage) - os.time() <= 0) then
                   local time = os.time() + ( v.WaitTime )
                   player:setStorageValue(v.storage, time)   
                     local rewards = {}
                       rewards.id = id
                         for inf, it in pairs(value) do
                           rewards[inf] = it
                         end   
                       local RandomItem = rewards[math.random(1, #rewards)]     
         
                       player:addItem(RandomItem.itemid, RandomItem.Count, true)   
                       player:say("You found a " .. RandomItem.itemname .. ".", TALKTYPE_ORANGE_1)                   
                 else
                   player:say("You already used your knife on the corpse.", TALKTYPE_ORANGE_1)
                   return false
                 end                
               end
             end

           end
           break
       end
     end

   return true
end

action.xml
PHP:
<action itemid="5908"  script="tools/obsidian knife.lua" />
 
Last edited:
UPDATED FOR USERDATA FUNCTIONS.. ALL SCRIPT BY MIKKI.
BUGS REPORT...
 
Last edited:
Perfect, looks great as well.
Added em both to my TFS 1.0 server and will for for use it for all, thank you.

May I ask what you mean by the third and last post? Where should I add:
for k, v in pairs(SKINNING.CORPSES) do ?

Kind Regards,
Eldin.
 
Has been added, this running smoothly, but it will be resubmitted USERDATA current standards, today.

Perfect, looks great as well.
Added em both to my TFS 1.0 server and will for for use it for all, thank you.

May I ask what you mean by the third and last post? Where should I add:
for k, v in pairs(SKINNING.CORPSES) do ?

Kind Regards,
Eldin.

Edit: UPDATED LAST VERSION
 
Last edited:
So I'm honestly not sure what version I'm using, 9.6 TFS, didn't work for me.
 
So I'm honestly not sure what version I'm using, 9.6 TFS, didn't work for me.
it is for TFS 1.0 which I suppose is not your case, so you are most likely using 0.3.7 and it already comes with those scripts by default at action folder
 
it is for TFS 1.0 which I suppose is not your case, so you are most likely using 0.3.7 and it already comes with those scripts by default at action folder
I don't believe it's that version.. no script. This is my console error..

Lua Script Error: [Action Interface]
data/actions/scripts/tools/blessed wooden stake.lua:eek:nUse
data/actions/scripts/tools/blessed wooden stake.lua:12: attempt to cal global 'Item' (a nil value)
stack traceback:
[C]: in function 'Item'
data/actions/scripts/tools.blessed wooden stake.lua:12: in function <data/actions/scripts/tools.blessed wooden stake.lua:9>


Does this help any?
 
Back
Top