Ir para conteúdo

!online Mostrando Os Vips On!


mihaf

Posts Recomendados

Olá, eu gostária de saber,

 

Como eu Adapto o TalkAction:

 

!online

 

para mostrar também,

a Quantidade de Player VIP

e se a pessoa é ou Não VIP.

 

Vou citar um Exemplo de !online normal:

 

21:13 2 player(s) online:

21:13 Homem Sem Vip [100], Homem Com Vip [200].

 

Agora,

 

Como eu queria meu Script:

 

21:13 2 player(s) online:

21:13 1 player(s) VIP online:

21:13 Homem Sem Vip [100], (VIP) Homem Com Vip [200].

 

Gostária que algum Pró em Script,

 

me ajudasse a fazer isto.

 

Segue meu Script do TalkAction !online:

 

local config = {
showGamemasters = getBooleanFromString(getConfigValue('displayGamemastersWithOnlineCommand'))
}

function onSay(cid, words, param, channel)
local players = getPlayersOnline()
local strings = {""}

local i, position = 1, 1
local added = false
for _, pid in ipairs(players) do
	if(added) then
		if(i > (position * 7)) then
			strings[position] = strings[position] .. ","
			position = position + 1
			strings[position] = ""
		else
			strings[position] = i == 1 and "" or strings[position] .. ", "
		end
	end

	if((config.showGamemasters or getPlayerCustomFlagValue(cid, PlayerCustomFlag_GamemasterPrivileges) or not getPlayerCustomFlagValue(pid, PlayerCustomFlag_GamemasterPrivileges)) and (not isPlayerGhost(pid) or getPlayerGhostAccess(cid) >= getPlayerGhostAccess(pid))) then
		strings[position] = strings[position] .. getCreatureName(pid) .. " [" .. getPlayerLevel(pid) .. "]"
		i = i + 1
		added = true
	else
		added = false
	end
end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, (i - 1) .. " player(s) online:")
for i, str in ipairs(strings) do
	if(str:sub(str:len()) ~= ",") then
		str = str .. "."
	end

	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str)
end

return true
end

 

OBS: Eu utilizo o Sistema de VIP DO MOCK!

 

Segue a LIB do meu VIP System:

 

vip sys.lua

vip = {
  name = "Vip system";
  author = "Mock";
  version = "1.0.0.0";
  query="ALTER TABLE `accounts` ADD `vip_time` INTEGER";
  query2="ALTER TABLE `accounts` ADD `vip_time` INT(15) NOT NULL"
}
function vip.setTable()
  dofile('config.lua')
  if sqlType == "sqlite" then
  	db.executeQuery(vip.query)
  else
       db.executeQuery(vip.query2)
  end
end
function vip.getVip(cid)
        assert(tonumber(cid),'Parameter must be a number') 
        if isPlayer(cid) == FALSE then error('Player don\'t find') end; 
        ae =  db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..getPlayerAccount(cid).."';")
        if ae:getID() == -1 then
           return 0
        end
local retee = ae:getDataInt("vip_time") or 0
ae:free()
        return retee
end

function vip.getVipByAcc(acc)
        assert(acc,'Account is nil')
        local a = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';")
        if a:getID() ~= -1 then
            return a:getDataInt("vip_time") or 0, a:free()
        else
            error('Account don\'t find.')
        end
end

function vip.setVip(cid,time)
        dofile("config.lua")
        assert(tonumber(cid),'Parameter must be a number')
        assert(tonumber(time),'Parameter must be a number')
        if isPlayer(cid) == FALSE then error('Player don\'t find') end; 
        db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';")
end

function vip.getVipByAccount(acc)
        assert(acc,'Account is nil')
        return db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';"):getDataInt("vip_time") or 0
end                                      

function vip.hasVip(cid)
        assert(tonumber(cid),'Parameter must be a number')
        if isPlayer(cid) == FALSE then error('Player don\'t find') end;
        local t = vip.getVip(cid) or 0
        if os.time(day) < t then
           return TRUE
        else
           return FALSE
        end
end

function vip.accountHasVip(acc)
        assert(acc,'Account is nil')
        if os.time() < vip.getVipByAccount(acc) then
           return TRUE
        else
           return FALSE
        end
end
function vip.getDays(days)
  return (3600 * 24 * days)
end
function vip.addVipByAccount(acc,time)
  assert(acc,'Account is nil')
  assert(tonumber(time),'Parameter must be a number')
  local a = vip.getVipByAcc(acc)
  a = os.difftime(a,os.time())
  if a < 0 then a = 0 end;
  a = a+time
  return vip.setVipByAccount(acc,a)
end
function vip.setVipByAccount(acc,time)
        dofile("config.lua")
        assert(acc,'Account is nil')
        assert(tonumber(time),'Parameter must be a number')
        db.executeQuery("UPDATE `accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='"..acc.."';")
        return TRUE
end
function vip.returnVipString(cid)
  assert(tonumber(cid),'Parameter must be a number')
  if isPlayer(cid) == TRUE then
     return os.date("%d %B %Y %X ", vip.getVip(cid))
  end
end

 

 

Espero que alguem me ajude,

 

Obrigado.

 

Eu estava pensando em fazer algo como um FOr,

 

Que dentro deste for eu epgo os players online:

 

getPlayersOnline()

 

e dpois,

 

eu mandava um if, perguntando se o Player é vip:

 

if vip.getVip(cid) > 0 then

 

Ai colocava o (VIP) na frente do nick do player,

 

e o VIP pegava outro player...

 

e assim até acabar...

 

Só que não sei ao certo, como fazer isto..

 

Só dei esta ideia para ver se abro a mente de vocês :D

 

Obrigado, Again!

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

Amigo este local é para postagem de scripts já prontas, você está

com dúvida sobre uma script então irei move-lo para o local de Dúvidas sobre Scripting..

 

 

Movido!

Link para o comentário
Compartilhar em outros sites

Amigo este local é para postagem de scripts já prontas, você está

com dúvida sobre uma script então irei move-lo para o local de Dúvidas sobre Scripting..

 

 

Movido!

Obrigado por mover,

 

eu realmente postei meio perdido...

 

Mais enfim,

 

Ninguém com habilidade o suficiente para me ajudar ? x.x

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...