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

Sweaty NPC, 4 items.

enriel

Big L
Joined
Dec 14, 2007
Messages
1,254
Reaction score
2
Location
Montenegro
How can I do so this NPC removes 4 items (8265,8264,8263,8262,)
Now its only removing 8265 and I don't know how to make so it removes all 4, anyone that can help?

elseif msgcontains(msg, 'broken amulet') then
if getPlayerItemCount(cid,8265) >= 1 then
selfSay('Did you bring me all the four pieces of the broken amulet ?', cid)
talk_state = 14
else
selfSay('I need all the four pieces of the amulet.', cid)
talk_state = 0
end

elseif msgcontains(msg, 'yes') and talk_state == 14 then
talk_state = 0
if getPlayerItemCount(cid,8265) >= 1 then
if doPlayerRemoveItem(cid,8265,1) == TRUE then
doPlayerAddItem(cid,8266,1)
selfSay(done, cid)
end
 
Use this... and use code tags...

Code:
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
        local cycmsg = 'Cling Clang!'
        local noimsg = 'Lil\' one no have that thing!'
        local deny      =       'Lil\' one is no sure? Okay'
        local infbolt = 4 -- change this to adjust the number of infernal bolts you want to give to the players for 1 soul orb.


--------------------MESSAGES------------------------------------------------------------------------------
    if msgcontains(msg, 'help') or msgcontains(msg, 'trade') then
                selfSay('Me can make {royal steel}, {draconian steel}, {hell steel}, {crude iron}, {magic sulphur}, {warrior sweet}, {spider silk yarn}, {enchanted chicken wing}, {elanes crossbow}, {parchment}. Me also make lil\' {infernal bolt}.', cid)
        
        elseif msgcontains(msg, 'royal steel') then
        selfSay('Very noble. Shiny. Me like. But breaks so fast. Me can make from shiny armour. Lil\' one want to trade?', cid)
        talkState[talkUser] = 1
    
    elseif msgcontains(msg, 'draconian steel') then
        selfSay('Firy steel it is. Need green ones\' breath to melt. Or red even better. Me can make from shield. Lil\' one want to trade?', cid)
                talkState[talkUser] = 2

    elseif msgcontains(msg, 'hell steel') then
        selfSay('Hellsteel is. Cursed and evil. Dangerous to work with. Me can make from evil helmet. Lil\' one want to trade?', cid)
                talkState[talkUser] = 3
                
    elseif msgcontains(msg, 'crude iron') then
        selfSay('Good iron is. Me friends use it much for fight. Me can make from weapon. Lil\' one want to trade?', cid)
                talkState[talkUser] = 4
        
        elseif msgcontains(msg, 'infernal bolt') then
                selfSay('Uh. Me can make some nasty lil\' bolt from soul orbs. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 5

        elseif msgcontains(msg, 'spider silk yarn') then
                selfSay('Uh. Me can make some nasty lil\' bolt from 10 giant spider silk. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 6

        elseif msgcontains(msg, 'warrior sweet') then
                selfSay('Uh. Me can make some nasty lil\' bolt from warrior helmet. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 7

        elseif msgcontains(msg, 'magic sulphur') then
                selfSay('Uh. Me can make some nasty lil\' bolt from 4 fire sword. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 8

        elseif msgcontains(msg, 'enchanted chicken wing') then
                selfSay('Uh. Me can make some nasty lil\' bolt from boots of haste. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 9


        elseif msgcontains(msg, 'elanes crossbow') then
                selfSay('Uh. Me can make some nasty lil\' bolt from boots of haste. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 10


        elseif msgcontains(msg, 'parchment') then
                selfSay('Uh. Me can make some nasty lil\' bolt from 10 bp of empty small potion. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 11
                
-------------GETTING METALS FROM HIM-------------------
        
        -- Royal Steel
        elseif talkState[talkUser] == 1 then
                if msgcontains(msg, 'yes') then
                        if doPlayerTakeItem(cid, 2487, 1) == true then
                                doPlayerAddItem(cid, 5887, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end
        -- Draconian Steel
        elseif talkState[talkUser] == 2 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 2516, 1) == true then
                                doPlayerAddItem(cid, 5889, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end
        -- Hell Steel
        elseif talkState[talkUser] == 3 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 2462, 1) == true then
                                doPlayerAddItem(cid, 5888, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end             
        -- Crude Iron
        elseif talkState[talkUser] == 4 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 2393, 1) == true then
                                doPlayerAddItem(cid, 5892, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end   
        elseif talkState[talkUser] == 5 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 5944, 1) == true then
                                doPlayerAddItem(cid, 6529, infbolt)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end
        -- Parchment
        elseif talkState[talkUser] == 11 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 7636, 200) == true then
                                doPlayerAddItem(cid, 1953, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end
        -- Elanes Crossbow
        elseif talkState[talkUser] == 10 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 5954, 15) == true then
                                doPlayerAddItem(cid, 5947, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end 
        -- Chicken Wing
        elseif talkState[talkUser] == 9 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 2195, 1) == true then
                                doPlayerAddItem(cid, 5891, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end 
        -- Magic Sulphur
        elseif talkState[talkUser] == 8 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 2392, 4) == true then
                                doPlayerAddItem(cid, 5904, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end  
        -- Warrior Sweat
        elseif talkState[talkUser] == 7 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 2475, 4) == true then
                                doPlayerAddItem(cid, 5885, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end  
        -- Spool Yarn
        elseif talkState[talkUser] == 6 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 5879, 10) == true then
                                doPlayerAddItem(cid, 5886, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end             
        end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
Or use the fancy lua tags :D

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
        local cycmsg = 'Cling Clang!'
        local noimsg = 'Lil\' one no have that thing!'
        local deny      =       'Lil\' one is no sure? Okay'
        local infbolt = 4 -- change this to adjust the number of infernal bolts you want to give to the players for 1 soul orb.


--------------------MESSAGES------------------------------------------------------------------------------
    if msgcontains(msg, 'help') or msgcontains(msg, 'trade') then
                selfSay('Me can make {royal steel}, {draconian steel}, {hell steel}, {crude iron}, {magic sulphur}, {warrior sweet}, {spider silk yarn}, {enchanted chicken wing}, {elanes crossbow}, {parchment}. Me also make lil\' {infernal bolt}.', cid)
        
        elseif msgcontains(msg, 'royal steel') then
        selfSay('Very noble. Shiny. Me like. But breaks so fast. Me can make from shiny armour. Lil\' one want to trade?', cid)
        talkState[talkUser] = 1
    
    elseif msgcontains(msg, 'draconian steel') then
        selfSay('Firy steel it is. Need green ones\' breath to melt. Or red even better. Me can make from shield. Lil\' one want to trade?', cid)
                talkState[talkUser] = 2

    elseif msgcontains(msg, 'hell steel') then
        selfSay('Hellsteel is. Cursed and evil. Dangerous to work with. Me can make from evil helmet. Lil\' one want to trade?', cid)
                talkState[talkUser] = 3
                
    elseif msgcontains(msg, 'crude iron') then
        selfSay('Good iron is. Me friends use it much for fight. Me can make from weapon. Lil\' one want to trade?', cid)
                talkState[talkUser] = 4
        
        elseif msgcontains(msg, 'infernal bolt') then
                selfSay('Uh. Me can make some nasty lil\' bolt from soul orbs. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 5

        elseif msgcontains(msg, 'spider silk yarn') then
                selfSay('Uh. Me can make some nasty lil\' bolt from 10 giant spider silk. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 6

        elseif msgcontains(msg, 'warrior sweet') then
                selfSay('Uh. Me can make some nasty lil\' bolt from warrior helmet. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 7

        elseif msgcontains(msg, 'magic sulphur') then
                selfSay('Uh. Me can make some nasty lil\' bolt from 4 fire sword. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 8

        elseif msgcontains(msg, 'enchanted chicken wing') then
                selfSay('Uh. Me can make some nasty lil\' bolt from boots of haste. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 9


        elseif msgcontains(msg, 'elanes crossbow') then
                selfSay('Uh. Me can make some nasty lil\' bolt from boots of haste. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 10


        elseif msgcontains(msg, 'parchment') then
                selfSay('Uh. Me can make some nasty lil\' bolt from 10 bp of empty small potion. Lil\' one want to trade all?', cid)
                talkState[talkUser] = 11
                
-------------GETTING METALS FROM HIM-------------------
        
        -- Royal Steel
        elseif talkState[talkUser] == 1 then
                if msgcontains(msg, 'yes') then
                        if doPlayerTakeItem(cid, 2487, 1) == true then
                                doPlayerAddItem(cid, 5887, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end
        -- Draconian Steel
        elseif talkState[talkUser] == 2 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 2516, 1) == true then
                                doPlayerAddItem(cid, 5889, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end
        -- Hell Steel
        elseif talkState[talkUser] == 3 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 2462, 1) == true then
                                doPlayerAddItem(cid, 5888, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end             
        -- Crude Iron
        elseif talkState[talkUser] == 4 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 2393, 1) == true then
                                doPlayerAddItem(cid, 5892, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end   
        elseif talkState[talkUser] == 5 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 5944, 1) == true then
                                doPlayerAddItem(cid, 6529, infbolt)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end
        -- Parchment
        elseif talkState[talkUser] == 11 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 7636, 200) == true then
                                doPlayerAddItem(cid, 1953, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end
        -- Elanes Crossbow
        elseif talkState[talkUser] == 10 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 5954, 15) == true then
                                doPlayerAddItem(cid, 5947, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end 
        -- Chicken Wing
        elseif talkState[talkUser] == 9 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 2195, 1) == true then
                                doPlayerAddItem(cid, 5891, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end 
        -- Magic Sulphur
        elseif talkState[talkUser] == 8 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 2392, 4) == true then
                                doPlayerAddItem(cid, 5904, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end  
        -- Warrior Sweat
        elseif talkState[talkUser] == 7 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 2475, 4) == true then
                                doPlayerAddItem(cid, 5885, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end  
        -- Spool Yarn
        elseif talkState[talkUser] == 6 then
                if msgcontains (msg, 'yes') then
                        if doPlayerTakeItem(cid, 5879, 10) == true then
                                doPlayerAddItem(cid, 5886, 1)
                                selfSay(cycmsg, cid)
                                talkState[talkUser] = 0
                        else
                                selfSay(noimsg, cid)
                                talkState[talkUser] = 0
                        end
                else
                        selfSay(deny, cid)
                        talkState[talkUser] = 0
                end             
        end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
Back
Top