Ir para conteúdo

Posts Recomendados

  • 2 weeks later...

Olá !!

 

Bom, NPC's em geral, são chatos de fazer '-'...

 

Mas, se for do seu agrado tenho uma dica..

Eu posso fazer um script, que ao dar use na soul orb..

ela se transforma em X infernal bolts..

 

Se você se interessar por esse método, posta ai..

que eu faço o script..

 

abraços.

Link para o comentário
https://xtibia.com/forum/topic/111550-trocando-soul-orb-por-infernal-bolt/#findComment-731777
Compartilhar em outros sites

Ola pessoal, uso um server SQL e preciso de um NPC que troce soul orbs por infernal bolts, alguem poderia fazer esse script para mim?! grato

se a versão do seu server for TFS eu fasso o npc para você!

Link para o comentário
https://xtibia.com/forum/topic/111550-trocando-soul-orb-por-infernal-bolt/#findComment-732620
Compartilhar em outros sites

Amigo, como o cara ali disse, npcs sao muito chatos de se fazer, eu aconselho voce aceitar o script que ele te propos, pois e uma boa!

Mas se voce quiser NPC mesmo, so pedindo no topico de Pedidos que eu acho que voce conseguira.

Boa Sorte

 

Abraços

Tribal

Link para o comentário
https://xtibia.com/forum/topic/111550-trocando-soul-orb-por-infernal-bolt/#findComment-732632
Compartilhar em outros sites

aki ta o npc s. cyclops:

 

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

local shopModule = ShopModule:new()
npcHandler:addModule(shopModule)

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
	return false
end
	if msgcontains(msg, 'help') then
	selfSay('You can here change some items for "spider silk yarn", "chunk of crude iron", "draconian steel", "warrior sweat", "magic sulpher", "enchanted chicken wing", "royal steel", "hell steel", "engraved crossbow", "fighting spirit", "infernal bolt", "blue, green and red piece of clothes", "obsidian knife" and "lottery ticket".', cid)

		elseif msgcontains(msg, 'spider silk yarn') then
		if getPlayerItemCount(cid,5879) >= 10 then
			selfSay('Did you bring me the 10 Giant Silks ?', cid)
			talk_state = 1
		else
			selfSay('I need a 10 Giant Spider Silks, to give you the spider silk yarn. Come back when you have them.', cid)
			talk_state = 0
		end

		elseif msgcontains(msg, 'yes') and talk_state == 1 then
		talk_state = 0
		if getPlayerItemCount(cid,5879) >= 10 then
		if doPlayerRemoveItem(cid,5879, 10) == TRUE then
		doPlayerAddItem(cid, 5886, 1)
					selfSay('Here u are.')
		end
		else
			selfSay(havent_item)
		end

elseif msgcontains(msg, 'chunk of crude iron') then
if getPlayerItemCount(cid,2393) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 then
selfSay('Did you bring me the 3 Bast Skirts and Giant Sword ?')
talk_state = 2
else
selfSay('I need a 3 Bast Skirts and Giant Sword, to give you the chunk of crude iron. Come back when you have them.', cid)
talk_state = 0
end
elseif msgcontains(msg, 'yes') and talk_state == 2 then
talk_state = 0
if getPlayerItemCount(cid,2393) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 then
if doPlayerRemoveItem(cid,2393,1) == 1 and doPlayerRemoveItem(cid,3983,1) == 1 and doPlayerRemoveItem(cid,3983,1) == 1 and doPlayerRemoveItem(cid,3983,1) == 1 then
selfSay(addon_give)
doPlayerAddItem(cid,5892,1)
end
else
selfSay(havent_item)
end

elseif msgcontains(msg, 'draconian steel') then
if getPlayerItemCount(cid,2516) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 then
selfSay('Did you bring me 3 Bast Skirts and Dragon Shield ?', cid)
talk_state = 3
else
selfSay('I need 3 Bast Skirts and Dragon Shield, to give you the draconian steel. Come back when you have them.', cid)
talk_state = 0
end
elseif msgcontains(msg, 'yes') and talk_state == 3 then
talk_state = 0
if getPlayerItemCount(cid,2516) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 then
if doPlayerRemoveItem(cid,2516,1) == 1 and doPlayerRemoveItem(cid,3983,1) == 1 and doPlayerRemoveItem(cid,3983,1) == 1 and doPlayerRemoveItem(cid,3983,1) == 1 then
doPlayerAddItem(cid,5889,1)
selfSay('Here u are.')
end
else
selfSay(havent_item)
end

	elseif msgcontains(msg, 'warrior sweat') then
			if getPlayerItemCount(cid,2475) >= 1 and getPlayerItemCount(cid,2475) >= 1 and getPlayerItemCount(cid,2475) >= 1 and getPlayerItemCount(cid,2475) >= 1 then
				selfSay('Did you bring me 4 warrior helmets?', cid)
				talk_state = 4
			else
				selfSay('I need 4 warrior helmets, to give you the warrior sweat. Come back when you have them.', cid)
				talk_state = 0
			end
	elseif msgcontains(msg, 'yes') and talk_state == 4 then
		talk_state = 0
		if getPlayerItemCount(cid,2475) >= 1 and getPlayerItemCount(cid,2475) >= 1 and getPlayerItemCount(cid,2475) >= 1 and getPlayerItemCount(cid,2475) >= 1 then
				if doPlayerRemoveItem(cid,2475,1) == 1 and doPlayerRemoveItem(cid,2475,1) == 1 and doPlayerRemoveItem(cid,2475,1) == 1 and doPlayerRemoveItem(cid,2475,1) == 1 then
					doPlayerAddItem(cid,5885,1)
					selfSay(addon_give)
				end
			else
			selfSay(havent_item)
			end

