Ir para conteúdo
  • Cadastre-se

(Resolvido)AJUDA POTIONS


Ir para solução Resolvido por vankk,

Posts Recomendados

Alguem poderia me ajudar.. Não consigo fazer a vocation nova do meu servidor a usar potion(ultimate health potion),  Vocation nova ( Titan Gladiator) voc id="12"

 

script potion

 

local MIN = 900
local MAX = 1100
local EMPTY_POTION = 7635

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if isPlayer(itemEx.uid) == FALSE then
        return FALSE
    end

    if hasCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE then
        doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
        return TRUE
    end

    if((not(isKnight(itemEx.uid)) or getPlayerLevel(itemEx.uid) < 130) and getPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then
        doCreatureSay(itemEx.uid, "Only knights of level 130 or above may drink this fluid.", TALKTYPE_ORANGE_1)
        return TRUE
    end

    if doCreatureAddHealth(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then
        return FALSE
    end

    doAddCondition(cid, exhaust)
    doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_RED)
    doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
    return TRUE
end

 

Link para o post
Compartilhar em outros sites

MMHUCMQ.png  Esta é uma mensagem automática, este tópico foi movido para a área correta.
  Regras do fórum: http://www.tibiaking.com/forum/topic/1281-regras-gerais/#comment-7680

Este tópico foi movido:
De: Scripting OTServ > OTServ > Actions e TalkActions
Para: Suporte OTServ > OTServ > Suporte de Scripts

--------------------------------------------------------------------------------------------------------------------------------

Tente usar assim:

local MIN = 900
local MAX = 1100
local EMPTY_POTION = 7635 
local vocations = {4, 8, 12}

local exhaust = createConditionObject(CONDITION_EXHAUST)
 setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) 

function onUse(cid, item, fromPosition, itemEx, toPosition)
     if isPlayer(itemEx.uid) == false then
        return false
     end 

    if hasCondition(cid, CONDITION_EXHAUST_HEAL) == true then
         doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
        return true
     end 

    if(not isInArray(vocations, getPlayerVocation(cid))) or getPlayerLevel(itemEx.uid) < 130) and getPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == false) then
         doCreatureSay(itemEx.uid, "Only knights of level 130 or above may drink this fluid.", TALKTYPE_ORANGE_1)
        return true
     end 

    if doCreatureAddHealth(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then
        return false
     end 

    doAddCondition(cid, exhaust)
    doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_RED)
    doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
   return true
end

 

Editado por Wakon (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

Você está com problemas com a função isKnight, ela apenas checa o id de vocation 4,8. Tente atualizar, procure na lib do seu servidor, e atualize.

 

#edit

@Wakon

Para que utilizar um isInArray sendo que ele poderia simplesmente colocar um ,12 na lib? :p

Editado por vankk (veja o histórico de edições)

discord.pngDiscord: vankk #7765

Precisando de ajuda? Entre em contato comigo via Discord.

 

Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.

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 gabrieldiaszin
      Olá, bom existem diversos tópicos com Stamina Refiller, Stamina potion, etc.
      Porém, eu quero um script que ao player usar a potion em si ele recuperar X tempo de stamina.
      Por exemplo: A Stamina Potion está configurada para enxer  5 horas de stamina , e eu tenho 30 horas, então eu uso ela em mim e fico com 35 horas de stamina. 
       
      Os scripts que tem aqui são assim: se eu boto o tanto de tempo que quero, ele deixa o player com aquela stamina, no caso acima, o player desceu de 30 para 5 horas de stamina.
       
      Atualmente tem esse aqui que eu testei:
      local config = { effect = 30, remove_on_use = "yes" } function onUse(cid, item, frompos, item2, topos) doPlayerAddStamina(cid, (300 - getPlayerStamina(cid))) doSendMagicEffect(getThingPos(cid), config.effect) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua stamina foi aumentada em 5 horas.") if config.remove_on_use == "yes" then doRemoveItem(item.uid, 1) end return true end Porém, como disse acima, ao dar use no item, o player fica com 5 horas de stamina ( 300 minutos).
       
      Obrigado e Rep++ para quem me ajudar.
       
       
    • Por Enzoo
      fala galera,todos styller tem um bug que compra potion sem pagar nada no dark rodo,como tira isso? Obg!
    • Por nortonsky
      Boa tarde pessoal, sou novo por aqui e não ao certo como montar um tópico bem organizado, mas vamos la.
       
      Eu gostaria de uma ajuda para elaborar 2 scripts (utilizo TFS 1.0 num servidor 8.31).
       
      Primeiro:
       
      -Gostaria que as potions tivessem carga (já pesquisei bastante e infelizmente nenhuma atendeu a minha necessidade ou não possuíram compatibilidade com meu servidor)
      - O máximo de carga seria algo em torno de 3000
      - Ela não some ao acabar as cargas, e que só pudesse utiliza-la com um storage especifico (sendo assim a potion só poderia ser utilizada após concluir uma quest).
      - Para recarregá-las é necessário um talkaction como por exemplo !carregar ghp, 3000
      - O preço para carregar as potions varia de acordo com uma faixa de level ou até mesmo uma fórmula como por exemplo (level/10) seria o preço de cada carga da potion
      - A health tanto das potion de mana como as de vida variam de acordo com uma % da vida ou mana total, ou seja, quanto maior a vida do personagem, maior o health de vida, e assim sucessivamente.
       
      Desde já agradeço, este realmente é o que mais me importa, eu ate encontrei um que se aproximava bastante do que eu precisava porém obtive erros
       
      Nessas linhas
       



       
      e Nessa
       




       
      Meu servidor acusa erro no hasCondition e no getBooleanFromString
       
       O script que estava tentando utilizar era esse:
       


       
       
      SEGUNDA
       
      Eu utilizo o seguinte código
       



       
      Eu gostaria que o item regredisse a última ação caso falhasse ou até mesmo um clear geral, exemplo:
      Eu obtive um update e não era o que esperava, eu poderia criar um outro item que ao usar no item o item voltasse ao normal, como não manjo muito de programação, acredito que um meio seria criar um item que deleta o item no qual foi usado e cria outro igual.
       
      exemplo:
      Tenho uma Magic Sword com um adicional [+hp 1%], um modo de resetar seria utilizar um item em cima da Magic Sword que deleta esta Magic Sword e logo em seguida cria uma outra Magic Sword, assim ela viria zerada.
       
      Espero que tenha sido claro o suficiente, muito obrigado.
       
       
       
      @Edit 23/02....
       
      Com relação ao item para regredir, este não vou mais precisar, já consegui o que queria.


      config.removeOnUse = getBooleanFromString(config.removeOnUse)
      config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
      config.splashable = getBooleanFromString(config.splashable)
      config.realAnimation = getBooleanFromString(config.realAnimation)
    • Por thiagobji
      Então, as potions do meu servidor está sem exhausted, podendo usa-las sem parar.
      Aqui está o meu potions.lua:
       



    • Por Marcos Vinicius
      Queria Saber como colocar para o paladin usar Potion e atacar rapido ao mesmo tempo?
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo