Ir para conteúdo

[CREATURESCRIPT] Exp Aura Sytem (OTP Based)


Posts Recomendados

[CREATURESCRIPT] Exp Aura System (OTP Based)

Autor: Tony Araújo (OrochiElf)

 

Vídeo demonstrativo: https://imgur.com/8OFTfL8 

(por algum motivo não carregou link direto kk)

 

Eai rapeize, beleza? Espero que sim. Bom, hoje vim trazer a vocês o sistema de Exp Aura, fiz ele baseado no do OTPokemon.

Bom, o sistema funciona da seguinte forma, você mata um monstro e tem uma chance desse monstro criar uma aura, que no caso será um efeito que ficará se repetindo por determinado tempo, ou caso preferência, até o corpo do monstro sumir, caso apareça essa aura, você precisa ficar na posição do efeito para coletar esse bônus. É um sistema bem simples, porém legal (acredito eu kkkkkk).

Bom, vamos lá.

 

1. Vá em [data/creaturescripts/scripts] e lá crie um arquivo chamado (CODDINGS-ExpAura.lua), e dentro adicione:

LINK DO HASTEBIN AQUI

 

A configuração é bem simples, vamos lá:

local EXPAURA = {
	aura_effect = 11, -- É o ID do efeito que irá ficar se repetindo, até o bonus ser coletado.
	gain_effect = 14, -- É o ID do efeito que irá aparecer quando o bonus for coletado.
	spawn_chance = 25, -- É a chance que este bônus tem de acontecer, sendo 25 = 25%
	use_specific_time = 15 -- Aqui você configura por quanto tempo o bônus esperará ser coletado, em segundos, porém caso prefira que espere até o corpo sumir, troque o número por false
}

 

2. Continuando dentro do scripts, vá em (login.lua) e procure por:

registerCreatureEvent

E acima do primeiro resultado, você adicione:

registerCreatureEvent(cid, "ExpAura+")

 

3. Agora vá no creaturescripts.xml e adicione a tag:

<event type="kill" name="ExpAura+" event="script" value="CODDINGS-ExpAura.lua"/>

 

Bom galera, feito isso, está pronto para se divertir. Espero que gostem e façam bom proveito.

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

13 horas atrás, Nysman disse:

Onde tá o codigo do hastebin?

 

local EXPAURA = {
	aura_effect = 11,
	gain_effect = 14,
	spawn_chance = 40,
	use_specific_time = false -- Caso use, apenas adicione o tempo em segundos.
}

EXPAURA.doEvent = function(data)
	if getThingPos(data.cid).x == data.pos.x and getThingPos(data.cid).y == data.pos.y and getThingPos(data.cid).z == data.pos.z then
		doPlayerSendTextMessage(data.cid, 25, "You gain " .. data.exp .. " experience bonus.")
		doSendMagicEffect(data.pos, EXPAURA.gain_effect)
		return true
	else
		doSendMagicEffect(data.pos, EXPAURA.aura_effect)
		doSendAnimatedText(data.pos, "+" .. data.exp .. " exp", TEXTCOLOR_GREEN)
		if data.time > 0 then
			data.time = data.time - 1
			return addEvent(EXPAURA.doEvent, 1000, data)
		end
	end
end

function onKill(cid, target, lastHit)
	if isMonster(target) and getMonsterInfo(getCreatureName(target)) and math.random(100) <= EXPAURA.spawn_chance then
		EXPAURA.doEvent({
			cid = cid, 
			pos = getThingPos(target),  
			exp = getMonsterInfo(getCreatureName(target)).experience,
			time = (not EXPAURA.use_specific_time) and getItemInfo(getMonsterInfo(getCreatureName(target)).lookCorpse).decayTime or EXPAURA.use_specific_time
		})
	end
	return true
end

 

Link para o comentário
Compartilhar em outros sites

  • 2 years later...

Quando mata o poke do player em pvp cai XP do poke morto...para evitar isso, faça o seguinte...

 

Onde tá If isMonster(target) vc põe antes dele ficando assim

 

If not isSummon(target) and isMonster(target) 

 

E deixa o resto como está...vai para de dar XP pra quando matar o poke do player no pvo

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...