Ir para conteúdo
  • Cadastre-se

Derivado tfs 1.2 creaturescripts como separar conditions por voc


Posts Recomendados

queria ajuda com esse script para separar algumas conditions por vocaçao tipo na conditionML so funciona-se com druids e sorc e na conditionMELEE so funciona-se com paladin e knights

local conditionSUP,conditionML,conditionMELEE,conditionSPEED,conditionWARLOCK,conditionAMP = {},{},{},{},{},{}
for i=1,300 do
  conditionSUP[i] = createConditionObject(CONDITION_ATTRIBUTES)
  setConditionParam(conditionSUP[i], CONDITION_PARAM_SUBID, 50)
  setConditionParam(conditionSUP[i], CONDITION_PARAM_TICKS, -1)
  setConditionParam(conditionSUP[i], CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+i)
  setConditionParam(conditionSUP[i], CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 100+i)

  conditionML[i] = createConditionObject(CONDITION_ATTRIBUTES)
  setConditionParam(conditionML[i], CONDITION_PARAM_SUBID, 51)
  setConditionParam(conditionML[i], CONDITION_PARAM_TICKS, -1)
  setConditionParam(conditionML[i], CONDITION_PARAM_STAT_MAGICPOINTS, i)
  setConditionParam(conditionML[i], CONDITION_PARAM_SKILL_SHIELD, i)

  conditionMELEE[i] = createConditionObject(CONDITION_ATTRIBUTES)
  setConditionParam(conditionMELEE[i], CONDITION_PARAM_SUBID, 52)
  setConditionParam(conditionMELEE[i], CONDITION_PARAM_TICKS, -1)
  setConditionParam(conditionMELEE[i], CONDITION_PARAM_SKILL_MELEE, i)
  setConditionParam(conditionMELEE[i], CONDITION_PARAM_SKILL_SHIELD, i)
  setConditionParam(conditionMELEE[i], CONDITION_PARAM_SKILL_DISTANCE, i)
  
  conditionSPEED[i] = createConditionObject(CONDITION_HASTE)
  setConditionParam(conditionSPEED[i], CONDITION_PARAM_SUBID, 53)
  setConditionParam(conditionSPEED[i], CONDITION_PARAM_TICKS, -1)
  setConditionParam(conditionSPEED[i], CONDITION_PARAM_SPEED, 50+i)
  
  conditionWARLOCK[i] = createConditionObject(CONDITION_REGENERATION)
  setConditionParam(conditionWARLOCK[i], CONDITION_PARAM_SUBID, 54) 
  setConditionParam(conditionWARLOCK[i], CONDITION_PARAM_TICKS, -1)
  setConditionParam(conditionWARLOCK[i], CONDITION_PARAM_HEALTHGAIN, i)
  setConditionParam(conditionWARLOCK[i], CONDITION_PARAM_HEALTHTICKS, 2000)
  setConditionParam(conditionWARLOCK[i], CONDITION_PARAM_MANAGAIN, i)
  setConditionParam(conditionWARLOCK[i], CONDITION_PARAM_MANATICKS, 2000)
end
function getSlotType(n)
  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] = Item(s):getAttribute(ITEM_ATTRIBUTE_DESCRIPTION)
  end
  end
  return t
end
function chk(cid,f)
  if not isPlayer(cid) then return false end
  local t = loadSet(cid)
  for i=1,#f do
  if f[i] ~= t[i] then
  equip(cid,nil,slot)
  break
  end
  end
  addEvent(chk,2000,cid,t)
end
function check_slot(aab, i)
  if i == 5 or i == 6 then
  if isWeapon(aab) or isShield(aab) or isBow(aab) then
  return true
  end
  else
  return true
  end
return false
end
function equip(cid,item,slot)
  local t = {}
  if item then
  local mm,sinal,qto = getSlotType(Item(item.uid):getAttribute(ITEM_ATTRIBUTE_DESCRIPTION))
  t[mm] = tonumber(qto)
  end
  for i=1,9 do
  if i ~= slot then
  if getPlayerSlotItem(cid,i).itemid ~= 0 then
  local aab = getPlayerSlotItem(cid,i).uid
  if aab and check_slot(aab,i) then
  for _ in Item(aab):getAttribute(ITEM_ATTRIBUTE_DESCRIPTION):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] > 300 and 300 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 == 'supreme' then
  doAddCondition(cid,conditionSUP[tonumber(n)])
  Player(cid):addHealth(Player(cid):getMaxHealth() - Player(cid):getHealth())
  ca[50] = 1
  doSendTutorial(cid,19)
  elseif sl == 'magically' then
  doAddCondition(cid,conditionML[tonumber(n)])
  ca[51] = 1
  elseif sl == 'blessed' then
  doAddCondition(cid,conditionMELEE[tonumber(n)])
  ca[52] = 1
  elseif sl == 'speedy' then
  doAddCondition(cid,conditionSPEED[tonumber(n)])
  ca[53] = 1
  elseif sl == 'warlock' then
  doAddCondition(cid,conditionWARLOCK[tonumber(n)])
  ca[54] = 1
  end
  end
  if fu > 0 then
  for i=50,54 do
  if not ca[i] then
  doRemoveCondition(cid,CONDITION_ATTRIBUTES,i)
  doRemoveCondition(cid,CONDITION_REGENERATION,i)
  doRemoveCondition(cid,CONDITION_HASTE,i)
  end
  end
  else
  for i=50,54 do
  doRemoveCondition(cid,CONDITION_ATTRIBUTES,i)
  doRemoveCondition(cid,CONDITION_REGENERATION,i)
  doRemoveCondition(cid,CONDITION_HASTE,i)
  end
  end
  return true
end
function onLogin(creature)
  local cid = creature:getId()
  equip(cid,nil,slot)
  addEvent(chk,2000,cid,loadSet(cid))
  return true
end

 

Editado por Luccan Medeiros (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

vc se refere ao treinamento de skills?

Toda terça-feira um tópico novo:

Descanso para curar mana (Spell): https://tibiaking.com/forums/topic/94615-spell-descanso-para-curar-mana/

Peça sua spell (Suporte):                https://tibiaking.com/forums/topic/84162-peça-sua-spell/                        

Chuva de flechas (Spell):                https://tibiaking.com/forums/topic/72232-chuva-de-flechas-spell/

Doom (Spell):                                https://tibiaking.com/forums/topic/51622-doom-spell/

Utilização do VS Code (Infra)       https://tibiaking.com/forums/topic/94463-utilizando-o-visual-studio-code-notepad-nunca-mais/

SD com Combo (Spell):                 https://tibiaking.com/forums/topic/94520-sd-modificada/

Alteração attack speed (C++):        https://tibiaking.com/forums/topic/94714-c-attack-speed-spells-itens-e-onde-você-quiser/  

Bônus de Speed (NPC)                  https://tibiaking.com/forums/topic/94809-npc-concede-bônus-aos-players/
 

Link para o post
Compartilhar em outros sites

nao nao esse é so as conditions depois desse tem outro em action onde o player usa em qualquer item

local conf = {
maxSlotCount=1,
ignoredIds={}
}
function choose(...)
  local arg = {...}
  return arg[math.random(1,#arg)]
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
if isInArray({26032}, itemEx.itemid) then 
          return false 
      end
      if isCreature(itemEx.uid) then
          return false
      end
      local nam = Item(itemEx.uid):getAttribute(ITEM_ATTRIBUTE_DESCRIPTION)
      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('blessed')
          local p = (10)
          local armors = {1987,1988,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2365,3939,3940,3960,5801,5926,5927,5949,5950,7342,7343,9075,9077,9774,9775,10070,10518,10519,10520,10521,10522,11119,11241,11242,11243,11244,11263,15645,15646,16007,18393,18394,22696,23656,23659,24912,21518}
   if isInArray(armors, itemEx.itemid) then
          doSendMagicEffect(toPosition,30)
          nam = nam..' ['..l..'.+'..p..'%]'
          doPlayerSendTextMessage(cid, 20,l..'.+'..p..'%')
          doSetItemSpecialDescription(itemEx.uid, nam.."\nSpecial abilities: extra 10 sword, axe, club, distance and shield skills. \nIts Belongs "..getCreatureName(cid)..".")
          doRemoveItem(item.uid,1)
      else
          doPlayerSendTextMessage(cid, 20,"Slot limit reached.")
      end
      end
      return true
  end

 

sss.png

up

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 LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo