Ir para conteúdo

[Encerrado] [PEDIDO] Npc que pede 1 item e o player ganha 1 pokemon ;


Posts Recomendados

o titulo ja dis mas vou explicar ;

 

Seria da seguinte maneira :

 

Eu dou um x item e o player ganharia um x pokemon .

 

Obrigado desde ja estou sem rep mas amanha darei para quem ajudar .

 

Lembrando: procurei mais nao achei nenhum lugar e ja achei pedido e outro lugar mas nao foi respondido e estava em outra area .

Link para o comentário
Compartilhar em outros sites

testa ae

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
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 creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

--//
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local msg = string.lower(msg)

local pokeNAME = {"Nome do poke"}

local itemID = xxxx -- id do item q vai remove
local storage = 23905 -- n mexa

if msgcontains(string.lower(msg), 'ajuda') or msgcontains(string.lower(msg), 'help') then
             if getPlayerStorageValue(cid, storage) == 1 then
return true
end
selfSay("Ola eu preciso de x item, você tem? se sim fale yes que irei te dar um poke de troca!", cid)
return true
talkState[talkUser] = 2
elseif msgcontains(msg, "yes") or msgcontains(msg, "sim") and talkState[talkUser] == 2 then  
     if doPlayerRemoveMoney(cid, itemID) == 1 then  -- no 1 é q quantidade
selfSay("Você não tem o item!", cid)
talkState[talkUser] = 0
return true
end
selfSay("Muito bom, tome aqui seu pokémon!", cid)
addPokeToPlayer(cid, pokeNAME, 0, -1, 'normal', true) 
setPlayerStorageValue(cid, storage, 1)
talkState[talkUser] = 0  
return true
end
return true end

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

 

 

obs pra server sem lvl

Link para o comentário
Compartilhar em outros sites

Acho que seria ,não tenho certeza

 

Na pasta Npcs/Scripts copie algum npc e abra essa pasta e apague tudo que esta dentro e coloque este codigo.

 

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

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 creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then

return false

end

 

--//

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local msg = string.lower(msg)

 

local pokeNAME = {"Nome do poke"}

 

local itemID = xxxx -- id do item q vai remove

local storage = 23905 -- n mexa

 

if msgcontains(string.lower(msg), 'ajuda') or msgcontains(string.lower(msg), 'help') then

if getPlayerStorageValue(cid, storage) == 1 then

return true

end

selfSay("Ola eu preciso de x item, você tem? se sim fale yes que irei te dar um poke de troca!", cid)

return true

talkState[talkUser] = 2

elseif msgcontains(msg, "yes") or msgcontains(msg, "sim") and talkState[talkUser] == 2 then

if doPlayerRemoveMoney(cid, itemID) == 1 then -- no 1 é q quantidade

selfSay("Você não tem o item!", cid)

talkState[talkUser] = 0

return true

end

selfSay("Muito bom, tome aqui seu pokémon!", cid)

addPokeToPlayer(cid, pokeNAME, 0, -1, 'normal', true)

setPlayerStorageValue(cid, storage, 1)

talkState[talkUser] = 0

return true

end

return true end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

 

A tag não tenho muita certeza

 

 

 

<?xml version="1.0" encoding="UTF-8"?>

<npc name="Nome Do NPC" script="Nome do NPC.lua" walkinterval="0" floorchange="0">

<health now="100" max="100"/>

<look typeex="ID Da Outfit" corpse="ID Co Corpse"/>

</npc>

 

 

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

<?xml version="1.0" encoding="UTF-8"?>

<npc name="nome do npc" script="ChangePoke.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1">
<health now="150" max="150"/>
<look type="1438" head="114" body="119" legs="114" feet="114" corpse="2212"/>

<parameters>
<parameter key="message_greet" value=hello, talk {help}."/>
</parameters>
</npc>

 

agora em data/npc/script/cria um arquivo e apague e renomeia para

ChangePoke e coloke isso

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
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 creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

--//
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local msg = string.lower(msg)

local pokeNAME = {"Nome do poke"}

local itemID = xxxx -- id do item q vai remove
local storage = 23905 -- n mexa

if msgcontains(string.lower(msg), 'ajuda') or msgcontains(string.lower(msg), 'help') then
             if getPlayerStorageValue(cid, storage) == 1 then
return true
end
selfSay("Ola eu preciso de x item, você tem? se sim fale yes que irei te dar um poke de troca!", cid)
return true
talkState[talkUser] = 2
elseif msgcontains(msg, "yes") or msgcontains(msg, "sim") and talkState[talkUser] == 2 then  
     if doPlayerRemoveMoney(cid, itemID) == 1 then  -- no 1 é q quantidade
selfSay("Você não tem o item!", cid)
talkState[talkUser] = 0
return true
end
selfSay("Muito bom, tome aqui seu pokémon!", cid)
addPokeToPlayer(cid, pokeNAME, 0, -1, 'normal', true) 
setPlayerStorageValue(cid, storage, 1)
talkState[talkUser] = 0  
return true
end
return true end

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

 

Link para o comentário
Compartilhar em outros sites

quando tento invocar o npc aparece .

 

[04/06/2013 16:46:46] [Warning - Npc::loadFromXml] Cannot load npc file (data/npc/Arquiologo.xml).
[04/06/2013 16:46:46] Line: 8, Info: Couldn't find end of Start Tag parameter line 8

Link para o comentário
Compartilhar em outros sites

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
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 creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

--//
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local msg = string.lower(msg)

local poke = "Poke Name"

local itemID = 123456
local quant = 10

   if(msgcontains(msg, 'ajuda')) then
       if(getPlayerStorageValue(cid, 82392) < 1) then
           selfSay("Mensagem, fale {yes}.", cid)
           talkState[talkUser] = 2
   elseif(msgcontains(msg, "yes") and talkState[talkUser] == 2) then
           if(doPlayerRemoveItem(cid, itemID, quant)) then
               selfSay("Tome aqui seu pokemon!", cid)
               addPokeToPlayer(cid, poke, 0, -1, 'normal', true) 
               setPlayerStorageValue(cid, 82392, 1)
               talkState[talkUser] = 0
           else
               selfSay("Você não tem o item.", cid)
               talkState[talkUser] = 0
           end
       else
           selfSay("Desculpe, não posso trocar com você.", cid)
           talkState[talkUser] = 0
       end
   end

   return true
end

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

Link para o comentário
Compartilhar em outros sites

apareceu isso

 

[04/06/2013 18:23:21] [Warning - Npc::loadFromXml] Cannot load npc file (data/npc/arquiologo.xml).
[04/06/2013 18:23:21] Line: 8, Info: Couldn't find end of Start Tag parameter line 8

 

Não conheco nada de script; se eu fiz algo de errado me desculpem '-'

Link para o comentário
Compartilhar em outros sites

Acho que arrumei a tag use a script do -Skymagnum

 

Em Npc criei um arquivo chamado Arquiologo.xml Adicione o seguinte script.

 

 

<?xml version="1.0" encoding="UTF-8"?>

 

<npc name="Arquiologo" script="arquiologo.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1">

<health now="150" max="150"/>

<look type="134" head="78" body="88" legs="0" feet="88"/>

 

<parameters>

<parameter key= "message_greet" value= "hello, talk {help}."/>

</parameters>

</npc>

 

 

 

Testei aqui pelomenos o bug que dava na distro foi retirado mas testei falar com npc não funcionou, ve ai.

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

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