Suporte no desenvolvimento de jogos


    sistema de game over por coordenada

    Maephel
    Maephel
    Ocasional
    Ocasional

    Mensagens : 212
    Créditos : 18
    Cash : 0

    sistema de game over por coordenada Empty sistema de game over por coordenada

    Mensagem por Maephel em Sab Out 27, 2012 3:53 pm

    Bom primeiramente salve! Salve! pra galera da aldeia! ao que interessa...

    Eu me inspirei no hl - scene gameover do hugoLnX lá da mundorpgmaker
    http://www.mundorpgmaker.com/forum/index.php?topic=521.0
    mas pelo que eu testei ele não compatibilizava com o np master v4
    bom o que eu fiz foi bem simples:

    eu fui no script [ABS] Game_Over 1 e em cima da linha:
    Código:
    class Scene_Gameover
    adicionei isto:
    Código:
      $gameovercoord = true #true para game over por coordenadas e false para game over pré configurado no [CF] User Edits
      MAPID = X #Substitua o x pela Id da variável que representará o id do mapa que o herói será teletransportado
      MAPX  = X  #Substitua o x pela Id da variável que representará a coordenada x.
      MAPY  = X #Substitua o x pela Id da variável que representará a coordenada y
    e depois fiz essas alterações logo abaixo:
    Código:
      def main
        $msg_chat_w = true
        resetwindows
        if $gameovercoord == true
        $game_temp.player_new_map_id =($game_variables [MAPID])
        $game_temp.player_new_x      =($game_variables [MAPX])
        $game_temp.player_new_y      =($game_variables [MAPY])
      else
        $game_temp.player_new_map_id = User_Edit::ID_DO_MAPA
        $game_temp.player_new_x      = User_Edit::CORDENADA_X
        $game_temp.player_new_y      = User_Edit::CORDENADA_Y
        end
    sistema de game over por coordenada 3842062876não entendo muito de rgss mas funfou sistema de game over por coordenada 2938270996!!!

    para escolher o lugar onde será salvo crie um npc e vá em opçoes de variaveis e edit:
    a variavel de id com o numero do mapa;
    a variavel de coordenada X com o numero da coordenada X no mapa; e
    a variavel de coordenada Y com o numero da coordenada Y no mapa.
    as variaveis que foram escolhidas no mod adicionado no game over
    exemplo abaixo:
    Spoiler:
    sistema de game over por coordenada Escolhassave

    pronto você tem um sistema de save no estilo de kafra do ragnarok sistema de game over por coordenada 1964351358

    ======CRÉDITOS======
    A mim: pelo mod no game over... e pelo tutorial oras!
    sistema de game over por coordenada 2140580980
    Ao Valentine pelo Game over original
    sistema de game over por coordenada 1964351358
    Ao hugoLnX pela inpiração no seu script que funciona para jogos off
    sistema de game over por coordenada 1964351358
    E ao Jonny porque foi lendo um tópico dele que eu me motivei a dar um jeito!
    sistema de game over por coordenada 2387276743

    Possivel bug:
    Se você não tiver configurado as variaveis um personagem ao morrer poder "querer" ser teletransportado para um mapa que não existe como no meu caso ele pedia "Map000" e jogava na coordenada x 01 e Y 01 para evitar esse bug ative um processo paralelo definindo as coordenadas de Game Over!!!

    Ah... pra quem estiver de preguiçinha:
    mas se por acaso tiver alguma alteração no game over é provavel que ocorra erros! então é prefirivel fazer pelo passo-a-passo!
    Código:

    #==============================================================================
    # ** Scene_Gameover
    #------------------------------------------------------------------------------
    # By Valentine
    # mod: MatheusMelo03
    #==============================================================================


      $gameovercoord = true
      MAPID = 26 #Id da variável que representará o id do mapa que o herói será teletransportado
      MAPX  = 27 #Id da variável que representará a coordenada x.
      MAPY  = 28 #Id da variável que representará a coordenada y
    class Scene_Gameover
      #--------------------------------------------------------------------------
      # * Main
      #--------------------------------------------------------------------------
      def main
        $msg_chat_w = true
        resetwindows
        if $gameovercoord == true
        $game_temp.player_new_map_id =($game_variables [MAPID])
        $game_temp.player_new_x      =($game_variables [MAPX])
        $game_temp.player_new_y      =($game_variables [MAPY])
      else
        $game_temp.player_new_map_id = User_Edit::ID_DO_MAPA
        $game_temp.player_new_x      = User_Edit::CORDENADA_X
        $game_temp.player_new_y      = User_Edit::CORDENADA_Y
        end
       

        $game_player.animation_id = 15
        @move = $game_player
        @move.turn_down
        Audio.me_stop
        Audio.bgs_stop
       
        last_level = $game_party.actors[0].level
       
        $game_map.update
        $game_player.refresh
        $game_party.actors[0].hp = $game_party.actors[0].maxhp
        $game_party.actors[0].sp = $game_party.actors[0].maxsp
        $game_temp.gameover = false
        $game_temp.transition_processing = false
        $game_actors[1].exp -= (($game_actors[1].level.to_i * User_Edit::GAME_OVER_EXP) / 1)
        $ABS = MrMo_ABS.new
        $game_temp.player_transferring = true
       
        if Network::Main.group == 'admin'
          $game_party.actors[0].grupo = "Admin"
        else
          $game_party.actors[0].grupo = "Standard"
        end
       
        if $game_party.actors[0].level < last_level
          $distribuir_pontos -= 5
        end
       
        autosave
        $scene = Scene_Map.new
        Network::Main.send_start
       
        # Sair da Party
        if !$party.empty?
          for i in 0..$party.members.size
            if $party.members[i] != nil
              if $parte_s == true
                name = $game_party.actors[0].name
                Network::Main.pchat($charzinho_id,"[COM] [ET] #{name}")
                Network::Main.pchat($charzinho_id,"[COM] [EXIT] #{name}")
                $party.party_remove($charzinho_id)
                $divide_exp = false
              else
                name = $game_party.actors[0].name
                Network::Main.pchat($party.members[i].netid,"[COM] [ET] #{name}")
                Network::Main.pchat($party.members[i].netid,"[COM] [EXIT] #{name}")
                $party.party_remove($party.members[i])
                $divide_exp = false
              end
            end
          end
        end
       
        loop do
          Graphics.update
          if $scene != self
            break
          end
        end
        Graphics.freeze
      end
     
    end

    meus proximos objetivos:
    Spoiler:

    1 - mod para o Mr.Mo's ABS em que mude as sprites quando o personagem estiver atacando e para os mosntros também!
    2 - Sistema de montaria compativel com np master v4 (em fase de testes)
    3 - mod para o sistema de pet do RD12 em que o pet apareça se mexendo enquanto estiver parado
    4 - mod em que os mob tenha uma sprite para cada situação (uma pra parado, outtra pra se mexendo, outra para atacando, outra quando estiver sendo atacado e outra quando estiver morrendo) semelhante ao Ragnarok Online
    Ghost 404
    Ghost 404
    Novato
    Novato

    Mensagens : 19
    Créditos : 5
    Cash : 0

    sistema de game over por coordenada Empty Re: sistema de game over por coordenada

    Mensagem por Ghost 404 em Qui Nov 01, 2012 3:08 pm

    isso é muito útil para quem adora personalizar o jogo , eu gostei mt e ja estou usando no meu projeto novo + 1 credcard


    _________________
    sistema de game over por coordenada Cyisthatassinatura
    Spoiler:
    Principal Engine :Game Maker
    Especialidade : Mapper
    Jogos: The old mine (Game Maker)
    Site(Fórum): Lost Makers
    Maephel
    Maephel
    Ocasional
    Ocasional

    Mensagens : 212
    Créditos : 18
    Cash : 0

    sistema de game over por coordenada Empty tank u

    Mensagem por Maephel em Qui Nov 01, 2012 7:03 pm

    Vlw cara!!!

    Eu nunca me dei bem com scripts sempre preferi fazer tudo por eventos mas como pretendo fazer meu mmorpg estou tentando que aprender rgss... (e estou começando a entender algumas coisa...) há sim!!! fiz uma atualização com auxilio do "Respawn Point" do Rd12

    Respawn point do rd12 com uma pequena modificação:
    para fazer funcionar coloque no primeiro mapa um evento em processo paralelo e chame o script (terceira aba na opções eventos)e cole:
    Código:
    firstrespawn_point
    isto evita que o deo bug de requerimento de map00 já que a variavel terá o valor de 0
    e ligue uma switch para encerrar o processo e crie uma nova aba com condição a dita switch
    porque ligar a switch? pq se não toda a vez que você estiver nesse mapa vai configurar automaticamente o ponto de retorno neste lugar!

    para criar um ponto de retorno crie um evento normal (com a condição pressionar tecla) e chame o script:
    Código:
    respawn_point
    uma diga chame também o script:
    Código:
    $game_temp.chat_log.push("Salvo como ponto de retorno")
    estou tentando criar uma window em que apareça as opções:
    "Desejar salvar como ponto de retorno?"
    "Cancelar"

    SCRIPTS:

    cole este script acima do main com o nome de [MOD] Respawn_Point ou o nome que bem entender...
    Código:
    #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
    #                        --- RESPAWN POINT---
    # Autor: RD12
    # Mod: Matheusmelo03 [aldeiarpgbr]
    # Script que define um ponto de retorno do player ao morrer, e
    # um ponto de inicio
    #=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
    #
    #É necessário modificar o script Game_Over1.
    #Para criar um ponto de retorno, crie um evento,
    #E nele bote chamar script: respawn_point
    #
    #
    #=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:

    class Game_Character
      attr_accessor    :opacity
    end

    def respawn_point
      #O respawn point guarda nestas variáveis
      #o ID e cordenadas do mapa! configurada
      #em um save point.
      $game_variables[26] = $game_map.map_id
      $game_variables[27] = $game_player.x
      $game_variables[28] = $game_player.y
    end
    def firstrespawn_point
      #O firstrespawn_point guarda nas variaveis o
      #ID e cordenada do mapa do primeiro ponto de
      #retorno (ponto inicial) do jogador ao entrar
      #no jogo.
      #Eu usei essas variaveis para teste não sei se é obrigatório o uso de variaveis acima de 1000,
      #estas que são globais
      $game_variables[26] = 1 #mude a id para a do mapa de retorno inicial
      $game_variables[27] = 8 #mude a id para a coordenada x do mapa inicial
      $game_variables[28] = 7 #mude a id para a coordenada y do mapa inicial
    end

    e faça estas auterações no game over:
    Código:

    #==============================================================================
    # ** Scene_Gameover
    #------------------------------------------------------------------------------
    # By Valentine
    #==============================================================================

     $gameovercoord = true
    module Respawn_Variable
      MAPID = 26 #Id da variável que representará o id do mapa que o herói será teletransportado
      MAPX  = 27 #Id da variável que representará a coordenada x.
      MAPY  = 28 #Id da variável que representará a coordenada y
    end

    class Scene_Gameover
      #--------------------------------------------------------------------------
      # * Main
      #--------------------------------------------------------------------------
      def main
        $msg_chat_w = true
        resetwindows
        if $gameovercoord == true
        $game_temp.player_new_map_id =($game_variables [Respawn_Variable::MAPID])
        $game_temp.player_new_x      =($game_variables [Respawn_Variable::MAPX])
        $game_temp.player_new_y      =($game_variables [Respawn_Variable::MAPY])
      else
        $game_temp.player_new_map_id = User_Edit::ID_DO_MAPA
        $game_temp.player_new_x      = User_Edit::CORDENADA_X
        $game_temp.player_new_y      = User_Edit::CORDENADA_Y
        end

    Créditos:
    Código:
    RD12: Pelo Respawn Point original
    Valentine: Pelo Game Over original
    A mim: pelos mods no ditos scripts acima

    Conteúdo patrocinado

    sistema de game over por coordenada Empty Re: sistema de game over por coordenada

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qua Out 16, 2019 4:43 am