Ir para conteúdo
  • Cadastre-se

Sitema%2FMod [TFS 1.0] Sistema de notificação


Posts Recomendados

Para quem não sabe, o sistema de notificação serve para alertar o jogador e punir sem precisar dar ban* 

 

 

*só insistir, ele será banido automaticamente, mas para isso terá que notificar 3 vezes. 

 

primeiramente executa isso no seu banco de dados

CREATE TABLE `account_not` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `idacc` int(11) NOT NULL,
  `comment` varchar(255) NOT NULL,
  `not_by` int(11) NOT NULL,
  `not_at` bigint(20) NOT NULL,
  PRIMARY KEY (`id`,`idacc`)
);

e depois isso

ALTER TABLE accounts ADD qntnot INT(11) NOT NULL DEFAULT 0

Agora vai na pasta do seu servidor, abre o compat.lua e coloca isso:

function getNots(name)

	local accountId = getAccountNumberByPlayerName(name)

	local resultId = db.storeQuery("SELECT `qntnot` FROM `accounts` WHERE `id` = " .. accountId .." LIMIT 1")
	if resultId ~= false then
		local nots = result.getDataInt(resultId, "qntnot")
		result.free(resultId)
		return nots
	end
	return 0
end

function setNots(name, amount)
	return db:query("UPDATE `accounts` SET `qntnot` = ".. (getNots(name) + amount) .." WHERE `id` ="..getAccountNumberByPlayerName(name).."")
end

Feito o que foi falo acima, vai em talkaction/script e cria um arquivo em lua e coloca isso

function onSay(cid, words, param, channel)
local t = string.explode(tostring(param), ",")
local player = Player(cid)
if not player:getGroup():getAccess() then
return true
end
local accountId = getAccountNumberByPlayerName(t[1])
if (accountId == 0) or (not t[1]) then
doPlayerSendCancel(cid,"Insira um nome valido")
return true
end
local resultId = db.storeQuery("SELECT 1 FROM `account_bans` WHERE `account_id` = " .. accountId)

if resultId ~= false then
result.free(resultId)
Player(cid):sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Jogador já está banido.")
return false
end

 local coment = t[2]
if (t[2] == "") or (t[2] == nil) or (coment == "") or (coment == nil) then
coment = "Quebra de regra"
end
local tempo = not t[3] and 1 or t[3]
setNots(t[1], tempo)
db:query("INSERT INTO `account_not` (`idacc`, `comment`, `not_by`, `not_at`) VALUES ("..
accountId .. ", " .. db.escapeString(coment) .. ", ".. player:getGuid() ..", "..os.time()..") ")
for _, pid in ipairs(Game.getPlayers()) do
pid:sendTextMessage(MESSAGE_STATUS_WARNING, "" .. getPlayerName(cid) .. ": A conta do jogador ".. t[1].. " foi notificada por "..getPlayerName(cid)..". Notificações setadas de "..getNots(t[1]) - tempo .." para ".. getNots(t[1])..". Motivo: "..tostring(coment)..".")
end
if getNots(t[1]) >= 3 then
local target = Player(t[1])
if target then
target:remove()
end
local banDays = 7
local tn = os.time()
local comment = "Banido por conter 3 notificações."
db:query("INSERT INTO `account_bans` (`account_id`, `reason`, `banned_at`, `expires_at`, `banned_by`) VALUES (" ..
accountId .. ", " .. db.escapeString(comment) .. ", " .. tn .. ", " .. tn + (banDays * 86400) .. ", " .. player:getGuid() .. ")")
db:query("DELETE FROM `account_not` WHERE `idacc` = " .. accountId.."")
for _, pid in ipairs(Game.getPlayers()) do
pid:sendTextMessage(MESSAGE_STATUS_WARNING, t[1].." foi banido por conter "..getNots(t[1]).." notificações.")
end
db:query("UPDATE `accounts` SET `qntnot` = ".. (getNots(t[1]) * 0) .." WHERE `id` ="..getAccountNumberByPlayerName(t[1]).."")
end
return true 
end

 

 

 

Se ele não tiver a função string.explode

só colocar isso no global.lua

depois do dofile

 

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
 

 

 

 

Por fim vai em talkaction.xml e coloque isso:

	<talkaction words="/not" separator=" " script="NOMEDOARQUIVO.lua" />

Como usar

/not nome,comentario (opcional), quantidade(opcional)
/not nome

@edit

Erro de nao gravar na db, corrigido.

 

 

 

Créditos:

narazaky (eu)

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

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

Muito bom mesmo...

                                                                         github.png TFS 0.4 DEV                                                                                                       nvzl0l.jpg
 
Página no facebook: https://www.facebook.com/Suporterking                                                                                     
Skype: fabinhodias01
 
 
"A almapermanece em suas criações" 


h3dhnuI.jpg           
(Dou suporte apenas em tópicos..)

Link para o post
Compartilhar em outros sites

Muito bom cara, é de sua autoria?

recebi um pedido por pm e fiz

 

vou colocar os creditos

All 

Valeuuu

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

Te ajudei? Então Rep + ;)

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 Nextbr
      Boa Noite Glaera, BLZ?
       
      Hoje Vou Postar Mais uma de minhas Ideias Loucas de Poketibia que eu particulamente achei legal ate que se Chama "Catch Channel"
       
      [+] Para que Serve o Catch Channel?
      - Simples Serve Para voce Ver todos os Catch do Servidor no Canal "Catch Channel"
      - O Script é Bem Basico!
       
       
      [+] Intao Vamos La:
       
      [+] Servidor Testado:
      Pokemon Dash Advanced (PDA V2.5 BY: BOLZ)
       
       
      Vai em data/lib/CATCHSYSTEM.LUA  e Procure por Essa funçao: 



       
      - Procure por essa Parte do Script:



       
      - Logo Abaixo Adiciona isso:



       
      Explicando:
       
      TALKTYPE_CHANNEL_W: Letra Branca 
      5 : Channel ID (No Caso é o Game-Chat)
       
      Depois vai em data/xml/channels.xml e troca seu Channel id "5" Para Esse:



       
      [+] Imagem:

      Hidden Content
      Give reaction to this post to see the hidden content.  
      Creditos: NextBR
    • Por Nextbr
      Eae Galera Tudo na Paz?

      [+] Hoje Vou Postar um Script de Catch Por Skill Configurado No "Sword Fighting" do Seu Old Client Intao vamos La:

      -Resumo: Quanto Maior o Skill "Catching" Maior a chance de Captura do Pokemon!

      [+] OBS: Eu nao Vou Postar o Script Completo Pois de Cada (PDA) ou (PDA - COM PokeLevel) é Diferente um do Outro, Eu So vou Ensinar a Voces a como Adicionar o Sistema em Seus Servidores!

      [+] Servidor Testado:
      - Pokemon Dash Advanced

      [+] Primeiro Vai em Data/Lib/catchsystem.lua e Procure por essa Funçao:






      [+] Na Parte aonde manda a MSG de que Voce "capturou um Pokemon" e "Capturou um Pokemon e Foi para o CP" add Isso Abaixo dessas Msg:




      - Resumo: doPlayerAddSkillTry(cid,2,10) --- Quando Capturar um Pokemon vai Ganhar 10% de Skill "2".
      - Obs: No meu Client o Skill Catching Esta no Skill "Sword Fighting"



      [+] Bom Logo Apos Voce vai em data/actions/catch.lua e no Começo do Script add isso:


        [+] Agora Procure essa Funçao: local catchinfo = {}

      - E Troca por Isso:




      -OBS: O Script é Bem Basico. Dar Para adicionar varios Coisas Como (Ganhar EXP Dependendo do Skill/Almentar Chance de Catch para Premium Account e etc...)

      [+] Imagens:

      Hidden Content
      Give reaction to this post to see the hidden content.

      [+] OBS: So vai ganhar Skill se Voce Capturar o Pokemon e Recomendo voces Deixar o Catch BAIXO! Por que o Script faz a Soma de Rate um Exemplo:
      Pokeball Rate: 50
      Skill Cathing Rate (com 25 de Skill Cathing) : 100
      Somar: 50+100 = 150 de Rate o Jogador vai ter  
      [script Atualizado Dia 25/01/2015]




      [+] Creditos: NextBR
  • Estatísticas dos Fóruns

    96842
    Tópicos
    519602
    Posts
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo