[XP] Blizz-ABS Controller for RMX-OS

Started by Blizzard, January 17, 2010, 05:02:36 pm

Previous topic - Next topic

Blizzard

Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Wizered67

Is it possible (probably not) to make certain monsters not processed globaly (for example, i don't want players teaming up on the final boss)

Blizzard

You need so-called instance dungeons which currently isn't supported.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Wizered67

Do you plan on supporting them ever?

Blizzard

I could ask you the same question. Why don't you just make a server extension?
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

nathmatt

wouldn't you pretty much have to turn the maps into array of the same map so there would be more than 1 then have it check each map in the array for 1 without the max amount of players in it.
Join Dead Frontier
Sorry, I will no longer be scripting for RMXP. I may or may not give support for my scripts. I don't have the will to script in RGSS anymore.
My script


Blizzard

It's not that simple. The server needs to know on which map each player is located.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

nathmatt

i wasnt actually saying it was simple but i was just asking so the server would have to go through each maps array and update which would probably make the server lag more 
Join Dead Frontier
Sorry, I will no longer be scripting for RMXP. I may or may not give support for my scripts. I don't have the will to script in RGSS anymore.
My script


Ryex

virtual maps.

ie have the player transfer to a map ID that doesn't exist ie. map 100000 but have the client interpret map ids over a set value as existing maps

ie the client is tole map id 100000 but when it goes to pull data to display the map it uses map data for map id 1. the client tells the server it is on map 100000 and the server tells other players that the client is on map 100000 but the client is using data for map 1.

I've been thinking about the idea for a while now. the server would need and extension that kept track of virtual maps. the way it could work is if the client knew that a map id over a set value was supposed to be virtual so it queries the server for which id it should use to pull map data. the extension keeping track of virtual maps uses the virtual map the client sends and sends back the id of the appropriate map data.
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />

Blizzard

Yes, I was thinking of something similar. The client doesn't even have to know that he's in a virtual/private/instance map.
Party members (when using Blizz-ABS) should be able to enter a map together without all other players.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

nathmatt

i have a system that is working right now without an extension i just need to come up with a method for the party right not it checks  1000 maps to see if any 1 is in that map if they are it checks the next 1 but right now the map can only hold 1 person before it sends the next player to the next map i can make it hold more easily but im not sure the best method to have all the party members go to the same map that might need an extension
Join Dead Frontier
Sorry, I will no longer be scripting for RMXP. I may or may not give support for my scripts. I don't have the will to script in RGSS anymore.
My script


Blizzard

You can't make it work without an extension. The server synchronizes players and needs to know where they are. I'm not saying it's impossible to make it work without an extension, but it's not practical to make it work without an extension.
When you have only one player per map, you don't even need a server. That defeats the whole purpose of an online server.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

nathmatt

June 10, 2010, 06:17:30 pm #152 Last Edit: June 10, 2010, 06:26:52 pm by nathmatt
the way i made it i can limit the amount of players it doesn't necessarily have to be 1 i messed with the map setup so that even tho your map id is between 1000-1999 it still loads data from 1

edit also you can setup certain maps to be created normally
Join Dead Frontier
Sorry, I will no longer be scripting for RMXP. I may or may not give support for my scripts. I don't have the will to script in RGSS anymore.
My script


Blizzard

But then you can only have 2 instance maps at the same time. i.e. 45 and 1045.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

nathmatt

I use return ((Id * 1000)...(id * 1000) + 999) that's the range I divide it by 1000 to get the original I'd back
Join Dead Frontier
Sorry, I will no longer be scripting for RMXP. I may or may not give support for my scripts. I don't have the will to script in RGSS anymore.
My script


Blizzard

What if somebody uses a script to have more than 1000 maps? -_-
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

nathmatt

well i could just add another 0 and make it *10000 here is the script i have made so far

Spoiler: ShowHide
module Virtual_Maps_Config

  def self.regular_maps
    return []
  end
 
  def self.max_players
    return 100
  end
 
  def self.map(id)
    id  /= 1000 if id > 999
    return id if self.regular_maps.include?(id)
    return (id * 1000)...((id * 1000)+ 999)
  end
 
  def self.map_ids(id)
    return id / 1000
  end
 
  def self.check_ids(id)
    @map = self.map(id)
    @map.each{|m|
    pl = self.players(m)
    if pl.size <= self.max_players
      return m
    end}
  end
   
  def self.players(map_id)
    pl = []
    $network.players.any?{|key, value|
    pl.push(key) if value.map_id == map_id}
    return pl
  end

end

 
class Game_Map
  #--------------------------------------------------------------------------
  # * Setup
  #     map_id : map ID
  #--------------------------------------------------------------------------
  def setup(map_id)
    # Put map ID in @map_id memory
    @map_id = Virtual_Maps_Config.check_ids(map_id)
    # Load map from file and set @map
    @map = load_data(sprintf("Data/Map%03d.rxdata",
    Virtual_Maps_Config.map_ids(@map_id)))
    # set tile set information in opening instance variables
    tileset = $data_tilesets[@map.tileset_id]
    @tileset_name = tileset.tileset_name
    @autotile_names = tileset.autotile_names
    @panorama_name = tileset.panorama_name
    @panorama_hue = tileset.panorama_hue
    @fog_name = tileset.fog_name
    @fog_hue = tileset.fog_hue
    @fog_opacity = tileset.fog_opacity
    @fog_blend_type = tileset.fog_blend_type
    @fog_zoom = tileset.fog_zoom
    @fog_sx = tileset.fog_sx
    @fog_sy = tileset.fog_sy
    @battleback_name = tileset.battleback_name
    @passages = tileset.passages
    @priorities = tileset.priorities
    @terrain_tags = tileset.terrain_tags
    # Initialize displayed coordinates
    @display_x = 0
    @display_y = 0
    # Clear refresh request flag
    @need_refresh = false
    # Set map event data
    @events = {}
    for i in @map.events.keys
      @events[i] = Game_Event.new(@map_id, @map.events[i])
    end
    # Set common event data
    @common_events = {}
    for i in 1...$data_common_events.size
      @common_events[i] = Game_CommonEvent.new(i)
    end
    # Initialize all fog information
    @fog_ox = 0
    @fog_oy = 0
    @fog_tone = Tone.new(0, 0, 0, 0)
    @fog_tone_target = Tone.new(0, 0, 0, 0)
    @fog_tone_duration = 0
    @fog_opacity_duration = 0
    @fog_opacity_target = 0
    # Initialize scroll information
    @scroll_direction = 2
    @scroll_rest = 0
    @scroll_speed = 4
  end
end
Join Dead Frontier
Sorry, I will no longer be scripting for RMXP. I may or may not give support for my scripts. I don't have the will to script in RGSS anymore.
My script


Wizered67

June 11, 2010, 07:22:43 pm #157 Last Edit: June 21, 2010, 08:44:06 pm by Wizered67
Never mind

luchs

heeya!

i have installed a server and a client. version of RMX-OS is 1.14

everything works ... but when i go with the character to an other map then i get an error

here is the output of the server:

RMX-OS Server has started successfully at Sat Jun 19 16:34:37 UTC 2010.
Host: 178.63.176.133:54269
Press CTRL+C to shut down RMX-OS.
Client 1 (luchs) at Sat Jun 19 16:35:42 UTC 2010 has caused an error:
undefined method `exclusive' for Thread:Class
./Extensions/Blizz-ABS.rb:99:in `client_update'
./Data/Client.rb:43:in `handle'
./Data/Client.rb:43:in `each_value'
./Data/Client.rb:43:in `handle'
./Data/Server.rb:275:in `run'
./Data/Server.rb:255:in `start'
./Data/Server.rb:255:in `run'
RMX-OS.rb:57:in `main'
RMX-OS.rb:170

sorry for my bad english... me from switzerland

can anyone help me?

Blizzard

I'm sorry, but I can't fix the problem right now, my laptop broke down.

The only thnig that comes to my mind would be that you are running a wrong version of Ruby. You should make sure it's 1.9.1. I think that exclusive was undefined only in older versions.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.