Ir para conteúdo

Posts Recomendados

Informações:

  • Tasks adquiridas ou canceladas em NPC
  • As tasks podem ser feitas repetidas vezes, mas somente uma vez por dia e apenas uma de cada vez (tempo configurável)
  • Comando para acompanhar o andamento da task
  • Atualização (31/08/13) > agora é possível ganhar itens a cada vez que a task é terminada
  • Atualização (05/09/13) > VÁRIOS bugs corrigidos e algumas novas opções adicionadas
  • Agora você pode escolher se quer que as tasks sejam feitas por level ou na ordem
  • Recomendo a todos os que baixaram alguma versão anterior que atualizem

 

Códigos:

 

Tags:

Em creaturescripts.xml, adicione:

<event type="kill" name="Tasks" script="taskkill.lua"/>

Em talkactions.xml, adicione:

<talkaction words="!countkills" event="script" value="countkills.lua"/>

No arquivo creaturescripts/scripts/login.lua, adicione:

registerCreatureEvent(cid, "Tasks")

Scripts:

  • Crie um arquivo tasklib.lua em lib

 

  Mostrar conteúdo oculto

 

  • Crie um arquivo countkills.lua e adicione em talkactions/scripts

 

  Mostrar conteúdo oculto

 

 

  • Crie um arquivo taskkill.lua em creaturescripts/scripts

 

  Mostrar conteúdo oculto

 

  • Crie um arquivo NomedoNPC.xml em npcs

 

  Mostrar conteúdo oculto

 

  • Crie um arquivo tasks.lua em npcs/scripts

 

  Mostrar conteúdo oculto

 

 

Configuração:

 

É feita toda no tasklib.lua:

 

Configuração dos monstros:

taskmonsters ={[1] = {'rotworm', killstotal = 100},[2] = {'cyclop','cyclops','cyclops smith','cyclops drone', killstotal = 100},[3] = {'dragon','dragon lord','frost dragon', killstotal = 100}}

 - O [número] deve seguir a ordem

 - A primeira parte deve ser o nome dos monstros da task no singular. Por isso existem 'cyclop' (singular) e 'cyclops' (nome do monstro)

 - Os nomes de todos os monstros de cada task devem aparecer. Por exemplo, na task de cyclops, qualquer tipo deles servirá para completar a task.

 - killstotal é a quantidade de monstros que você deve matar para terminar a task.

 

Configuração das recompensas:

taskreward = -- em gps{[1] = {money = 5000,xp = 20000, points = 3}, -- nenhum item será adicionado e 3 pontos de task serão adicionados[2] = {money = 10000,xp = 50000, item = 2458}, -- 1 item(2458) será adicionado e nenhum ponto de task[3] = {money = 20000,xp = 75000,item = 2458,amount = 2, points = 5} -- aqui serão adicionados 2 itens com id 2458 (se ele for amontoável - stackable) e 5 pontos de task}

 - O [número] deve ter a mesma ordem dos monstros

 - money é a quantidade de dinheiro que cada um ganha ao terminar a task correspondente

 - xp é a quantidade de experiência ganha ao terminar a task correspondente

 - item é o ID do item que ganha ao terminar a task correspondente

 - points significa quantos pontos de task o personagem irá ganhar quando terminar a task correspondente

 

Adicionando novos monstros:

 - Vou explicar com um exemplo de como adicionar uma task de hydra/serpent spawn

No taskmonsters: (REPARE NA VÍRGULA QUANDO ADICIONEI UMA NOVA LINHA!)

taskmonsters ={[1] = {'rotworm', killstotal = 100},[2] = {'cyclop','cyclops','cyclops smith','cyclops drone', killstotal = 100},[3] = {'dragon','dragon lord','frost dragon', killstotal = 100},[4] = {'hydras e serpent spawn','hydra','serpent spawn',killstotal = 200}}

No taskrewards:

taskreward = -- em gps{[1] = {money = 5000,xp = 20000, points = 3}, -- nenhum item será adicionado e 3 pontos de task serão adicionados[2] = {money = 10000,xp = 50000, item = 2458}, -- 1 item(2458) será adicionado e nenhum ponto de task[3] = {money = 20000,xp = 75000,item = 2458,amount = 2, points = 5}, -- aqui serão adicionados 2 itens com id 2458 (se ele for amontoável - stackable) e 5 pontos de task[4] = {money = 30000, xp = 5000, item = 2450, amount = 1, points = 3}}

Agora na função doStartTask(cid) - somente se quiser que as tasks sejam feitas por level -

 

  Mostrar conteúdo oculto

 

O que aconteceu:

 - Antes até o lvl 20 o jogador recebia a task dos rotworms, até o lvl 50, a task dos cyclops e daí pra frente, task dos dragons.

 - As tasks iniciais são as mesmas, mas até o lvl 80 é a task dos dragons e daí pra frente, o jogador receberá a task das hydras e serpent spawns.

 

Considerações finais:

 

O sistema de pontos apenas adiciona e checa a quantidade de pontos: você deve escolher se quer adicionar alguma coisa a partir deles.

Testei profundamente e corrigi todos os erros que encontrei, postem se encontrarem mais algum, enviem o log do erro que farei o possível para consertar.

Link para o comentário
https://xtibia.com/forum/topic/220239-omega-task-v10/
Compartilhar em outros sites

Opa! Muito obrigado por atender meu pedido! Por enquanto não tenho como testar, esperarei a galera testar e dizer como está.

Assim que for liberado Rep+ de hoje eu lhe darei Rep+, muito obrigado!

 

Edit: É possível colocar item como recompensa também?

Editado por Hudsin
Link para o comentário
https://xtibia.com/forum/topic/220239-omega-task-v10/#findComment-1555912
Compartilhar em outros sites

  Em 30/08/2013 em 11:29, Hudsin disse:

Opa! Muito obrigado por atender meu pedido! Por enquanto não tenho como testar, esperarei a galera testar e dizer como está.

Assim que for liberado Rep+ de hoje eu lhe darei Rep+, muito obrigado!

 

Edit: É possível colocar item como recompensa também?

 

Para adicionar itens, você faz o seguinte:

Substitua a função doRewardTask(cid) no tasklib.lua por essa aqui

function doRewardTask(cid)
	local monster = getPlayerStorageValue(cid,taskstg.monster)
	local reward = taskreward[monster]
	if reward.item and reward.amount then
		doPlayerAddItem(cid,reward.item,reward.amount)
	end
	if monster and reward then
		doPlayerAddMoney(cid,reward.money)		
		doPlayerAddExperience(cid, reward.xp)
		return true
	end
	return false
end

E a configuração no taskrewards fica:

taskreward = -- em gps
{
[1] = {money = 5000,xp = 20000}, -- nenhum item será adicionado
[2] = {money = 10000,xp = 50000}, -- nenhum item será adicionado
[3] = {money = 20000,xp = 75000,item = 2458,amount = 1} -- aqui será adicionado 1 item com id 2458
}
Link para o comentário
https://xtibia.com/forum/topic/220239-omega-task-v10/#findComment-1556106
Compartilhar em outros sites

  Em 31/08/2013 em 04:30, jonathasbizerril disse:

Omega tem como trocar as recompensar de cada task?

 

 

  Mostrar conteúdo oculto

 

 

É disso que você tá falando? Se for de grana, tem na configuração. Se não for essa a dúvida, explique melhor.

Link para o comentário
https://xtibia.com/forum/topic/220239-omega-task-v10/#findComment-1556387
Compartilhar em outros sites

  Em 31/08/2013 em 05:08, jonathasbizerril disse:

é isso mesmo mais eu quero que só possa fazer a task 1 vez por char tem como?

 

Cara, até tem, mas eu teria que refazer boa parte dos códigos. Dá uma olhada nessa task pra ver se não é melhor pro que você quer:

http://www.xtibia.com/forum/topic/151636-simple-task-30/

 

Tem vários tipos de task postadas aqui, cada uma com suas peculiaridades. A minha pode ser repetida, a do Vodkart é muito mais completa, mas não pode repetir e não tem configuração de tempo, a do Roksas não tem npc, é direto pelo comando e fica aparecendo mensagens conforme você progride na task.

 

Enfim, escolhe qual é a melhor opção pra você. Varia para cada um.

 

EDIT: se mesmo assim você ainda preferir a minha task, eu tiro um tempo pra ajeitar depois.

Editado por omega blueheaven
Link para o comentário
https://xtibia.com/forum/topic/220239-omega-task-v10/#findComment-1556391
Compartilhar em outros sites

Ta obrigado vou testa essa que você me mandou tentar configurar se não de certo posto aqui pra você ajeitar a sua mesmo ta? Obrigado por me ajudar!

 

Mais só me tirar uma duvida dessa que você me mando como faço pra cada 1 dar um item diferente?

Editado por jonathasbizerril
Link para o comentário
https://xtibia.com/forum/topic/220239-omega-task-v10/#findComment-1556393
Compartilhar em outros sites

  Em 31/08/2013 em 06:47, jonathasbizerril disse:

Ta obrigado vou testa essa que você me mandou tentar configurar se não de certo posto aqui pra você ajeitar a sua mesmo ta? Obrigado por me ajudar!

 

Mais só me tirar uma duvida dessa que você me mando como faço pra cada 1 dar um item diferente?

Para alterar o item de recompensa ou a quantidade:

Onde tem:

item = ID do item

amount = Quantidade

 

Ai vc pode alterar o id do item ou adicionar essa parte, para alem do money e xp, tambem dar algum item:

item = 2458, amount = 1

Nas recompensas

[1] [2] [3]

Ou adicionar mais recompensas. Nesse exemplo, o item adicionado corresponde à recompensa [4]:

 

Note a nova linha [4] = {money = 30000 xp = 85000 item = xxxx amount = 1}

Essa linha foi adicionada em tasklib.lua:

 

  Mostrar conteúdo oculto

 

 

Depois, para adiocionar a nova missão, nessa parte:

 

  Mostrar conteúdo oculto
Editado por Hudsin
Link para o comentário
https://xtibia.com/forum/topic/220239-omega-task-v10/#findComment-1556442
Compartilhar em outros sites

Eu tenho um problema com o:

  • Crie um arquivo countkills.lua e adicione em talkactions/scripts
function onSay(cid, words, param, channel)
	local monster, permission = getPlayerStorageValue(cid,taskstg.monster), getPlayerStorageValue(cid,tasksg.permission)
	local kills, killstotal = getPlayerStorageValue(cid,taskstg.kills), getPlayerStorageValue(cid,taskstg.killstotal)
	if monster == -1 or monster == 0 then
		doPlayerSendTextMessage(cid,27,'Voce nao tem nenhuma task ativa.')
	else
		local left = kills - killstotal
		if left <= 0 then
			doPlayerSendTextMessage(cid,27,'Voce ja matou monstros suficientes para terminar sua task.')
		else
			doPlayerSendTextMessage(cid,27,'Andamento da sua task de '..taskmonsters[monster][1]..'s -> ['..kills..'/'..killstotal..']')
		end
	end
	return true
end

Eu já criado e colocado tudo, mas quando eu digo que o comando !countkills no servidor eu recebo um erro:

[Error - TalkAction Interface] 
data/talkactions/scripts/countkills.lua:onSay
Description: 
data/talkactions/scripts/countkills.lua:2: attempt to index global 'tasksg' (a nil value)
stack traceback:
data/talkactions/scripts/countkills.lua:2: in function <data/talkactions/scripts/countkills.lua:1>

Eu uso o servidor:

 

Pokemon Dash Advanced (1.0), last compiled at Jan 11 2012.
Credits to all TFS team (Elf, slawkens, Talaturen, Lithium, KaczooH, Kiper, Kornholijo).
PokemonDistro made by mastercraft/brun123.
Link para o comentário
https://xtibia.com/forum/topic/220239-omega-task-v10/#findComment-1557024
Compartilhar em outros sites

  Em 01/09/2013 em 15:30, omin disse:

 

  Mostrar conteúdo oculto

 

Não é problema com a sua distro, não. O nome da variável é taskstg, não tasksg. Eu devo ter escrito errado. Se der algum outro desse erro, é só substituir por taskstg.

Link para o comentário
https://xtibia.com/forum/topic/220239-omega-task-v10/#findComment-1557208
Compartilhar em outros sites

Estou aqui mais uma vez eu gostei muito do scripit fui por no meu servidor mais deu tudo certo mais quando vou no npc falo nova task ai falo comando !countkills

sem matar nenhum mostro ele diz: 23:25 Voce ja matou monstros suficientes para terminar sua task.

 

também está dando esse erro na distro

 

 

  Mostrar conteúdo oculto

 

Editado por jonathasbizerril
Link para o comentário
https://xtibia.com/forum/topic/220239-omega-task-v10/#findComment-1558004
Compartilhar em outros sites

  Em 04/09/2013 em 02:27, jonathasbizerril disse:

Estou aqui mais uma vez eu gostei muito do scripit fui por no meu servidor mais deu tudo certo mais quando vou no npc falo nova task ai falo comando !countkills

sem matar nenhum mostro ele diz: 23:25 Voce ja matou monstros suficientes para terminar sua task.

 

também está dando esse erro na distro

 

 

  Mostrar conteúdo oculto

 

 

Cara, esse erro não vem do meu script, não.

Huum, agora o erro do !countkills pode ser problema no jeito que você configurou. Vê se tá certo lá no killstotal dos monstros que você adicionou. Se quiser resetar na mão, usa esses comandos com o GOD:

/storage nome_do_jogador, 3451, -1 -- storage de kills
/storage nome_do_jogador, 3452, -1 -- storage de permissão / tempo pra fazer a task
/storage nome_do_jogador, 3453, -1 -- storage do total de monstros que você tem que matar
/storage nome_do_jogador, 3454, -1 -- storage do monstro que você tem que matar

Aí você resetou o sistema de tasks. Confere lá a sua configuração, se ficou certinha mesmo, porque o que o script faz é adicionar um valor de storage pra quantidade total, aí compara com outro storage com a quantidade que você matou. Se você tiver configurado errado, o NPC vai colocar o valor errado como total, dando esse erro aí.

 

Pra ver onde é o erro, vai usando

/storage nome_do_jogador, 345N
N variando de 1 a 4, como acima

Vê se os valores estão acertados.

Link para o comentário
https://xtibia.com/forum/topic/220239-omega-task-v10/#findComment-1558026
Compartilhar em outros sites

×
×
  • Criar Novo...