Ir para conteúdo

Posts Recomendados

Olá, achei um script de adicionar skill e ml na troca por um x item!

Mais na verdade eu quero que ele remova premium da minha database "mysql".

 

Script:

local config = {
    protectZone = "sim", -- Precisa estar em PZ para usar o comando?

    skill = {
        item = 9971, -- Item removido
        quantidade = 10, -- Quantidade
        quantidadeskill = 10, -- Skill adicionada
        limiteskill = 350 -- Limite
    },

    magicLevel = {
        item = 9971, -- Item removido
        quantidade = 15, -- Quantidade
        quantidademl = 5, -- Magic level adicionado
        limitedeml = 200 -- Limite
    },

    skillID = { -- ID das skills
        ["club"] = SKILL_CLUB,
        ["sword"]= SKILL_SWORD,
        ["axe"] = SKILL_AXE,
        ["distance"] = SKILL_DISTANCE,
        ["shielding"] = SKILL_SHIELD
    },

    vocationSkill = { -- Vocações que pode comprar x skill
        ["club"] = {4, 8},
        ["sword"] = {4, 8},
        ["axe"] = {4, 8},
        ["distance"] = {3, 7},
        ["shielding"] = {4, 8}
    },

    vocationMagicLevel = {1, 2, 5, 6}, -- Vocações que pode comprar magic level

    delay = {
        skill = {
            storage = 45,
            duration = 5 -- Tempo para comprar skill novamente
        },

        magicLevel = {
            storage = 97,
            duration = 5 -- Tempo para comprar magic level novamente
        }
    }
}

function onSay(cid, words, param, channel)
    local playerId = getPlayerGUID(cid)
    if config.protectZone == "sim" and not getTilePzInfo(getCreaturePosition(cid)) then
        return doPlayerSendCancel(cid, "Você precisa estar em protection zone para comprar.")
    end

    if param == "magiclevel" then
        if getPlayerMagLevel(cid) < config.magicLevel.limitedeml then
            if isInArray(config.vocationMagicLevel, getPlayerVocation(cid)) then
                if doPlayerRemoveItem(cid, config.magicLevel.item, config.magicLevel.quantidade) then
                    if (os.time() - getPlayerStorageValue(cid, config.delay.magicLevel.storage)) >= config.delay.magicLevel.duration then
                        setPlayerStorageValue(cid, config.delay.magicLevel.storage, os.time())
                        doRemoveCreature(cid, true)
                        db.executeQuery("UPDATE `players` SET `maglevel` = `maglevel` + " .. config.magicLevel.quantidademl .. " WHERE `id` = " .. playerId)
                    else
                        doPlayerSendCancel(cid, "Espere " .. config.delay.magicLevel.duration .. " segundos para comprar novamente.")
                    end
                else
                    doPlayerSendCancel(cid, "Você não tem o item requerido.")
                end
            else
                doPlayerSendCancel(cid, "Voce não pode comprar magic level.")
            end
        else
            doPlayerSendCancel(cid, "Você chegou no limite de magic level.")
        end
    elseif config.skillID[string.lower(param)] then
        if getPlayerSkill(cid, config.skillID[string.lower(param)]) < config.skill.limiteskill then
            if isInArray(config.vocationSkill[string.lower(param)], getPlayerVocation(cid)) then
                if doPlayerRemoveItem(cid, config.skill.item, config.skill.quantidade) then
                    if (os.time() - getPlayerStorageValue(cid, config.delay.skill.storage)) >= config.delay.skill.duration then
                        setPlayerStorageValue(cid, config.delay.skill.storage, os.time())
                        doRemoveCreature(cid, true)
                        db.executeQuery("UPDATE `player_skills` SET `value` = `value` + " .. config.skill.quantidadeskill .. " WHERE `player_id` = " .. playerId .. " and `skillid` = " .. config.skillID[string.lower(param)])
                    else
                        doPlayerSendCancel(cid, "Espere " .. config.delay.skill.duration .. " segundos para comprar novamente.")
                    end
                else
                    doPlayerSendCancel(cid, "Você não tem o item requerido.")
                end
            else
                doPlayerSendCancel(cid, "Voce não pode comprar este skill.")
            end
        else
            doPlayerSendCancel(cid, "Você chegou no limite de skill.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Possíveis parâmetros: club, sword, axe, distance, shielding, magiclevel.")
    end
    return true
end

Se podem ajudar agradeço!

Link para o comentário
https://xtibia.com/forum/topic/234896-removendo-premium/
Compartilhar em outros sites

Pode ser também. kkkkk, quero apenas uma base de como faço, pois vo criar varias tabelas para remover, ai preciso desse exemplo!

Você pode colocar essas funções em suas libs:

function getPlayerPoints(account) -- by Bruno Minervino
	local query = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `name` = " .. db.escapeString(account))
	if query:getID() ~= -1 then
		return tonumber(query:getDataString("premium_points"))
	end
	return 0
end

function setPlayerPoints(account, points)  -- by Bruno Minervino
	db.query("UPDATE `accounts` SET `premium_points` = `premium_points` " .. points .. " WHERE `name` = '" .. account .. "';")
end
Exemplo de funcionamento:

local points = 30

function onSay(cid, words, param)

	local account  = getPlayerAccount(cod)

	if getPlayerPoints(account) >= points then
		-- faz algo
		setPlayerPoints(account, -points)
	else
		-- não tem pontos
	end
	return true
end
Atribuir pontos: setPlayerPoints(account, +points)

Remover pontos: setPlayerPoints(account, -points)

Link para o comentário
https://xtibia.com/forum/topic/234896-removendo-premium/#findComment-1656948
Compartilhar em outros sites

  • 4 weeks later...
Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...