Ir para conteúdo

Evento Double Exp


SkyLigh

Posts Recomendados

Fala galera tudo bem? Essa semana teve um membro que pediu um evento de double exp até que consegui fazer usando alguns scripts como base, então vamos ao código.

INSTALAÇÃO

Separador.PNG

Vá em data/creaturescripts/scripts e em creaturescripts.xml adicione a seguinte tag.

<event type="kill" name="ExpBonus" event="script" value="exp.lua"/>

Em data/creaturescripts/scripts crie um arquivo .lua e renomeie para exp.lua e adicione o seguinte código.

function onKill(cid, target)
if isPlayer(cid) and isMonster(target) then
if getGlobalStorageValue(102590) - os.time() >= 1 then
local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier)
local count = ((getMonsterInfo(string.lower(getCreatureName(target))).experience*1.5*exp)/2)
doPlayerAddExperience(cid, count)
addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60))
end
else
return TRUE
end
return TRUE
end


Agora no data/creaturescripts/scripts e login.lua adicione a seguinte tag.

registerCreatureEvent(cid, "ExpBonus")


Agora vá em data/talkactions/scripts talkactions.xml

<talkaction words="/doubleexp" access="5" event="script" value="exp.lua"/>

Em data/talkactions/scripts crie um arquivo.lua e o renomeio para exp.lua e adicione o seguinte código dentro.

function onSay(cid, words, param, channel)
local config = {
storage = 102590,
}
if(param == 'cancel') then
if getGlobalStorageValue(config.storage) > 0 then
setGlobalStorageValue(config.storage, -1)
doBroadcastMessage("Double Exp cancelado")
end
return true
end
	
param = tonumber(param)
if(not param or param < 0) then
doPlayerSendCancel(cid, "Digite por quantas horas o evento ira durar")
return true
end
if getGlobalStorageValue(config.storage) - os.time() <= 0 then
setGlobalStorageValue(config.storage, os.time()+param*60*60)
doBroadcastMessage("Exp bonus ativado 50% + EXP  por "..param.." horas! Aproveite.")
end
return true
end

Separador.PNG

COMO UTILIZAR

Para ativar o comando digite /doubleexp Quantidade de horas que vai durar o evento Exemplo /doubleexp 3 o evento ira durar por 3 horas.

Para cancelar o evento basta digitar /doubleexp cancel apenas os GOD'S podem utilizar os 2 comandos.

Separador.PNG

Créditos

--- Pela postagem do tópico e edição nos códigos.

--- Por eu tê pego uma parte de um script dele do creaturescripts.

Espero que gostem :)

Link para o comentário
Compartilhar em outros sites

Aqui ocorre tudo bem até a hora que o xp tem q ser dobrado..

 

No caso é pq é tfs 0.4 ne? So funfa nos 3.6 né?

 

Eu só cheguei a testar no 0.3.6 e 0.3.4 sobre o 0.4 não sei... ocorre algum erro no distro?

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
  • Diretor

Otima script, e otima organização no topico nem precisaria dizer mais você é foda mesmo Kissy kk é uma pena eu ter parado com tibia, mais eu trabalho com tfs 0.4 poderia adaptar mais primeiro teria que saber o erro...

Link para o comentário
Compartilhar em outros sites

  • Diretor

Kissy seu lindu, testei em tfs 0.4 e aqui não deu nenhum erro. Pensei em adicionar uma mensagem apos o jogador logar avisando que esta em double exp, e quando acabasse o double exp envia-se uma mensagem dizendo que acabou, e a mensagem de login avisando que esta em double xp é claro que não apareceria mais rs. Eai eu posso estar adicionando e compartilhando ou você poderia fazer isso para nos? hehe. e mais uma coisa que você não explicou caso alguém tenha duvida para mudar a porcentagem de EXP teria que mudar aqui né experience*1.5*exp no caso 1.5 seria 50%. e mudar também no Broadcast.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
×
×
  • Criar Novo...