Guild Points v1.0
by Boors- exclusivo xtibia
Descrição
É um sistema muito simples que possibilita adicionar pontos para as guilds. Através de talkactions é possível exibir a pontuação da sua guild e o rank com as guilds de maior pontuação.
O Sistema
- Execute o seguinte comando na sua database
ALTER TABLE `guilds` ADD `guild_points` INTEGER NOT NULL DEFAULT 0
- Adicione as seguintes funções no arquivo lib/050-function.lua
function getGuildPoints(cid)
local res = db.getResult('select `guild_points` from guilds where id = \''..getPlayerGuildId(cid)..'\'')
if(res:getID() == -1) then
return false
end
local ret = res:getDataInt("guild_points")
res:free()
return tonumber(ret)
end
function addGuildPoints(cid, quant)
return db.executeQuery("UPDATE `guilds` SET `guild_points` = '".. getGuildPoints(cid) + quant .."' WHERE `id` ='"..getPlayerGuildId(cid).."'")
end
function removeGuildPoints(cid, quant)
return db.executeQuery("UPDATE `guilds` SET `guild_points` = '".. getGuildPoints(cid) - quant .."' WHERE `id` ='"..getPlayerGuildId(cid).."'")
end
end
- [ TALKACTION ] myguildpoints.lua
function onSay(cid, words, param, channel)
local guildPoints = getGuildPoints(cid)
local msg = "Your guild have ".. guildPoints .." points."
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, msg)
return true
end
- [ TALKACTION ] guildpointsrank.lua
function onSay(cid, words, param, channel)
local guilds = db.getResult('SELECT name, guild_points FROM guilds ORDER BY guild_points DESC LIMIT 5;')
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "--- Guild Points Rank")
repeat
local name = guilds:getDataString('name')
local points = guilds:getDataInt('guild_points')
local top = " "..name.." -> "..points.." points."
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, top)
until not tmp:next()
return true
end
- Adicionem no talkactions.xml
<!-- House points -->
<talkaction words="!myguildpoints" event="script" value="myguildpoints.lua"/>
<talkaction words="!guildpointsrank" event="script" value="guildpointsrank.lua"/>
Exemplo de uso
Uma quest em que a guild do player receba pontos.
function onUse(cid, item)
local questPoints = 5
local msg = "Your guild received "..questPoints..", points.\n "
queststatus = getPlayerStorageValue(cid,9999)
if item.actionid == 9999 and queststatus == -1 then
addGuildPoints (cid, questPoints)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, msg)
setPlayerStorageValue(cid,9999,1)
else
doPlayerSendCancel(cid,"You've already done this quest.")
end
return TRUE
end
Dúvidas ou Sugestões?
Postem no tópico, enviem PM ou pelo email boors@live.com
Att.,
Boors