Ir para conteúdo
  • Cadastre-se

Monster%2FNPC Grizzly Adams (Killing in the name of... Quest) All tasks, 100% Tibi RL


Posts Recomendados

Este é o novo script para matar em nome de ... Quest que eu fiz. Ele inclui recursos para mort real tíbia.

características:

Você pode começar apenas as tarefas de monitores segundo seu nível e / ou armazenamento

Você pode repetir tarefas (Times pode ser alterado)

Você pode começar a tarefa 3 ao mesmo tempo (Contagem pode ser alterado)

Recompensas são fáceis de configurar e tem um monte de recursos

Os tipos de vantagens são:

dinheiro / REWARD_MONEY: Dá dinheiro para o jogador.

exp experiência / / REWARD_EXP: Dá pontos de experiência para o jogador.

realização / ach / REWARD_ACHIEVEMENT: Dá uma conquista para o jogador. Isso funciona com meu sistema de conquistas.

armazenamento armazenamento / / REWARD_STORAGE: Dá uma de armazenamento para o jogador.

pontos / ponto / REWARD_POINT: Dá pontos Paw & Fur ao jogador.

itens / item / objeto / REWARD_ITEM: Dá um item para o jogador.

As bandeiras de recompensa são:

valor: Aqui você declarar as variáveis ​​para as recompensas. Tamanho da tabela depende do tipo de recompensa. Exemplo: Se o tipo de recompensa = "experiência" então o valor deve ser {1000}. Se o tipo de recompensa = "item" então o valor deve ser {2195, 1} (Itemid, cont)

armazenamento: Esta bandeira é usada para definir um armazenamento para o jogador quando ele recebe a recompensa. Utilizado para evitar ser recompensado mais do que uma vez quando a tarefa é repetida. Exemplo: storage = {1250, 1}. Quando o jogador recebe uma recompensa, ele vai obter o armazenamento de 1250 com valor 1 e não receberá a mesma recompensa de novo depois de repetir a mesma tarefa.

Você pode verificar as tarefas começou.

Você pode verificar quantos pontos Paw & Fur que você tem, e também a sua classificação.

Quando um monstro é morto, você receberá uma mensagem de como muitos já mortos.

Tarefas nomes são declarados em 'raceName a variável, mas se você quiser dar um nome diferente para o' raceName 'você pode adicionar' nome 'da variável para a tarefa (Você pode ver o exemplo na segunda tarefa de Necromancers e sacerdotisa)

Nota: O sistema para matar os patrões não é adicionado aqui. A única coisa que você pode fazer é adicionar uma ação-id para os teleports para chefes de quartos e verificar com um script se o jogador tem x armazenamento

Primeiro de tudo, você precisa adicionar esta lib:


RANK_NONE = 0

RANK_HUNTSMAN = 1

RANK_RANGER = 2

RANK_BIGGAMEHUNTER = 3

RANK_TROPHYHUNTER = 4

RANK_ELITEHUNTER = 5


REWARD_MONEY = 1

REWARD_EXP = 2

REWARD_ACHIEVEMENT = 3

REWARD_STORAGE = 4

REWARD_POINT = 5

REWARD_ITEM = 6


QUESTSTORAGE_BASE = 1500

KILLSSTORAGE_BASE = 65000

REPEATSTORAGE_BASE = 48950

POINTSSTORAGE = 2500

tasks =

