Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte ao desenvolvimento de jogos


+22
NowaDraco
djgabriel99
The Suspect
イアゴル
Satheios
SrºJokker
clavrie
Gabriel Lenz
Pablo Kawan
Lucas FM
Samuka_Maker
XGreenDayX
Laxus
mazorki
jiraya
DeaN
urbios
Paulo Soreto
Lucky
LeonM²
Jonny
RD12
26 participantes

    Desenhar a bandeira da Guilda

    RD12
    RD12
    Lenda
    Lenda


    Medalhas : Desenhar a bandeira da Guilda 48080450Desenhar a bandeira da Guilda Trophy11Desenhar a bandeira da Guilda GIueZDesenhar a bandeira da Guilda ZgLkiRU
    Mensagens : 1946
    Créditos : 745

    Desenhar a bandeira da Guilda Empty Desenhar a bandeira da Guilda

    Mensagem por RD12 Sáb Jan 19, 2013 10:44 pm

    Desenhar bandeira

    Primeiro quero dizer que provavelmente este será meu último script. Estou fazendo a pedido de um amigo.
    Esse script eu já tinha feito a bastante tempo para um jogo, mas agora está 999% melhor.

    Informações:
    Lag gerado: Mínimo. Fiz o máximo para encurtar os códigos e compactar envios de dados.
    Com este sistema os jogadores poderão desenhar a própria bandeira.
    A bandeira é exibida na Window_guild e em um ícone ao lado dos nomes dos jogadores.
    É possível modificar o tamanho da bandeira nas configurações.

    Imagens:

    Spoiler:


    Colocando no jogo:

    OBS: Antes de por no seu jogo, faça uma cópia do seu projeto para o caso de der erro, assim você poderá refazer de novo.


    Para por no jogo temos que modificar bastantes scripts. Vamos começar substituindo alguns.

    Substitua o script [GD] Window_CreateGuild por este:

    Código:
    #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
    #|Autor: RD12|      Criar guilda e Desenhar Bandeira
    #------------------------------------------------------------------------------
    # Chame o script -> $guild_w.open
    #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

    #Configure aqui a palheta de Cores
    module Flag_Config
      #Tamanho da bandeira na Window_Guilld
      Flag_Size = 7
      #Tamanho do ícone da bandeira dos jogadores
      Icon_Size = 3
      #Cores da palheta da bandeira
      Colors = []
      Colors[0] = Color.new(0,0,0)#Preto
      Colors[1] = Color.new(150,150,150)#Cinza
      Colors[2] = Color.new(255,255,255)#Branco
      Colors[3] = Color.new(255,0,0)#Vermelho
      Colors[4] = Color.new(255,100,0)#Laranja
     
      Colors[5] = Color.new(255,255,128)#Amarelo
      Colors[6] = Color.new(0,255,0)#Verde escuro
      Colors[7] = Color.new(0,160,0)#Verde claro
      Colors[8] = Color.new(0,162,232)#Azul
      Colors[9] = Color.new(255,150,185)#Rosa
    end

    class Window_CreateGuild < Window_Base
     
      def initialize
        super(220,100,270,325)
        self.contents = Bitmap.new(self.width-32, self.height-32)
        self.back_opacity = 200
        @dragable = true
        @closable = true
        self.z = 99999
        $guild_input = Text_Box.new(self,60,260,90,10,1,true)
        @criar_guild1 = Button.new(self,10,290,LANGUAGE::NEWGUILDCREATE) {criar; $fechando_ativar = true}
        @sair_guild1 = Button.new(self,70,290,LANGUAGE::NEWGUILDBACK) {self.visible = false; self.active = false; $fechando_ativar = true}
        @color = 0
      end
     
      def update
        super
        refresh
        draw_flag
      end
     
      def draw_flag
        #==Pegar cor da Palheta==#
        if Input.pressed(Input::Mouse_Left)
          for i in 0..4
          if in_area?([70+i*22, 195+15, 17, 17])
            @color = i
          end
          if in_area?([70+i*22, 195+35, 17, 17])
            @color = i+5
          end
          end 
        #==Desenhar a cor na bandeira==#
        for x in 0..5
          for y in 0..5
            if in_area?([60+x*21, 75+y*21, 20, 20])
              $flag_contents[y][x] = @color
            end
          end
        end
      end
      end
     
      def refresh
        self.contents.clear
        return if $flag_contents.nil?
        #Desenha a bandeira da guilda
        for x in 0..5
          for y in 0..5
            rect = Rect.new(45+x*21, 60+y*21, 20, 20)
            cor = $flag_contents[y][x]
            self.contents.fill_rect(rect, Flag_Config::Colors[cor])
          end
        end
        #Desenha a Palheta de cores
        for i in 0..4
          rect = Rect.new(55+i*22, 195, 17, 17)
          self.contents.fill_rect(rect, Flag_Config::Colors[i])
          #cores de baixo
          rect = Rect.new(55+i*22, 195+20, 17, 17)
          self.contents.fill_rect(rect, Flag_Config::Colors[i+5])
        end
        #textos
        self.contents.font.size = 17
        self.contents.draw_text(0, 0, self.width-44, 42, "Desenhe a bandeira da sua guilda", 1)
        self.contents.font.size = 14
        self.contents.draw_text(0, 237, self.width-64, 32, LANGUAGE::NEWGUILDNAME)
      end
     
      def open
        if $guild_name == ""
          $guild_w.visible = true
          $guild_w.active = true
        else
          $msg.set_text(LANGUAGE::HAVEGUILD,20, -3)
          $msg.visible = true
          $msg.active = true
        end
      end 
     
      def on_close
        self.visible = false
        self.active = false
        $fechando_ativar = true
      end 
     
      def criar
        if $guild_input.text.size < 4
          $guild_w.visible = false
          $guild_w.active = false
          $msg.set_text(LANGUAGE::ERROGUILDNAME,45, -3)
          $msg.visible = true
          $msg.active = true
          return
        end 
        if Network::Main.user_exist?($guild_input.text+"-Guild") == true
          $guild_w.visible = false
          $guild_w.active = false
          $msg.set_text(LANGUAGE::NEWGUILDEXIST,45, -3)
          $msg.visible = true
          $msg.active = true
          $guild_input.text = ""
          $guild_input.active = false
          return
        end
        $guild_name = $guild_input.text
        $guild_w.visible = false
        $guild_w.active = false
        $game_party.actors[0].guild = $guild_input.text
        $guild_points = 0
        $game_player.refresh
        $scene = Scene_Map.new
        Network::Main.send_start
        $guild_position = LANGUAGE::GUILDLEADER
        Network::Main.send_register($guild_input.text+"-Guild" , $guild_input.text)
      end
     
    end
    $flag_contents = []
    $flag_contents[0] = [1,1,1,1,1,1]
    $flag_contents[1] = [1,1,1,1,1,1]
    $flag_contents[2] = [1,1,1,1,1,1]
    $flag_contents[3] = [1,1,1,1,1,1]
    $flag_contents[4] = [1,1,1,1,1,1]
    $flag_contents[5] = [1,1,1,1,1,1]

    Agora substitua o [GD] Window_Guild por este:

    Código:
    #==============================================================================
    # ** Guild
    #------------------------------------------------------------------------------
    #  By Valentine
    #  Editado por RD12
    #==============================================================================
    class Window_Guild < Window_Base
     
      def initialize(x,y,a,b)
        super(x,y,a,b)
        self.contents = Bitmap.new(self.width-32, self.height-32)
        self.back_opacity = 200
        @dragable = true
        @closable = true
        self.z = 99999
        @sair_guild2 = Button.new(self,10,180,LANGUAGE::LEAVEGUILD) {sair}
        @member_guild = Button.new(self,108,180,LANGUAGE::GUILDMEMBERS) { $member_list.refresh;self.visible = false; self.active = false; $member_list.visible = true; $member_list.active = true }
        if $guild_position == LANGUAGE::GUILDLEADER
          $guild_created_input = Text_Box.new(self,64,117,77,10)
          $guild_created_input2 = Text_Box.new(self,64,137,77,10)
          @ok_guild = Button.new(self,145,117,LANGUAGE::ADDGUILDMEMBER) {ok}
          @delet_guild = Button.new(self,145,137,LANGUAGE::DELGUILDMEMBER) {del}
        else
          $guild_created_input = Text_Box.new(self,200,207,77,10)
        end
        refresh
      end

      def on_close
        self.visible = false
        self.active = false
    #  $flag2.visible = false
        $member_list.visible = false
        $member_list.active = false
        $fechando_ativar = true
      end
     
      def update
        super
        refresh if something_changed?
      end
     
      def something_changed?
        return true if @old_guild != $game_party.actors[0].guild
        return true if @old_position != $guild_position
        return true if @old_pontos != $guild_points
        return true if @old_lider != $guild_lider_name
        return true if @old_flag != $flag_contents
        return false
      end
     
      def refresh
        @old_guild = $game_party.actors[0].guild
        @old_position = $guild_position
        @old_pontos = $guild_points
        @old_lider = $guild_lider_name
        @old_flag = $flag_contents
        self.contents.clear
        flag_size = Flag_Config::Flag_Size
        #Desenhar bandeira
        for x in 0..5
          for y in 0..5
            rect = Rect.new(x*flag_size, 5+y*flag_size, flag_size, flag_size)
            cor = $flag_contents[y][x]
            self.contents.fill_rect(rect, Flag_Config::Colors[cor])
          end
        end   
        self.contents.font.size = 17
        self.contents.draw_text(75, 10, self.width-22, 20, $game_party.actors[0].guild)
        self.contents.font.size = 14
        self.contents.draw_text(0,53, self.width-44, 42, LANGUAGE::GUILDPOSITION + $guild_position.to_s)
        self.contents.draw_text(0,69, self.width-44, 42, LANGUAGE::GUILDPOINTS + $guild_points.to_s)
        if $guild_position == LANGUAGE::GUILDLEADER
          self.contents.draw_text(0, 87, self.width-44, 42, LANGUAGE::GUILDCALL)
          self.contents.draw_text(0, 107, self.width-44, 42, LANGUAGE::GUILDOUT)
        else
          self.contents.draw_text(0, 85, self.width-44, 42, LANGUAGE::GUILDLEADER+": "+$guild_lider_name.to_s)
        end
      end
     
      def del
        for p in Network::Main.players.values
          if p.nome == $guild_created_input2.text
            if p.guild == $game_party.actors[0].guild
              jogador = p.nome
              return if p.position == LANGUAGE::GUILDLEADER
              Network::Main.pchat(p.netid,"[COM] [GDS] #{jogador}")
            end
          end
        end 
      end 
     
      def ok
        for p in Network::Main.players.values
          if p.nome == $guild_created_input.text
            flag = $flag.to_s
            jogador = p.nome
            lider_name = $game_party.actors[0].name
            Network::Main.pchat(p.netid,"[COM] [GDD] #{$guild_name} #{jogador} #{flag} #{lider_name}")
          end
        end
      end
     
      def sair
        if $guild_position == LANGUAGE::GUILDLEADER
          Network::Main.send_register($guild_name.to_s+"-Guild-DEL" , $guild_name.to_s)
        end 
        $guild_created.visible = false
        $guild_created.active = false
        $member_list.visible = false
        $member_list.active = false
        $guild_name = ""
        $game_party.actors[0].guild = ""
        $game_player.refresh
        $scene = Scene_Map.new
        Network::Main.send_start
        $guild_position = LANGUAGE::GUILDRANK
        $guild_points = 0
    #    $flag2.visible = false
        $fechando_ativar = true
        $flag = 1
      end
     
    end

    Agora vamos no script [SPR] Sprite_NetCharacter, na linha 40 procure por:
    Código:
            icon = RPG::Cache.icon("Mini-Flag#{@character.flag}")
            bitmap.blt(55-@character.guild.size,8,icon,icon.rect)

    Delete ele e no lugar coloque este código:

    Código:
            #Desenha o íncone da bandeira do lado do nome
            icon_size = Flag_Config::Icon_Size
            @net_flag = @character.flag_icon.split("|")
            for i in 0..5
              for x in 0..5
              rect = Rect.new((50-@character.guild.size)+x*icon_size, 8+(i)*icon_size, icon_size, icon_size)
              cor = @net_flag[x+(i*6)].to_i
              bitmap.fill_rect(rect, Flag_Config::Colors[cor])
              end 
            end

    Agora no script [GM] Game_NetPlayer, adicione essa linha em baixo da linha 21:
    Código:
      attr_accessor :flag_icon

    Neste mesmo script, em baixo da linha 75 adicione esta linha:
    Código:
        @flag_icon = ""

    Agora vá para o script [SC] Net Rmxp Hud, na linha 191 procure por:
    Código:
              flag = $flag.to_s
    Apague e substitue por este:


    Código:
              #Enviar dados da bandeira
              flag = ""
              for x in 0..5
                for y in 0..5
                flag += $flag_contents[x][y].to_s+"|"
                end
              end


    No mesmo script, na linha 242 procure por:
    Código:
          $flag = $flag_nominho

    Apague e adicione este código no lugar:

    Código:
          #Descompactar dados da bandeira     
          @flag_cont = $flag_nominho.split("|")
            for x in 0..5
              for y in 0..5
              $flag_contents[x][y] = @flag_cont[y+(x*6)].to_i
              end 
            end


    Agora vá para o script [EXT] Event Text Display, na linha 188 procure por:
    Código:
        icon = RPG::Cache.icon("Mini-Flag#{$flag}")
        bitmap.blt(55-actor.guild.size,8,icon,icon.rect)
    Apague e coloque este no lugar:

    Código:
        flag_size = Flag_Config::Icon_Size
        for x in 0..5
          for y in 0..5
            rect = Rect.new((50-actor.guild.size)+x*flag_size, 8+y*flag_size, flag_size, flag_size)
            cor = $flag_contents[y][x]
            bitmap.fill_rect(rect, Flag_Config::Colors[cor])
          end
        end   

    Agora no script [ACT] Auto Save

    linha 38 procure por file.close.
    Em cima cole isto:
    Código:
      Marshal.dump($flag_contents, file)

    Agora no script [SC] Scene_Title, linha 320 procure por
    Código:
        $game_map.setup($game_map.map_id)

    Em cima dessa linha coloque esta:
    Código:
        $flag_contents      = Marshal.load(file)

    Agora no script [NET] Network, na linha 387 procure por

    Código:
    send += "start(#{self.id});"

    EM CIMA, cole este código:

    Código:
        #Envia as cores da bandeira pro server
        @flag_color = ""
        if !$flag_contents.nil?
          for x in 0..5
          for y in 0..5
            @flag_color += $flag_contents[x][y].to_s+"|"
          end
          end
          send += "@flag_icon = '#{@flag_color}';"
        else
          send += "@flag_icon = ''"
        end

    Agora no script [SC] Net Rmxp Hud de novo, procure por:
    Código:
        #Criar Guild
        $guild_w = Window_CreateGuild.new(220,100,200,200)

    Apague esse pedaço dele: (220,100,200,200)

    Agora, aperte Ctrl+Shift+F, na busca procure por $flag1, repita a busca apagando todas as linhas que vc achar com esse código.
    Faça o mesmo para $flag2

    Pronto, eu fiz tudo isso em um netplay zerado e deu certo! Por favor, façam com cuidado antes de virem postar erros que foram cometidos por vocês!
    :^.^:
    Criado por RD12
    Jonny
    Jonny
    Aldeia Friend
    Aldeia Friend


    Medalhas : Desenhar a bandeira da Guilda Trophy11Desenhar a bandeira da Guilda 9P5Gx
    Mensagens : 1936
    Créditos : 327

    Desenhar a bandeira da Guilda Empty Re: Desenhar a bandeira da Guilda

    Mensagem por Jonny Sáb Jan 19, 2013 10:46 pm

    Legal.. Sistema estilo Mu Online Very Happy
    Obrigado por disponivilisar. asi ajudara a muita personas :)

    Desenhar a bandeira da Guilda 582465_160077237473609_1987241093_n


    Última edição por Jonny Kun em Sáb Jan 19, 2013 11:15 pm, editado 2 vez(es)


    _________________
    Spoiler:


    Desenhar a bandeira da Guilda KVIdx
    LeonM²
    LeonM²
    Lenda
    Lenda


    Mensagens : 1802
    Créditos : 153

    Desenhar a bandeira da Guilda Empty Re: Desenhar a bandeira da Guilda

    Mensagem por LeonM² Sáb Jan 19, 2013 10:48 pm

    MT FODA, pode ser util para alguém mas não para mim atualmente Razz
    Cred UP
    Lucky
    Lucky
    Colaborador
    Colaborador


    Mensagens : 654
    Créditos : 75

    Desenhar a bandeira da Guilda Empty Re: Desenhar a bandeira da Guilda

    Mensagem por Lucky Sáb Jan 19, 2013 10:48 pm

    Nossa, muito bom 1+ cred


    _________________
    Belive in your dreams.


    Se você quer vencer, não fique olhando a escada, comece a subir degrau por degrau até chegar ao topo e não espere o incentivo de outros, o primeiro a acreditar no seu sonho tem que ser você.

    Desenhar a bandeira da Guilda Good_t10
    [size=10]Eu Apoio Esse Projeto![/size]
    Desenhar a bandeira da Guilda B9M26iU

    assinatura:
    Paulo Soreto
    Paulo Soreto
    Lenda
    Lenda


    Mensagens : 1980
    Créditos : 367

    Ficha do personagem
    Nível: 1
    Experiência:
    Desenhar a bandeira da Guilda Left_bar_bleue0/0Desenhar a bandeira da Guilda Empty_bar_bleue  (0/0)
    Vida:
    Desenhar a bandeira da Guilda Left_bar_bleue30/30Desenhar a bandeira da Guilda Empty_bar_bleue  (30/30)

    Desenhar a bandeira da Guilda Empty Re: Desenhar a bandeira da Guilda

    Mensagem por Paulo Soreto Sáb Jan 19, 2013 11:22 pm

    Hum... Ficou bacana cara, esse é o seu sistema mais bem feito.


    _________________
    Desenhar a bandeira da Guilda FwYnoXI
    urbios
    urbios
    Iniciante
    Iniciante


    Mensagens : 73
    Créditos : 22

    Desenhar a bandeira da Guilda Empty Re: Desenhar a bandeira da Guilda

    Mensagem por urbios Sáb Jan 19, 2013 11:43 pm

    Desenhar a bandeira da Guilda 2945825175 ty RD 12 ^o^


    _________________
    RPG maker XP in android? Razz :
    DeaN
    DeaN
    Colaborador
    Colaborador


    Mensagens : 1243
    Créditos : 48

    Desenhar a bandeira da Guilda Empty Re: Desenhar a bandeira da Guilda

    Mensagem por DeaN Dom Jan 20, 2013 12:47 am

    Show mani, gostei demais 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

    Desenhar a bandeira da Guilda MiB0H
    jiraya
    jiraya
    Membro Ativo
    Membro Ativo


    Mensagens : 293
    Créditos : 26

    Desenhar a bandeira da Guilda Empty Re: Desenhar a bandeira da Guilda

    Mensagem por jiraya Dom Jan 20, 2013 12:50 am

    HUM, Parabéns RD12 Fodicimo. :love: Meu Prescioso... kkkk


    _________________
    [roll="Ataque nível 1"]

    Se escrevam no meu Canal no Youtube:  Eberton Munhoz
           
    mazorki
    mazorki
    Iniciante
    Iniciante


    Mensagens : 30
    Créditos : 0

    Desenhar a bandeira da Guilda Empty Re: Desenhar a bandeira da Guilda

    Mensagem por mazorki Dom Jan 20, 2013 3:20 pm

    deu um erro...
    Quando eu abro a aba 'Guild' o ícone 'flag1' aparece na tela e não some mais, só some quando deleta a guild.
    Laxus
    Laxus
    Aldeia Friend
    Aldeia Friend


    Mensagens : 1150
    Créditos : 78

    Desenhar a bandeira da Guilda Empty Re: Desenhar a bandeira da Guilda

    Mensagem por Laxus Dom Jan 20, 2013 3:26 pm

    cara ta perfeito mt bom parabens seus scripts sempre são perfeitos parabens brow


    _________________
    "Não importa o quão forte o cara é, o que importa é encara-lo de frente sem fraquejar"
                                                                                                                                                        Laxus ~ Fairy Tail

    Conteúdo patrocinado


    Desenhar a bandeira da Guilda Empty Re: Desenhar a bandeira da Guilda

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sex Abr 26, 2024 7:22 am