Commande #announce et annonce automatique
.announce add #message : Sert a ajouter un message d'annonce")
.announce show #id : sert a montrer le message qui correspond avec l'id indique")
.announce del #id : sert a supprimer le message qui correspond a l'id indique")

[code=lua]--[[
Script intial par Neø
Repris, corrigé et terminé par Riful
Merci à :
- Sadikum pour le bug majuscules
- SgT-Fatality
- Zeytan

Nécessite une table 'announce' dans la db world avec colones : id et text.
--]]


function PlayerOnChat(event, pPlayer, message, type, language)
local startPos, endPos, firstWord, secondWord, restOfString = string.find(message, "(%p%w+)[%s%p](%w+)[%s%p](.*)")
if (pPlayer:GetGmRank() == 'az') then
local maxID = WorldDBQuery("SELECT MAX(id) from announce"):GetColumn(0):GetLong()
local COMMAND = "#announce"
if (message:lower() == COMMAND) then
pPlayer:SendBroadcastMessage("Erreur de syntaxe :")
pPlayer:SendBroadcastMessage(".announce add message : Sert a ajouter un message d'annonce")
pPlayer:SendBroadcastMessage(".announce show #id : sert a montrer le message qui correspond avec l'id indique")
pPlayer:SendBroadcastMessage(".announce del #id : sert a supprimer le message qui correspond a l'id indique")
end

firstWord = firstWord:lower()
secondWord = secondWord:lower()
if(firstWord == COMMAND and secondWord == "add") then
WorldDBQuery("INSERT into announce (id,text) VALUES ('".. maxID + 1 .."' , '"..restOfString.."')")
pPlayer:SendBroadcastMessage("\124cFFFF0000Votre message d'annonce a ete ajoute : \124r"..restOfString)
end

if(firstWord == COMMAND and secondWord == "show")then
local a = WorldDBQuery("SELECT text from announce where id='".. restOfString .."'")
pPlayer:SendBroadcastMessage("\124cffFF0000Il y a \124cff00ff00" .. maxID .. "\124r annonces enregistrees.")

if (a ~= nil) then
local field = a:GetColumn(0)
pPlayer:SendBroadcastMessage("\124cFFFF0000Annonce \124cff00ff00".. restOfString .." : \124r" .. field:GetString())
else
pPlayer:SendBroadcastMessage("\124cFFFF0000Annonce \124cff00ff00".. restOfString .." \124rn'existe pas !")
end
end

if(firstWord == COMMAND and secondWord == "del") then
local a = WorldDBQuery("SELECT text from announce where id='".. restOfString .."'")
if (a ~= nil) then
local field = a:GetColumn(0)
WorldDBQuery("DELETE FROM announce WHERE id = '"..restOfString.."'")
pPlayer:SendBroadcastMessage("\124cffFF0000Le message avec l'id \124cff00ff00"..restOfString.."\124r a ete supprime : " .. field:GetString())
else
pPlayer:SendBroadcastMessage("\124cffFF0000Le message avec l'id \124cff00ff00"..restOfString.."\124r n'a pas pu ete supprime car il n'existe pas.")
end
end
end
end

function World_AutoAnnounce()
local announceType = 2
local maxIDQ = WorldDBQuery("SELECT MAX(id) from announce"):GetColumn(0):GetLong()

if( maxID ~= 0 ) then
local announceId = math.random( 1, maxIDQ)
local announce = WorldDBQuery("SELECT text FROM announce WHERE id = '"..announceId.."'")
local field = announce:GetColumn(0)
if( announce ~= nil ) then
SendWorldMessage("\124cffff0000[Annonce automatique] : \124r" .. field:GetString(), announceType)
end
end
end

RegisterServerHook(16, "PlayerOnChat")
RegisterTimedEvent("World_AutoAnnounce", 120000, 0)[/code]

EDIT : Il reste un souci dans l'annonce automatique, j'verrais ça ce soir.
Re-EDIT : Normalement le soucis est réglé. Si il reste un problème postez à la suite du sujet.

Retourner en haut Accueil