Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Como eu faço pra zerar uma parte da tabela das accounts?

No caso eu quero apagar o tempo de vip de todos os players do meu ot, e ela chama: viptime

Link para o post
Compartilhar em outros sites
UPDATE `accounts` SET `viptime`=0;

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

Sim, como não tem nenhuma condição ele vai fazer em todas as contas.

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

Tipo, é que eu deixei vip free até hoje, dai eu queria remover deles, porem tem pessoas que donataram, tem como eu retirar somente uma quantidade por exemplo, de somente quem tem menos do que 20 dias de vip? (obs: a tabela lá não fica o dia certinho, fica por exemplo: 127837123137)

Link para o post
Compartilhar em outros sites

Eu não sei como funciona os dias, se pudesse me explicar eu poderia fazer uma query para isso..

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServSuporte OTServSuporte de Scripts"

Para: "OTServSuporte OTServSuporte de Programação"

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

é desse sistema:

function installVip()
	if db.executeQuery("ALTER TABLE `accounts` ADD viptime INT(15) NOT NULL DEFAULT 0;") then
		print("[Vip System] Vip System instalado com sucesso!")
		return TRUE
	end
	print("[Vip System] Não foi possível instalar o Vip System!")
	return FALSE
end

-- By Account
function doTeleportPlayersByAccount(acc, topos)
	if db.executeQuery("UPDATE `players` SET `posx` = "..topos.x..", `posy` = "..topos.y..", `posz` = "..topos.z.." WHERE `account_id` = "..acc..";") then
		return TRUE
	end
	return FALSE
end

function getVipTimeByAccount(acc)
	local vip = db.getResult("SELECT `viptime` FROM `accounts` WHERE `id` = "..acc..";")
	if vip:getID() == -1 then
		print("[Vip System] Account not found!")
		return FALSE
	end
	return vip:getDataInt("viptime")
end

function setVipTimeByAccount(acc, time)
	if db.executeQuery("UPDATE `accounts` SET `viptime` = "..time.." WHERE `id` = "..acc..";") then
		return TRUE
	end
	return FALSE
end

function getVipDaysByAccount(acc)
	local vipTime = getVipTimeByAccount(acc)
	local timeNow = os.time()
	local days = math.ceil((vipTime - timeNow)/(24.83 * 60 * 60))
	return days <= 0 and 0 or days
end

function isVipAccount(acc)
	return getVipDaysByAccount(acc) > 0 and TRUE or FALSE
end

function addVipDaysByAccount(acc, days)
	if days > 0 then
		local daysValue = days * 24.83 * 60 * 60
		local vipTime = getVipTimeByAccount(acc)
		local timeNow = os.time()
		local time = getVipDaysByAccount(acc) == 0 and (timeNow + daysValue) or (vipTime + daysValue)
		setVipTimeByAccount(acc, time)
		return TRUE
	end
	return FALSE
end

function doRemoveVipDaysByAccount(acc, days)
	if days > 0 then
		local daysValue = days * 24.83 * 60 * 60
		local vipTime = getVipTimeByAccount(acc)
		local time = vipTime - daysValue
		setVipTimeByAccount(acc, (time <= 0 and 1 or time))
		return TRUE
	end
	return FALSE
end

function getVipDateByAccount(acc)
	if isVipAccount(acc) then
		local vipTime = getVipTimeByAccount(acc)
		return os.date("%d/%m/%y %X", vipTime)
	end
	return FALSE
end

-- By Player
function doTeleportPlayers(cid, topos)
	doTeleportPlayersByAccount(getPlayerAccountId(cid), topos)
end

function getVipTime(cid)
	return getVipTimeByAccount(getPlayerAccountId(cid))
end

function setVipTime(cid, time)
	return setVipTimeByAccount(getPlayerAccountId(cid), time)
end

function getVipDays(cid)
	return getVipDaysByAccount(getPlayerAccountId(cid))
end

function isVip(cid)
	return isVipAccount(getPlayerAccountId(cid))
end

function addVipDays(cid, days)
	return addVipDaysByAccount(getPlayerAccountId(cid), days)
end

function doRemoveVipDays(cid, days)
	return doRemoveVipDaysByAccount(getPlayerAccountId(cid), days)
end

function getVipDate(cid)
	return getVipDateByAccount(getPlayerAccountId(cid))
end
Link para o post
Compartilhar em outros sites

Eu tentei entender a lógica dele, mas ainda não consegui. ;c
Pode, sei lá, mostrar-me como fica salva a viptime de um player com 20 dias?

Editado por Rusherzin (veja o histórico de edições)

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

Só para confirmar:

20 = 1429985982.
Então com 19, 18, 17.. o número fica menor ou maior?

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

Então acho que a query seria:
 

UPDATE `accounts` SET `viptime`=0 WHERE `viptime` < 1429985982;

Se quanto menos forem os dias de vip menor for o valor da viptime então vai funcionar, mas aconselho fazer um backup antes.

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

No caso você fez que quem tiver menos que 20 dias, vai zerar certo? Pode me dar a certeza disso aqui? ahauhauh

Link para o post
Compartilhar em outros sites

Sim, fiz isso, mas de qualquer modo faça um backup. aiehuihea

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo