Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado
INFORMAÇÕES
  • TFS 1.0+
  • Funcional em Gesior e em Znote AAC.
_____________________________
SCRIPT
creaturescripts.xml
<event type="login" name="register_points_reward" script="points_reward.lua"/>
<event type="advance" name="points_reward" script="points_reward.lua"/>
creaturescripts/points_reward.lua:
--[[
    Award premium points for reaching certain levels
    Only for TFS 1.0+

    config:
        Voce precisa saber onde os premium points estao na database 
        Abaixo estao os valores para Gesior e ZnoteAAC
       
        db_table:             ZnoteAAC: 'znote_accounts'    Gesior: 'accounts'
        db_pointsColumn:     ZnoteAAC: 'points'            Gesior: 'premium_points'
        db_idColumn:         ZnoteAAC: 'account_id'        Gesior: 'id'

        storage:        coloque uma storage que nao foi usada
        messageType:    coloque o tipo de mensagem o player ira receber, por exemplo MESSAGE_STATUS_CONSOLE_BLUE

    rewards:
        Configure a quantidade de points que serao obtidos a cada vez que atingir certo level
        format:    [level] = points
]]

local config = {
    storage = 123, -- coloque uma storage que nao foi usada
    messageType = MESSAGE_STATUS_CONSOLE_BLUE,
    db_table = 'accounts',
    db_pointsColumn = 'premium_points',
    db_idColumn = 'id',
}

local rewards = {
    --[level] = points
    [50] = 1,
    [100] = 5,
    [200] = 10,
}
-- End config

function onAdvance(player, skill, oldLevel, newLevel)
    player = Player(player) -- for TFS 1.0
    if not player then
        return true
    end
    if skill == SKILL_LEVEL then
        if newLevel > player:getStorageValue(config.storage) then
            player:setStorageValue(config.storage, newLevel)
            local points = 0
            for i = oldLevel + 1, newLevel do
                if rewards[i] then
                    points = points + rewards[i]
                    player:sendTextMessage(config.messageType, string.format("Congratulations! You have been awarded %s premium point%s for reaching level %s!", rewards[i], rewards[i] > 1 and "s" or "", i))
                end
            end
            if points > 0 then
                db.asyncQuery("UPDATE `"..config.db_table.."` SET `"..config.db_pointsColumn.."` = `"..config.db_pointsColumn.."` + "..points.." WHERE `"..config.db_idColumn.."` = "..player:getAccountId())
            end
        end
    end
    return true
end

function onLogin(player)
    player = Player(player) -- for TFS 1.0
    if player then
        player:registerEvent("points_reward")
    end   
    return true
end
_____________________________
Créditos
  • forgee
  • 3 weeks later...
  • 4 weeks later...
  • 9 months later...

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo