@UP
Opa, então vou dar um upzim aqui
Por pedrizito15, 31 de jul. de 2012 em Scripts
info
Grupo: Cavaleiro
Registrado: 01/12/10
Posts: 158
Reputação: +4
Char no Tibia: Pedro Tacador De Bolt

@UP
Opa, então vou dar um upzim aqui
info
Grupo: Conde
Registrado: 03/01/12
Posts: 884
Reputação: +233
Char no Tibia: Segredo

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)
info
Grupo: Visconde
Registrado: 17/01/11
Posts: 343
Reputação: +46
Char no Tibia: Zodriac

@notle2012
não entendi direito o que você disse.. pode tentar explicar de novo?
info
Grupo: Conde
Registrado: 04/08/12
Posts: 762
Reputação: +80

Ele esta botando 10 de diferença, 150 para 160 para ver se está correto o script.
Assim o player irá notar uma diferença.
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.
info
Grupo: Visconde
Registrado: 17/01/11
Posts: 343
Reputação: +46
Char no Tibia: Zodriac

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.
Não, aí você simplesmente retira a condição do jogador com essa função:
doRemoveCondition(cid, CONDITION_ATTRIBUTES)
info
Grupo: Conde
Registrado: 03/01/12
Posts: 884
Reputação: +233
Char no Tibia: Segredo

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
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 Agosto 17 por notle2012
Da pra remover skills sim, usando doPlayerAddSkillTry com valor negativo
E assim como o max hp/mp, dá pra modificar os skills com conditions também
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.
info
Grupo: Visconde
Registrado: 17/01/11
Posts: 343
Reputação: +46
Char no Tibia: Zodriac

Tava tentando aqui mas o meu ia ficar bem enjambrado xD
perfeito pra eu ver onde posso melhorar! vlw!
info
Grupo: Cavaleiro
Registrado: 01/12/10
Posts: 158
Reputação: +4
Char no Tibia: Pedro Tacador De Bolt

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 ?
Adicione a linha:
doRemoveItem(item.uid, 1)
Antes do último:
return true
Abraços.
Editado Agosto 18 por Oneshot
info
Grupo: Cavaleiro
Registrado: 01/12/10
Posts: 158
Reputação: +4
Char no Tibia: Pedro Tacador De Bolt

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'
info
Grupo: Visconde
Registrado: 17/01/11
Posts: 343
Reputação: +46
Char no Tibia: Zodriac
Se aparecesse algum erro eu saberia arrumar, eu fiz o script.