Ir para conteúdo
  • 0

Poção Que Regenera O Soul Points


pedrizito15

Pergunta

Posts Recomendados

  • 0

local count = 2 -- aqui coloca quanto de soul vai receber

local total_soul = 250 -- aqui vai qual o maximo de soul do player

function onUse(cid, item, frompos, itemEx, topos)

if getPlayerSoul(cid) <= 1 then

doPlayerAddSoul(cid,count)

end

if getPlayerSoul(cid) >= total_soul then

doPlayerSendCancel(cid, "Sorry, you are max soul.")

end

return true

end

 

---

Eu não testei fiz rapidin aqui, to no TRABALHO. Sem o patrão ver. ^}^

Link para o comentário
Compartilhar em outros sites

  • 0

Isso vai fazer regenerar um número fixo né? Por que não fazer um Random de 10 ou 20 para cima ou para baixo?

 

Exemplo:

 

local count = 50

 

Então varia de 40 a 60 de Soul regenerados.

Link para o comentário
Compartilhar em outros sites

  • 0

entende mas no caso não seria

local count = 50

e sim

local count = math.random(1,50)

mas vlw a ideia vou colocar o script das duas maneira uma com variação e outra com um numero fixo.

O cara que escolhe. Segui o script

1° Sem variação (Regeneração fixa)

 

 

local count = 2 -- aqui coloca quanto de soul vai receber

local total_soul = 250 -- aqui vai qual o maximo de soul do player

function onUse(cid, item, frompos, itemEx, topos)

if getPlayerSoul(cid) <= 1 then

doPlayerAddSoul(cid,count)

end

if getPlayerSoul(cid) >= total_soul then

doPlayerSendCancel(cid, "Sorry, you are max soul.")

end

return true

end

 

 

2° Com variação (Regeneração com variação)

 

 

local count = math.random(1,50) -- quatidade de soul que pode variar (sempre mude o segundo número no caso o número (50)

local total_soul = 250 -- aqui vai qual o maximo de soul do player

function onUse(cid, item, frompos, itemEx, topos)

if getPlayerSoul(cid) <= 1 then

doPlayerAddSoul(cid,count)

end

if getPlayerSoul(cid) >= total_soul then

doPlayerSendCancel(cid, "Sorry, you are max soul.")

end

return true

end

 

 

Editado por SmiX
Link para o comentário
Compartilhar em outros sites

  • 0

não esta funcionando aqui editei ela no mastermind potion. Teria como editar essa tag aqui :

 

 

[8704] = {empty = 7636, splash = 2, health = {1, 50}}, -- small health potion

Para aumentar a soul já troquei por soul e soul points mais nada, se tiver outro jeito também help ai.
Link para o comentário
Compartilhar em outros sites

  • 0

Eu editei o script do smix

 

1° Sem variação (Regeneração fixa)

 

 

 

 

 

 


local count = 2 -- aqui coloca quanto de soul vai receber
local total_soul = 250 -- aqui vai qual o maximo de soul do player
function onUse(cid, item, frompos, itemEx, topos)
if getPlayerSoul(cid) < total_soul then
doPlayerAddSoul(cid,count)
end
if getPlayerSoul(cid) >= total_soul then
doPlayerSendCancel(cid, "Sorry, you are max soul.")
end
return true
end

 

 

 

 

2° Com variação (Regeneração com variação)

 

 

 

local count = math.random(1,50) -- quatidade de soul que pode variar (sempre mude o segundo número no caso o número (50)
local total_soul = 250 -- aqui vai qual o maximo de soul do player
function onUse(cid, item, frompos, itemEx, topos)
if getPlayerSoul(cid) < total_soul then
doPlayerAddSoul(cid,count)
end
if getPlayerSoul(cid) >= total_soul then
doPlayerSendCancel(cid, "Sorry, you are max soul.")
end
return true
end

 

Link para o comentário
Compartilhar em outros sites

  • 0

Não, o certo seria utilizar uma função parecida com getCreatureMaxSoul, infelizmente não sei se existe.

 

Neste caso vai ter que separar esse total_soul em vocations. Cada numero de vocation teria seu total_soul diferente. Dá para fazer isso sem ter que criar vários arquivos.

Link para o comentário
Compartilhar em outros sites

  • 0
local classeSoul = {
[1] = 200, -- coloque o id da classe entre os parenteses e a quantidade de soul do lado.
[2] = 300,
[3] = 250,
[4] = 100
}

local porcentMax = 20 -- o potion vai encher no maximo 20% de soul, ou seja, se o player tiver no maximo 100 de soul o potion vai encher de 1 á 20 de soul.

function onUse(cid, item, frompos, itemEx, topos)
if getPlayerSoul(cid) < classeSoul[getPlayerVocation(cid)] then
	doPlayerAddSoul(cid,math.random(1,classeSoul[getPlayerVocation(cid)]*(porcentMax/100)))
	doSendMagicEffect(getCreaturePosition(cid), 13)
else
	doPlayerSendCancel(cid, "Sorry, you are max soul.")
	doSendMagicEffect(getCreaturePosition(cid), 2)
end
return true
end

Editado por Jhon992
Link para o comentário
Compartilhar em outros sites

  • 0

ae,adicionei tbm um min de regeneração,porque regenra 1 é foda

local classeSoul = {
    [1] = 200, -- coloque o id da classe entre os COLCHETES e a quantidade de soul do lado.
    [2] = 300,
    [3] = 250,
    [4] = 100
}
local porcentMin = 5 --minimo que vai enche em porcentagen
local porcentMax = 20 -- o potion vai encher no maximo 20% de soul

function onUse(cid, item)
    if getPlayerSoul(cid) < classeSoul[getPlayerVocation(cid)] then
		    doPlayerAddSoul(cid,math.random(classeSoul[getPlayerVocation(cid)]*(porcentMin/100),classeSoul[getPlayerVocation(cid)]*(porcentMax/100)))
		    doSendMagicEffect(getCreaturePosition(cid), 13)
			 doRemoveItem(item.uid)
    else
		    doPlayerSendCancel(cid, "Sorry, you are max soul.")
		    doSendMagicEffect(getCreaturePosition(cid), 2)
    end
return true
end

@jhon992

são colchetes,n parenteses.

Link para o comentário
Compartilhar em outros sites

  • 0

Eu tentei edita um health potion eu sou inisiante na area de script mas ve se vai funcioanr e os scripters ai se tiver errado me fala como consertar pois eu amo fazer script ^^ rsrs

 

Vai na pasta do ot\actions\scripts\liquids e crie uma pasta com o seguinte nome : soul_potione coloca la dentro o seguinte

 

local MIN = 150 ---minimo de soul que pode recuperar se quiser aumente ou diminua

local MAX = 300 ---maximo de soul que pode recuperar se quiser aumente ou diminua

 

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 doCreatureAddSoul(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then -----aki tava doCreatureAddHealth e eu mudei para Soul

return FALSE

end

 

doAddCondition(cid, exhaust)

doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)

doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)

doRemoveItem(item.uid) ----- aki e e se vc quiser que nao seja infinita se quiser que seja so tirar eu axo ne :/

return TRUE

end

 

 

Testa ai se nao der desculpe mais nao sei como eu disse sou novato

Editado por Lordfire
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...