Ir para conteúdo
  • Cadastre-se

Sistema [8.6] Task System 4.0! (Task system + Daily Task System)


Posts Recomendados

@LucianoFlorencio 

 

dentro do mods, lá pelo final você vai procurar essa linha:

 

if isPlayer(cid) and isMonster(target) and not isSummon(target) then

 

e deixa ela assim

 

if isPlayer(cid) and isMonster(target) then

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
  • Respostas 298
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Removido:   *Boss Room *Rank Task *Prêmios para os 10 primeiros a terminar todas as tasks   Adicionado:   *Daily Task System (Sistema exclusivo de Task diario,

tenta deixar essa linha: if isPlayer(cid) and isMonster(target) and not isSummon(target) then assim if isPlayer(cid) and isMonster(target) then   e testa

gostei dessa ideia, então estou num projeto e estou meio sem tempo, já passei parto do simple task pra tfs 1.2 e tal. terminando esse projeto e de passar o sistema pra tfs 1.2 eu começo a editar o sis

Posted Images

@Vodkart perfeito amigo funcionou perfeitamente.  Mais tenho uma duvida, 

Em meu servidor estou tentando fazer com base em Quest e esse Npc esta sendo de grande ajuda e a minha duvida seria.

Esse script tem condições de adaptar para outros npc? Um exemplo o play pega a quest para matar uma certa quantidade de monstros entrega a quest e libera acesso a outra quest, Nessa questão de libera quest eu ja sei um pouco mais a questao desse novo eu to entrando agora.

 

No MOD's eu acrescendo uma linda a mais porque pelo que vi ele tem ate o 25 se eu colocar o 26 e criar um novo npc apenas chamando a linha 26 funcionaria? e para ele fazer uma unica vez e libera uma outra quest para mata mais quantidade de monstros depois dessa? 

 

ou teria que fazer um novo script? 

 

parabéns por contribuir com a comunidade!

Link para o post
Compartilhar em outros sites
7 minutos atrás, LucianoFlorencio disse:

@Vodkart perfeito amigo funcionou perfeitamente.  Mais tenho uma duvida, 

Em meu servidor estou tentando fazer com base em Quest e esse Npc esta sendo de grande ajuda e a minha duvida seria.

Esse script tem condições de adaptar para outros npc? Um exemplo o play pega a quest para matar uma certa quantidade de monstros entrega a quest e libera acesso a outra quest, Nessa questão de libera quest eu ja sei um pouco mais a questao desse novo eu to entrando agora.

 

No MOD's eu acrescendo uma linda a mais porque pelo que vi ele tem ate o 25 se eu colocar o 26 e criar um novo npc apenas chamando a linha 26 funcionaria? e para ele fazer uma unica vez e libera uma outra quest para mata mais quantidade de monstros depois dessa? 

 

ou teria que fazer um novo script? 

 

parabéns por contribuir com a comunidade!

 

 

 

Sim, tem como adaptar o npc para dar acesso a outra quest, como próprio npc task já entrega uma storage, a gente usaria essa mesma storage no outro npc, para ter o controle e saber se ele realmente já finalizou tal task.... Se já terminou, o outro npc daria o acesso.

 

No MODS existe uma tabela para somente o npc da task, que seria a tabela "task_sys".

 

Mas nada impede que por exemplo, a gente crie outras tabelas dentro do MODS, como por exemplo "task_sys_1" e configure(crie) outro npc para trabalhar só com essa tabela, fazendo essa missão.

 

obs: até daria para só trabalhar com a linha 26 por exemplo, mas não fica muito organizado.

Editado por Vodkart (veja o histórico de edições)

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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

esse systema como funciona pra ir pro boss exemplo THE horned fox?

 

exemplo: eu mato 1 certa quantidade de minotaur e ainda dps entrega e automaticamente ele libera o acesso ao portal e nasce o boss entende? me ajuda nisso meu amigo, vc é fera demais

Editado por Vicente1992 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 month later...
On 5/19/2020 at 4:17 PM, Vicente1992 said:

esse systema como funciona pra ir pro boss exemplo THE horned fox?

 

exemplo: eu mato 1 certa quantidade de minotaur e ainda dps entrega e automaticamente ele libera o acesso ao portal e nasce o boss entende? me ajuda nisso meu amigo, vc é fera demais

Mesmo pedido, será que seria possivel além de dar rewards, algumas tasks derem storage quando completadas, para que seja possivel fazer um sistema de teleport de boss?

Link para o post
Compartilhar em outros sites

É possível sim, eu tirei o teleport boss do 4.0 pq ninguém estava usando.

 

Como funcionaria?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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

Hey man, como eu posso solucionar esse erro?

Spoiler


[Error - NpcScript Interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:20: attempt to index global 'tasktabble' (a nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:20: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:459: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple_task.lua:8>

[Error - NpcScript Interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:20: attempt to index global 'tasktabble' (a nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:20: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:459: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple_task.lua:8>

[Error - NpcScript Interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:20: attempt to index global 'tasktabble' (a nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:20: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:459: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple_task.lua:8>

[Error - NpcScript Interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:20: attempt to index global 'tasktabble' (a nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:20: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:459: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple_task.lua:8>

 

Assinatura retirada pela direção!

Link para o post
Compartilhar em outros sites
  • 1 month later...
Em 21/07/2020 em 21:38, Rogeriok disse:

Hey man, como eu posso solucionar esse erro?

  Ocultar conteúdo


[Error - NpcScript Interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:20: attempt to index global 'tasktabble' (a nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:20: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:459: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple_task.lua:8>

[Error - NpcScript Interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:20: attempt to index global 'tasktabble' (a nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:20: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:459: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple_task.lua:8>

[Error - NpcScript Interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:20: attempt to index global 'tasktabble' (a nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:20: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:459: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple_task.lua:8>

[Error - NpcScript Interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:20: attempt to index global 'tasktabble' (a nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:20: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:459: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple_task.lua:8>

 

estou com mesmo problema

 

Link para o post
Compartilhar em outros sites
  • 3 months later...
Em 08/01/2017 em 22:08, Vodkart disse:

Removido:

 

*Boss Room

*Rank Task

*Prêmios para os 10 primeiros a terminar todas as tasks

 

Adicionado:

 

*Daily Task System (Sistema exclusivo de Task diario, podendo pegar 1x a cada 24 hrs, irei explicar mais depois.)

*Task agora é por progresso, você não pode sair e voltar, terá que terminar a task 1 para avançar para a task  2, assim sucessivamente.

*Task Points

*Level para realizar a task

*Nova talkaction que mostra uma janela de informações sobre o level da task, premios que irá receber, progresso, etc...

*Items para entrega(Se o jogador deverá levar algum item junto com a quantidade de monstro morta) para finalizar a task

*Sistema de look Task (Varia de acordo com a sua quantidade de Task Points, podendo ficar por exemplo como "Huntsman", "Ranger", etc...(alterável)

*Mods e npc mais "clean", várias linhas removidas e o sistema está mais rápido

*Vou Adicionar "scripts extras" Como:

--> Tile que só passa quem tiver permissão depois de finalizar determinada quest

 --> Npc de Boss Room para entrar e enfrentar o monstro quem fez determinada quest

 

 

[+] Resumo do Task system + Daily Task System [+]

 

Task System: É o sistema de task "original", onde consiste em matar determinada quantidade de monstros(E entregar certo itens <- é configurável), para receber recompensas como Exp, Money e Items.

 

Algumas mudanças do simple task 3.0 para o 4.0 foram:

 

[+] O sistema agora é por progresso, isso quer dizer que você terá que ir terminando a quest para avançar para a seguinte.

[+] O sistema Também recebeu uma alteração, fazendo com que as Tasks precisem que o jogador tenha um level determinado

[+] A tabela para edição está mais fácil, fazendo com que você adicione ou remova monstros com mais tranquilidade, inclusive alterações das Rewards da Task.

 

Daily Task System: É um sistema que desenvolvi para que os jogadores sempre estejam se comunicando com o npc de Task, no caso da Task Diaria, vária de acordo com o level do jogador, por exemplo:

 

Jogadores entre level 6 ao 49 poderá cair em uma dessas 3 Task Diarias: Orcs, Tarantulas ou Wyverns

Jogadores entre level 50 ao 79 poderá cair em uma dessas 3 Task Diarias: Dragons, Wailing Widows ou Ancient Scarabs

 

E por ai vai, claro que você poderá aumentar as Task Diarias dependendo do level, eu fiz 3 para cada level que é pra postar, mas tudo isso você pode aumentar! Dependendo do seu servidor.

 

E sim, você pode fazer a TASK "ORIGINAL" e a TASK "DIARIA" ao mesmo tempo! Ambas são distintas e possuem Rewards diferenciadas!

 

No caso da Task diaria, levando em conta que você começou a fazer ela no dia 08/01 ás 20:00 Hrs, você tem até o dia 09/01 ás 20:00Hrs para termina-la e receber a recompensa, caso termine antes, a Task diaria só irá ficar disponível para repetição a partir desta mesma data 09/01 20:00 Hrs;

 

[+] Caso você não termine a tempo, não tem problema, basta esperar este horário e começar uma nova Task.

[+] Caso você começou a Daily Task e terminou antes desta data. mas por algum motivo esqueceu de entregar e a mesma passou do prazo, não tem importância, caso você tenha matado todos os monstros até 09/01 20:00 Hrs, você poderá entregar está Task em qualquer horário para receber suas Rewards e começar uma task a partir do momento em que você entregou! (INJUSTIÇA AQUI NÃO CARALHO).

 

[+] Comandos Adicionais [+]

 

/task -- Mostra as informações da sua Task Atual, como Nome da Task, Level, Rewards, Monstros que você poderá matar, Se tem que entregar algum Item junto, etc...

/task daily -- É basicamente mostra a mesma informação da Task Principal, porém mostra também qual o prazo limite para entrega da task.

/task counter -- É um comando que ATIVA ou DESATIVA o contador de monstros mortos na task no seu Channel.

 

[+] Imagens [+]

 

Cline neste link para ver algumas imagens da Task : http://imgur.com/a/eLIY3

 

 

 

------------------------------------------------ // --------------------------------------------------------------

 

[+] Instalação do Sistema [+]

 

Requisitos: Nível Médio de conhecimento em scripting LUA

 

Pasta Mods

 

Simple Task.xml

 

https://pastebin.com/raw/P5hqMC3j

 

NPC:

 

 

Ludger.xml

 

https://pastebin.com/raw/R56yLWHw

 

simple_task.lua

 

https://pastebin.com/raw/1mRzJ6aJ

 

---------------------------------------------- // ----------------------------------

 

[+] configuração [+ ]

 

Task System Principal

 


task_sys = {
	[1] = {name = "Trolls", start = 176201, monsters_list = {"Troll","Troll champion"}, level = 8, count = 40, points = 0, items = {}, reward = {}, exp = 2000, money = 2000}
}

 

[1]  --> O número entre os colchetes [] significa a ordem da Task, como a Task é por progresso sempre começará no 1 e irá pro [2], assim sucessivamente.

name --> É o nome da task que o jogador irá fazer.

start --> é a storage que indicará se o jogador começou a Task

monster_list ={} --> É o nome dos monstros em que o jogador deverá caçar para completar a Task

level --> É o level necessário para dar inicio á Task

count --> É o número de monstros que o jogador tem que matar para completar a Task

points --> Aqui determinada quantos Task points o jogador irá receber ao completar a Task

items = {} --> Aqui determinada se além de matar os monstros, o jogador terá que entregar item também! Caso tenha só colocar o {ITEM_ID, QUANTIDADE} EX:


items = {{2173,1},{2160,10},{2493,2}}

rewad --> Aqui determinada se o jogador irá receber itens ao terminar a Task, mesma formula do items /\


reward = {{2520,1},{2173,1}}

exp --> Se o jogador irá receber Exp ao terminar a task. 0 ou quantidade de exp

Money --> Se o jogador irá receber dinheiro ao terminar a task. 0 ou quantidade de dinheiro

 

 

Daily Task System

 


daily_task = {
	[1] = {name = "Orcs" ,monsters_list = {"Orc Berserker","Orc Rider","Orc Leader","Orc Warlord"}, count = 100, points = 0, reward = {}, exp = 5000, money = 10000}
}

 

Segue o padrão da Task original, exceto que não precisa entregar items para o npc!

 

Como funciona A randomização de level de acordo com a Daily task?

 

Procure por está tabela em MODS

 


	local t = {
		[{6,49}] = {1,3},
		[{50,79}] = {4,6},
		[{80,129}] = {7,9},
		[{130,math.huge}] = {10,12}
	}

 

entre as chaves e colchetes é o level do jogador para as Daily Task, Você pode adicionar quantas você quiser!

 

Digamos que:

 

[{6,49}] = {1,3}  --> Quer dizer que entre o level 6 ao 49 o jogador poderá cair na Daily Task número 1(Orcs), 2(Tarantulas) ou 3(Wyvern)!

[{50,79}] = {4,6} --> Quer dizer que entre o level 50 ao 79 o jogador poderá cair na Daily Task número 4(Dragons), 5(Wailing Widows) ou 6(Ancient Scarabs)!

...

[{130,math.huge}] = {10,12} --> Quer dizer que o jogador level 130 ou MAIS poderá cair na Daily Task número 10(Undead Dragons), 11(HydraS) ou 12(Ghastly Dragons)!

 

 

Look Rank System

Procure por está tabela em MODS

 


	local ranks = {
		[{1, 20}] = "Huntsman", 
		[{21, 50}] = "Ranger",
		[{51, 100}] = "Big Game Hunter",
		[{101, 200}] = "Trophy Hunter",		
		[{201, math.huge}] = "Elite Hunter"
	}

 

Entre 1-20 Task points o Rank será Huntsman

Entre 21-50 Task posints o Rank será Ranger

Entre 51-100 Task Points o rank será Big Game Hunter

etc...

Altere como quiser!

 

 

 

Amigo, desculpe reviver o tópico, mas você poderia renovar o link, ele está quebrado :(

Link para o post
Compartilhar em outros sites
20 horas atrás, trovos disse:

 

Amigo, desculpe reviver o tópico, mas você poderia renovar o link, ele está quebrado :(

acabei de acessar, não tem nenhum link quebrado...

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
  • 1 month later...
Em 08/01/2017 em 22:08, Vodkart disse:

 



	local ranks = {
		[{1, 20}] = "Huntsman", 
		[{21, 50}] = "Ranger",
		[{51, 100}] = "Big Game Hunter",
		[{101, 200}] = "Trophy Hunter",		
		[{201, math.huge}] = "Elite Hunter"
	}

 

TEM COMO POR TIPO BONUS FIXO PARA ESSES RANKS? TIPO SE TU FOR RANK RANGER GANHA 2 DE SHIELD, SE FOR BIG GAME HUNTER GANHA 2 DE AXE, SWORD E CLUB, SE FOR TROPHY HUNTER GANHA 10K DE HP E MANA, SE FOR ELITE HUNTER GANHA 2 DE ML
CONSEGUE FAZER ISSO?

Editado por Orientalz (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 month later...

@Vodkart atualizei meu script do 1.0 pra esse, excelente trabalho. O 5.0 já saiu? Gostaria muito que os players escolhessem qualquer task (sem precisar seguir uma ordem) e dar a opção pra eles repetirem as tasks.

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
Em 08/01/2017 em 22:08, Vodkart disse:

Removido:

 

*Boss Room

*Rank Task

*Prêmios para os 10 primeiros a terminar todas as tasks

 

Adicionado:

 

*Daily Task System (Sistema exclusivo de Task diario, podendo pegar 1x a cada 24 hrs, irei explicar mais depois.)

*Task agora é por progresso, você não pode sair e voltar, terá que terminar a task 1 para avançar para a task  2, assim sucessivamente.

*Task Points

*Level para realizar a task

*Nova talkaction que mostra uma janela de informações sobre o level da task, premios que irá receber, progresso, etc...

*Items para entrega(Se o jogador deverá levar algum item junto com a quantidade de monstro morta) para finalizar a task

*Sistema de look Task (Varia de acordo com a sua quantidade de Task Points, podendo ficar por exemplo como "Huntsman", "Ranger", etc...(alterável)

*Mods e npc mais "clean", várias linhas removidas e o sistema está mais rápido

*Vou Adicionar "scripts extras" Como:

--> Tile que só passa quem tiver permissão depois de finalizar determinada quest

 --> Npc de Boss Room para entrar e enfrentar o monstro quem fez determinada quest

 

 

[+] Resumo do Task system + Daily Task System [+]

 

Task System: É o sistema de task "original", onde consiste em matar determinada quantidade de monstros(E entregar certo itens <- é configurável), para receber recompensas como Exp, Money e Items.

 

Algumas mudanças do simple task 3.0 para o 4.0 foram:

 

[+] O sistema agora é por progresso, isso quer dizer que você terá que ir terminando a quest para avançar para a seguinte.

[+] O sistema Também recebeu uma alteração, fazendo com que as Tasks precisem que o jogador tenha um level determinado

[+] A tabela para edição está mais fácil, fazendo com que você adicione ou remova monstros com mais tranquilidade, inclusive alterações das Rewards da Task.

 

Daily Task System: É um sistema que desenvolvi para que os jogadores sempre estejam se comunicando com o npc de Task, no caso da Task Diaria, vária de acordo com o level do jogador, por exemplo:

 

Jogadores entre level 6 ao 49 poderá cair em uma dessas 3 Task Diarias: Orcs, Tarantulas ou Wyverns

Jogadores entre level 50 ao 79 poderá cair em uma dessas 3 Task Diarias: Dragons, Wailing Widows ou Ancient Scarabs

 

E por ai vai, claro que você poderá aumentar as Task Diarias dependendo do level, eu fiz 3 para cada level que é pra postar, mas tudo isso você pode aumentar! Dependendo do seu servidor.

 

E sim, você pode fazer a TASK "ORIGINAL" e a TASK "DIARIA" ao mesmo tempo! Ambas são distintas e possuem Rewards diferenciadas!

 

No caso da Task diaria, levando em conta que você começou a fazer ela no dia 08/01 ás 20:00 Hrs, você tem até o dia 09/01 ás 20:00Hrs para termina-la e receber a recompensa, caso termine antes, a Task diaria só irá ficar disponível para repetição a partir desta mesma data 09/01 20:00 Hrs;

 

[+] Caso você não termine a tempo, não tem problema, basta esperar este horário e começar uma nova Task.

[+] Caso você começou a Daily Task e terminou antes desta data. mas por algum motivo esqueceu de entregar e a mesma passou do prazo, não tem importância, caso você tenha matado todos os monstros até 09/01 20:00 Hrs, você poderá entregar está Task em qualquer horário para receber suas Rewards e começar uma task a partir do momento em que você entregou! (INJUSTIÇA AQUI NÃO CARALHO).

 

[+] Comandos Adicionais [+]

 

/task -- Mostra as informações da sua Task Atual, como Nome da Task, Level, Rewards, Monstros que você poderá matar, Se tem que entregar algum Item junto, etc...

/task daily -- É basicamente mostra a mesma informação da Task Principal, porém mostra também qual o prazo limite para entrega da task.

/task counter -- É um comando que ATIVA ou DESATIVA o contador de monstros mortos na task no seu Channel.

 

[+] Imagens [+]

 

Cline neste link para ver algumas imagens da Task : http://imgur.com/a/eLIY3

 

 

 

------------------------------------------------ // --------------------------------------------------------------

 

[+] Instalação do Sistema [+]

 

Requisitos: Nível Médio de conhecimento em scripting LUA

 

Pasta Mods

 

Simple Task.xml

 

https://pastebin.com/raw/P5hqMC3j

 

NPC:

 

 

Ludger.xml

 

https://pastebin.com/raw/R56yLWHw

 

simple_task.lua

 

https://pastebin.com/raw/1mRzJ6aJ

 

---------------------------------------------- // ----------------------------------

 

[+] configuração [+ ]

 

Task System Principal

 


task_sys = {
	[1] = {name = "Trolls", start = 176201, monsters_list = {"Troll","Troll champion"}, level = 8, count = 40, points = 0, items = {}, reward = {}, exp = 2000, money = 2000}
}

 

[1]  --> O número entre os colchetes [] significa a ordem da Task, como a Task é por progresso sempre começará no 1 e irá pro [2], assim sucessivamente.

name --> É o nome da task que o jogador irá fazer.

start --> é a storage que indicará se o jogador começou a Task

monster_list ={} --> É o nome dos monstros em que o jogador deverá caçar para completar a Task

level --> É o level necessário para dar inicio á Task

count --> É o número de monstros que o jogador tem que matar para completar a Task

points --> Aqui determinada quantos Task points o jogador irá receber ao completar a Task

items = {} --> Aqui determinada se além de matar os monstros, o jogador terá que entregar item também! Caso tenha só colocar o {ITEM_ID, QUANTIDADE} EX:


items = {{2173,1},{2160,10},{2493,2}}

rewad --> Aqui determinada se o jogador irá receber itens ao terminar a Task, mesma formula do items /\


reward = {{2520,1},{2173,1}}

exp --> Se o jogador irá receber Exp ao terminar a task. 0 ou quantidade de exp

Money --> Se o jogador irá receber dinheiro ao terminar a task. 0 ou quantidade de dinheiro

 

 

Daily Task System

 


daily_task = {
	[1] = {name = "Orcs" ,monsters_list = {"Orc Berserker","Orc Rider","Orc Leader","Orc Warlord"}, count = 100, points = 0, reward = {}, exp = 5000, money = 10000}
}

 

Segue o padrão da Task original, exceto que não precisa entregar items para o npc!

 

Como funciona A randomização de level de acordo com a Daily task?

 

Procure por está tabela em MODS

 


	local t = {
		[{6,49}] = {1,3},
		[{50,79}] = {4,6},
		[{80,129}] = {7,9},
		[{130,math.huge}] = {10,12}
	}

 

entre as chaves e colchetes é o level do jogador para as Daily Task, Você pode adicionar quantas você quiser!

 

Digamos que:

 

[{6,49}] = {1,3}  --> Quer dizer que entre o level 6 ao 49 o jogador poderá cair na Daily Task número 1(Orcs), 2(Tarantulas) ou 3(Wyvern)!

[{50,79}] = {4,6} --> Quer dizer que entre o level 50 ao 79 o jogador poderá cair na Daily Task número 4(Dragons), 5(Wailing Widows) ou 6(Ancient Scarabs)!

...

[{130,math.huge}] = {10,12} --> Quer dizer que o jogador level 130 ou MAIS poderá cair na Daily Task número 10(Undead Dragons), 11(HydraS) ou 12(Ghastly Dragons)!

 

 

Look Rank System

Procure por está tabela em MODS

 


	local ranks = {
		[{1, 20}] = "Huntsman", 
		[{21, 50}] = "Ranger",
		[{51, 100}] = "Big Game Hunter",
		[{101, 200}] = "Trophy Hunter",		
		[{201, math.huge}] = "Elite Hunter"
	}

 

Entre 1-20 Task points o Rank será Huntsman

Entre 21-50 Task posints o Rank será Ranger

Entre 51-100 Task Points o rank será Big Game Hunter

etc...

Altere como quiser!

 

 


Desculpa reviver o tópico, mas teria como você colocar novamente o script do NPC?

Obrigado!

Link para o post
Compartilhar em outros sites
  • 4 weeks later...
Em 08/01/2017 em 21:08, Vodkart disse:

Removido:

 

*Boss Room

*Rank Task

*Prêmios para os 10 primeiros a terminar todas as tasks

 

Adicionado:

 

*Daily Task System (Sistema exclusivo de Task diario, podendo pegar 1x a cada 24 hrs, irei explicar mais depois.)

*Task agora é por progresso, você não pode sair e voltar, terá que terminar a task 1 para avançar para a task  2, assim sucessivamente.

*Task Points

*Level para realizar a task

*Nova talkaction que mostra uma janela de informações sobre o level da task, premios que irá receber, progresso, etc...

*Items para entrega(Se o jogador deverá levar algum item junto com a quantidade de monstro morta) para finalizar a task

*Sistema de look Task (Varia de acordo com a sua quantidade de Task Points, podendo ficar por exemplo como "Huntsman", "Ranger", etc...(alterável)

*Mods e npc mais "clean", várias linhas removidas e o sistema está mais rápido

*Vou Adicionar "scripts extras" Como:

--> Tile que só passa quem tiver permissão depois de finalizar determinada quest

 --> Npc de Boss Room para entrar e enfrentar o monstro quem fez determinada quest

 

 

[+] Resumo do Task system + Daily Task System [+]

 

Task System: É o sistema de task "original", onde consiste em matar determinada quantidade de monstros(E entregar certo itens <- é configurável), para receber recompensas como Exp, Money e Items.

 

Algumas mudanças do simple task 3.0 para o 4.0 foram:

 

[+] O sistema agora é por progresso, isso quer dizer que você terá que ir terminando a quest para avançar para a seguinte.

[+] O sistema Também recebeu uma alteração, fazendo com que as Tasks precisem que o jogador tenha um level determinado

[+] A tabela para edição está mais fácil, fazendo com que você adicione ou remova monstros com mais tranquilidade, inclusive alterações das Rewards da Task.

 

Daily Task System: É um sistema que desenvolvi para que os jogadores sempre estejam se comunicando com o npc de Task, no caso da Task Diaria, vária de acordo com o level do jogador, por exemplo:

 

Jogadores entre level 6 ao 49 poderá cair em uma dessas 3 Task Diarias: Orcs, Tarantulas ou Wyverns

Jogadores entre level 50 ao 79 poderá cair em uma dessas 3 Task Diarias: Dragons, Wailing Widows ou Ancient Scarabs

 

E por ai vai, claro que você poderá aumentar as Task Diarias dependendo do level, eu fiz 3 para cada level que é pra postar, mas tudo isso você pode aumentar! Dependendo do seu servidor.

 

E sim, você pode fazer a TASK "ORIGINAL" e a TASK "DIARIA" ao mesmo tempo! Ambas são distintas e possuem Rewards diferenciadas!

 

No caso da Task diaria, levando em conta que você começou a fazer ela no dia 08/01 ás 20:00 Hrs, você tem até o dia 09/01 ás 20:00Hrs para termina-la e receber a recompensa, caso termine antes, a Task diaria só irá ficar disponível para repetição a partir desta mesma data 09/01 20:00 Hrs;

 

[+] Caso você não termine a tempo, não tem problema, basta esperar este horário e começar uma nova Task.

[+] Caso você começou a Daily Task e terminou antes desta data. mas por algum motivo esqueceu de entregar e a mesma passou do prazo, não tem importância, caso você tenha matado todos os monstros até 09/01 20:00 Hrs, você poderá entregar está Task em qualquer horário para receber suas Rewards e começar uma task a partir do momento em que você entregou! (INJUSTIÇA AQUI NÃO CARALHO).

 

[+] Comandos Adicionais [+]

 

/task -- Mostra as informações da sua Task Atual, como Nome da Task, Level, Rewards, Monstros que você poderá matar, Se tem que entregar algum Item junto, etc...

/task daily -- É basicamente mostra a mesma informação da Task Principal, porém mostra também qual o prazo limite para entrega da task.

/task counter -- É um comando que ATIVA ou DESATIVA o contador de monstros mortos na task no seu Channel.

 

[+] Imagens [+]

 

Cline neste link para ver algumas imagens da Task : http://imgur.com/a/eLIY3

 

 

 

------------------------------------------------ // --------------------------------------------------------------

 

[+] Instalação do Sistema [+]

 

Requisitos: Nível Médio de conhecimento em scripting LUA

 

Pasta Mods

 

Simple Task.xml

 

https://pastebin.com/raw/P5hqMC3j

 

NPC:

 

 

Ludger.xml

 

https://pastebin.com/raw/R56yLWHw

 

simple_task.lua

 

https://pastebin.com/raw/1mRzJ6aJ

 

---------------------------------------------- // ----------------------------------

 

[+] configuração [+ ]

 

Task System Principal

 


task_sys = {
	[1] = {name = "Trolls", start = 176201, monsters_list = {"Troll","Troll champion"}, level = 8, count = 40, points = 0, items = {}, reward = {}, exp = 2000, money = 2000}
}

 

[1]  --> O número entre os colchetes [] significa a ordem da Task, como a Task é por progresso sempre começará no 1 e irá pro [2], assim sucessivamente.

name --> É o nome da task que o jogador irá fazer.

start --> é a storage que indicará se o jogador começou a Task

monster_list ={} --> É o nome dos monstros em que o jogador deverá caçar para completar a Task

level --> É o level necessário para dar inicio á Task

count --> É o número de monstros que o jogador tem que matar para completar a Task

points --> Aqui determinada quantos Task points o jogador irá receber ao completar a Task

items = {} --> Aqui determinada se além de matar os monstros, o jogador terá que entregar item também! Caso tenha só colocar o {ITEM_ID, QUANTIDADE} EX:


items = {{2173,1},{2160,10},{2493,2}}

rewad --> Aqui determinada se o jogador irá receber itens ao terminar a Task, mesma formula do items /\


reward = {{2520,1},{2173,1}}

exp --> Se o jogador irá receber Exp ao terminar a task. 0 ou quantidade de exp

Money --> Se o jogador irá receber dinheiro ao terminar a task. 0 ou quantidade de dinheiro

 

 

Daily Task System

 


daily_task = {
	[1] = {name = "Orcs" ,monsters_list = {"Orc Berserker","Orc Rider","Orc Leader","Orc Warlord"}, count = 100, points = 0, reward = {}, exp = 5000, money = 10000}
}

 

Segue o padrão da Task original, exceto que não precisa entregar items para o npc!

 

Como funciona A randomização de level de acordo com a Daily task?

 

Procure por está tabela em MODS

 


	local t = {
		[{6,49}] = {1,3},
		[{50,79}] = {4,6},
		[{80,129}] = {7,9},
		[{130,math.huge}] = {10,12}
	}

 

entre as chaves e colchetes é o level do jogador para as Daily Task, Você pode adicionar quantas você quiser!

 

Digamos que:

 

[{6,49}] = {1,3}  --> Quer dizer que entre o level 6 ao 49 o jogador poderá cair na Daily Task número 1(Orcs), 2(Tarantulas) ou 3(Wyvern)!

[{50,79}] = {4,6} --> Quer dizer que entre o level 50 ao 79 o jogador poderá cair na Daily Task número 4(Dragons), 5(Wailing Widows) ou 6(Ancient Scarabs)!

...

[{130,math.huge}] = {10,12} --> Quer dizer que o jogador level 130 ou MAIS poderá cair na Daily Task número 10(Undead Dragons), 11(HydraS) ou 12(Ghastly Dragons)!

 

 

Look Rank System

Procure por está tabela em MODS

 


	local ranks = {
		[{1, 20}] = "Huntsman", 
		[{21, 50}] = "Ranger",
		[{51, 100}] = "Big Game Hunter",
		[{101, 200}] = "Trophy Hunter",		
		[{201, math.huge}] = "Elite Hunter"
	}

 

Entre 1-20 Task points o Rank será Huntsman

Entre 21-50 Task posints o Rank será Ranger

Entre 51-100 Task Points o rank será Big Game Hunter

etc...

Altere como quiser!

 

 

 

Em 11/01/2017 em 12:10, Vodkart disse:

 

UÉ, não foi o que? não contou o monstro? emtão você que fez alguma coisa de errado ou instalou errado, era para contar os monstros sim além disso acho que funfa na tua versão sim! chegou as storages para ver se não tem nd de errado? pode ser que ja esteja sendo usada. Foi no npc? tais matando os monstro daquela lista?

 

Link para o post
Compartilhar em outros sites
Em 21/07/2020 em 21:38, Rogeriok disse:

Hey man, como eu posso solucionar esse erro?

  Ocultar conteúdo


[Error - NpcScript Interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:20: attempt to index global 'tasktabble' (a nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:20: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:459: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple_task.lua:8>

[Error - NpcScript Interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:20: attempt to index global 'tasktabble' (a nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:20: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:459: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple_task.lua:8>

[Error - NpcScript Interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:20: attempt to index global 'tasktabble' (a nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:20: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:459: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple_task.lua:8>

[Error - NpcScript Interface]
data/npc/scripts/simple_task.lua:onCreatureSay
Description:
data/npc/scripts/simple_task.lua:20: attempt to index global 'tasktabble' (a nil value)
stack traceback:
        data/npc/scripts/simple_task.lua:20: in function 'callback'
        data/npc/lib/npcsystem/npchandler.lua:459: in function 'onCreatureSay'
        data/npc/scripts/simple_task.lua:8: in function <data/npc/scripts/simple_task.lua:8>

 

eu tbm to plis!!

Link para o post
Compartilhar em outros sites
  • 2 months later...
12 horas atrás, mjokreaxasa disse:

tenho mismo problema cuando falo !task

 

Possivelmente algo na tabela está errado, ai á esse erro... Você tem que me enviar pelo pastebin o seu mods editado para mim olhar.

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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.


  • Conteúdo Similar

    • Por luanluciano93
      Olá pessoal, estou desenvolvendo esse sistema vip para TFS 1.x, se precisarem de alguma função nova é só comentar, criei para usar em um servidor meu e resolvi postar, bom proveito a todos.
       
      É só ir no arquivo data/lib/core/player.lua e adicionar esse código no começo do script:
      -- ALTER TABLE `accounts` ADD `vip_time` BIGINT(20) NOT NULL DEFAULT 0; -- player:getVipTime() function Player.getVipTime(self) local resultId = db.storeQuery("SELECT `vip_time` FROM `accounts` WHERE `id` = '".. self:getAccountId() .."';") local time = resultId ~= false and result.getNumber(resultId, "vip_time") or 0 result.free(resultId) return time end -- player:isVip() function Player.isVip(self) return self:getVipTime() > os.time() and true or false end -- player:addVipDays(days) function Player.addVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVipDays(days) function Player.removeVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:setVipDays(days) function Player.setVipDays(self, days) return db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVip() function Player.removeVip(self) db.query("UPDATE `accounts` SET `vip_time` = '0' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:sendVipDaysMessage() function Player.sendVipDaysMessage(self) if self:isVip() then local vipTime = self:getVipTime() - os.time() local vipDays = 1 + (math.floor(vipTime / 86400)) return self:getVipTime() ~= false and self:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You have '.. vipDays .. ' vip day(s) in your account.') end end -- player:checkVipLogin() function Player.checkVipLogin(self) if self:getVipTime() > 0 and not self:isVip() then return self:removeVip() and self:teleportTo(self:getTown():getTemplePosition()) end end  
       
      As funções são:
      • player:getVipTime() - Retorna o valor da tabela vip_time (igual esta na database).
      • player:isVip() - Retorna se o player é vip ou não.
      • player:addVipDays(days) - Usa-se em algum script para para adicionar dias de vip ao player (parâmetro de entrada "days").
      • player:removeVipDays(days) - Usa-se em algum script para para remover dias de vip do player (parâmetro de entrada "days").
      • player:setVipDays(days) - Usa-se em algum script para para mudar os dias de vip do player (parâmetro de entrada "days").
      • player:removeVip() - Usa-se em algum script para para remover todo tempo de vip do player.
      • player:sendVipDaysMessage() - Retorna uma mensagem no player mostrando os dias de vip que ainda restam ao player.
      • player:checkVipLogin() - Checa se a vip do player acabou, se sim teleporta ele para o templo.
       

      Qualquer dúvida ou erro/bug poste aqui.
    • Por Killua
      Como funciona?
      A cada monstro que vc mata, seus itens equipados ganham 1 de exp. Quando seus itens chegarem às quantidades de exp definidas, eles upam e ficam com o nome assim: Demon Helmet + 1. Helmets, armors, legs, e boots recebem 1 de arm a cada vez que upam. Armas recebem 1 de ataque e escudos 1 de defesa.
       
      Para o monstro contar, ele deve dar um mínimo de exp (definido no script). O número de exp a que me refiro é aquele um presente no arquivo .xml.
       
      Para instalar, crie Killua Items Upgrade.lua em data/creaturescripts/scripts e coloque:
        Em data/creaturescripts/creaturescripts.xml coloque essas duas tags:
      <event type="kill" name="Item level" event="script" value="Killua Items Upgrade.lua"/> <event type="login" name="Item levell" event="script" value="Killua Items Upgrade.lua"/> Configurando: Na tabela table_of_slots, coloque em quais slots os itens upam.
      min_exp é a experiência mínima que o monstro deve ter para contar exp para o item. Se vc colocar 500, somente os monstros que tem exp igual ou superior a 500 no arquivo.xml vão valer.
      exp_levels são os valores de exp que os itens devem atingir para upar. No meu caso, quando o item alcançar 50 de exp, ele upa para o level 1. Quando alcançar 50 de exp, upa para o level 2 e assim por diante.
    • Por Sekk
      Bom, procurei esse Castle por MUITO TEMPO, mas não achei em NENHUM LUGAR DA INTERNET. Ontem, eu estava vendo alguns mapas do @Deathrocks, e vi nos prints, que o mapa possuia o evento que eu queria!
       
      Então baixei o mapa e extrai o evento, então venho lhes trazer!
       
       
      Nome: Castle 24H
      Cliente: 8.6
      Versão TFS: 0.4
      Tipo: Evento
       
      Bom, para começar, vamos em actions/scripts e crie 2 arquivos:
       
      castledoor1.lua
       
      castlewar1.lua
       
        Agora em actions.xml adicione as tags:
       
      Agora em monster/traps crie 3 arquivos:
       
      porta.xml
       
      protectcastle.xml  
      statue.xml  
      Agora em monsters.xml adicione as tags:    
      Vamos para movements/scripts e crie 2 arquivos:
       
      castlewar2.lua
       
      level.lua  
      Agora em movements.xml adicione as tags:  
       
      Pronto. Agora você só precisa baixar o mapa, inserir o mesmo ao seu servidor, configurar os teleports, e as hunts dentro do castle etc.
       
      PRINTS:
      1ª parte
       
      2ª parte:
       
      Obs.: Todos os ActionID e monsters já estão no mapa! Você só precisa configurar as coordenadas dos teleports, e o que possui no castle!
       
      Obs².: Tudo o que você pode configurar, já está escrito em cada script!
       
       
      Créditos:
      @DeathRocks
      PC98
      mapa.rar
    • Por gpedro
      Testado: MySQL & SQLite
      Distro: TFS 0.4_SVN & TFS 0.3.6

      MySQL

      ALTER TABLE `players` ADD `resets` INT(11) NOT NULL DEFAULT "0"; SQLite ALTER TABLE players ADD resets INTEGER not null default 0 Adicionando nas sources player.h procure por: uint32_t level; logo abaixo, adicione: uint32_t resets; iologindata.cpp procure por query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`," substitua por: query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`, `resets`, " procure por player->level = std::max((uint32_t)1, (uint32_t)result->getDataInt("level")); logo abaixo adicione: player->resets = (uint32_t)result->getDataInt("resets"); procure por query << "`maglevel` = " << player->magLevel << ", "; logo abaixo adicione: query << "`resets` = " << player->resets << ", "; players.cpp procure por: s << " (Level " << level << ")"; substitua por: s << " (Level " << level << ") [Reset " << resets << "]"; players.h procure por: void setPromotionLevel(uint32_t pLevel); logo abaixo adicione: uint32_t getResets() { return resets;} void setResets(int32_t amount) { resets += amount; if (resets < 0) {resets = 0;} } luascript.cpp para 0.3.6 static int32_t luaDoPlayerSetIdleTime(lua_State* L); logo abaixo adicione: static int32_t luaGetResets(lua_State* L); static int32_t luaSetResets(lua_State* L); talkactions.xml <talkaction words="!rank;/rank" event="script" value="ranks.lua"/> <talkaction words="!reset;/reset" script="reset.lua"/> ranks.lua
      Créditos: Dark Skyllen, Marcryzius, Mock, Kydrai, Cykotitan, gpedro*.
      * adaptação para 0.4
    • Por VitorSubhi
      Apresentação: Olá galera do Tibia King, este é meu primeiro tutorial que desenvolvo após anos apenas sugando da comunidade, chegou a hora de compartilhar um pouco de conhecimento, rsrs...
      Após ver que muitos usuários tinham interesse em um sistema de Trade de Points in-game resolvi trazer um sistema totalmente completo para vocês.
       
      Funcionamento:
      Player 1 após adquirir os Points, pode iniciar uma negociação com o Player 2 através do comando /tradepoints Player 2, Quantidade. Será aberto uma Janela de Trade com o item referente aos Points. Após ambos aceitarem a negociação será realizado a troca de Points pelo item requisitado.
      Observações:
      Necessário ter acesso às Sources de sua Distro. Testado em servidor 8.6 (The Forgotten Server 0.4). Antes que venham falar que possui sistemas parecidos, veja o diferencial (Item não aparece em nenhum inventário, e não é necessário usar/comprar qualquer item).  
      Algumas Imagens:
       
      Instalação:
      Sources > Luascript.cpp Sources > Luascript.cpp Sources > Luascript.h  
       
      Server > Data > Lib > 050-function Server > Data > Creaturescripts > Scripts >Trade_Orbs.lua Server > Data > Creaturescripts > Creaturescripts.xml Server > Data > Creaturescripts > Scripts > Login.lua Server > Data > Talkactions > Scripts > Points_Trade.lua Server > Data > Talkactions > Talkactions.xml Créditos:
      Todo o sistema foi feito completamente por mim: Vítor Subhi.
      The Forgotten Server (Pelas Sources)
      Vodkart, White Wolf, Natanael Beckman, e a todos os demais membros do TK que não lembro o nome, que contribuíram indiretamente através de seus tutoriais.
       
       
       
       
       

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo