Jump to content
  • 0
Wicke

Sistema de Catch

Question

Please login or register to see this attachment.

Alguem poderia me ajudar, bom estou capturando pokemon no server, porem toda vez q eu capturo aparece erro o pokemon vai morto para o cp eu queria apenas tirar o warning e q pokemon pudesse ficar vivo no dp alguem poderia me ajudar?

Erro:

[30/07/2020 19:15:12] [Error - Action Interface] 
[30/07/2020 19:15:13] In a timer event called from: 
[30/07/2020 19:15:13] datapack/actions/scripts/catch.lua:onUse
[30/07/2020 19:15:13] Description: 
[30/07/2020 19:15:13] datapack/lib/catch system.lua:401: attempt to index local 'arq' (a nil value)
[30/07/2020 19:15:13] stack traceback:
[30/07/2020 19:15:13]     datapack/lib/catch system.lua:401: in function 'doIncreaseStatistics'
[30/07/2020 19:15:13]     datapack/lib/catch system.lua:237: in function <datapack/lib/catch system.lua:154>

Edited by Wicke

Share this post


Link to post
Share on other sites

15 answers to this question

Recommended Posts

  • 0
1 hora atrás, Wicke disse:

Please login or register to see this attachment.

Alguem poderia me ajudar, bom estou capturando pokemon no server, porem toda vez q eu capturo aparece erro o pokemon vai morto para o cp eu queria apenas tirar o warning e q pokemon pudesse ficar vivo no dp alguem poderia me ajudar?

Erro:

[30/07/2020 19:15:12] [Error - Action Interface] 
[30/07/2020 19:15:13] In a timer event called from: 
[30/07/2020 19:15:13] datapack/actions/scripts/catch.lua:onUse
[30/07/2020 19:15:13] Description: 
[30/07/2020 19:15:13] datapack/lib/catch system.lua:401: attempt to index local 'arq' (a nil value)
[30/07/2020 19:15:13] stack traceback:
[30/07/2020 19:15:13]     datapack/lib/catch system.lua:401: in function 'doIncreaseStatistics'
[30/07/2020 19:15:13]     datapack/lib/catch system.lua:237: in function <datapack/lib/catch system.lua:154>

Esse erro que da é porque ele está tentando abrir esse arquivo nesse diretório: 

local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"
local arq = io.open(dir, "a+")

Coloque os TXTs com o nome de todos os poke ou comente o código.

 

Segue o código com correção dos pokes mortos para o DP

Please login or register to see this attachment.

Share this post


Link to post
Share on other sites
  • 0
4 horas atrás, DarkWore disse:

Esse erro que da é porque ele está tentando abrir esse arquivo nesse diretório: 

local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"
local arq = io.open(dir, "a+")

Coloque os TXTs com o nome de todos os poke ou comente o código.

 

Segue o código com correção dos pokes mortos para o DP

Please login or register to see this attachment.

Tipo em relaçao ao txt ja tem la porem continua o erro sempre q captura e obrigado o da ball mortal deu certo!

Share this post


Link to post
Share on other sites
  • 0
10 horas atrás, Wicke disse:

Tipo em relaçao ao txt ja tem la porem continua o erro sempre q captura e obrigado o da ball mortal deu certo!

Manda uma print de como está os TXTs dentro da pasta.

Share this post


Link to post
Share on other sites
  • 0
5 horas atrás, DarkWore disse:

Manda uma print de como está os TXTs dentro da pasta.

Entao esta ai, Sabe se teria q fazer mais algo? Pq pelo q eu vi esta certo

Please login or register to see this attachment.

Share this post


Link to post
Share on other sites
  • 0
19 horas atrás, Wicke disse:

Entao esta ai, Sabe se teria q fazer mais algo? Pq pelo q eu vi esta certo

Please login or register to see this attachment.

Esses são os parâmetros da io.open:

file = io.open (filename [, mode])

Tente trocar o modo do a+ pelo r+ e teste.

Share this post


Link to post
Share on other sites
  • 0
6 horas atrás, DarkWore disse:

Esses são os parâmetros da io.open:

file = io.open (filename [, mode])

Tente trocar o modo do a+ pelo r+ e teste.

Da source voce fala?

Share this post


Link to post
Share on other sites
  • 0
Em 30/07/2020 em 21:13, DarkWore disse:

Esse erro que da é porque ele está tentando abrir esse arquivo nesse diretório: 

local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"
local arq = io.open(dir, "a+")

Coloque os TXTs com o nome de todos os poke ou comente o código.

 

Segue o código com correção dos pokes mortos para o DP

Please login or register to see this attachment.

local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"
local arq = io.open(dir, "r+") --<<<<<<<<<<<<<<<

 

Share this post


Link to post
Share on other sites
  • 0
7 horas atrás, DarkWore disse:
local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"
local arq = io.open(dir, "r+") --<<<<<<<<<<<<<<<

 

Olha eu fiz isso porem nao deu certo nao, Mudei todos de a+ pra r+ e msm assim n foi 

Windows porem executei e continua dando o erro!

8 horas atrás, luangop disse:

Está rodando em linux ou windos? Se for windows, execute o servidor como administrador, o windows pode estar impedindo o server de manipular o .txt

Share this post


Link to post
Share on other sites
  • 0
5 horas atrás, Wicke disse:

Olha eu fiz isso porem nao deu certo nao, Mudei todos de a+ pra r+ e msm assim n foi 

Windows porem executei e continua dando o erro!

Aqui está todas as funções relacionadas a statistics do meu OT, ve se funciona. Se ainda der erro deve ser algo na sua source sei lá, pq aqui ta perfeito.

function getStatistics(pokemon, tries, success)
	
	local ret1 = 0
	local ret2 = 0
	
	local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30))..""
	local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"
	local arq = io.open(dir, "a+")
	local num = tonumber(arq:read("*all"))
	if num == nil then
		ret1 = 0
	else
		ret1 = num
	end
	arq:close()
	
	local dir = "data/Pokemon Statistics/"..poke.." Catches.txt"
	local arq = io.open(dir, "a+")
	local num = tonumber(arq:read("*all"))
	if num == nil then
		ret2 = 0
	else
		ret2 = num
	end
	arq:close()
	
	if tries == true and success == true then
		return ret1, ret2
	elseif tries == true then
		return ret1
	else
		return ret2
	end
end

function doIncreaseStatistics(pokemon, tries, success)
	
	local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30))..""
	
	if tries == true then
		local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"
		
		local arq = io.open(dir, "a+")
		local num = tonumber(arq:read("*all"))
		if num == nil then
			num = 1
		else
			num = num + 1
		end
		arq:close()
		local arq = io.open(dir, "w")
		arq:write(""..num.."")
		arq:close()
	end
	
	if success == true then
		local dir = "data/Pokemon Statistics/"..poke.." Catches.txt"
		
		local arq = io.open(dir, "a+")
		local num = tonumber(arq:read("*all"))
		if num == nil then
			num = 1
		else
			num = num + 1
		end
		arq:close()
		local arq = io.open(dir, "w")
		arq:write(""..num.."")
		arq:close()
	end
end

function doUpdateGeneralStatistics()
	
	local dir = "data/Pokemon Statistics/Pokemon Statistics.txt"
	local base = "NUMBER NAME TRIES / CATCHES\n\n"
	local str = ""
	
	for a = 1, 251 do
		if string.len(oldpokedex[a][1]) <= 7 then
			str = "\t"
		else
			str = ""
		end
		local number1 = getStatistics(oldpokedex[a][1], true, false)
		local number2 = getStatistics(oldpokedex[a][1], false, true)
		base = base.."["..threeNumbers(a).."]\t"..oldpokedex[a][1].."\t"..str..""..number1.." / "..number2.."\n"
	end
	
	local arq = io.open(dir, "w")
	arq:write(base)
	arq:close()
end

function getGeneralStatistics()
	
	local dir = "data/Pokemon Statistics/Pokemon Statistics.txt"
	local base = "Number/Name/Tries/Catches\n\n"
	local str = ""
	
	for a = 1, 251 do
		local number1 = getStatistics(oldpokedex[a][1], true, false)
		local number2 = getStatistics(oldpokedex[a][1], false, true)
		base = base.."["..threeNumbers(a).."] "..oldpokedex[a][1].." "..str..""..number1.." / "..number2.."\n"
	end
	
	return base
end

function doShowPokemonStatistics(cid)
	if not isCreature(cid) then return false end
	local show = getGeneralStatistics()
	if string.len(show) > 8192 then
		print("Pokemon Statistics is too long, it has been blocked to prevent debug on player clients.")
		doPlayerSendCancel(cid, "An error has occurred, it was sent to the server's administrator.") 
		return false
	end
	doShowTextDialog(cid, math.random(2391, 2394), show)
end

 

Share this post


Link to post
Share on other sites
  • 0
2 horas atrás, luangop disse:

Aqui está todas as funções relacionadas a statistics do meu OT, ve se funciona. Se ainda der erro deve ser algo na sua source sei lá, pq aqui ta perfeito.

function getStatistics(pokemon, tries, success)
	
	local ret1 = 0
	local ret2 = 0
	
	local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30))..""
	local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"
	local arq = io.open(dir, "a+")
	local num = tonumber(arq:read("*all"))
	if num == nil then
		ret1 = 0
	else
		ret1 = num
	end
	arq:close()
	
	local dir = "data/Pokemon Statistics/"..poke.." Catches.txt"
	local arq = io.open(dir, "a+")
	local num = tonumber(arq:read("*all"))
	if num == nil then
		ret2 = 0
	else
		ret2 = num
	end
	arq:close()
	
	if tries == true and success == true then
		return ret1, ret2
	elseif tries == true then
		return ret1
	else
		return ret2
	end
end

function doIncreaseStatistics(pokemon, tries, success)
	
	local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30))..""
	
	if tries == true then
		local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"
		
		local arq = io.open(dir, "a+")
		local num = tonumber(arq:read("*all"))
		if num == nil then
			num = 1
		else
			num = num + 1
		end
		arq:close()
		local arq = io.open(dir, "w")
		arq:write(""..num.."")
		arq:close()
	end
	
	if success == true then
		local dir = "data/Pokemon Statistics/"..poke.." Catches.txt"
		
		local arq = io.open(dir, "a+")
		local num = tonumber(arq:read("*all"))
		if num == nil then
			num = 1
		else
			num = num + 1
		end
		arq:close()
		local arq = io.open(dir, "w")
		arq:write(""..num.."")
		arq:close()
	end
end

function doUpdateGeneralStatistics()
	
	local dir = "data/Pokemon Statistics/Pokemon Statistics.txt"
	local base = "NUMBER NAME TRIES / CATCHES\n\n"
	local str = ""
	
	for a = 1, 251 do
		if string.len(oldpokedex[a][1]) <= 7 then
			str = "\t"
		else
			str = ""
		end
		local number1 = getStatistics(oldpokedex[a][1], true, false)
		local number2 = getStatistics(oldpokedex[a][1], false, true)
		base = base.."["..threeNumbers(a).."]\t"..oldpokedex[a][1].."\t"..str..""..number1.." / "..number2.."\n"
	end
	
	local arq = io.open(dir, "w")
	arq:write(base)
	arq:close()
end

function getGeneralStatistics()
	
	local dir = "data/Pokemon Statistics/Pokemon Statistics.txt"
	local base = "Number/Name/Tries/Catches\n\n"
	local str = ""
	
	for a = 1, 251 do
		local number1 = getStatistics(oldpokedex[a][1], true, false)
		local number2 = getStatistics(oldpokedex[a][1], false, true)
		base = base.."["..threeNumbers(a).."] "..oldpokedex[a][1].." "..str..""..number1.." / "..number2.."\n"
	end
	
	return base
end

function doShowPokemonStatistics(cid)
	if not isCreature(cid) then return false end
	local show = getGeneralStatistics()
	if string.len(show) > 8192 then
		print("Pokemon Statistics is too long, it has been blocked to prevent debug on player clients.")
		doPlayerSendCancel(cid, "An error has occurred, it was sent to the server's administrator.") 
		return false
	end
	doShowTextDialog(cid, math.random(2391, 2394), show)
end

 

Bom entao descobri o pq nao estava lendo, porem agora esta com erro de Brocke ao falhar em capturar o pokemon aparece o seguinte erro!

Oq nao estava deixando ler o Pokemon Statistc era q a data estava com nome errado.

 

[02/08/2020 13:04:56] [Error - Action Interface] 
[02/08/2020 13:04:56] In a timer event called from: 
[02/08/2020 13:04:56] datapack/actions/scripts/catch.lua:onUse
[02/08/2020 13:04:56] Description: 
[02/08/2020 13:04:56] datapack/lib/catch system.lua:27: attempt to perform arithmetic on local 's2' (a string value)
[02/08/2020 13:04:56] stack traceback:
[02/08/2020 13:04:56]     datapack/lib/catch system.lua:27: in function 'doBrokesCount'
[02/08/2020 13:04:56]     datapack/lib/catch system.lua:318: in function <datapack/lib/catch system.lua:281>

Share this post


Link to post
Share on other sites
  • 0
9 horas atrás, Wicke disse:

Bom entao descobri o pq nao estava lendo, porem agora esta com erro de Brocke ao falhar em capturar o pokemon aparece o seguinte erro!

Oq nao estava deixando ler o Pokemon Statistc era q a data estava com nome errado.

 

[02/08/2020 13:04:56] [Error - Action Interface] 
[02/08/2020 13:04:56] In a timer event called from: 
[02/08/2020 13:04:56] datapack/actions/scripts/catch.lua:onUse
[02/08/2020 13:04:56] Description: 
[02/08/2020 13:04:56] datapack/lib/catch system.lua:27: attempt to perform arithmetic on local 's2' (a string value)
[02/08/2020 13:04:56] stack traceback:
[02/08/2020 13:04:56]     datapack/lib/catch system.lua:27: in function 'doBrokesCount'
[02/08/2020 13:04:56]     datapack/lib/catch system.lua:318: in function <datapack/lib/catch system.lua:281>

Corrigido, só não está com a correção que você fez no nome da pasta data.

Please login or register to see this attachment.

Share this post


Link to post
Share on other sites
  • 0
23 minutos atrás, DarkWore disse:

Corrigido, só não está com a correção que você fez no nome da pasta data.

Please login or register to see this attachment.

Bom entao deu outro erro, porem mudei so pra ver em vez de deixar 

saffari = "..(x+tb[5].v)..";"

Coloquei

saffari = "..(s+tb[5].v)..";"

Esse foi o unico jeito q tentei q deu certo, e paro o erro, porem nao sei se pode ocorrer algo futuro.

e se colocar "s2" dava o erro tbm!

Share this post


Link to post
Share on other sites
  • 0
12 horas atrás, Wicke disse:

Bom entao deu outro erro, porem mudei so pra ver em vez de deixar 

saffari = "..(x+tb[5].v)..";"

Coloquei

saffari = "..(s+tb[5].v)..";"

Esse foi o unico jeito q tentei q deu certo, e paro o erro, porem nao sei se pode ocorrer algo futuro.

e se colocar "s2" dava o erro tbm!

a super ball está utilizando o s, isso pode ocasionar algum problema futuro, recomendo que troque a letra por outra, qualquer coisa envie o erro que ocorreu aqui.

Share this post


Link to post
Share on other sites
  • 0
17 horas atrás, DarkWore disse:

Corrigido, só não está com a correção que você fez no nome da pasta data.

Please login or register to see this attachment.

Ocorreu esse msm erro

datapack/lib/catch system.lua:27: attempt to perform arithmetic on local 's2' (a string value)

Porem em vez de ser "s2" foi com "x"

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...