• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

NPC Exchange ?

Fresh

Quack!
Joined
Oct 21, 2009
Messages
1,838
Solutions
18
Reaction score
617
Location
Poland
Hello,
I need (yes, i request!) an npc:

Exchanger, i mean:

If i got 5 meat the npc get my meat and give me item
If i got 25 meat the npc get my meat and give me item
If i got 30 meat the npc get my meat and give me item.
etc.

Anyone can write it for me ? please :huh:
 
There ya go... this is the .lua file
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, '25 meat') or msgcontains(msg, '25 ham')) then
		selfSay('Do you want to change your 25 piece of food with ITEM XXXX', cid) --- edit the item name
		talkState[talkUser] = 1
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
		if(getPlayerItemCount(cid, 2666) >= 25 or getPlayerItemCount(cid, 2671 >= 25) then
			if(doPlayerRemoveItem(cid, 2666, 25) or doPlayerRemoveItem(cid, 2671, 50)) then
				doPlayerAddItem(cid, XXXX, Z) ---- XXXX= item id / Z= Amount
				selfSay('Here you are.', cid)
			else
				selfSay('Sorry, you don\'t have 25 piece of food!', cid)
			end
		end
	if(msgcontains(msg, '50 meat') or msgcontains(msg, '50 ham')) then
		selfSay('Do you want to change your 50 piece of food with ITEM XXXX', cid) --- edit the item name
		talkState[talkUser] = 1
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
		if(getPlayerItemCount(cid, 2666) >= 50 or getPlayerItemCount(cid, 2671 >= 50) then
			if(doPlayerRemoveItem(cid, 2666, 50) or doPlayerRemoveItem(cid, 2671, 50)) then
				doPlayerAddItem(cid, XXXX, Z) ---- XXXX= item id / Z= Amount
				selfSay('Here you are.', cid)
			else
				selfSay('Sorry, you don\'t have 50 piece of food!', cid)
			end
		end
		talkState[talkUser] = 0
	elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser])) then
		talkState[talkUser] = 0
		selfSay('Ok then.', cid)
	end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
and the npc.xml file
Lua:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="NPC NAME" nameDescription="NPC DESCFIPTION" script="food exhcange.lua" walkinterval="2000" floorchange="0" skull="red">
	<health now="100" max="100"/>
	<look type="130" head="39" body="122" legs="125" feet="57" addons="2"/>
</npc>
REP++ ME IF I HELPED YOU PLEASEEEE :p
 
Back
Top