Ir para conteúdo
  • 0

vip hp e mp extra


sk8sk8ter

Pergunta

omega fiz aki pra vc me ajuda!!!

 

como fazer com que uma vocação ganhe mais vida e mais mana

 

vou usar isso com a vip ... vo da um exemplo

sou um sorc com "150hp" e "300mp"

ai uso um item viro vip minha vocação vai pra

epci master sorc e minha vida e mana aumentaria 30% "195hp" e "390mp"

 

como vo faze isso usando vip ta aki o script da minha vip system

 

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

if getPlayerVocation(cid) > 4 then
doPlayerSetVocation(cid, getPlayerVocation(cid) + 4)
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

 

 

obs: minha vip ja da as vocações certinho desde que o player antes de adquirir vip tenha a primeira promote ...os id delas é epic sorc 9,epic druid 10,epic pala 11,epic kina12....

 

 

um erro tambem que gostaria de arrumar

""""aproveitando o topico queria sabe se tem como conserta pra que se o player for kina ou elite kina usando o item vip ele granhe a promote epic kina... por que com esse script que tenho da vip se o player for kina e usa o item vip não vira epic kina ai tipo o cara vai perde as vantagens da vip"""

 

agradeço desde já :D

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

Posts Recomendados

  • 0

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 por Cheveko
Link para o comentário
Compartilhar em outros sites

  • 0

Poste o vocations.xml

 

 

 

<?xml version="1.0" encoding="UTF-8"?>

<vocations>

<vocation id="0" name="None" description="none" needpremium="0" gaincap="5" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="1" manamultiplier="4.0" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="0" attackable="no">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/>

</vocation>

<vocation id="1" name="Sorcerer" description="a sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="5" gainmanaticks="3" gainmanaamount="60" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="1">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/>

</vocation>

<vocation id="2" name="Druid" description="a druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="5" gainmanaticks="3" gainmanaamount="60" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="2">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/>

</vocation>

<vocation id="3" name="Paladin" description="a paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="4" gainhpamount="5" gainmanaticks="4" gainmanaamount="60" manamultiplier="1.4" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="3">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/>

</vocation>

<vocation id="4" name="Knight" description="a knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="3" gainhpamount="5" gainmanaticks="6" gainmanaamount="60" manamultiplier="3.0" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="4">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/>

</vocation>

<vocation id="5" name="Master Sorcerer" description="a master sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="10" gainmanaticks="2" gainmanaamount="60" manamultiplier="1.1" attackspeed="1400" soulmax="200" gainsoulticks="15" fromvoc="1" lessloss="30">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/>

</vocation>

<vocation id="6" name="Elder Druid" description="an elder druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="10" gainmanaticks="2" gainmanaamount="60" manamultiplier="1.1" attackspeed="1400" soulmax="200" gainsoulticks="15" fromvoc="2" lessloss="30">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/>

</vocation>

<vocation id="7" name="Royal Paladin" description="a royal paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="3" gainhpamount="10" gainmanaticks="3" gainmanaamount="60" manamultiplier="1.4" attackspeed="1400" soulmax="200" gainsoulticks="15" fromvoc="3" lessloss="30">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/>

</vocation>

<vocation id="8" name="Elite Knight" description="an elite knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="10" gainmanaticks="4" gainmanaamount="60" manamultiplier="3.0" attackspeed="1400" soulmax="200" gainsoulticks="15" fromvoc="4" lessloss="30">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/>

</vocation>

<vocation id="9" name="Epic Master Sorcerer" description="an epic master sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="10" gainmanaticks="2" gainmanaamount="10" manamultiplier="1.1" attackspeed="700" soulmax="200" gainsoulticks="15" fromvoc="5" lessloss="50">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/>

</vocation>

<vocation id="10" name="Epic Elder Druid" description="an epic elder druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="10" gainmanaticks="2" gainmanaamount="10" manamultiplier="1.1" attackspeed="700" soulmax="200" gainsoulticks="15" fromvoc="6" lessloss="50">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/>

</vocation>

<vocation id="11" name="Epic Royal Paladin" description="an epic royal paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="3" gainhpamount="10" gainmanaticks="3" gainmanaamount="10" manamultiplier="1.4" attackspeed="700" soulmax="200" gainsoulticks="15" fromvoc="7" lessloss="50">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/>

</vocation>

<vocation id="12" name="Epic Elite Knight" description="an epic elite knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="8" gainhpamount="10" gainmanaticks="4" gainmanaamount="10" manamultiplier="3.0" attackspeed="700" soulmax="200" gainsoulticks="15" fromvoc="8" lessloss="50">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/>

</vocation>

</vocations>

 

Link para o comentário
Compartilhar em outros sites

  • 0

Hm.
Você basicamente vai adicionar 30% de HP/Mana ganha por level em tal vocação.

Exemplo :

 gainhp="5" gainmana="30"

30% de 5 = 1.5;30% de 30 = 9.
Sendo assim :

5 + (30% de 5 (1.5)); 30 + (30% de 30(9)).

