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