Jump to content
Valentine

VXA-OS - Create your MMO with RPG Maker

Recommended Posts

vmblUfr.png


Author: Valentine
Version: 2.1.1 (released 09/23/2020)

 

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, Darknessfall and Mystical Hunter.

 

Features


Current:
-5 types of chat;
-9 types of equipment;
-13 administrator commands;
-3 monitor commands;
-Global real-time battle system on the server;
-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;
-VIP system;
-Account Editor;
-Teleportation;
-Paperdolls;
-Guild;
-Party;
-Minimap;
-PvP;
-Bank.
Next:
-Move Event event command;
-Customized movement of events.

 

Screenshots


» Login
ayYA007.jpg
» Selection of characters
RbXnfHR.jpg
» Bank and party
7qSRclf.png
» Quest and friends list
QQCpwDJ.png
» Administration panel and guild creation
3N8Nj6u.png
» Guild
BHTrbF5.png

 

Download


With DirectX:
Mega
4shared

GitHub

 

Without DirectX:
1) After downloading the DirectX version, download the Game.exe executable below and replace it with the one in the folder Client
Download Game.exe
2) Open the Script Editor (F11)
3) Search for the script [VS] Mouse:
hJ1n1tW.png
4) Replace ALL [VS] Mouse script 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
  
  def self.vsync=(vsync)
  end
  
  def self.vsync
  end
  
end

 

Tips


How to attack or speak to events:
Press Ctrl.
How to open the administration panel:
Press Insert.
English vocabulary:
Open the script editor (F11) and replace the [VS] Vocab script with:

#==============================================================================
# ** Vocab
#------------------------------------------------------------------------------
#  This module deals with vocabulary. All texts displayed
# in the game are here.
#------------------------------------------------------------------------------
#  Author: Valentine
#==============================================================================

module Vocab
  
  # Login and account creation
  Username           = 'Username'
  Password           = 'Password'
  RepeatPass         = 'Repeat password:'
  Email              = 'Email:'
  Remember           = 'Remember?'
  Register           = 'Register'
  Connect            = 'Connect'
  NewAcc             = 'Register'
  Login              = 'Log in'
  
  # Character creation and selection
  NotVIP             = 'You are not VIP'
  VIP                = 'You have %s VIP days.'
  Name               = 'Name'
  Sex                = 'Sex:'
  Class              = 'Class:'
  Graphic            = 'Graphic:'
  Points             = 'Points:'
  Male               = 'Male'
  Female             = 'Female'
  Empty              = 'Empty'
  Play               = 'Play'
  ShopBuy            = 'Buy'
  
  # Chat
  SecondaryText      = 'Press Enter to talk...'
  Map                = 'Map'
  All                = 'All'
  Party              = 'Party'
  Guild              = 'Guild'
  Private            = 'Private'
  
  # Menu alert
  ServerOffline      = 'The server is offline!'
  ServerFull         = 'The server is full. Try again later!'
  ConnectionFailed   = 'The connection failed!'
  Insufficient       = '%s must be at least %d characters!'
  ForbiddenCharacter = 'The name can only contain letters, numbers and space!'
  Kicked             = 'You got kicked out!'
  IPBanned           = 'Your IP is banned!'
  OldVersion         = 'This version is old. Please update!'
  AccBanned          = 'Your account is banned!'
  InvalidUser        = 'Invalid user!'
  InvalidPass        = 'Invalid password!'
  InvalidName        = 'Invalid name!'
  InvalidEmail       = 'Invalid email!'
  PasswordsNotMatch  = 'Passwords do not match!'
  IPBlocked          = 'You missed the data 5 times. Your IP was blocked for 3 minutes!'
  MultiAccount       = 'User logged in!'
  Inactivity         = 'You have exceeded the maximum downtime!'
  EnterPass          = 'The character will be permanently deleted and cannot be recovered. Please enter your password to confirm the deletion.'
  AccExist           = 'This user already exists!'
  Successful         = 'Account registered successfully!'
  CharExist          = 'This name is already in use!'
  
  # Game alert
  Teleported         = 'You have been teleported.'
  Pulled             = 'You were pulled.'
  Muted              = 'You have been muted for 30 seconds.'
  NonPvP             = 'You can not attack here.'
  AttackAdmin        = 'You cannot attack an administrator.'
  NotEnoughMoney     = 'Insufficient money.'
  NotSellItem        = 'This shop does not buy items.'
  NotTarget          = 'You have no target.'
  NotSeeTarget       = 'You are not seeing the target.'
  TargetNotInRange   = 'Target out of range!'
  InsufficientLevel  = 'You do not have enough level to use this item.'
  InsufficientMP     = 'You do not have enough MP.'
  GlobalSpawning     = 'Wait 1 second to speak again in the global chat.'
  NotAmmunition      = 'You have no ammo.'
  NotPickUpDrop      = 'You still can not get this item.'
  RequestDeclined    = 'Your request was declined.'
  FullInventory      = 'Your inventory is full.'
  FullTrade          = 'The trade is full.'
  FullBank           = 'The bank is full.'
  FullDrops          = 'You cannot drop an item on the floor now.'
  ProtectionLevel    = 'You or your target does not have enough level to duel.'
  EquipVIP           = 'Only VIP players can use this equipment.'
  DifferentSex       = 'This protector was not made for your sex.'
  SoulboundItem      = 'This item is linked to your soul and cannot be traded, dropped or deposited.'
  Blocked            = 'was blocked.'
  Unlocked           = 'has been unlocked.'
  Busy               = 'This player is busy.'
  Ask                = 'Are you sure?'
  
  # Skills
  Attack             = 'Attack'
  Support            = 'Support'
  
  # Friends
  FullFriends        = 'Your friends list is full.'
  FriendAdded        = 'has been added to your friends list.'
  FriendExist        = 'This player is already your friend.'
  FriendRequest      = 'wants to be your friend. Accept?'
  Friend             = 'Friend'
  
  # Trade
  TradeRequest       = 'invited you for an trade. Accept?'
  TradeComplete      = 'wants to complete the trade. Accept?'
  TradeDeclined      = 'The trade was declined.'
  TradeFinished      = 'Trade finished.'
  PlayerNotInRange   = 'Player out of range.'
  InTrade            = 'You are already in an trade.'
  Trade              = 'Trade'
  
  # Bank
  Items              = 'Items'
  Weapons            = 'Weapons'
  Armors             = 'Armors'
  
  # Party
  InParty            = 'This player is already in a party.'
  PartyRequest       = 'invited you to a party. Accept?'
  PartyMemberJoined  = 'joined the party.'
  PartyMemberLeave   = 'left the party.'
  DissolvedParty     = 'Party dissolved.'
  FullParty          = 'Your party is full.'
  NotParty           = 'You are not in a party.'
  
  # Guild
  NewGuild           = 'Guild creation'
  YouInGuild         = 'You are already in a guild.'
  PlayerInGuild      = 'is already in the guild'
  GuildExist         = 'This guild already exists.'
  EmptyFlag          = 'You did not draw the flag.'
  NotGuildLeader     = 'You are not the leader of the guild.'
  FullGuild          = 'Your guild is full.'
  GuildRequest       = 'invited you to the %s guild. Accept?'
  NotGuild           = 'You are not in a guild.'
  Leader             = 'Leader'
  Member             = 'Member'
  NewLeader          = 'New leader:'
  Notice             = 'Notice:'
  Main               = 'Main'
  Manage             = 'Manage'
  
  # Description of items, weapons and protectors
  Equipable          = 'Equipable by'
  NotEquipable       = 'Not equipable by'
  Consumable         = 'Consumable:'
  BaseDamage         = 'Base damage:'
  Soulbound          = 'Soulbound'
  TwoHanded          = 'Two-handed weapon'
  OneHanded          = 'One-handed weapon'
  ItemType           = 'Type:'
  Normal             = 'Normal'
  MPCost             = 'MP cost:'
  Hit                = 'Hit:'
  
  # Menu
  Menu               = 'Menu'
  Configs            = 'Settings'
  BackLogin          = 'Back to login'
  BackSelection      = 'Back to selection'
  Quit               = 'Leave game'
  Music              = 'Music:'
  Sound              = 'Sound:'
  Resolution         = 'Resolution:'
  FullScreen         = 'Full screen:'
  FPS                = 'FPS:'
  Vsync              = 'V-sync'
  NoLimit            = 'No limit'
  
  # Titles
  Teleport           = 'Teleport'
  Bank               = 'Bank'
  Amount             = 'Amount'
  Shop               = 'Shop'
  Alert              = 'Alert'
  NewChar            = 'Character creation'
  UseChar            = 'Selection of characters'
  
  # Quests
  Quest              = 'Quest'
  Quests             = 'Quests'
  Information        = 'Information'
  InProgress         = 'In progress'
  Completed          = 'Completed'
  StartQuest         = 'You started the quest'
  FinishQuest        = 'You have completed the quest'
  Rewards            = 'Rewards:'
  Item               = 'Item'
  Exp                = 'Exp'
  
  # Admin panel
  SecondaryPanelText = "Enter the name or 'all'"
  AdmPanel           = 'Admin panel'
  AlertMessage       = 'Alert message:'
  Motd               = 'Motd:'
  Banishment         = 'Banishment:'
  GlobalSwitch       = 'Global switch:'
  Days               = 'Days'
  ID                 = 'ID:'
  Kick               = 'Kick'
  Mute               = 'Mute'
  Pull               = 'Pull'
  GoTo               = 'Go to'
  Change             = 'Change'
  BanAcc             = 'Ban account'
  BanIP              = 'Ban IP'
  Unban              = 'Unban'
  On                 = 'On'
  Off                = 'Off'
  Teleport           = 'Teleport'
  GiveItem           = 'Give item'
  Send               = 'Send'
  
  # Buttons
  Ok                 = 'Ok'
  Go                 = 'Go'
  Cancel             = 'Cancel'
  Yes                = 'Yes'
  No                 = 'No'
  Create             = 'Create'
  Delete             = 'Delete'
  Accept             = 'Accept'
  Block              = 'Block'
  Unlock             = 'Unlock'
  Activated          = 'Activated'
  Disabled           = 'Disabled'
  
  # Minimap icons
  Boss               = 'Boss'
  CheckPoint         = 'Check point'
  
  # HUD
  MaxLevel           = 'Max level'
  
