Ir para conteúdo

Buff System


DevilMoon

Posts Recomendados

Sistema Ispirado no Sayajin System!! So que Diferenciamos Na Talkactions!

Estavamos Com Devidos Problemas nas Funçoes mais Conseguimos.. Vamos ao Oque Intereça

 

 

Vá em Data>Talkactions.xml Adicione esta Tag:

 

<talkaction words="!buff"  value="buffsystem.lua"/>

 

Agora vá em Data>Talkactions>Scripts crie uma pasta.lua chamada power e coloque isso dentro:

 

--[[ script By Vodkart,Kydrai and DevilMoon]]--

local config = {
ex = 1, -- exausted para ele nao pegar varios buff sempre o mesmo tempo que no time
needpremium = "yes",
level = 100,
s = 9797,
time = 1, -- minutos que ele ficara bufado
price = 10000
}


local sorcerer = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(sorcerer, CONDITION_PARAM_TICKS, config.time*60*1000)
setConditionParam(sorcerer, CONDITION_PARAM_STAT_MAXHEALTH, 300)
setConditionParam(sorcerer, CONDITION_PARAM_STAT_MAXMANA, 500)    
setConditionParam(sorcerer, CONDITION_PARAM_SKILL_SHIELD, 6)  
setConditionParam(sorcerer, CONDITION_PARAM_STAT_MAGICLEVEL, 10)

local druid = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(druid, CONDITION_PARAM_TICKS, config.time*60*1000)
setConditionParam(druid, CONDITION_PARAM_STAT_MAXHEALTH, 250)
setConditionParam(druid, CONDITION_PARAM_STAT_MAXMANA, 600)      
setConditionParam(druid, CONDITION_PARAM_SKILL_SHIELD, 5)  
setConditionParam(druid, CONDITION_PARAM_STAT_MAGICLEVEL, 10)


local paladin = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(paladin, CONDITION_PARAM_TICKS, config.time*60*1000)
setConditionParam(paladin, CONDITION_PARAM_SKILL_DISTANCE, 10)
setConditionParam(paladin, CONDITION_PARAM_SKILL_SHIELD, 5)
setConditionParam(paladin, CONDITION_PARAM_STAT_MAGICLEVEL, 3)
setConditionParam(paladin, CONDITION_PARAM_STAT_MAXHEALTH, 300)
setConditionParam(paladin, CONDITION_PARAM_STAT_MAXMANA, 300)


local knight = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(knight, CONDITION_PARAM_TICKS, config.time*60*1000)
setConditionParam(knight, CONDITION_PARAM_SKILL_CLUB, 12)
setConditionParam(knight, CONDITION_PARAM_SKILL_SWORD, 12)
setConditionParam(knight, CONDITION_PARAM_SKILL_AXE, 12)
setConditionParam(knight, CONDITION_PARAM_SKILL_SHIELD, 3)
setConditionParam(knight, CONDITION_PARAM_STAT_MAGICLEVEL, 2)
setConditionParam(knight, CONDITION_PARAM_STAT_MAXHEALTH, 700)
setConditionParam(knight, CONDITION_PARAM_STAT_MAXMANA, 200)


function onSay(cid, words, param)


if(config.needpremium == "yes") and (not isPremium(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Sorry,This power is someone for premium account.")
return TRUE
end


if getPlayerLevel(cid) >= config.level then
if doPlayerRemoveMoney(cid,config.price) == TRUE then
if (getPlayerStorageValue(cid, config.s) <= os.time()) then
if(isInArray({1, 5}, getPlayerVocation(cid))) then  -- id das vocation 
doAddCondition(cid, sorcerer)
end
if(isInArray({2, 6}, getPlayerVocation(cid))) then  -- id das vocation 
doAddCondition(cid, druid)
end
if(isInArray({3, 7}, getPlayerVocation(cid))) then  -- id das vocation 
doAddCondition(cid, paladin)
end
if(isInArray({4, 8}, getPlayerVocation(cid))) then  -- id das vocation 
doAddCondition(cid, knight)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You are Buffed.") 
setPlayerStorageValue(cid, config.s, os.time()+config.ex*60)
else
doPlayerSendCancel(cid, "Sorry, you only can again use this power after "..config.ex.." minutes.")
end
else
doPlayerSendTextMessage(cid,23,"you dont have " .. config.price .. " gps for buy buff")
end
else
doPlayerSendCancel(cid, "Sorry, you need level "..config.level.." or more.")
end
return TRUE
end

 

Feche e Salve Tudo, e o Tempo ta para 1 Minuto!!

Edite ao Seu Gosto...

 

 

Sugestoes e Duvidas Somente neste Topico.

 

 

Abraços..

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

só pra explicar o script, é uma talkactions que adiciona uns atributos(skills,mana,hp),ou sejá um buff,cada vocação tem um buff por certo tempo e esse buff custa dinheiro.

Link para o comentário
Compartilhar em outros sites

Olha só ... esse script ae Almenta também o maximo de hp de um Player certo^^?

Bom,eu tenhu no meu servidor o comando !buyvida,só que tipo se o player usar o buff e em seguida !buyvida ,ele buga o comando e adiciona 10x + Vida do que o necessário.

tem como arrumar isso tipo Por pra talk só ser usada depois que o buff sair?

meu script ae inbaixo\/

 

function onSay(cid, words, param)

local money = 1000000

local health = 2000

local premium = "yes" -- Apenas players premium accounts "yes" or "no"!?

if premium == "yes" and not isPremium(cid) then

return doPlayerSendTextMessage(cid, 23, "Sorry, only premium players.")

end

if doPlayerRemoveMoney(cid, money) then

setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + health)

else

doPlayerSendCancel(cid, "Você precisa de "..money.." gp's")

end

return TRUE

end

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

sim

 

usando o mesmo valor da storage do buff system =]

 

o script da vida ta ai:

 

 

 

function onSay(cid, words, param)
local money = 1000000
local health = 2000
local s = 9797
local premium = "yes" -- Apenas players premium accounts "yes" or "no"!?
if premium == "yes" and not isPremium(cid) then
return doPlayerSendTextMessage(cid, 23, "Sorry, only premium players.")
end
if (getPlayerStorageValue(cid, s) <= os.time()) then 
if doPlayerRemoveMoney(cid, money) == TRUE then
setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + health)
else
doPlayerSendCancel(cid, "Você precisa de "..money.." gp's")
end
else
doPlayerSendCancel(cid, "Espere o Buff acabar para usar este comando.") 
end
return TRUE
end

 

 

 

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

×
×
  • Criar Novo...