Ir para conteúdo

Featured Replies

Postado
  • Autor

Oushe vou ver .. já posto se seu certo ;)

 

-------------- @editado

 

 

 

Bom ele Aparace no mapa ... pergunta pra mim se quero trocar beleza , quando vou confirmar "sim" ele não faz nada não da o item n fala se ta faltando alguma coisa ..... 

 

 

e o por que o erro no distro era que tinha colocado "change" e  é "changer" com o r no final ;)

 

a queria saber como faz pra eu colocar outro item .... tipo troca 2

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

IBNJHen.gifrf1sSxg.gif

  • Respostas 17
  • Visualizações 1.8k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Qual id do ouro ferro espada e elmo ?

  • No caso da, se desejar me passe porque eu ja coloco no script!   Eu fiz aqui rapidinho, no caso serve para apenas um item mais pode facilmente ser modificado para colocar quantos quiser. Eu fiz como

  • Tem certeza que coloco todos nomes corretamente, e nas pastas corretas ? Este erro quer dizer que não encontro o arquivo changer.lua dentro da pasta data/npc/scripts.

Postado

Bem eu refiz aqui, e vou explicar um pouquinho.

 

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
 
function ferro(cid, message, keywords, parameters, node)
if(not npcHandler:isFocused(cid)) then
return false
end
 
if getPlayerItemCount(cid,6567) >= 100 then
doPlayerRemoveItem(cid, 6567, 100)
doPlayerAddItem(cid, 12415, 1)
npcHandler:say("Aqui esta sua espada como prometido!", cid)
else
npcHandler:say("Voce nao tem o ferro nescessario.", cid)
end
keywordHandler:moveUp(1)
return true
end
 
function ouro(cid, message, keywords, parameters, node)
if(not npcHandler:isFocused(cid)) then
return false
end
 
 
if getPlayerItemCount(cid,ID_DO_OURO) >= QUANTIDADE_QUE_O_PLAYER_PRECISA_TER then
doPlayerRemoveItem(cid, ID_DO_OURO, QUANTIDADE_QUE_O_PLAYER_PRECISA_TER)
doPlayerAddItem(cid, ID_DO_NOVO_ITEM, 1)
npcHandler:say("Aqui esta o item que te prometi!", cid)
else
npcHandler:say("Voce nao tem o ouro suficiente.", cid)
end
keywordHandler:moveUp(1)
return true
end
 
local node2 = keywordHandler:addKeyword({'troca2'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce deseja trocar 200 ouro por um item ?'})
node2:addChildKeyword({'sim'}, ouro, {blessing = 1})
node2:addChildKeyword({'nao'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, moveup = 1, text = 'Volte quando quiser trocar.'})
local node1 = keywordHandler:addKeyword({'troca1'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce deseja trocar 100 ferro por uma espada?'})
node1:addChildKeyword({'sim'}, ferro, {blessing = 1})
node1:addChildKeyword({'nao'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, moveup = 1, text = 'Volte quando quiser trocar.'})
 
 
npcHandler:addModule(FocusModule:new())

 

 

Bem eu adicionei uma fuction, que no caso seria um novo item. Na function ferro ficou o que você tinha pedido 100 ferros por 1 espada. Ja na function ouro eu deixei algumas palavras chaves:

 

QUANTIDADE_QUE_O_PLAYER_PRECISA_TER Você troca pela quantidade de item que o player vai dar pra trocar.

ID_DO_NOVO_ITEM você troca pelo id do item que ele vai ganhar

ID_DO_OURO você troca pelo id do objeto que ele vai ter que dar.

 

Ali nos nodes, voce pode editar as frases. Caso queira colocar mais itens apenas adiciona node3 ou 4 ou 5. E uma function para cada node.

Postado
  • Autor

Pera deixa eu ver se entendi e para fazer isso : 

 

if getPlayerItemCount(cid,ID_DO_OURO) >=  100 then
doPlayerRemoveItem(cid, ID_DO_OURO, 100)
doPlayerAddItem(cid, ID_DO_NOVO_ITEM, 1)
npcHandler:say("Aqui esta o item que te prometi!", cid)
else
npcHandler:say("Voce nao tem o ouro suficiente.", cid)
end
keywordHandler:moveUp(1)
return true
end
 
???
 
 
----------------------- @edit
 
 
 
 
Cara tu e foda Funciono Bom eu deixei como ta a script não mechi caso desse um erro eu ia fazer como falei ali em cima  , masi não deu  ... Te dei 2 Rep + hj não tenho mais .. mais amanha dou mais 2 Pode ser ? 
 
Bem antes de feicha o topico .. pode me explicar como Faso para add a troca2  ?  

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

IBNJHen.gifrf1sSxg.gif

Postado

Vou criar um script com comentários explicando tudo certinho e ja posto aqui editando este meu comentário.

 

--EDIT-- 

 

Como prometido aqui esta. espero que ajude muitas pessoas, e todos aqueles que aprenderam ou gostaram do trabalho por favor +Rep. Isto faz com que eu seja reconhecido no Fórum.

Caso tenha algo errado por favor, me indique para que eu aprenda também. Não sou formado nisso sou igual a todos que vão ler isso ;)

O conhecimento esta na frente de todos e todos são capazes de obtê-lo basta querer.

 

Data/Npc/Troca.xml

 

<!--
-----------------------------------------------------------
-- Criado por Thiago Renan                               
-- Script de trocas explicativo                          
-- Este Script foi criado com o intuito de aprendizagem  
-- Tem como funcoes um NPC que executa troca de itens    
-- Neste Script o npc faz a troca de apenas 2 itens      
-- Mas sera ensinado como adicionar mais itens           
-----------------------------------------------------------
-----------------------------------------------------------
-- Aqui voce mudara o nome do NPC de trocar, a sua aparencia
-- Coisas que ele respondera e tambem podera mudar a
-- Vida do NPC mesmo sendo um pouco inutil.
-----------------------------------------------------------
-- Nesta primeira linha aonde esta "Buckerman", voce coloca
-- o nome que desejar.
--
-- <npc name="Buckerman" script="data/npc/scripts/soft.lua" access="5" lookdir="1">
-----------------------------------------------------------
-- Na segunda linha se desejar mude a vida do seu NPC,
-- Aonde esta "700" e o tanto de vida que ele ta, e aonde
-- esta "1000" e a vida maxima dele.
--
-- <health now="700" max="1000"/>
-----------------------------------------------------------
-- Nesta linha voce muda o visual dele. Aonde esta 133
-- voce troca pelo id da skin que desejar.
-- 
-- <look type="133" head="95" body="86" legs="86" feet="38" addons="3"/>
-----------------------------------------------------------
-- Nos parametros voce pode editar as mensagens como desejar
-- Acredito que elas nao precisao ser explicadas.
-- Da maneira como estao da para entender o que fazem.
-----------------------------------------------------------
-->
<npc name="Buckerman" script="data/npc/scripts/soft.lua" access="5" lookdir="1">
<health now="700" max="1000"/>
<look type="133" head="95" body="86" legs="86" feet="38" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|. Eu posso trocar 100 ferro por uma espada digitando 'troca1' ou posso trocar 200 ouro por um helmo digitando 'troca2'." />
 
<parameter key="message_alreadyfocused" value="Senhor ? Nao vai falar nada ?" /> 
<parameter key="message_farewell" value="Adeus. Volte novamente." /> 
<parameter key="message_walkaway" value="Adeus. Volte novamente." /> 
 
</parameters>
</npc>
 

 

Data/Npc/Scripts/Troca.lua

 

-----------------------------------------------------------

-- Criado por Thiago Renan                               
-- Script de trocas explicativo                          
-- Este Script foi criado com o intuito de aprendizagem  
-- Tem como funcoes um NPC que executa troca de itens    
-- Neste Script o npc faz a troca de apenas 2 itens      
-- Mas sera ensinado como adicionar mais itens           
-----------------------------------------------------------
-----------------------------------------------------------
-- Inicio das Funçoes basicas                            
-- Nao mudar nada!                                       
-----------------------------------------------------------
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
-----------------------------------------------------------
-- Fim das Funçoes basicas                               
-- Nao mudar nada!                                       
-----------------------------------------------------------
-----------------------------------------------------------
-- Inicio das Functions                                  
-- Cada function neste caso de script representa um item 
-- O player iniciara a conversa com o NPC dizendo "hi"   
-- Como de costume, e em seguida o npc indicara ao player
-- Algumas coisas que ele pode trocar e cada comando que 
-- O player devera falar para trocar o item que deseja   
-- Neste caso, cada palavra-chave que o player falar     
-- Executara a fuction relacionada a esta palavra.       
--                                                       
-- Como por exemplo:                                     
--                                                       
-- Player say: hi                                        
-- NPC say:  Bem vindo, eu posso trocar ferro por uma    
-- espada caso voce digite "troca1" e tambem troco ouro  
-- por um helmo caso voce digite "troca2"                
--                                                       
-- Se o player responder troca1 iria executar            
-- a function troca1 e no caso do player digitar troca2  
-- ira executar a troca2. Ou seja cada item que voce     
-- adicionar nescessitara de uma function.               
-----------------------------------------------------------
-----------------------------------------------------------
-- Fuction da troca 1
-- Esta function ira trocar 100 ferro por 1 espada
-- Ela tem tambem a funcao de verificar se o player
-- Nao tem os 100 ferros e alertar ele que ele nao tem
-- Os itens nescessarios
-----------------------------------------------------------
-----------------------------------------------------------
-- Este script nao ensina 100%       
-- Voce deve ter um minimo de conhecimento
-- Generalizando um pouco. Vou indicar o que cada
-- Numero nela representa.
--                                                       
-- "6567" = Item que o player precisara ter, neste caso  
--          ele precisara ter ferro.                     
--                                                       
-- "100"  = Quantidade do item que o player precisara    
--          ter para trocar. Neste caso 100 ferro.       
--                                                       
-- "2383" = ID do item que o player ira ganhar em troca. 
--          Neste caso uma espada.                       
--                                                       
-- "1"    = Quantidade do item que o player ganhara.     
-- Neste exemplo uma espada.                    
-----------------------------------------------------------
-----------------------------------------------------------
-- A primeira frase nesta function representa se o player
-- tiver o suficiente para trocar. Ja a segunda indica ao
-- player que ele nao tem o nescessario para trocar.     
-----------------------------------------------------------
function troca1(cid, message, keywords, parameters, node)
if(not npcHandler:isFocused(cid)) then
return false
end
 
if getPlayerItemCount(cid,6567) >= 100 then
doPlayerRemoveItem(cid, 6567, 100)
doPlayerAddItem(cid, 2383, 1)
npcHandler:say("Aqui esta a sua espada!", cid)
else
npcHandler:say("Voce nao tem 100 ferros.", cid)
end
keywordHandler:moveUp(1)
return true
end
-----------------------------------------------------------
-- Fim da primeira function                              
-----------------------------------------------------------
-----------------------------------------------------------
-- Inicio da segunda function                            
-- Igual a primeira com a diferenca, que agora precisa   
-- de 200 ouro para ganhar um helmo                      
-----------------------------------------------------------
function troca2(cid, message, keywords, parameters, node)
if(not npcHandler:isFocused(cid)) then
return false
end
 
if getPlayerItemCount(cid,9971) >= 200 then
doPlayerRemoveItem(cid, 9971, 200)
doPlayerAddItem(cid, 2460, 1)
npcHandler:say("Aqui esta o seu helmo!", cid)
else
npcHandler:say("Voce nao tem 200 ouro.", cid)
end
keywordHandler:moveUp(1)
return true
end
-----------------------------------------------------------
-- Fim da segunda function                               
-----------------------------------------------------------
-----------------------------------------------------------
-- Fim das Functions                                     
-----------------------------------------------------------
-----------------------------------------------------------
-- Inicio dos nodes                                      
-- Eu vou ensinar apenas o nescessario para que voce     
-- consiga adicionar novos itens.                        
-----------------------------------------------------------
-- Bem como pode ver inicia com o Local nodex            
-- No caso para organizacao deixe os nodes numerados em  
-- sequencia 1,2,3,4,5,6,7. Vamos imaginar uma arma, para
-- aqueles que tem conhecimento em armas, sabe que       
-- algumas armas possuem trava de seguranca.             
-- Tecnicamente o node neste script e isso, o player fala
-- a palavra-chave e ele pergunta se deseja ou nao fazer 
-- uma determinada troca. Caso o player digite "nao"     
-- o script simplismente envia uma mensagem para o player
-- voltar quando desejar, e mata a conversa.             
-- Ja a palavra "sim", funciona como o gatilho sendo     
-- puxado. Como voce pode ver nesta linha:               
-- node1:addChildKeyword({'sim'}, troca1, {blessing = 1})
-- Ela detecta a palavra "sim" e envia pra function      
-- "troca1".                                             
-----------------------------------------------------------
-----------------------------------------------------------
-- Inicio node1 ou seja o node da troca1                 
-----------------------------------------------------------
local node1 = keywordHandler:addKeyword({'troca1'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce deseja trocar 100 ferro por uma espada?'})
node1:addChildKeyword({'sim'}, troca1, {blessing = 1})
node1:addChildKeyword({'nao'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, moveup = 1, text = 'Volte quando quiser trocar.'})
-----------------------------------------------------------
-- Fim node1 ou seja o node da troca1                    
-----------------------------------------------------------
-----------------------------------------------------------
-- Inicio node2 ou seja o node da troca2                 
-----------------------------------------------------------
local node2 = keywordHandler:addKeyword({'troca2'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce deseja trocar 200 ouro por um helmo?'})
node2:addChildKeyword({'sim'}, troca2, {blessing = 1})
node2:addChildKeyword({'nao'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, moveup = 1, text = 'Volte quando quiser trocar.'})
-----------------------------------------------------------
-- Fim node2 ou seja o node da troca2                    
-----------------------------------------------------------
-----------------------------------------------------------
-- Fim dos nodes                                         
-----------------------------------------------------------
-----------------------------------------------------------
-- Nao mecher nesta ultima linha                         
-----------------------------------------------------------
npcHandler:addModule(FocusModule:new())
-----------------------------------------------------------
-- Fim do script                                         
-- Nao mecher nesta ultima linha                         
-----------------------------------------------------------

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

Postado
  • Autor

Vlw  , aprendi como funciona o script tem como colocar o script ja com as duas opção não estou conseguindo colocar ^^ se poderia fazer um Topico com esse script vai ajudar muita gente ^^

 

 

 

--------------- @edit ----- 

 

 

Deixa consegui ) duvida sanada .... e Se poderia Fazer um topico como disse antes ! vlw amanha do o resto do rep 

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

IBNJHen.gifrf1sSxg.gif

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo