Ir para conteúdo

Como faço um npc que vende items, sendo pago com item ex: diamond(moeda para comprar)

Featured Replies

Postado

Como faço um npc que vende items, sendo pago com item ex: diamond(moeda para comprar)

 

tem esse npc que faz isso em outro server, eu só preciso disso + mais coisas ?

Citar

<?xml version="1.0" encoding="UTF-8"?>
<npc name="[SHOP] Donate" script="data/npc/scripts/bd.lua" walkinterval="3000" floorchange="0" access="5" >
<health now="150" max="150"/>
<look type="1444" head="0" body="114" legs="114" feet="0"/>
<parameters>
<parameter key="message_greet" value="Welcome to the Black Diamond store! Voce pode comprar  {Zygarde} Por (50 Black Diamonds) ou {Arceus} Por (60 Black Diamonds) ou {Fallen Jirachi} Por (50 Black Diamonds) ou {Hoopa} Por (45 Black Diamonds) ou {Majestic Lugia} Por (35 Black Diamonds) ou Uma {Black Box} Por (30 Black Diamonds) ou {Arch Heatran} Por (40 Black Diamonds)"/>
<parameter key="message_farewell" value="Bye! See you next time."/>
</parameters>
</npc>

 

do Rep+, obg.

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

  • 1 month later...
Postado
Em 13/06/2017 ás 18:59, fillipek2 disse:

Como faço um npc que vende items, sendo pago com item ex: diamond(moeda para comprar)

 

tem esse npc que faz isso em outro server, eu só preciso disso + mais coisas ?

 

do Rep+, obg.

Vá em data/npcs/scripts e crie um arquivo chamado diamond.lua e coloque:

 

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 talkState = {}
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
local shopWindow = {}
local moeda = XXX -- id do diamond (moeda que será usada)
local t = {
      [xxx] = {price = 1},    ---- xxx é o ID do item a ser vendido e price é a quantidade de diamond necessario
      [xxx] = {price = 1},
      [xxx] = {price = 1},
      }
      
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
    if  t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then
          selfSay("You don't have "..t[item].price.." "..getItemNameById(moeda), cid)
             else
        doPlayerAddItem(cid, item)
        selfSay("Here are you.", 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())

 

Agora em data/npcs crie um arquivo chamado diamondnpc.lua e coloque:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Diamond" script="data/npc/scripts/diamond.lua" walkinterval="2000" floorchange="0">
    <health now="100" max="100"/>
    <look type="302" head="96" body="99" legs="99" feet="115" addons="2"/>
    <parameters>
        <parameter key="message_greet" value="Hello |PLAYERNAME| I change {diamonds} for {items}, say {trade}, Ola |PLAYERNAME| Eu troco {Diamonds} por {items}, diga {trade}." />
        <parameter key="module_keywords" value="1" />
    </parameters>
</npc>

 

 

npc name= Nome do Npc que troca os itens

look type= ID do outfit que ele usa

parameter key="message_greet" value= O que o NPC fala

 

 

Qualquer duivida posta aqui.

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

Talvez você queira ver:

BestBaiak

[FAQ]Remere's Map Editor - Dúvidas e soluções de bugs 

 

Contato:

1.png.dadb3fc3ee6ffd08292705b6a71e3d88.png Discord:

  • 4 months later...
Postado
Em 06/08/2017 em 19:05, Werner disse:

Vá em data/npcs/scripts e crie um arquivo chamado diamond.lua e coloque:

 

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 talkState = {}
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
local shopWindow = {}
local moeda = XXX -- id do diamond (moeda que será usada)
local t = {
      [xxx] = {price = 1},    ---- xxx é o ID do item a ser vendido e price é a quantidade de diamond necessario
      [xxx] = {price = 1},
      [xxx] = {price = 1},
      }
      
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
    if  t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then
          selfSay("You don't have "..t[item].price.." "..getItemNameById(moeda), cid)
             else
        doPlayerAddItem(cid, item)
        selfSay("Here are you.", 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())

 

Agora em data/npcs crie um arquivo chamado diamondnpc.lua e coloque:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Diamond" script="data/npc/scripts/diamond.lua" walkinterval="2000" floorchange="0">
    <health now="100" max="100"/>
    <look type="302" head="96" body="99" legs="99" feet="115" addons="2"/>
    <parameters>
        <parameter key="message_greet" value="Hello |PLAYERNAME| I change {diamonds} for {items}, say {trade}, Ola |PLAYERNAME| Eu troco {Diamonds} por {items}, diga {trade}." />
        <parameter key="module_keywords" value="1" />
    </parameters>
</npc>

 

 

npc name= Nome do Npc que troca os itens

look type= ID do outfit que ele usa

parameter key="message_greet" value= O que o NPC fala

 

 

Qualquer duivida posta aqui.

 

no lugar do XXX (local moeda) eu coloco o id do item, mas n vai continua como o gold :/

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