Jump to content
Valentine90

VXA-OS - Create your MMO with RPG Maker

Recommended Posts

vmblUfr.png
Author: Valentine
Version: 1.1.0
 
About
VXA-OS is the most complete and secure free tool for creating 2D online games from RPG Maker. It has been in active development since October 2017 and has been used in several MMORPGs, such as Urkon Online, Lotus Online and Darknessfall.
 
Features
Current:
» 4 types of chat;
» 9 types of equipment;
» 13 administrator commands;
» 3 moderator commands;
» Global server battle system;
» Passwords protected with the MD5 cryptographic function;
» 99% of event commands on the server;
» Common server events;
» Configurable resolution;
» Global Switches;
» EventMachine network library;
» Friends system;
» Quest system;
» Account Editor;
» Teleportation;
» Paperdolls;
» Party;
» Minimap;
» Bank.
Next:
» Remaining event commands, such as: Show Choices, Item Selection, Wait and Move Event;
» Customized movement of events;
» Parallel process start conditions and automatic start of events on the server;
» Weapons and long range skills.
 
Images
» Login
RJsoIB6.jpg
» Character selection
lQTefSf.jpg
» Bank and party
V50zoaL.png
» Quests and friend list
jb4vtvc.png
» Admin panel
cCkRraM.png
 
Download
With DirectX:
 
No DirectX:
1) After downloading the DirectX version, download the Game.exe below and replace it with the one in the folder Client
2) Open the Script Editor (F11)
3) Browse the script [VS] Mouse:
hJ1n1tW.png
4) Replace ALL the script [VS] Mouse with:
#==============================================================================
# ** Mouse
#------------------------------------------------------------------------------
#  Autor: Cidiomar
#==============================================================================

module Mouse
  
  typedef 'unsigned long HCURSOR'
  dll = 'System/VXAOS.dll'
  Mouse__setup = c_function(dll, 'void Mouse__setup(struct RArray*, struct RArray*, struct RArray*, void *)')
  Mouse__update = c_function(dll, 'void Mouse__update()')
  Mouse__getPos = c_function(dll, 'void Mouse__getPos(long *)')
  Mouse__getOldPos = c_function(dll, 'void Mouse__getOldPos(long *)')
  
  @triggered = Input.triggered
  @pressed = Input.pressed
  @released = Input.released
  @repeated = Input.repeated
  @last_lclick = Time.now
  @last_rclick = Time.now
  @dbl_lclick = false
  @dbl_rclick = false
  @pos = Array.new(2, 0)
  Mouse__setup.call(@triggered, @pressed, @released, @repeated)
  
  def self.click?(button)
    return @triggered[1] if button == :L
    return @triggered[2] if button == :R
  end
  
  def self.press?(button)
    return @pressed[1] if button == :L
    return @pressed[2] if button == :R
  end
  
  def self.release?(button)
    return @released[1] if button == :L
    return @released[2] if button == :R
  end
  
  def self.repeat?(button)
    return @repeated[1] if button == :L
    return @repeated[2] if button == :R
  end
  
  def self.dbl_clk?(button)
    return @dbl_lclick if button == :L
    return @dbl_rclick if button == :R
  end
  
  def self.tile_x
    # Corrige o display_x, já que a tela pode se mover
    #16 em vez de 32 pixel na horizontal se a largura da
    #resolução for superior a 1000
    x = $game_map.display_x > 0 && $game_map.display_x > $game_map.display_x.to_i ? self.x + 16 : self.x
    (x / 32 + $game_map.display_x).to_i
  end
  
  def self.tile_y
    (($game_map.display_y * 32 + self.y) / 32).to_i
  end
  
  def self.in_tile?(object)
    object.x == tile_x && object.y == tile_y
  end
  
  def self.update
    Mouse__update.call()
    @pos = [0, 0].pack('l2')
    @old_pos = [0, 0].pack('l2')
    Mouse__getPos.call(@pos)
    Mouse__getOldPos.call(@old_pos)
    @pos = @pos.unpack('l2')
    @old_pos = @old_pos.unpack('l2')
    @dbl_lclick = double_left_click?
    @dbl_rclick = double_right_click?
  end
  
  def self.double_left_click?
    return false unless click?(:L)
    result = false
    t_diff = Time.now - @last_lclick
    if t_diff < 0.5 && @last_pos == @pos
      result = true
    else
      @last_lclick = Time.now
      @last_pos = @pos
    end
    result
  end
  
  def self.double_right_click?
    return false unless click?(:R)
    result = false
    t_diff = Time.now - @last_rclick
    if t_diff < 0.5 && @last_pos == @pos
      result = true
    else
      @last_rclick = Time.now
      @last_pos = @pos
    end
    result
  end
  
  def self.x;        @pos[0];           end
  def self.y;        @pos[1];           end
  def self.pos;      @pos.dup;          end
  def self.old_x;    @old_pos[0];       end
  def self.old_y;    @old_pos[1];       end
  def self.old_pos;  @old_pos.dup;      end
  def self.moved?;   @pos != @old_pos;  end
  
end
  
#==============================================================================
# ** Graphics
#==============================================================================
module Graphics
  
  def self.is_fullscreen?
    false
  end
  
  def self.toggle_fullscreen
  end
  
end

 

 
Tips
How to attack and chat with events:
Press Ctrl.
How to open the admin panel:
Press F9.
 
Tutorials
 
Additional Utilities
 
License
VXA-OS is a free open source framework, distributed under a very liberal license (the well-known MIT license). The project can be used for any purpose, including commercial purposes, without any cost or paperwork.
VXA-OS is not in the public domain and its creator retains its copyrights.
The only requirement is that if you use VXA-OS, you must give credit to the creator by including the copyright notice somewhere in your game.
In no event shall the copyright owner or copyright owner be liable for any claims, damages or other liabilities.
 
Credits
Creator:
Valentine
 
Thank you:
Cidiomar
Soreto
LeonM²
Komuro
zh99998
Gallighan
Shiy
RGD
Edited by Valentine90

Share this post


Link to post
Share on other sites
Version 1.0.6 available.
 
LOG:
-Paperdolls added;
-List of friends added;
-Bank added;
-Teleportation system added;
-Party added;
-Added moderator commands;
-Configurable maximum number of classes;
-Pup of gold added;
-Fix bug in the drop;
-Fix bug in the minimap;
-Other bugs fixed.
 
I added some things in the Manual.

Share this post


Link to post
Share on other sites

This is pretty cool, I gotta admit.

 

But I will say that having a binary option for gender is a bit limiting. I also am wondering if multiple currencies are already a thing, or are going to be added later.

Share this post


Link to post
Share on other sites

This may be my new favorite RM thing.

 

 

I love the sense of community, competition, and cooperation the MMO genre of rpgs provides, and the prospect of creating one has had me foaming at the mouth for over a year now.

 

I have to test compatibility with a few other scripts. Primarily Hime's Instance Items, Vlue's Advanced Recipe Crafting,  Dark Sky's House Decorating System. 

Share this post


Link to post
Share on other sites

I can make it to the login screen but without a server you can't even run offline tests (that I'm aware of).

 



Test1.thumb.png.a71972a89437dab25c7965cef2a00a1a.png

 

When it comes to servers and such I am all but useless. With everything in Portuguese, it hasn't been easy to figure anything out. I translated some of the config script, but all the raw info you need is in the Portuguese manual.

Share this post


Link to post
Share on other sites

"Game.exe has stopped working"

 

Spoiler

Exception Code:	c0000005
Exception Offset: 00011584

 

 

This tells me nothing. It may mean something to you, I dunno.

Share this post


Link to post
Share on other sites

Version 1.1.0 available.

 

LOG:
-Changes made in the Manual;
-Vocab added on the server;
-Added speed hack protection;
-Limit of inventory, trade and bank added;
-Event Command Call Added Common Event;
-Error when equipping weapon or armor that increases HP and/or Max MP fixed;
-Error when using item that permanently increases HP and/or Max MP fixed;
-Error by giving a high gold value through the admin panel fixed;
-Error when disconnected in character selection fixed;
-Error in vip days count in accounts editor fixed;
-Error when creating character without starting points fixed;
-Error of multiplying item in the trade fixed;
-Error when performing corrected event actions;
-Error in priority Below the Hero fixed;
-Error in the z-order of the chat fixed;
-Error on switches fixed.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×