Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá amigos do tk

 

Hoje venho aqui para fazer o pedido de um script broadcast aonde só os players donate possam enviar, os demais não.

Donates acima do nível 100

É possam mandar de 2 em 2 min

A storage da entrada donate do meu Server e 13500

 

Se alguém puder ajudar rep+++

Editado por Micheel15 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
local config = {
	Bstorage = 13500,
	exhaustionStorage = 16785,
	exhaustionTime = 120, -- segundos
	char = 100 --maximo de letras na msg
}

local list = {
	'dot','.com','.net','servegame','hopto','ip','no-ip','.org','whore','slut','fuck','mother','fucker','hopto','ass','cock','pussy',
}
	
function onSay(cid, words, param, channel)
	if getCreatureStorage(cid, config.Bstorage) < 1 then
		doPlayerSendCancel(cid, 'Only vips can use this command.')
		return true
	end

	if param == '' then
		doPlayerSendCancel(cid, 'Command requires a message.')
		return true
	end

	if exhaustion.check(cid, config.exhaustionStorage) then
		doPlayerSendCancel(cid, 'You can not use this command yet['..exhaustion.get(cid, config.exhaustionStorage)..'].')
		return true
	else
		exhaustion.set(cid, config.exhaustionStorage, config.exhaustionTime)
	end

	local forbid, param2 = false, param:lower()
	for i = 1, #list do
		if string.find(param2, list) ~= nil then
			forbid = true
			break
		end
	end

	if forbid then
		doPlayerSendCancel(cid, 'Your message contains a forbidden word.')
		return true
	end

	if string.len(param) >= char then
		doPlayerSendCancel(cid, 'Your message is too long.')
		return true
	end

	doPlayerBroadcastMessage(cid, param)
	return true
end

 

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

discord.pngDiscord: vankk #7765

Precisando de ajuda? Entre em contato comigo via Discord.

 

Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.

Link para o post
Compartilhar em outros sites

@vankk eu preciso no caso, em vez de storage preciso que seja para os players premium, pq eu fiz a troca da parte donate do meu servidor

 

troquei de STORAGE para premium account, se puder me passar o script para premium isso ajudaria muito, mais já está reputado deis de já

 

muito obrigado REP+++

se puder também deixar o local onde eu colocaria a script tbm detalhado, fico muito agradecido !!!

@up

Link para o post
Compartilhar em outros sites

Analisando o 'script' do @vankk vi que está perfeito. Houve algum erro? Se sim, pegue no 'console' (tela preta) o erro e cole-o aqui.

 

No mais, vá no arquivo:

data > talkactions > 'talkactions.xml'

Abra-o e na última linha adicione:

<talkaction log="yes" words="!broad" event="script" value="broadcastpremiun.lua"/>

Depois vá na pasta:

Data > talkactions > scripts

E crie o arquivo 'broadcastpremiun' e salve-o no formato '.lua'.

 

E pronto. Teste aí.

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites

sim, está perfeito, só que eu gostaria de trocar ele de storage.

para premium account, pois meu sistema donate era de storage

mais a uns dias atraz deu problema então mudei para premium normal

agora a donate é contada nos dias de premium normal do tibia, 

gostaria de saber se poderia alterar para premium, e como ficaria alterado

grato e já está reputado pela ajuda !!!

Link para o post
Compartilhar em outros sites
local config = {
	dias = 1, -- Número de Dias para pode usar a função
	exhaustionStorage = 16785,
	exhaustionTime = 120, -- segundos
	char = 100 --maximo de letras na msg
}

local list = {
	'dot','.com','.net','servegame','hopto','ip','no-ip','.org','whore','slut','fuck','mother','fucker','hopto','ass','cock','pussy',
}
	
function onSay(cid, words, param, channel)
	if (getPlayerPremiumDays(cid) < config.dias) then
		doPlayerSendCancel(cid, 'Only vips can use this command.')
		return true
	end

	if param == '' then
		doPlayerSendCancel(cid, 'Command requires a message.')
		return true
	end

	if exhaustion.check(cid, config.exhaustionStorage) then
		doPlayerSendCancel(cid, 'You can not use this command yet['..exhaustion.get(cid, config.exhaustionStorage)..'].')
		return true
	else
		exhaustion.set(cid, config.exhaustionStorage, config.exhaustionTime)
	end

	local forbid, param2 = false, param:lower()
	for i = 1, #list do
		if string.find(param2, list) ~= nil then
			forbid = true
			break
		end
	end

	if forbid then
		doPlayerSendCancel(cid, 'Your message contains a forbidden word.')
		return true
	end

	if string.len(param) >= char then
		doPlayerSendCancel(cid, 'Your message is too long.')
		return true
	end

	doPlayerBroadcastMessage(cid, param)
	return true
end

Mudei ali no 'script' do @vankk

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites

@Xagah deu esse problema quando tentei enviad a msg nem apareceu para todos, alterei poca coisa no script, ele está assim !

 

[16/01/2016 09:13:50] [Error - TalkAction Interface] 
[16/01/2016 09:13:50] data/talkactions/scripts/broadcastmsg.lua:onSay
[16/01/2016 09:13:50] Description: 
[16/01/2016 09:13:50] data/talkactions/scripts/broadcastmsg.lua:32: bad argument #2 to 'find' (string expected, got table)
[16/01/2016 09:13:50] stack traceback:
[16/01/2016 09:13:50]     [C]: in function 'find'
[16/01/2016 09:13:50]     data/talkactions/scripts/broadcastmsg.lua:32: in function <data/talkactions/scripts/broadcastmsg.lua:12>

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

script tá assim 

 

local config = {
    dias = 1, -- Número de Dias para pode usar a função
    exhaustionStorage = 16785,
    exhaustionTime = 120, -- segundos
    char = 100 --maximo de letras na msg
}

local list = {
    'dot','.com','.net','servegame','hopto','ip','no-ip','.org','whore','slut','fuck','mother','fucker','hopto','ass','cock','pussy',
}
    
function onSay(cid, words, param, channel)
    if (getPlayerPremiumDays(cid) < config.dias) then
        doPlayerSendCancel(cid, 'Somente donates pode usar esse comando.')
        return true
    end

    if param == '' then
        doPlayerSendCancel(cid, 'Command requires a message.')
        return true
    end

    if exhaustion.check(cid, config.exhaustionStorage) then
        doPlayerSendCancel(cid, 'Voce nao pode usar esse comando ainda, espere ['..exhaustion.get(cid, config.exhaustionStorage)..'] segundos.')
        return true
    else
        exhaustion.set(cid, config.exhaustionStorage, config.exhaustionTime)
    end

    local forbid, param2 = false, param:lower()
    for i = 1, #list do
        if string.find(param2, list) ~= nil then
            forbid = true
            break
        end
    end

    if forbid then
        doPlayerSendCancel(cid, 'Your message contains a forbidden word.')
        return true
    end

    if string.len(param) >= char then
        doPlayerSendCancel(cid, 'Your message is too long.')
        return true
    end

    doPlayerBroadcastMessage(cid, param)
    return true
end

 

 

        <talkaction log="yes" words="/bmsg" event="script" value="broadcastmsg.lua"/>

 

gostaria que aparece-se o level tbm do player que estiver falando pro defalut se puder colacar isso agradeço mt !

Link para o post
Compartilhar em outros sites

Testa lá:

Spoiler

function onSay(cid, words, param, channel)

local config = {
    dias = 1, -- Número de Dias para pode usar a função
    exhaustionStorage = 16785,
    exhaustionTime = 120, -- segundos
    char = 100 --maximo de letras na msg
}
local list = {
    'dot','.com','.net','servegame','hopto','ip','no-ip','.org','whore','slut','fuck','mother','fucker','hopto','ass','cock','pussy',
}
    

    if (getPlayerPremiumDays(cid) < config.dias) then
        doPlayerSendCancel(cid, 'Somente donates pode usar esse comando.')
        return true
    end
    if param == '' then
        doPlayerSendCancel(cid, 'Command requires a message.')
        return true
    end
    if exhaustion.check(cid, config.exhaustionStorage) then
        doPlayerSendCancel(cid, 'Voce nao pode usar esse comando ainda, espere ['..exhaustion.get(cid, config.exhaustionStorage)..'] segundos.')
        return true
    else
        exhaustion.set(cid, config.exhaustionStorage, config.exhaustionTime)
    end
    local forbid, param2 = false, param:lower()
    for i = 1, #list do
        if string.find(param2, list) ~= nil then
            forbid = true
            break
        end
    end
	
	local forbid, param2 = false, param:lower()

	
    if forbid then
        doPlayerSendCancel(cid, 'Your message contains a forbidden word.')
        return true
    end
    if string.len(param) >= char then
        doPlayerSendCancel(cid, 'Your message is too long.')
        return true
    end
    doPlayerBroadcastMessage(cid, '['..getPlayerLevel(cid)..'] '..param..'')
    return true
end

 

 

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites

@Xagah continua dando esse erro na distro !

 

[16/01/2016 09:44:43] [Error - TalkAction Interface] 
[16/01/2016 09:44:43] data/talkactions/scripts/broadcastmsg.lua:onSay
[16/01/2016 09:44:43] Description: 
[16/01/2016 09:44:43] data/talkactions/scripts/broadcastmsg.lua:30: bad argument #2 to 'find' (string expected, got table)
[16/01/2016 09:44:43] stack traceback:
[16/01/2016 09:44:43]     [C]: in function 'find'
[16/01/2016 09:44:43]     data/talkactions/scripts/broadcastmsg.lua:30: in function <data/talkactions/scripts/broadcastmsg.lua:1>

Editado por Micheel15 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Testa assim:


function onSay(cid, words, param, channel)

local config = 
	{
    dias = 1, -- Número de Dias para pode usar a função
    exhaustionStorage = 16785,
    exhaustionTime = 120, -- segundos
    char = 100 --maximo de letras na msg
	}

	local list = 
	{
    'dot','com','net','servegame','hopto','ip','no-ip','org','whore','slut','fuck','mother','fucker','hopto','ass','cock','pussy',
	}
    

    if (getPlayerPremiumDays(cid) < config.dias) then
        doPlayerSendCancel(cid, 'Somente donates pode usar esse comando.')
        return true
    end
    if param == '' then
        doPlayerSendCancel(cid, 'Command requires a message.')
        return true
    end
    if exhaustion.check(cid, config.exhaustionStorage) then
        doPlayerSendCancel(cid, 'Voce nao pode usar esse comando ainda, espere ['..exhaustion.get(cid, config.exhaustionStorage)..'] segundos.')
        return true
    else
        exhaustion.set(cid, config.exhaustionStorage, config.exhaustionTime)
    end
    local forbid, param2 = false, param:lower()
    for i = 1, #list do
        if string.find(param2, list) ~= nil then
            forbid = true
            break
        end
    end
	
	local forbid, param2 = false, param:lower()

	
    if forbid then
        doPlayerSendCancel(cid, 'Your message contains a forbidden word.')
        return true
    end
    if string.len(param) >= char then
        doPlayerSendCancel(cid, 'Your message is too long.')
        return true
    end
    doPlayerBroadcastMessage(cid, '['..getPlayerLevel(cid)..'] '..param..'')
    return true
end

 

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites

@Xagah deu este erro na distro e a mensagem não aparece no server

 

[16/01/2016 11:18:54] [Error - TalkAction Interface] 
[16/01/2016 11:18:54] data/talkactions/scripts/broadcastmsg.lua:onSay
[16/01/2016 11:18:54] Description: 
[16/01/2016 11:18:54] data/talkactions/scripts/broadcastmsg.lua:33: bad argument #2 to 'find' (string expected, got table)
[16/01/2016 11:18:54] stack traceback:
[16/01/2016 11:18:54]     [C]: in function 'find'
[16/01/2016 11:18:54]     data/talkactions/scripts/broadcastmsg.lua:33: in function <data/talkactions/scripts/broadcastmsg.lua:1>

Link para o post
Compartilhar em outros sites

Sei que é um teste, mas o que está acontecendo é que as palavras proibidas estão (por alguma razão que por enquanto ainda ainda não entendi) não estão conseguindo ser verificadas.

 

Vamos fazer um teste, onde há:

	local list = 
	{
    'dot','com','net','servegame','hopto','ip','no-ip','org','whore','slut','fuck','mother','fucker','hopto','ass','cock','pussy',
	}

Troque por:

	local list = 
	{
    'dot'
	}

 

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites

@Xagah mesmo com a troca continua aparecendo isto na distro !

 

[16/01/2016 11:43:39] [Error - TalkAction Interface] 
[16/01/2016 11:43:39] data/talkactions/scripts/broadcastmsg.lua:onSay
[16/01/2016 11:43:39] Description: 
[16/01/2016 11:43:39] data/talkactions/scripts/broadcastmsg.lua:33: bad argument #2 to 'find' (string expected, got table)
[16/01/2016 11:43:39] stack traceback:
[16/01/2016 11:43:39]     [C]: in function 'find'
[16/01/2016 11:43:39]     data/talkactions/scripts/broadcastmsg.lua:33: in function <data/talkactions/scripts/broadcastmsg.lua:1>

Link para o post
Compartilhar em outros sites

Mano, testei aqui sem a função forbid e funcionou certinho. Ainda estou tentando inserí-la.

 

Por enquanto ela fica assim:

function onSay(cid, words, param, channel)

local config = 
	{
    dias = 1, -- Número de Dias para pode usar a função
    exhaustionStorage = 16785,
    exhaustionTime = 120, -- segundos
    char = 100 --maximo de letras na msg
	}

	-- local list = 
	-- {
    -- 'dot','com','net','servegame','hopto','ip','no-ip','org','whore','slut','fuck','mother','fucker','hopto','ass','cock','pussy',
	-- }
    

    if (getPlayerPremiumDays(cid) < config.dias) then
        doPlayerSendCancel(cid, 'Somente donates pode usar esse comando.')
        return true
    end
    if param == '' then
        doPlayerSendCancel(cid, 'Command requires a message.')
        return true
    end
    if exhaustion.check(cid, config.exhaustionStorage) then
        doPlayerSendCancel(cid, 'Voce nao pode usar esse comando ainda, espere ['..exhaustion.get(cid, config.exhaustionStorage)..'] segundos.')
        return true
    else
        exhaustion.set(cid, config.exhaustionStorage, config.exhaustionTime)
    end
	
    -- local forbid, param2 = false, param:lower()
    -- for i = 1, #list do
        -- if string.find(param2, list) ~= nil then
            -- forbid = true
            -- break
        -- end
    -- end
	
	-- --local forbid, param2 = false, param:lower()

	
    -- if forbid then
        -- doPlayerSendCancel(cid, 'Your message contains a forbidden word.')
        -- return true
    -- end
    -- if string.len(param) >= char then
        -- doPlayerSendCancel(cid, 'Your message is too long.')
        -- return true
    -- end
    doPlayerBroadcastMessage(cid, '['..getPlayerLevel(cid)..'] '..param..'')
    return true
end

 

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites

@Xagah deu certo, sem erros na distro, o unico problema é que só consegui usar o comando com o ADM, quando 1 player fala não aparece para o server

agora com o adm ficou tipo assim:

 

15:43 [ADM] Striker: [12] boa tarde

 

 

mais ja vou te dar mais 1 rep, por ficou legal, se poder só corrigir pros players conseguirem tbm agradeço mt !!!

Editado por Micheel15 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Bom, para 'players' a função no final não vai funcionar mesmo. Muda seu 'script' pra isto aqui.

function onSay(cid, words, param, channel)

local config = 
	{
    dias = 1, -- Número de Dias para pode usar a função
    exhaustionStorage = 16785,
    exhaustionTime = 120, -- segundos
    char = 100 --maximo de letras na msg
	}

    if (getPlayerPremiumDays(cid) < config.dias) then
        doPlayerSendCancel(cid, 'Somente donates pode usar esse comando.')
        return true
    end
	
    if param == '' then
        doPlayerSendCancel(cid, 'Command requires a message.')
        return true
    end
	
    if exhaustion.check(cid, config.exhaustionStorage) then
        doPlayerSendCancel(cid, 'Voce nao pode usar esse comando ainda, espere ['..exhaustion.get(cid, config.exhaustionStorage)..'] segundos.')
        return true
    else
        exhaustion.set(cid, config.exhaustionStorage, config.exhaustionTime)
    end
	
      doCreatureSay(cid,param,TALKTYPE_BROADCAST)
	return true
end

 Agora vai. Testado aqu.

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

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 Jaurez
      .
    • 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
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo