Ir para conteúdo
  • 0

NPC que venda itens por diamonds


MaxxSilva

Pergunta

Alguém tem o script de npc que venda bike , metal coat , magmarizer e dps futuramente eu possa adicionar mas itens rep+ se der certo e por favor não coloque spoiler pois no meu esta meio bugado coloque o script direro agradeço

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Fala os ID's dos itens que eu faço pra você... Ai depois eu falo como fazer para adicionar mais!!! ^^

Eita, malz... Não tinha visto o de cima! >.< kkk

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

  • 0
  • Vai em data/npc e crie um arquivo.xml, nomeia ele como você quiser, depois você cola isso dentro dele:

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

<npc name="Nome do Npc" script="nome_do_arquivo.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="300" head="0" body="0" legs="0" feet="0" corpse="5995"/>
<parameters>
<parameter key="message_greet" value="Hello |PLAYERNAME|! Do you want to do some {trading}?"/>
</parameters>
</npc>

* EDITANDO *

Vermelho - Nome de seu npc que vai aparecer no jogo. Azul - nome do arquivo .lua que voce vai criar na pasta data/npc/script esse script eu vou passar pra voce jaja aki em baixo. Verde - Aparencia do Npc.

  • Agora vai em data/npc/script, e cria um arquivo .lua é só copiar um arquivo existente e renomear, depois você cola isso dentro:

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 shopWindow = {}
local moeda = 9971 - ITEM QUE VAI SER DADO EM TROCA DOS ITEM
local t = {
[6096] = {price = 500}, -- Nome do Item ,Preço
[6095] = {price = 500}, -- Nome do Item ,Preço
[5918] = {price = 500}, -- Nome do Item ,Preço
[2527] = {price = 500}, -- Nome do Item ,Preço
}
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then
selfSay("Desculpe, mas voce nao tem "..t[item].price.." "..getItemNameById(moeda), cid)
else
doPlayerAddItem(cid, item)
selfSay("aqui esta seu item!", cid)
end
return true
end
if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then
for var, ret in pairs(t) do
table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)})
end
openShopWindow(cid, shopWindow, onBuy, onSell)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

EDITANDO

Vermelho - ID do item que voce quer usar como moeda ,Roxo - Valor do item,Azul - ID do item que o npc ira vender, Marrom - Nome do item, nao é obrigatório por isso, mais é bom botar pra voce na hora que quiser alterar algo saber qual é o items.

 

Script by Kaizy536

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

  • 0

Em data/npc, coloque um novo arquivo com o nome BD.xml e cole isso dentro:

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Davion" script="data/npc/scripts/BD.lua" walkinterval="3000" floorchange="0" access="5" >
<health now="150" max="150"/>
<look type="259" head="0" body="114" legs="114" feet="0"/>
<parameters>
<parameter key="message_greet" value="Welcome to the diamond store, here you can buy Metal Coat(10D), Bike(10D), Magmarizer(10D) and Up-grade(10D)."/>
<parameter key="message_farewell" value="Bye! See you next time."/>
</parameters>
</npc>

 

 

 

Após, na pasta script, crie um arquivo chamado "BD.lua" e cole 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
-- Conversa Jogador/NPC
if(msgcontains(msg, 'offer') or msgcontains(msg, 'Offer')) then
selfSay('I sell metal coat.', cid)
elseif(msgcontains(msg, 'metalcoat') or msgcontains(msg, 'Metalcoat')) then
selfSay('The metal coat costs 10D, you really want this?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'bike') or msgcontains(msg, 'Bike')) then
selfSay('The Revestimento de bike costs 10D, you really want this?', cid)
talkState[talkUser] = 2
elseif(msgcontains(msg, 'magmarizer') or msgcontains(msg, 'Magmarizer')) then
selfSay('The Ancient Stone costs 10BD, you really want this?', cid)
talkState[talkUser] = 3
elseif(msgcontains(msg, 'upgrade') or msgcontains(msg, 'Upgrade')) then
selfSay('The Boost Stone costs 10BD, you really want this?', cid)
talkState[talkUser] = 4
-- Confirmação da Compra
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(doPlayerRemoveItem(cid, 12237, 10) == true) then
selfSay('Thanks!', cid)
doPlayerAddItem(cid, 12232, 1)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
if(doPlayerRemoveItem(cid, 12237, 10) == true) then
selfSay('Thanks!', cid)
doPlayerAddItem(cid, 2520, 1)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
if(doPlayerRemoveItem(cid, 12237, 10) == true) then
selfSay('Thanks!', cid)
doPlayerAddItem(cid, 12245, 1)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then
if(doPlayerRemoveItem(cid, 12237, 10) == true) then
selfSay('Thanks!', cid)
doPlayerAddItem(cid, 12419, 1)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

 

PS: Não testei, mas veja ai... Se der algum erro só chamar! ^^

PS²: Você não falou os preços, então todos estão por 10 Diammonds... Se quiser mudar avisa que posso editar pra você! ^^

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

×
×
  • Criar Novo...