Ir para conteúdo

Posts Recomendados

tipo esse eu sei que é possivel se alguem poderia me ajudar a fazer um npc que comprasse o item medal of honor (5785) e em troca de 20 dias de premium account..

Ajudem Por Favor.

 

Obrigado!

Editado por Khost
Link para o comentário
https://xtibia.com/forum/topic/117883-d%C3%BAvida-sanada/
Compartilhar em outros sites

tipo esse eu sei que é possivel se alguem poderia me ajudar a fazer um npc que comprasse o item medal of honor (5785) e em troca de 20 dias de premium account..

Ajudem Por Favor.

 

Obrigado!

 

 

Cara eu não sei se é possivel faser isso!

 

Intom eu nao tenho funçao com isso!

 

Mas se haver algum jeiito eu venho aqui e posto para voce!

Link para o comentário
https://xtibia.com/forum/topic/117883-d%C3%BAvida-sanada/#findComment-774746
Compartilhar em outros sites

Claro que é possível, mas tem que usar script, salve como moh.lua:

 

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

	if (msgcontains(msg, 'hi') then
			selfSay('Ola, eu vendo medal of honor, para comprar uma, fale MOH ou MEDAL OF HONOR.', cid)
			talkState[talkUser] = 1
elseif (msgcontains(msg, 'medal of honor') or msgcontains(msg, 'moh')) and (talkState[talkUser] == 1) then
	selfSay('Do you want to pay 20 premium days for a medal of honor?', cid)
	talkState[talkUser] = 2
elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
		if (getPlayerPremiumDays(cid) >= 20) then
							doPlayerAddPremiumDays(cid, -20)
			doPlayerAddItem(cid, 5785, 1)
			selfSay('Here you are.', cid)
		else
			selfSay('Sorry, you don\'t have 20 or more premium days!', cid)
		end
	talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({2}, talkState[talkUser]) == TRUE) then
	talkState[talkUser] = 0
	selfSay('Ok then.', cid)
end

return true
end

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

 

 

 

 

Agora no arquivo do NPC, exemplo: moh.xml, adicione:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="MOH Seller" script="data/npc/scripts/moh.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="143" head="0" body="126" legs="87" feet="87" addons="3"/>
</npc>

Editado por lucasjockey
Link para o comentário
https://xtibia.com/forum/topic/117883-d%C3%BAvida-sanada/#findComment-774792
Compartilhar em outros sites

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

 

if (msgcontains(msg, 'hi') then

selfSay('Ola, eu compro medal of honor, para vender uma, fale MOH ou MEDAL OF HONOR.', cid)

talkState[talkUser] = 1

elseif (msgcontains(msg, 'medal of honor') or msgcontains(msg, 'moh')) and (talkState[talkUser] == 1) then

selfSay('Voce deseja me dar sua medal of honor por 20 dias premium?', cid)

talkState[talkUser] = 2

elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 2) then

if doPlayerRemoveItem(cid,5785,1) then

doPlayerAddPremiumDays(cid, 20)

selfSay('Here you are.', cid)

else

selfSay('Sorry, you don\'t have 20 or more premium days!', cid)

end

talkState[talkUser] = 0

elseif(msgcontains(msg, 'no') and isInArray({2}, talkState[talkUser]) == TRUE) then

talkState[talkUser] = 0

selfSay('Ok then.', cid)

end

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Link para o comentário
https://xtibia.com/forum/topic/117883-d%C3%BAvida-sanada/#findComment-775005
Compartilhar em outros sites

Ae Lucas seu script deve estar perfeito só que deve ter algum erro pq quando eu boto no mapa da esse erro aqui ó :

 

[08/08/2009 00:02:01] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/moh.lua
[08/08/2009 00:02:01] data/npc/scripts/moh.lua:18: ')' expected near 'then'

 

Muito Obrigado, vc tem tem me ajudado de +...

Link para o comentário
https://xtibia.com/forum/topic/117883-d%C3%BAvida-sanada/#findComment-775097
Compartilhar em outros sites

oi Lucas eu falo com o npc ele não responde nada ,fica só parado e quando eu falo pela primeira vez ele diz :

 

09:59 Medalhista: Welcome, GOD Khost! I have been expecting you.

 

só isso....

 

 

Obrigado!

Link para o comentário
https://xtibia.com/forum/topic/117883-d%C3%BAvida-sanada/#findComment-775192
Compartilhar em outros sites

ou retira a msg "hi" do arquivo.lua do npc, ou retira os parametros do xml do npc.

 

 

edited na realidade tem que retirar a msg hi do arquivo.lua

Editado por Marcryzius
Link para o comentário
https://xtibia.com/forum/topic/117883-d%C3%BAvida-sanada/#findComment-775263
Compartilhar em outros sites

Olha oq acontece , marcryzius eu fiz oq vc falo :

 

20:03 Medalhista: Eu compro Medal of Honor ganhada no evento Survivor!.

20:03 GOD Alissow [275]: moh

20:03 Medalhista: Ola, eu compro medal of honor ganhada no evento SURVIVOR, para vender uma, fale MOH ou MEDAL OF HONOR.

20:03 Medalhista: Voce deseja me dar sua medal of honor por 20 dias premium?

20:03 GOD Alissow [275]: yes

20:03 Medalhista: Ola, eu compro medal of honor ganhada no evento SURVIVOR, para vender uma, fale MOH ou MEDAL OF HONOR.

 

oq eu fasso ele não compra o item....

 

 

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

selfSay('Ola, eu compro medal of honor ganhada no evento SURVIVOR, para vender uma, fale MOH ou MEDAL OF HONOR.', cid)
talkState[talkUser] = 1
if (msgcontains(msg, 'medal of honor') or msgcontains(msg, 'moh')) and (talkState[talkUser] == 1) then
selfSay('Voce deseja me dar sua medal of honor por 20 dias premium?', cid)
talkState[talkUser] = 2
elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
if doPlayerRemoveItem(cid,5785,1) then
doPlayerAddPremiumDays(cid, 20)
selfSay('Here you are.', cid)
else
selfSay('Desculpe,voce nao tem a Medal of Honor!', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({2}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok then.', cid)
end

return true
end

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

 

 

Obrigado!

Editado por Khost
Link para o comentário
https://xtibia.com/forum/topic/117883-d%C3%BAvida-sanada/#findComment-775448
Compartilhar em outros sites

lua.

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

 

if (msgcontains(msg, 'medal of honor') or msgcontains(msg, 'moh')) then

selfSay('Voce deseja me dar sua medal of honor por 20 dias premium?', cid)

talkState[talkUser] = 1

 

elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then

talkState[talkUser] = 0

if doPlayerRemoveItem(cid,5785,1) == TRUE then

doPlayerAddPremiumDays(cid, 20)

selfSay('Foi adicionada a sua conta uma premium de 20 dias em troca de sua medal of honor.', cid)

else

selfSay('Desculpe,voce nao tem a Medal of Honor!', cid)

talkState[talkUser] = 0

end

 

talkState[talkUser] = 0

elseif(msgcontains(msg, 'no') and isInArray({2}, talkState[talkUser]) == TRUE) then

talkState[talkUser] = 0

selfSay('Ok then.', cid)

end

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

xml.

<?xml version="1.0" encoding="UTF-8"?>

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

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

<look type="128" head="17" body="54" legs="114" feet="0" addons="2"/>

<parameters>

<parameter key="message_greet" value="Holla |PLAYERNAME|, eu compro {medal of honor} ganhada no evento ({SURVIVOR}), para vender uma, fale {MOH} ou {MEDAL OF HONOR}."/>

</parameters>

</npc>

Link para o comentário
https://xtibia.com/forum/topic/117883-d%C3%BAvida-sanada/#findComment-775485
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...