Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Opa , gostaria de poder editar as % do (System Slot feito pelo Mock)
foi postar aki como esta

isso e oq esta dentro do DATA/CREATURESCRIPT/SCRIPT

 ---Script by mock the bear!
local conditionMP,conditionHP,conditionML,conditionCLUB,conditionSHI,conditionDIST,conditionAMP = {},{},{},{},{},{},{}
for i=1,100 do ---Carrega as conditions
   --- HP
   conditionHP = createConditionObject(CONDITION_ATTRIBUTES)
   setConditionParam(conditionHP, CONDITION_PARAM_TICKS, -1)
   setConditionParam(conditionHP, CONDITION_PARAM_STAT_MAXHEALTHPERCENT, 100+i)
   setConditionParam(conditionHP, CONDITION_PARAM_BUFF, true)
   setConditionParam(conditionHP, CONDITION_PARAM_SUBID, 50)
   --MANA
   conditionMP = createConditionObject(CONDITION_ATTRIBUTES)
   setConditionParam(conditionMP, CONDITION_PARAM_TICKS, -1)
   setConditionParam(conditionMP, CONDITION_PARAM_STAT_MAXMANAPERCENT, 100+i)
   setConditionParam(conditionMP, CONDITION_PARAM_BUFF, true)
   setConditionParam(conditionMP, CONDITION_PARAM_SUBID, 51)
   --Magic level
   conditionML = createConditionObject(CONDITION_ATTRIBUTES)
   setConditionParam(conditionML, CONDITION_PARAM_TICKS, -1)
   setConditionParam(conditionML, CONDITION_PARAM_STAT_MAGICLEVELPERCENT, 100+i)
   setConditionParam(conditionML, CONDITION_PARAM_BUFF, true)
   setConditionParam(conditionML, CONDITION_PARAM_SUBID, 52)
   --club axe sword
   conditionCLUB = createConditionObject(CONDITION_ATTRIBUTES)
   setConditionParam(conditionCLUB, CONDITION_PARAM_TICKS, -1)
   setConditionParam(conditionCLUB, CONDITION_PARAM_SKILL_CLUBPERCENT, 100+i)
   setConditionParam(conditionCLUB, CONDITION_PARAM_SKILL_SWORDPERCENT, 100+i)
   setConditionParam(conditionCLUB, CONDITION_PARAM_SKILL_AXEPERCENT, 100+i)
   setConditionParam(conditionCLUB, CONDITION_PARAM_BUFF, true)
   setConditionParam(conditionCLUB, CONDITION_PARAM_SUBID, 53)
   --- shield
   conditionSHI = createConditionObject(CONDITION_ATTRIBUTES)
   setConditionParam(conditionSHI, CONDITION_PARAM_TICKS, -1)
   setConditionParam(conditionSHI, CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+i)
   setConditionParam(conditionSHI, CONDITION_PARAM_BUFF, true)
   setConditionParam(conditionSHI, CONDITION_PARAM_SUBID, 54)
   --- dist
   conditionDIST = createConditionObject(CONDITION_ATTRIBUTES)
   setConditionParam(conditionDIST, CONDITION_PARAM_TICKS, -1)
   setConditionParam(conditionDIST, CONDITION_PARAM_SKILL_DISTANCEPERCENT, 100+i)
   setConditionParam(conditionDIST, CONDITION_PARAM_BUFF, true)
   setConditionParam(conditionDIST, CONDITION_PARAM_SUBID, 55)
end
function getSlotType(n) --By mock the bear
   if not n then
      return false
   end
   if n:match('%[(.+)%]') then
      n = n:match('%[(.+)%]')
      if n == '?' then
         return 0,n
      else
         return n:match('(.-)%.([+-])(%d+)%%')
      end
   else
      return false
   end
 
end
local function loadSet(cid)
   local t = {}
   for slot=1,9 do
      t[slot] = ''
 
      local s = getPlayerSlotItem(cid,slot).uid
      if s ~= 0 then
         t[slot] = getItemName(s)
      end
   end
   return t
end
function isInArray2(arr,var) -- Because in some servers it return 1 and 0 and others true and false
   for i,b in pairs(arr) do
      if var == b then
         return true
      end
   end
   return false
end
function check2(cid,i)
   if i == 5 or i == 6 then
      if isInArray({'head','necklace','backpack','body','legs','feet','ring'},getItemValue(getPlayerSlotItem(cid,i).itemid,'slotType') or '') then
         return false
      end
   end
   return true
end
function chk(cid,f)
   if not isPlayer(cid) then return end
   local t = loadSet(cid)
   for i=1,#f do
      if f ~= t then
         equip(cid,nil,slot)
         break
      end
   end
   addEvent(chk,2000,cid,t)
end
items = { ---- Only to get attr: slotType because getItemName dont return it -.-'
   _VERSION='1.0 By mock',
   XML_DIR='data/items/items.xml',
   }
do
   local ia = os.clock()
   io.write('Loading items')
   local i = io.open(items.XML_DIR,'r')
   local u = i:read(-1)
   i:close()
   local u = u:match('<items>(.+)</items>')
   for mi,id,mid,name,data,me in u:gmatch('<(%a-)%s*id%s*=%s*"(%d+)"%s*(.-)%s*name%s*=%s*"(.-)"%s*>(.-)</(%a*)>') do
      if mi == 'item' and me == 'item' then
         local td = {name=name,id=id,type=1}
         for key,value in data:gmatch('<attribute key="(.-)" value="(.-)"/>') do
            td[key] = value
         end
         for key,value in mid:gmatch('(.-)="(.-)"') do
            td[key] = value
         end
         items[tonumber(id)] = td
 
         items[name] = td
      end
   end
   for mi,id,mid,name,data in u:gmatch('<(%a-)%s*id%s*=%s*"(%d*)"%s*(.-)%s*name%s*=%s*"(%a+)"%s*/>') do
      if mi == 'item' then
         local td = {name=name,id=id,type=2}
         for key,value in mid:gmatch('(.-)="(.-)"') do
            td[key] = value
         end
         items[tonumber(id)] = td
         items[name] = td
      end
   end
   io.write('[done '..os.clock()-ia..']\n')
end
function getItemValue(item,value)
   return items[item] and items[item][value]
end
function equip(cid,item,slot) --By mock the bear
   local HP = getCreatureHealth(cid)
   local MP = getCreatureMana(cid)
   local t = {}
   if item then
      local mm,sinal,qto = getSlotType(getItemName(item.uid))
      t[mm] = tonumber(qto)
   end
   for i=1,9 do -- Not on slot 10 > arrow
      if i ~= slot then
         if getPlayerSlotItem(cid,i).itemid ~= 0 then
            local aab = getPlayerSlotItem(cid,i).uid
            if aab and check2(cid,i) then
               for _ in getItemName(aab):gmatch('(%[.-%])') do
                  local mm,sinal,qto2 = getSlotType(_)
                  if mm then
                     if not t[mm] then
                        t[mm] = 0
                     end
                     t[mm] = t[mm]+tonumber(qto2)
 
                     t[mm] = t[mm] > 100 and 100 or t[mm]
                  end
               end
            end
         end
      end
   end
   local fu = 0
   local ca = {}
   local s = ''
   for sl,n in pairs(t) do
      fu = fu+1
      s = s..''..n..'% more of '..sl..'\n'
      if sl == 'hp' then
         doAddCondition(cid,conditionHP[tonumber(n)])
         doCreatureAddHealth(cid,HP-getCreatureHealth(cid))
         ca[50] = 1
         doPlayerSendTutorial(cid,19)
      elseif sl == 'mp' then
         doAddCondition(cid,conditionMP[tonumber(n)])
         doCreatureAddMana(cid,HP-getCreatureMana(cid))
         ca[51] = 1
         doPlayerSendTutorial(cid,19)
      elseif sl == 'ml' then
         doAddCondition(cid,conditionML[tonumber(n)])
         ca[52] = 1
      elseif sl == 'cas' then
         doAddCondition(cid,conditionCLUB[tonumber(n)])
         ca[53] = 1
      elseif sl == 'shield' then
         doAddCondition(cid,conditionSHI[tonumber(n)])
         ca[54] = 1
      elseif sl == 'dist' then
         doAddCondition(cid,conditionDIST[tonumber(n)])
         ca[55] = 1
      end
   end
   if fu > 0 then
      addEvent(doPlayerSendTextMessage,100,cid,24,'You have:\n'..s)
      for i=50,55 do
         if not ca then
            doRemoveCondition(cid,CONDITION_ATTRIBUTES,i)
         end
      end
   else
      for i=50,55 do
         doRemoveCondition(cid,CONDITION_ATTRIBUTES,i)
      end
   end
   return true
end
function onLogin(cid) ---Script by mock the bear!
        equip(cid,nil,slot)
        addEvent(chk,2000,cid,loadSet(cid)) -- Here we check!
        return TRUE
end



e isso e o q esta no DATA/ACTION/SCRIPT



--[[
Slot system 100% by mock \o
]]
---Config
local conf = {
maxSlotCount=1,
ignoredIds={}
}
--End
function choose(...) --- Function by mock.
   local arg = {...}
   return arg[math.random(1,#arg)]
end
if not getItemAttack then
   function getItemAttack(uid)
      return getItemAttribute(uid,'attack')
   end
   function getItemDefense(uid)
      return getItemAttribute(uid,'defense')
   end
end
local function isArmor(uid) -- Function by Mock the bear.
    if (getItemInfo(uid.itemid).armor ~= 0) and (getItemWeaponType(uid.uid) == 0) then
      return true
   end
   return false
end
local function isWeapon(uid) -- Function by Mock the bear.
   uid = uid or 0
   local f = getItemWeaponType(uid)
   if f == 1 or f == 2 or f == 3 then
      return true
   end
   return false
end
local function isShield(uid) -- Function by Mock the bear.
   uid = uid or 0
   if getItemWeaponType(uid) == 4 then
      return true
   end
   return false
end
local function isBow(uid) -- Function by Mock the bear.
   uid = uid or 0
   if getItemWeaponType(uid) == 5 and not isItemStackable(uid) then
      return true
   end
   return false
end
function onUse(cid, item, fromPosition, itemEx, toPosition) -- Script by mock the bear (MTB)
   if item.uid == 0 or item.itemid == 0 then return false end
   toPosition.stackpos = 255
   if item.uid == 0 or item.itemid == 0 then return false end
   toPosition.stackpos = 255
    if isInArray(conf.ignoredIds, itemEx.itemid)
        or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
        or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
        or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
        return TRUE
    end
    if isCreature(itemEx.uid) then
        return FALSE
    end
   local nam = getItemName(itemEx.uid)
   function getper()
      local n = 1
      for i=1,10 do
         n = n+math.random(0,10)
         if n < 8*i then
            break
         end
      end
      return n
   end
   function getSlotCount(nam)
      local c = 0
      for _ in nam:gmatch('%[(.-)%]') do
         c = c+1
      end
      return c
   end
   if getSlotCount(nam) < conf.maxSlotCount then
      local l = choose('hp','mp','ml','cas','shield','dist')
      local p = getper()
 
      doSendMagicEffect(toPosition,30)
      nam = nam..' ['..l..'.+'..p..'%]'
      doSendAnimatedText(toPosition,l..' '..p..'%',120)
      doItemSetAttribute(itemEx.uid,'name',nam)
      doRemoveItem(item.uid,1)
   else
      doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
   end
   return true
end
 

Link para o post
Compartilhar em outros sites

A função que calcula a % aleatória que será adicionada é essa:

function getper()
      local n = 1
      for i=1,10 do
         n = n+math.random(0,10)
         if n < 8*i then
            break
         end
      end
      return n
   end

Caso queira adicionar uma % fixa e se você não sabe modificar o script, de uma forma mais simples para você, altere para:

function getper()
      return 1
end

Onde 1 é a % adicionada. 

 

 

Contato:

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo