• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Help with this Task Script

armyman

Member
Joined
Feb 15, 2014
Messages
318
Reaction score
14
Hello Friends, anyone can help me with my Task Script?

Imgur: The most awesome images on the Internet
The msg of Creatures Killed is showing up on my screen... can i do the msg only show in my default channel?


NPC SCRIPT
LUA:
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 = {
["rats"] =             {killsRequired = 100,  storage = 9001,  money = 1500},
["minotaurs"] =       {killsRequired = 5000, storage = 9002, exp = 325000},
["ghouls"] =          {killsRequired = 600, storage = 9003, exp = 70000},
["cyclops"] =         {killsRequired = 500, storage = 9004, exp = 150000},
["ancient scarabs"] = {killsRequired = 3500, storage = 9006, exp = 1800000},
["dragons"] =         {killsRequired = 1250, storage = 9007, exp = 1000000},
["necromancers"] =    {killsRequired = 500, storage = 9008, item = 2195},
["giant spiders"] =   {killsRequired = 500, storage = 9009, exp = 1100000},
["warlocks"] =        {killsRequired = 150, storage = 9012, exp = 500000},
["demons"] =          {killsRequired = 6666, storage = 9013, item = 2495},
["goblins"] =         {killsRequired = 155, storage = 9014, exp = 5000},
["larvas"] =          {killsRequired = 900, storage = 9015, exp = 95000},
["rotworms"] =        {killsRequired = 300, storage = 9016, exp = 28500},
["orcs"] =            {killsRequired = 400, storage = 9017, exp = 33500},
["scarabs"] =         {killsRequired = 500, storage = 9018, exp = 130000},
["trolls"] =          {killsRequired = 100, storage = 9019, exp = 4500},
["black knights"] =   {killsRequired = 100, storage = 9020, exp = 300000, item = {2195}},
["demon skeletons"] = {killsRequired = 400, storage = 9021, exp = 200000},
["dwarf guards"] =    {killsRequired = 900, storage = 9022, exp = 320000},
["fire elementals"] = {killsRequired = 70, storage = 9023, exp = 80000},
["heros"] =           {killsRequired = 200, storage = 9024, exp = 260000},
["vampires"] =        {killsRequired = 450, storage = 9025, exp = 260000},
["snakes"] =          {killsRequired = 100, storage = 9026, money = 3000},
["wasps"] =           {killsRequired = 300, storage = 9027, exp = 25000},
["wolfs"] =           {killsRequired = 250, storage = 9028, money = 4000},
["dwarfs"] =          {killsRequired = 700, storage = 9029, exp = 75000},
["dwarf soldiers"] =  {killsRequired = 800, storage = 9030, exp = 110000},
["cave rats"] =       {killsRequired = 100, storage = 9031, money = 2500},
["amazons"] =         {killsRequired = 250, storage = 9032, money = 8000},
["valkyries"] =       {killsRequired = 260, storage = 9033, money = 10000},
["scorpions"] =       {killsRequired = 100, storage = 9034, money = 6000},
["lions"] =           {killsRequired = 100, storage = 9035, money = 5000},
["dragon lords"] =    {killsRequired = 500, storage = 9036, exp = 800000},
["poison Spiders"] =  {killsRequired = 300, storage = 9037, exp = 20000},
["wild Warriors"] =   {killsRequired = 250, storage = 9038, exp = 39000},
["slimes"] =          {killsRequired = 290, storage = 9039, exp = 91000},
["hunters"] =         {killsRequired = 385, storage = 9040, exp = 125000},
["bonebeast"] =       {killsRequired = 500, storage = 9041, exp = 330000},
["elfs"] =            {killsRequired = 300, storage = 9042, exp = 25000},
["elf scouts"] =      {killsRequired = 400, storage = 9043, exp = 70000},
["elf arcanists"] =   {killsRequired = 600, storage = 9044, exp = 355000},
["swamp trolls"] =    {killsRequired = 100, storage = 9045, exp = 5250},
["frost trolls"] =    {killsRequired = 200, storage = 9046, exp = 12000},
["bugs"] =            {killsRequired = 100, storage = 9047, exp = 4000},
["hyaenas"] =         {killsRequired = 140, storage = 9048, exp = 7800},
["stone golems"] =    {killsRequired = 210, storage = 9049, exp = 22500},
["stalkers"] =        {killsRequired = 400, storage = 9050, exp = 83000},
["ghosts"] =          {killsRequired = 320, storage = 9051, exp = 90000},
["gargoyles"] =       {killsRequired = 275, storage = 9052, exp = 99000},
["crypt shamblers"] = {killsRequired = 380, storage = 9053, exp = 160000},
["beholders"] =       {killsRequired = 420, storage = 9054, exp = 110000},
["minotaur mages"] =  {killsRequired = 335, storage = 9055, exp = 100000},
["monks"] =           {killsRequired = 220, storage = 9056, exp = 115000},
["witches"] =         {killsRequired = 80, storage = 9057, exp = 50000},
["polar bears"] =     {killsRequired = 220, storage = 9058, exp = 42000},
["skeletons"] =       {killsRequired = 400, storage = 9059, exp = 37000},
}

local monster = tasks[msg]
local tblMonsters, kills, totalKills, exp, money, item = {},{},{},{},{},{}

     if (msgKeywords(msg, {"task","mission","work","kill"})) then
         table.foreach(tasks, function(k, v)
           if getPlayerStorageValue(cid, v.storage) >= 0 and getPlayerStorageValue(cid, v.storage) <= (v.killsRequired)+1 then
              table.insert(tblMonsters, k) table.insert(kills, v.storage) table.insert(totalKills, v.killsRequired)
              table.insert(exp, v.exp) table.insert(money, v.money) table.insert(item, v.item)
           end
         end)
         if (#kills ~= 0) then
           if (getPlayerStorageValue(cid, kills[1]) >= 0) and (getPlayerStorageValue(cid, kills[1]) < totalKills[1]) then
               npcHandler:say("You haven't killed enough "..table.concat(tblMonsters, ", ").." yet. You need ["..totalKills[1]-getPlayerStorageValue(cid, kills[1]).."] kills left.", cid)
           elseif (getPlayerStorageValue(cid, kills[1]) == totalKills[1]+1) then
                  npcHandler:say("Congratulations so you've got killed "..table.concat(tblMonsters, ", ").."! and passed the task. Here is your reward.", cid)
                  setPlayerStorageValue(cid, kills[1], getPlayerStorageValue(cid, kills[1]) + 1)
                  doPlayerAddExp(cid, exp[1])
                  doPlayerAddMoney(cid, money[1])
                  if (#item ~= 0) then
                     for i, v in ipairs(item) do
                        local container = doPlayerAddItem(cid, 1987, 1)
                        for i = 1, #v do
                           doAddContainerItem(container, v[i], 1)
                        end
                     end
                  end
              talkState[talkUser] = 0
           end
         else
            table.foreach(tasks, function(k, v) table.insert(tblMonsters, k) return nil end)
            npcHandler:say("Ahh... you looking for a new mission. I'll reward you for "..table.concat(tblMonsters, ", ").." which one we are talking about?", cid)
            talkState[talkUser] = 1
         end

     elseif (msgKeywords(msg, {"cancel","remove","skip","demission"})) then
             npcHandler:say("Which task do you want to cancel? Don't forget that you'll lost previous killing are you sure?", cid)
             talkState[talkUser] = 2
     elseif monster and (talkState[talkUser] == 2) then
         if (getPlayerStorageValue(cid, monster.storage) >= 0) and (getPlayerStorageValue(cid, monster.storage) < monster.killsRequired) then
             npcHandler:say("Let it be! "..msg.." task has been canceled. ", cid)
             setPlayerStorageValue(cid, monster.storage, -1)
             talkState[talkUser] = 0
         else
             npcHandler:say("You can't cancel completed tasks.", cid)
         end
     elseif (monster and talkState[talkUser] == 1) then
            npcHandler:say("Do you really want "..msg.." task?", cid)
            killsRequired = monster.killsRequired storage = monster.storage premium = monster.premium
            talkState[talkUser] = 3

     elseif (msgKeywords(msg, {"yes","yep","yea","yeah"})) and (talkState[talkUser] == 3) then
         if (premium ~= nil and premium == true) then
            if (isPremium(cid) == FALSE) then
               npcHandler:say("You need premium account in order to do "..msg.." task.", cid)
               return false
            end
         end
         if (getPlayerStorageValue(cid, storage) < 0) then 
             npcHandler:say("Alright then.. you have to kill ["..killsRequired.."] "..msg..". Good luck!", cid)
             setPlayerStorageValue(cid, storage, 0)
             talkState[talkUser] = 0  
         else
             npcHandler:say("Sorry but you've got killed "..msg.." already and passed the task. Ask me for new tasks.", cid)
         end
       
     elseif (talkState[talkUser] == 1) or (talkState[talkUser] == 2)  then
             npcHandler:say("I don't understand. Can you repeat?", cid) 
     elseif (talkState[talkUser] == 3)  then
             npcHandler:say("Maybe later.", cid)
             talkState[talkUser] = 0 

     end
   return 1
end


npcHandler:setCallback(CALLBACK_GREET, MandusGreetCallback)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, MandusSayCallback)
npcHandler:addModule(FocusModule:new())
 
Solution
X
Change all
LUA:
doPlayerSendTextMessage(cid, 22,
to
LUA:
doPlayerSendTextMessage(cid, 4,
OnKill Script
LUA:
function onKill(cid, target)

local tasks = {

["rat"] =            {killsRequired = 100,  storage = 9001},
["minotaur"] =       {killsRequired = 5000, storage = 9002},
["ghoul"] =          {killsRequired = 600, storage = 9003},
["cyclops"] =         {killsRequired = 500, storage = 9004},
["ancient scarab"] = {killsRequired = 3500, storage = 9006},
["dragon"] =         {killsRequired = 1250, storage = 9007},
["necromancer"] =    {killsRequired = 500, storage = 9008},
["giant spider"] =   {killsRequired = 500, storage = 9009},
["warlock"] =        {killsRequired = 150, storage = 9012},
["demon"] =          {killsRequired = 6666, storage = 9013},
["goblin"] =         {killsRequired = 155, storage = 9014},
["larva"] =          {killsRequired = 900, storage = 9015},
["rotworm"] =        {killsRequired = 300, storage = 9016},
["orc"] =            {killsRequired = 400, storage = 9017},
["orc berserker"] =  {killsRequired = 400, storage = 9017},
["orc leader"] =     {killsRequired = 400, storage = 9017},
["orc rider"] =      {killsRequired = 400, storage = 9017},
["orc shaman"] =     {killsRequired = 400, storage = 9017},
["orc spearman"] =   {killsRequired = 400, storage = 9017},
["orc warlord"] =    {killsRequired = 400, storage = 9017},
["orc warrior"] =    {killsRequired = 400, storage = 9017},
["scarab"] =         {killsRequired = 500, storage = 9018},
["troll"] =          {killsRequired = 100, storage = 9019},
["black knight"] =   {killsRequired = 500, storage = 9020},
["demon skeleton"] = {killsRequired = 400, storage = 9021},
["dwarf guard"] =    {killsRequired = 900, storage = 9022},
["fire elemental"] = {killsRequired = 70, storage = 9023},
["hero"] =           {killsRequired = 200, storage = 9024},
["vampire"] =        {killsRequired = 450, storage = 9025},
["snake"] =          {killsRequired = 100, storage = 9026},
["wasp"] =           {killsRequired = 300, storage = 9027},
["wolf"] =           {killsRequired = 250, storage = 9028},
["dwarf"] =          {killsRequired = 700, storage = 9029},
["dwarf Soldier"] =  {killsRequired = 800, storage = 9030},
["cave rat"] =       {killsRequired = 100, storage = 9031},
["amazon"] =         {killsRequired = 250, storage = 9032},
["valkyrie"] =      {killsRequired = 260, storage = 9033},
["Scorpion"] =      {killsRequired = 100, storage = 9034},
["lion"] =          {killsRequired = 100, storage = 9035},
["dragon lords"] =   {killsRequired = 500, storage = 9036},
["poison spider"] = {killsRequired = 300, storage = 9037},
["wild warrior"] =  {killsRequired = 250, storage = 9038},
["slime"] =         {killsRequired = 290, storage = 9039},
["hunter"] =        {killsRequired = 385, storage = 9040},
["bonebeast"] =      {killsRequired = 500, storage = 9041},
["elf"] =            {killsRequired = 300, storage = 9042},
["elf scout"] =      {killsRequired = 400, storage = 9043},
["elf arcanist"] =   {killsRequired = 600, storage = 9044},
["swamp troll"] =    {killsRequired = 100, storage = 9045},
["frost troll"] =    {killsRequired = 200, storage = 9046},
["bug"] =            {killsRequired = 100, storage = 9047},
["hyaena"] =         {killsRequired = 140, storage = 9048},
["stone golem"] =    {killsRequired = 210, storage = 9049},
["stalker"] =        {killsRequired = 400, storage = 9050},
["ghost"] =          {killsRequired = 320, storage = 9051},
["gargoyle"] =       {killsRequired = 275, storage = 9052},
["crypt shambler"] = {killsRequired = 380, storage = 9053},
["beholder"] =       {killsRequired = 420, storage = 9054},
["minotaur mage"] =  {killsRequired = 335, storage = 9055},
["monk"] =           {killsRequired = 220, storage = 9056},
["witch"] =          {killsRequired = 80, storage = 9057},
["polar bear"] =     {killsRequired = 220, storage = 9058},
["skeleton"] =       {killsRequired = 400, storage = 9059},

}

local targetName = getCreatureName(target):lower()
local monster = tasks[targetName]

   if monster and getPlayerStorageValue(cid, monster.storage) >= 0 and getPlayerStorageValue(cid, monster.storage) <= monster.killsRequired then
      setPlayerStorageValue(cid, monster.storage, getPlayerStorageValue(cid, monster.storage) + 1)
      if (getPlayerStorageValue(cid, monster.storage) == monster.killsRequired) then
          doPlayerSendTextMessage(cid, 22, "Congratulations! you have killed total of ["..monster.killsRequired.."] "..getCreatureName(target).."s and finished the task!. Go to NPC for reward.")
          setPlayerStorageValue(cid, monster.storage, (monster.killsRequired)+1)
      else
          doPlayerSendTextMessage(cid, 22, "You have killed ["..getPlayerStorageValue(cid, monster.storage).."/"..monster.killsRequired.." "..getCreatureName(target).."s].")
      end
   end
 return TRUE
end

--[[ [1] = {monster = "Rat", storage = 9001, killsRequired = 100},
 [2] = {monster = "Minotaur", storage = 9002, killsRequired = 5000},
 [3] = {monster = "Ghoul", storage = 9003, killsRequired = 600},
 [4] = {monster = "Cyclop", storage = 9004, killsRequired = 500},
 [5] = {monster = "Ancient Scarab", storage = 9006, killsRequired = 3500},
 [6] = {monster = "dragon", = 9007, killsRequired = 1250},
 [7] = {monster = "Necromancer", storage = 9008, killsRequired = 600},
 [8] = {monster = "Giant spider", storage = 9009, killsRequired = 650},
 [9] = {monster = "Warlock", storage = 9012, killsRequired = 150},
 [10] = {monster = "Demon", storage = 9013, killsRequired = 6666},
 [11] = {monster = "Goblin", storage = 9014, killsRequired = 155},
 [12] = {monster = "Larva", storage = 9015, killsRequired = 100},
 [13] = {monster = "Rotworm", storage = 9016, killsRequired = 300},
 [14] = {monster = "Orc", storage = 9017, killsRequired = 400},
 [15] = {monster = "Orc berserker", storage = 9017, killsRequired = 400},
 [16] = {monster = "Orc Leader", storage = 9017, killsRequired = 400},
 [17] = {monster = "Orc Shaman", storage = 9017, killsRequired = 400},
 [18] = {monster = "Orc Spearman", storage = 9017, killsRequired = 400},
 [19] = {monster = "Orc Warlord", storage = 9017, killsRequired = 400},
 [20] = {monster = "Orc Warrior", storage = 9017, killsRequired = 400},
 [21] = {monster = "Scarab", storage = 9018, killsRequired = 500},
 [22] = {monster = "Troll", storage = 9019, killsRequired = 100},
 [23] = {monster = "Black Knight", storage = 9020, killsRequired = 100},
 [24] = {monster = "Demon Skeleton", storage = 9021, killsRequired = 400},
 [25] = {monster = "Dwarf Guard", storage = 9022, killsRequired = 900},
 [26] = {monster = "Fire Elemental", storage = 9023, killsRequired = 150},
 [27] = {monster = "Hero", storage = 9024, killsRequired = 450},
 [28] = {monster = "Vampire", storage = 9025, killsRequired = 450},
 [29] = {monster = "Snake", storage = 9026, killsRequired = 150},
 [30] = {monster = "Wasp", storage = 9027, killsRequired = 300},
 [31] = {monster = "Wolf", storage = 9028, killsRequired = 250},
 [32] = {monster = "Dwarf", storage = 9029, killsRequired = 700},
 [33] = {monster = "Dwarf Soldier", storage = 9030, killsRequired = 800},
 [34] = {monster = "Cave Rat", storage = 9031, killsRequired = 100},
 [35] = {monster = "Amazon", storage = 9032, killsRequired = 250},
 [36] = {monster = "Valkyrie", storage = 9033, killsRequired = 260},
 [37] = {monster = "Scorpion", storage = 9034, killsRequired = 100},
 [38] = {monster = "Lion", storage = 9035, killsRequired = 100},
 [39] = {monster = "Dragon Lord", storage = 9036, killsRequired = 500},
 [40] = {monster = "Poison spider", storage = 9037, killsRequired = 300},
 [41] = {monster = "Wild warrior", storage = 9038, killsRequired = 250},
 [42] = {monster = "Slime", storage = 9039, killsRequired = 290},
 [43] = {monster = "Hunter", storage = 9040, killsRequired = 385},
 [44] = {monster = "Bonebeast", storage = 9041, killsRequired = 500},
 [45] = {monster = "Elf", storage = 9042, killsRequired = 300},
 [46] = {monster = "Elf scout", storage = 9043, killsRequired = 400},
 [47] = {monster = "Elf arcanist", storage = 9044, killsRequired = 600},
 [48] = {monster = "Swamp troll", storage = 9045, killsRequired = 100},
 [49] = {monster = "Frost troll", storage = 9046, killsRequired = 200},
 [50] = {monster = "Bug", storage = 9047, killsRequired = 100},
 [51] = {monster = "Hyaena", storage = 9048, killsRequired = 140},
 [52] = {monster = "Stone Golem", storage = 9049, killsRequired = 210},
 [53] = {monster = "Stalker", storage = 9050, killsRequired = 400},
 [54] = {monster = "Ghost", storage = 9051, killsRequired = 320},
 [55] = {monster = "Gargoyle", storage = 9052, killsRequired = 275},
 [56] = {monster = "Crypt shambler", storage = 9053, killsRequired = 380},
 [57] = {monster = "Beholder", storage = 9054, killsRequired = 420},
 [58] = {monster = "Minotaur Mage", storage = 9055, killsRequired = 335},
 [59] = {monster = "Monk", storage = 9056, killsRequired = 220},
 [60] = {monster = "Witch", storage = 9057, killsRequired = 80},
 [61] = {monster = "Polar Bear", storage = 9058, killsRequired = 220},
 [62] = {monster = "Skeleton", storage = 9059, killsRequired = 400},
 [63] =
 [64] =
 --]]
 --]]
 
Back
Top