BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Npc que venda items

Npc que venda items

#1 Npc que venda items el Mar Sep 16, 2014 10:41 pm

aldaircruzz


Miembro
Amigos quien me puede hacer una npc que venda estos items

Item necesario para comprar:  "2157"

["Dragonborn promote"] = {5000, 9019},
     ["Dragon Born Shield"] = {2000, 2538},
     ["Dragon Born Helmet"] = {2000, 3967},
     ["Dragon Born Armor"] = {2000, 11349},
     ["Dragon Born Legs"] = {2000, 7730},
     ["Dragon Born Boots"] = {2000, 2358},
     ["Exp Potion"] = {2000, 8205},
     ["Soul Potion"] = {2000, 10576},
     ["Skull remover"] = {2000, 10531},
     ["Stamina Doll"] = {2000, 6567},
     ["Infinite Aol"] = {2000, 2138},
     ["Upgrading Stone"] = {2000, 8300},
     ["Wall remover"] = {2000, 5468},

#2 Re: Npc que venda items el Miér Sep 17, 2014 6:07 am

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Amigos quien me puede hacer una npc que venda estos items

Item necesario para comprar:  "2157"

["Dragonborn promote"] = {5000, 9019},
     ["Dragon Born Shield"] = {2000, 2538},
     ["Dragon Born Helmet"] = {2000, 3967},
     ["Dragon Born Armor"] = {2000, 11349},
     ["Dragon Born Legs"] = {2000, 7730},
     ["Dragon Born Boots"] = {2000, 2358},
     ["Exp Potion"] = {2000, 8205},
     ["Soul Potion"] = {2000, 10576},
     ["Skull remover"] = {2000, 10531},
     ["Stamina Doll"] = {2000, 6567},
     ["Infinite Aol"] = {2000, 2138},
     ["Upgrading Stone"] = {2000, 8300},
     ["Wall remover"] = {2000, 5468},

El ítem Golden Nugget: "2157" ¿lo tienes puesto para que forme parte de dinero?
Osea, ¿que si lo tienes en el script de Data/Actions/Other/changegold.lua o no?



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#3 Re: Npc que venda items el Miér Sep 17, 2014 5:21 pm

aldaircruzz


Miembro
si!

#4 Re: Npc que venda items el Miér Sep 17, 2014 6:35 pm

Belerofonte


Administrador
Servidor/Data/Npc/... archivo.xml:
Código:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="aldaircruzzVendeItems" script="data/npc/scripts/aldaircruzzVendeItems.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="131" head="7" body="87" legs="7" feet="87" addons="2"/>
<parameters>
 <parameter key="message_greet" value="Hello |PLAYERNAME|! and welcome in academy!" />
</parameters>
</npc>

