Ir para conteúdo

Omega Task v1.0


Omega

Posts Recomendados

Agora está pegando mais porque ta assim

 

01:39 Andamento da sua task de dragons -> [2/-1]

01:41 Andamento da sua task de dragons -> [102/-1] mas o maximo é 100

Obs: usei todos comandos ai em cima que você mandou

 

@Omega Blueheaven você tem skype ou algum meio de rede social pra nós trocar uma ideia?

Editado por jonathasbizerril
Link para o comentário
Compartilhar em outros sites

Então, cara, é porque não tá adicionando o storage como deveria... Você editou alguma coisa?

Como o resto tá funcionando, verifique se todos os killstotal estão escritos como devem e se não tem nenhum erro no executável (se tiver, posta aqui)

Esse erro daí só pode estar em dois lugares:

Na função doStartTask(cid) ou na configuração dos monstros, onde tem os nomes e killstotal. É onde o script muda o storage que deveria representar o total de monstros que devem ser mortos.

 

Quando você usou /storage nome_do_jogador, 3453, aparece -1 mesmo?

Link para o comentário
Compartilhar em outros sites

Eu peguei tudo no crtl c e crtl v só troque aqui que você mesmo mandou

 

 

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,item = 2458,amount = 1}, -- nenhum item será adicionado
[2] = {money = 10000,xp = 50000,item = 2459,amount = 1}, -- 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
Compartilhar em outros sites

Tenta isso

 

 

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

 

 

Link para o comentário
Compartilhar em outros sites

Erro na distro

 

 

[04/09/2013 18:39:41] [Error - TalkAction Interface]
[04/09/2013 18:39:41] data/talkactions/scripts/countkills.lua:onSay
[04/09/2013 18:39:41] Description:
[04/09/2013 18:39:41] data/talkactions/scripts/countkills.lua:2: attempt to index global 'tasksg' (a nil value)
[04/09/2013 18:39:41] stack traceback:
[04/09/2013 18:39:41] data/talkactions/scripts/countkills.lua:2: in function

 

 

mais eu já ajeitei @Omega você pode arrumar outro scrpit pra mim?

Editado por jonathasbizerril
Link para o comentário
Compartilhar em outros sites

Erro na distro

 

 

[04/09/2013 18:39:41] [Error - TalkAction Interface]

[04/09/2013 18:39:41] data/talkactions/scripts/countkills.lua:onSay

[04/09/2013 18:39:41] Description:

[04/09/2013 18:39:41] data/talkactions/scripts/countkills.lua:2: attempt to index global 'tasksg' (a nil value)

[04/09/2013 18:39:41] stack traceback:

[04/09/2013 18:39:41] data/talkactions/scripts/countkills.lua:2: in function

 

 

mais eu já ajeitei @Omega você pode arrumar outro scrpit pra mim?

 

Se não for relativo ao tópico, me passa por PM que eu tento.

Link para o comentário
Compartilhar em outros sites

omega blueheaven :

É possível você alterar uma parte desse script para mim?

Gostaria que você colocasse na parte dos kills uma coisa bem maneira que só vai ajudar a melhorar a vida dos players!

Para que todos não fiquem toda hora executando o comando !countkills para saber a quantidade que está no momento, poderias incluir uma mensagem de quando a task está completa e liberada para ir até o npc resgatar o gold e a EXP?

Sei que tem alguns scripts por ai que aparece esse tipo de mensagem mais os que eu testei eles ficam aparecendo a cada mob que matamos, isso encomoda alem de ficar um baita spam na tela.

Criando uma mensagem so pra mostrar o fim da task que foi completada já ficaria de bom grado!


Aguardo sua resposta!

By [ADM] Floripa
http://floripa.servegame.com/


Consegui fazer funcionar com 10 tipos de task diferentes, cada uma com 10 monstros diferentes para completar a mesma task. Cada task possui uma certa quantidade de pontos que o player ganha ao completar a task porém como o player pode visualizar a quantidade toral de pontos?

 

Tens algum script que possa sei lá, usar um comando que abra uma janela mostrando um rank desses pontos?
Isso tem que ser mysql não é, é possível então criar uma página em .php para esse systema mostrando a quantidade de pontos?

Editado por phowtaks
Link para o comentário
Compartilhar em outros sites

omega blueheaven :

É possível você alterar uma parte desse script para mim?

 

Gostaria que você colocasse na parte dos kills uma coisa bem maneira que só vai ajudar a melhorar a vida dos players!

 

Para que todos não fiquem toda hora executando o comando !countkills para saber a quantidade que está no momento, poderias incluir uma mensagem de quando a task está completa e liberada para ir até o npc resgatar o gold e a EXP?

 

Sei que tem alguns scripts por ai que aparece esse tipo de mensagem mais os que eu testei eles ficam aparecendo a cada mob que matamos, isso encomoda alem de ficar um baita spam na tela.

 

Criando uma mensagem so pra mostrar o fim da task que foi completada já ficaria de bom grado!

 

 

Aguardo sua resposta!

By [ADM] Floripa

http://floripa.servegame.com/

Consegui fazer funcionar com 10 tipos de task diferentes, cada uma com 10 monstros diferentes para completar a mesma task. Cada task possui uma certa quantidade de pontos que o player ganha ao completar a task porém como o player pode visualizar a quantidade toral de pontos?

 

Tens algum script que possa sei lá, usar um comando que abra uma janela mostrando um rank desses pontos?

Isso tem que ser mysql não é, é possível então criar uma página em .php para esse systema mostrando a quantidade de pontos?

 

O do rank eu consigo fazer, mas de php eu não saco ainda =/

 

EDIÇÃO:

Segue o script do rank:

 

 

function onSay(cid, words, param)
	local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 3456 and `value` > 0")
	if query:getID() == -1 then
		return true
	end
	local players = {}
	local points = {}
	local str = ""
	local j = 1
	repeat
		str = "TASK RANK\n"
		str = str..""..getPlayerNameByGUID(query:getDataInt("player_id")).." ["..query:getDataInt("value").."]\n"
		j = j + 1
	until not query:next() or j >= 10
	doPlayerPopupFYI(cid, str)
	return true
end

 

 

TAG no talkactions.xml:

<talkaction words="!taskrank" event="script" value="taskrank.lua"/>
Editado por omega blueheaven
Link para o comentário
Compartilhar em outros sites

Olha cara a intenção foi boa, mais aqui não está abrindo nada, não está dando nenhum erro no distro quando executo o comando !taskrank e nenhuma mensagem de erro no game também!

 

Chegasse a testar?

 

Posta a foto do script funcionando em game ai!

 

Vlw!

Link para o comentário
Compartilhar em outros sites

hmm vou testar, deposi comento pra ver!


hmm vou testar, deposi comento pra ver!

Precisa de alguma tabela na database pra salvar esses pontos não?

Porque fiz a task com dois players diferentes e não está aparecendo nada!

Link para o comentário
Compartilhar em outros sites

function onSay(cid, words, param)
	local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..taskstg.points.." and `value` > 0")
	if query:getID() == -1 then
		doPlayerSendTextMessage(cid, 27, 'Nao foram encontrados jogadores com task points.')
		return true
	end
	local players = {}
	local points = {}
	local str = ""
	local j = 1
	local str = "TASK RANK\n\n"
	repeat		
		str = str.."{"..j.."} "..getPlayerNameByGUID(query:getDataInt("player_id")).." ["..query:getDataInt("value").."]\n"
		j = j + 1
	until not query:next() or j >= 10
	doPlayerPopupFYI(cid, str)
	return true
end

Cara, fiz só algumas modificações pra melhorar, mas o problema é que você tem que dar logout pra salvar os storages. Depois aparece.

Link para o comentário
Compartilhar em outros sites

function onSay(cid, words, param)
	local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..taskstg.points.." and `value` > 0")
	if query:getID() == -1 then
		doPlayerSendTextMessage(cid, 27, 'Nao foram encontrados jogadores com task points.')
		return true
	end
	local players = {}
	local points = {}
	local str = ""
	local j = 1
	local str = "TASK RANK\n\n"
	repeat		
		str = str.."{"..j.."} "..getPlayerNameByGUID(query:getDataInt("player_id")).." ["..query:getDataInt("value").."]\n"
		j = j + 1
	until not query:next() or j >= 10
	doPlayerPopupFYI(cid, str)
	return true
end

Cara, fiz só algumas modificações pra melhorar, mas o problema é que você tem que dar logout pra salvar os storages. Depois aparece.

 

 

 

Está aparecendo essa mensagem agora!

 

Sem_t_tulo.png

Eu fiz o que vc pensou ser, mais nao deu certo, fiz a task de rotworm com um lvl 30 e entreguei, recebi o item e a xp que configurei no script e dei exit e loguei novamente para salvar o storage, mais não aparece nenhuma janela de rank!

 

Lembrando novamente que tenho um server 8.6 com TFS 0.4!

Link para o comentário
Compartilhar em outros sites

Cara, testei isso no meu servidor 8.6. Tá funcionando, copiei e colei o script que eu te passei. Revisa a instalação e vê se tem points na sua tasklib.lua.

Se ainda assim não funcionar, tenta trocar

"..taskstg.points.."

Pelo número do storage direto. Tire as "" se for colocar o número.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...