Pedido Talkaction !guildpoints

evelindecassia
em Scripts

evelindecassia

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/08/11Posts: 6

queria um scrip que quando uma guild tivesse uma certa quantidade de players com level 150+ o lider da guild falasse !guildpoints e ganhasse pontos para guild!

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

até dá para fazer,só que não tem nexo.

 

por exemplo tem 10 jogadores level 150+ na guild Dream

ai o guild executa o comando e ganha 1 ponto

e depois? ele vai poder usar o comando até quando?

ou o comando só vai ser dado 1x por dia?...

bossisg.png

Renato Ribeiro

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 06/09/08Posts: 544Gênero: MasculinoChar no Tibia: Hallsiny

Poderia fazer assim, o primeiro !guildpoints precisa ter 5+ players level 150+, ai ganha x pontos, ai então para ganhar mais pontos com o comando precisaria de 10+, depois 15+, e assim sucessivamente. Só uma diquinha.

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

Poderia fazer assim, o primeiro !guildpoints precisa ter 5+ players level 150+, ai ganha x pontos, ai então para ganhar mais pontos com o comando precisaria de 10+, depois 15+, e assim sucessivamente. Só uma diquinha.

 

assim eu também acho melhor

bossisg.png

evelindecassia

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/08/11Posts: 6

é verdade assim melhor mas alguem ae sabe como fazer?

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

você executa isso na sua database no Sqlite:

 

ALTER TABLE `guilds` ADD `points` INT(11) NOT NULL DEFAULT '0';

 

em lib/050-function adiciona:

function getGuildPoints(cid)
local check = db.getResult("SELECT `points` FROM `guilds` WHERE `id` = " .. getPlayerGuildId(cid) .. ";")
return check:getDataInt("points") <= 0 and 0 or check:getDataInt("points") end
function addGuildPoints(cid,amount)
db.executeQuery("UPDATE `guilds` SET `points` = "..getGuildPoints(cid).."+"..amount.." WHERE `guilds`.`id` = "..getPlayerGuildId(cid)) end
function removeGuildPoints(cid,amount)
db.executeQuery("UPDATE `guilds` SET `points` = "..getGuildPoints(cid).."-"..amount.." WHERE `guilds`.`id` = "..getPlayerGuildId(cid)) end
function setGuildPoints(cid,value)
db.executeQuery("UPDATE `guilds` SET `points` = "..value.." WHERE `guilds`.`id` = "..getPlayerGuildId(cid))end

 

agr a talkaction:

 

 

points_guild.lua

function onSay(cid, words, param)
local t = {
[0] = {150,10},
[1] = {200,20},
[2] = {250,25}
}

if getPlayerGuildId(cid) and getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER then
	local count = 0
	for k, v in pairs(t) do
if getGuildPoints(cid) == k then
	local lista = db.getResult("SELECT `name`, `rank_id` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " .. getGuildId(getPlayerGuildName(cid)) .. ");")  
	if(lista:getID() ~= -1) then
	repeat  
	if getPlayerLevel(getPlayerByName(lista:getDataString("name"))) >= v[1] then
	count = count + 1
	end	
	  until not lista:next()
	  if count >= v[2] then
	  addGuildPoints(cid,1)
	  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens,sua guild ganhou um ponto por possuir "..count.." Players level "..v[1].." ou mais.")
	  doBroadcastMessage("a Guild ".. getPlayerGuildName(cid) .." acabou de receber um ponto por possuir "..count.." Players level "..v[1].." ou mais")
	  return true
	  else
	  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua guild precisa de "..v[2].." players level "..v[1].." ou mais")
	  return true
	  end  
	  lista:free()
end
end
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "você precisa ser lider de uma guild")
end
return true
end

 

explicação:

 

 

local t = {

[0] = {150,10},

[1] = {200,20},

[2] = {250,25}

}

 

[0] no caso é a quantidade de pontos que a guild tem

{level,quantidade de player}

 

está configurado assim:

 

se a guild possuir 0 pontos ela tem que conseguir 10 player level 150+ para ganhar 1 ponto

se a guild possuir 1 ponto ela tem que conseguir 20 player level 200+ para ganhar 1 ponto

se a guild possuir 2 ponto ela tem que conseguir 25 player level 250+ para ganhar 1 ponto

 

ai vc edita e adiciona + ok

bossisg.png

evelindecassia

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/08/11Posts: 6

ok vlw vou testa aqui jaja digo se funfo!

 

funcionou cara vlw mesmo tava precisando muito disso!

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

beleza

no caso é melhor testar com players,as vezes com os chars GOD pode dar algum bug

bossisg.png

evelindecassia

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/08/11Posts: 6

funfo mesmo testei com player e deu vlw! ^^

HisashiitYamaguti

O Cortiço - Aluísio Azevedo.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 17/07/11Posts: 705

Tópico fechado para evitar posts...

Ajude o fórum a ficar limpo.

hisashi.png