elseif msgcontains(msg, 'magic sulphur') then
if getPlayerItemCount(cid,2392) >= 1 and getPlayerItemCount(cid,2392) >= 1 and getPlayerItemCount(cid,2392) >= 1 then
selfSay('Did you bring me 3 fire swords?', cid)
talk_state = 5
else
selfSay('I need 3 fire swords, to give you the magic sulpher. Come back when you have them.', cid)
talk_state = 0
end

	elseif msgcontains(msg, 'yes') and talk_state == 5 then
		talk_state = 0
		if getPlayerItemCount(cid,2392) >= 1 and getPlayerItemCount(cid,2392) >= 1 and getPlayerItemCount(cid,2392) >= 1 then
				if doPlayerRemoveItem(cid,2392,1) == 1 and doPlayerRemoveItem(cid,2392,1) == 1 and doPlayerRemoveItem(cid,2392,1) == 1 then
					doPlayerAddItem(cid,5904,1)
					selfSay(addon_give)
			end
		else
			selfSay(havent_item)
		end

	elseif msgcontains(msg, 'enchanted chicken wing') then
		if getPlayerItemCount(cid,2195) >= 1 then
			selfSay('Did you bring me boots of haste?', cid)
			talk_state = 6
		else
			selfSay('I need boots of haste, to give you the enchanted chicken wing. Come back when you have them.', cid)
			talk_state = 0
		end

	elseif msgcontains(msg, 'yes') and talk_state == 6 then
		talk_state = 0
		if getPlayerItemCount(cid,2195) >= 1 then
				if doPlayerRemoveItem(cid,2195,1) == 1 then
					doPlayerAddItem(cid,5891,1)
					selfSay(addon_give)
				end
		else
			selfSay(havent_item)
		end



	elseif msgcontains(msg, 'royal steel') then
		if getPlayerItemCount(cid,2487) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 then
			selfSay('Did you bring me the 3 Bast Skirts and Crown Armor ?', cid)
			talk_state = 7
		else
			selfSay('I need 3 Bast Skirts and Crown Armor, to give you the royal steel. Come back when you have them.', cid)
			talk_state = 0
		end
	elseif msgcontains(msg, 'yes') and talk_state == 7 then
		talk_state = 0
		if getPlayerItemCount(cid,2487) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 then
				if doPlayerRemoveItem(cid,2487,1) == 1 and doPlayerRemoveItem(cid,3983,1) == 1 and doPlayerRemoveItem(cid,3983,1) == 1 and doPlayerRemoveItem(cid,3983,1) == 1 then
					selfSay(addon_give)
					doPlayerAddItem(cid,5887,1)
				end
		else
			selfSay(havent_item)
		end


	elseif msgcontains(msg, 'hell steel') then
		if getPlayerItemCount(cid,2462) == 1 and getPlayerItemCount(cid,3983) == 3 then
			selfSay('Did you bring me the 3 Bast Skirts and Devil Helmet ?', cid)
			talk_state = 8
		else
			selfSay('I need a 3 Bast Skirts and Devil Helmet, to give you the hell steel. Come back when you have them.', cid)
			talk_state = 0
		end

	elseif msgcontains(msg, 'yes') and talk_state == 8 then
		talk_state = 0
		if getPlayerItemCount(cid,2462) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 and getPlayerItemCount(cid,3983) >= 1 then

				if doPlayerRemoveItem(cid,2462,1) == 1 and doPlayerRemoveItem(cid,3983,1) == 1 and doPlayerRemoveItem(cid,3983,1) == 1 and doPlayerRemoveItem(cid,3983,1) == 1 then
					selfSay(addon_give)
					doPlayerAddItem(cid,5888,1)
				end
		else
			selfSay(havent_item)
		end

	elseif msgcontains(msg, 'engraved crossbow') then
		if getPlayerItemCount(cid,5954) >= 15 then
			selfSay('Did you bring me the 15 demon horns?', cid)
			talk_state = 9
		else
			selfSay('I need a 15 demon horns, to give you the engraved crossbow. Come back when you have them.', cid)
			talk_state = 0
		end
	elseif msgcontains(msg, 'yes') and talk_state == 9 then
		talk_state = 0
		if getPlayerItemCount(cid,5954) >= 15 then
				if doPlayerRemoveItem(cid,5954,15) == 1 then
					selfSay(addon_give)
					doPlayerAddItem(cid,5947,1)
				end

		else
			selfSay(havent_item)
		end

	elseif msgcontains(msg, 'fighting spirit') then
		if getPlayerItemCount(cid,2498) >= 1 and getPlayerItemCount(cid,2498) >= 1 then
			selfSay('Did you bring me the 2 Royal Helmets?', cid)
			talk_state = 10
		else
			selfSay('I need a 2 Royal Helmets, to give you the Fighting Spirit. Come back when you have them.', cid)
			talk_state = 0
		end
	elseif msgcontains(msg, 'yes') and talk_state == 10 then
		talk_state = 0
		if getPlayerItemCount(cid,2498) >= 1 and getPlayerItemCount(cid,2498) >= 1 then
				if doPlayerRemoveItem(cid,2498,1) == 1 and doPlayerRemoveItem(cid,2498,1) == 1 then
					selfSay(addon_give)
					doPlayerAddItem(cid,5884,1)
				end

		else
			selfSay(havent_item)
		end


	elseif msgcontains(msg, 'infernal bolt') then
		if getPlayerItemCount(cid,5944) >= 1 then
			selfSay('Did you bring me the Soul Orb?', cid)
			talk_state = 11
		else
			selfSay('I need a Soul Orb, to give you the 10 Infernal Bolts. Come back when you have them.', cid)
			talk_state = 0
		end
	elseif msgcontains(msg, 'yes') and talk_state == 11 then
		talk_state = 0
		if getPlayerItemCount(cid,5944) >= 1 then
				if doPlayerRemoveItem(cid,5944,1) == 1 then
					selfSay(addon_give)
					doPlayerAddItem(cid,6529,10)
				end

		else
			selfSay(havent_item)
		end

	elseif msgcontains(msg, 'blue piece of cloth') then
		if getPlayerItemCount(cid,2663) >= 1 then
			selfSay('Did you bring me the Mystic Turban ?', cid)
			talk_state = 12
		else
			selfSay('I need a Mystic Turban, to give you the Blue Piece of Cloth. Come back when you have them.', cid)
			talk_state = 0
		end
	elseif msgcontains(msg, 'yes') and talk_state == 12 then
		talk_state = 0
		if getPlayerItemCount(cid,2663) >= 1 then
				if doPlayerRemoveItem(cid,2663,1) == 1 then
					selfSay(addon_give)
					doPlayerAddItem(cid,5912,1)
				end

		else
			selfSay(havent_item)
		end

	elseif msgcontains(msg, 'green piece of cloth') then
		if getPlayerItemCount(cid,2652) >= 1 then
			selfSay('Did you bring me the Green Tunic ?', cid)
			talk_state = 13
		else
			selfSay('I need a Green Tunic, to give you the Green Piece of Cloth. Come back when you have them.', cid)
			talk_state = 0
		end
	elseif msgcontains(msg, 'yes') and talk_state == 13 then
		talk_state = 0
		if getPlayerItemCount(cid,2652) >= 1 then
				if doPlayerRemoveItem(cid,2652,1) == 1 then
					selfSay(addon_give)
					doPlayerAddItem(cid,5910,1)
				end

		else
			selfSay(havent_item)
		end

	elseif msgcontains(msg, 'red piece of cloth') then
		if getPlayerItemCount(cid,2655) >= 1 then
			selfSay('Did you bring me the Red Robe ?', cid)
			talk_state = 14
		else
			selfSay('I need a Red Robe, to give you the Red Piece of Cloth. Come back when you have them.', cid)
			talk_state = 0
		end
	elseif msgcontains(msg, 'yes') and talk_state == 14 then
		talk_state = 0
		if getPlayerItemCount(cid,2655) >= 1 then
				if doPlayerRemoveItem(cid,2655,1) == 1 then
					selfSay(addon_give)
					doPlayerAddItem(cid,5911,1)
				end

		else
			selfSay(havent_item)
		end


	elseif msgcontains(msg, 'obsidian knife') then
		if getPlayerItemCount(cid,3983) >= 3 and getPlayerItemCount(cid,2516) >= 1 and getPlayerItemCount(cid,2425) >= 1 then
			selfSay('Did you bring me the 3 bast skirts, a dragon shield and a obsidian lance?', cid)
			talk_state = 15
		else
			selfSay('I need 3 bast skirts, a dragon shield and a obsidian lance to give you the obsidian knife. Come back when you have them.', cid)
			talk_state = 0
		end
	elseif msgcontains(msg, 'yes') and talk_state == 15 then
		talk_state = 0
		if getPlayerItemCount(cid,3983) >= 3 and getPlayerItemCount(cid,2516) >= 1 and getPlayerItemCount(cid,2425) >= 1  then
				if doPlayerRemoveItem(cid,3983,1) == 3 and doPlayerRemoveItem(cid,2516,1) == 1 and doPlayerRemoveItem(cid,2425,1) == 1 then
					selfSay(addon_give)
					doPlayerAddItem(cid,5908,1)
				end

		else
			selfSay(havent_item)
		end


elseif msgcontains(msg, 'ticket') or msgcontains(msg, 'lottery') or msgcontains(msg, 'lottery ticket') or msgcontains(msg, 'lotery ticket') then
if getPlayerItemCount(cid,2006) >= 100 then
selfSay('Did you bring me 100 empty vials?', cid)
talk_state = 9
else
selfSay('I need 100 empty vials, to give you a lottery ticket. Come back when you have them.', cid)
talk_state = 0
end
elseif msgcontains(msg, 'yes') and talk_state == 9 then
talk_state = 0
if getPlayerItemCount(cid,2006) >= 100 then
if doPlayerRemoveItem(cid,2006,100) == 1 then
selfSay(addon_give)
if(math.random(1,10) == 1) then
doPlayerAddItem(cid,5958,1)
else
doPlayerAddItem(cid,5956,1)
end

else
selfSay(havent_item)
end



elseif msgcontains(msg, 'yes') and talk_state == 6 then
	if getPlayerItemCount(cid,2006) >= 100 then
		if doPlayerTakeItem(cid,2006,100) == 0 then
			selfSay('Here you are.')
			if(math.random(1,10) == 1) then
				doPlayerAddItem(cid,5958,1)
			else
				doPlayerAddItem(cid,5956,1)
			end
		else
			selfSay(hasNoMsg)
		end
	else
		selfSay(hasNoMsg)
	end


	elseif msgcontains(msg, 'no') and (talk_state >= 1 and talk_state <= 5) then
		selfSay('Ok than.', cid)
		talk_state = 0
	end
-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
return true
end

end

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

Link para o comentário
https://xtibia.com/forum/topic/111550-trocando-soul-orb-por-infernal-bolt/#findComment-733684
Compartilhar em outros sites

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