CL
tfs 1.0

adicionando query no script

Por cleitonhip, 26 de nov. de 2015 em Scripts

query
script
16
3.5k
cleitonhipC
27 de novembro de 2015 às 06:55

boa noite galera do xtibia tenho um script aq de reset e queria que quando resetar daria 1 reset a mais na opçao resets em players

tfs 1.0

local config = {

backToLevel = 100,
exp = 4200,
redskull = false,
battle = false,
pz = false,
stages = {
{resets = 4, level = 350, vip = 330},
{resets = 9, level = 355, vip = 335},
{resets = 14, level = 360, vip = 340},
{resets = 19, level = 365, vip = 345},
{resets = 24, level = 380, vip = 350},
{resets = 29, level = 390, vip = 355},
{resets = 34, level = 410, vip = 360},
{resets = 39, level = 430, vip = 365},
{resets = 44, level = 450, vip = 370}
}
}
function onSay(cid, words, param)
local function getResets(cid)
local resets = getPlayerStorageValue(cid, 500)
return resets < 0 and 0 or resets
end
local function setResets(cid, count)
setPlayerStorageValue(cid, 500, getResets(cid) + count)
end
if config.redskull and getCreatureSkullType(cid) == 4 then
return doPlayerSendCancel(cid, "Voce precisa estar sem red skull para resetar.")
elseif config.pz and not getTilePzInfo(getCreaturePosition(cid)) then
return doPlayerSendCancel(cid, "Voce precisa estar em protection zone para resetar.")
elseif config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then
return doPlayerSendCancel(cid, "Voce precisa estar sem battle para resetar.")
end
local resetLevel = 0
for x, y in ipairs(config.stages) do
if getResets(cid) <= y.resets then
resetLevel = isPremium(cid) and y.vip or y.level
break
end
end
if getPlayerLevel(cid) < resetLevel then
return doPlayerSendCancel(cid, "Voce precisa do level " .. resetLevel .. " ou mais para resetar.")
end
setResets(cid, 1)
local guid = getPlayerGUID(cid)
doRemoveCreature(cid, true)
db.query("UPDATE `players` SET `level` = " .. config.backToLevel .. ", `experience` = " .. config.exp .. " WHERE `id` = " .. guid)
return true
end

t8vi1h.png

 

Editado Novembro 27 por cleitonhip

CaronteC
27 de novembro de 2015 às 11:09

Tente isto:

resets = db.query("SELECT resets FROM players WHERE id = "..getPlayerGUID(cid))

db.query("UPDATE players SET resets = ".. resets + 1.." WHERE id = "..getPlayerGUID(cid)..";) 
cleitonhipC
27 de novembro de 2015 às 19:58

Testando aqui

nociamN
27 de novembro de 2015 às 20:08

qual programa se ta usando pra abrir assim?

cleitonhipC
27 de novembro de 2015 às 23:56

qual programa se ta usando pra abrir assim?

 

xampp

 

Caronte

Deu um erro aqui

1gllj9.png

 

Editado Novembro 28 por cleitonhip

CaronteC
28 de novembro de 2015 às 00:17


resets = db.query("SELECT resets FROM players WHERE id = "..getPlayerGUID(cid))

 

db.query("UPDATE players SET resets = ".. (resets + 1) .." WHERE id = "..getPlayerGUID(cid)..";)

cleitonhipC
28 de novembro de 2015 às 00:23
resets = db.query("SELECT resets FROM players WHERE id = "..getPlayerGUID(cid))

db.query("UPDATE players SET resets = ".. (resets + 1) .." WHERE id = "..getPlayerGUID(cid)..";) 

161nm2g.png

CaronteC
28 de novembro de 2015 às 01:32
resets = db.query("SELECT resets FROM players WHERE id = "..getPlayerGUID(cid))

db.query("UPDATE players SET resets = ".. (resets + 1) .." WHERE id = "..getPlayerGUID(cid)) 

Eu copiei e colei, e esqueci de editar...boos.gif

cleitonhipC
28 de novembro de 2015 às 07:07
resets = db.query("SELECT resets FROM players WHERE id = "..getPlayerGUID(cid))

db.query("UPDATE players SET resets = ".. (resets + 1) .." WHERE id = "..getPlayerGUID(cid)) 

Eu copiei e colei, e esqueci de editar...boos.gif

 

Caronte ta dando erro assim [C]: in function '_add'

CaronteC
28 de novembro de 2015 às 12:54

Caronte ta dando erro assim [C]: in function '_add'

É só isso?

cleitonhipC
28 de novembro de 2015 às 16:31

É só isso?

Sim

AntharazA
29 de novembro de 2015 às 05:30

Tenta com isso:

	local result = db.getResult("SELECT `resets` FROM `players` WHERE `id` = "..getPlayerGUID(cid))

	if result:getID() == -1 then
		resets = 0
	else
		resets = result:getDataInt("resets")
	end
	db.query("UPDATE `players` SET `resets` = "..(resets + 1).." WHERE `id` = "..getPlayerGUID(cid))
cleitonhipC
29 de novembro de 2015 às 13:03

 

Tenta com isso:

	local result = db.getResult("SELECT `resets` FROM `players` WHERE `id` = "..getPlayerGUID(cid))

	if result:getID() == -1 then
		resets = 0
	else
		resets = result:getDataInt("resets")
	end
	db.query("UPDATE `players` SET `resets` = "..(resets + 1).." WHERE `id` = "..getPlayerGUID(cid))

Antharaz deu esse erro amigo

fvdagp.png

 

Editado Novembro 29 por cleitonhip

AntharazA
29 de novembro de 2015 às 17:42
	local resulta = db.storeQuery("SELECT `resets` FROM `players` WHERE `id` = "..getPlayerGUID(cid))

	if resulta == false then
		resets = 0
	else
		resets = resulta.getDataInt("resets")
	end
	result.free(resulta)
	db.query("UPDATE `players` SET `resets` = "..(resets + 1).." WHERE `id` = "..getPlayerGUID(cid))

Eu não vi que seu TFS era 1.0, tente com este código por favor.

MatheusGladM
29 de novembro de 2015 às 17:58
	local resulta = db.storeQuery("SELECT `resets` FROM `players` WHERE `id` = "..getPlayerGUID(cid))

	if resulta == false then
		resets = 0
	else
		resets = resulta.getDataInt("resets")
	end
	result.free(resulta)
	db.query("UPDATE `players` SET `resets` = "..(resets + 1).." WHERE `id` = "..getPlayerGUID(cid))

Eu não vi que seu TFS era 1.0, tente com este código por favor.

 

 

O correto seria:

	local resulta = db.storeQuery("SELECT `resets` FROM `players` WHERE `id` = "..getPlayerGUID(cid))

	if resulta == false then
		resets = 0
	else
		resets = result.getDataInt(resulta, "resets")
	end
	result.free(resulta)
	db.query("UPDATE `players` SET `resets` = "..(resets + 1).." WHERE `id` = "..getPlayerGUID(cid))