Ir para conteúdo

Npc Vendedor De Itens Vip


Dark Blah

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
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
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
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
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
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
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
Compartilhar em outros sites

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