Ir para conteúdo

Featured Replies

  • Respostas 82
  • Visualizações 15.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @Jobs hehehe, nice, nice, nice, não mexo com modalwindow, meu servidor é 8.60, usando OTX 1.3, então como não tem diferença os scripts para as versões 1.x, então resolvi postar, vai pegar em todos, se

  • ja tô usando seu lindão!  mais pra frente, seria muito foda se você fizesse modal window! beijos, otimo sistema *-*    

  • Saquei, sim funcionou direitinho aqui, 10x tfs 1.2 xd 

Posted Images

  • 1 month later...
Postado
Em 02/10/2017 em 00:44, KotZletY disse:

Salve geral, recentemente fiz um Task System para meu servidor, então gostaria de compartilha ele com vocês, assim como outros scripts que fiz e gostaria de compartilhar. Bom, vamos ao que interessa.

                  

 

                                                                                                         Informações!!

Task Normal - Você 1x por vez, quantas vezes quiser, repetindo a task se também quiser.

Task Diaria -  Você faz uma vez por dia, não podendo repeti em quanto as 24 horas não terminar.

Task Rank - É mostrado na descrição do player qual rank task ele possui.

Task Rank Quest - Um extra desse task system é o piso task, que funciona da seguinte maneira. Você só pode passar para um local, por exemplo, uma quest, você só pode passar pelo portal, piso, etc... caso você tenha algum rank que você irá escolher ou quantidade de task points, ou ambos junto e misturado. Kkkkkkk

Task Comandos - Comandos task, 1 para ver o progresso das suas task e outro para mostrar informações do seu personagem, como uma consulta, os comandos são: !task que mostra quais task você ta fazendo, tanto diaria quanto normal e !task me que mostrar informações do seu personagem, como rank, quantidade de pontos task e quantidade de pontos task rank.

Well, o resto é surpresa, cabe você descobrir! xD

 

 

Para não ficar só nas palavras, mostrarei algumas imagens, várias no caso: https://imgur.com/a/6HwFy

 

                                                                                                         Instalação!!

Muito bem, chega de conversa, como instalar logo essa bagaça. Primeiramente vá em data/lib e abra o arquivo lib.lua e adicione:


dofile('data/lib/task system.lua')

Ainda na pasta lib crie um arquivo.lua chamado task system.lua e adicione esse code dentro:

  Ocultar conteúdo


task_monsters = {
   [1] = {nome = "monstro1", storage = 30000, amount = 20, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}},
   [2] = {nome = "monstro2", storage = 30001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}},
   [3] = {nome = "monstro2", storage = 30002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}},
   [4] = {nome = "monstro3", storage = 30003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}}
}

task_daily = {
   [1] = {nome = "monstroDay1", storage = 40000, amount = 10, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}},
   [2] = {nome = "monstroDay2", storage = 40001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}},
   [3] = {nome = "monstroDay3", storage = 40002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}},
   [4] = {nome = "monstroDay4", storage = 40003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}}
}

task_storage = 20020 -- storage que verifica se está fazendo alguma task e ver qual task é - task normal
task_points = 20021 -- storage que retorna a quantidade de pontos task que o player tem.
task_sto_time = 20022 -- storage de delay para não poder fazer a task novamente caso ela for abandonada.
task_time = 20 -- tempo em horas em que o player ficará sem fazer a task como punição
task_rank = 20023 -- storage do rank task
taskd_storage = 20024 -- storage que verifica se está fazendo alguma task e ver qual task é - task daily
time_daySto = 20025 -- storage do tempo da task daily, no caso para verificar e add 24 horas para fazer novamente a task daily


local ranks_task = {
[{1, 20}] = "Newbie", 
[{21, 50}] = "Elite",
[{51, 100}] = "Master",
[{101, 200}] = "Destroyer",		
[{201, math.huge}] = "Juggernaut"
}

function getTaskInfos(uid)
return task_monsters[Player(uid):getStorageValue(task_storage)] or false
end

function getTaskDailyInfo(uid)
return task_daily[Player(uid):getStorageValue(taskd_storage)] or false
end


function taskPoints_get(uid)
if Player(uid):getStorageValue(task_points) == -1 then
return 0 
end
return Player(uid):getStorageValue(task_points)
end

function taskPoints_add(uid, count)
return Player(uid):setStorageValue(task_points, taskPoints_get(uid) + count)
end

function taskPoints_remove(uid, count)
return Player(uid):setStorageValue(task_points, taskPoints_get(uid) - count)
end



function taskRank_get(uid)
if Player(uid):getStorageValue(task_rank) == -1 then
return 1 
end
return Player(uid):getStorageValue(task_rank)
end

function taskRank_add(uid, count)
return Player(uid):setStorageValue(task_rank, taskRank_get(uid) + count)
end


function getRankTask(uid)
local pontos = taskRank_get(uid)
	for _, z in pairs(ranks_task) do
		if pontos >= _[1] and pontos <= _[2] then
		return z
		end
	end
end


function getItemsFromTable(itemtable)
     local text = ""
     for v = 1, #itemtable do
         count, info = itemtable[v].count, ItemType(itemtable[v].id)
         local ret = ", "
         if v == 1 then
             ret = ""
         elseif v == #itemtable then
             ret = " - "
         end
         text = text .. ret
         text = text .. (count > 1 and count or info:getArticle()).." "..(count > 1 and info:getPluralName() or info:getName())
     end
     return text
end

 

 

No final do tópico, ensinarei a configurar a lib. Agora vai em, data/npc e crie um arquivo.xml chamado  task.xml e coloque esse code dentro:


<?xml version="1.0" encoding="UTF-8"?>
<npc name="NPC Task" script="task system.lua" walkinterval="0" floorchange="0">
<health now="150" max="150"/>
<look type="430"/>
<parameters>
<parameter key="message_greet" value="Olá |PLAYERNAME|. Fiquei encarregado da missão de entregar Missões Task para ajuda a vila em alguns aspectos. Gostaria de fazer a task {normal}, {diaria}, {receber}, {abandonar}, ou gostaria de ver a {lista de tasks normais} ou a {lista de task dailys} ?"/>
<parameter key="message_farewell" value="Até mais!" />
		<parameter key="message_walkaway" value="Até mais!" />
        </parameters>
</npc>

Ainda na pasta npc, entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro:

  Mostrar conteúdo oculto


local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

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

npcHandler:addModule(FocusModule:new())

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local player = Player(cid)
local msg = msg:lower()
------------------------------------------------------------------
if npcHandler.topic[cid] == 0 and msgcontains(msg, 'normal') then
 npcHandler:say("Ótimo. A task de qual monstro você gostaria de fazer ?", cid)
 npcHandler.topic[cid] = 1
elseif npcHandler.topic[cid] == 1 then
for mon, l in pairs(task_monsters) do 
 if player:getStorageValue(task_sto_time) < os.time() then
  if player:getStorageValue(task_storage) == -1 then 
   if msg == l.nome then
     npcHandler:say("Muito bem, você agora está fazendo a task do {"..l.nome:gsub("^%l", string.upper).."}, você precisa matar "..l.amount.." deles. Boa Sorte!", cid)
     player:setStorageValue(task_storage, mon)
	 player:setStorageValue(l.storage, 0)
	 npcHandler.topic[cid] = 0
	 npcHandler:releaseFocus(cid)
   break
   else
	 npcHandler:say("Desculpe mais não temos essa task.", cid)
	 npcHandler.topic[cid] = 0
   end
  else
   npcHandler:say("Você já está fazendo uma task. Você só pode fazer uma por vez. Diga {!task} para ver informações sobre sua task atual.", cid)
   npcHandler.topic[cid] = 0
  end
 else
  npcHandler:say("Não estou altorizado a lhe entregar nenhuma missão, por você ter abandonado a anterior. Espere as 2 horas de punicação acabar.", cid)
  npcHandler.topic[cid] = 0
 end
end
------------------------------------------------------------------
------------------------------------------------------------------
elseif npcHandler.topic[cid] == 0 and msgcontains(msg, 'diaria') then
 if player:getStorageValue(time_daySto) < os.time() then
  npcHandler:say("Lembre-se, é de grande importância que as task diarias sejam feita. Agora me diga, a task de qual monstro você gostaria de fazer ?", cid)
  npcHandler.topic[cid] = 2
else
  npcHandler:say('Você já completou a task diaria de hoje, espere passar as 24 horas para fazer novamente.', cid)
  npcHandler:releaseFocus(cid)