{

--Tasks for level 6 to 49.

[1] = {killsRequired = 100, raceName = "Trolls", level = {6, 19}, premium = true, creatures = {"troll", "troll champion", "island troll", "swamp troll"}, rewards = {

{type = "exp", value = {200}},

{type = "money", value = {200}}

}},

[2] = {killsRequired = 150, raceName = "Goblins", level = {6, 19}, premium = true, creatures = {"goblin", "goblin assassin", "goblin leader"}, rewards = {

{type = "exp", value = {300}},

{type = "money", value = {250}}

}},

[3] = {killsRequired = 300, raceName = "Crocodiles", level = {6, 49}, premium = true, creatures = {"crocodile"}, rewards = {

{type = "exp", value = {800}},

{type = "achievement", value = {"Blood-Red Snapper"}},

{type = "storage", value = {35000, 1}},

{type = "points", value = {1}}

}},

[4] = {killsRequired = 300, raceName = "Badgers", level = {6, 49}, premium = true, creatures = {"badger"}, rewards = {

{type = "exp", value = {500}},

{type = "points", value = {1}}

}},

[5] = {killsRequired = 300, raceName = "Tarantulas", level = {6, 49}, premium = true, creatures = {"tarantula"}, rewards = {

{type = "exp", value = {1500}},

{type = "achievement", value = {"No More Hiding"}},

{type = "storage", value = {35001, 1}},

{type = "points", value = {2}}

}},

[6] = {killsRequired = 150, raceName = "Carniphilas", level = {6, 49}, premium = true, creatures = {"carniphila"}, rewards = {

{type = "exp", value = {2500}},

{type = "achievement", value = {"Rootless Behaviour"}},

{type = "storage", value = {35002, 1}},

{type = "points", value = {3}}

}},

[7] = {killsRequired = 200, raceName = "Stone Golems", level = {6, 49}, premium = true, creatures = {"stone golem"}, rewards = {

{type = "exp", value = {2000}},

{type = "points", value = {3}}

}},

[8] = {killsRequired = 300, raceName = "Mammoths", level = {6, 49}, premium = true, creatures = {"mammoth"}, rewards = {

{type = "exp", value = {4000}},

{type = "achievement", value = {"Meat Skewer"}},

{type = "storage", value = {35003, 1}},

{type = "points", value = {3}}

}},

[9] = {killsRequired = 300, raceName = "Gnarlhounds", level = {6, 49}, premium = true, creatures = {"gnarlhound"}, rewards = {

{type = "exp", value = {1000}},

{type = "points", value = {2}}

}},

[10] = {killsRequired = 300, raceName = "Terramites", level = {6, 49}, premium = true, creatures = {"terramite"}, rewards = {

{type = "exp", value = {1000}},

{type = "points", value = {2}}

}},

[11] = {killsRequired = 300, raceName = "Apes", level = {6, 49}, premium = true, creatures = {"kongra", "sibang", "merklin"}, rewards = {

{type = "exp", value = {1000}},

{type = "points", value = {2}}

}},

[12] = {killsRequired = 300, raceName = "Thornback Tortoises", level = {6, 49}, premium = true, creatures = {"thornback tortoise"}, rewards = {

{type = "exp", value = {1500}},

{type = "points", value = {2}}

}},

[13] = {killsRequired = 300, raceName = "Gargoyles", level = {6, 49}, premium = true, creatures = {"gargoyle"}, rewards = {

{type = "exp", value = {1500}}

}},


--Tasks for level 50 to 79.


[14] = {killsRequired = 300, raceName = "Ice Golems", level = {50, 79}, premium = true, creatures = {"ice golem"}, rewards = {

{type = "exp", value = {12000}},

{type = "achievement", value = {"Breaking The Ice"}},

{type = "storage", value = {35004, 1}},

{type = "points", value = {2}}

}},

[15] = {killsRequired = 400, raceName = "Quara Scouts", level = {50, 79}, premium = true, creatures = {"quara pincher scout", "quara predator scout", "quara hydromancer scout", "quara constrictor scout", "quara mantassin scout"}, rewards = {

{type = "exp", value = {10000}},

{type = "points", value = {2}}

}},

[16] = {killsRequired = 400, raceName = "Mutated Rats", level = {50, 79}, premium = true, creatures = {"mutated rat"}, rewards = {

{type = "exp", value = {10000}},

{type = "achievement", value = {"Twisted Mutation"}},

{type = "storage", value = {35005, 1}},

{type = "points", value = {2}}

}},

[17] = {killsRequired = 250, raceName = "Ancient Scarabs", level = {50, 79}, premium = true, creatures = {"ancient scarab"}, rewards = {

{type = "exp", value = {15000}},

{type = "achievement", value = {"Crawling Death"}},

{type = "storage", value = {35006, 1}},

{type = "points", value = {2}}

}},

[18] = {killsRequired = 300, raceName = "Wyverns", level = {50, 79}, premium = true, creatures = {"wyvern"}, rewards = {

{type = "exp", value = {12000}},

{type = "points", value = {2}}

}},

[19] = {killsRequired = 300, raceName = "Lancer Beetles", level = {50, 79}, premium = true, creatures = {"lancer beetle"}, rewards = {

{type = "exp", value = {8000}},

{type = "points", value = {2}}

}},

[20] = {killsRequired = 400, raceName = "Wailing Widows", level = {50, 79}, premium = true, creatures = {"wailing widow"}, rewards = {

{type = "exp", value = {12000}},

{type = "points", value = {3}}

}},

[21] = {killsRequired = 250, raceName = "Killer Caimans", level = {50, 79}, premium = true, creatures = {"killer caiman"}, rewards = {

{type = "exp", value = {10000}},

{type = "points", value = {2}}

}},

[22] = {killsRequired = 300, raceName = "Bonebeasts", level = {50, 79}, premium = true, creatures = {"bonebeast"}, rewards = {

{type = "exp", value = {12000}},

{type = "achievement", value = {"Spareribs for Dinner"}},

{type = "storage", value = {35007, 1}},

{type = "points", value = {2}}

}},

[23] = {killsRequired = 300, raceName = "Crystal Spiders", level = {50, 79}, creatures = {"crystal spider"}, premium = true, rewards = {

{type = "exp", value = {15000}},

{type = "achievement", value = {"Arachnoise"}},

{type = "storage", value = {35008, 1}},

{type = "points", value = {3}}

}},

[24] = {killsRequired = 300, raceName = "Mutated Tigers", level = {50, 79}, premium = true, creatures = {"mutated tiger"}, rewards = {

{type = "exp", value = {12000}},

{type = "points", value = {2}}

}},


--Taks for level 80 to 129.


[25] = {killsRequired = 600, raceName = "Underwater Quara", level = {80, 129}, premium = true, creatures = {"quara hydromancer", "quara predator", "quara constrictor", "quara mantassin", "quara pincher"}, rewards = {

{type = "exp", value = {15000}},

{type = "achievement", value = {"Back into the Abyss"}},

{type = "storage", value = {35009, 1}},

{type = "points", value = {3}}

}},


[26] = {killsRequired = 500, raceName = "Giant Spiders", level = {80, 129}, premium = true, creatures = {"giant spider"}, rewards = {

{type = "exp", value = {20000}},

{type = "achievement", value = {"Choking on Her Venom"}},

{type = "storage", value = {35010, 1}},

{type = "points", value = {3}}

}},


[27] = {killsRequired = 300, raceName = "Werewolves", level = {80, 129}, premium = true, creatures = {"werewolf"}, rewards = {

{type = "exp", value = {30000}},

{type = "achievement", value = {"Howly Silence"}},

{type = "storage", value = {35011, 1}},

{type = "points", value = {4}}

}},


[28] = {killsRequired = 400, raceName = "Nightmares", level = {80, 129}, premium = true, creatures = {"nightmare", "nightmare scion"}, rewards = {

{type = "exp", value = {25000}},

{type = "achievement", value = {"Dream is Over"}},

{type = "storage", value = {35012, 1}},

{type = "points", value = {3}}

}},


[29] = {killsRequired = 600, raceName = "Hellspawns", level = {80, 129}, premium = true, creatures = {"hellspawn"}, rewards = {

{type = "exp", value = {25000}},

{type = "achievement", value = {"Scorched Flames"}},

{type = "storage", value = {35013, 1}}

}},


[30] = {killsRequired = 800, raceName = "High Class Lizards", level = {80, 129}, premium = true, creatures = {"lizard chosen", "lizard dragon priest", "lizard high guard", "lizard legionnaire"}, rewards = {

{type = "exp", value = {30000}},

{type = "achievement", value = {"Zzztill Zzztanding!"}},

{type = "storage", value = {35014, 1}},

{type = "points", value = {3}}

}},


[31] = {killsRequired = 600, raceName = "Stampors", level = {80, 129}, premium = true, creatures = {"stampor"}, rewards = {

{type = "exp", value = {20000}},

{type = "achievement", value = {"Stepped on a Big Toe"}},

{type = "storage", value = {35015, 1}},

{type = "points", value = {3}}

}},


[32] = {killsRequired = 500, raceName = "Brimstone Bugs", level = {80, 129}, premium = true, creatures = {"brimstone bug"}, rewards = {

{type = "exp", value = {15000}},

{type = "achievement", value = {"Something Smells"}},

{type = "storage", value = {35016, 1}},

{type = "points", value = {3}}

}},


[33] = {killsRequired = 400, raceName = "Mutated Bats", level = {80, 129}, premium = true, creatures = {"mutated bat"}, rewards = {

{type = "exp", value = {20000}},

{type = "achievement", value = {"Kapow!"}},

{type = "storage", value = {35017, 1}},

{type = "points", value = {2}}

}},


--Tasks for level 130+

[34] = {killsRequired = 650, raceName = "Hydras", level = {130, 9999}, premium = true, creatures = {"hydra"}, rewards = {

{type = "exp", value = {30000}},

{type = "achievement", value = {"One Less"}},

{type = "storage", value = {35018, 1}},

{type = "points", value = {3}}

}},


[35] = {killsRequired = 800, raceName = "Serpent Spawns", level = {130, 9999}, premium = true, creatures = {"serpent spawn"}, rewards = {

{type = "exp", value = {30000}},

{type = "achievement", value = {"Hissing Downfall"}},

{type = "storage", value = {35019, 1}},

{type = "points", value = {4}}

}},


[36] = {killsRequired = 500, raceName = "Medusae", level = {130, 9999}, premium = true, creatures = {"medusa"}, rewards = {

{type = "exp", value = {40000}},

{type = "achievement", value = {"The Serpent's Bride"}},

{type = "storage", value = {35020, 1}},

{type = "points", value = {5}}

}},


[37] = {killsRequired = 700, raceName = "Behemoths", level = {130, 9999}, premium = true, creatures = {"behemoth"}, rewards = {

{type = "exp", value = {30000}},

{type = "achievement", value = {"Just Cracked Me Up!"}},

{type = "storage", value = {35021, 1}},

{type = "points", value = {4}}

}},


[38] = {killsRequired = 900, raceName = "Sea Serpents and Young Sea Serpents", level = {130, 9999}, premium = true, creatures = {"sea serpent", "young sea serpent"}, rewards = {

{type = "exp", value = {30000}},

{type = "achievement", value = {"The Drowned Sea God"}},

{type = "storage", value = {35022, 1}},

{type = "points", value = {4}}

}},


[39] = {killsRequired = 250, raceName = "Hellhounds", level = {130, 9999}, premium = true, creatures = {"hellhound"}, rewards = {

{type = "exp", value = {40000}},

{type = "achievement", value = {"The Gates of Hell"}},

{type = "storage", value = {35023, 1}},

{type = "points", value = {5}}

}},


[40] = {killsRequired = 500, raceName = "Ghastly Dragons", level = {130, 9999}, premium = true, creatures = {"ghastly dragon"}, rewards = {

{type = "exp", value = {30000}},

{type = "achievement", value = {"Beautiful Agony"}},

{type = "storage", value = {35024, 1}},

{type = "points", value = {5}}

}},


[41] = {killsRequired = 900, raceName = "Drakens", level = {130, 9999}, premium = true, creatures = {"draken spellweaver", "draken warmaster", "draken abomination", "draken elite"} , rewards = {

{type = "exp", value = {30000}},

{type = "achievement", value = {"Enter zze Draken!"}},

{type = "storage", value = {35025, 1}},

{type = "points", value = {3}}

}},


[42] = {killsRequired = 650, raceName = "Destroyers", level = {130, 9999}, premium = true, creatures = {"destroyer"}, rewards = {

{type = "exp", value = {30000}},

{type = "achievement", value = {"Best there was!"}},

{type = "storage", value = {35026, 1}},

{type = "points", value = {4}}

}},


[43] = {killsRequired = 400, raceName = "Undead Dragons", level = {130, 9999}, premium = true, creatures = {"undead dragon"}, rewards = {

{type = "exp", value = {50000}},

{type = "achievement", value = {"Back from the Dead"}},

{type = "storage", value = {35027, 1}},

{type = "points", value = {6}}

}},


--Special tasks.


[44] = {killsRequired = 6666, raceName = "Demons", level = {130, 9999}, rank = RANK_ELITEHUNTER, premium = true, creatures = {"demon"}, rewards = {

{type = "storage", value = {41300, 1}} --Storage that let's you to start Demon Oak

}},


[45] = {killsRequired = 500, raceName = "Green Djinns or Efreets", level = {1, 9999}, storage = {12500, 1}, premium = true, creatures = {"green djinn", "efreet"}, rewards = { --Requires an storage (Gained on The Djinn War - Marid Faction)

{type = "exp", value = {10000}},

{type = "money", value = {5000}},

{type = "storage", value = {35028, 1}}

}},


[46] = {killsRequired = 500, raceName = "Blue Djinns or Marids", level = {1, 9999}, storage = {12501, 1}, premium = true, creatures = {"blue djinn", "marid"}, rewards = { --Requires an storage (Gained on The Djinn War - Efreet Faction)

{type = "exp", value = {10000}},

{type = "money", value = {5000}},

{type = "storage", value = {35029, 1}}

}},


[47] = {killsRequired = 3000, raceName = "Pirates", level = {1, 9999}, storage = {12600, 1}, premium = true, creatures = {"pirate ghost", "pirate marauder", "pirate cutthroad", "pirate buccaneer", "pirate corsair", "pirate skeleton"}, rewards = { --Requires an storage (Gained on The Shattered Isles Quest)

{type = "exp", value = {10000}},

{type = "money", value = {5000}},

{type = "storage", value = {35030, 1}}

}},


[48] = {killsRequired = 3000, raceName = "Pirates second task", level = {1, 9999}, storage = {REPEATSTORAGE_BASE + 47, 3}, norepeatable = true, premium = true, creatures = {"pirate ghost", "pirate marauder", "pirate cutthroad", "pirate buccaneer", "pirate corsair", "pirate skeleton"}, rewards = { --Requires an storage (Gained completing Raymond Striker's first task three times.) NOTE: The required storage to start this task is: base + first pirate task id (47)

{type = "exp", value = {10000}},

{type = "money", value = {5000}},

{type = "storage", value = {35031, 1}}

}},


[49] = {killsRequired = 5000, raceName = "Minotaurs", level = {1, 40}, storage = {12700, 1}, norepeatable = true, premium = false, creatures = {"minotaur", "minotaur mage", "minotaur archer"}, rewards = { --Requires an storage (Gained on To Outfox a Fox Quest)

{type = "storage", value = {35032, 1}}

}},


[50] = {killsRequired = 4000, raceName = "Necromancers and Priestess", level = {60, 9999}, norepeatable = true, premium = true, creatures = {"necromancer", "priestess"}, rewards = { --Requires an storage (Gained on To Outfox a Fox Quest)

{type = "storage", value = {35033, 1}},

{type = "storage", value = {12800, 1}} --storage to stark the second Necromancers and Priestess task.

}},


[49] = {killsRequired = 1000, name = "Necromancers and Priestess second task", raceName = "Necromancers and Priestess", level = {60, 9999}, storage = {12800, 1}, norepeatable = true, premium = true, creatures = {"necromancer", "priestess"}, rewards = { --Requires an storage (Gained on To Outfox a Fox Quest)

{type = "exp", value = {40000}},

{type = "storage", value = {35033, 1}}

}},

}


tasksByPlayer = 3

repeatTimes = 3


function getPlayerRank(cid)

return (getPlayerStorageValue(cid, POINTSSTORAGE) >= 100 and RANK_ELITEHUNTER or getPlayerStorageValue(cid, POINTSSTORAGE) >= 70 and RANK_TROPHYHUNTER or getPlayerStorageValue(cid, POINTSSTORAGE) >= 40 and RANK_BIGGAMEHUNTER or getPlayerStorageValue(cid, POINTSSTORAGE) >= 20 and RANK_RANGER or getPlayerStorageValue(cid, POINTSSTORAGE) >= 10 and RANK_HUNTSMAN or RANK_NONE)

end


function getTaskByName(name, table)

local t = (table and table or tasks)

for k, v in pairs(t) do

if v.name then

if v.name:lower() == name:lower() then

return k

end

else

if v.raceName:lower() == name:lower() then

return k

end

end

end

return false

end


function getTasksByPlayer(cid)

local canmake = {}

local able = {}

for k, v in pairs(tasks) do

if getCreatureStorage(cid, QUESTSTORAGE_BASE + k) < 1 and getCreatureStorage(cid, REPEATSTORAGE_BASE + k) < repeatTimes then

able[k] = true

if getPlayerLevel(cid) < v.level[1] or getPlayerLevel(cid) > v.level[2] then

able[k] = false

end

if v.storage and getCreatureStorage(cid, v.storage[1]) < v.storage[2] then

able[k] = false

end


if v.rank then

if getPlayerRank(cid) < v.rank then

able[k] = false

end

end


if v.premium then

if not isPremium(cid) then

able[k] = false

end

end


if able[k] then

table.insert(canmake, k)

end

end

end

return canmake

end



function canStartTask(cid, name, table)

local v = ""

local id = 0

local t = (table and table or tasks)

for k, i in pairs(t) do

if i.name then

if i.name:lower() == name:lower() then

v = i

id = k

break

end

else

if i.raceName:lower() == name:lower() then

v = i

id = k

break

end

end

end

if v == "" then

return false

end

if getCreatureStorage(cid, QUESTSTORAGE_BASE + id) > 0 then

return false

end

if (getCreatureStorage(cid, REPEATSTORAGE_BASE + id) >= repeatTimes) or (v.norepeatable and getCreatureStorage(cid, REPEATSTORAGE_BASE + id) > 0) then

return false

end

if getPlayerLevel(cid) >= v.level[1] and getPlayerLevel(cid) <= v.level[2] then

if v.premium then

if isPremium(cid) then

if v.rank then

if getPlayerRank(cid) >= v.rank then

if v.storage then

if getCreatureStorage(cid, v.storage[1]) >= v.storage[2] then

return true

end

else

return true

end

end

else

return true

end

end

else

return true

end

end

return false

end


function getPlayerStartedTasks(cid)


local tmp = {}

for k, v in pairs(tasks) do

if getCreatureStorage(cid, QUESTSTORAGE_BASE + k) > 0 and getCreatureStorage(cid, QUESTSTORAGE_BASE + k) < 2 then

table.insert(tmp, k)

end

end

return tmp

end


function isSummon(cid)

return getCreatureMaster(cid) ~= cid or false

end
NOTA: Se você usa TFS 0.4Dev você deve fazer isso ou script não vai funcionar: substituindo:

function isSummon(cid)

return getCreatureMaster(cid) ~= cid or false

end
Por:

function isSummon(cid)

return getCreatureMaster(cid) ~= nil or false

end
Grizzly Adams.xml

<?xml version="1.0" encoding="UTF-8"?>


<npc name="Grizzly Adams" script="data/npc/scripts/KillingInTheNameOf.lua" access="3" walkinterval="2000" lookdir="2">

<mana now="800" max="800"/>

<health now="200" max="200"/>

<look type="144" head="97" body="97" legs="94" feet="97" addons="3"/>

</npc>
data/npc/scripts/KillingInTheNameOf.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


local choose = {}

local cancel = {}

local available = {}

function creatureSayCallback(cid, type, msg)


if(not npcHandler:isFocused(cid)) then

return false

end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_PRIVATE and 0 or cid


if isInArray({"tasks", "task", "mission"}, msg:lower()) then

local can = getTasksByPlayer(cid)

if #can > 0 then

local text = ""

local sep = ", "

table.sort(can, (function(a, b) return (a < b) end))

local t = 0

for _, id in ipairs(can) do

t = t + 1

if t == #can - 1 then

sep = " and "

elseif t == #can then

sep = "."

end

text = text .. "{" .. (tasks[id].name or tasks[id].raceName) .. "}" .. sep

end

selfSay("The current task" .. (#can > 1 and "s" or "") .. " that you can choose " .. (#can > 1 and "are" or "is") .. " " .. text, cid)

talkState[talkUser] = 0

else

selfSay("I don't have any task for you right now.", cid)

end

elseif msg ~= "" and canStartTask(cid, msg) then

if #getPlayerStartedTasks(cid) >= tasksByPlayer then

selfSay("Sorry, but you already started " .. tasksByPlayer .. " tasks.", cid)

return true

end

local task = getTaskByName(msg)

if task and getCreatureStorage(cid, QUESTSTORAGE_BASE + task) > 0 then

return false

end

selfSay("In this task you must defeat " .. tasks[task].killsRequired .. " " .. tasks[task].raceName .. ". Are you sure that you want to start this task?", cid)

choose[cid] = task

talkState[talkUser] = 1

elseif msg:lower() == "yes" and talkState[talkUser] == 1 then

doCreatureSetStorage(cid, QUESTSTORAGE_BASE + choose[cid], 1)

selfSay("Excellent! You can check the status of your task saying report to me.", cid)

choose[cid] = nil

talkState[talkUser] = 0

elseif msg:lower() == "report" then

local started = getPlayerStartedTasks(cid)

local finishedAtLeastOne = false

local finished = 0

if started and #started > 0 then

for _, id in ipairs(started) do

if getCreatureStorage(cid, KILLSSTORAGE_BASE + id) >= tasks[id].killsRequired then

for _, reward in ipairs(tasks[id].rewards) do

print("Rewards loaded")

local deny = false

if reward.storage then

if getCreatureStorage(cid, reward.storage[1]) >= reward.storage[2] then

deny = true

end

end

if isInArray({REWARD_MONEY, "money"}, reward.type:lower()) and not deny then

doPlayerAddMoney(cid, reward.value[1])

elseif isInArray({REWARD_EXP, "exp", "experience"}, reward.type:lower()) and not deny then

doPlayerAddExperience(cid, reward.value[1])

doPlayerSendDefaultCancel(cid, "You gained " .. reward.value[1] .. " experience points.")

elseif isInArray({REWARD_ACHIEVEMENT, "achievement", "ach"}, reward.type:lower()) and not deny then

if doPlayerAddAchievement then

doPlayerAddAchievement(cid, reward.value[1], true)

end

elseif isInArray({REWARD_STORAGE, "storage", "stor"}, reward.type:lower()) and not deny then

doCreatureSetStorage(cid, reward.value[1], reward.value[2])

elseif isInArray({REWARD_POINT, "points", "point"}, reward.type:lower()) and not deny then

doCreatureSetStorage(cid, POINTSSTORAGE, getCreatureStorage(cid, POINTSSTORAGE) + reward.value[1])

elseif isInArray({REWARD_ITEM, "item", "items", "object"}, reward.type:lower()) and not deny then

doPlayerAddItem(cid, reward.value[1], reward.value[2])

end


if reward.storage then

doCreatureSetStorage(cid, reward.storage[1], reward.storage[2])

end

end


if tasks[id].norepeatable then

doCreatureSetStorage(cid, QUESTSTORAGE_BASE + id, 2)

else

doCreatureSetStorage(cid, QUESTSTORAGE_BASE + id, 0)

end

doCreatureSetStorage(cid, KILLSSTORAGE_BASE + id, 0)

if getCreatureStorage(cid, REPEATSTORAGE_BASE + id) < 1 then

doCreatureSetStorage(cid, REPEATSTORAGE_BASE + id, 0)

end

doCreatureSetStorage(cid, REPEATSTORAGE_BASE + id, getCreatureStorage(cid, REPEATSTORAGE_BASE + id) + 1)

finishedAtLeastOne = true

finished = finished + 1

end

end


if not finishedAtLeastOne then

selfSay("You haven't finished any task yet.", cid)

else

selfSay("Awesome! you finished " .. (finished > 1 and "various" or "a") .. " task" .. (finished > 1 and "s" or "") .. ". Talk to me again if you want to start a task.", cid)

end

else

selfSay("You haven't started any task yet.", cid)

end

elseif msg:lower() == "started" then

local started = getPlayerStartedTasks(cid)

if started and #started > 0 then

local text = ""

local sep = ", "

table.sort(started, (function(a, b) return (a < b) end))

local t = 0

for _, id in ipairs(started) do

t = t + 1

if t == #started - 1 then

sep = " and "

elseif t == #started then

sep = "."

end

text = text .. "{" .. (tasks[id].name or tasks[id].raceName) .. "}" .. sep

end


selfSay("The current task" .. (#started > 1 and "s" or "") .. " that you started " .. (#started > 1 and "are" or "is") .. " " .. text, cid)

else

selfSay("You haven't started any task yet.", cid)

end

elseif msg:lower() == "cancel" then

local started = getPlayerStartedTasks(cid)

if started and #started > 0 then

selfSay("Cancelling a task will make the count restart. Wich task you want to cancel?", cid)

talkState[talkUser] = 2

else

selfSay("You haven't started any task yet.", cid)

end

elseif getTaskByName(msg) and talkState[talkUser] == 2 and isInArray(getPlayerStartedTasks(cid), getTaskByName(msg)) then

local task = getTaskByName(msg)

if getCreatureStorage(cid, KILLSSTORAGE_BASE + task) > 0 then

selfSay("You currently killed " .. getCreatureStorage(cid, KILLSSTORAGE_BASE + task) .. "/" .. tasks[task].killsRequired .. " " .. tasks[task].raceName .. ". Cancelling this task will restart the count. Are you sure you want to cancel this task?", cid)

else

selfSay("Are you sure you want to cancel this task?", cid)

end

talkState[talkUser] = 3

cancel[cid] = task

elseif msg:lower() == "yes" and talkState[talkUser] == 3 then

doCreatureSetStorage(cid, QUESTSTORAGE_BASE + cancel[cid], -1)

doCreatureSetStorage(cid, KILLSSTORAGE_BASE + cancel[cid], -1)

selfSay("You have cancelled the task " .. (tasks[cancel[cid]].name or tasks[cancel[cid]].raceName) .. ".", cid)

talkState[talkUser] = 0

elseif isInArray({"points", "rank"}, msg:lower()) then

selfSay("At this time, you have " .. getCreatureStorage(cid, POINTSSTORAGE) .. " Paw & Fur points. You " .. (getPlayerRank(cid) == 5 and "are an Elite Hunter" or getPlayerRank(cid) == 4 and "are a Trophy Hunter" or getPlayerRank(cid) == 3 and "are a Big Game Hunter" or getPlayerRank(cid) == 2 and "are a Ranger" or getPlayerRank(cid) == 1 and "are a Huntsman" or "haven't been ranked yet") .. ".", cid)

talkState[talkUser] = 0

end

end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())
creaturescripts.xml
<event type="kill" name="KillingInTheNameOf" event="script" value="killinginthenameof.lua"/>
data/creaturescripts/scripts/killinginthenameof.lua

function onKill(cid, target, lastHit)


local started = getPlayerStartedTasks(cid)

if isPlayer(target) or isSummon(target) then return true end

if started and #started > 0 then

for _, id in ipairs(started) do

if isInArray(tasks[id].creatures, getCreatureName(target):lower()) then

if getCreatureStorage(cid, KILLSSTORAGE_BASE + id) < 0 then

doCreatureSetStorage(cid, KILLSSTORAGE_BASE + id, 0)

end

if getCreatureStorage(cid, KILLSSTORAGE_BASE + id) < tasks[id].killsRequired then

doCreatureSetStorage(cid, KILLSSTORAGE_BASE + id, getCreatureStorage(cid, KILLSSTORAGE_BASE + id) + 1)

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getCreatureStorage(cid, KILLSSTORAGE_BASE + id) .. "/" .. tasks[id].killsRequired .. " " .. tasks[id].raceName .. " already killed.")

end

end

end

end

return true

end
login.lua:
registerCreatureEvent(cid, "KillingInTheNameOf")

Tai :)

Creditos:

Darkhaos

ArthurLuna - Pela tradução e postagem !

Link para o post
Compartilhar em outros sites

ATENÇÃO: Se você usar 0.4Dev TFS você deve trocar esta função que está em lib.

Procure por:


function isSummon(cid)

return getCreatureMaster(cid) ~= cid or false

end
Troque por:

function isSummon(cid)

return getCreatureMaster(cid) ~= nil or false

end

Estou terminando de arruma os quest log da quest, até depois de amanhã estará pronto eu estarei postando em seguida....

Desculpa pelo Flood, só quero que todos tenha um NPC de Task 100%....

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

versao que voce ta testando? eu to testando em uma 960 e nao ta funfando, o npc fala isso pra mim

18:51 Grizzly Adams: Welcome, Ewerton I have been expecting you.

18:51 Ewerton Alone [102]: task

18:51 Grizzly Adams: I don't have any task for you right now.

Ajudei? da REP+

Custa nada!

Link para o post
Compartilhar em outros sites
  • 1 year later...

no global quando vc completa 50 pontos vc tem direito a demodras

queria saber qual o storage para min botar no portal do demodras ?

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo