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

Wase Wiss
em Resolvidos

Wase Wiss

Thug Life
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 16/03/16Posts: 327Gênero: Masculino

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!

Leoxtibia

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 22/06/08Posts: 489Gênero: Masculino

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())

 

 

sergiped.gif

Wase Wiss

Thug Life
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 16/03/16Posts: 327Gênero: Masculino
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 !?

PxN

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/04/17Posts: 30Gênero: Masculino

Este sistema tem como clocar para itens comprados no shop do site gesior?

Leoxtibia

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 22/06/08Posts: 489Gênero: Masculino
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())

 

 

sergiped.gif

Wase Wiss

Thug Life
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 16/03/16Posts: 327Gênero: Masculino

Funcionou Perfeitamente mano, Muito Obrigado!

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino

O pedido neste tópico de foi atendido e/ou o autor do tópico resolveu sua duvida. Este tópico está fechado e foi movido para Pedidos - Resolvidos. Se você tiver outros pedidos, crie um novo tópico.

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."