O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Fábrica de Sistemas do Tio Russo

Iniciado por Senhor dos Grafos, 15/03/2016 às 15:09

15/03/2016 às 15:09 Última edição: 12/08/2016 às 11:43 por Senhor dos Grafos
- системы завода России дядя -

Bem vindo(a) à Fábrica de Sistemas do Tio Russo! Você pode me chamar de Russo.

Tipos de pedidos que aceitamos:

* Sistemas de eventos em qualquer RPG Maker;
* Scripts em RGSS, RGSS2, RGSS3 e JavaScript;
* Deveres de casa de programação em C, C++, C#, R, Java, JavaScript, Ruby, Python, ou Lua

Tipos de pedidos que NÃO aceitamos:

* Alguma ideia idiota que você possa fazer sozinho(a);
* Alguma coisa tão extensa que caracteriza praticamente o jogo todo (um sistema de YuGi-Oh por exemplo)
* Algo que envolva a criação de recursos externos de áudio, imagens, etc.



- введение -

Depois de muito tempo afastado do RPG Maker e do Mundo RPG Maker, um universitário com muito tempo livre (apenas por tempo limitado) teve que formatar o computador com um projeto enorme de RPG Maker VX salvo (junto com vários arquivos importantes, mas por enquanto vamos pensar só no projeto). Assim que ele perdeu o projeto ele decidiu voltar para o Mundo RPG Maker para ajudar seus amiguinhos a programar os jogos direito. É isso. Você não estava esperando por uma história da segunda guerra na Rússia, estava? Espero que não...
Anyway, basicamente a fábrica foi criada pra desenvolver scripts e sistemas por eventos e pra ajudar possíveis programadores com suas dúvidas. Divirtam-se.



- команда -

Por enquanto só eu, mas vamos ver se alguém se dispõe a ajudar. Caso alguém tenha interesse, basta falar comigo que depois a gente pensa num método de admissão de novas pessoas na equipe.

Nome: Senhor dos Grafos (Russo)
  Engine       2k3  XP  VX  Ace  MV
  Eventos       Sim      Sim      Sim      Sim      Sim   
  Scripts        -  Sim      Sim      Sim      Sim   



- формат для приложений -

Os pedidos na forma padrão devem seguir o seguinte formato, ou SERÃO IGNORADOS

[b]Nome do Sistema:[/b] (opcional)
[b]Engine:[/b] [2k/2k3/XP/VX/Ace/MV]
[b]Método:[/b] [script/eventos/ambos/tanto faz*]
[b]Resumo:[/b] (use esse espaço para fazer uma descrição curta do seu pedido. Exemplo: "sistema para dar uma linha de visão para um determinado evento")
[b]Descrição:[/b] (use esse espaço para fazer uma descrição mais clara do seu pedido. Pedidos com descrições demasiadamente vagas NÃO SERÃO ACEITOS.
Por exemplo: "quero que um evento consiga enxergar uma área à sua frente em forma de cone. O evento deve ativar um trigger quando encontrar o
personagem ou outro evento específico")

Arquivos de imagem ou audio devem ser anexados quando necessário



Também podem ser feitos pedidos especiais da seguinte forma

[b]=== PEDIDO ESPECIAL ===[/b]
[b]Descrição do pedido:[/b] (descreva aqui DETALHADAMENTE o pedido. Pode ser um código em qualquer linguagem de
programação (que eu conheça). Códigos devem ter natureza acadêmica ou similar. Não serão aceitos pedidos
comerciais (criação de sites por exemplo) ou muito trabalhosos ou complicados)
A resposta para esses pedidos pode ser um código completo, uma dica de como resolver o problema você mesmo(a) ou nada. Não peçam a mesma coisa duas vezes caso fiquem insatisfeitos com a resposta. As resposta são absolutas.



- выполненные задания -


"Clique aqui para ver os trabalhos concluídos"
[close]



- правила и окончательные соображения -

Sempre que um pedido for aceito, haverá uma mensagem na página com uma estimativa para a data de entrega. Não haverá um prazo absoluto, pois apesar de estar com passando por um período tranquilo na faculdade ainda tenho muitas obrigações. Somos seres humanos e precisamos ter respeito e consideração uns com os outros. Foram elaboradas algumas regras a serem seguidas para melhor convivência (pelo menos aqui nessa página):

  • Faça o seu pedido apenas uma vez. Se o seu pedido ainda não foi aceito, tenha paciência.
  • Quando seu pedido for aceito, não pergunte sobre a data de entrega. Ele vai ser entregue quando estiver pronto. Isso pode demorar.
  • A página está aqui para auxiliar no desenvolvimento de scripts e sistemas de eventos. Sem flood por favor.
  • Se você for mal educado(a) comigo ou com qualquer outra pessoa na página, eu posso invadir a sua casa com um tanque de guerra. (brincadeira. Mas sério, seja educado com as pessoas)
Pode me chamar de Russo

Aprovado. Boa sorte com a fábrica :)

Valeu :ok:
Pode me chamar de Russo

18/03/2016 às 13:15 #3 Última edição: 18/03/2016 às 13:17 por BloodGuns331
sistema de deslizar no gelo:
Engine: MV
Método: script(que no caso é o plugin) ou evento
Resumo: quero um sistema onde eu possa deslizar por tiles especificos
Descrição: eu somente quero que ao passar em determinado tile meu personagem deslize ate colidir com algo ou passar pra um tile diferente
Você viu meu ursinho Tibbers?  :ded:

Basta copiar a pasta "data" (anexo) para um NOVO projeto no MV. Ênfase em NOVO, não quero ver ninguém perdendo o projeto porque copiou o arquivo pro lugar errado. Anyway, tá pronto já. Divirta-se.

[Anexo excluído pelo administrador]
Pode me chamar de Russo

Nome do Sistema: Follow Up Atack
Engine: Ace
Método: Script
Resumo: Um sistema que permite o jogador dar 2 ataques seguidos de forma aleatória, por sorte melhor dizendo.
Descrição: Esse sistema é basicamente o seguinte, ele vai dar uma utilidade ao atributo SORTE no meu projeto, quanto maior o nível da sorte do personagem, mais chances ele terá de obter um Follow Up Atack, exemplo:

To na batalha, ataquei um inimigo, aleatoriamente e dependendo da sorte do personagem ele irá dar um outro ataque e em cima, no log da batalha irá mostrar uma mensagem também, Personagem tal Atacou novamente.

Ok, vou começar ainda hoje, mas não tenho prazo pra entrega definido
Pode me chamar de Russo

Olá, meu amigo Russo!
Venho aqui lhe fazer um pedido especial.

Nome do Sistema: Extra Item Info (Pictures)
Engine: Ace
Método: Script
Resumo: Um script para mostrar uma imagem ao selecionar um item pressionando shift.
Descrição: O sistema seria o seguinte, ao pressionar a tecla shift enquanto o cursor estivesse sobre o item, seria mostrada uma imagem com descrições mais detalhadas sobre ele. A imagem seria deletada ao pressionar shift novamente.
A imagem do item poderia ser definida com uma notetag no campo de notas daquele item. Seria ótimo poder configurar uma pasta especial dentro da pasta pictures, para que as imagens ficassem organizadas.
Sendo assim, deixarei aqui uma imagem que fiz para servir de teste.

Se puder fazer, seria de extrema ajuda. Não me importo com data de entrega, mas se não puder, sem problemas também.
O principal motivo de ser por imagens é para customização, e também poderia servir para múltiplos propósitos.

Anotado! Acho que dá pra fazer sim, se eu tiver alguma dificuldade te aviso depois. Mas antes do seu pedido eu vou fazer o do Ven, já que ele pediu primeiro, então pode demorar um pouco. Mas poxa, gostei da ideia, eu não teria pensado nisso haha
Pode me chamar de Russo

Ven, seu sistema ficou pronto, mas acho que é bem provável que ele cause algum problema se você estiver usando outro script de batalha. Me avise se algo der errado.

#==============================================================================
#  Follow Up Attack
#  Autor: Senhor dos Grafos (Russo)
#------------------------------------------------------------------------------
#  Uma pequena modificação na classe Scene_Battle que permite que o atacante
#  (apenas jogadores, nunca inimigos) ataque novamente após um ataque normal.
#  O cálculo é feito com base no status LUCK do personagem.
#==============================================================================

class Scene_Battle < Scene_Base

  def texto
    # texto a ser exibido na batalha quando um ataque extra for usado
    return @subject.name + " usou um ataque de oportunidade!"
  end

  def ataque_extra?
    # a chance de usar um ataque extra é de [LUCK] em 1000. Personagens com
    # LUCK alta têm quase 50% de chance de usar um ataque extra no nível 99
    return @subject.luk > rand(1000)
  end

  def use_item
    item = @subject.current_action.item
    @log_window.display_use_item(@subject, item)
    @subject.use_item(item)
    refresh_status
    targets = @subject.current_action.make_targets.compact
    show_animation(targets, item.animation_id)
    targets.each { |target|
      item.repeats.times {
        invoke_item(target, item)
        if item == $data_skills[target.attack_skill_id] and @subject.actor? and ataque_extra? and target.alive?
          @log_window.replace_text(texto)
          @subject.use_item(item)
          refresh_status
          show_animation(targets, item.animation_id)
          invoke_item(target, item)
        end
      }
    }
  end

end
Pode me chamar de Russo

Nome do Sistema: Posicionamento
Engine: MV
Método: script ou evento (se for possível)
Resumo: consiste em criar posições para os heróis, como frente e trás. Esse posicionamento poderia ser mudado no menu e na batalha, interferindo também visualmente na batalha.
Descrição: Haveria um menu para mudar a posição, frente e trás, no menu principal e na batalha. Seria criado um novo atributo que seria usado para quando o personagem estivesse atrás (tipo o força, mas força valeria pra os da frente). Certas habilidades também so poderiam ser usadas em determinada posição ou usadas no outro heroi se ele estivesse na determinada posição (itens também). Certos inimigos poderiam causar mais dano ou sofrer mais ou menos de acordo com a posição. Tipos de armas também so poderiam ser usados em certa posição. Se possível também poderia ser criada um novo tipo de equipamento, como arma secundária, que seria a arma para ataque de frente e arma pra ataque de trás...

É possível fazer ou devo reduzir algumas coisas? Precisa saber quais plugins uso?

Obrigado.

Olha, dá pra fazer, mas vai dar bastante trabalho, então eu vou fazer aos poucos. Se pessoas com pedidos menos trabalhosos que o seu chegarem, eu vou dar prioridade aos pedidos pequenos e rápidos. Basicamente, é um sistema muito grande e eu não posso te dar um prazo pra entrega. Você simplesmente vai ter que esperar. Pode ser?
Ah, e antes de começar o seu eu vou fazer o pedido do Alisson. Ordem de chegada e talz. O dele é pequeno e eu devo terminar em um dia (ou dois se eu estiver ocupado).
Pode me chamar de Russo

Alisson, terminei o seu pedido. Me avise se encontrar algum bug.

#==============================================================================
#   Extra Item Info
#   Autor: Senhor dos Grafos (Russo)
#------------------------------------------------------------------------------
#   Favor adicionar o meu nome nos créditos do seu projeto.
#   Visite a minha fábrica no Mundo RPG Maker ou no Centro RPG Maker!
#------------------------------------------------------------------------------
#   Novos handlers são adicionados a Scene_Item (e Window_Selectable) de
#   forma que quando o jogador pressiona a tecla "shift" uma descrição
#   mais detalhada do item (uma imagem) aparece na tela. Essa descrição
#   permanece enquanto o jogador mantiver a tecla "shift" pressionada.
#==============================================================================

# Diretório dos arquivos de imagem
PATH = "Graphics/Items/"

# Tipo de arquivo
TYPE = ".png"


# ATENÇÃO! NÃO EDITE O CÓDIGO ABAIXO A MENOS QUE VOCÊ SAIBA O QUE ESTÁ FAZENDO!

#----------------------------------------------------------------------------
#   Nova função para abrir determinadas imagens
#----------------------------------------------------------------------------
module Cache

  def self.itemPicture(item_name)
    if File.file?(PATH + item_name + TYPE)
      load_bitmap(PATH, item_name + TYPE)
    else
      empty_bitmap
    end
  end

end

#----------------------------------------------------------------------------
#   Nova janela e novos handlers
#----------------------------------------------------------------------------
class Window_Selectable < Window_Base

  def process_handling
    return unless open? && active
    return process_ok       if ok_enabled?        && Input.trigger?(:C)
    return process_cancel   if cancel_enabled?    && Input.trigger?(:B)
    return process_pagedown if handle?(:pagedown) && Input.trigger?(:R)
    return process_pageup   if handle?(:pageup)   && Input.trigger?(:L)
    return process_shift    if handle?(:shift)    && Input.trigger?(:A)
    return process_nshift   if handle?(:nshift)   && !Input.press?(:A) && !@window_picture.nil? && @window_picture.visible
    return process_update   if handle?(:arrow)    && (Input.press?(:DOWN) || Input.press?(:LEFT) || Input.press?(:RIGHT) || Input.press?(:UP))
  end

  def process_shift
    Input.update
    deactivate
    call_handler(:shift)
  end

  def process_nshift
    Input.update
    deactivate
    call_handler(:nshift)
  end

  def process_update
    Input.update
    deactivate
    call_handler(:arrow)
  end

  def draw_picture(item)
    if @window_picture.nil?
      @window_picture = Window_Base.new(0, 0, Graphics.width, Graphics.height)
      @window_picture.z = 500
    else
      @window_picture.show
    end
    @window_picture.opacity = 0
    @window_picture.contents.clear
    return if item.nil?
    bitmap = Cache.itemPicture(item.name)
    rect = Rect.new(0, 0, Graphics.width, Graphics.height)
    @window_picture.contents.blt(0, 0, bitmap, rect)
  end

  def update_picture(item)
    return if @window_picture.nil? || item.nil?
    @window_picture.contents.clear
    bitmap = Cache.itemPicture(item.name)
    rect = Rect.new(0, 0, Graphics.width, Graphics.height)
    @window_picture.contents.blt(0, 0, bitmap, rect)
  end

  def hide_picture
    @window_picture.hide
  end

end

#----------------------------------------------------------------------------
#   Definindo o funcionamento dos novos handlers
#----------------------------------------------------------------------------
class Scene_Item < Scene_ItemBase

  def create_item_window
    wy = @category_window.y + @category_window.height
    wh = Graphics.height - wy
    @item_window = Window_ItemList.new(0, wy, Graphics.width, wh)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.set_handler(:ok,     method(:on_item_ok))
    @item_window.set_handler(:cancel, method(:on_item_cancel))
    @item_window.set_handler(:shift,  method(:extra_info))
    @item_window.set_handler(:nshift, method(:delete_info))
    @item_window.set_handler(:arrow,  method(:update_info))
    @category_window.item_window = @item_window
  end

  def extra_info
    @item_window.draw_picture(item)
    @item_window.refresh
    @item_window.activate
  end

  def delete_info
    @item_window.hide_picture
    @item_window.refresh
    @item_window.activate
  end

  def update_info
    @item_window.update_picture(item)
    @item_window.refresh
    @item_window.activate
  end

end
Pode me chamar de Russo

22/03/2016 às 15:12 #13 Última edição: 22/03/2016 às 15:17 por Alisson
Obrigado!
Está funcionando perfeitamente. Tenha certeza de que estou muito agradecido.

29/03/2016 às 22:55 #14 Última edição: 29/03/2016 às 23:01 por Darkrafa
Boa noite, Russo!
Tranquilo?
Bem, aí vai:

Nome do Sistema: Chrono Trigger Menu
Engine: MV
Método: Script
Resumo: Menu personalizado para se assemelhar ao rpg de super nintendo: Chrono Trigger
Descrição: Basicamente para convertê-lo de XP para MV. Eu acho que devo dizer, se puder convertê-lo, ótimo,
mas fique a vontade para fazer suas mudanças, melhorias ou adaptações que você julgar necessário.

O post original: http://centrorpg.com/index.php?topic=1774.0
O autor do script original: Rafidelis

Obrigado desde já e parabéns por sua iniciativa!