Ir para conteúdo

Pergunta

Tipo do script: Runa

Protocolo (versão do Tibia): 8.6

Servidor utilizado: Styller Yurots

Nível de experiência: ...

Adicionais/Informações:

 

Galera queria um script de Runa assim o player pode usar as runas somente 3 vezes, não importa se ela é diferente...

Se ele tentar um 4 vez apareça a mensagem "você já possui a runa no nível máximo"

Deve estar em PZ zone para usar a runa.

 

 

Runa 1 "Adiciona 150 de HP para o player que a usar..." {{Não precisa por ID nenhum, depois eu pego as id's que eu desejo deixe XXXX}}

Runa 2 "Adiciona 150 de MP para o player que a usar...

Runa 3 "Adiciona 3 De Todos Os Skill {Menos ML} ao player que usar"

Runa 4 "Adiciona 2 De ML ao player que usar"

Runa 5 "Tira todas as runas que o player já utilizou ou seja um Removedor de runas"

 

EX : Se o player usar a runa de HP 2 vezes e a de Skill 1 vez ele não pode usar nenhuma runa a mais porque já possui 3 runas, se ele usar o remover, o remover irá desabilitar as runas ou seja vai tirar os 3 pontos de skill e os 300 de HP adicional do player e vai poder usar novamente 3 runas...

Editado por pedrizito15
Link para o comentário
https://xtibia.com/forum/topic/190978-resolvido/
Compartilhar em outros sites

  • Respostas 32
  • Created
  • Última resposta

Top Posters For This Question

Posts Recomendados

  • 0

@OtheReality

acho que pra fica certo tem que adiciona isso assim que usa vai aumenta 150 mais vai perde 160 ai player vai nota diferença sem desloga faz teste ai

 

doCreatureAddHealth(cid,-160)
doPlayerAddMana(cid,-160)

Link para o comentário
https://xtibia.com/forum/topic/190978-resolvido/page/2/#findComment-1317695
Compartilhar em outros sites

  • 0

Só dando uma ajuda a vocês, porque diabos vocês estão manipulando o HP/MP máximo dos jogadores, quando, na verdade, sem nenhuma complicação, vocês podem adicionar uma condition ao jogador que aumente HP e MP?

 

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, -1)
setConditionParam(condition, CONDITION_PARAM_STAT_MAXHEALTH, 150)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)


local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, -1)
setConditionParam(condition, CONDITION_PARAM_STAT_MAXMANA, 150)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)

 

doAddCondition(cid, condition)

 


 

Abraços.

Link para o comentário
https://xtibia.com/forum/topic/190978-resolvido/page/2/#findComment-1317862
Compartilhar em outros sites

  • 0

interessante e eu posso usar a condition para remover HP/MP depois? pode usar valores negativos?

 

ps: continuo sem entender o que o notle e o newton estão tentando dizer.

Link para o comentário
https://xtibia.com/forum/topic/190978-resolvido/page/2/#findComment-1317943
Compartilhar em outros sites

  • 0

@OtheReality

mais facil editar o seu script

tava querendo dizer isso

ta 100%

dei uma editada rápida deixei hp

function onUse(cid, item)
local amount_storage = 19901
local hp_storage = 19902
local playerhp_storage = getPlayerStorageValue(cid, hp_storage)
-- config.
local max_runes = 3 -- maximo de runas que o jogador pode usar.
local efeito = 28 -- magic efect ao usar uma runa.
local removedor = 6547 -- id do removedor.
local hp_rune = 6550 -- id da runa de HP.
local hp_amount = 150 -- HP max aumentada.
if (item.itemid == hp_rune) then
if getPlayerStorageValue(cid, amount_storage) < max_runes then
if (item.itemid == hp_rune) then
local hp_max = getCreatureMaxHealth(cid)
setCreatureMaxHealth(cid, hp_max + hp_amount)
doCreatureAddHealth(cid,-hp_amount-10)
doPlayerSetStorageValue(cid, hp_storage, playerhp_storage + 1)
doPlayerSave(cid)
doCreatureAddHealth(cid,hp_amount*2+10)
end
else
doPlayerSendTextMessage(cid, 22, 'Agora você possui '..max_runes..' runas.')
end
end
if ((item.itemid == hp_rune)) and (getPlayerStorageValue(cid, amount_storage) < 1) then
doPlayerSetStorageValue(cid, amount_storage, 1)
doPlayerSetStorageValue(cid, hp_storage, 1)
doPlayerSetStorageValue(cid, ml_storage, 1)
doSendMagicEffect(getPlayerPosition(cid), efeito)
doRemoveItem(item.uid, 1)
elseif ((item.itemid == hp_rune)) and (getPlayerStorageValue(cid, amount_storage) > 0) and (getPlayerStorageValue(cid, amount_storage) < max_runes) then
local runas = getPlayerStorageValue(cid, amount_storage)
doPlayerSetStorageValue(cid, amount_storage, runas + 1)
doSendMagicEffect(getPlayerPosition(cid), efeito)
doRemoveItem(item.uid, 1)
elseif (item.itemid == removedor) then
local hp_max = getCreatureMaxHealth(cid)
setCreatureMaxHealth(cid, hp_max -(playerhp_storage * hp_amount))
doCreatureAddHealth(cid,-max_runes*hp_amount)
doPlayerSetStorageValue(cid, amount_storage, 0)
doPlayerSetStorageValue(cid, hp_storage, 0)
local new_amount = getPlayerStorageValue(cid, amount_storage)
doPlayerSendTextMessage(cid, 22, 'Agora você possui '..new_amount..' runas.')
doSendMagicEffect(getPlayerPosition(cid), efeito)
doRemoveItem(item.uid, 1)
doPlayerSave(cid)
end
return TRUE
end

@Oneshot

interessante essas

condition

não sabia disso ainda rsrs to me esforçando pra aprende mais

não sei onde achar mais Conteúdo sobre linguagem.lua

só acho aquele manual muito ruim e aqui no xtibia que salva pátria rsrs

Editado por notle2012
Link para o comentário
https://xtibia.com/forum/topic/190978-resolvido/page/2/#findComment-1318150
Compartilhar em outros sites

  • 0


local config = {
   [2153] = {
       [CONDITION_ATTRIBUTES] = {
           [CONDITION_PARAM_STAT_MAXHEALTH] = 150,
           [CONDITION_PARAM_SUBID] = 10
       }
   },
   [2154] = {
       [CONDITION_ATTRIBUTES] = {
           [CONDITION_PARAM_STAT_MAXMANA] = 150,
           [CONDITION_PARAM_SUBID] = 20
       }
   },
   [2155] = {
       [CONDITION_ATTRIBUTES] = {
           [CONDITION_PARAM_SKILL_MELEE] = 3,
           [CONDITION_PARAM_SKILL_DISTANCE] = 3,
           [CONDITION_PARAM_SUBID] = 30
       }
   },
   [2156] = {
       [CONDITION_ATTRIBUTES] = {
           [CONDITION_PARAM_STAT_MAGICLEVEL] = 2,
           [CONDITION_PARAM_SUBID] = 40
       }
   }
}

local tmp = {}
for itemid, conditions in pairs(config) do
   tmp[itemid] = {}
   for i = 1, 3 do
       for condition, parameters in pairs(conditions) do
           local obj = createConditionObject(condition)
           setConditionParam(obj, CONDITION_PARAM_TICKS, -1)
           for parameter, value in pairs(parameters) do
               setConditionParam(obj, parameter, value)
           end
           setConditionParam(obj, CONDITION_PARAM_SUBID, config[itemid][condition][CONDITION_PARAM_SUBID] + i)
           setConditionParam(obj, CONDITION_PARAM_BUFF, true)
           tmp[itemid][i] = obj
       end
   end
end

local storage = 30001

function onUse(cid, item, fromPosition, itemEx, toPosition)
   local status = getCreatureStorage(cid, storage)

   if status < 0 then
       doCreatureSetStorage(cid, storage, 0)
   end

   if item.itemid == 2158 then
       doRemoveConditions(cid, false)
       doCreatureSetStorage(cid, storage, 0)
       doSendMagicEffect(fromPosition, CONST_ME_MAGIC_BLUE)
       return true
   end

   if not tmp[item.itemid] then
       doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
       return true
   end

   if status == 3 then
       doPlayerSendCancel(cid, "You cannot use support runes anymore.")
       return true
   end

   doAddCondition(cid, tmp[item.itemid][status + 1])
   doCreatureSetStorage(cid, storage, status + 1)
   return true
end

 

<action itemid="2153-2156;2158" event="script" value="nome_do_arquivo.lua"/>

 

Pronto, sem nenhuma complicação. O código está um pouco "pogado", mas nada que traga problemas. Eu usei os IDs 2153, 2154, 2155, 2156 e 2158 para as "runas", mas você pode mudar livremente.

 

Abraços.

Link para o comentário
https://xtibia.com/forum/topic/190978-resolvido/page/2/#findComment-1318264
Compartilhar em outros sites

  • 0

Hehe, vlw paara todo o pessoal ai, vou passar dando uns rep+ no resto da semana para vcs

 

se alguém quiser tentar http://www.xtibia.com/forum/topic/191758-imbuicao-system-que-venha-um-semi-deus-do-script-tentar/page__pid__1314283#entry1314283

 

não está sumindo a runa como eu faço ?

Link para o comentário
https://xtibia.com/forum/topic/190978-resolvido/page/2/#findComment-1318669
Compartilhar em outros sites

  • 0

Eu coloquei mais agora está dando um erro no distro, depois eu posto porque tenho que sair agora

 

[Error - LuaInterace::loadFile] data/actions/scripts/runes.lua:75: 'end' expected (to close 'function' at line 48) near 'doRemoveItem'

[Warning - Event::loadScript] Cannot load script (data/actions/scripts/runes.lua)

data/actions/scripts/runes.lua:75: 'end' expected (to close 'function' at line 48) near 'doRemoveItem'

Link para o comentário
https://xtibia.com/forum/topic/190978-resolvido/page/2/#findComment-1318946
Compartilhar em outros sites

  • 0

local config = {
   [2153] = {
       [CONDITION_ATTRIBUTES] = {
           [CONDITION_PARAM_STAT_MAXHEALTH] = 150,
           [CONDITION_PARAM_SUBID] = 10
       }
   },
   [2154] = {
       [CONDITION_ATTRIBUTES] = {
           [CONDITION_PARAM_STAT_MAXMANA] = 150,
           [CONDITION_PARAM_SUBID] = 20
       }
   },
   [2155] = {
       [CONDITION_ATTRIBUTES] = {
           [CONDITION_PARAM_SKILL_MELEE] = 3,
           [CONDITION_PARAM_SKILL_DISTANCE] = 3,
           [CONDITION_PARAM_SUBID] = 30
       }
   },
   [2156] = {
       [CONDITION_ATTRIBUTES] = {
           [CONDITION_PARAM_STAT_MAGICLEVEL] = 2,
           [CONDITION_PARAM_SUBID] = 40
       }
   }
}

local tmp = {}
for itemid, conditions in pairs(config) do
   tmp[itemid] = {}
   for i = 1, 3 do
       for condition, parameters in pairs(conditions) do
           local obj = createConditionObject(condition)
           setConditionParam(obj, CONDITION_PARAM_TICKS, -1)
           for parameter, value in pairs(parameters) do
               setConditionParam(obj, parameter, value)
           end
           setConditionParam(obj, CONDITION_PARAM_SUBID, config[itemid][condition][CONDITION_PARAM_SUBID] + i)
           setConditionParam(obj, CONDITION_PARAM_BUFF, true)
           tmp[itemid][i] = obj
       end
   end
end

local storage = 30001

function onUse(cid, item, fromPosition, itemEx, toPosition)
   local status = getCreatureStorage(cid, storage)

   if status < 0 then
       doCreatureSetStorage(cid, storage, 0)
   end

   if item.itemid == 2158 then
       doRemoveConditions(cid, false)
       doCreatureSetStorage(cid, storage, 0)
       doSendMagicEffect(fromPosition, CONST_ME_MAGIC_BLUE)
       return true
   end

   if not tmp[item.itemid] then
       doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
       return true
   end

   if status == 3 then
       doPlayerSendCancel(cid, "You cannot use support runes anymore.")
       return true
   end

   doAddCondition(cid, tmp[item.itemid][status + 1])
   doCreatureSetStorage(cid, storage, status + 1)
   doRemoveItem(item.uid, 1)
   return true
end

Link para o comentário
https://xtibia.com/forum/topic/190978-resolvido/page/2/#findComment-1319486
Compartilhar em outros sites


×
×
  • Criar Novo...