Ir para conteúdo

[Sistema] Guild Points


boors

Posts Recomendados

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

Editado por Boors
Link para o comentário
Compartilhar em outros sites

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)
ends

 

é end e coloque as tags do talkactions.xml se não tem gente que não vai conseguir usar o sistema

 

rep+

Link para o comentário
Compartilhar em outros sites

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)
ends

 

é end e coloque as tags do talkactions.xml se não tem gente que não vai conseguir usar o sistema

 

rep+

 

Obrigado por corrigir, pura falta de atenção!

Vou adicionar as tags do talkaction também.

 

Alguma sugestão de como melhorar o sistema? Ou alguma ideia de um novo sistema para fazer?

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 4 weeks later...
  • 5 months later...
  • 4 months later...
×
×
  • Criar Novo...