Suporte ao desenvolvimento de jogos!


    Ranking do Jogo

    Compartilhe
    avatar
    RD12
    Lenda
    Lenda

    Medalhas :
    Mensagens : 1967
    Créditos : 743

    Ranking do Jogo

    Mensagem por RD12 em Dom Jun 10, 2012 1:19 am

    Ranking


    Esse script mostra o rank de 1 a 10 de quem finalizou o jogo, no computador local. Mostra de acordo com a variável 10 do jogador, então ela seria a pontuação, caso queira que seja o level, só por o valor dela o Level.

    O script salva com o nome do primeiro herói, então se for usar é necessário por para o jogador escolher o nome do herói.

    Para atualizar O rank com a pontuação atual do jogador, chame o script Rank.Salvar . Para resetar o rank, chame o script Rank.Reset

    obs: O ranking fica salvo no arquivo game.rank na pasta do jogo.

    Screenshots

    Spoiler:

    O rank abaixo não tem compromisso com a realidade.

    Antes de postar o script vou ensinar como por a opção rank na scene Title:
    É Opcional por essa opção na scene_title
    Vá até o script Window_TitleCommand na linha 37, onde tem add_command("Rank", :rank). Em baixo adicione esse código:
    add_command("Rank", :rank)

    Agora vá no Scene_Title, na linha 96, onde tem @command_window.set_handler... Adicione:
    @command_window.set_handler(:rank, method(:command_rank))

    Pronto, agora podemos ir ao script.

    Código:
    #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
    #  |Autor: RD12|                  Rank Local
    #------------------------------------------------------------------------------
    #          Mostra o Rank de 1 a 10 de quem jogou no computador local
    #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
    # Atualizar o Rank: Rank.Salvar
    # Resetar o rank: Rank.Reset
    # O script atualiza o rank de acordo com a pontuação, que é a variável de ID
    #escolhida no modulo abaixo.
    # Ao salvar o Rank irá salvar com o nome do primeiro Herói, então é bom por
    #para escolher o nome ao iniciar o jogo.
    #        Aparecer a scene de rank: SceneManager.goto(Scene_Rank)
    #                        www.aldeiarpgbr.com


    module Rank_Conf
      Text_1 = "Jogador"
      Text_2 = "Pontuação"#Level
      Imagem = Cache.picture("rank")
      #ID Variável que armazena o ponto do jogador no jogo
      Var_Ponto = 10
    end

    class Scene_Rank < Scene_Base

      def start
        super
         
        File.open("game.rank", "rb") do |file|
          contents = Marshal.load(file)
          $jogadores        = contents[:jogadores]
          $pontos          = contents[:pontos]
        end
    show_rank
      end
     
      def terminate
        super
        @sprite.bitmap.dispose
        @sprite.dispose
      end
     
      def update
        super
        SceneManager.goto(Scene_Title) if Input.trigger?(:C)
      end

      def show_rank
        @sprite = Sprite.new
        @sprite.bitmap = Rank_Conf::Imagem
        @sprite.bitmap.draw_text(120, 10, 300, 32, Rank_Conf::Text_1, 0)
        @sprite.bitmap.draw_text(300, 10, 300, 32, Rank_Conf::Text_2, 0)
        #Rank 1
        @sprite.bitmap.draw_text(90, 50+27, 300, 32, "1- "+$jogadores[0], 0)
        @sprite.bitmap.draw_text(330, 50+27, 300, 32, $pontos[0], 0)
        #Rank 2
        @sprite.bitmap.draw_text(90, 50+27*2, 300, 32, "2- "+$jogadores[1], 0)
        @sprite.bitmap.draw_text(330, 50+27*2, 300, 32, $pontos[1], 0)
        #Rank 3
        @sprite.bitmap.draw_text(90, 50+27*3, 300, 32, "3- "+$jogadores[2], 0)
        @sprite.bitmap.draw_text(330, 50+27*3, 300, 32, $pontos[2], 0)
        #Rank 4
        @sprite.bitmap.draw_text(90, 50+27*4, 300, 32, "4- "+$jogadores[3], 0)
        @sprite.bitmap.draw_text(330,50+27*4, 300, 32, $pontos[3], 0)
        #Rank 5
        @sprite.bitmap.draw_text(90, 50+27*5, 300, 32, "5- "+$jogadores[4], 0)
        @sprite.bitmap.draw_text(330,50+27*5, 300, 32, $pontos[4], 0)
        #Rank 6
        @sprite.bitmap.draw_text(90, 50+27*6, 300, 32, "6- "+$jogadores[5], 0)
        @sprite.bitmap.draw_text(330,50+27*6, 300, 32, $pontos[5], 0)
        #Rank 7
        @sprite.bitmap.draw_text(90, 50+27*7, 300, 32, "7- "+$jogadores[6], 0)
        @sprite.bitmap.draw_text(330,50+27*7, 300, 32, $pontos[6], 0)
        #Rank 8
        @sprite.bitmap.draw_text(90, 50+27*8, 300, 32, "8- "+$jogadores[7], 0)
        @sprite.bitmap.draw_text(330,50+27*8, 300, 32, $pontos[7], 0)
        #Rank 9
        @sprite.bitmap.draw_text(90, 50+27*9, 300, 32, "9- "+$jogadores[8], 0)
        @sprite.bitmap.draw_text(330,50+27*9, 300, 32, $pontos[8], 0)
        #Rank 10
        @sprite.bitmap.draw_text(80, 50+27*10, 300, 32, "10- "+$jogadores[9], 0)
        @sprite.bitmap.draw_text(330,50+27*10, 300, 32, $pontos[9], 0)
       
        @sprite.bitmap.font.size = 20
        @sprite.bitmap.draw_text(370, 50+27*12, 150, 32, "Enter - Voltar", 0)
      end

    end

     class Rank

     def self.Salvar

        File.open("game.rank", "rb") do |file|
          rank = Marshal.load(file)
          $jogadores  =  rank[:jogadores]
          $pontos      =  rank[:pontos]
        end
        if $game_variables[Rank_Conf::Var_Ponto] >= $pontos[0]
          atualizar_rank(0)
        elsif $game_variables[Rank_Conf::Var_Ponto] >= $pontos[1]
          atualizar_rank(1)
        elsif $game_variables[Rank_Conf::Var_Ponto] >= $pontos[2]
          atualizar_rank(2)
        elsif $game_variables[Rank_Conf::Var_Ponto] >= $pontos[3]
          atualizar_rank(3)
        elsif $game_variables[Rank_Conf::Var_Ponto] >= $pontos[4]
          atualizar_rank(4)
        elsif $game_variables[Rank_Conf::Var_Ponto] >= $pontos[5]
          atualizar_rank(5)
        elsif $game_variables[Rank_Conf::Var_Ponto] >= $pontos[6]
          atualizar_rank(6)
        elsif $game_variables[Rank_Conf::Var_Ponto] >= $pontos[7]
          atualizar_rank(7)
        elsif $game_variables[Rank_Conf::Var_Ponto] >= $pontos[8]
          atualizar_rank(8)
        elsif $game_variables[Rank_Conf::Var_Ponto] >= $pontos[9]
          atualizar_rank(9)
        elsif $game_variables[Rank_Conf::Var_Ponto] >= $pontos[10]
          atualizar_rank(10)
        end
       
      end
     
        def self.atualizar_rank(new_rank)
          msgbox("Você ficou no rank: "+(new_rank+1).to_s)
          @old_pontos = $pontos
          $jogadores[new_rank] = $game_party.members[0].name
        if new_rank == 0
          $pontos[9] = @old_pontos[8]
          $pontos[8] = @old_pontos[7]
          $pontos[7] = @old_pontos[6]
          $pontos[6] = @old_pontos[5]
          $pontos[5] = @old_pontos[4]
          $pontos[4] = @old_pontos[3]
          $pontos[3] = @old_pontos[2]
          $pontos[2] = @old_pontos[1]
          $pontos[1] = @old_pontos[0]
          $pontos[0] = $game_variables[Rank_Conf::Var_Ponto]
        elsif new_rank == 1
          $pontos[9] = @old_pontos[8]
          $pontos[8] = @old_pontos[7]
          $pontos[7] = @old_pontos[6]
          $pontos[6] = @old_pontos[5]
          $pontos[5] = @old_pontos[4]
          $pontos[4] = @old_pontos[3]
          $pontos[3] = @old_pontos[2]
          $pontos[2] = @old_pontos[1]
          $pontos[1] = $game_variables[Rank_Conf::Var_Ponto]
          $pontos[0] = @old_pontos[0]
        elsif new_rank == 2
          $pontos[9] = @old_pontos[8]
          $pontos[8] = @old_pontos[7]
          $pontos[7] = @old_pontos[6]
          $pontos[6] = @old_pontos[5]
          $pontos[5] = @old_pontos[4]
          $pontos[4] = @old_pontos[3]
          $pontos[3] = @old_pontos[2]
          $pontos[2] = $game_variables[Rank_Conf::Var_Ponto]
          $pontos[1] = @old_pontos[1]
          $pontos[0] = @old_pontos[0]
        elsif new_rank == 3
          $pontos[9] = @old_pontos[8]
          $pontos[8] = @old_pontos[7]
          $pontos[7] = @old_pontos[6]
          $pontos[6] = @old_pontos[5]
          $pontos[5] = @old_pontos[4]
          $pontos[4] = @old_pontos[3]
          $pontos[3] = $game_variables[Rank_Conf::Var_Ponto]
          $pontos[2] = @old_pontos[2]
          $pontos[1] = @old_pontos[1]
          $pontos[0] = @old_pontos[0]
        elsif new_rank == 4
          $pontos[9] = @old_pontos[8]
          $pontos[8] = @old_pontos[7]
          $pontos[7] = @old_pontos[6]
          $pontos[6] = @old_pontos[5]
          $pontos[5] = @old_pontos[4]
          $pontos[4] = $game_variables[Rank_Conf::Var_Ponto]
          $pontos[3] = @old_pontos[3]
          $pontos[2] = @old_pontos[2]
          $pontos[1] = @old_pontos[1]
          $pontos[0] = @old_pontos[0]
        elsif new_rank == 5
          $pontos[9] = @old_pontos[8]
          $pontos[8] = @old_pontos[7]
          $pontos[7] = @old_pontos[6]
          $pontos[6] = @old_pontos[5]
          $pontos[5] = $game_variables[Rank_Conf::Var_Ponto]
          $pontos[4] = @old_pontos[4]
          $pontos[3] = @old_pontos[3]
          $pontos[2] = @old_pontos[2]
          $pontos[1] = @old_pontos[1]
          $pontos[0] = @old_pontos[0]
        elsif new_rank == 6
          $pontos[9] = @old_pontos[8]
          $pontos[8] = @old_pontos[7]
          $pontos[7] = @old_pontos[6]
          $pontos[6] = $game_variables[Rank_Conf::Var_Ponto]
          $pontos[5] = @old_pontos[5]
          $pontos[4] = @old_pontos[4]
          $pontos[3] = @old_pontos[3]
          $pontos[2] = @old_pontos[2]
          $pontos[1] = @old_pontos[1]
          $pontos[0] = @old_pontos[0]
        elsif new_rank == 7
          $pontos[9] = @old_pontos[8]
          $pontos[8] = @old_pontos[7]
          $pontos[7] = $game_variables[Rank_Conf::Var_Ponto]
          $pontos[6] = @old_pontos[6]
          $pontos[5] = @old_pontos[5]
          $pontos[4] = @old_pontos[4]
          $pontos[3] = @old_pontos[3]
          $pontos[2] = @old_pontos[2]
          $pontos[1] = @old_pontos[1]
          $pontos[0] = @old_pontos[0]
        elsif new_rank == 8
          $pontos[9] = @old_pontos[8]
          $pontos[8] = $game_variables[Rank_Conf::Var_Ponto]
          $pontos[7] = @old_pontos[7]
          $pontos[6] = @old_pontos[6]
          $pontos[5] = @old_pontos[5]
          $pontos[4] = @old_pontos[4]
          $pontos[3] = @old_pontos[3]
          $pontos[2] = @old_pontos[2]
          $pontos[1] = @old_pontos[1]
          $pontos[0] = @old_pontos[0]
        elsif new_rank == 9
          $pontos[9] = $game_variables[Rank_Conf::Var_Ponto]
          $pontos[8] = @old_pontos[8]
          $pontos[7] = @old_pontos[7]
          $pontos[6] = @old_pontos[6]
          $pontos[5] = @old_pontos[5]
          $pontos[4] = @old_pontos[4]
          $pontos[3] = @old_pontos[3]
          $pontos[2] = @old_pontos[2]
          $pontos[1] = @old_pontos[1]
          $pontos[0] = @old_pontos[0]
        end
       
        contents = {}
        contents[:jogadores]  = $jogadores
        contents[:pontos]      = $pontos
        File.open("game.rank", "wb") do |file|
          Marshal.dump(contents, file)
        end
      end
      def self.Reset
        contents = {}
        contents[:jogadores]  = ["Vazio", "Vazio", "Vazio", "Vazio", "Vazio", "Vazio", "Vazio", "Vazio", "Vazio", "Vazio",]
        contents[:pontos]      = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
        File.open("game.rank", "wb") do |file|
          Marshal.dump(contents, file)
        end
    end
        end

    Créditos RD12

    obs: Na primeira vez que usar o script chame o script: Rank.Reset só para criar o arquivo na pasta do jogo.
    avatar
    Nanzin
    Membro de Honra
    Membro de Honra

    Mensagens : 1559
    Créditos : 252

    Re: Ranking do Jogo

    Mensagem por Nanzin em Dom Jun 10, 2012 2:58 am

    Bem legal cara, parabens :))

    mas ainda da para melhorar com algumas coisas, tipo colocar por paginas. cada pagina mostrar ate 10 jogadores por exemplo, limpar um pouco o codigo, enfim esta muito bom parabens :)


    _________________


    Para Aqueles que gostam de Min e de meu Trabalho;
    Upem Meu Pet nao custa nda!!


    Pet:
    avatar
    DeaN
    Colaborador
    Colaborador

    Mensagens : 1287
    Créditos : 48

    Re: Ranking do Jogo

    Mensagem por DeaN em Dom Jun 10, 2012 9:54 am

    Muito legal RD12, ta ficando massa 1+


    _________________
    Dean, Programador Geral :)

    Contato: Skype:matucarvalho e Facebook
    The Enze - Vulzt

    Shield Block
    Anti-Cheat para jogos de FPS, agora vou adaptar para jogos de RPG principalmente para o RMXP.
    www.shieldblock.net
    fb.com/shieldblockoficial

    avatar
    Valentine
    Administrador
    Administrador

    Medalhas :
    Mensagens : 4863
    Créditos : 1041

    Re: Ranking do Jogo

    Mensagem por Valentine em Dom Jun 10, 2012 10:11 am

    Bem lega, só não sei porque o Lief está em um rank maior que o meu Megusta


    _________________
    avatar
    Komuro Takashi
    Moderador Local
    Moderador Local

    Mensagens : 1050
    Créditos : 131

    Re: Ranking do Jogo

    Mensagem por Komuro Takashi em Dom Jun 10, 2012 11:16 am

    Legal mesmo ainda mais que eu to na frente do Valentine Very Happy passei esse maldito. kkkkk

    +1 Crédit


    _________________
    avatar
    Hatsurugi
    Diva
    Diva

    Mensagens : 236
    Créditos : 125

    Re: Ranking do Jogo

    Mensagem por Hatsurugi em Dom Jun 10, 2012 1:42 pm

    Adorei o script, pode ser util para diversos jogos, (inclusive um projeto de jogo de shoot'en All)

    +1 cred.


    De sua atiradora
    Hatsurugi


    _________________
    Fanbars:

    Guild:

    Project:





    Minha deusa:



    avatar
    Dooolly
    Moderador Global
    Moderador Global

    Medalhas :
    Mensagens : 1233
    Créditos : 142

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: Ranking do Jogo

    Mensagem por Dooolly em Dom Jun 10, 2012 2:39 pm

    Muito bom + 1 cred
    ainda n sei pq n tou no rank Fury

    Conteúdo patrocinado

    Re: Ranking do Jogo

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sex Maio 25, 2018 2:22 am