local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
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, 'spellbook')
shopModule:addBuyableItem({'magic lightwand'}, 2163, 400, 'magic lightwand')
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')
---- 12x potions
shopModule:addBuyableItem({'great mana'}, 12784, 438, 1, 'ultimate mana potion')
shopModule:addBuyableItem({'great spirit'}, 12786, 438, 1, 'ultimate spirit potion')
shopModule:addBuyableItem({'ultimate health'}, 12785, 625, 1, 'supreme health potion')
shopModule:addSellableItem({'normal potion flask', 'normal flask'}, 7636, 5, 'empty small potion flask')
shopModule:addSellableItem({'strong potion flask', 'strong flask'}, 7634, 10, 'empty strong potion flask')
shopModule:addSellableItem({'great potion flask', 'great flask'}, 7635, 15, 'empty great potion flask')
---shopModule:addBuyableItem({'instense healing'}, 2265, 95, 1, 'intense healing rune')
---shopModule:addBuyableItem({'ultimate healing'}, 2273, 175, 1, 'ultimate healing rune')
---shopModule:addBuyableItem({'magic wall'}, 2293, 350, 3, 'magic wall rune')
---shopModule:addBuyableItem({'destroy field'}, 2261, 45, 3, 'destroy field rune')
---shopModule:addBuyableItem({'light magic missile'}, 2287, 40, 10, 'light magic missile rune')
---shopModule:addBuyableItem({'heavy magic missile'}, 2311, 120, 10, 'heavy magic missile rune')
---shopModule:addBuyableItem({'great fireball'}, 2304, 180, 4, 'great fireball rune')
---shopModule:addBuyableItem({'explosion'}, 2313, 250, 6, 'explosion rune')
---shopModule:addBuyableItem({'sudden death'}, 2268, 350, 3, 'sudden death rune')
---shopModule:addBuyableItem({'death arrow'}, 2263, 300, 3, 'death arrow rune')
---shopModule:addBuyableItem({'paralyze'}, 2278, 700, 1, 'paralyze rune')
---shopModule:addBuyableItem({'animate dead'}, 2316, 375, 1, 'animate dead rune')
---shopModule:addBuyableItem({'convince creature'}, 2290, 80, 1, 'convince creature rune')
---shopModule:addBuyableItem({'chameleon'}, 2291, 210, 1, 'chameleon rune')
---shopModule:addBuyableItem({'desintegrate'}, 2310, 80, 3, 'desintegreate rune')
shopModule:addBuyableItem({'wand of vortex', 'vortex'}, 2190, 500, 'wand of vortex')
shopModule:addBuyableItem({'wand of dragonbreath', 'dragonbreath'}, 2191, 1000, 'wand of dragonbreath')
shopModule:addBuyableItem({'wand of decay', 'decay'}, 2188, 5000, 'wand of decay')
shopModule:addBuyableItem({'wand of draconia', 'draconia'}, 8921, 7500, 'wand of draconia')
shopModule:addBuyableItem({'wand of cosmic energy', 'cosmic energy'}, 2189, 10000, 'wand of cosmic energy')
shopModule:addBuyableItem({'wand of inferno', 'inferno'}, 2187, 15000, 'wand of inferno')
shopModule:addBuyableItem({'wand of starstorm', 'starstorm'}, 8920, 18000, 'wand of starstorm')
shopModule:addBuyableItem({'wand of voodoo', 'voodoo'}, 8922, 22000, 'wand of voodoo')
shopModule:addBuyableItem({'snakebite rod', 'snakebite'}, 2182, 500, 'snakebite rod')
shopModule:addBuyableItem({'moonlight rod', 'moonlight'}, 2186, 1000, 'moonlight rod')
shopModule:addBuyableItem({'necrotic rod', 'necrotic'}, 2185, 5000, 'necrotic rod')
shopModule:addBuyableItem({'northwind rod', 'northwind'}, 8911, 7500, 'northwind rod')
shopModule:addBuyableItem({'terra rod', 'terra'}, 2181, 10000, 'terra rod')
shopModule:addBuyableItem({'hailstorm rod', 'hailstorm'}, 2183, 15000, 'hailstorm rod')
shopModule:addBuyableItem({'springsprout rod', 'springsprout'}, 8912, 18000, 'springsprout rod')
shopModule:addBuyableItem({'underworld rod', 'underworld'}, 8910, 22000, 'underworld rod')
--- runes
shopModule:addBuyableItem({'intense healing'}, 2265, 95, 1, 'intense healing rune')
shopModule:addBuyableItem({'ultimate healing'}, 2273, 175, 1, 'ultimate healing rune')
shopModule:addBuyableItem({'magic wall'}, 2293, 350, 3, 'magic wall rune')
shopModule:addBuyableItem({'destroy field'}, 2261, 45, 3, 'destroy field rune')
shopModule:addBuyableItem({'light magic missile'}, 2287, 40, 10, 'light magic missile rune')
shopModule:addBuyableItem({'heavy magic missile'}, 2311, 120, 10, 'heavy magic missile rune')
shopModule:addBuyableItem({'great fireball'}, 2304, 180, 4, 'great fireball rune')
shopModule:addBuyableItem({'explosion'}, 2313, 250, 6, 'explosion rune')
shopModule:addBuyableItem({'sudden death'}, 2268, 350, 3, 'sudden death rune')
shopModule:addBuyableItem({'paralyze'}, 2278, 700, 1, 'paralyze rune')
shopModule:addBuyableItem({'animate dead'}, 2316, 375, 1, 'animate dead rune')
shopModule:addBuyableItem({'convince creature'}, 2290, 80, 1, 'convince creature rune')
shopModule:addBuyableItem({'chameleon'}, 2291, 210, 1, 'chameleon rune')
shopModule:addBuyableItem({'disintegrate'}, 2310, 80, 3, 'disintegrate rune')
--- added
shopModule:addBuyableItem({'energy bomb'}, 2262, 203, 2, 'energy bomb')
shopModule:addBuyableItem({'energy field'}, 2277, 38, 3, 'energy field')
shopModule:addBuyableItem({'energy wall'}, 2279, 85, 3, 'energy wall')
shopModule:addBuyableItem({'fire bomb'}, 2305, 147, 2, 'fire bomb')
shopModule:addBuyableItem({'fire field'}, 2301, 28, 3, 'fire field')
shopModule:addBuyableItem({'fire wall'}, 2303, 61, 3, 'fire wall')
shopModule:addBuyableItem({'fireball'}, 2302, 30, 5, 'fireball')
shopModule:addBuyableItem({'holy missile'}, 2295, 16, 5, 'holy missile')
shopModule:addBuyableItem({'icile'}, 2271, 30, 5, 'icicle')
shopModule:addBuyableItem({'avalanche'}, 2274, 57, 3, 'avalanche')
shopModule:addBuyableItem({'cure poison'}, 2266, 65, 1, 'cure poison')
shopModule:addBuyableItem({'poison bomb'}, 2286, 85, 2, 'poison bomb')
shopModule:addBuyableItem({'poison field'}, 2285, 21, 3, 'poison field')
shopModule:addBuyableItem({'poison wall'}, 2289, 52, 3, 'poison wall')
shopModule:addBuyableItem({'soulfire'}, 2308, 46, 3, 'soulfire')
shopModule:addBuyableItem({'stalagmite'}, 2292, 203, 10, 'stalagmite')
shopModule:addBuyableItem({'stone shower'}, 2288, 203, 3, 'stone shower')
shopModule:addBuyableItem({'thunderstorm'}, 2315, 203, 3, 'thunderstorm')
shopModule:addBuyableItem({'wild growth'}, 2269, 160, 2, 'wild growth')
--- ammy
shopModule:addBuyableItem({'dragon necklace'}, 2201, 1000, 200, 'dragon necklace')
shopModule:addBuyableItem({'protection amulet'}, 2200, 700, 250, 'protection amulet')
shopModule:addBuyableItem({'strange talisman'}, 2161, 100, 200, 'strange talisman')
shopModule:addBuyableItem({'silver amulet'}, 2170, 100, 200, 'silver amulet')
shopModule:addSellableItem({'wand of vortex', 'vortex'}, 2190, 250, 'wand of vortex')
shopModule:addSellableItem({'wand of dragonbreath', 'dragonbreath'}, 2191, 500, 'wand of dragonbreath')
shopModule:addSellableItem({'wand of decay', 'decay'}, 2188, 2500, 'wand of decay')
shopModule:addSellableItem({'wand of draconia', 'draconia'}, 8921, 3750, 'wand of draconia')
shopModule:addSellableItem({'wand of cosmic energy', 'cosmic energy'}, 2189, 5000, 'wand of cosmic energy')
shopModule:addSellableItem({'wand of inferno', 'inferno'},2187, 7500, 'wand of inferno')
shopModule:addSellableItem({'wand of starstorm', 'starstorm'}, 8920, 9000, 'wand of starstorm')
shopModule:addSellableItem({'wand of voodoo', 'voodoo'}, 8922, 11000, 'wand of voodoo')
shopModule:addSellableItem({'snakebite rod', 'snakebite'}, 2182, 250,'snakebite rod')
shopModule:addSellableItem({'moonlight rod', 'moonlight'}, 2186, 500, 'moonlight rod')
shopModule:addSellableItem({'necrotic rod', 'necrotic'}, 2185, 2500, 'necrotic rod')
shopModule:addSellableItem({'northwind rod', 'northwind'}, 8911, 3750, 'northwind rod')
shopModule:addSellableItem({'terra rod', 'terra'}, 2181, 5000, 'terra rod')
shopModule:addSellableItem({'hailstorm rod', 'hailstorm'}, 2183, 7500, 'hailstorm rod')
shopModule:addSellableItem({'springsprout rod', 'springsprout'}, 8912, 9000, 'springsprout rod')
shopModule:addSellableItem({'underworld rod', 'underworld'}, 8910, 11000, 'underworld rod')
function creatureSayCallback(cid, type, msg)
if not npcHandler:isFocused(cid) then
return false
end
local player = Player(cid)
local vocationId = player:getVocation():getId()
local items = {
[1] = 2190,
[2] = 2182,
[5] = 2190,
[6] = 2182
}
if msgcontains(msg, 'first rod') or msgcontains(msg, 'first wand') then
if isInArray({1, 2, 5, 6}, vocationId) then
if player:getStorageValue(3050) == -1 then
selfSay('So you ask me for a {' .. ItemType(items[vocationId]):getName() .. '} to begin your advanture?', cid)
npcHandler.topic[cid] = 1
else
selfSay('What? I have already gave you one {' .. ItemType(items[vocationId]):getName() .. '}!', cid)
end
else
selfSay('Sorry, you aren\'t a druid either a sorcerer.', cid)
end
elseif msgcontains(msg, 'yes') then
if npcHandler.topic[cid] == 1 then
player:addItem(items[vocationId], 1)
player:setStorageValue(3050, 1)
selfSay('Here you are young adept, take care yourself.', cid)
end
npcHandler.topic[cid] = 0
elseif msgcontains(msg, 'no') and npcHandler.topic[cid] == 1 then
selfSay('Ok then.', cid)
npcHandler.topic[cid] = 0
elseif isInArray({"vial", "ticket", "bonus"}, msg) then
if player:removeItem(7634, 100) or player:removeItem(7635, 100) or player:removeItem(7636, 100) then
player:addItem(5957, 1)
npcHandler:say("Alright, thank you very much! Here is your lottery ticket, good luck. Would you like to deposit more vials that way?", cid)
npcHandler.topic[cid] = 0
else
npcHandler:say("Sorry, but you don't have 100 empty flasks or vials of the SAME kind and thus don't qualify for the lottery. Would you like to deposit the vials you have as usual and receive 5 gold per vial?", cid)
npcHandler.topic[cid] = 0
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())