Ir para conteúdo
  • 0

(resolvido) (Saco de pancadas) Outfit muda ao dar hit.


diarmaint

Pergunta

Galera, o saco de pancada tem outfit x, mas quando o player hita quero que ela mude para z, e depois volte ao normal.

pra ter um movimento quando ele sofre dano, como nesses gifs.

https://gyazo.com/e128118f0602d2f7220c19410ed59958

https://gyazo.com/f10486908a9dacbcf98f48e3f314ae39

 

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Pronto, fiz aqui, dessa vez está pegando 100%, o único defeito que eu acho é que não sei como controlar o tempo de delay para não ativar quando já estiver ativo, mas isso você tenta resolver hahaha, é algo simples.

 

Segue abaixo as instruções;.

 

Primeiramente como já disse, crie um arquivo no creaturescripts/scripts com o nome saco.lua e coloque isso

 

 
function onStatsChange(cid, attacker, type, combat, value)
--########-- CONFIGURAÇÕES ------
local outfit1 = {lookType = 275} -- Numero da primeira outfit
local outfit2 = {lookType = 276} -- Numero da segunda outfit
local outfit3 = {lookType = 277} -- Numero da terceira outfit
local outfit4 = {lookType = 278} -- Numero da quarta outfit

local delay = 300 -- Representa o intervalo de troca de outfits
--- ##################################
local function Outfit1(parameters)
if(isCreature(cid)) then
doSetCreatureOutfit(cid, outfit1, delay)
end
end

local function Outfit2(parameters)
if(isCreature(cid)) then
doSetCreatureOutfit(cid, outfit2, delay)
end
end

local function Outfit3(parameters)
if(isCreature(cid)) then
doSetCreatureOutfit(cid, outfit3, delay)
end
end

local function Outfit4(parameters)
if(isCreature(cid)) then
doSetCreatureOutfit(cid, outfit4, delay)
end
end

local parameters = {cid = cid, var = var}
addEvent(Outfit1, 300, parameters)
addEvent(Outfit2, 600, parameters)
addEvent(Outfit3, 900, parameters)
addEvent(Outfit4, 1200, parameters)







    
    return true
end

 

 

Agora vá em creaturescripts.xml e coloque essa linha

 

<event type="statschange" name="saco" event="script" value="saco.lua"/>

 

 

OBS: Não é preciso colocar o nome do monstro nas linhas, só seguir as instruções.

 

Agora vá em login.lua e antes do ultimo return true adicione isso

 

 registerCreatureEvent(cid, "saco")

 

Agora configurando o monstro, abra o script do seu saco de pancadas

 

Coloque essa tag em baixo de

			<script>

	<event name="saco"/>
	
</script>	

 

    <flags>
        <flag summonable="1"/>
        <flag attackable="1"/>
        <flag hostile="1"/>
        <flag illusionable="1"/>
        <flag convinceable="1"/>
        <flag pushable="0"/>
        <flag canpushitems="1"/>
        <flag canpushcreatures="0"/>
        <flag targetdistance="1"/>
        <flag staticattack="90"/>
        <flag runonhealth="0"/>
    </flags>

 

Ficando assim

 

 

	<flags>
		<flag summonable="1"/>
		<flag attackable="1"/>
		<flag hostile="1"/>
		<flag illusionable="1"/>
		<flag convinceable="1"/>
		<flag pushable="0"/>
		<flag canpushitems="1"/>
		<flag canpushcreatures="0"/>
		<flag targetdistance="1"/>
		<flag staticattack="90"/>
		<flag runonhealth="0"/>
	</flags>
				<script>

	<event name="saco"/>
	
</script>	

 

 

 

10 horas atrás, kttallan disse:

Bom aproveitando a emenda está aqui para diversas versões.

 

POKETIBIA

 

  Mostrar conteúdo oculto

 


 

Abra seu arquivo em data/creaturescript/scripts/statschangue.lua e cole isso antes da function

 
 



	if getCreatureName(attacker) == "Monster" then 
		local outfit1, outfit2, outfit3 = {lookType = 400}, {lookType = 401}, {lookType = 402} 
			doSetCreatureOutfit(attacker, outfit1, 1 * 1000) 
				doSetCreatureOutfit(attacker, outfit2, 2 * 1000) 
			doSetCreatureOutfit(attacker, outfit3, 3 * 1000) 
		return true
	end		

 

 

 

 
 

 

OUTROS

 

  Mostrar conteúdo oculto

 


 

Crie um arquivo no creaturescript/scripts chamado saco.lua com o codigo abaixo em seguida registre no loguin.lua e na xml

 
 



function onStatsChange(cid, attacker, type, combat, value)

if getCreatureName(attacker) == "Monster" then
	local outfit1, outfit2, outfit3 = {lookType = 400}, {lookType = 401}, {lookType = 402}
		doSetCreatureOutfit(attacker, outfit1, 1 * 1000)
			doSetCreatureOutfit(attacker, outfit2, 2 * 1000)
		doSetCreatureOutfit(attacker, outfit3, 3 * 1000)
	return true
end

end 

 

 

Então mano não sou um scripter avançado mas vou ditar uns erros que teve no seu codigo a qual não conduzia com o pedido do amigo.

 

@Fjinst

 

 

Nessa parte você não especificou que criatura é no caso ele quer apenas 1 que é o saco, seguindo a logica essa parte trocaria de toda creatura que desse dano, e também na condição não seria cid e sim attacker para especificar.

 

se a creatura(attacada) == "Saco" then

     adicionaroutfit(attacada, seconds * 1000)

end

 

Não trocaria por que é por tag, pelo menos no meu servidor TFS 0.4 8.60 não trocou, só trocou da criatura que eu especifiquei no script dela.

Link para o comentário
Compartilhar em outros sites

  • 0

Não testei, não sei se irá funcionar

 

Em creaturescripts/scripts

 

crie um arquivo chamado saco.lua

 

  local roupa = {lookType = numerodaoutfit} --- coloque o numero da outfit  local tempo = 5 -- representa cinco segundosfunction onStatsChange(cid, attacker, type, combat, value)if isCreature(cid) thendoSetCreatureOutfit(cid, roupa, tempo * 1000)end        return trueend

 

em creaturescripts.xml

 

	<event type="statschange" name="saco" event="script" value="saco.lua"/>

 

 

Agora vá no script do seu monstro trainer

 

Adicione essa tag nele
 

        <script>    <event name="saco"/>    </script>

 

Como disse não sei se irá funcionar

Link para o comentário
Compartilhar em outros sites

  • 0
30 minutos atrás, Fjinst disse:

Não testei, não sei se irá funcionar

 

Em creaturescripts/scripts

 

crie um arquivo chamado saco.lua

 

  local roupa = {lookType = numerodaoutfit} --- coloque o numero da outfit  local tempo = 5 -- representa cinco segundosfunction onStatsChange(cid, attacker, type, combat, value)if isCreature(cid) thendoSetCreatureOutfit(cid, roupa, tempo * 1000)end        return trueend

 

em creaturescripts.xml

 

	<event type="statschange" name="saco" event="script" value="saco.lua"/>

 

 

Agora vá no script do seu monstro trainer

 

Adicione essa tag nele

 

        <script>    <event name="saco"/>    </script>

 

Como disse não sei se irá funcionar

 

nao testei mas para sua informaçao sao varias newtype entao ira colocar 1,2,3,4?

Link para o comentário
Compartilhar em outros sites

  • 0
28 minutos atrás, Fjinst disse:

Não testei, não sei se irá funcionar

 

Em creaturescripts/scripts

 

crie um arquivo chamado saco.lua

 

  local roupa = {lookType = numerodaoutfit} --- coloque o numero da outfit  local tempo = 5 -- representa cinco segundosfunction onStatsChange(cid, attacker, type, combat, value)if isCreature(cid) thendoSetCreatureOutfit(cid, roupa, tempo * 1000)end        return trueend

 

em creaturescripts.xml

 

	<event type="statschange" name="saco" event="script" value="saco.lua"/>

 

 

Agora vá no script do seu monstro trainer

 

Adicione essa tag nele

 

        <script>    <event name="saco"/>    </script>

 

Como disse não sei se irá funcionar

Valeu, Quando chegar em casa e testar te dou um feedback.

41 minutos atrás, Josegvb disse:

 

nao testei mas para sua informaçao sao varias newtype entao ira colocar 1,2,3,4?

Realmente, seriam mais de duas newtype.

Link para o comentário
Compartilhar em outros sites

  • 0
Spoiler

local config = {
[1] = {roupa = 2160, roupa2 = 2190, tempo = 5}
}

function onStatsChange(cid, attacker, type, combat, value) -- Poke X Fire

