• 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 Npcs Don't buy empty flasks

renancs

New Member
Joined
Jul 8, 2008
Messages
252
Reaction score
3
Heelo, what is wrong with this npc he doesnt buy the empty flasks:
Npc.XML
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="NPC" script="script.lua" walkinterval="2000" floorchange="0">
    <health now="100" max="100"/>
    <look type="136" head="58" body="84" legs="86" feet="114" addons="0"/>
    <parameters>
        <parameter key="module_keywords" value="1" />
        <parameter key="message_greet" value="Welcome |PLAYERNAME|! Whats your need? Im selling {potions}, {runes} and {wands}."/>
        <parameter key="message_farewell" value="Good bye, |PLAYERNAME|."/>
        <parameter key="keywords" value="job;" />
        <parameter key="keyword_reply1" value="I am the head alchemist of Carlin. I keep the secret recipies of our ancestors. Besides, I {trade} mana and health potions, spellbooks, wands, rods and runes." />
	</parameters>
</npc>

script.LUA
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

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

shopModule:addBuyableItem({'spellbook'}, 2175, 150, 1, 'spellbook')
shopModule:addBuyableItem({'magic lightwand'}, 2163, 400, 1, 'magic lightwand')

------FLASK
shopModule:addSellableItem({'empty potion flask'}, 7636, 5,		'empty normal potion flask')
shopModule:addSellableItem({'empty potion flask'}, 7634, 10,	'empty strong potion flask')
shopModule:addSellableItem({'empty potion flask'}, 7635, 15,	'empty great potion flask')

shopModule:addBuyableItem({'small health'},		8704,	 20,	 1,	 'small health potion')
shopModule:addBuyableItem({'health potion'},	7618,	 45,	 1,	 'health potion')
shopModule:addBuyableItem({'mana potion'},	 	7620,	 50,	 1,	 'mana potion')
shopModule:addBuyableItem({'strong health'},	7588,	 100,	 1,	 'strong health potion')
shopModule:addBuyableItem({'strong mana'},	 	7589,	 80,	 1,	 'strong mana potion')
shopModule:addBuyableItem({'great health'},	 	7591,	 190,	 1,	 'great health potion')
shopModule:addBuyableItem({'great mana'},		7590,	 120,	 1,	 'great mana potion')
shopModule:addBuyableItem({'great spirit'},	 	8472,	 190,	 1,	 'great spirit potion')
shopModule:addBuyableItem({'ultimate health'},	8473,	 310,	 1,	 'ultimate health potion')
shopModule:addBuyableItem({'antidote potion'},	8474,	 50,	 1,	 'antidote potion')

shopModule:addBuyableItem({'fire field'}, 		2301, 28, 	1,	'fire field rune')
shopModule:addBuyableItem({'firebomb'}, 	 	2305, 117, 	1,	'firebomb rune')
shopModule:addBuyableItem({'fire wall'}, 		2303, 61, 	1,	'fire wall rune')
shopModule:addBuyableItem({'fireball'}, 		2302, 30, 	1,	'fireball rune')

shopModule:addBuyableItem({'poison field'}, 	2285, 21, 	1,	'poison field rune')
shopModule:addBuyableItem({'poisonbomb'}, 		2286, 85 ,	1,	'poison bomb rune')
shopModule:addBuyableItem({'poison wall'}, 		2289, 52, 	1,	'poison wall rune')

shopModule:addBuyableItem({'energy field'}, 	2277, 115, 	1,	'energy field rune')
shopModule:addBuyableItem({'energybomb'},	 	2262, 325, 	1,	'energybomb rune')
shopModule:addBuyableItem({'energy wall'}, 		2279, 340, 	1,	'energy wall rune')

shopModule:addBuyableItem({'destroy field'}, 	2261, 15, 	1,	'destroy field rune')

shopModule:addBuyableItem({'light magic missile'}, 	2287, 4, 	1,	'light magic missile rune')
shopModule:addBuyableItem({'heavy magic missile'}, 	2311, 12, 	1,	'heavy magic missile rune')
shopModule:addBuyableItem({'stalagmite'}, 		2292, 12, 	1,	'stalagmite rune')
shopModule:addBuyableItem({'icicle'},	 		2271, 30, 	1,	'Icicle rune')
shopModule:addBuyableItem({'stone shower'}, 	2288, 37, 	1,	'stone shower rune')
shopModule:addBuyableItem({'thunderstorm'},	 	2315, 37, 	1,	'thunderstorm rune')
shopModule:addBuyableItem({'avalanche'}, 		2274, 45, 	1,	'avalanche rune')
shopModule:addBuyableItem({'great'}, 			2304, 45, 	1, 	'great fireball rune')
shopModule:addBuyableItem({'explosion'}, 		2313, 31, 	1, 	'explosion rune')
shopModule:addBuyableItem({'sudden death'}, 	2268, 108, 	1, 	'sudden death rune')
shopModule:addBuyableItem({'intense'}, 			2265, 95, 	1, 	'intense healing rune')
shopModule:addBuyableItem({'ultimate'}, 		2273, 175, 	1, 	'ultimate healing rune')
shopModule:addBuyableItem({'convince creature'},	2290, 80, 	1, 	'convince creature rune')
shopModule:addBuyableItem({'animate dead'}, 	2316, 375, 	1, 	'animate dead rune')
shopModule:addBuyableItem({'desintegrate'}, 	2310, 26, 	1, 	'desintegrate rune')
shopModule:addBuyableItem({'chameleon'}, 		2291, 210, 	1, 	'chameleon rune')
shopModule:addBuyableItem({'magic wall'}, 		2293, 116, 	1, 	'magic wall rune')
shopModule:addBuyableItem({'soulfire'}, 		2308, 46, 	1, 	'soulfire rune')
shopModule:addBuyableItem({'blank rune'}, 		2260, 10,	1,	'blank rune')
shopModule:addBuyableItemContainer({'wild growth'}, 	2269, 160,  1, 'wild growth rune')
shopModule:addBuyableItemContainer({'paralyze'}, 	2278, 700,  1, 'paralyze rune')

shopModule:addBuyableItem({'wand of vortex', 1, 'vortex'},			 2190, 500, 1, 'wand of vortex')
shopModule:addBuyableItem({'wand of dragonbreath', 1, 'dragonbreath'},	 2191, 1000, 1, 'wand of dragonbreath')
shopModule:addBuyableItem({'wand of decay', 1, 'decay'},			 2188, 5000, 1, 'wand of decay')
shopModule:addBuyableItem({'wand of draconia', 1, 'draconia'},		 8921, 7500, 1, 'wand of draconia')
shopModule:addBuyableItem({'wand of cosmic energy', 1, 'cosmic energy'},	 2189, 10000, 1, 'wand of cosmic energy')
shopModule:addBuyableItem({'wand of inferno', 1, 'inferno'},		 2187, 15000, 1, 'wand of inferno')
shopModule:addBuyableItem({'wand of starstorm', 1, 'starstorm'},		 8920, 18000, 1, 'wand of starstorm')
shopModule:addBuyableItem({'wand of voodoo', 1, 'voodoo'},			 8922, 22000, 1, 'wand of voodoo')

shopModule:addBuyableItem({'snakebite rod', 1, 'snakebite'},		 2182, 500, 1, 'snakebite rod')
shopModule:addBuyableItem({'moonlight rod', 1, 'moonlight'},		 2186, 1000, 1, 'moonlight rod')
shopModule:addBuyableItem({'necrotic rod', 1, 'necrotic'},			 2185, 5000, 1, 'necrotic rod')
shopModule:addBuyableItem({'northwind rod', 1, 'northwind'},		 8911, 7500, 1, 'northwind rod')
shopModule:addBuyableItem({'terra rod', 1, 'terra'},			 2181, 10000, 1, 'terra rod')
shopModule:addBuyableItem({'hailstorm rod', 1, 'hailstorm'},		 2183, 15000, 1, 'hailstorm rod')
shopModule:addBuyableItem({'springsprout rod', 1, 'springsprout'},		 8912, 18000, 1, 'springsprout rod')
shopModule:addBuyableItem({'underworld rod', 1, 'underworld'},		 8910, 22000, 1, 'underworld rod')

function creatureSayCallback(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return false
	end

	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
	local items = {[1] = 2190, [2] = 2182, [5] = 2190, [6] = 2182}

	if(msgcontains(msg, 1, 'first rod') or msgcontains(msg, 1, 'first wand')) then
		if(isSorcerer(cid) or isDruid(cid)) then
			if(getPlayerStorageValue(cid, 30002) == -1) then
				selfSay('So you ask me for a {' .. getItemName(items[getPlayerVocation(cid)]) .. '} to begin your advanture?', cid)
				talkState[talkUser] = 1
			else
				selfSay('What? I have already gave you one {' .. getItemName(items[getPlayerVocation(cid)]) .. '}!', cid)
			end
		else
			selfSay('Sorry, you aren\'t a druid either a sorcerer.', cid)
		end
	elseif(msgcontains(msg, 1, 'yes')) then
		if(talkState[talkUser] == 1) then
			doPlayerAddItem(cid, items[getPlayerVocation(cid)], 1)
			selfSay('Here you are young adept, take care yourself.', cid)
			setPlayerStorageValue(cid, 30002, 1)
		end
		talkState[talkUser] = 0
	elseif(msgcontains(msg, 1, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
		selfSay('Ok then.', cid)
		talkState[talkUser] = 0
	end

	return true
end

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