Ir para conteúdo
  • Cadastre-se

(Resolvido)Mensagens "setCallback" do NPC


Ir para solução Resolvido por Fabianuh,

Posts Recomendados

E ae Galera blz?

Então, gostaria de saber se tem como configurar essas duas ultimas linhas dos NPC:

Citar

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Pois essas ele buscam respostas automáticas, eu gostaria de poder colocar alguma mensagem de "ate logo" sem ser as que já existem no lib/npcsystem...



Explicando:
Gostaria de saber se teria como configurar manualmente a mensagem que o NPC diz depois que você fala "Bye" ou que você saia de perto dele.


Desde já Grato!

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

@peterson18 existe sim a possibilidade de alterar essas falas.

 

vá até a pasta data/npc/lib/npcsystem/ e abra o arquivo chamado npchandler.lua, você vai encontrar algo parecido com isso:

			[MESSAGE_GREET] 	= 'Welcome, |PLAYERNAME|! I have been expecting you.',
			[MESSAGE_FAREWELL] 	= 'Good bye, |PLAYERNAME|!',
			[MESSAGE_BUY] 		= 'Do you want to buy |ITEMCOUNT| |ITEMNAME| for |TOTALCOST| gold coins?',
			[MESSAGE_ONBUY] 	= 'It was a pleasure doing business with you.',
			[MESSAGE_BOUGHT] 	= 'Bought |ITEMCOUNT|x |ITEMNAME| for |TOTALCOST| gold.',
			[MESSAGE_SELL] 		= 'Do you want to sell |ITEMCOUNT| |ITEMNAME| for |TOTALCOST| gold coins?',
			[MESSAGE_ONSELL] 	= 'Thank you for this |ITEMNAME|, |PLAYERNAME| gold.',
			[MESSAGE_SOLD]	 	= 'Sold |ITEMCOUNT|x |ITEMNAME| for |TOTALCOST| gold.',
			[MESSAGE_MISSINGMONEY]	= 'Sorry, you don\'t have enough money.',
			[MESSAGE_NEEDMONEY] 	= 'You do not have enough money.',
			[MESSAGE_MISSINGITEM] 	= 'You don\'t even have that item, |PLAYERNAME|!',
			[MESSAGE_NEEDITEM]	= 'You do not have this object.',
			[MESSAGE_NEEDSPACE]	= 'You do not have enough capacity.',
			[MESSAGE_NEEDMORESPACE]	= 'You do not have enough capacity for all items.',
			[MESSAGE_IDLETIMEOUT] 	= 'Next, please!',
			[MESSAGE_WALKAWAY] 	= 'How rude!',
			[MESSAGE_DECLINE]	= 'Not good enough, is it... ?',
			[MESSAGE_SENDTRADE]	= 'Here\'s my offer, |PLAYERNAME|. Don\'t you like it?',
			[MESSAGE_NOSHOP]	= 'Sorry, I\'m not offering anything.',
			[MESSAGE_ONCLOSESHOP]	= 'Thank you, come back when you want something more.',
			[MESSAGE_ALREADYFOCUSED]= '|PLAYERNAME|! I am already talking to you...',
			[MESSAGE_PLACEDINQUEUE] = '|PLAYERNAME|, please wait for your turn. There are |QUEUESIZE| customers before you.'

Você pode alterar conforme seu gosto nesse arquivo (*vai afetar todos os npcs).

Ou então alterar no próprio arquivo xml de cada NPC. exemplo:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Morgan" script="data/npc/scripts/vip/morgan.lua" walkinterval="2000">
	<mana now="800" max="800"/>
	<health now="200" max="200"/>
	<look type="225" head="0" body="0" legs="0" feet="0" addons="0"/>
	<parameters>
	<parameter key="message_greet" value="Welcome, |PLAYERNAME|! I have been expecting you. Would like some {upgrades}? check {points}?" />
	<parameter key="module_keywords" value="1" />
	<parameter key="keywords" value="upgrades" />
	<parameter key="keyword_reply1" value="I can sell for you.. {infinite potions} and upgrade spells for {sorcerer}, {druid}, {paladin} and {knight}. want to buy one?" />
	</parameters>
</npc>

Dê uma certa atenção para a parte:

<parameter key="message_greet" value="Welcome, |PLAYERNAME|! I have been expecting you. Would like some {upgrades}? check {points}?" />

 

você pode alterar o message_greet para uma das opções:

  • MESSAGE_GREET
  •  MESSAGE_FAREWELL 
  • MESSAGE_BUY
  • MESSAGE_ONBUY
  • MESSAGE_BOUGHT 
  • MESSAGE_SELL
  •  MESSAGE_ONSELL
  •  MESSAGE_SOLD 
  • MESSAGE_MISSINGMONEY
  • MESSAGE_NEEDMONEY
  • MESSAGE_MISSINGITEM
  •  MESSAGE_NEEDITEM
  •  MESSAGE_NEEDSPACE
  •  MESSAGE_NEEDMORESPACE
  •  MESSAGE_IDLETIMEOUT
  • MESSAGE_WALKAWAY
  • MESSAGE_DECLINE
  •  MESSAGE_SENDTRADE
  • MESSAGE_NOSHOP
  • MESSAGE_ONCLOSESHOP
  • MESSAGE_ALREADYFOCUSED
  • MESSAGE_PLACEDINQUEUE

Qualquer dúvida, volte a postar novamente ?

Link para o post
Compartilhar em outros sites
20 horas atrás, Fabianuh disse:

@peterson18 existe sim a possibilidade de alterar essas falas.

 

vá até a pasta data/npc/lib/npcsystem/ e abra o arquivo chamado npchandler.lua, você vai encontrar algo parecido com isso:


			[MESSAGE_GREET] 	= 'Welcome, |PLAYERNAME|! I have been expecting you.',
			[MESSAGE_FAREWELL] 	= 'Good bye, |PLAYERNAME|!',
			[MESSAGE_BUY] 		= 'Do you want to buy |ITEMCOUNT| |ITEMNAME| for |TOTALCOST| gold coins?',
			[MESSAGE_ONBUY] 	= 'It was a pleasure doing business with you.',
			[MESSAGE_BOUGHT] 	= 'Bought |ITEMCOUNT|x |ITEMNAME| for |TOTALCOST| gold.',
			[MESSAGE_SELL] 		= 'Do you want to sell |ITEMCOUNT| |ITEMNAME| for |TOTALCOST| gold coins?',
			[MESSAGE_ONSELL] 	= 'Thank you for this |ITEMNAME|, |PLAYERNAME| gold.',
			[MESSAGE_SOLD]	 	= 'Sold |ITEMCOUNT|x |ITEMNAME| for |TOTALCOST| gold.',
			[MESSAGE_MISSINGMONEY]	= 'Sorry, you don\'t have enough money.',
			[MESSAGE_NEEDMONEY] 	= 'You do not have enough money.',
			[MESSAGE_MISSINGITEM] 	= 'You don\'t even have that item, |PLAYERNAME|!',
			[MESSAGE_NEEDITEM]	= 'You do not have this object.',
			[MESSAGE_NEEDSPACE]	= 'You do not have enough capacity.',
			[MESSAGE_NEEDMORESPACE]	= 'You do not have enough capacity for all items.',
			[MESSAGE_IDLETIMEOUT] 	= 'Next, please!',
			[MESSAGE_WALKAWAY] 	= 'How rude!',
			[MESSAGE_DECLINE]	= 'Not good enough, is it... ?',
			[MESSAGE_SENDTRADE]	= 'Here\'s my offer, |PLAYERNAME|. Don\'t you like it?',
			[MESSAGE_NOSHOP]	= 'Sorry, I\'m not offering anything.',
			[MESSAGE_ONCLOSESHOP]	= 'Thank you, come back when you want something more.',
			[MESSAGE_ALREADYFOCUSED]= '|PLAYERNAME|! I am already talking to you...',
			[MESSAGE_PLACEDINQUEUE] = '|PLAYERNAME|, please wait for your turn. There are |QUEUESIZE| customers before you.'

Você pode alterar conforme seu gosto nesse arquivo (*vai afetar todos os npcs).

Ou então alterar no próprio arquivo xml de cada NPC. exemplo:


<?xml version="1.0" encoding="UTF-8"?>
<npc name="Morgan" script="data/npc/scripts/vip/morgan.lua" walkinterval="2000">
	<mana now="800" max="800"/>
	<health now="200" max="200"/>
	<look type="225" head="0" body="0" legs="0" feet="0" addons="0"/>
	<parameters>
	<parameter key="message_greet" value="Welcome, |PLAYERNAME|! I have been expecting you. Would like some {upgrades}? check {points}?" />
	<parameter key="module_keywords" value="1" />
	<parameter key="keywords" value="upgrades" />
	<parameter key="keyword_reply1" value="I can sell for you.. {infinite potions} and upgrade spells for {sorcerer}, {druid}, {paladin} and {knight}. want to buy one?" />
	</parameters>
</npc>

Dê uma certa atenção para a parte:

<parameter key="message_greet" value="Welcome, |PLAYERNAME|! I have been expecting you. Would like some {upgrades}? check {points}?" />

 

você pode alterar o message_greet para uma das opções:

  • MESSAGE_GREET
  •  MESSAGE_FAREWELL 
  • MESSAGE_BUY
  • MESSAGE_ONBUY
  • MESSAGE_BOUGHT 
  • MESSAGE_SELL
  •  MESSAGE_ONSELL
  •  MESSAGE_SOLD 
  • MESSAGE_MISSINGMONEY
  • MESSAGE_NEEDMONEY
  • MESSAGE_MISSINGITEM
  •  MESSAGE_NEEDITEM
  •  MESSAGE_NEEDSPACE
  •  MESSAGE_NEEDMORESPACE
  •  MESSAGE_IDLETIMEOUT
  • MESSAGE_WALKAWAY
  • MESSAGE_DECLINE
  •  MESSAGE_SENDTRADE
  • MESSAGE_NOSHOP
  • MESSAGE_ONCLOSESHOP
  • MESSAGE_ALREADYFOCUSED
  • MESSAGE_PLACEDINQUEUE

Qualquer dúvida, volte a postar novamente ?


Bom acho que você não entendeu minha pergunta....

As mensagens pre-determinadas de quando você diz bye ou quando você sai de perto do NPC, eu sei configurar, mas eu queria que X NPC e apenas X NPC disse Y mensagens, quando eu disser bye ou quando eu sair de perto dele.

Testei:

 

Citar

  <parameter key="MESSAGE_FAREWELL" value="Mensagem"/>  

 

No XML do NPC mas ele não usa a mensagem que colo aqui...

Link para o post
Compartilhar em outros sites

@peterson18

Fiz o teste em um servidor TFS 0.4 3777 com o seguinte script:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Test" script="data/npc/scripts/default.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="132" head="38" body="58" legs="58" feet="58"/>
	<parameters>
		    <parameter key="message_greet" value="Welcome |PLAYERNAME|! Hungry?" />
			<parameter key="message_farewell" value="Vlw fiote!!" />
	
	</parameters>
</npc>

E o NPC me retornou corretamente. como o amigo @FlavioHulk pediu, poste seu npchandler.lua, e se possível nos informe qual distro você esta utilizando.

Screenshot_1.png

Link para o post
Compartilhar em outros sites
	-- Constant indexes for defining default messages.
	MESSAGE_GREET = 1 -- When the player greets the npc.
	MESSAGE_FAREWELL = 2 -- When the player unGreets the npc.
	MESSAGE_BUY = 3 -- When the npc asks the player if he wants to buy something.
	MESSAGE_ONBUY = 4 -- When the player successfully buys something via talk.
	MESSAGE_BOUGHT = 5 -- When the player bought something through the shop window.
	MESSAGE_SELL = 6 -- When the npc asks the player if he wants to sell something.
	MESSAGE_ONSELL = 7 -- When the player successfully sells something via talk.
	MESSAGE_SOLD = 8 -- When the player sold something through the shop window.
	MESSAGE_MISSINGMONEY = 9 -- When the player does not have enough money.
	MESSAGE_NEEDMONEY = 10 -- Same as above, used for shop window.
	MESSAGE_MISSINGITEM = 11 -- When the player is trying to sell an item he does not have.
	MESSAGE_NEEDITEM = 12 -- Same as above, used for shop window.
	MESSAGE_NEEDSPACE = 13 -- When the player don't have any space to buy an item
	MESSAGE_NEEDMORESPACE = 14 -- When the player has some space to buy an item, but not enough space
	MESSAGE_IDLETIMEOUT = 15 -- When the player has been idle for longer then idleTime allows.
	MESSAGE_WALKAWAY = 16 -- When the player walks out of the talkRadius of the npc.
	MESSAGE_DECLINE	 = 17 -- When the player says no to something.
	MESSAGE_SENDTRADE = 18 -- When the npc sends the trade window to the player
	MESSAGE_NOSHOP = 19 -- When the npc's shop is requested but he doesn't have any
	MESSAGE_ONCLOSESHOP = 20 -- When the player closes the npc's shop window
	MESSAGE_ALREADYFOCUSED = 21 -- When the player already has the focus of this npc.
	MESSAGE_WALKAWAY_MALE = 22 -- When a male player walks out of the talkRadius of the npc.
	MESSAGE_WALKAWAY_FEMALE = 23 -- When a female player walks out of the talkRadius of the npc.

 

Basta usar um dos ID acima, e incluir no final do script do NPC

npcHandler:setMessage(MESSAGE_WALKAWAY, "Example")
npcHandler:setMessage(MESSAGE_FAREWELL, "Example")

 

Link para o post
Compartilhar em outros sites

Sim, entendi. Esses negocio de Script é novo para mim.
Não sabia que CAPSLOOCK fazia diferença '-'

Grato aos dois pela atenção!

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