Primeiramente, obrigado pelas respostas.
omega blueheaven, creio que o sistema que você descreveu não seja muito interessante para o meu propósito. Até porque eu poderia colocar alguns "black boards" na parede atrás do nnpc que mostrasse os preços quando o player desse look, seria mais fácil.
Vodkart, vou testar aqui e posto um feedback 
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 = 9020 -- ID da moeda
local t = {
[2195] = {price = 15}, -- [ITEM ID PARA VENDER] = {QNTO CUSTARÁ}
[2493] = {price = 25},
[2361] = {price = 30},
[8851] = {price = 20},
[8925] = {price = 30},
[2640] = {price = 50},
[2494] = {price = 100},
[9932] = {price = 50},
[2472] = {price = 70},
[8931] = {price = 100}
}
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then
selfSay("you dont have"..t[item].price.." "..getItemNameById(moeda), cid)
else
doPlayerAddItem(cid, item)
selfSay("Here your 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())
Mano, funcionou parcialmente. O que aconteceu foi o seguinte:
Sabe quando vc vai comprar algo e ta sem grana na mochila? Os nomes dos itens não ficam ressaltados de branco, eles ficam escurecidos.
Então, quando falei trade para o npc, os nomes ficaram assim e eu não conseguia comprar nada. Mas se eu tiver com grana bag (gps mesmo), ai os itens ficam compráveis, só que quando compro, disconta as Scarab coins numa boa.
Resumindo, vc só consegue comprar se tiver com gp na bag.
PS.: a quantidade de gp na bag tem que ser igual ou superior ao price do item para ele ser habilitado, como nos npcs normais
-----------------------------------------------------------------------------------------------
Mais alguém? Alguma solução?