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

Vip npc trades vip coins for items

wafuboe

Active Member
Joined
Dec 24, 2010
Messages
884
Solutions
2
Reaction score
26
well i need a npc that trades items for vip coins ID= 9020 <- vip coin

for example trade 50 vips coins for a x sword
it could be good if u say the name of the item like
hi, trade, thain sword


ty =)
 
How many items does the npc need to sell?

Edit: Made one with 2 items, if you want more you can just copy and past and change ids, text and names.

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, 'thain') or msgcontains(msg, 'sword')) then
		selfSay('Do you want to buy a thain sword for 50 vip coins?', cid)
		talkState[talkUser] = 1
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
            if getPlayerItemCount(cid, 9020) >= 50 then
                doPlayerRemoveItem(cid, 9020, 50)
                npcHandler:say("Have fun with it.", cid)
                doPlayerAddItem(cid, 7391, 1)
		else
			selfSay('Come back when you have it.', cid)
		end

	elseif(msgcontains(msg, 'thain') or msgcontains(msg, 'sword')) then
		selfSay('Do you want to buy a thain sword for 50 vip coins?', cid)
		talkState[talkUser] = 2
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
            if getPlayerItemCount(cid, 9020) >= 50 then
                doPlayerRemoveItem(cid, 9020, 50)
                npcHandler:say("Have fun with it.", cid)
                doPlayerAddItem(cid, 7391, 1)
		else
			selfSay('Come back when you have it.', cid)
		end

		talkState[talkUser] = 0
	elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser])) then
		talkState[talkUser] = 0
		selfSay('Huh?', cid)
	end

	return true
end

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

Not tested yet, but it should work.
 
Last edited:
[19/03/2012 23:28:34] [Error - LuaScriptInterface::loadFile] data/npc/scripts/viptrade.lua:30: ')' expected near 'x'
[19/03/2012 23:28:34] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/viptrade.lua
[19/03/2012 23:28:34] data/npc/scripts/viptrade.lua:30: ')' expected near 'x'


error :SSS
 
Back
Top