end
elseif npcHandler.topic[cid] == 2 then
for mon, l in pairs(task_daily) do 
 if player:getStorageValue(task_sto_time) < os.time() then
  if player:getStorageValue(taskd_storage) == -1 then 
   if msg == l.nome then
    npcHandler:say("Muito bem, você agora está fazendo a task diaria do {"..l.nome:gsub("^%l", string.upper).."}, você precisa matar "..l.amount.." deles. Boa Sorte!", cid)
    player:setStorageValue(taskd_storage, mon)
	player:setStorageValue(l.storage, 0)
	npcHandler.topic[cid] = 0
	npcHandler:releaseFocus(cid)
   break
   else
	npcHandler:say("Desculpe mais não temos essa task diaria.", cid)
	npcHandler.topic[cid] = 0
   end
  else
   npcHandler:say("Você já está fazendo uma task diaria. Você só pode fazer uma por dia. Diga {!task} para ver informações sobre sua task atual.", cid)
   npcHandler.topic[cid] = 0
  end
 else
  npcHandler:say("Não estou altorizado a lhe entregar nenhuma missão, por você ter abandonado a anterior. Espere as 2 horas de punicação acabar.", cid)
  npcHandler.topic[cid] = 0
 end
end
------------------------------------------------------------------
------------------------------------------------------------------
elseif msgcontains(msg, 'receber') then
 if npcHandler.topic[cid] == 0 then
  npcHandler:say("Qual tipo de task você terminou, {normal} ou {diaria} ?", cid)
  npcHandler.topic[cid] = 3
 end
elseif npcHandler.topic[cid] == 3 then
if msgcontains(msg, 'normal') then
 if getTaskInfos(player) then
  if player:getStorageValue(getTaskInfos(player).storage) == getTaskInfos(player).amount then
    local pt1 = getTaskInfos(player).pointsTask[1]
    local pt2 = getTaskInfos(player).pointsTask[2]
	local txt = 'Obrigado por ter feito a task, seus prêmios são: '..(pt1 > 1 and pt1..' pontos task' or pt1 <= 1 and pt1..' ponto task')..' e '..(pt2 > 1 and pt2..' pontos rank' or pt2 <= 1 and pt2..' ponto rank')..', '
	if #getItemsFromTable(getTaskInfos(player).items) > 0 then
	txt = txt..'além de ganhar: '..getItemsFromTable(getTaskInfos(player).items)..', '
    for g = 1, #getTaskInfos(player).items do
     player:addItem(getTaskInfos(player).items[g].id, getTaskInfos(player).items[g].count)
    end
	end
	local exp = getTaskInfos(player).exp
	if exp > 0 then
	txt = txt..'vou lhe dar também '..exp..' de experiência, '
    player:addExperience(exp)
	end
	taskPoints_add(player, pt1)
	taskRank_add(player, pt2)
	player:setStorageValue(getTaskInfos(player).storage, -1)
    player:setStorageValue(task_storage, -1)
	npcHandler:say(txt..'mais uma vez obrigado e até mais!', cid)
	npcHandler.topic[cid] = 0
    npcHandler:releaseFocus(cid)
  else
    npcHandler:say('Você ainda não terminou sua task atual. Receberá ela quando termina.', cid)
	npcHandler.topic[cid] = 0
    npcHandler:releaseFocus(cid)
  end
 else
  npcHandler:say('Você não está fazendo nenhuma task.', cid)
  npcHandler.topic[cid] = 0
  npcHandler:releaseFocus(cid)
 end
elseif npcHandler.topic[cid] == 3 and msgcontains(msg, 'diaria') then
if player:getStorageValue(time_daySto)-os.time() <= 0 then
if getTaskDailyInfo(player) then
 if player:getStorageValue(getTaskDailyInfo(player).storage) == getTaskDailyInfo(player).amount then
	local pt1 = getTaskDailyInfo(player).pointsTask[1]
	local pt2 = getTaskDailyInfo(player).pointsTask[2]
	local txt = 'Obrigado por ter feito a task, seus prêmios são: '..(pt1 > 1 and pt1..' pontos task' or pt1 <= 1 and pt1..' ponto task')..' e '..(pt2 > 1 and pt2..' pontos rank' or pt2 <= 1 and pt2..' ponto rank')..', '
 
	if #getTaskDailyInfo(player).items > 0 then
	txt = txt..'além de ganhar: '..getItemsFromTable(getTaskDailyInfo(player).items)..', '
	for g = 1, #getTaskDailyInfo(player).items do
     player:addItem(getTaskDailyInfo(player).items[g].id, getTaskDailyInfo(player).items[g].count)
    end
	end
	local exp = getTaskDailyInfo(player).exp
	if exp > 0 then
	txt = txt..'vou lhe dar também '..exp..' de experiência, '
    player:addExperience(exp)
	end
	npcHandler:say(txt..' mais uma vez obrigado e te vejo amanhã!!', cid)
	taskPoints_add(player, pt1)
	taskRank_add(player, pt2)
	player:setStorageValue(getTaskDailyInfo(player).storage, -1)
    player:setStorageValue(taskd_storage, -1)
    player:setStorageValue(time_daySto, 1*60*60*24+os.time())
	npcHandler.topic[cid] = 0
    npcHandler:releaseFocus(cid)
 else
    npcHandler:say('Você ainda não terminou sua task atual. Receberá ela quando termina.', cid)
	npcHandler.topic[cid] = 0
    npcHandler:releaseFocus(cid)
 end
else
 npcHandler:say('Você não está fazendo nenhuma task diaria.', cid)
 npcHandler.topic[cid] = 0
 npcHandler:releaseFocus(cid)
end
else
 npcHandler:say('Você já fez uma task diaria, aguarde completar 24 horas para fazer outra novamente.', cid)
 npcHandler.topic[cid] = 0
 npcHandler:releaseFocus(cid)
end
end
------------------------------------------------------------------
------------------------------------------------------------------
elseif msgcontains(msg, 'abandonar') then
if npcHandler.topic[cid] == 0 then
  npcHandler:say("Qual tipo de task você quer abandonar, {normal} ou {diaria} ?", cid)
  npcHandler.topic[cid] = 4
end
elseif npcHandler.topic[cid] == 4 and msgcontains(msg, 'normal') then
if getTaskInfos(player) then
   npcHandler:say('Lamentável essa situação, tinha fé que você me traria essa missão feita, mais estava errado. Como punição ficará 2 horas sem poder fazer qualquer task.', cid)
   player:setStorageValue(task_sto_time, os.time()+task_time*60*60)
   player:setStorageValue(getTaskInfos(player).storage, -1)
   player:setStorageValue(task_storage, -1)
   npcHandler:releaseFocus(cid)
else
  npcHandler:say('Você não está fazendo nenhuma task para poder abandona-lá.', cid)
  npcHandler:releaseFocus(cid)
end
elseif npcHandler.topic[cid] == 4 and msgcontains(msg, 'diaria') then
if getTaskDailyInfo(player) then
   npcHandler:say('Lamentável essa situação, tinha fé que você me traria essa missão feita, mais estava errado. Como punição ficará 2 horas sem poder fazer qualquer task.', cid)
   player:setStorageValue(task_sto_time, os.time()+task_time*60*60)
   player:setStorageValue(getTaskDailyInfo(player).storage, -1)
   player:setStorageValue(taskd_storage, -1)
   npcHandler:releaseFocus(cid)
else
  npcHandler:say('Você não está fazendo nenhuma task diaria para poder abandona-lá.', cid)
  npcHandler:releaseFocus(cid)
end
------------------------------------------------------------------
------------------------------------------------------------------
elseif msgcontains(msg, "lista de tasks normais") then
local text = "----**| -> Tasks Normal <- |**----\n\n"
 for _, d in pairs(task_monsters) do
  text = text .."------ [*] "..d.nome.." [*] ------ \n[+] Quantidade [+] -> ["..(player:getStorageValue(d.storage) + 1).."/"..d.amount.."]:\n[+] Prêmios [+] ->  "..(#d.items > 1 and getItemsFromTable(d.items).." - " or "")..""..d.exp.." experience \n\n"
 end
player:showTextDialog(1949, "" .. text)
npcHandler:say("Aqui está a lista de task's normais.", cid)
------------------------------------------------------------------
------------------------------------------------------------------
elseif msgcontains(msg, "lista de task dailys") then
local text = "----**| -> Tasks Dailys <- |**----\n\n"
 for _, d in pairs(task_daily) do
  text = text .."------ [*] "..d.nome.." [*] ------ \n[+] Quantidade [+] -> ["..(player:getStorageValue(d.storage) + 1).."/"..d.amount.."]:\n[+] Prêmios [+] ->  "..(#d.items > 1 and getItemsFromTable(d.items).." - " or "")..""..d.exp.." experience \n\n"
 end
player:showTextDialog(1949, "" .. text)
npcHandler:say("Aqui está a lista task's diaria.", cid)
end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

 

 

Agora vá em data/talkactions e abra o arquivo talkactions.xml e adicione a seguinte tag:


<talkaction words="!task" separator=" " script="task system.lua" />

Ainda na pasta talkactions entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele:

  Mostrar conteúdo oculto


function onSay(player, words, param)
local text = '---------------------------**| -> Tasks System Infos <- |**---------------------------\n'
if param:lower() == "me" then
text = text .. '[+] Pontos Task [+]: Você tem '..taskPoints_get(player)..' pontos Task.\n[+] Pontos Task Rank [+]: Você tem '..taskRank_get(player)..' pontos Task.\n[+] Task Rank [+]: '..getRankTask(player)..''
return false,  player:popupFYI(text)
end

if getTaskInfos(player) then
local taskNormal = player:getStorageValue(getTaskInfos(player).storage)
  text = text .. '\n\n      [ -> ----- [+] Task Normal [+] ----- <- ]\n      \n[*] Task Atual [*]: '..getTaskInfos(player).nome..' - Você precisa matar: '..getTaskInfos(player).amount..'.\n[*] Prêmios [*]: '..getItemsFromTable(getTaskInfos(player).items)..' - '..getTaskInfos(player).pointsTask[1]..' Pontos Task - '..getTaskInfos(player).pointsTask[2]..' Pontos Rank da Task. \n[*] Progresso [*]: ['..(player:getStorageValue(getTaskInfos(player).storage))..'/'..getTaskInfos(player).amount..']\n[*] Status da Task [*]: '..(taskNormal == getTaskInfos(player).amount and 'Completa' or 'Incompleta')..'!'			
else
 text = text .. '\n\n      [ -> ----- [+] Task Normal [+] ----- <- ]\n      \n--- Você não está fazendo Task nenhuma.'
end

if getTaskDailyInfo(player) then
local taskDaily = player:getStorageValue(getTaskDailyInfo(player).storage)
  text = text .. '\n\n\n      [ -> ----- [+] Task Diaria [+] ----- <- ]\n      \n[*] Task Atual [*]: '..getTaskDailyInfo(player).nome..' - Você precisa matar: '..getTaskDailyInfo(player).amount..'.\n[*] Prêmios [*]: '..getItemsFromTable(getTaskDailyInfo(player).items)..' - '..getTaskDailyInfo(player).pointsTask[1]..' Pontos Task - '..getTaskDailyInfo(player).pointsTask[2]..' Pontos Rank da Task. \n[*] Progresso [*]: ['..(player:getStorageValue(getTaskDailyInfo(player).storage))..'/'..getTaskDailyInfo(player).amount..']\n[*] Status da Task [*]: '..(taskDaily == getTaskDailyInfo(player).amount and 'Completa' or 'Incompleta')..'!'			
else
text = text .. '\n\n\n      [ -> ----- [+] Task Diaria [+] ----- <- ]\n      \n--- Você não está fazendo nenhuma Task Diaria.'
end
 return false,  player:popupFYI(text)
end

 

 

Agora vá em data/creaturescripts e abra o arquivo creaturescripts.xl e adicione a seguinte tag:


<event type="kill" name="tasksystem" script="task system.lua"/>

Ainda na pasta creaturescripts entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele:

  Mostrar conteúdo oculto


function onKill(player, target)
if target:isPlayer()  or target:getMaster() then
	return true
end

if getTaskInfos(player) then
 if target:getName():lower() == getTaskInfos(player).nome then
  if player:getStorageValue(getTaskInfos(player).storage) < getTaskInfos(player).amount then
   player:setStorageValue(getTaskInfos(player).storage, player:getStorageValue(getTaskInfos(player).storage) + 1)
   player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, '[Task System] Você matou ['..(player:getStorageValue(getTaskInfos(player).storage))..'/'..getTaskInfos(player).amount..'] '..target:getName()..'.')
  end
 end
end

if getTaskDailyInfo(player) then
 if target:getName():lower() == getTaskDailyInfo(player).nome then
  if player:getStorageValue(getTaskDailyInfo(player).storage) < getTaskDailyInfo(player).amount then
   player:setStorageValue(getTaskDailyInfo(player).storage, player:getStorageValue(getTaskDailyInfo(player).storage) + 1)
   player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, '[Task System Daily] Você matou ['..(player:getStorageValue(getTaskDailyInfo(player).storage))..'/'..getTaskDailyInfo(player).amount..'] '..target:getName()..'.')
  end
 end
end

return true
end

 

Ainda na pasta script  abra o login.lua e adicione dentro:


player:registerEvent("tasksystem")

Agora vá em data/events/scripts e abra o arquivo player.lua, depois de aberto, antes de:


self:sendTextMessage(MESSAGE_INFO_DESCR, description)

adicione:


if thing:isPlayer() then
	description = string.format("%s\nTask Rank: "..getRankTask(thing), description)
end

 

Essa parte é um extra para aqueles que gostaria de usar a task points ou rank em alguma quest e tals...

Vamos a um simples piso, vá em data/movements e abra o arquivo movements.xml eadicione a seguinte tag:


<movevent event="StepIn" actionid="XXXXX" script="task system.lua"/>

Onde tem XXXXX escolha um actions id e coloque no lugar dos x.

 

Agora continuando na pasta movements, entre na pasta scripts crie um arquivo.lua chamado  task system.lua e adicione esse code dentro dele:

  Ocultar conteúdo


local pontos = 25 -- Quantos pontos precisa para poder passar.

function onStepIn(player, item, position, fromPosition)
if isPlayer(player) then
if taskPoints_get(player) >= pontos then
player:sendTextMessage(MESSAGE_EVENT_ORANGE,"Boa sorte na quest!!")
taskPoints_remove(player, pontos) -- Essa função remove a quantidade de pontos task do player depois que ele passar. Caso não queira tirar os pontos do player, basta remover essa linha.
else
player:teleportTo(fromPosition)
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Você precisa ter 25 pontos task para poder passar.")
end
end
return true
end

 

 

Coloque a actionid escolhida no piso que o player só passará se tiver tal quantidade de pontos.

 

                                                                                                         Configurando!!

 


task_monsters = {
   [1] = {nome = "monstro1", storage = 30000, amount = 20, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}},
   [2] = {nome = "monstro2", storage = 30001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}},
   [3] = {nome = "monstro2", storage = 30002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}},
   [4] = {nome = "monstro3", storage = 30003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}}
}

                                       
                                              
nome - Nome do monstro.
storage - É a storage que salva a quantidade de monstros já matados.
amount - É a quantidade necessária de monstros matados para finalizar a task.
exp - É a quantidade de Experiência que vai ganhar ao finalizar a task, caso não queira dar experiência, basta deixar em 0.
pointsTask = {Task Points Que vai ganhar(Pontos usado no piso e etc..), Pontos Rank, que irá ganhar e aumentar seu rank.}
items - Itens que o player vai ganhar, devem está tabelados, dentro da tabela item, adicione das tabelas contendo o id do item e count, quantidade de items que irá ganhar.
Ex: items = {{id = 2157, count = 1}, {id = 2160, count = 3}} -- Aqui contém 2x tipos de itens, o 2157 e o 2160, e suas devidas quantidades que irá ganhar.
items = {{id = 2157, count = 1}} -- Aqui só tem 1 tipo de item e a quantidade que vai ganhar.
Adicione quantos itens quiser. O mesmo vale para as task diarias!

 

 

 

Bom, é isso ae, qualquer duvida, crítica, sugestões, deixem ae, se precisa de suporte na instalação ou está com erro em algo estarei dando suporte, abraços e bom uso do sistema.

É totalmente proibido leva meu sistema para outro site, blog ou fórum!

 

 

Será que pode me ajudar ?, se sim. Como posso fazer um outro npc mais que ele contenha outros monstro difentente desses tipo um npc para cada rank.

  • 2 weeks later...
Postado

Aqui não está contando, alguém pode me ajudar? add tudo certinho no creaturescripts...

Uso tfs 1.3 otx 3.10

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo