Ir para conteúdo

Posts Recomendados

Xtibianos...

preciso que alguem crie um NPc pra mim

que venda itens vip por uma moeda que eu vou usar no meu ot

que é a christmas token. id da moeda é = 6527

 

ele deve vender cada um dos itens asseguir por 100 christmas token.

 

warlord sword. id: 2408

cranial basher. id: 7415

titan axe. id: 7413

blessed wand. id: 7429

piercing bolt. id: 7363

 

galera é simples, o npc só precisa comprar

cada um desses itens por 100 christmas token.

 

e nem precisa ter muito dialogo com o NPc, quero que seje + / - assim:

 

player: hi

npc: hello "nome do player"

player: trade (ai abre o trade, ele compra tudo que quiser... e quando vai embora

o NPc fala: Good bye "nome do player"

 

Ahh e o nome do NPc tem que ser: Donations

 

Obrigado á todos Xtibianos...

Link para o comentário
https://xtibia.com/forum/topic/127552-npc-vendedor-de-itens-vip/
Compartilhar em outros sites

Cara, só sei fazer sem ser trade, eu ainda não sei direito como mecher no negocio de trade, eu uso os scripts do Conde Sapo, e eu poderia fazer pra vc, mas o player teria que dizer "Warlord sword" e etc para comprar os itens.

 

Se você disser que pode ser assim, eu faço!

 

Ah, e a área está errada, o certo seria "Pedidos de Scripts"

 

Reportado para que movam =D

Editado por amoeba13
Link para o comentário
https://xtibia.com/forum/topic/127552-npc-vendedor-de-itens-vip/#findComment-842608
Compartilhar em outros sites

kara pode fazer sim... eu pensei que o trade era mais

facil para vcs fazerem.

ahh e c vc puder explica onde adicionar isso...onde adicina akilo... só pa mim n fazer errado :rolleyes:

n sei c faz difereça mas meu server é 8.54...

 

vlw...abraços...

Editado por dark blah
Link para o comentário
https://xtibia.com/forum/topic/127552-npc-vendedor-de-itens-vip/#findComment-842686
Compartilhar em outros sites

Acredito que não fará diferença.

 

Vá em data/npc/scripts e crie um arquivo donations.lua e coloque.

 

local focus = 0

local talk_start = 0

local target = 0

local following = false

local attacking = false

local addon_state = 0

 

function onThingMove(creature, thing, oldpos, oldstackpos)

end

 

function onCreatureAppear(creature)

end

 

function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Good bye then.')

focus = 0

talk_start = 0

end

end

 

function onCreatureTurn(creature)

end

 

function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end

 

function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

 

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then

selfSay('Olá ' .. getCreatureName(cid) .. 'Eu vendo warlord sword, cranial basher, titan axe, blessed wand e piercing bolt em troca de moedas VIP')

focus = cid

talk_start = os.clock()

 

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then

selfSay('Sorry, ' .. getCreatureName(cid) .. '! I talk to you in a minute.')

 

elseif focus == cid then

talk_start = os.clock()

if msgcontains(msg, 'warlord sword') or msgcontains(msg, 'warlord swor') then

if doPlayerRemoveItem(cid,6527,100) == 0 then

selfSay('Isso e muito pouco!')

addon_state = 0

else

selfSay('Obrigado, aqui esta sua warlord sword')

doPlayerAddItem(cid, 2408, 1)

talk_start = 0

end

 

elseif msgcontains(msg, 'cranial basher') or msgcontains(msg, 'cranial bash') then

if doPlayerRemoveItem(cid,6527,100) == 0 then

selfSay('Isso e muito pouco!')

addon_state = 0

else

selfSay('Obrigado, aqui esta seu cranial basher')

doPlayerAddItem(cid, 7415, 1)

talk_start = 0

end

 

elseif msgcontains(msg, 'titan axe') or msgcontains(msg, 'titan ax') then

if doPlayerRemoveItem(cid,6527,100) == 0 then

selfSay('Isso e muito pouco!')

addon_state = 0

else

selfSay('Obrigado, aqui esta seu titan axe')

doPlayerAddItem(cid, 7413, 1)

talk_start = 0

end

 

elseif msgcontains(msg, 'blessed wand') or msgcontains(msg, 'blessed wan) then

if doPlayerRemoveItem(cid,6527,100) == 0 then

selfSay('Isso e muito pouco!')

addon_state = 0

else

selfSay('Obrigado, aqui esta seu blessed wand')

doPlayerAddItem(cid, 7429, 1)

talk_start = 0

end

 

elseif msgcontains(msg, 'piercing bolt') or msgcontains(msg, 'piercing bol') then

if doPlayerRemoveItem(cid,6527,100) == 0 then

selfSay('Isso e muito pouco!')

addon_state = 0

else

selfSay('Obrigado, aqui esta sua piercing bolt')

doPlayerAddItem(cid, 7363, 1)

talk_start = 0

end

 

elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Good bye, ' .. getCreatureName(cid) .. '! Come back soon..')

focus = 0

talk_start = 0

end

end

end

 

function onCreatureChangeOutfit(creature)

end

 

function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next Please...')

end

focus = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Good bye then.')

focus = 0

end

end

end

 

Agora em data/npc crie um arquivo com o nome Donations.xml e coloque

 

<npc name="Donations" script="data/npc/scripts/donations.lua" walkinterval="2000" floorchange="0">

<health now="100" max="100"/>

<look type="155" head="79" body="0" legs="114" feet="13" addons="3"/>

</npc>

 

Pronto! NPC feito. Caso encontre algum bug, concerteza será uma palavrinha ou outra que eu escrevi errado no script, pq eu fiz a mão, caso encontre bug, pessa para algum observador ver rs.

 

Espero ter ajudado!

Link para o comentário
https://xtibia.com/forum/topic/127552-npc-vendedor-de-itens-vip/#findComment-842696
Compartilhar em outros sites

nossa perfeito mas...

vc tinha como fazer para o npc perguntar

se o player quer comprar o iten

tipow assim:

player: hi

npc: hello...

player: warlord sword

NPC: VOCE DESEJA COMPRAR UMA WARLORD SWORD POR 100 COINS?

PLAYER: YES

dai o npc da o iten e da Bye, Bye pro player :rolleyes:

 

c tiver como fazer pra mim...Brigadu

Editado por dark blah
Link para o comentário
https://xtibia.com/forum/topic/127552-npc-vendedor-de-itens-vip/#findComment-842738
Compartilhar em outros sites

Tomei a liberdade de responder o usuário novamente,

 

- Em sua pasta data/npc, faça um arquivo XML de nome donations. Cole isto lá dentro:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="The Donation Seller" script="data/npc/scripts/donations.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="129" head="78" body="124" legs="123" feet="7" addons="3"/>
<parameters>
	<parameter key="message_greet" value="Oi |PLAYERNAME|. Eu vendo itens poderosos, fale {list} para saber que itens eu vendo."/>
	<parameter key="message_fareweel" value="Tchau, |PLAYERNAME|"/>
</parameters>
</npc>

 

- Na sua pasta npc/scripts, faça um arquivo LUA de nome donations. Cole isto lá dentro:

 

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

-- Conversa Jogador/NPC
if(msgcontains(msg, 'list')) then
	selfSay('Eu vendo {warlord sword}, {cranial basher}, {titan axe}, {blessed wand} and {piercing bolt}. Cada uma delas custa 100 moedas.', cid)
elseif(msgcontains(msg, 'warlord sword') then
	selfSay('Voc\ê quer comprar Warlord Sword por 100 moedas?', cid)
	talkState[talkUser] = 1
elseif(msgcontains(msg, 'cranial basher') then
	selfSay('Voc\ê quer comprar Cranial Basher por 100 moedas?', cid)
	talkState[talkUser] = 2
elseif(msgcontains(msg, 'titan axe') then
	selfSay('Voc\ê quer comprar Titan Axe por 100 moedas?', cid)
	talkState[talkUser] = 3
elseif(msgcontains(msg, 'blessed wand') then
	selfSay('Voc\ê quer comprar Blessed Wand por 100 moedas?', cid)
	talkState[talkUser] = 4
elseif(msgcontains(msg, 'piercing bolt') then
	selfSay('Voc\ê quer comprar Piercing Bolt por 100 moedas?', cid)
	talkState[talkUser] = 5
-- Confirmação da Compra
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
	if(doPlayerRemoveItem(cid, 6527, 100) == true) then
		selfSay('Obrigado por comprar!', cid)
		doPlayerAddItem(cid, 2408, 1)
		talkState[talkUser] = 0
	else
		selfSay('Voc\ê n\ão tem 100 moedas', cid)
		talkState[talkUser] = 0
	end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
	if(doPlayerRemoveItem(cid, 6527, 100) == true) then
		selfSay('Obrigado por comprar!', cid)
		doPlayerAddItem(cid, 7415, 1)
		talkState[talkUser] = 0
	else
		selfSay('Voc\ê n\ão tem 100 moedas', cid)
		talkState[talkUser] = 0
	end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
	if(doPlayerRemoveItem(cid, 6527, 100) == true) then
		selfSay('Obrigado por comprar!', cid)
		doPlayerAddItem(cid, 7413, 1)
		talkState[talkUser] = 0
	else
		selfSay('Voc\ê n\ão tem 100 moedas', cid)
		talkState[talkUser] = 0
	end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then
	if(doPlayerRemoveItem(cid, 6527, 100) == true) then
		selfSay('Obrigado por comprar!', cid)
		doPlayerAddItem(cid, 7429, 1)
		talkState[talkUser] = 0
	else
		selfSay('Voc\ê n\ão tem 100 moedas', cid)
		talkState[talkUser] = 0
	end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 5) then
	if(doPlayerRemoveItem(cid, 6527, 100) == true) then
		selfSay('Obrigado por comprar!', cid)
		doPlayerAddItem(cid, 7363, 1)
		talkState[talkUser] = 0
	else
		selfSay('Voc\ê n\ão tem 100 moedas', cid)
		talkState[talkUser] = 0
	end
end
end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Editado por Oneshot
Link para o comentário
https://xtibia.com/forum/topic/127552-npc-vendedor-de-itens-vip/#findComment-842748
Compartilhar em outros sites

kara deu o seguinte erro no console do ot:

 

> Map loading time: 11.594 seconds.

[Error - LuaScriptInterface::loadFile] data/npc/scripts/donations.lua:1: '=' exp

ected near 'onCreatureDisappear'

[Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/donations.

lua

data/npc/scripts/donations.lua:1: '=' expected near 'onCreatureDisappear'

 

como que arruma isso ??

Link para o comentário
https://xtibia.com/forum/topic/127552-npc-vendedor-de-itens-vip/#findComment-842846
Compartilhar em outros sites

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