Boa tarde amigo,
E o que essas Pots fariam exatamente? Aumentaria sua mana? Se sim, quanto de mana seria aumentado? Explique melhor o seu pedido, está meio confuso para mim...
Aguardando Boa tarde.
Abraços.
info
Grupo: Campones
Registrado: 02/09/12
Posts: 20
Reputação: -1
Gênero: Masculino
Char no Tibia: Darkvento

seria aumentada quando o player ficasse em cima de um piso
seria aumentada quando o player ficasse em cima de um piso
Aumentaria sua mana? Se sim, quanto de mana seria aumentado? Explique melhor o seu pedido, está meio confuso para mim...
Tente ser o mais claro possivel quando postar uma duvida, evita mensagens desnecessárias como essa.
info
Grupo: Campones
Registrado: 02/09/12
Posts: 20
Reputação: -1
Gênero: Masculino
Char no Tibia: Darkvento

Sorc = Aumentara 800 de mana Master Sorcerer = Aumentaram 3100 de mana Druid = Aumentara 800 de mana Elder druid = Aumentara 3100 de mana
Paladin = Aumentara 600 de mana Royal Paladin = Aumentara 2350 de mana Knight = Aumentara 350 de mana Elite knight aumentara 1670 de mana
Pra essas mana seja aumentada eles tipo tem q comprar umas pot virtual q nao ocupa nada tipo fica no tile as pot se ele comprar 5000 pot ele tera 5000 pot virtual sem pesa nada e sem ficar na bp tipo o tile pota ele
Ao pisar no tile, todas as potions serão gastas? Ou apenas uma por vez? Se puder responder.
Editado Abril 15 por zipter98
info
Grupo: Campones
Registrado: 02/09/12
Posts: 20
Reputação: -1
Gênero: Masculino
Char no Tibia: Darkvento

Nao irar gastar todas
Master sorcerer = vai gasta 8
Elder Druid= Vai gasta 8
Elite Knight = Vai gasta 4
Royal Paladin = Vai gastar 6
Paladin = 1
Sorc = 1
Druid = 1
Knight = 1
Nao irar gastar todas
Master sorcerer = vai gasta 8
Elder Druid= Vai gasta 8
Elite Knight = Vai gasta 4
Royal Paladin = Vai gastar 6
Paladin = 1
Sorc = 1
Druid = 1
Knight = 1
A cada novo post seu, eu perco o sentido do script.
O que deve acontecer é:
Um player tem 5000 pots virtuais.
Ao pisar no tile com actionid = 8200
O player vai usar 1 pot virtual por segundo e vai regenerar X de mana a cada segundo.
OU
Um player tem 5000 pots virtuais
Ao pisar no tile com actionid = 8200
O player vai usar X pot virtuais e curar X de mana.
Assim tento que sair e pisar novamente no tile para recuperar mais mana
Aguardando.
info
Grupo: Campones
Registrado: 02/09/12
Posts: 20
Reputação: -1
Gênero: Masculino
Char no Tibia: Darkvento

O player vai usar x que vai ser descontada das pot virtuais pra curar x de mana e ele fica parado encima do tile n precisa sair vai regenerando por ele esta encina do tile so nao precisa pisar dnv so de ficar parado ja vai regenerando
Nao irar gastar todas
Master sorcerer = vai gasta 8
Elder Druid= Vai gasta 8
Elite Knight = Vai gasta 4
Royal Paladin = Vai gastar 6
Paladin = 1
Sorc = 1
Druid = 1
Knight = 1
A cada novo post seu, eu perco o sentido do script.
O que deve acontecer é:
Um player tem 5000 pots virtuais.
Ao pisar no tile com actionid = 8200
O player vai usar 1 pot virtual por segundo e vai regenerar X de mana a cada segundo.
OU
Um player tem 5000 pots virtuais
Ao pisar no tile com actionid = 8200
O player vai usar X pot virtuais e curar X de mana.
Assim tento que sair e pisar novamente no tile para recuperar mais mana
Aguardando.
~Edit: Adicionar script;
Bem, vale lembrar que eu fiz para 9 vocações(nenhuma, as 4 normais e as 4 promoted) se seu servidor possuir mais de 9 vocações, é de EXTEMA importância que você adicione as mesmas no script, ou você terá um erro no console.
Eu fiz também um script para quando você usar certo item, você comprar 5000 pots virtuais a um preço de 10k, vou lhe passar também e você modifica como quiser.
O script é muito simples e de fácil entendimento, algumas tabelas estão comentadas para você ter uma noção de como configurar, segue o método de instalação:
Comando de comprar pot por item:
Vá na pasta Data/Actions/Scripts e crie o script comprarpot.lua e coloque o seguinte codigo dentro:
--Action comprar pots de mana e guardar em storage ao usar item - By: Mateuso local storage = 19254 --Storage que guardara a quantidade de potions que o player possui ~ Não recomendo mudar, se mudar, mude tambem no script usarpot.lua na pasta de movements local price = 10000 --Preço das poções local qntpots = 5000 --Quantidade de poções que será comprada function onUse(cid, item, fromPosition, itemEx, toPosition) if(doPlayerRemoveMoney(cid, price)) then qntpotsatual = getPlayerStorageValue(cid, storage) if(qntpotsatual == -1) then setPlayerStorageValue(cid, storage, 0) end setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage)+qntpots) doPlayerSendTextMessage(cid, 4, "Você comprou "..qntpots.." por "..price.." gold coins, a quantidade de pots de mana que você possui agora é: "..getPlayerStorageValue(cid, storage)..".") else doPlayerSendTextMessage(cid, 4, "Você não possui dinheiro suficiente para comprar Pots de Mana.") end end
Agora adicione a seguinte TAG em actions.xml:
<action itemid="xxxx" script="comprarpot.lua"/>
Onde xxxx é o id do item que você quer que ao usar, compre os pots.
Agora vamos ao script em si:
Crei o arquivo usarpot.lua na pasta Data/Movements/Scripts e adicione o seguinte codigo:
--Script pisar em tile com Actionid X e adicionar mana, retirando mana potions de storage - By: Mateuso
local storage = 19254 --Storage que guardara a quantidade de potions que o player possui ~ Não recomendo mudar, se mudar, mude tambem no script comprarpot.lua na pasta de actions
local storage_usando = 19255 --Storage que verifica se o player está sobre o efeito
local action = 8200 --Action id de que o tile precisa ter para o script funcionar
--Nessa tabela você define o gasto de pots para cada vocação, utilizando os seguintes numeros para as seguintes vocações:
--0 = sem vocação, 1 = sorc, 2 = druid, 3 = paladin, 4 = knight, 5 = master sorc, 6 = elder druid, 7 = royal paladin, 8 = elite knight
local gasto = {
[0] = 1,
[1] = 1,
[2] = 1,
[3] = 1,
[4] = 1,
[5] = 8,
[6] = 8,
[7] = 6,
[8] = 4,
}
--Nessa tabela você coloca a quantidade de mana que o player vai ganhar ao pisar no tile, utilizando os seguinte numeros para as seguintes vocações:
--0 = sem vocação, 1 = sorc, 2 = druid, 3 = paladin, 4 = knight, 5 = master sorc, 6 = elder druid, 7 = royal paladin, 8 = elite knight
local mana = {
[0] = 1,
[1] = 800,
[2] = 800,
[3] = 600,
[4] = 350,
[5] = 3100,
[6] = 3100,
[7] = 2350,
[8] = 1670,
}
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if(item.actionid == action) then
if(isPlayer(cid) ~= true) then
return false
end
local pvocation = getPlayerVocation(cid)
if(getPlayerStorageValue(cid, storage) >= gasto[pvocation]) then
doCreatureAddMana(cid, mana[pvocation])
ppos = getCreaturePosition(cid)
addEvent(doAddManaOnTile, 1000, cid, gasto[pvocation], mana[pvocation], storage, storage_usando)
setPlayerStorageValue(cid, storage_usando, 1)
else
doPlayerSendTextMessage(cid, 4, "Você não possui pots de mana suficientes para recuperar mana.")
end
end
end
function onStepOut(cid, item, pos)
stopEvent(event)
setPlayerStorageValue(cid, storage_usando, 0)
end
function doAddManaOnTile(cid, gastocount, managain, storage, storage2)
doCreatureAddMana(cid, managain)
setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage)-gastocount)
if(getPlayerStorageValue(cid, storage2) == 1) then
event = addEvent(doAddManaOnTile, 1000, cid, gastocount, managain, storage, storage2)
end
end
Agora adicione a seguinte TAG em movements.xml:
<movevent type="StepIn" actionid="8200" event="script" value="usarpot.lua"/> <movevent type="StepOut" actionid="8200" event="script" value="usarpot.lua"/>
Não recomendo que mude o actionid que está definido ali, pois ele também é checado no script de usarpot.lua. Então, se mudar no movements.xml, não esqueça de mudar no usarpot.lua.
Pronto, agora o sistema está instalado, vá no seu map editor e coloque a actionid 8200 no tile que você quer que execute a função. Pode colocar em quantos tiles quiser, e só basta testar.
Estou agurdando a resposta aqui, testei aqui e funcionou perfeitamente.
Abraços e espero resposta.
Está PROIBIDO a publicação desse script em algum outro lugar.
Editado Abril 15 por Mateusoo
info
Grupo: Campones
Registrado: 02/09/12
Posts: 20
Reputação: -1
Gênero: Masculino
Char no Tibia: Darkvento

mais tipo como compra as pot? virtuais
teria como vc criar um npc chamad nuvem e la vc compra essas pot virtuais
mais tipo como compra as pot? virtuais
teria como vc criar um npc chamad nuvem e la vc compra essas pot virtuais
Boa noite,
No tutorial eu lhe ensinei a adicionar uma action que ao usar certo item, você compra 5000 pots virtuais por 10k.
Na verdade não posso fazer, eu não mecho com NPCs.
O que eu fiz foi o Sistema em si e a action pra comprar os potions.
Abraço.
Aguardando a resposta se o sistema funcionou ou não ai.
info
Grupo: Campones
Registrado: 07/03/14
Posts: 64
Reputação: +19

Cara, já respondo sua dúvida uma vez, ou então de alguem com o problema parecido.
Em movements.xml adiciona um script .lua com isso dentro:
--BY GSTAVOLIBER FOR XTIBIA
function onStepIn(cid, item, position, fromPosition)
local config = {
str = 24000,
strCountPots = 240001
}
if item.actionid == 2001 then
if getPlayerStorageValue(cid, config.strCountPots) == 0 then
doTeleportThing(cid, fromPostition)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED,"Você precisa comprar poções especiais para treinar aqui! ")
setPlayerStorageValue(cid, config.str, 0)
end
if getPlayerStorageValue(cid, config.str) == 0 then
setPlayerStorageValue(cid, config.str, 1)
repeat
addEvent(doCreatureAddMana(cid, ADDmana()), 60) -- editar o tempo de cada heal
setPlayerStorageValue(cid, config.strCountPots, getPlayerStorageValue(cid, config.strCountPots) - 1)
until (getPlayerStorageValue(cid, config.strCountPots) == 0)
if(getPlayerStorageValue(cid, config.strCountPots) == 0) then
doTeleportThing(cid, fromPostition)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED,"Suas poções acabaram. Por favor, compre mais, para continuar treinando.")
setPlayerStorageValue(cid, config.str, 0)
end
end
else doTeleportThing(cid, fromPostition)
setPlayerStorageValue(cid, config.str, 0)
end
return TRUE
end
function onStepOut(cid, item, pos)
setPlayerStorageValue(cid, config.str, 0)
return TRUE
end
function ADDmana()
manaADD = {math.random(200, 450)} -- editar a quantidade minima e a quantidade maxima de heal.
return manaADD
end
<movevent type="StepIn" actionid="2001" event="script" value="nomeDoScript.lua"/> <movevent type="StepOut" actionid="2001" event="script" value="nomeDoScript.lua"/>
Agora, basta criar um NPC, que adicione na strCountPots a quantidade de poções que comprar. Qnd essa storage chegar a 0, ele será retirado do tile.
-GstavoLiber
Editado Abril 16 por GstavoLiber
info
Grupo: Campones
Registrado: 02/09/12
Posts: 20
Reputação: -1
Gênero: Masculino
Char no Tibia: Darkvento

poderia me passar oque eu tenho que digitar no npc lembrando essas pot virtual nao pode pesar nada n tira nem 1% da cap
se puder eu ficaria agradecido n sei criar npc :x
Editado Abril 16 por lucasaoqui




info
Grupo: Campones
Registrado: 02/09/12
Posts: 20
Reputação: -1
Gênero: Masculino
Char no Tibia: Darkvento
Tipo eu quero que tenha um npc chamado nuvem e que la vc compre pot para uma camera de treinamento so que as pot nao vai pra sua bp ela fica armazenada e quando voce pisar em certo tile elas vao ser usada nao ocupa cap nem nada as pot e tipo invisivel ela fica no tile e quando se pisar no tile as pot que se compro la no npc começa a pota
as pot nao vai pra bp elas fica armaezenada no tile elas vao ser usada quando vc pisar no tile
se nao intendeu posso postar ss que eu vi num ot
up