for i = 1, #config do

if isCreature(cid) then

doSetCreatureOutfit(cid, config.roupa, configtempo * 1000)

doSetCreatureOutfit(cid, config.roupa2, configtempo * 1000)

else

doPlayerSendCancel(cid, "Voce Esta Usando "..config.roupa..", "Voce Esta Usando"..config.roupa2..",!")

end

end

return true

end
 

tentar assim

Editado por Pokemon x Fire
Link para o comentário
Compartilhar em outros sites

  • 0

Bom aproveitando a emenda está aqui para diversas versões.

 

POKETIBIA

 

 

 


 

Abra seu arquivo em data/creaturescript/scripts/statschangue.lua e cole isso antes da function

 
 


	if getCreatureName(attacker) == "Monster" then 
		local outfit1, outfit2, outfit3 = {lookType = 400}, {lookType = 401}, {lookType = 402} 
			doSetCreatureOutfit(attacker, outfit1, 1 * 1000) 
				doSetCreatureOutfit(attacker, outfit2, 2 * 1000) 
			doSetCreatureOutfit(attacker, outfit3, 3 * 1000) 
		return true
	end		

 

 

 

 
 

 

OUTROS

 

 

 


 

Crie um arquivo no creaturescript/scripts chamado saco.lua com o codigo abaixo em seguida registre no loguin.lua e na xml

 
 


function onStatsChange(cid, attacker, type, combat, value)

if getCreatureName(attacker) == "Monster" then
	local outfit1, outfit2, outfit3 = {lookType = 400}, {lookType = 401}, {lookType = 402}
		doSetCreatureOutfit(attacker, outfit1, 1 * 1000)
			doSetCreatureOutfit(attacker, outfit2, 2 * 1000)
		doSetCreatureOutfit(attacker, outfit3, 3 * 1000)
	return true
end

end 

 

 

Então mano não sou um scripter avançado mas vou ditar uns erros que teve no seu codigo a qual não conduzia com o pedido do amigo.

 

@Fjinst

 

6 horas atrás, Fjinst disse:

if isCreature(cid) then

 

Nessa parte você não especificou que criatura é no caso ele quer apenas 1 que é o saco, seguindo a logica essa parte trocaria de toda creatura que desse dano, e também na condição não seria cid e sim attacker para especificar.

 

se a creatura(attacada) == "Saco" then

     adicionaroutfit(attacada, seconds * 1000)

end

 

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

  • 0
1 hora atrás, kttallan disse:
  Ocultar conteúdo
  Mostrar conteúdo oculto

 

 

 

 

 

Abra seu arquivo em data/creaturescript/scripts/statschangue.lua e cole isso antes da function

 

 

 

if getCreatureName(attacker) == "Monster" then local outfit1, outfit2, outfit3 = {lookType = 400}, {lookType = 401}, {lookType = 402} doSetCreatureOutfit(attacker, outfit1, 1 * 1000) doSetCreatureOutfit(attacker, outfit2, 2 * 1000) doSetCreatureOutfit(attacker, outfit3, 3 * 1000) return true end

 

 

 

 

 

 

 

Crie um arquivo no creaturescript/scripts chamado saco.lua com o codigo abaixo em seguida registre no loguin.lua e na xml

 

 

 

function onStatsChange(cid, attacker, type, combat, value) if getCreatureName(attacker) == "Monster" then local outfit1, outfit2, outfit3 = {lookType = 400}, {lookType = 401}, {lookType = 402} doSetCreatureOutfit(attacker, outfit1, 1 * 1000) doSetCreatureOutfit(attacker, outfit2, 2 * 1000) doSetCreatureOutfit(attacker, outfit3, 3 * 1000) return true end end

 

 

Bom aproveitando a emenda está aqui para diversas versões.

 

POKETIBIA

 

 

 

 

OUTROS

 

 

Aqui  == "Monster"   preciso colocar o nome do monstro ou não?

Fiz o creaturescript, colocquei a tag no xml

   <event type="statschange" name="Saco" event="script" value="saco.lua"/>

e registrei no login

registerCreatureEvent(cid, "Saco")

e coloquei a tag no monstro

      <script>

        <event name="saco"/>

      </script>

só que dá 

[Warning - Monster::Monster] Unknown event name - saco

[Warning - Monster::Monster] Unknown event name - saco

[Warning - Monster::Monster] Unknown event name - saco

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, diarmaint disse:

Aqui  == "Monster"   preciso colocar o nome do monstro ou não?

Fiz o creaturescript, colocquei a tag no xml

   <event type="statschange" name="Saco" event="script" value="saco.lua"/>

e registrei no login

registerCreatureEvent(cid, "Saco")

e coloquei a tag no monstro

      <script>

        <event name="saco"/>

      </script>

só que dá 

[Warning - Monster::Monster] Unknown event name - saco

[Warning - Monster::Monster] Unknown event name - saco

[Warning - Monster::Monster] Unknown event name - saco

Sim precisa colocar o nome do monstro entre "".

Não precisa colocar o tag no monstro.

 

Seu serve é de pokétibia?

Link para o comentário
Compartilhar em outros sites

  • 0
12 horas atrás, kttallan disse:

Sim precisa colocar o nome do monstro entre "".

Não precisa colocar o tag no monstro.

 

Seu serve é de pokétibia?

 

no dxp nao funfou kk 

Link para o comentário
Compartilhar em outros sites

  • 0
3 horas atrás, Fjinst disse:

Pronto, fiz aqui, dessa vez está pegando 100%, o único defeito que eu acho é que não sei como controlar o tempo de delay para não ativar quando já estiver ativo, mas isso você tenta resolver hahaha, é algo simples.

 

Segue abaixo as instruções;.

 

Primeiramente como já disse, crie um arquivo no creaturescripts/scripts com o nome saco.lua e coloque isso

 

 function onStatsChange(cid, attacker, type, combat, value)--########-- CONFIGURAÇÕES ------local outfit1 = {lookType = 275} -- Numero da primeira outfitlocal outfit2 = {lookType = 276} -- Numero da segunda outfitlocal outfit3 = {lookType = 277} -- Numero da terceira outfitlocal outfit4 = {lookType = 278} -- Numero da quarta outfitlocal delay = 300 -- Representa o intervalo de troca de outfits--- ##################################local function Outfit1(parameters)if(isCreature(cid)) thendoSetCreatureOutfit(cid, outfit1, delay)endendlocal function Outfit2(parameters)if(isCreature(cid)) thendoSetCreatureOutfit(cid, outfit2, delay)endendlocal function Outfit3(parameters)if(isCreature(cid)) thendoSetCreatureOutfit(cid, outfit3, delay)endendlocal function Outfit4(parameters)if(isCreature(cid)) thendoSetCreatureOutfit(cid, outfit4, delay)endendlocal parameters = {cid = cid, var = var}addEvent(Outfit1, 300, parameters)addEvent(Outfit2, 600, parameters)addEvent(Outfit3, 900, parameters)addEvent(Outfit4, 1200, parameters)        return trueend

 

 

Agora vá em creaturescripts.xml e coloque essa linha

 

<event type="statschange" name="saco" event="script" value="saco.lua"/>

 

 

OBS: Não é preciso colocar o nome do monstro nas linhas, só seguir as instruções.

 

Agora vá em login.lua e antes do ultimo return true adicione isso

 

 registerCreatureEvent(cid, "saco")

 

Agora configurando o monstro, abra o script do seu saco de pancadas

 

Coloque essa tag em baixo de

			<script>	<event name="saco"/>	</script>	

 

    <flags>        <flag summonable="1"/>        <flag attackable="1"/>        <flag hostile="1"/>        <flag illusionable="1"/>        <flag convinceable="1"/>        <flag pushable="0"/>        <flag canpushitems="1"/>        <flag canpushcreatures="0"/>        <flag targetdistance="1"/>        <flag staticattack="90"/>        <flag runonhealth="0"/>    </flags>

 

Ficando assim

 

 

	<flags>		<flag summonable="1"/>		<flag attackable="1"/>		<flag hostile="1"/>		<flag illusionable="1"/>		<flag convinceable="1"/>		<flag pushable="0"/>		<flag canpushitems="1"/>		<flag canpushcreatures="0"/>		<flag targetdistance="1"/>		<flag staticattack="90"/>		<flag runonhealth="0"/>	</flags>				<script>	<event name="saco"/>	</script>	

 

 

 

Não trocaria por que é por tag, pelo menos no meu servidor TFS 0.4 8.60 não trocou, só trocou da criatura que eu especifiquei no script dela.

Comigo funcionou, Deu certo cara, Perfeito!

TE AMO <3

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...