Servidor/Data/Npc/Scripts/... archivo.lua:
Código:
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 t = {
-- [Objeto ofrecido] = {price = Precio de compra contado en Gold Coins(2.150.000.000 máximo), nugget = Misma cantidad anterior pero contado en Golden Nuuget},
      [9019] = {price = 2150000000, nugget = 2150}, -- Dragonborn promote
      [2538] = {price = 2000000000, nugget = 2000}, -- Dragon Born Shield
      [3967] = {price = 2000000000, nugget = 2000}, -- Dragon Born Helmet
      [11349] = {price = 2000000000, nugget = 2000}, -- Dragon Born Armor
      [7730] = {price = 2000000000, nugget = 2000}, -- Dragon Born Legs
      [2358] = {price = 2000000000, nugget = 2000}, -- Dragon Born Boots
      [8205] = {price = 2000000000, nugget = 2000}, -- Exp Potion
      [10576] = {price = 2000000000, nugget = 2000}, -- Soul Potion
      [10531] = {price = 2000000000, nugget = 2000}, -- Skull remover
      [6567] = {price = 2000000000, nugget = 2000}, -- Stamina Doll
      [2138] = {price = 2000000000, nugget = 2000}, -- Infinite Aol
      [8300] = {price = 2000000000, nugget = 2000}, -- Upgrading Stone
      [5468] = {price = 2000000000, nugget = 2000} -- Wall remover
    }
    local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
        if t[item] and getPlayerMoney(cid) < t[item].price then
            selfSay("You dont have {"..t[item].price.." Gold Coins} ({"..t[item].nugget.." "..getItemPluralNameById(2157).."}).", cid)
         else
           doPlayerAddItem(cid, item)
           doPlayerRemoveMoney(cid, t[item].price)
           selfSay("Here is you item!", cid)
        end
      return true
    end
    if msgcontains(msg, string.lower('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())

Instrucción:
   local t = {
-- [Objeto ofrecido] = {price = Precio de compra contado en Gold Coins(2.150.000.000 máximo), nugget = Misma cantidad anterior pero contado en Golden Nuuget},
     [9019] = {price = 2150000000, nugget = 2150}, -- Dragonborn promote
     [2538] = {price = 2000000000, nugget = 2000}, -- Dragon Born Shield
     [3967] = {price = 2000000000, nugget = 2000}, -- Dragon Born Helmet
     [11349] = {price = 2000000000, nugget = 2000}, -- Dragon Born Armor
     [7730] = {price = 2000000000, nugget = 2000}, -- Dragon Born Legs
     [2358] = {price = 2000000000, nugget = 2000}, -- Dragon Born Boots
     [8205] = {price = 2000000000, nugget = 2000}, -- Exp Potion
     [10576] = {price = 2000000000, nugget = 2000}, -- Soul Potion
     [10531] = {price = 2000000000, nugget = 2000}, -- Skull remover
     [6567] = {price = 2000000000, nugget = 2000}, -- Stamina Doll
     [2138] = {price = 2000000000, nugget = 2000}, -- Infinite Aol
     [8300] = {price = 2000000000, nugget = 2000}, -- Upgrading Stone
     [5468] = {price = 2000000000, nugget = 2000} -- Wall remover
   }

Tuve que ponerlo así, "contado en Gold Coins" porque la función esa que envía el cuadro al decir "trade" solamente le es posible hacer la venta en Gold Coins.
Por lo que fue una suerte que usaras el Golden Nugget ya como dinero.

Y tal vez sea solo el servidor en el que lo testeé o no, pero el máximo de Gold Coins posibles que pueden hallarse en el trade es de 2.150.000.000 (Dos billones CientoCincuentaMil),
es decir, que si se le pone un solo valor más, el objeto que valga dicho precio, se ocultará automáticamente.
Eso suponiéndo que uses el Golden Nugget como moneda después del Crystal Coin. No sé si me entenderás.

Y respecto a las descripciones que ya habían puestas... no sé a ti, pero a mí no me coinciden con los objetos de sus correspondientes líneas:
Dragonborn promote, Dragon Born Shield, Dragon Born Helmet, Dragon Born Armor, Dragon Born Legs, Dragon Born Boots, Exp Potion, Soul Potion, etc...
Aunque igualmente eso solo son notas informativas que en nada afectan al funcionamiento del script.

Ya que saldrán sus correspondientes nombres automáticamente en el tradeShop, los nombres que les hayas asignado en el archivo de Items.xml



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#5 Re: Npc que venda items el Miér Sep 17, 2014 6:49 pm

enrikito15


Miembro
Oye Belerofonte y se podria que si vas con el npc y le pidieras trade no te dejara hasta que trajeras x item? por ejemplo:
Player:Hi
Npc:Hola Enrikito15 pide trade para mostrarte mis objetos..
player:Trade
Npc: O pero tienes que traer contigo un xxx item para mostrarte mis items

y ya si trae el xxx item que ya pueda mostrarte su lista

Nose si estoy mal en pedirte este script aqui. Tu dime si estoy mal para pedirlo por un tema propio

#6 Re: Npc que venda items el Jue Sep 18, 2014 5:39 am

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Oye Belerofonte y se podria que si vas con el npc y le pidieras trade no te dejara hasta que trajeras x item? por ejemplo:
Player:Hi
Npc:Hola Enrikito15 pide trade para mostrarte mis objetos..
player:Trade
Npc: O pero tienes que traer contigo un xxx item para mostrarte mis items

y ya si trae el xxx item que ya pueda mostrarte su lista

Nose si estoy mal en pedirte este script aqui. Tu dime si estoy mal para pedirlo por un tema propio

Simplemente tenías que añadirle a la condición que hay antes de la función del tradeShop en la línea número "46", una de estas 2 funciones secundarias:

getPlayerSlotItem(cid, PARTEdelSET).itemid == OBJETOrequerido -- Que solamente lo tenga equipado en algún Slot determinado.

Objeto equipado:

NPC.lua escribió: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 t = {
     -- {Objeto requerido, Slot donde ha de llevarlo equipado},
     Need = {2402, CONST_SLOT_LEFT},
     Shop = {
     -- [Objeto ofrecido] = {Precio de compra(al Npc)} 2.000.000.000
       [9019] = {price = 5000000000, nugget = 5000}, -- Dragonborn promote
       [2538] = {price = 2000000000, nugget = 2000}, -- Dragon Born Shield
       [3967] = {price = 2000000000, nugget = 2000}, -- Dragon Born Helmet
       [11349] = {price = 2000000000, nugget = 2000}, -- Dragon Born Armor
       [7730] = {price = 2000000000, nugget = 2000}, -- Dragon Born Legs
       [2358] = {price = 2000000000, nugget = 2000}, -- Dragon Born Boots
       [8205] = {price = 2000000000, nugget = 2000}, -- Exp Potion
       [10576] = {price = 2000000000, nugget = 2000}, -- Soul Potion
       [10531] = {price = 2000000000, nugget = 2000}, -- Skull remover
       [6567] = {price = 2000000000, nugget = 2000}, -- Stamina Doll
       [2138] = {price = 2000000000, nugget = 2000}, -- Infinite Aol
       [8300] = {price = 2000000000, nugget = 2000}, -- Upgrading Stone
       [5468] = {price = 2000000000, nugget = 2000} -- Wall remover
     },
}
   local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
       if t.Shop[item] and getPlayerMoney(cid) < t.Shop[item].price then
           selfSay("You dont have {"..t.Shop[item].price.." Gold Coins} ({"..t.Shop[item].nugget.." "..getItemPluralNameById(2157).."})", cid)
        else
          doPlayerAddItem(cid, item)
          doPlayerRemoveMoney(cid, t.Shop[item].price)
          selfSay("Here is you item!", cid)
       end
     return true
   end
   if (getPlayerSlotItem(cid, t.Need[2]).itemid == t.Need[1] and msgcontains(msg, string.lower('trade'))) then
     for var, ret in pairs(t.Shop) do
       table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)})
     end
       openShopWindow(cid, shopWindow, onBuy, onSell)
       selfSay("Hey, hey! tranquilo viejo te enseñare lo que tengo pero no me lastimes con esa "..getItemNameById(t.Need[1]).."!", cid) -- Contestación del Npc si el jugador va equipado con el objeto requerido.
    else
      selfSay("JA! que querra un debilucho como tu que ni si quiera va armado!?", cid) -- Contestación del Npc si el jugador no tiene equipado el objeto requerido.
   end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Tipos de Slot:
CONST_SLOT_HEAD
CONST_SLOT_NECKLACE
CONST_SLOT_BACKPACK
CONST_SLOT_ARMOR
CONST_SLOT_RIGHT
CONST_SLOT_LEFT
CONST_SLOT_LEGS
CONST_SLOT_FEET
CONST_SLOT_RING
CONST_SLOT_AMMO




getPlayerItemCount(cid, OBJETOrequerido) >= Cantidad -- Que pueda tenerlo en donde quiera & cantidad.

Objeto encima:

NPC.lua escribió: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 t = {
 -- {Objeto requerido llevar encima, Cantidad del cual},
     Need = {2402, 2},
     Shop = {
   -- [Objeto ofrecido] = {Precio de compra(al Npc)} 2.000.000.000
       [9019] = {price = 5000000000, nugget = 5000}, -- Dragonborn promote
       [2538] = {price = 2000000000, nugget = 2000}, -- Dragon Born Shield
       [3967] = {price = 2000000000, nugget = 2000}, -- Dragon Born Helmet
       [11349] = {price = 2000000000, nugget = 2000}, -- Dragon Born Armor
       [7730] = {price = 2000000000, nugget = 2000}, -- Dragon Born Legs
       [2358] = {price = 2000000000, nugget = 2000}, -- Dragon Born Boots
       [8205] = {price = 2000000000, nugget = 2000}, -- Exp Potion
       [10576] = {price = 2000000000, nugget = 2000}, -- Soul Potion
       [10531] = {price = 2000000000, nugget = 2000}, -- Skull remover
       [6567] = {price = 2000000000, nugget = 2000}, -- Stamina Doll
       [2138] = {price = 2000000000, nugget = 2000}, -- Infinite Aol
       [8300] = {price = 2000000000, nugget = 2000}, -- Upgrading Stone
       [5468] = {price = 2000000000, nugget = 2000} -- Wall remover
     },
}
   local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
       if t.Shop[item] and getPlayerMoney(cid) < t.Shop[item].price then
           selfSay("You dont have {"..t.Shop[item].price.." Gold Coins} ({"..t.Shop[item].nugget.." "..getItemPluralNameById(2157).."})", cid)
        else
          doPlayerAddItem(cid, item)
          doPlayerRemoveMoney(cid, t.Shop[item].price)
          selfSay("Here is you item!", cid)
       end
     return true
   end
   if (getPlayerItemCount(cid, t.Need[1]) >= t.Need[2] and msgcontains(msg, string.lower('trade'))) then
     for var, ret in pairs(t.Shop) do
       table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)})
     end
       openShopWindow(cid, shopWindow, onBuy, onSell)
    else
      selfSay("Necesitas almenos "..t.Need[2].." "..getItemNameById(t.Need[1]).." para poder tradearme!", cid) -- Contestación del Npc si el jugador no posee la cantidad suficiente del objeto requerido.
   end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#7 Re: Npc que venda items el Vie Sep 19, 2014 6:05 pm

aldaircruzz


Miembro
una pregunta mas belerfonte, como seria si en ves de dinero fuera un item : 6527 y que puedas comprar con ese items los objetos que venda la npc. Ejemplo : necesitas 100 de este item 6527 y lo puedas comprar

#8 Re: Npc que venda items Hoy a las 12:49 am

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .