Ir para conteúdo
  • Cadastre-se

(Resolvido)[Pedido] Alterar effect


Ir para solução Resolvido por nookia,

Posts Recomendados

Bom tenho um script aqui que a função dele é que quando o player tiver a storage 13340 o player fica piscando o outfit só que eu gostaria de mudar esse efeito que fica piscando por umas shurikens rodeando o player como no vídeo abaixo:

 

 

 

 

Script:

local events = {}
 
 
 
function newColor(n)
 
 
 
local n = tonumber(n) or 0
 
local n = n - 19
 
 
 
return tonumber(n) or 0
 
 
 
end
 
 
 
 
 
-- comentario: se a cor for preta o addon vai para branco sendo que o certo é diminuir 19..
 
 
 
function changeOutfit(cid)
 
 
 
 
local sec = 0.5
if (isPlayer(cid) == FALSE) then
   return false
end
 
 
 
 
local temp = getCreatureOutfit(cid)
 
 
 
if type(temp) == "number" then
 
return true
 
end
 
 
 
local outfit = {
 
lookType=temp.lookType,
 
lookHead=newColor(temp.lookHead),
 
lookBody=newColor(temp.lookBody),
 
lookLegs=newColor(temp.lookLegs),
 
lookFeet=newColor(temp.lookFeet),
 
lookAddons = getCreatureOutfit(cid).lookAddons
 
}
 
doSetCreatureOutfit(cid, outfit, sec)
 
local event = addEvent(changeOutfit, 3.0*sec*450, cid)
 
events[cid] = event
 
 
 
return true
 
end
 
 
 
 
function onLogin(cid)
 
 
 
local storage = getGlobalStorageValue(13340)
if storage == getPlayerGuildId(cid) then
 
local event = addEvent(changeOutfit, 0, cid)
 
events[cid] = event
 
end
 
 
 
return TRUE
 
end
 
 
 
function onLogout(cid)
 
 
 
if events[cid] then
 
stopEvent(events[cid])
 
end
 
 
 
return TRUE
 
end

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites
local events = {}

function getPositionsByDirection(uid)
pos = getCreaturePosition(uid)
positionsByDirection = {
[1] = {x = pos.x + 1, y = pos.y - 1, z = pos.z, stackpos = 0},
[2] = {x = pos.x + 1, y = pos.y, z = pos.z, stackpos = 0},
[3] = {x = pos.x + 1, y = pos.y + 1, z = pos.z, stackpos = 0},
[4] = {x = pos.x, y = pos.y + 1, z = pos.z, stackpos = 0},
[5] = {x = pos.x - 1, y = pos.y + 1, z = pos.z, stackpos = 0},
[6] = {x = pos.x - 1, y = pos.y, z = pos.z, stackpos = 0},
[7] = {x = pos.x - 1, y = pos.y - 1, z = pos.z, stackpos = 0},
[8] = {x = pos.x, y = pos.y - 1, z = pos.z, stackpos = 0},
[9] = {x = pos.x, y = pos.y, z = pos.z, stackpos = 0}
}
return positionsByDirection
end
 
function changeOutfit(cid)
local sec = 0.5
if (isPlayer(cid) == FALSE) then
   return false
end
 
local effectPositions = getPositionsByDirection(cid)
doSendDistanceShoot(effectPositions[math.random(#effectPositions)], effectPositions[math.random(#effectPositions)], 18)
doSendDistanceShoot(effectPositions[math.random(#effectPositions)], effectPositions[math.random(#effectPositions)], 18)

local event = addEvent(changeOutfit, 3.0*sec*450, cid) 
events[cid] = event 
return true 
end
 
 
 
 
function onLogin(cid)
 
 
 
local storage = getGlobalStorageValue(13340)
if storage == getPlayerGuildId(cid) then
 
local event = addEvent(changeOutfit, 0, cid)
 
events[cid] = event
 
end
 
 
 
return TRUE
 
end
 
 
 
function onLogout(cid)
 
 
 
if events[cid] then
 
stopEvent(events[cid])
 
end
 
 
 
return TRUE
 
end
Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Deu este erro quando o player que tem a storage entra:

 

[12/01/2015 02:55:30] Lua Script Error: [CreatureScript Interface] 
[12/01/2015 02:55:30] in a timer event called from: 
[12/01/2015 02:55:30] data/creaturescripts/scripts/granaura.lua:onLogin
 
[12/01/2015 02:55:30] data/creaturescripts/scripts/granaura.lua:51: attempt to call global 'getCreatureLookDirection' (a nil value)
[12/01/2015 02:55:30] stack traceback:
[12/01/2015 02:55:30]  data/creaturescripts/scripts/granaura.lua:51: in function 'getPositionsByDirection'
[12/01/2015 02:55:30]  data/creaturescripts/scripts/granaura.lua:60: in function <data/creaturescripts/scripts/granaura.lua:54>

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites

puts auhuhea peria que eu ja altero

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Opa, agora parou o erro e está dando o efeito da shuriken só que a shuriken tem que estar rodendo o player em diagonal como neste vídeo no minuto 4:35

 

 

 

Abrass

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites
local events = {}
local function getPositionsByDirection(uid)
	local pos = getCreaturePosition(uid)
	local positionsByDirection = {
		[1] = {x = pos.x + 1, y = pos.y, z = pos.z, stackpos = 0},
		[2] = {x = pos.x, y = pos.y + 1, z = pos.z, stackpos = 0},
		[3] = {x = pos.x - 1, y = pos.y, z = pos.z, stackpos = 0},
		[4] = {x = pos.x, y = pos.y - 1, z = pos.z, stackpos = 0},
	}

	return positionsByDirection
end
 
function changeOutfit(cid, last)
	local sec = 0.5
	
	if not isPlayer(cid) then
	   return false
	end
  
	local effectPositions = getPositionsByDirection(cid)	
	local last = last or 1
	local last = (effectPositions[last] and last) or 1
	
	local next = (last == #effectPositions and 1) or last + 1
	
	doSendDistanceShoot(effectPositions[last], effectPositions[next], 18)

	local event = addEvent(changeOutfit, 3.0*sec*450, cid, last + 1) 
	events[cid] = event 
	return true 
end
 
 
 
 
function onLogin(cid) 
	local storage = getGlobalStorageValue(13340)
	if storage == getPlayerGuildId(cid) then 
		local event = addEvent(changeOutfit, 0, cid) 
		events[cid] = event 
	end

	return true
end
 
 
 
function onLogout(cid) 
	if events[cid] then 
		stopEvent(events[cid]) 
	end

	return true
end
Editado por MaXwEllDeN (veja o histórico de edições)

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

MaX o server ligou certinho, não aparece nenhum erro só que quando tento logar qualquer char ele fica kikando e não consigo entrar.

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites
local interval = 0.5 -- Em segundos

local function getPositions(uid)
	local pos = getCreaturePosition(uid)

	local ret = {
		[1] = {x = pos.x + 1, y = pos.y, z = pos.z},
		[2] = {x = pos.x, y = pos.y + 1, z = pos.z},
		[3] = {x = pos.x - 1, y = pos.y, z = pos.z},
		[4] = {x = pos.x, y = pos.y - 1, z = pos.z},
	}
 
	return ret
end
 
function changeOutfit(cid, last)
	local sec = 0.5
	
	if not isPlayer(cid) then
	   return false
	end
  
  	local positions = getPositions(cid)
	local last = last or 1
	local last = (positions[last] and last) or 1
	
	local next = (last == #positions) and 1 or last + 1
	
	doSendDistanceShoot(positions[last], positions[next], 18)
 
	addEvent(changeOutfit, 3.0 * interval * 450, cid, last + 1) 
	return true 
end
 
 
 
 
function onLogin(cid)
	if getGlobalStorageValue(13340) == getPlayerGuildId(cid) then 
		addEvent(changeOutfit, 0, cid)
	end
 
	return true
end
 
 
 
function onLogout(cid)
	return true
end
Editado por MaXwEllDeN (veja o histórico de edições)

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

Mesma coisa, continua kikando:

 

[13/01/2015 00:20:14] Account Manager has logged in.
[13/01/2015 00:20:14] Account Manager has logged out.
[13/01/2015 00:20:16] Account Manager has logged in.
[13/01/2015 00:20:16] Account Manager has logged out.
[13/01/2015 00:20:17] Account Manager has logged in.
[13/01/2015 00:20:17] Account Manager has logged out.
[13/01/2015 00:20:17] Account Manager has logged in.
[13/01/2015 00:20:17] Account Manager has logged out.

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites

Estranho, testei aqui e funcionou de boa.

 

Tenta assim:
 

local interval = 0.5 -- Em segundos
 
local function getPositions(uid)
	local pos = getCreaturePosition(uid)
 
	local ret = {
		[1] = {x = pos.x + 1, y = pos.y, z = pos.z},
		[2] = {x = pos.x, y = pos.y + 1, z = pos.z},
		[3] = {x = pos.x - 1, y = pos.y, z = pos.z},
		[4] = {x = pos.x, y = pos.y - 1, z = pos.z},
	}
 
	return ret
end
 
function changeOutfit(cid, last)
	local sec = 0.5
	
	if not isPlayer(cid) then
	   return false
	end
  
  	local positions = getPositions(cid)
	local last = last or 1
	local last = (positions[last] and last) or 1
	
	local next = (last == #positions) and 1 or last + 1
	
	doSendDistanceShoot(positions[last], positions[next], 18)
 
	addEvent(changeOutfit, 3.0 * interval * 450, cid, last + 1) 
	return true 
end
 
 
 
 
function onLogin(cid)
	addEvent(changeOutfit, 0, cid)
	return true
end

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

Kikou e deu o seguinte erro na distro:

 

[13/01/2015 01:16:12] Account Manager has logged in.
[13/01/2015 01:16:12] Account Manager has logged out.
 
[13/01/2015 01:16:12] Lua Script Error: [CreatureScript Interface] 
[13/01/2015 01:16:12] in a timer event called from: 
[13/01/2015 01:16:12] data/creaturescripts/scripts/granaura.lua:onLogin
 
[13/01/2015 01:16:12] luaGetCreaturePosition(). Creature not found
 
[13/01/2015 01:16:12] Lua Script Error: [CreatureScript Interface] 
[13/01/2015 01:16:12] in a timer event called from: 
[13/01/2015 01:16:12] data/creaturescripts/scripts/granaura.lua:onLogin
 
[13/01/2015 01:16:12] data/creaturescripts/scripts/granaura.lua:7: attempt to index local 'pos' (a number value)
[13/01/2015 01:16:12] stack traceback:
[13/01/2015 01:16:12]  data/creaturescripts/scripts/granaura.lua:7: in function 'getPositions'
[13/01/2015 01:16:12]  data/creaturescripts/scripts/granaura.lua:23: in function <data/creaturescripts/scripts/granaura.lua:16>

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites
local events = {}

function getPositionsByDirection(uid)
	pos = getCreaturePosition(uid)
	positionsByDirection = {
		[1] = {x = pos.x + 1, y = pos.y, z = pos.z, stackpos = 0},
		[2] = {x = pos.x, y = pos.y + 1, z = pos.z, stackpos = 0},
		[3] = {x = pos.x - 1, y = pos.y, z = pos.z, stackpos = 0},
		[4] = {x = pos.x, y = pos.y - 1, z = pos.z, stackpos = 0},
	}
	
	return positionsByDirection
end
 
function changeOutfit(cid)
	local sec = 0.5
	
	if not isPlayer(cid) then
	   return false
	end


  	local positions = getPositionsByDirection(cid)
	local last = last or 1
	local last = (positions[last] and last) or 1
	
	local next = (last == #positions) and 1 or last + 1
	
	doSendDistanceShoot(positions[last], positions[next], 18)

	local event = addEvent(changeOutfit, 3.0*sec*450, cid) 
	events[cid] = event 
	return true 
end
 
 
 
 
function onLogin(cid)
	local storage = getGlobalStorageValue(13340)
	if storage == getPlayerGuildId(cid) then	 
		local event = addEvent(changeOutfit, 0, cid)	 
		events[cid] = event	 
	end
	 
	return true 
end
 
 
 
function onLogout(cid)
	if events[cid] then 
		stopEvent(events[cid]) 
	end

	return true 
end
Editado por MaXwEllDeN (veja o histórico de edições)

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites
  • Solução

Vá em lib e crie um arquivo chamado, granAura e cole dentro:

local events = {}

local function getPositions(cid)
local pos = getCreaturePosition(cid)
local ret = {
[1] = {x = pos.x + 1, y = pos.y, z = pos.z},
[2] = {x = pos.x, y = pos.y + 1, z = pos.z},
[3] = {x = pos.x - 1, y = pos.y, z = pos.z},
[4] = {x = pos.x, y = pos.y - 1, z = pos.z},
}
return ret
end

function granEffect(cid, last)

local sec = 200
if (isPlayer(cid) == FALSE) then
return false
end

local positions = getPositions(cid)
local last = last or 1
local last = (positions[last] and last) or 1
local next = (last == #positions) and 1 or last + 1
doSendDistanceShoot(positions[last], positions[next], 18)
local event = addEvent(granEffect, sec, cid, last + 1)
events[cid] = event
return true
end

Em lib ainda abre o constant.lua e function.lua e adicione logo na primeira linha:

dofile('data/lib/granAura.lua')

Agora vá em creaturescripts/scripts e abre o login.lua e adicione encima do ultimo return TRUE:

--granAura--
if getPlayerStorageValue(cid, 13345) == 1 then
granEffect(cid)
return TRUE
end

e para ganhar o efeito, é só adicionar a storage 13345 no player que irá ganhar o efeito, no caso se quiser que já logue com o efeito adicione embaixo do primeiro end acima de registerCreatureEvent

granEffect(cid)

flw, abç.

Editado por nookia (veja o histórico de edições)

The medieval RpG Server

espada-barbara.jpg

[RpG] OLDWORLD OPEN TIBIA

Link para o post
Compartilhar em outros sites

Deu certo nookia mas agora como eu faço pra configurar entre guild, quando uma guild mata o boss ganha o efeito se outra matar ganha e a que estava no poder perda, como estava antes.

 

Se puder me explicar, grato.

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites

@nookia, pq vc editou o script? aquele lá tava certo e esse daí não :~~~  

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

@xWhiteWolf, porque ajudamos as pessoas e nem rep + dá para ficar tópico resolvido. Mais se quiser eu re-edito novamente.

The medieval RpG Server

espada-barbara.jpg

[RpG] OLDWORLD OPEN TIBIA

Link para o post
Compartilhar em outros sites

@nookia, é complicado cara mas o importante é que com a resposta certa você ajuda outras pessoas com a mesma dúvida também e eu percebi que você respondeu corretamente da forma que o membro queria e por isso te dei o REP+. Só comentei isso porque um membro criou outro tópico e ele postou seu script e disse que não tava funcionando do jeito certo, dai eu fui olhar e tava editado :/ Coloca da forma que tava antes que eu marco como melhor resposta, e acredito que o Rofl só não colocou antes porque ele não queria deixar como resolvido com algumas questões pendentes, como foi o caso dele ter citado de não ir pra guild. 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Nookia eu te reputei hoje pelo motivo de ontem não ter tido como pois minha internet caiu, obrigado pela ajuda a todos do tópico.

"Derrotar o inimigo em cem batalhas não é a excelência suprema; a excelência suprema consiste em vencer o inimigo sem ser preciso lutar."

 

mcYVuRL.png

 


 

logo_SS.png

Link para o post
Compartilhar em outros sites

@xWhiteWolf, pronto amigo, editado, eu só não respondi no tópico novamente porque não to usando seu sistema de Gran Castle e desculpa.

@Rofl, Para perder o efeito quando alguém ganha o Gran Tower novamente é só usar um stopEvent e para remover a storage usar:

setPlayerStorageValue(cid, 13345, 0)

abç.

Editado por nookia (veja o histórico de edições)

The medieval RpG Server

espada-barbara.jpg

[RpG] OLDWORLD OPEN TIBIA

Link para o post
Compartilhar em outros sites

@Rofl, seguinte, pra facilitar sua vida eu mantive o nome da função no script do @nookia e não editei a parte de checar a guild, vê se funciona ai fazendo o favor.

local events = {}

function getPositions(cid)
local pos = getCreaturePosition(cid)
local ret = {
[1] = {x = pos.x + 1, y = pos.y, z = pos.z},
[2] = {x = pos.x, y = pos.y + 1, z = pos.z},
[3] = {x = pos.x - 1, y = pos.y, z = pos.z},
[4] = {x = pos.x, y = pos.y - 1, z = pos.z},
}
return ret
end

function changeOutfit(cid, last)
local sec = 200
if (isPlayer(cid) == FALSE) then
   return false
end
local positions = getPositions(cid)
local last = last or 1
local last = (positions[last] and last) or 1
local next = (last == #positions) and 1 or last + 1
doSendDistanceShoot(positions[last], positions[next], 18)
local event = addEvent(changeOutfit, sec, cid, last + 1)
events[cid] = event
return true
end

function onLogin(cid)
local storage = getGlobalStorageValue(13340)
if storage == getPlayerGuildId(cid) then
local event = addEvent(changeOutfit, 0, cid, last + 1)
events[cid] = event
end
return TRUE
end
 
function onLogout(cid)
if events[cid] then
stopEvent(events[cid])
end
return TRUE
end

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo