Ir para conteúdo
  • 0
eliaspalermo

suporte scripts Preciso de Potion instantâneo.

Pergunta

Versão do Servidor: TFS - 1.0
Tipo de Script: actions

Olá Boa noite.

Queria que esses potions recuperassem instantaneamente e tivessem um delay de 10 segundos de uso. Se alguém puder me ajudar ><

Citar

function doHealOverTime(cid, div, turn, effect)                     --alterado v2.6 peguem o script todo!!
if not isCreature(cid) then return true end

if turn <= 0 or (getCreatureHealth(cid) == getCreatureMaxHealth(cid)) or getPlayerStorageValue(cid, 173) <= 0 then 
   setPlayerStorageValue(cid, 173, -1)
   return true 
end

local d = div / 10000
local amount = math.floor(getCreatureMaxHealth(cid) * d)
doCreatureAddHealth(cid, amount)
if math.floor(turn/10) == turn/10 then
   doSendMagicEffect(getThingPos(cid), effect)
end
addEvent(doHealOverTime, 100, cid, div, turn - 1, effect)
end

local potions = {
[12347] = {effect = 13, div = 15}, --Small Recovery
[12348] = {effect = 13, div = 30}, --Medium Recovery              
[12346] = {effect = 12, div = 60}, --Large Recovery
[12345] = {effect = 14, div = 100}, --Super Recovery
}

function onUse(cid, item, frompos, item2, topos)
local pid = getThingFromPosWithProtect(topos)

if getCreatureMaster(pid) ~= cid then
return doPlayerSendCancel(cid, "Recovery e compativel apenas com o Digimon!")
end

if getCreatureHealth(pid) == getCreatureMaxHealth(pid) then
return doPlayerSendCancel(cid, "Este Digimon ja esta com a vida totalmente cheia.")
end

if getPlayerStorageValue(pid, 173) >= 1 then
return doPlayerSendCancel(cid, "Este Digimon ja esta sob uso do Recovery.")
end

if getPlayerStorageValue(cid, 52481) >= 1 then
return doPlayerSendCancel(cid, "Voce nao pode usar Potion quando estiver no duelo.")
end
 
doCreatureSay(cid, ""..getCreatureName(pid)..", Pegue o Recovery!", TALKTYPE_SAY)
doSendMagicEffect(getThingPos(pid), 0)
setPlayerStorageValue(pid, 173, 1)
doRemoveItem(item.uid, 1)

local a = potions[item.itemid]
doHealOverTime(pid, a.div, 100, a.effect)
doSendAnimatedText(getThingPos(item2.uid), "RECOVERY!", 205)

return true
end

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
function doHealOverTime(cid, div, turn, effect)                    


		
if not isCreature(cid) then return true end

if turn <= 0 or (getCreatureHealth(cid) == getCreatureMaxHealth(cid)) or getPlayerStorageValue(cid, 173) <= 0 then 
   setPlayerStorageValue(cid, 173, -1)
   return true 
end

local d = div / 10000
local amount = math.floor(getCreatureMaxHealth(cid) * d)
doCreatureAddHealth(cid, amount)
if math.floor(turn/10) == turn/10 then
   doSendMagicEffect(getThingPos(cid), effect)
end
addEvent(doHealOverTime, 100, cid, div, turn - 1, effect)
end

local potions = {
[12347] = {effect = 13, div = 30}, --super potion
[12348] = {effect = 13, div = 60}, --great potion              
[12346] = {effect = 12, div = 80}, --ultra potion
[12345] = {effect = 14, div = 90}, --hyper potion
[12343] = {effect = 14, div = 110}, --full restore
}

function onUse(cid, item, frompos, item2, topos)
local pid = getThingFromPosWithProtect(topos)

if not isSummon(pid) or getCreatureMaster(pid) ~= cid then
return doPlayerSendCancel(cid, "You can only use potions on your own Pokemons!")
end

if getCreatureHealth(pid) == getCreatureMaxHealth(pid) then
return doPlayerSendCancel(cid, "This pokemon is already at full health.")
end

if getPlayerStorageValue(pid, 173) >= 1 then
return doPlayerSendCancel(cid, "This pokemon is already under effects of potions.")
end

if getPlayerStorageValue(cid, 52481) >= 1 then
return doPlayerSendCancel(cid, "You can't do that while a duel.")
end

if getPlayerStorageValue(cid, 990) >= 1 then
   doPlayerSendCancel(cid, "You can't use rpotion during gym battles.")
   return true
end



local cd = {
cdtime = 30, -- TEMPO EM SEGUNDO PARA PODER USAR O ITEM 30 = 30 SEGUNDOS !
str = 69889, -- NÃO MEXA
}
if getPlayerStorageValue(cid, cd.str) < os.time() then
doCreatureSay(cid, "".. getCreatureName(pid)..", take this potion!", TALKTYPE_MONSTER)
doSendMagicEffect(getThingPos(pid), 0)
setPlayerStorageValue(cid, cd.str, os.time() + cd.cdtime)
setPlayerStorageValue(pid, 173, 1)
doRemoveItem(item.uid, 1)

local a = potions[item.itemid]
doHealOverTime(pid, a.div, 100, a.effect)

elseif getPlayerStorageValue(cid, cd.str) >= os.time() then
doPlayerSendCancel(cid, "espere para usar novamente")

return true
end
end

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
3 horas atrás, Kuro o Shiniga disse:
function doHealOverTime(cid, div, turn, effect)                    


		
if not isCreature(cid) then return true end

if turn <= 0 or (getCreatureHealth(cid) == getCreatureMaxHealth(cid)) or getPlayerStorageValue(cid, 173) <= 0 then 
   setPlayerStorageValue(cid, 173, -1)
   return true 
end

local d = div / 10000
local amount = math.floor(getCreatureMaxHealth(cid) * d)
doCreatureAddHealth(cid, amount)
if math.floor(turn/10) == turn/10 then
   doSendMagicEffect(getThingPos(cid), effect)
end
addEvent(doHealOverTime, 100, cid, div, turn - 1, effect)
end

local potions = {
[12347] = {effect = 13, div = 30}, --super potion
[12348] = {effect = 13, div = 60}, --great potion              
[12346] = {effect = 12, div = 80}, --ultra potion
[12345] = {effect = 14, div = 90}, --hyper potion
[12343] = {effect = 14, div = 110}, --full restore
}

function onUse(cid, item, frompos, item2, topos)
local pid = getThingFromPosWithProtect(topos)

if not isSummon(pid) or getCreatureMaster(pid) ~= cid then
return doPlayerSendCancel(cid, "You can only use potions on your own Pokemons!")
end

if getCreatureHealth(pid) == getCreatureMaxHealth(pid) then
return doPlayerSendCancel(cid, "This pokemon is already at full health.")
end

if getPlayerStorageValue(pid, 173) >= 1 then
return doPlayerSendCancel(cid, "This pokemon is already under effects of potions.")
end

if getPlayerStorageValue(cid, 52481) >= 1 then
return doPlayerSendCancel(cid, "You can't do that while a duel.")
end

if getPlayerStorageValue(cid, 990) >= 1 then
   doPlayerSendCancel(cid, "You can't use rpotion during gym battles.")
   return true
end



local cd = {
cdtime = 30, -- TEMPO EM SEGUNDO PARA PODER USAR O ITEM 30 = 30 SEGUNDOS !
str = 69889, -- NÃO MEXA
}
if getPlayerStorageValue(cid, cd.str) < os.time() then
doCreatureSay(cid, "".. getCreatureName(pid)..", take this potion!", TALKTYPE_MONSTER)
doSendMagicEffect(getThingPos(pid), 0)
setPlayerStorageValue(cid, cd.str, os.time() + cd.cdtime)
setPlayerStorageValue(pid, 173, 1)
doRemoveItem(item.uid, 1)

local a = potions[item.itemid]
doHealOverTime(pid, a.div, 100, a.effect)

elseif getPlayerStorageValue(cid, cd.str) >= os.time() then
doPlayerSendCancel(cid, "espere para usar novamente")

return true
end
end

 

Opa amigo obrigado, só que ainda não está curando instantaneamente e quando em batalha da lost heal e cancela a cura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por diarmaint
      Versão do Servidor: TFS - 0.3.4 Tipo de Script: spell Galera, como adiciono essa função na spell 
      doCreatureSetNoMove(cid, true) eu consigo adicionar ela , o problema é que fica sem mover depois que a spell para.
      A spell precisa ser tipo
      ao usar o personagem não se move, fica healando até eu ativar novamente parando a spell.
       
    • Por diarmaint
      Versão do Servidor: TFS - 0.3.4 Tipo de Script: spell Boa tarde, preciso de uma wand que dê 4 hits com intervalo de 0.5 segundos entre eles e um quinto hit com intervalo de 1.5 segundos do anterior ,esse ultimo hit seria mais demorado e teria que 50%+ de força que os anteriores. após esses 5 hits ela teria um prazo de 3 segundos pra voltar na sequencia dos 4+1.
      Ex: 50/50/50/50.........100.........50/50/50/50........100...etc..
      Os 4 primeiros hits preciso que seja baseado em 50% do ml e level, e o quinto hit seria 100% do lvl + ml .
      logo um player lvl100/ml100 bateria 
      100/100/100/100........200
      Qualquer dúvida perguntem que tentarei explicar melhor.
      E se possível preciso para um servidor 8.60 e 10x
    • Por raulcdj
      Versão do Servidor: TFS - 1.0 Tipo de Script: moveevent pessoal esta dando esse erro no meu servidor queria ajuda para adicionar..Nao estou conseguindo resolver. 
       
      Error - LuaScriptInterface::loadFile] data/movements/scripts/arquivo.lua:2: '=' expected near 'ï'
      [14/02/2019 07:40:47] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/arquivo.lua)
      [14/02/2019 07:40:47] data/movements/scripts/arquivo.lua:2: '=' expected near 'ï'
      [14/02/2019 07:40:47] [Error - LuaScriptInterface::loadFile] data/movements/scripts/arquivo.lua:2: '=' expected near 'ï'
      [14/02/2019 07:40:47] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/arquivo.lua)
      [14/02/2019 07:40:47] data/movements/scripts/arquivo.lua:2: '=' expected near 'ï'
       
       
       
       
      local configuration = {storage = 41651651},  
      look type (male)id_outfit_female = 511 
      look type (female)id_mergulhador_male = 1034, 
      look type (male)id_mergulhadora_female = 1035,
      look type (female)more_player_speed = 300,
      local random = math.random(1, 150)
      function onStepIn(cid)
      if isRiderOrFlyOrSurf(cid) then
      doChangeSpeed(cid,(getCreatureSpeed(cid)-configuration.less_speed))
      end
      if(isPlayer(cid)) then
      if getPlayerSex(cid) == 1 
      and 
      isPlayer(cid) then
      doSetCreatureOutfit(cid, {lookType = configuration.id_mergulhador_male, lookHead = random, lookBody = random, lookLegs = random, lookFeet = random}, -1)
      else
      if getPlayerSex(cid) == 0 and isPlayer(cid) then 
      doSetCreatureOutfit(cid,{lookType = configuration.id_mergulhadora_female, lookHead = random, lookBody = random, lookLegs = random, lookFeet = random}, -1)
      return true
      end
      if getCreatureOutfit(cid).lookType == configuration.id_mergulhador_male or getCreatureOutfit(cid).lookType == configuration.id_mergulhadora_female then
      doChangeSpeed(cid, getCreatureSpeed(cid)+configuration.more_player_speed)
      else
      doChangeSpeed(cid,(getCreatureSpeed(cid))-configuration.less_speed)
      end
      end
      if isWild(cid)or isSummon(cid) thenpoketype1 = pokes[getCreatureName(cid)].type poke type 2 = pokes[getCreatureName(cid)].type 2 
      if poke type 1 == "water" or poke type 2 == "water" or poke type 1 == "ice" or poke type 2 == "ice" 
      then 
      -- coloque aqui os tipos de pokémon que ganham velocidade na agua
      doChangeSpeed(cid, -getCreatureSpeed(cid)+configuration.more_pokemon_speed)
      else
      doChangeSpeed(cid, -getCreatureSpeed(cid)+configuration.less_speed)
      end
      end
      return true
      end
      function onStepOut(cid)if(isPlayer(cid)) thenif getPlayerSex(cid) == 1 
      and 
      isPlayer(cid) then
      doSetCreatureOutfit(cid, {lookType = configuration.id_outfit_male, lookHead = random, lookBody = random, lookLegs = random, lookFeet = random}, -1)doChangeSpeed(cid,(-getCreatureSpeed(cid))+configuration.speed_normal)
      else
      if getPlayerSex(cid) == 0 
      and 
      isPlayer(cid) then 
      doSetCreatureOutfit(cid, {lookType = configuration.id_outfit_female, lookHead = random, lookBody = random, lookLegs = random, lookFeet = random}, -1)doChangeSpeed(cid,(-getCreatureSpeed(cid))+configuration.speed_normal)
      return true
      end
      end
      if isWild(cid)or isSummon(cid) thenpoketype1 = pokes[getCreatureName(cid)].type       poketype2 = pokes[getCreatureName(cid)].type 2 velocidade = pokes[getCreatureName(cid)].agilityif poketype1 == "water" or poke type 2 == "water" or poke type 1 == "ice" or poke type 2 == "ice" then -- coloque aqui os tipos de pokémon que ganham velocidade na aguado
      ChangeSpeed(cid, velocidade-configuration.more_pokemon_speed)
      else
      doChangeSpeed(cid, velocidade-configuration.less_speed)
      end
      end
      return true
      end
    • Por GniusP
      Versão do Servidor: TFS - 0.3.5 Tipo de Script: actions Olá pessoal, estou precisando de uma script onde o player usa x item em x parte do set(helmet, amor, boots, glove) e esse item aumenta a regeneração e mana a 200+
      Por exemplo:
      O armor libera 5000+ de regeranção, ao usar esse item ele liberaria 5200
    • Por adrianokk
      Versão do Servidor: TFS - 0.3.5 Tipo de Script: creaturescript Estou precisando que alguém me ensine a colocar o item como UNIQUE.
      tenho que colocar 3 itens assim.. que  nem este que está aparecendo na imagem.
      não pode jogar fora, nem trocar.
       

      Please login or register to see this attachment.
×