Eu tive que adaptar as funções do vodkart, pois iria dar um errozinho ao usar elas seguidas, já que as duas funções pegam informações do player e depois removem ele, assim que a primeira terminasse, a segunda não ia conseguir pegar informações do player (pois ele estaria off) e iria tentar remover ele novamente, sendo que ele já foi removido, então ia dar alguns erros no server, o fist iria aumentar e o magic level não iria diminuir...
o parâmetro newText é uma string cara, um texto, você não pode comparar ela diretamente com um número e muito menos fazer operações aritméticas com textos.
depois que você estava colocando a skill do fist diretamente igual ao texto entrado e o mesmo com magic, então depois de executar a script, um player com magic level 10 e club 10 que escrevesse 5 no texto, iria ficar com 5 de club e -5 de magic level (magic level negativo?)
use assim:
function doPlayerSetSkill(pid, skill, amount)
local player = getPlayerByGUID(pid)
if isCreature(player) then doRemoveCreature(player, true) end
db.executeQuery("UPDATE `player_skills` SET `value` = ".. amount .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. skill ..";")
return true
end
function doPlayerSetMagic(pid, amount)
local player = getPlayerByGUID(pid)
if isCreature(player) then doRemoveCreature(player, true) end
db.executeQuery("UPDATE `players` SET `maglevel` = " .. amount .. " WHERE `id` = "..pid)
return true
end
function onTextEdit(cid, item, newText)
if item.itemid ~= 1949 then return true end
local value = tonumber(newText)
if not value then
doPlayerSendCancel(cid, "Por favor, insira um número válido.")
return false
end
local guid = getPlayerGUID(cid)
local magic = getPlayerMagLevel(cid)
local fist = getPlayerSkillLevel(cid, 0)
if magic >= value then
doPlayerSetSkill(guid, 0, fist + value)
doPlayerSetMag(guid, magic - value)
end
return false
end
perceba que ainda há algumas falhas nesse script já que eu não sei o que você pretende fazer, por exemplo, se o player escrever um número negativo na caixa de texto, em vez de perder magic level e ganhar fist, ele estaria perdendo fist e ganhando magic level...
essa script não é lá muito inteligente, pois não há limitações... quero dizer que um cara pra upar o magic level do 0 para 1 leva muito pouco tempo, aí ele passa pra fist, depois upa mais 1 de magic level, e passa de novo... de 1 em 1 o cara consegue pegar 40k fist em 1 dia... mas vai ver o seu server é alternativo e nem usa as skills do tibia, por isso não coloquei nenhuma limitação, mas depois vê isso aí que tá fácil de abusar dessa script