Ficando :

 gainhp="6.5" gainmana="39"

Lembrando que eu sou do design, não tenho nada com Scripting haha.
Se estiver errado, peço perdão.

 

 

Abraços, Benny

 

Link para o comentário
Compartilhar em outros sites

  • 0

oq vc se falo ta certo mais nw é oq eu quero ... jogava infinity-sky q tinha esse systema exemplo tinha meu kina lvl 10 ele tem 100 hp

50 mp ai compro item que da vip uso viro vip kina lvl 10

fiko com 130 hp

65 mp

 

deu pra intende tipo oq eu qeria

Link para o comentário
Compartilhar em outros sites

  • 0

So basta você arrumar do jeito que o @Benny falo ai em cima, não esqueça que você tem que editar o vocation.xml também para que a vocação continue com o HP e MP novo.

Aqui o código

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 = 100, gainMP = 30, promote = 9},
    [{2, 6}] = {gainHP = 100, gainMP = 30, promote = 10},
    [{3, 7}] = {gainHP = 100, gainMP = 30, promote = 11},
    [{4, 8}] = {gainHP = 100, gainMP = 30, 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))
                setCreatureMaxHealth(cid, (v.gainMP * level))
                break
            end
        end
    end
    return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

ta mais nw qero q quando upe ganhe mais vida e mana so quero q o player vip tenha vantagem de vida e mana ...

 

ele é lvl 10 tem 100 de vida 100 de mana

ai vira vip continua level 10 mais terá 130 de vida 130 de mana vamos supor que ele não upe e sua vip acabe ai nesse caso a vida volte ele com lvl 10 100 vida 100 mana

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

  • 0

Acho que vocÊ não entendeu, e nem testo.

Você tem configurar ai para pode funciona né.

Vou explica:

Ex: Sorcerer ganha 30 de mana e você quer que ganhe 30% a mais, 30 / 100 * 30 = 9 + 30 = 39

Ex2: Sorcerer ganha 5 de life e você quer que ele ganhe 30% a mais 5 / 100 * 30 = 1,5 + 5 = 6,5

 

ai so basta você alterar:

[{ID da Sorcerer, ID da Master Sorcerer}] = {gainHP = HP por level, gainMP = MP por level, promote = ID da Epic Sorcerer},
-- Ficando
[{1, 5}] = {gainHP = 6.5, gainMP = 39, promote = 9},[/

para que ele continue com o bonus você tem que editar no xml da vocação também, para que ele continue recebendo o bonus se não vai para, de ganha o bonus emquanto ele upa.

gainhp="6.5" gainmana="39"

Isso é so um exemplo, você terar que alterar em todas.

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

  • 0

vo faze um exemplo esquece da voc vip vamos supor q so tem kina e elite kina as voc ganha o mesmo quando se upa certo ai ele vai isa o item vip ele vai continuar com o mesmo ganho de vida e mana mais tera mais vida e mais mana que um char que nw tenha vip sacou a jogada ...

 

So basta você arrumar do jeito que o @Benny falo ai em cima, não esqueça que você tem que editar o vocation.xml também para que a vocação continue com o HP e MP novo.

Aqui o código

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 = 100, gainMP = 30, promote = 9},
    [{2, 6}] = {gainHP = 100, gainMP = 30, promote = 10},
    [{3, 7}] = {gainHP = 100, gainMP = 30, promote = 11},
    [{4, 8}] = {gainHP = 100, gainMP = 30, 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))
                setCreatureMaxHealth(cid, (v.gainMP * level))
                break
            end
        end
    end
    return true
end

 

adciono a vida e a mana tipo usei o item a vida do char fiko no fiu do vermelho ai aumento a vida e mana ganho a vocação epic porem não adciono o [vip] no nome e ao deslogar e logar perdesse a vocação não diz que é vip nem quando dias foi adcionado

 

Link para o comentário
Compartilhar em outros sites

  • 0

@sk8sk8ter, as vocações terão o mesmo ganho de HP/Mana por level, só que ao usar o item o personagem terá uma quantidade ou % de HP maior?

 

Tipo... Level 10, tem 100 de HP e 100 de Mana, ganha 1 por 1 a cada level... Só que se o player usar o item VIP vai ter 30 HP máximo a mais, então no level 10 ele terá 130 de HP, mas continuará ganhando 1 por 1 a cada level?

Link para o comentário
Compartilhar em outros sites

  • 0

Eu tive uma ideia de como fazer, mas tá bem complicado. Se ninguém conseguir fazer de um jeito melhor, eu tento aqui.

Tô considerando mudar o hpmax direto na db e atualizar a cada login, mas é muito propício a bugs...

Link para o comentário
Compartilhar em outros sites

  • 0

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

 

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

 

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()
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) - timenow <= 0 then
time = timenow + daysvalue
else
time = storageplayer + daysvalue
end
if getPlayerVocation(cid) > 4 then
doPlayerSetVocation(cid, getPlayerVocation(cid) + 4)
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.")
doRemoveItem(item.uid, 1)
return true
end

 

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

×
×
  • Criar Novo...