• 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!

Lua NPC, What's wrong there?

MUTANO

New Member
Joined
Jan 10, 2009
Messages
39
Reaction score
2
Location
Brazil - Santa Catarina
Hello everyone.
I did notice that an NPC Soft Boots, and exchange Soul orb more 5000 gps for 10 infernal bolts.
But only worked part where he repairs the Soft Boots.
Because the exchange of Soul Orb plus gps by infernal bolts did not work.
Infernal Bolt to say, he simply does not answer anything.
I wanted someone there, help me to agree that in NPC.

Script:
PHP:
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, 'soft boots')) then
		selfSay('Do you want to repair your worn soft boots for 10000 gold coins?', cid)
		talkState[talkUser] = 1
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
	if(getPlayerItemCount(cid, 6530) >= 1) then
		if(doPlayerRemoveMoney(cid, 10000) == TRUE) then
		local item = getPlayerItemById(cid, TRUE, 6530)
		doTransformItem(item.uid, 2640)
		selfSay('Here you are.', cid)
			else
		selfSay('Sorry, you don\'t have enough gold.', cid)
			end
		else
			selfSay('Sorry, you don\'t have the item.', cid)
		end
		talkState[talkUser] = 0
		
	if(msgcontains(msg, 'infernal bolt')) then
	selfSay('Want to change a Soul Orb and 5000 gold coins by 10 Infernal Bolts?', cid)
	talkState[talkUser] = 1
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
	if(getPlayerItemCount(cid, 5944) >= 1) then
	if(doPlayerRemoveMoney(cid, 5000) == TRUE) then
	local item = getPlayerItemById(cid, TRUE, 5944)
	doTransformItem(item.uid, 6529, 10)
		selfSay('Here you are.', cid)
			else
		selfSay('Sorry, you don\'t have enough gold.', cid)
			end
		           else
	        selfSay('Sorry, you don\'t have the item.', cid)
		        end
		talkState[talkUser] = 0
		
	elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
		talkState[talkUser] = 0
		selfSay('Ok then.', cid)
	end

	return true
end
	end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Thanks ;)
 
Back
Top