Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá ao executar a talkactions /tour  aparece o seguinte erro:

 

errotalk.png

 

Segue os seguintes scripts acima mencionado:

 

011-string.lua Na linha 43: tmp = str:sub(pos):trim()

 

string.explode = function (str, sep, limit)
	if(type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then
		return {}
	end

	local i, pos, tmp, t = 0, 1, "", {}
	for s, e in function() return string.find(str, sep, pos) end do
		tmp = str:sub(pos, s - 1):trim()
		table.insert(t, tmp)
		pos = e + 1

		i = i + 1
		if(limit ~= nil and i == limit) then
			break
		end
	end

	tmp = str:sub(pos):trim()
	table.insert(t, tmp)
	return t
end

 

Tour.lua Na linha 46: local playerstring = string.explode(getGlobalStorageValue(listsubscribe), ",") 

 

local playerduel = 223023 -- playerstorage
local subscribe = 223024 -- playerstorage 
local enabledtour = 223025 -- globalstorage
local listsubscribe = 223026 -- globalstorage
local countsubscribe = 223027 -- globalstorage
local start = 223028 -- globalstorage
local goldsub = 223029 -- globalstorage
local silversub = 223030 -- globalstorage
local bronzesub = 223031 -- globalstorage
local gold = 1
local silver = 2
local bronze = 3
function onSay(cid, words, param, frompos)

        --local players = getPlayersOnline()
      
		if getGlobalStorageValue(enabledtour) <= 0 then
return doPlayerSendTextMessage(cid,22,"Não está tendo evento.")
end

local modalidade = getGlobalStorageValue(enabledtour)
local frasemod = "Bronze"
if modalidade == gold then
frasemod = "Gold"
elseif modalidade == silver then
frasemod = "Silver"
end

		local playerstring = string.explode(getGlobalStorageValue(listsubscribe), ",") 
		local subscribes = getGlobalStorageValue(countsubscribe)
		  local xxs = "Numero de Inscritos "..subscribes.." \nCategoria : "..frasemod.."\n"
		 xxs = xxs .."C = Classificado\nB = Batalhando\nA = Aguardando\n\n"


 for _, pid in ipairs(playerstring) do
 local player = getPlayerByName(pid)
 if isPlayer(player) then
if getPlayerStorageValue(player,subscribe) >= 1 and getPlayerStorageValue(player,playerduel) >= 1 then
xxs = xxs .."[".. getCreatureName(player) .. "][C] [B] [on] lv = "..getPlayerLevel(player).."\n"
end
if getPlayerStorageValue(player,subscribe) >= 1 and getPlayerStorageValue(player,playerduel) <= 0 then
xxs = xxs .."[".. getCreatureName(player) .. "][C][A] [on] lv = "..getPlayerLevel(player).."\n"
end
else
xxs = xxs .."[".. pid .. "][OFFLINE] \n"
end

end
doShowTextDialog(cid, 2501,  xxs)
return true

end

 

 

REP+ sem duvidar! agradeço desde já.

Link para o post
Compartilhar em outros sites
  • Sub-Admin
15 minutos atrás, Mikhael disse:

Olá ao executar a talkactions /tour  aparece o seguinte erro:

 

errotalk.png

 

Segue os seguintes scripts acima mencionado:

 

011-string.lua Na linha 43: tmp = str:sub(pos):trim()

 


string.explode = function (str, sep, limit)
	if(type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then
		return {}
	end

	local i, pos, tmp, t = 0, 1, "", {}
	for s, e in function() return string.find(str, sep, pos) end do
		tmp = str:sub(pos, s - 1):trim()
		table.insert(t, tmp)
		pos = e + 1

		i = i + 1
		if(limit ~= nil and i == limit) then
			break
		end
	end

	tmp = str:sub(pos):trim()
	table.insert(t, tmp)
	return t
end

 

Tour.lua Na linha 46: local playerstring = string.explode(getGlobalStorageValue(listsubscribe), ",") 

 


local playerduel = 223023 -- playerstorage
local subscribe = 223024 -- playerstorage 
local enabledtour = 223025 -- globalstorage
local listsubscribe = 223026 -- globalstorage
local countsubscribe = 223027 -- globalstorage
local start = 223028 -- globalstorage
local goldsub = 223029 -- globalstorage
local silversub = 223030 -- globalstorage
local bronzesub = 223031 -- globalstorage
local gold = 1
local silver = 2
local bronze = 3
function onSay(cid, words, param, frompos)

        --local players = getPlayersOnline()
      
		if getGlobalStorageValue(enabledtour) <= 0 then
return doPlayerSendTextMessage(cid,22,"Não está tendo evento.")
end

local modalidade = getGlobalStorageValue(enabledtour)
local frasemod = "Bronze"
if modalidade == gold then
frasemod = "Gold"
elseif modalidade == silver then
frasemod = "Silver"
end

		local playerstring = string.explode(getGlobalStorageValue(listsubscribe), ",") 
		local subscribes = getGlobalStorageValue(countsubscribe)
		  local xxs = "Numero de Inscritos "..subscribes.." \nCategoria : "..frasemod.."\n"
		 xxs = xxs .."C = Classificado\nB = Batalhando\nA = Aguardando\n\n"


 for _, pid in ipairs(playerstring) do
 local player = getPlayerByName(pid)
 if isPlayer(player) then
if getPlayerStorageValue(player,subscribe) >= 1 and getPlayerStorageValue(player,playerduel) >= 1 then
xxs = xxs .."[".. getCreatureName(player) .. "][C] [B] [on] lv = "..getPlayerLevel(player).."\n"
end
if getPlayerStorageValue(player,subscribe) >= 1 and getPlayerStorageValue(player,playerduel) <= 0 then
xxs = xxs .."[".. getCreatureName(player) .. "][C][A] [on] lv = "..getPlayerLevel(player).."\n"
end
else
xxs = xxs .."[".. pid .. "][OFFLINE] \n"
end

end
doShowTextDialog(cid, 2501,  xxs)
return true

end

 

 

REP+ sem duvidar! agradeço desde já.

 

 

string.split = function (str)
    local t = {}
    return not str:gsub("%w+", function(s) table.insert(t, s) return "" end):find("%S") and t or {}
end

string.trim = function (str)
    return str:gsub("^%s*(.-)%s*$", "%1")
end

string.explode = function (str, sep, limit)
    if(type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then
        return {}
    end

    local i, pos, tmp, t = 0, 1, "", {}
    for s, e in function() return string.find(str, sep, pos) end do
        tmp = str:sub(pos, s - 1):trim()
        table.insert(t, tmp)
        pos = e + 1

        i = i + 1
        if(limit ~= nil and i == limit) then
            break
        end
    end

    tmp = str:sub(pos):trim()
    table.insert(t, tmp)
    return t
end

string.expand = function (str)
    return string.gsub(str, "$(%w+)", function(n) return _G[n] end)
end

string.timediff = function (diff)
    local format = {
        {"week", diff / 60 / 60 / 24 / 7},
        {"day", diff / 60 / 60 / 24 % 7},
        {"hour", diff / 60 / 60 % 24},
        {"minute", diff / 60 % 60},
        {"second", diff % 60}
    }

    local t = {}
    for k, v in ipairs(format) do
        local d, tmp = math.floor(v[2]), ""
        if(d > 0) then
            tmp = (k < table.maxn(format) and (table.maxn(t) > 0 and ", " or "") or " and ") .. d .. " " .. v[1] .. (d ~= 1 and "s" or "")
            table.insert(t, tmp)
        end
    end

    return t
end

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
1 minuto atrás, Alexy Brocanello disse:

 

 

 

string.split = function (str)
    local t = {}
    return not str:gsub("%w+", function(s) table.insert(t, s) return "" end):find("%S") and t or {}
end

string.trim = function (str)
    return str:gsub("^%s*(.-)%s*$", "%1")
end

string.explode = function (str, sep, limit)
    if(type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then
        return {}
    end

    local i, pos, tmp, t = 0, 1, "", {}
    for s, e in function() return string.find(str, sep, pos) end do
        tmp = str:sub(pos, s - 1):trim()
        table.insert(t, tmp)
        pos = e + 1

        i = i + 1
        if(limit ~= nil and i == limit) then
            break
        end
    end

    tmp = str:sub(pos):trim()
    table.insert(t, tmp)
    return t
end

string.expand = function (str)
    return string.gsub(str, "$(%w+)", function(n) return _G[n] end)
end

string.timediff = function (diff)
    local format = {
        {"week", diff / 60 / 60 / 24 / 7},
        {"day", diff / 60 / 60 / 24 % 7},
        {"hour", diff / 60 / 60 % 24},
        {"minute", diff / 60 % 60},
        {"second", diff % 60}
    }

    local t = {}
    for k, v in ipairs(format) do
        local d, tmp = math.floor(v[2]), ""
        if(d > 0) then
            tmp = (k < table.maxn(format) and (table.maxn(t) > 0 and ", " or "") or " and ") .. d .. " " .. v[1] .. (d ~= 1 and "s" or "")
            table.insert(t, tmp)
        end
    end

    return t
end

 

 

 

 

Onde adicionaria esse code ?

 

 

 

 

 

Link para o post
Compartilhar em outros sites
  • Sub-Admin
4 minutos atrás, Mikhael disse:

 

 

 

Onde adicionaria esse code ?

 

 

 

 

 

011-string.lua paga o seu e bote esse

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

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
4 minutos atrás, Alexy Brocanello disse:

011-string.lua

 

 

Mesmo erro:  tmp = str:sub(pos):trim() , só mudou a linha

Link para o post
Compartilhar em outros sites
  • Sub-Admin
5 minutos atrás, Mikhael disse:

 

 

Mesmo erro:  tmp = str:sub(pos):trim() , só mudou a linha

mude 

 

    local i, pos, tmp, t = 0, 1, "", {}
    for s, e in function() return string.find(str, sep, pos) end do
        tmp = str:sub(pos, s - 1):trim()
        table.insert(t, tmp)
        pos = e + 1

        i = i + 1

        if(limit ~= nil and i == limit) then
            break
        end
    end

    tmp = str:sub(pos):trim()
    table.insert(t, tmp)
    return t
end

 

 

para 

 

local i, pos, tmp, t = 0, 1, "", {}
        for s, e in function() return string.find(str, sep, pos) end do
            tmp = str:sub(pos, s - 1):trim()
            table.insert(t, tmp)
            pos = e + 1

            i = i + 1

        end
Editado por Alexy Brocanello (veja o histórico de edições)

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites

O erro é simplesmente que string.explode () usa "str" como string, só que ela esta sendo chamado com um valor numérico.  

Você pode retornar um valor caso não seja uma string.

If not type (str) == "string" then return "" end

 

Ou dessa forma:

if( type(str) ~= "string" or type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then return {} end

 

Nesse caso estou adicionando uma sentença ao código já existente. 

 

Ps: isso é para ser posto na função string.explode ()

Link para o post
Compartilhar em outros sites
6 horas atrás, dominus disse:

O erro é simplesmente que string.explode () usa "str" como string, só que ela esta sendo chamado com um valor numérico.  

Você pode retornar um valor caso não seja uma string.

If not type (str) == "string" then return "" end

 

Ou dessa forma:

if( type(str) ~= "string" or type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then return {} end

 

Nesse caso estou adicionando uma sentença ao código já existente. 

 

Ps: isso é para ser posto na função string.explode ()

 

 

Então realmente para ativar esse comando devo escolher entre os numeros 1, 2, 3

 

No script tour.lua vc pode ver essa parte:

 

local gold = 1
local silver = 2
local bronze = 3

 

Em 20/01/2016 01:18:26, Alexy Brocanello disse:

mude 

 

    local i, pos, tmp, t = 0, 1, "", {}
    for s, e in function() return string.find(str, sep, pos) end do
        tmp = str:sub(pos, s - 1):trim()
        table.insert(t, tmp)
        pos = e + 1

        i = i + 1

        if(limit ~= nil and i == limit) then
            break
        end
    end

    tmp = str:sub(pos):trim()
    table.insert(t, tmp)
    return t
end

 

 

para 

 


local i, pos, tmp, t = 0, 1, "", {}
        for s, e in function() return string.find(str, sep, pos) end do
            tmp = str:sub(pos, s - 1):trim()
            table.insert(t, tmp)
            pos = e + 1

            i = i + 1

        end

 

 

 

 

 

 

Fiz a troca e agora tenho esse erro:

 

errotalk.png

Link para o post
Compartilhar em outros sites
  • Sub-Admin

tente remover o 

local gold = 1
local silver = 2
local bronze = 3

 

para

 

gold = 1
silver = 2
bronze = 3


as vezes da certo comigo

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
13 horas atrás, Alexy Brocanello disse:

tente remover o 


local gold = 1
local silver = 2
local bronze = 3

 

para

 


gold = 1
silver = 2
bronze = 3


as vezes da certo comigo

 

 

Mas preciso desses "local" pois se nao o script nao funcionará, tenho que escolher 1 entre 1, 2 ou 3, ficando assim " !tour 1 ".

Link para o post
Compartilhar em outros sites

Acho que você não entendeu o que eu escrevi acima.

 

A função string.explode usa apenas textos e no seu script existe uma declaração que usa uma função de marcação; se essa função retornar outro valor alem de string, ocaeiona esse erro no distro.

 

local playerstring = string.explode(getGlobalStorageValue(listsubscribe), ",") 
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 BonasxD
      Bom galera primeiramente não sei se estou na area correta ou se nao estou, se nao por favor mover para area certa, grato!
      Estou com esse erro ao tenta instalar o gesior usando a tfs 0.4 não passa dessa parte ja tentei de tudo e nao sei oque fazer ;(
       
      Testei o mesmo procedimento no meu Windows e Funcionou corretamente agora no meu VM(Ubuntu22) não passa desse erro. 
       
      Ja pesquisei por tudo e não sei oque fazer

    • Por Jaurez
      .
    • Por Kill of sumoners
      Boa noite, estou com um erro ao atacar um player em meu sv eu nao pego pk, nem sai magia, aparece a mensagem "voce so pode usar isso em criaturas"
      obs: magia em area acerta e pega pk, apenas as targets ou hits de arma nao vao 
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo