J´ai programmer un script avec l´éditeur python/C++.
Car l´éditeur de script java ne marchait pas.
Ce script permet d´optimiser les connexions des joueurs sur le MMORPG.
Remplacer le contenu du script "network[2]" par celui-ci:
- =================================================
=============================
- ■ Network
- -------------------------------------------------
-----------------------------
- Manages network data.
- Programmed by Cibermix-/-
- =================================================
=============================
class Network
- -------------------------------------------------
-------------------------
# ● Attributes
- -------------------------------------------------
-------------------------
attr_reader :socket
attr_reader :players
attr_reader :sprites
attr_accessor :version
attr_accessor :usergroup
- -------------------------------------------------
-------------------------
# ● Initializes network variables.
- -------------------------------------------------
-------------------------
def initialize(host, port)
@socket = TCPSocket.new(host, port)
@players = {}
@version = ""
$session = "inactive"
@tme = Time.new.strftime(´%I:%M.%S %p´).to_s
@usergroup = ""
end
- -------------------------------------------------
-------------------------
# ● Sends the player´s data.
- -------------------------------------------------
-------------------------
def send_player_data
@socket.send("<player>@map_id = #{$game_map.map_id}; @time = ´#{@tme}´; @group = ´#{@usergroup}´; @class_name = ´#{$game_actors[1].class_name}´; @map_name = ´#{$game_map.name}´; @level = ´#{$game_actors[1].level}´; @quest = ´#{$game_temp.quest}´; @hp = ´#{$game_actors[1].hp}´; @sp = ´#{$game_actors[1].sp}´; @spmax = ´#{$game_actors[1].maxsp}´; @hpmax = ´#{$game_actors[1].maxhp}´; @name = ´#{$game_party.actors[0].name}´; @character_name = ´#{$game_player.character_name}´; @direction = #{$game_player.direction}; @move_speed = #{$game_player.move_speed}; moveto(#{$game_player.x}, #{$game_player.y})</player>\n")
end
- -------------------------------------------------
-------------------------
# [!] Sends the player´s battle data.
- -------------------------------------------------
-------------------------
def send_battle_data
@socket.send("<battle>@</battle>\n")
end
- -------------------------------------------------
-------------------------
# ● Updates network player data.
- -------------------------------------------------
-------------------------
def update_net_player(id, data)
@players[id] ||= Game_NetPlayer.new
@players[id].refresh(data)
end
- -------------------------------------------------
-------------------------
# Logout Player
- -------------------------------------------------
-------------------------
def logout
$session = "inactive"
$game_actors[1].name = nil
$group.remove
$group = nil
end
- -------------------------------------------------
-------------------------
# ● Updates network data.
- -------------------------------------------------
-------------------------
def update
@tme = Time.new.strftime(´%I:%M.%S %p´).to_s
return unless @socket.ready?
for line in @socket.recv(0xfff).split("\n")
case line
when /<player id="(.*)">(.*)<\/player>/
update_net_player($1, $2) unless $session == "inactive"
when /<system>(.*)<\/system>/
if $session == "active"
eval($1.to_s)
$game_map.need_refresh = true
$scene.update
$game_map.update
end
next if $1.match(/File|system|/)
$game_map.need_refresh = true unless $session == "inactive"
when /<chat>(.*)<\/chat>/
$game_temp.chat_log.push($1)
$game_temp.chat_refresh = true
when /<gc>(.*)<\/gc>/ #Kick Addon
print "kicked"
$scene = nil
when /<login>(.*)<\/login>/ #Login Addon
if $1 == "allow"
$status.status = "Correct Login... Please Wait"
$group = Groupn
$group.check
$session = "active"
elsif $1 == "wu"
$status.status = "Incorrect Username"
$session = "inactive"
elsif $1 == "wp"
$status.status = "Incorrect Password"
$session = "inactive"
end
when /<kick>(.*)<\/kick>/ #Game Kick Addon
if $1 == "kick_all"
print "Kicked"
$scene = nil
end
when /<ver>(.*)<\/ver>/ #Version message
if $1.to_s == nil
$game_temp.msg = "Error: Version not available!!"
else
@version = $1.to_s
end
when /<reges>(.*)<\/reges>/ #Registration Addon
$scene = Scene_Login.new
$status.status = "Registered Successfully"
when /<mod>(.*)<\/mod>/ #Message Of The Day Addon
$game_temp.msg = $1.to_s
when /<check>(.*)<\/check>/ #Check User Group
@usergroup = $1.to_s
end
end
end
end
Voilà j´espere que ca vous servira. 