end

 

Discord


Keep in touch with us and report any errors you find also in our Discord.

 

Tutorials


Level next to the player's name in the chat
Show group in chat and on top of the character
Percentage experience
Enemies do not attack administrators
Do not attack party member
Black background under the name
Player names and events only appear if you hover over them
Independence from RTP
Parallax System

Do not lose level when dying

 

Additional utilities


MySQL database
Simple launcher
Auto Update

 

Credits


Creator:
Valentine

Thank you:
Cidiomar
Soreto
LeonM²
Komuro
zh99998
Gallighan
invwindy
Cianfrocca

Share this post


Link to post
Share on other sites

Looks very nice! 

 

I have a couple of questions :) 

 

Is it open source?

In which language is it written?

What do you mean with » Global server battle system?

Will it be in a similar vein to Intersect with editors and the like?
 

(Sorry, can't download at work, so some of these questions might be easily answered by myself)

Share this post


Link to post
Share on other sites

If this is like Valentines past work then its a server app and a set of scripts to create an online enabled RPG Maker VX/Ace game. So the requirements as far as owning RPG Maker VX/Ace still stand and then your design options are the same(ish) as rpg makers. It isn't open source but all the scripts to make the above possible are available for editing.

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

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

Haven’t checked out the English version yet but is there a setup guide or anything like that available? I would love to test this engine but I’m not sure if I could get it to run without a guide lol. 

Share this post


Link to post
Share on other sites
4 hours ago, Zetasis said:

Ainda não verificamos a versão em inglês, mas existe algum guia de configuração ou algo assim? Eu adoraria testar este motor, mas não tenho certeza se eu poderia fazê-lo funcionar sem um guia lol. 

 

It has a manual in the download explaining how to configure it.

More Suport: https://discord.gg/u8v5df9

Share this post


Link to post
Share on other sites

Version 2.0.3 available.

 

LOG:
-Input_Slider finished;
-Chat error fixed;
-Error when disconnecting the player fixed;
-Fixed Flash Effect event command error.

Share this post


Link to post
Share on other sites

Version 2.0.4 available.

LOG:
-Damage limit received by the customer increased;
-Cursor icon changes when hovering over event, enemy, drop and player;
-Error selecting target fixed.

Share this post


Link to post
Share on other sites

Version 2.1.1 available.

 

LOG:
-Tooltip added to the minimap;
-Added animated projectiles;
-Bug in HUD opacity when changing fixed map;
-Bug when executing the Show Message and Show Picks event commands in the fixed common events.

Share this post


Link to post
Share on other sites
On 6/23/2019 at 9:31 AM, Valentine said:

I just released a 100% English version.

Hey Valentine when you said this were you talking about the Vocab edit you have in your original post or do you have a version that everything is in english including server, account editor, etc?

Share this post


Link to post
Share on other sites
1 hour ago, Superspyi said:

Hey Valentine when you said this were you talking about the Vocab edit you have in your original post or do you have a version that everything is in english including server, account editor, etc?

Currently, only Vocab, which is on the topic, is in English. Perhaps, in the future, I will translate everything into English.

Share this post


Link to post
Share on other sites
3 hours ago, Valentine said:

Currently, only Vocab, which is on the topic, is in English. Perhaps, in the future, I will translate everything into English.

Awesome.  Really looking forward to it!  As far as I'm aware there's nothing else like this in terms of RPG maker MMO capabilities.  

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

×
×
  • Create New...