[Sistema] Guild Points

boors
Por boors
em Mods, funções e outros

boors

learning....
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/10/11Posts: 11

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

Fir3element

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 16/06/08Posts: 998Gênero: Masculino

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+

boors

learning....
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/10/11Posts: 11

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?

Lolksky

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 29/07/10Posts: 211

Como funciona? cada kill que a guild gera, ganha um ponto? ;s

signtodos.png ~~ HaiL ~~

boors

learning....
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/10/11Posts: 11

Voce pode adicionar o que desejar. Um exemplo é por quests, mas pode ser implementado por kills, level....

gustavoMtek

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 28/11/10Posts: 175

voce podia posta como colocar para kda player que a guild mata é adc um ponto

lolcx9.gif

jamersonandres

KING OF SKYER
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 04/07/11Posts: 156Char no Tibia: King Of Skyer

como coloco na database?

VEJA OUTROS!

 

ommsign3.png

 

PUTS TO COM 80% DE ALERTA :S

barelysium%252520fan.png

Language

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/09/06Posts: 25

Muito bom amigo, gostei bastante!

Atenciosamente, Language

Lukitinha125

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/06/11Posts: 2Char no Tibia: Lukitinha

Voce pode adicionar o que desejar. Um exemplo é por quests, mas pode ser implementado por kills, level....

Como colocar por kills ??

lordrai

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/12/07Posts: 32Char no Tibia: aienbdn

Desculpe reviver o tópico mas como eu boto para quando 1 guild matar 1 cara que seja de outra ele ganhar 1 point???

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit

Creio que não seria necessário tonumber na função getGuildPoints(cid) porquê getDataInt já retorna números.

 

Belo sistema parabéns REP+.

jeoz.png

lordrai

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/12/07Posts: 32Char no Tibia: aienbdn

como eu boto para quando 1 guild matar 1 cara que seja de outra ele ganhar 1 point???