Como funciona esse sistema do seu server, de premium point?
Se souber mexer em algo, basta substituir o que tem entre o "then" e o primeiro "end" por algum código que adicione premium points (que você saiba que funcione).
info
Grupo: Lenda
Registrado: 03/10/06
Posts: 2.6k
Reputação: +309
Gênero: Masculino
Char no Tibia: Knight Orion

Como funciona esse sistema do seu server, de premium point?
Se souber mexer em algo, basta substituir o que tem entre o "then" e o primeiro "end" por algum código que adicione premium points (que você saiba que funcione).
info
Grupo: Infante
Registrado: 04/03/11
Posts: 1.6k
Reputação: +393
Char no Tibia: No Have

Acredito que seja por storage se souber o numero da storage manda ela....
não é por storage não. É uma coluna (campo) que fica na db do mysql.
na table Accounts, la onde mostra "id, premdays" e tal. Tem uma chamada: Premium_Points
acredito que é soh colocar pra ele ganhar um X Numero nesse campo.
Não sei meche com databases mais posso tentar, envie uma ss ou escreva
o que tem dentro da tabela premium_points
function onAdvance(cid, skill, oldlevel, newlevel)
local quantia = 10
if(getPlayerStorageValue(cid, 99963) ~= 1 and skill == SKILL__LEVEL and newlevel >= 45) then
db.executeQuery("INSERT INTO `accounts` (`premium_points`) VALUES ('".. quantia.."');")
setPlayerStorageValue(cid, 99963, 1)
doPlayerSendTextMessage(cid, 22, "You have received 5 crystal coins because you reached level 45")
end
return TRUE
end
Testa ai, não sei se vai funfa
Editado Maio 23 por Vilden
não funcionou nao vilden, a proposito...
vc colocou db.executequery, isso não colocaria os points para todas as accounts do server?
e outra duvida tbm: percebi que ali em ('".. quantia.."') , falta um espaço entre os ".." e "quantia" né? ou n tem nada a ver? kkk
resumindo, não funcionou não..
aah, outra coisa, isso afetaria os points que o player ja tem? por exemplo, eu quero q ele ganhe "MAIS" 10 pontos ao atingir 350. E não "setar" 10 points, entende? tipo, eu ja tenho 20 points, se eu chegar no lvl 350 a query vai "setar" 10 points, ou vai "adicionar" + 10 points, totalizando 30?
eu tenho uma query aki, não sei se serviria para te ajudar:
UPDATE `accounts` SET `premium_points` = `premium_points` + '".$points."'
aguardo, vlw ![]()
Editado Maio 23 por Lucas502
function onAdvance(cid, skill, oldlevel, newlevel)
local quantia = 10
if(getPlayerStorageValue(cid, 99963) ~= 1 and skill == SKILL__LEVEL and newlevel >= 45) then
db.executeQuery("INSERT INTO `accounts` (`premium_points`) VALUES ('premium_points' + '".. quantia .."');")
setPlayerStorageValue(cid, 99963, 1)
doPlayerSendTextMessage(cid, 22, "You have received 5 crystal coins because you reached level 45")
end
return TRUE
end
Não sei mecher com database rs
mysql_real_query<>: INSERT INTO `accounts` <`premium_points`> VALUES <'premium_points' + '10'>; - MYSQL ERROR: Duplicate entry '' for key 2 <1062>
info
Grupo: Barão
Registrado: 12/09/10
Posts: 249
Reputação: +53

Teste:
function onAdvance(cid, skill, oldlevel, newlevel)
local points = 50
if(getPlayerStorageValue(cid, 99963) ~= 1 and skill == SKILL__LEVEL and newlevel >= 45) then
db.executeQuery("UPDATE `accounts` SET `premium_points` = "..points.." WHERE `name` ='"..getPlayerAccount(cid).."'")
setPlayerStorageValue(cid, 99963, 1)
doPlayerSendTextMessage(cid, 22, "editar texto")
end
return TRUE
end
Editado Maio 23 por dragonfight
ok dragonfight, não testei ainda mas acho q ira funcionar, só q tem um porém..
como eu falei acima, parece q este seu script q vc postou, irá "setar" os 10 pontos, e não "somar" +10 aos points que a account ja tem, entendeu?
Eu quero que a query "adicione, some" +10 points, e não "setar" os 10 points, para que não seja afetado os points que a account ja tem...
info
Grupo: Barão
Registrado: 12/09/10
Posts: 249
Reputação: +53

Vá na pasta libs depois em 050-function e adicione as seguintes funções:
function getAccountPoints(cid)
local Info = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1")
if Info:getID() ~= LUA_ERROR then
local Points= Info:getDataInt("premium_points")
Info:free()
return Points
end
return LUA_ERROR
end
function doAddPoints(cid, points)
db.executeQuery("UPDATE `accounts` SET `premium_points` = `premium_points` + " .. points .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
end
Depois o código fica assim:
function onAdvance(cid, skill, oldlevel, newlevel) local points = 50 if(getPlayerStorageValue(cid, 99963) ~= 1 and skill == SKILL__LEVEL and newlevel >= 45) then doAddPoints(cid, points) setPlayerStorageValue(cid, 99963, 1) doPlayerSendTextMessage(cid, 22, "editar texto") end return TRUE end
Crédito pelas funções ao Lord Side de um outro fórum na Net
Tem também a função de remover os pontos ingame, o que pode ser útil:
function doRemovePoints(cid, points)
local Info = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1")
if Info:getID() ~= LUA_ERROR then
db.executeQuery("UPDATE accounts SET premium_points = - " .. points .. " WHERE id=" .. getPlayerAccountId(cid) .. ";")
Info:free()
return 1
end
end
Editado Maio 23 por dragonfight
deu error:
Cannot load script reward.lua:10 'end' expected <to close 'function' at line 1> near '<eof>'
info
Grupo: Barão
Registrado: 12/09/10
Posts: 249
Reputação: +53

Maws errei, tenta aew:
function onAdvance(cid, skill, oldlevel, newlevel) local points = 50 if(getPlayerStorageValue(cid, 99963) ~= 1 and skill == SKILL__LEVEL and newlevel >= 45) then doAddPoints(cid, points) setPlayerStorageValue(cid, 99963, 1) doPlayerSendTextMessage(cid, 22, "editar texto") end return TRUE end
resolvido, vlw ae otimo script, porém, nem precisei adicionar os functions na lib não, usei o db.executequery que postou antes ![]()
vlw Vilden e DragonFight
info
Grupo: Artesão
Registrado: 31/03/07
Posts: 122
Reputação: +18
Ae galera beleza? preciso de uma ajudinha basica aki pra colocar recompensa quando o player atingir certo level
mas tem um porém, não quero q ele ganhe itens, quero que a recompensa seja premium points (premium points do gesior) para que possa gastar os points no site
tenho um exemplo aki, mas é de item e character, como faço para colocar pra ganhar premium point na account:
Aguardo, Vlw!