Ir para conteúdo

Adicionar valor da storage à tabela na database [TFS 1.2/GESIOR]

Featured Replies

Postado

Boa tarde. Eu venho tentando fazer no meu ot (e no site) um "ranking de quests feitas". Pra isso, primeiro fiz um script onLogin que verifica as storages de todas as quests do jogo e faz a contagem de quantas foram feitas numa storageSoma. 

 

Agora, eu criei uma coluna "quests_feitas" na tabela "players" da minha database "test" e quero fazer com que esse valor da storageSoma (que é o total de quests feitas pelo player) seja atualizado na coluna "quests_feitas" sempre que ele fizer login. 

 

Me parece bem simples, mas infelizmente não entendo de programação o suficiente para fazer isso. Agradeço se alguém puder ajudar. Segue o código (essa parte da dbQuery é a que está errada e preciso ajustar):

 

-- ordered as in creaturescripts.xml



local storagesQuests = {
	5010, 5020, 5030, 5040, 5050, 5060, 5070, 5080, 1114, 87580, 587423, 1036, 1096, 1087, 1111, 1112, 1113, 1115, 1048, 1116, 1039, 1109, 1086, 1049, 1118, 1117, 
	1049, 1050, 1038, 1065, 1044, 1004, 1067, 1047, 1027, 1022, 1040, 1010, 1031, 1030, 1005, 1066, 1061, 1088, 1069, 1045, 1089, 1020, 1093, 1026, 1077, 1081, 
	1095, 1035, 1072, 1075, 1033, 1070, 1006, 1062, 1076, 1034, 1017, 1064, 1041, 1079, 1002, 1082, 1092, 1029, 1032, 1021, 1018, 1037, 1105, 1083, 1099, 1046, 
	1000, 1098, 1019, 1051, 1014, 1012, 1043, 1094, 1084, 1001, 1042, 1106, 1078, 1008, 1104, 1013, 1090, 1011, 1052, 1080, 1101, 1010, 1003, 1028, 1007, 1073, 
	1074, 1102, 1071, 1063, 1097, 1053, 1068, 1091, 1085, 1009, 1023, 1024, 1025, 1103, 50084, 58784
}


local storageSoma = 100000

function onLogin(player, cid)
	for _, storage in ipairs(storagesQuests) do
		if player:getStorageValue(storage) == -1 then
			player:setStorageValue(storage, 0)
		end
	end

	player:setStorageValue(storageSoma, 0)
	
	for _, storage in ipairs(storagesQuests) do
		if player:getStorageValue(storage) == 1 then
			player:setStorageValue(storageSoma, player:getStorageValue(storageSoma) + 1)	
		end
	end
	
	db.query('INSERT INTO `player` (`quests_feitas`) VALUES (' .. storageSoma .. ' )')

	return true
end
 

 

 

Postado
local storagesQuests = {
	5010, 5020, 5030, 5040, 5050, 5060, 5070, 5080, 1114, 87580, 587423, 1036, 1096, 1087, 1111, 1112, 1113, 1115, 1048, 1116, 1039, 1109, 1086, 1049, 1118, 1117, 
	1049, 1050, 1038, 1065, 1044, 1004, 1067, 1047, 1027, 1022, 1040, 1010, 1031, 1030, 1005, 1066, 1061, 1088, 1069, 1045, 1089, 1020, 1093, 1026, 1077, 1081, 
	1095, 1035, 1072, 1075, 1033, 1070, 1006, 1062, 1076, 1034, 1017, 1064, 1041, 1079, 1002, 1082, 1092, 1029, 1032, 1021, 1018, 1037, 1105, 1083, 1099, 1046, 
	1000, 1098, 1019, 1051, 1014, 1012, 1043, 1094, 1084, 1001, 1042, 1106, 1078, 1008, 1104, 1013, 1090, 1011, 1052, 1080, 1101, 1010, 1003, 1028, 1007, 1073, 
	1074, 1102, 1071, 1063, 1097, 1053, 1068, 1091, 1085, 1009, 1023, 1024, 1025, 1103, 50084, 58784
}


local storageSoma = 100000

function onLogin(player, cid)
	for _, storage in ipairs(storagesQuests) do
		if player:getStorageValue(storage) == -1 then
			player:setStorageValue(storage, 0)
		end
	end

	local x = 0
	for _, storage in ipairs(storagesQuests) do
		if player:getStorageValue(storage) == 1 then
			x = x + 1
		end
	end

	player:setStorageValue(storageSoma, x)

	local playerId = player:getId()
	db.query("UPDATE `players` SET `quests_feitas` = " .. x .. " WHERE `id` = " .. playerId)

	return true
end

 

Postado
  • Autor

Cara, não sei nem como agradecer, tas resolvendo todos os meus problemas!

 

Mas aparentemente não tá sendo atualizada a coluna "quests_feitas" na database. Não deu nenhum erro na distro, mas todos os valores continuam zero (coloquei pra aparecer o valor da storageSoma no !stats e lá está contanto a qntd de quests).

 

Resolvido! 

 

O problema era aqui: 

 

local playerId = player:getId()

 

Eu tinha que usar: 

 

local playerId = player:getGuid()

 

Novamente muito obrigado Luan! Vc é foda cara.

 

 

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

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo