Ir para conteúdo
  • 0

[Resolvido] NPC que vende itens e add nome do player no item


Wase Wiss

Pergunta

Eae Galera blz ? Eu queria perguntar a vocês se é possivel criar um NPC que venda item e quando o player comprar, ele adicionar o o nome do player no ifnal do nome do item, tipo site, será que tem como ? desde já, orbigado!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Configure as frases, o item, o preço como quiser:

 

vendeItem.lua

 

Spoiler
local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid)                npcHandler:onCreatureAppear(cid)            endfunction onCreatureDisappear(cid)            npcHandler:onCreatureDisappear(cid)            endfunction onCreatureSay(cid, type, msg)            npcHandler:onCreatureSay(cid, type, msg)        endfunction onThink()                    npcHandler:onThink()                    endfunction creatureSayCallback(cid, type, msg)    if(not npcHandler:isFocused(cid)) then        return false    end    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cidlocal t = {item = 2154, -- item que vai ser dado ao playermoney = 10000  -- preço (gold coins)}     if(msgcontains(msg, 'item') or msgcontains(msg, 'ITEM')) then -- configure para o que quiser        selfSay('Do you want to buy item for this price?', cid) -- configure aqui        talkState[talkUser] = 1    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then        if(doPlayerRemoveMoney(cid, t.money)) then        local item_desc = doPlayerAddItem(cid, t.item, 1)            doItemSetAttribute(item_desc, "description", "This item belongs to "  .. getPlayerName(cid) ..".")                selfSay('Here you are.', cid)        else                selfSay('Sorry, you don\'t have enough gold.', cid)        end            talkState[talkUser] = 0    elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser])) then        talkState[talkUser] = 0        selfSay('Ok then.', cid)    end    return trueendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 04/08/2017 at 23:09, Leoxtibia disse:

Configure as frases, o item, o preço como quiser:

 

vendeItem.lua

 

  Mostrar conteúdo oculto
local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid)                npcHandler:onCreatureAppear(cid)            endfunction onCreatureDisappear(cid)            npcHandler:onCreatureDisappear(cid)            endfunction onCreatureSay(cid, type, msg)            npcHandler:onCreatureSay(cid, type, msg)        endfunction onThink()                    npcHandler:onThink()                    endfunction creatureSayCallback(cid, type, msg)    if(not npcHandler:isFocused(cid)) then        return false    end    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cidlocal t = {item = 2154, -- item que vai ser dado ao playermoney = 10000  -- preço (gold coins)}     if(msgcontains(msg, 'item') or msgcontains(msg, 'ITEM')) then -- configure para o que quiser        selfSay('Do you want to buy item for this price?', cid) -- configure aqui        talkState[talkUser] = 1    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then        if(doPlayerRemoveMoney(cid, t.money)) then        local item_desc = doPlayerAddItem(cid, t.item, 1)            doItemSetAttribute(item_desc, "description", "This item belongs to "  .. getPlayerName(cid) ..".")                selfSay('Here you are.', cid)        else                selfSay('Sorry, you don\'t have enough gold.', cid)        end            talkState[talkUser] = 0    elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser])) then        talkState[talkUser] = 0        selfSay('Ok then.', cid)    end    return trueendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())

 

 

Mano... perfeito! Muito obrigado, e desculpa por demora para responder, min desculpe mesmo por favor, agora uma duvida :D Tem como por para vender mais de um item ? Se poder poderia editar a script para min ? por favor !?

Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, Henrique Gomes disse:

Mano... perfeito! Muito obrigado, e desculpa por demora para responder, min desculpe mesmo por favor, agora uma duvida :D Tem como por para vender mais de um item ? Se poder poderia editar a script para min ? por favor !?

 

 

Spoiler
<?xml version="1.0" encoding="UTF-8"?><npc name="Dwarfer" script="vendeItem.lua" walkinterval="2000" floorchange="0">	<health now="100" max="100"/>	<look type="66"/>	<parameters>    <parameter key="message_greet" value="Hail, |PLAYERNAME|. Let's make a deal? Say {trade} if you are ready." />	</parameters></npc>

 

 

vendeItem.lua

 

Spoiler
local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction creatureSayCallback(cid, type, msg)if(not npcHandler:isFocused(cid)) thenreturn falseendlocal talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cidlocal shopWindow = {}local money = 2160 -- ID_da_moedalocal t = {[2154] = {price = 15}, -- [ID_DO_ITEM_QUE_SERÁ_VENDIDO] = {price = preço}[2158] = {price = 25},[2155] = {price = 70},[2156] = {price = 100},}local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)if t[item] and not doPlayerRemoveItem(cid, money, t[item].price) thenselfSay("You need "..t[item].price.." "..getItemNameById(money)..".", cid)elselocal bought = doPlayerAddItem(cid, item)doItemSetAttribute(bought, "description", "This item belongs to "  .. getPlayerName(cid) ..".")selfSay("Here you go.", cid)endreturn trueendif (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))thenfor var, ret in pairs(t) dotable.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)})endopenShopWindow(cid, shopWindow, onBuy, onSell)endreturn trueendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())

 

 

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

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