Postado Março 12, 2015 10 anos Fala galera, Venho compartilhar com vocês o NPC A Sweaty Cyclops 100% idêntico ao global. O NPC precisa das 3 bast skirt para fazer as trocas, exceto o amulet da blue legs, como disse, 100% global. Para verificar suas ações, pode fazer uma busca sites de spoilers que está funcionando exatamente como descrito. créditos: runeraserver A Sweaty Cyclops.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="A Sweaty Cyclops" script="data/npc/scripts/asweatycyclops.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="22" head="0" body="0" legs="0" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Hum Humm! Welcume lil' Player.."/> <parameter key="message_farewell" value="Good bye lil' one."/> </parameters> </npc> asweatycyclops.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 storage = getPlayerStorageValue(cid, 52180) -- Storage Quest A Sweaty Cyclops local storagexorlosh = getPlayerStorageValue(cid, 52186) -- Storage Xorlosh Mission local valuexorlosh = 1 -- Verifica Value Xorlosh Mission local ironore = 5880 -- Iron Ore ID local gearwheel = 9690 -- Gear Wheel ID -- no Quest if storage == -1 then if msgcontains(msg, 'uth\'lokr')then npcHandler:say("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] = 1 elseif msgcontains(msg, "yes")then if talkState[talkUser] == 1 then npcHandler:say("Wait. Me work no cheap is. Do favour for me first, yes?", cid) talkState[talkUser] = 2 elseif talkState[talkUser] == 2 then npcHandler:say("Me need gift for woman. We dance, so me want to give her bast skirt. But she big is. So I need many to make big one. Bring three okay? Me wait.", cid) talkState[talkUser] = 3 elseif talkState[talkUser] == 4 then if getPlayerItemCount(cid,3983) >= 3 then npcHandler:say("Good good! Woman happy will be. Now me happy too and help you.", cid) doPlayerRemoveItem(cid,3983,3) setPlayerStorageValue(cid, 52180, 1) talkState[talkUser] = 0 else npcHandler:say("You do not have the gifts of my girlfriend.", cid) end elseif talkState[talkUser] == 10 then if getPlayerItemCount(cid,2152) >= 50 and getPlayerItemCount(cid,8262) >= 1 and getPlayerItemCount(cid,8263) >= 1 and getPlayerItemCount(cid,8264) >= 1 and getPlayerItemCount(cid,8265) >= 1 then npcHandler:say("Ahh, lil' one wants amulet. Here! Have it! Mighty, mighty amulet lil' one has. Don't know what but mighty, mighty it is!!!", cid) doPlayerRemoveItem(cid,8262,1) doPlayerRemoveItem(cid,8263,1) doPlayerRemoveItem(cid,8264,1) doPlayerRemoveItem(cid,8265,1) doPlayerRemoveItem(cid,2152,50) doPlayerAddItem(cid,8266,1) else npcHandler:say("Come back when you got the neccessary items.", cid) end end elseif msgcontains(msg, "bast skirt")then if talkState[talkUser] == 3 then npcHandler:say("Lil' one bring three bast skirts?", cid) talkState[talkUser] = 4 end elseif msgcontains(msg, "broken") or msgcontains(msg, "amulet") then npcHandler:say("Me can do unbroken but Big Ben want 5000 gold to make it unbroken. You accept??", cid) talkState[talkUser] = 10 elseif msgcontains(msg, "no") then npcHandler:say("What do you want here?", cid) elseif msgcontains(msg, "help") then npcHandler:say("I can forge Amulet, Huge Chunk of Crude Iron, Piece of Draconian Steel, Piece of Royal Steel, Piece of Hell Steal and Infernal Bolts!", cid) elseif msgcontains(msg, "uth'kean") or msgcontains(msg, "za'ralator") or msgcontains(msg, "uth'prta") or msgcontains(msg, "soul orb") then npcHandler:say("I need 3 bart skirt so I can help you.", cid) elseif(msgcontains(msg, "iron ore") or msgcontains(msg, "gear wheel") or msgcontains(msg, "gear wheels")) then npcHandler:say("You do not have the gifts of my girlfriend.", cid) talkState[talkUser] = 0 end end -- True Quest if storage == 1 then --Gear Wheel if(msgcontains(msg, "iron ore") or msgcontains(msg, "gear wheel") or msgcontains(msg, "gear wheels")) then if getPlayerStorageValue(cid,storagexorlosh) > 0 then if getPlayerStorageValue(cid, storagexorlosh) < 4 then npcHandler:say("Want to trade iron ore by gear wheel?", cid) talkState[talkUser] = 90 else npcHandler:say("You've traded 3 Iron Ores with me", cid) end else npcHandler:say("Go to talk with Xorlosh", cid) end --Amulet elseif msgcontains(msg, "broken") or msgcontains(msg, "amulet") then talkState[talkUser] = 10 npcHandler:say("Me can do unbroken but Big Ben want 5000 gold to make it unbroken. You accept??", cid) --Piece of Royal Steel elseif msgcontains(msg, "uth'kean") then talkState[talkUser] = 20 npcHandler:say("Very noble. Shiny. Me like. But breaks so fast. Me can make from shiny armour. Lil' one want to trade?", cid) --Piece of Draconian Steel elseif msgcontains(msg, "uth'lokr") then talkState[talkUser] = 30 npcHandler:say("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) --Piece of Hell Steel elseif msgcontains(msg, "za'ralator") then talkState[talkUser] = 40 npcHandler:say("Hellsteel is. Cursed and evil. Dangerous to work with. Me can make from evil helmet. Lil' one want to trade?", cid) --Huge Chunk of Crude Iron elseif msgcontains(msg, "uth'prta") then talkState[talkUser] = 50 npcHandler:say("Good iron is. Me friends use it much for fight. Me can make from weapon. Lil' one want to trade?", cid) --Infernal Bolts elseif msgcontains(msg, "soul orb") then talkState[talkUser] = 60 npcHandler:say("Uh. Me can make some nasty lil' bolt from soul orbs. Lil' one want to trade all?", cid) --Help elseif msgcontains(msg, "help") then npcHandler:say("I can forge Amulet, Huge Chunk of Crude Iron, Piece of Draconian Steel, Piece of Royal Steel, Piece of Hell Steal and Infernal Bolts!", cid) --No elseif msgcontains(msg, "no") then npcHandler:say("What do you want here?", cid) --Yes elseif msgcontains(msg, "yes") then --Piece of Royal Steel if talkState[talkUser] == 20 then if getPlayerItemCount(cid,2487) >= 1 then doPlayerRemoveItem(cid,2487,1) doPlayerAddItem(cid,5887,1) npcHandler:say("Cling clang!", cid) else npcHandler:say("Come back when you got the neccessary items.", cid) end --Piece of Draconian Steel elseif talkState[talkUser] == 30 then if getPlayerItemCount(cid,2516) >= 1 then doPlayerRemoveItem(cid,2516,1) doPlayerAddItem(cid,5889,1) npcHandler:say("Cling clang!", cid) else npcHandler:say("Come back when you got the neccessary items.", cid) end --Piece of Hell Steel elseif talkState[talkUser] == 40 then if getPlayerItemCount(cid,2462) >= 1 then doPlayerRemoveItem(cid,2462,1) doPlayerAddItem(cid,5888,1) npcHandler:say("Cling clang!", cid) else npcHandler:say("Come back when you got the neccessary items.", cid) end --Huge Chunk of Crude Iron elseif talkState[talkUser] == 50 then if getPlayerItemCount(cid,2475) >= 3 then doPlayerRemoveItem(cid,2475,3) doPlayerAddItem(cid,5892,1) npcHandler:say("Cling clang!", cid) else npcHandler:say("Come back when you got the neccessary items.", cid) end --Infernal Bolts elseif talkState[talkUser] == 60 then if getPlayerItemCount(cid,5944) >= 1 then doPlayerRemoveItem(cid,5944,1) doPlayerAddItem(cid,6529,6) npcHandler:say("Cling clang!", cid) else npcHandler:say("Come back when you got the neccessary items.", cid) end --Amulet elseif talkState[talkUser] == 10 then if getPlayerItemCount(cid,2152) >= 50 and getPlayerItemCount(cid,8262) >= 1 and getPlayerItemCount(cid,8263) >= 1 and getPlayerItemCount(cid,8264) >= 1 and getPlayerItemCount(cid,8265) >= 1 then npcHandler:say("Ahh, lil' one wants amulet. Here! Have it! Mighty, mighty amulet lil' one has. Don't know what but mighty, mighty it is!!!", cid) doPlayerRemoveItem(cid,8262,1) doPlayerRemoveItem(cid,8263,1) doPlayerRemoveItem(cid,8264,1) doPlayerRemoveItem(cid,8265,1) doPlayerRemoveItem(cid,2152,50) doPlayerAddItem(cid,8266,1) else npcHandler:say("Come back when you got the neccessary items.", cid) end --Gear Wheel elseif talkState[talkUser] == 90 then if getPlayerItemCount(cid,ironore) >= 1 then setPlayerStorageValue(cid, 52186, valuexorlosh + 1) doPlayerAddItem(cid, gearwheel, 1) doPlayerRemoveItem(cid, ironore, 1) npcHandler:say("Here's your Gear Wheel", cid) talkState[talkUser] = 0 else npcHandler:say("You've traded 3 Iron Ores with me", cid) talkState[talkUser] = 0 end end end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Editado Março 12, 2015 10 anos por runeraserver (veja o histórico de edições)
Postado Março 12, 2015 10 anos Tópico aprovado, obrigado por compartilhar ... Este tópico foi movido: Para: "OTServ → Scripting → Monsters e NPCs"
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.