SK
pedido

vip hp e mp extra

Por sk8sk8ter, 20 de jul. de 2015 em Scripts

resolvido
script
31
2.8k
sk8sk8terS
21 de julho de 2015 às 23:48

@sk8sk8ter, dá pra fazer sim, vou fazer aqui :)

 

Edit: Não testei, caso não tenha dado certo me chama MP

 

 

tipo deu certo mais com o efeito ao contrario em vez de dar mais vida diminui a vida e mana e usei outro script que aquele da a voc mais a voc sai depois que loga ai usei suas função aki

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

 

local config={

removeOnUse = "yes" -- remover quando usar ("yes" or "no")

}

 

local days = 15 -- dias que serão adicionados

local daysvalue = days * 24 * 60 * 60

local storageplayer = getPlayerStorageValue(cid, 13540)

local timenow = os.time()

 

local percentHP = getCreatureHealth(cid) / 100

local percentMN = getCreatureMaxHealth(cid) / 100

 

local addHealth = percentHP * 30 -- * x = quantos % você quer adicionar (37 = 37%, 111 = 111% ...)

local addMana = percentMN * 30 -- * x = quantos % você quer adicionar (40 = 40%, 1424242 = 1424242% ...)

 

 

if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then

time = timenow + daysvalue

else

time = storageplayer + daysvalue

end

if doPlayerSetPromotionLevel(cid, 2) == 1 or getPlayerVocation(cid) == 5 then

doPlayerSetVocation(cid, 9)

end

 

if doPlayerSetPromotionLevel(cid, 2) == 2 or getPlayerVocation(cid) == 6 then

doPlayerSetVocation(cid, 10)

end

 

 

if doPlayerSetPromotionLevel(cid, 2) == 3 or getPlayerVocation(cid) == 7 then

doPlayerSetVocation(cid, 11)

end

 

if doPlayerSetPromotionLevel(cid, 2) == 4 or getPlayerVocation(cid) == 8 then

doPlayerSetVocation(cid, 12)

end

 

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A condição física e mágica do seu personagem aumentou em 30%.") -- edite se quiser, se não quiser o texto, só apagar essa linha :D

setPlayerStorageValue(cid, 13540, time)

setCreatureMaxHealth(cid, addHealth)

setCreatureMaxMana(cid, addMana)

 

 

local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60))

doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")

if (config.removeOnUse == "yes") then

doRemoveItem(item.uid, 1)

end

 

return TRUE

end

 

 

agora oque eu faço aki como configuro sera bom enquando isso vo fuçando no script ve se consigo arruma se alguem tiver uma luz ai :D

 

OmegaO
21 de julho de 2015 às 23:54

Pelo que eu entendi do script do Rigby, sempre que você usar o item de virar vip sua vida vai aumentar, podendo usá-lo indefinidamente. Além disso, ele não contabiliza a vida adicional que você vai ganhar nem tira a vida extra quando você deixa de ser VIP.

sk8sk8terS
22 de julho de 2015 às 00:05

consegui colokei ao inves de 30 , 130 não da tipo bem certo 30% mais aumenta so que tem um poblema axo que não podia ser porcentagem pq se um cara lvl 10 compra vip e adcionar vip ele vai ganha tipo 10 a mais de vida e mana e se um level 100 coloka vai ganha tipo 100 de vida e mana claro exemplo entendeu intão se ao inves de adcionar porcentagem axo melhor adcionar uma quantia unica axo que até mais facil intão tem como trocar colokar pra independente do lvl adcionar ''x'' mana e ''x'' vida ???

RigByR
22 de julho de 2015 às 10:17

Tô no celular nesse momento e já tô indo dormi então amanhã eu posto o script completo,porque o que eu postei aí acabo saindo pela metade, mas é praticamente isso.

bye

consegui colokei ao inves de 30 , 130 não da tipo bem certo 30% mais aumenta so que tem um poblema axo que não podia ser porcentagem pq se um cara lvl 10 compra vip e adcionar vip ele vai ganha tipo 10 a mais de vida e mana e se um level 100 coloka vai ganha tipo 100 de vida e mana claro exemplo entendeu intão se ao inves de adcionar porcentagem axo melhor adcionar uma quantia unica axo que até mais facil intão tem como trocar colokar pra independente do lvl adcionar ''x'' mana e ''x'' vida ???

 

Mano se decide, ta ai

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
local days = 15 -- dias que serão adicionados
local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 13540)
local timenow = os.time()
 
    if getPlayerStorageValue(cid, 13540) - timenow <= 0 then
        time = timenow + daysvalue
    else
        time = storageplayer + daysvalue
    end
 
 
local config = {
    [{1, 5}] = {gainHP = 6.5, gainMP = 39, promote = 9},
    [{2, 6}] = {gainHP = 6.5, gainMP = 39, promote = 10},
    [{3, 7}] = {gainHP = 13, gainMP = 14.5, promote = 11},
    [{4, 8}] = {gainHP = 19.5, gainMP = 6.5, promote = 12},
  --[VOCAÇÕES] = {GainHP = hp que ele ganha por level , GainMP = mp que ele ganha por level, promote = ID DA PROMOTE}
}
 
    for k, v in pairs(config) do
        for i = 1, #k do 
            if getPlayerVocation(cid) == k[i] then
                doPlayerSetVocation(cid, v.promote)
                local level = getPlayerLevel(cid)
                setCreatureMaxHealth(cid, (v.gainHP * level))
                setCreatureMaxMana(cid, (v.gainMP * level))
                doCreatureAddHealth(cid, (v.gainHP * level))
                doCreatureAddMana(cid, (v.gainMP * level))
                break
            end
        end
    end
 
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")
    setPlayerStorageValue(cid, 13540, time)
    local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60))
    doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")
    doRemoveItem(item.uid, 1)
    return true
end
sk8sk8terS
22 de julho de 2015 às 13:26

nw deu man seu script quando se desloga e loga o char perde a vocação

chevekoC
22 de julho de 2015 às 14:47

Também pensei o mesmo quando você disse sobre os 30%, quanto mais level o cara tiver, mais HP vai adicionar, seria desequilibrado demais... Mas tá aí agora, com uma quantia exata, e não 30%

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local config={
removeOnUse = "yes" -- remover quando usar ("yes" or "no")
}
local days = 15 -- dias que serão adicionados
local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 13540)
local timenow = os.time()
local addHealth = 100 -- quanto de vida quer que adiciona.
local addMana = 100 -- quanto de mana quer que adicionar. (Se o efeito por negativo de novo, coloca um negativo (-) na frente, tipo -100
if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then
time = timenow + daysvalue
else
time = storageplayer + daysvalue
end
if doPlayerSetPromotionLevel(cid, 2) == 1 or getPlayerVocation(cid) == 5 then
doPlayerSetVocation(cid, 9)
end
if doPlayerSetPromotionLevel(cid, 2) == 2 or getPlayerVocation(cid) == 6 then
doPlayerSetVocation(cid, 10)
end
if doPlayerSetPromotionLevel(cid, 2) == 3 or getPlayerVocation(cid) == 7 then
doPlayerSetVocation(cid, 11)
end
if doPlayerSetPromotionLevel(cid, 2) == 4 or getPlayerVocation(cid) == 8 then
doPlayerSetVocation(cid, 12)
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A condição física e mágica do seu personagem aumentou em "..addHealth.." e "..addMana.." pontos.") -- edite se quiser, se não quiser o texto, só apagar essa linha :D
setPlayerStorageValue(cid, 13540, time)
setCreatureMaxHealth(cid, addHealth)
setCreatureMaxMana(cid, addMana)
local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60))
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")
if (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
end
return TRUE
end

 

sk8sk8terS
22 de julho de 2015 às 14:50

assim q eu chegar em casa vo testa mais axo q agora vai to ancioso

chevekoC
22 de julho de 2015 às 15:12

kkkk, vai dar certo sim, primeira vez que to ajudando alguém aqui, tenho aprendido bastante em LUA ultimamente

sk8sk8terS
22 de julho de 2015 às 19:35

Também pensei o mesmo quando você disse sobre os 30%, quanto mais level o cara tiver, mais HP vai adicionar, seria desequilibrado demais... Mas tá aí agora, com uma quantia exata, e não 30%

 

 

cara não deu tipo oque o script fez foi mudar a vida do char deixando o char com 100 de vida e mana independente do lvl o char fika com mana e vida 100... oque será que pode ser ?

chevekoC
22 de julho de 2015 às 20:08
Melhor resposta

Ah tá, erro meu então, vou arrumar aqui, já sei o que é..

 

Edit: agora vai! kkkk

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local config={
removeOnUse = "yes" -- remover quando usar ("yes" or "no")
}
local days = 15 -- dias que serão adicionados
local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 13540)
local timenow = os.time()
local playerHP = getCreatureMaxHealth(cid)
local playerMana = getCreatureMaxMana(cid)
local addHealth = playerHP + 100 -- quanto de vida quer que adiciona.
local addMana = playerMana + 100 -- quanto de mana quer que adicionar. (Se o efeito por negativo de novo, coloca um negativo (-) na frente, tipo -100
if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then
time = timenow + daysvalue
else
time = storageplayer + daysvalue
end
if doPlayerSetPromotionLevel(cid, 2) == 1 or getPlayerVocation(cid) == 5 then
doPlayerSetVocation(cid, 9)
end
if doPlayerSetPromotionLevel(cid, 2) == 2 or getPlayerVocation(cid) == 6 then
doPlayerSetVocation(cid, 10)
end
if doPlayerSetPromotionLevel(cid, 2) == 3 or getPlayerVocation(cid) == 7 then
doPlayerSetVocation(cid, 11)
end
if doPlayerSetPromotionLevel(cid, 2) == 4 or getPlayerVocation(cid) == 8 then
doPlayerSetVocation(cid, 12)
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A condição física e mágica do seu personagem aumentou em "..addHealth.." e "..addMana.." pontos.") -- edite se quiser, se não quiser o texto, só apagar essa linha :D
setPlayerStorageValue(cid, 13540, time)
setCreatureMaxHealth(cid, addHealth)
setCreatureMaxMana(cid, addMana)
local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60))
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")
if (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
end
return TRUE
end

 

Editado Julho 22 por Cheveko

Night WolfN
23 de julho de 2015 às 12:44

ao mudar a vocation por script, se o server for 8.6 ou maior vc tem que alterar tb o promoteLevel.. e no XML você tem que definir fromvocation pra mostrar de qual classe aquela classe se deriva.
Se não fizer isso, toda vez que logar vai estar a classe anterior.

sk8sk8terS
23 de julho de 2015 às 14:28

e como muda o promote lvl ... quero verificar isso tbm

Night WolfN
23 de julho de 2015 às 15:49

promotelevel vc define no npc ou no script que dá a promote.

RigByR
23 de julho de 2015 às 19:27

Ou você pode fazer um onLogin para que quando logue e tenha a storage da vip a vocação mude.

sk8sk8terS
23 de julho de 2015 às 19:40

Ah tá, erro meu então, vou arrumar aqui, já sei o que é..

 

Edit: agora vai! kkkk

 

 

 

cara valeu obrigado de vdd faz tempo que to tentando por esse tipo de script agora so quero faze outro topico pra que quando acabe a vip a vida e mana ganha saia porem so de ta a vip com essa vantagem pra min ja ta mais que bom muito bom

 

obrigado a todos que me deram atenção e tentarão ajudar !!!! vlw x tibia