Ir para conteúdo
  • 0

[Resolvido] [PEDIDO] Double Xp


vinicius231

Pergunta

Ola Pessoal Do xtibia

 

Eu gostaria de uma Script de EVENTO double xp, que quando o player matasse um pokemon quando o evento estivesse ativo, Aparecesse uma mensagen no "registro do servidor" falando que ele ganhou uma quantia de xp a mais por causa do evento XP


Quem Poder ajudar agradeço de coração 

 

 

By Vini

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 1
  • Diretor

Em talkactions crie um arquivo chamado doubleexp.lua, cole isto:

function onSay(cid, words, param, channel)
local config = {
storage = 102590,
}
if(param == 'cancel') or (param == 'cancelar') 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 + 20% de EXP por "..param.." hora(s)! Aproveite.")
end
return true
end

TAG:

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

AwkUqYB.png

Depois em creaturescript crie um arquivo chamado doubleexp.lua, cole isto:

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.2*exp)/2)
doPlayerAddExperience(cid, count)
addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60))
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "[DOUBLE XP] Você ganhou 20% a mais de exp.")
end
else
return true
end
return true
end

TAG:

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

em login.lua coloque isso:

registerCreatureEvent(cid, "ExpBonus")

A modificação da porcentagem é na script do creaturescript. 1.2 = 20% de double. Edite da meneira que desejar.

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

  • 0
5 minutos atrás, Yan Liima disse:

O evento seria ativado pelo Administrador do servidor ou seria ativado automaticamente por X dia configurado?

 

1 minuto atrás, Marshmello disse:

Me de umas Infos,

 

O evento ativar automaticamente ou ativo por algum comando administrativo?

 

Ativo por administrador 

 

Link para o comentário
Compartilhar em outros sites

  • 0
23 minutos atrás, Yan Liima disse:

Em talkactions crie um arquivo chamado doubleexp.lua, cole isto:


function onSay(cid, words, param, channel)
local config = {
storage = 102590,
}
if(param == 'cancel') or (param == 'cancelar') 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 + 20% de EXP por "..param.." hora(s)! Aproveite.")
end
return true
end

TAG:


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

AwkUqYB.png

Depois em creaturescript crie um arquivo chamado doubleexp.lua, cole isto:


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.2*exp)/2)
doPlayerAddExperience(cid, count)
addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60))
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "[DOUBLE XP] Você ganhou 20% a mais de exp.")
end
else
return true
end
return true
end

TAG:


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

em login.lua coloque isso:


registerCreatureEvent(cid, "ExpBonus")

A modificação da porcentagem é na script do creaturescript. 1.2 = 20% de double. Edite da meneira que desejar.

 

 

Deu esse erro

 

 

[14/02/2019 18:35:28] [Error - LuaScriptInterface::loadFile] datapack/talkactions/scripts/exp.lua:23: unexpected symbol near 'ï'
[14/02/2019 18:35:28] [Warning - Event::loadScript] Cannot load script (datapack/talkactions/scripts/exp.lua)
[14/02/2019 18:35:28] datapack/talkactions/scripts/exp.lua:23: unexpected symbol near 'ï'

@Marshmello  Blz

Link para o comentário
Compartilhar em outros sites

  • 0
  • Diretor
4 minutos atrás, vinicius231 disse:

 

 

Deu esse erro

 

 

[14/02/2019 18:35:28] [Error - LuaScriptInterface::loadFile] datapack/talkactions/scripts/exp.lua:23: unexpected symbol near 'ï'
[14/02/2019 18:35:28] [Warning - Event::loadScript] Cannot load script (datapack/talkactions/scripts/exp.lua)
[14/02/2019 18:35:28] datapack/talkactions/scripts/exp.lua:23: unexpected symbol near 'ï'

@Marshmello  Blz

é erro de carectere ao ter copiado amigo... Tente copiar de novo ou só ir na linha citada(23) e tentar localizar o caractere bugado. Em outras palavras, apague a linha e refaz.

Link para o comentário
Compartilhar em outros sites

  • 0
4 minutos atrás, Yan Liima disse:

é erro de carectere ao ter copiado amigo... Tente copiar de novo ou só ir na linha citada(23) e tentar localizar o caractere bugado. Em outras palavras, apague a linha e refaz.

Funcionou ❤️ Obrigado

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...