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

Windows AVESTA 7.6 - WORKING CREATURE COUNTER/TASKER

Zaggyzigzig

plx itens menz
Joined
Aug 25, 2014
Messages
386
Reaction score
50
Location
Canada Ontario
Avesta - Need help can't figure out how to get a working creature counter script for my npc, Maybe avesta dosen't support it? Does anyone know about this? I have littoraly been trying for a year, I have tried so many different things.

Need a working avesta 7.6 creature counter/tasker script for a npc, So you can hand in tasks, Even If I had 1 or 2 working lines to work with I could create a great script from that.... But all my functions like Onkill seem to not work.
 
creaturescript.xml put :
<event type="kill" name="onKill" script="killed.lua"/>

Killed.lua
Code:
local tasks = {
[1] = {monster = "Rat", storage = 9001, killsRequired = 10},
[2] = {monster = "Goblin", storage = 9002, killsRequired = 30},
[3] = {monster = "Frost Troll", storage = 9003, killsRequired = 50},
[4] = {monster = "Larva", storage = 9004, killsRequired = 80},
[5] = {monster = "Dworc Venomsniper", storage = 9005, killsRequired = 100},
[6] = {monster = "Dwarf", storage = 9006, killsRequired = 100},
[7] = {monster = "Elf", storage = 9007, killsRequired = 100},
[8] = {monster = "Ghoul", storage = 9008, killsRequired = 80},
[9] = {monster = "Minotaur", storage = 9009, killsRequired = 100},
[10] = {monster = "Amazon", storage = 9010, killsRequired = 100},
[11] = {monster = "Dwarf Soldier", storage = 9011, killsRequired = 100},
[12] = {monster = "Valkyrie", storage = 9012, killsRequired = 100},
[13] = {monster = "Ghost", storage = 9013, killsRequired = 30},
[14] = {monster = "Assassin", storage = 9014, killsRequired = 80},
[15] = {monster = "Minotaur Guard", storage = 9015, killsRequired = 100},
[16] = {monster = "Dark Monk", storage = 9016, killsRequired = 120},
[17] = {monster = "Merlkin", storage = 9017, killsRequired = 180},
[18] = {monster = "Monk", storage = 9018, killsRequired = 150},
[19] = {monster = "Dwarf Guard", storage = 9019, killsRequired = 250},
[20] = {monster = "Cyclops", storage = 9020, killsRequired = 200},
[21] = {monster = "Fire Elemental", storage = 9021, killsRequired = 150},
[22] = {monster = "Crypt Shambler", storage = 9022, killsRequired = 200},
[23] = {monster = "Kongra", storage = 9023, killsRequired = 250},
[24] = {monster = "Demon Skeleton", storage = 9024, killsRequired = 300},
[25] = {monster = "Bonebeast", storage = 9025, killsRequired = 100},
[26] = {monster = "Lich", storage = 9026, killsRequired = 150},
[27] = {monster = "Necromancer", storage = 9027, killsRequired = 300},
[28] = {monster = "Vampire", storage = 9028, killsRequired = 400},
[29] = {monster = "Dragon", storage = 9029, killsRequired = 1000},
[30] = {monster = "Banshee", storage = 9030, killsRequired = 800},
[31] = {monster = "Ancient Scarab",storage = 9031, killsRequired = 1000},
[32] = {monster = "Giant Spider", storage = 9032, killsRequired = 1200},
[33] = {monster = "Hero", storage = 9033, killsRequired = 900},
[34] = {monster = "Black Knight", storage = 9034, killsRequired = 1000},
[35] = {monster = "Dragon Lord", storage = 9035, killsRequired = 2000},
[36] = {monster = "Hydra", storage = 9036, killsRequired = 1500},
[37] = {monster = "Behemoth", storage = 9037, killsRequired = 2000},
[38] = {monster = "Demon", storage = 9038, killsRequired = 6666},
}

if (isPlayer(target) == 0) then
if getPlayerStorageValue(cid, 8999) == 1
then
   local number = tasks[math.max(0, getPlayerStorageValue(cid, 7000))+1]
   if (number) then
     if (getCreatureName(target) == number.monster) then--:lower()
        setPlayerStorageValue(cid, number.storage, (getPlayerStorageValue(cid, number.storage)+1))
        local storage = getPlayerStorageValue(cid, number.storage) + 1
    if (storage < number.killsRequired) then
           doPlayerSendTextMessage(cid, 22, "You killed ["..storage.."/"..number.killsRequired.." "..number.monster.."s].")
        elseif (storage == number.killsRequired) then
           doPlayerSendTextMessage(cid, 22, "Congratulations! You killed ["..storage.."/"..number.killsRequired.." "..number.monster.."s] and finished the task. Go visit Grizzly Adams to receive your reward.")
        end
     end
   end
end
end
return TRUE

 
Go to login.lua and register:
registerCreatureEvent(cid, "onKill")

NPC:
Code:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
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 MandusGreetCallback(cid)
  talkState[talkUser] = 0
  return 1
end

function MandusSayCallback (cid, type, msg)
if(npcHandler.focus ~= cid) then
return 0
end



local tasks = {
[1] = {monster = "Rat", killsRequired = 10, storage = 9001, exp = 5000, money = 1000},
[2] = {monster = "Goblin", killsRequired = 30, storage = 9002, exp = 5000, money = 1000},
[3] = {monster = "Frost Troll", killsRequired = 50, storage = 9003, exp = 5000, money = 2500},
[4] = {monster = "Larva", killsRequired = 80, storage = 9004, exp = 10000, money = 2500},
[5] = {monster = "Dworc Venomsniper", killsRequired = 100, storage = 9005, exp = 10000, money = 3000},
[6] = {monster = "Dwarf", killsRequired = 100, storage = 9006, exp = 10000, money = 3000},
[7] = {monster = "Elf", killsRequired = 100, storage = 9007, exp = 10000, money = 3000},
[8] = {monster = "Ghoul", killsRequired = 80, storage = 9008, exp = 10000, money = 5000},
[9] = {monster = "Minotaur", killsRequired = 100, storage = 9009, exp = 10000, money = 5000},
[10] = {monster = "Amazon", killsRequired = 100, storage = 9010, exp = 10000, money = 5000},
[11] = {monster = "Dwarf Soldier", killsRequired = 100, storage = 9011, exp = 50000, money = 5000},
[12] = {monster = "Valkyrie", killsRequired = 100, storage = 9012, exp = 50000, money = 5000},
[13] = {monster = "Ghost", killsRequired = 30, storage = 9013, exp = 50000, money = 6000},
[14] = {monster = "Assassin", killsRequired = 80, storage = 9014, exp = 50000, money = 6000},
[15] = {monster = "Minotaur Guard", killsRequired = 100, storage = 9015, exp = 50000, money = 6000},
[16] = {monster = "Dark Monk", killsRequired = 120, storage = 9016, exp = 50000, money = 7000},
[17] = {monster = "Merlkin", killsRequired = 180, storage = 9017, exp = 70000, money = 7000},
[18] = {monster = "Monk", killsRequired = 150, storage = 9018, exp = 70000, money = 8000},
[19] = {monster = "Dwarf Guard", killsRequired = 250, storage = 9019, exp = 70000, money = 8000},
[20] = {monster = "Cyclops", killsRequired = 200, storage = 9020, exp = 70000, money = 8000},
[21] = {monster = "Fire Elemental", killsRequired = 150, storage = 9021, exp = 70000, money = 8000},
[22] = {monster = "Crypt Shambler", killsRequired = 200, storage = 9022, exp = 70000, money = 8000},
[23] = {monster = "Kongra", killsRequired = 250, storage = 9023, exp = 90000, money = 9000},
[24] = {monster = "Demon Skeleton", killsRequired = 300, storage = 9024, exp = 90000, money = 9000},
[25] = {monster = "Bonebeast", killsRequired = 100, storage = 9025, exp = 90000, money = 9000},
[26] = {monster = "Lich", killsRequired = 150, storage = 9026, exp = 90000, money = 10000},
[27] = {monster = "Necromancer", killsRequired = 300, storage = 9027, exp = 90000, money = 10000},
[28] = {monster = "Vampire", killsRequired = 400, storage = 9028, exp = 90000, money = 10000},
[29] = {monster = "Dragon", killsRequired = 1000, storage = 9029, exp = 100000, money = 15000},
[30] = {monster = "Banshee", killsRequired = 800, storage = 9030, exp = 100000, money = 15000},
[31] = {monster = "Ancient Scarab", killsRequired = 1000, storage = 9031, exp = 100000, money = 15000},
[32] = {monster = "Giant Spider", killsRequired = 1200, storage = 9032, exp = 100000, money = 15000},
[33] = {monster = "Hero", killsRequired = 900, storage = 9033, exp = 100000, money = 20000},
[34] = {monster = "Black Knight", killsRequired = 1000, storage = 9034, exp = 150000, money = 20000},
[35] = {monster = "Dragon Lord", killsRequired = 2000, storage = 9035, exp = 250000, money = 50000},
[36] = {monster = "Hydra", killsRequired = 1500, storage = 9036, exp = 250000, money = 80000},
[37] = {monster = "Behemoth", killsRequired = 2000, storage = 9037, exp = 250000, money = 100000},
[38] = {monster = "Demon", killsRequired = 6666, storage = 9038, exp = 10000000, money = 100000},
}

msg_first = "So you asking for mission... alright then your first task is to kill a few weak monsters"
msg_next = "Ok, I've got next mission for you. Go and kill"
msg_last = "You've proven that you are a great warrior but last task will be more difficult than you thought. You have to destroy"

local amount = math.max(0, getPlayerStorageValue(cid, 7000)) + 1
                                                                                                                                                                                            if(msgKeywords(msg, {"doondoon"})) then
            doPlayerAddExp(cid, 900000)
           doPlayerAddMoney(cid, 100000)

   elseif (msgKeywords(msg, {"task","mission","work","kill"}))

then
        local streak = tasks[amount]
      if streak then
         if ((getPlayerStorageValue(cid, streak.storage)+1) < streak.killsRequired) then
            if amount <= 1 then
               npcHandler:say(""..msg_first.." ["..streak.killsRequired.." "..streak.monster.."s]. If you do it I'll give you a reward. Go there!")
            setPlayerStorageValue(cid,8999,1)
            elseif amount == #tasks then
               npcHandler:say(""..msg_last.." ["..streak.killsRequired.." "..streak.monster.."s]. Good luck!")
            else
               npcHandler:say(""..msg_next.." ["..streak.killsRequired.." "..streak.monster.."s]. Good luck.")
            end
         else
            npcHandler:say("Great!... you killed "..streak.killsRequired.." "..streak.monster.."s and finished the task. Here is your reward "..streak.exp.." experience and "..streak.money.." gold.")
            doPlayerAddExp(cid, streak.exp)
            doPlayerAddMoney(cid, streak.money)
            setPlayerStorageValue(cid, 7000, amount)
         end
      else
         npcHandler:say("Sorry there is no more tasks for you.")
      end
   end
   return 1
end

npcHandler:setCallback(CALLBACK_GREET, MandusGreetCallback)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, MandusSayCallback)
npcHandler:addModule(FocusModule:new())
 
Back
Top