Scene_Players - Players on Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Scene_Players - Players on

+4
Maverick ~
Lief
Shoyu!
Roku
8 participantes

Página 1 de 2 1, 2  Seguinte

Ir para baixo

Scene_Players - Players on Empty Scene_Players - Players on

Mensagem por Roku Seg Abr 30, 2012 9:01 pm

Ae galera, eu tava dando uma olhada no meu pc e encontrei um sistema que mostra a quantidade de players on, então resolvi postar aqui pra vocês.
Os devidos créditos se encontram nos scripts.

Como chama a scene?
$scene = Scene_Players.new

É provavel que dê erro?
Sim, até onde sei pode dar erro na linha 42, esse erro pode ser facilmente corrigido comentando a linha.
Fora esse erro, o script é incompatível com o sistema de guild do netplay master v3.

Como 'instalar' o sistema?
Crie 2 scripts, no primeiro ponha o código: (nomeie ele como Scene_Player)
Código:
#==============================================================================
# ** Scene_Players - Displays the connected players.
#------------------------------------------------------------------------------
# Author    GoldenAura 3 , Eragon 55100 ( Edited to work with Netplay Plus™️)
# Version  1.0
# Date      12-04-06
#==============================================================================
SDK.log("Players","GoldenAura 3, Eragon 55100","1.0","12-04-06")

#-------------------------------------------------------------------------------
# Begin SDK Enabled Check
#-------------------------------------------------------------------------------
#if SDK.state('Network') and SDK.state('PlayersWindow') and SDK.state('Players')

class Scene_Players
  #--------------------------------------------------------------------------
  # * Main processing
  #--------------------------------------------------------------------------
  def main
    # Creates windows.
    @help_window = Window_Help.new
    @player_window = Window_Players.new if SDK.state('PlayersWindow')
    Graphics.transition
    loop do
      Graphics.frame_reset
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @help_window.dispose
    @player_window.dispose
  end
 
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    $m.update
    @help_window.update if SDK.state('PlayersWindow')
  #  Network::Main.send_player_data
    Network::Main.update
    if Graphics.frame_count % Graphics.frame_rate == 0
      @player_window.update
    Network::Main.update
    end
    @i = 0
    for p in Network::Main.players.values
      @i += 1
    end
#    if Input.trigger?(Input::C) && @i != 0
 #    $scene = Scene_Profile.new
 #  end
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new
      return
    end
    if Input.press?(Input::UP)
      unless @player_window.oy == 0
        @player_window.oy -= 8
        return
      end
    end
    if Input.press?(Input::DOWN)
      if Network::Main.players.size > 11
      @player_window.oy += 8
        return
    end
    end       
  end
end

#end
#-------------------------------------------------------------------------------
# End SDK Enabled Check
#-------------------------------------------------------------------------------
No segundo script ponha o seguinte código: (nomeie ele como Window_Players)
Código:
#===============================================================================
# ** Window_Players - Displays connected players.
#-------------------------------------------------------------------------------
# Author    Destined, Eragon 55100 ( Edited to work with Netplay Plus™️)
# Version  1.0
# Date      12-04-06
#===============================================================================
SDK.log("PlayersWindow", "Destined, Eragon 55100", "1.0", "12-04-06")

#-------------------------------------------------------------------------------
# Begin SDK Enabled Check
#-------------------------------------------------------------------------------
p "Network Script was not found (class Window_Players)" if not SDK.state('Network')
if SDK.state('Network') and SDK.state('PlayersWindow')

class Window_Players < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initializing
  #--------------------------------------------------------------------------
  def initialize
    super(0, 64, 640, 416)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.size = 16
    index = 0
    refresh
  end

  #--------------------------------------------------------------------------
  # * Refreshes the window.
  #--------------------------------------------------------------------------
  def refresh
    name = Network::Main.name
    self.contents.clear
    self.contents.draw_text(4, 0, 640, 32, "Username")
    self.contents.fill_rect(0, 32, 640, 1, normal_color)
    #self.contents.draw_text(4, 32, 128, 32, "#{name}")
#    self.contents.draw_text(300, 32, 128, 32, $game_map.name)

    i = 0
    for p in Network::Main.players.values
      begin
#        self.contents.draw_text(4, i * 32 + 64, 128, 32, p.netid)
        self.contents.draw_text(4, i * 32 + 30, 128, 32, p.username)
#        self.contents.draw_text(300, i * 32 + 64, 128, 32, p.map_id)
        i += 1
      rescue
      end
  #  if i >= 2
  # end
    #  self.contents.draw_text(500, 360, 640, 32, "Profiles:Space") if SDK.state('Profile')
    #end
  #end
  #--------------------------------------------------------------------------
  # * Updates the window.
  #--------------------------------------------------------------------------
  def update
    super
    refresh
  end
end

end
end
end
#end
#-------------------------------------------------------------------------------
# End SDK Enabled Check
#---------------------------------------------------------------------------
Agora vá no script: Game_NetPlayer
Troque todo o código que há lá por este:
Código:
#===============================================================================
# ** Network - Manages network data.
#-------------------------------------------------------------------------------
# Author    Me™️ and Mr.Mo
# Version  1.0
# Date      11-04-06
#===============================================================================
SDK.log("Netplayer", "Me™️ and Mr.Mo", "1.0", " 11-04-06")

p "Network Script not found!(Game_NetPlayer)" if not SDK.state('Network')
#-------------------------------------------------------------------------------
# Begin SDK Enabled Check
#-------------------------------------------------------------------------------
if SDK.state('Netplayer') == true and SDK.state('Network')
 
class Game_NetPlayer < Game_Character
  #--------------------------------------------------------------------------
  # * Class Variables
  #--------------------------------------------------------------------------
  attr_accessor :map_id
  attr_accessor :name
  attr_accessor :level
  attr_accessor :netid
  attr_accessor :hp
  attr_accessor :sp
  attr_accessor :username
  attr_accessor :event
  attr_accessor :agi
  attr_accessor :pdef
  attr_accessor :eva
  attr_accessor :mdef
  attr_accessor :states
  attr_accessor :damage
  attr_accessor :gold
  #--------------------------------------------------------------------------
  # * Initializes a network player.
  #--------------------------------------------------------------------------
  def initialize
    name = Network::Main.name
    super
    @map_id = 0
    @name = ""
    @level = -1
    @netid = -1
    @hp = -1
    @sp = -1
    @username = "#{name}"
    @move_tom = true
    @event = self
    @eva = 0
    @agi = 0
    @pdef = 0
    @mdef = 0
    @states = []
    @damage = 0
    @gold = 0
    $game_temp.spriteset_refresh = true
  end
  #-------------------------------------------------------------------------
  # * Refresh Netplayer with Data
  #-------------------------------------------------------------------------
  def refresh(data)
    return if @netid == Network::Main.id
    @oldx = @x
    @oldy = @y
    eval(data) unless data == nil
    @transparent = (not $game_map.map_id == @map_id) rescue @transparent =false
    net_move if @oldx != @x or @oldy != @y
    @move_tom = false
  end
  #--------------------------------------------------------------------------
  # * Get the Demage
  #--------------------------------------------------------------------------
  def attack_effect(attacker = $game_party.actors[0])
    # First hit detection
    hit_result = (rand(100) < attacker.hit)
    @damage = "Miss" if !hit_result
    return "Miss" if !hit_result
    # Calculate basic damage
    atk = [attacker.atk - @pdef / 2, 0].max
    damage = atk * (20 + attacker.str) / 20
    # Element correction
    damage *= attacker.elements_correct(attacker.element_set)
    damage /= 100
    # If damage value is strictly positive
    if damage > 0
      # Critical correction
      if rand(100) < 4 * attacker.dex / @agi
        damage *= 2
        @critical = true
      end
    end
    # Dispersion
    if damage.abs > 0
      amp = [damage.abs * 15 / 100, 1].max
      damage += rand(amp+1) + rand(amp+1) - amp
    end
    # Second hit detection
    eva = 8 * @agi / attacker.dex + @eva
    hit = damage < 0 ? 100 : 100 - eva
    hit = cant_evade? ? 100 : hit
    hit_result = (rand(100) < hit)
    # State change
    netid = @netid
    Network::Main.socket.send("<state_id>#{netid}\n")
    # State Removed by Shock
    Network::Main.socket.send("<state>remove_states_shock</state>\n")
    # Substract damage from HP
    @hp -= damage
    #Get all the plus states
    s = "["
    m = attacker.plus_state_set
    for i in 0..m.size
      k = m[i]
      s += "#{k}"
      s += ", " if i != m.size
    end
    s += "]"
    Network::Main.socket.send("<state>states_plus(#{s})</state>\n")
    #Get all the minus states
    s = "["
    m = attacker.minus_state_set
    for i in 0..m.size
      k = m[i]
      s += "#{k}"
      s += ", " if i != m.size
    end
    s += "]"
    Network::Main.socket.send("<state>states_minus(#{s})</state>\n")
    @damage = damage
    return damage
  end
  #--------------------------------------------------------------------------
  # * Apply Skill Effects
  #    user  : the one using skills (battler)
  #    skill : skill
  #--------------------------------------------------------------------------
  def effect_skill(user, skill)
    # Clear critical flag
    @critical = false
    # If skill scope is for ally with 1 or more HP, and your own HP = 0,
    # or skill scope is for ally with 0, and your own HP = 1 or more
    if ((skill.scope == 3 or skill.scope == 4) and @hp == 0) or
      ((skill.scope == 5 or skill.scope == 6) and @hp >= 1)
      # End Method
      return false
    end
    # Clear effective flag
    effective = false
    # Set effective flag if common ID is effective
    effective |= skill.common_event_id > 0
    # First hit detection
    hit = skill.hit
    if skill.atk_f > 0
      hit *= user.hit / 100
    end
    hit_result = (rand(100) < hit)
    # Set effective flag if skill is uncertain
    effective |= hit < 100
    # If hit occurs
    if hit_result == true
      # Calculate power
      power = skill.power + user.atk * skill.atk_f / 100
      if power > 0
        power -= @pdef * skill.pdef_f / 200
        power -= @mdef * skill.mdef_f / 200
        power = [power, 0].max
      end
      # Calculate rate
      rate = 20
      rate += (user.str * skill.str_f / 100)
      rate += (user.dex * skill.dex_f / 100)
      rate += (user.agi * skill.agi_f / 100)
      rate += (user.int * skill.int_f / 100)
      # Calculate basic damage
      @damage = power * rate / 20
      # Element correction
      @damage *= user.elements_correct(skill.element_set)
      @damage /= 100
      # Dispersion
      if skill.variance > 0 and @damage.abs > 0
        amp = [@damage.abs * skill.variance / 100, 1].max
        @damage += rand(amp+1) + rand(amp+1) - amp
      end
      # Second hit detection
      eva = 8 * @agi / user.dex + @eva
      hit = @damage < 0 ? 100 : 100 - eva * skill.eva_f / 100
      hit = cant_evade? ? 100 : hit
      hit_result = (rand(100) < hit)
      # Set effective flag if skill is uncertain
      effective |= hit < 100
    end
    # If hit occurs
    if hit_result == true
      # If physical attack has power other than 0
      if skill.power != 0 and skill.atk_f > 0
        # State change
        netid = @netid
        Network::Main.socket.send("<state_id>#{netid}\n")
        # State Removed by Shock
        Network::Main.socket.send("<state>remove_states_shock</state>\n")
        # Set to effective flag
        effective = true
      end
      # Substract damage from HP
      last_hp = @hp
      @hp -= @damage
      effective |= @hp != last_hp
      # State change
      @state_changed = false
      #Get all the plus states
      s = "["
      m = user.plus_state_set
      for i in 0..m.size
        k = m[i]
        s += "#{k}"
        s += ", " if i != m.size
      end
      s += "]"
      Network::Main.socket.send("<state>states_plus(#{s})</state>\n")
      #Get all the minus states
      s = "["
      m = user.minus_state_set
      for i in 0..m.size
        k = m[i]
        s += "#{k}"
        s += ", " if i != m.size
      end
      s += "]"
      Network::Main.socket.send("<state>states_minus(#{s})</state>\n")
      # If power is 0
      if skill.power == 0
        # Set damage to an empty string
        @damage = ""
        # If state is unchanged   
        unless @state_changed
          # Set damage to "Miss"
          @damage = "Miss"
        end
      end
      # If miss occurs
      else
        # Set damage to "Miss"
        @damage = "Miss"
      end
    # End Method
    return effective
  end
  #--------------------------------------------------------------------------
  # * Determine [Can't Evade] States
  #--------------------------------------------------------------------------
  def cant_evade?
    for i in @states
      if $data_states[i].cant_evade
        return true
      end
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Move
  #--------------------------------------------------------------------------
  def net_move
    if @move_tom
      moveto(@x,@y)
      return
    end
    # Get difference in player coordinates
    sx = @oldx - @x
    sy = @oldy - @y
    # If coordinates are equal
    return if sx == 0 and sy == 0
    # Get absolute value of difference
    abs_sx = sx.abs
    abs_sy = sy.abs
    moveto(@x,@y) if abs_sx > 2 or abs_sy > 2
  end
  #-------------------------------------------------------------------------
  # * Set NetId
  #-------------------------------------------------------------------------
  def do_id(id)
    @netid = id
  end
  #-------------------------------------------------------------------------
  # * Start
  #-------------------------------------------------------------------------
  def start(id)
    return if id.to_i == Network::Main.id
    #Network::Main.send_start_request(id)
  end
  #-------------------------------------------------------------------------
  # * Map (dummy)
  #-------------------------------------------------------------------------
  def map
    return
  end
  #-------------------------------------------------------------------------
  # * Increase steps
  #-------------------------------------------------------------------------
  def ic
    increase_steps
  end
  #-------------------------------------------------------------------------
  # * Emptied(for errors) Check event trigger touch
  #-------------------------------------------------------------------------
  def check_event_trigger_touch(x, y)
    return
  end
end
end
#-------------------------------------------------------------------------------
# End SDK Enabled Check
#----------------------------------------------------------------

Roku
Iniciante
Iniciante

Mensagens : 41
Créditos : 6

Ir para o topo Ir para baixo

Scene_Players - Players on Empty Re: Scene_Players - Players on

Mensagem por Shoyu! Seg Abr 30, 2012 9:06 pm

Não seria mais fácil ir no chat e digitar "/online" ?

Ou colocar
Código:
$game_variables[X] = Network::Main.players.values
?


_________________



Todas as pessoas vivem confiando na sua sabedoria e no seu conhecimento, e ficam presos a eles. Eles chamam isso de "realidade". Entretanto sabedoria e conhecimento são ambíguos, deste modo, a realidade não é nada além de uma ilusão.

Itachi Uchiha


Shoyu!
Shoyu!
Membro Ativo
Membro Ativo

Mensagens : 272
Créditos : 13

http://shoyuscripts.webnode.com

Ir para o topo Ir para baixo

Scene_Players - Players on Empty Re: Scene_Players - Players on

Mensagem por Roku Seg Abr 30, 2012 9:18 pm

E como você mostraria todos os player em uma variável do sistema?
E não sei se você leu, mas esse script mostra os players online, não a quantidade de players online.

_________________
MRM
é igual um gigante cadeirante, quando cai, é muito difícil se levantar,
e quando se levanta não consegue ir para frente sem cair novamente.

Roku
Iniciante
Iniciante

Mensagens : 41
Créditos : 6

Ir para o topo Ir para baixo

Scene_Players - Players on Empty Re: Scene_Players - Players on

Mensagem por Lief Seg Abr 30, 2012 9:20 pm

@Shoyu!:
O "/online" só diz quantos players estão online
esse diz QUAIS players estão online,aparecendo os mapas e talz como o sistema do NP Master 3.1(mas esse não é ele,eu acho.)
Lief
Lief
Desenvolvedor
Desenvolvedor

Mensagens : 834
Créditos : 50

http://shafou.com

Ir para o topo Ir para baixo

Scene_Players - Players on Empty Re: Scene_Players - Players on

Mensagem por Roku Seg Abr 30, 2012 9:21 pm

Não creio que seja do NPM 3.1, esse daí achei junto com uns outros 60 scripts que tenho aqui.
Eu já vou compatibiliza-lo com o sistema de guild do master.

Spoiler:
Ta aí a imagem do sistema.

Vou avisando novamente, caso utilize um netplay com sistema de guild, não utilize esse sistema pois ele é incompatível.

Roku
Iniciante
Iniciante

Mensagens : 41
Créditos : 6

Ir para o topo Ir para baixo

Scene_Players - Players on Empty Re: Scene_Players - Players on

Mensagem por Maverick ~ Seg Abr 30, 2012 9:38 pm

Muito bom mesmo cara,
tentei compatibilizar com o v3 já.
MISSION COMPLETE.

Mas perdi no meu PC --' Fuckthashit +1 Cred

_________________
Alguma Duvida!? Me mande uma MP

Scene_Players - Players on BgIconeLivro                 Regras do Fórum


Scene_Players - Players on L4thF
Maverick ~
Maverick ~
Membro Ativo
Membro Ativo

Mensagens : 372
Créditos : 39

Ir para o topo Ir para baixo

Scene_Players - Players on Empty Re: Scene_Players - Players on

Mensagem por Adanrox Seg Abr 30, 2012 9:53 pm

­


Última edição por Adanrox em Ter Dez 17, 2013 12:08 pm, editado 1 vez(es)
Adanrox
Adanrox
Diva
Diva

Mensagens : 522
Créditos : 74

Ficha do personagem
Nível: 1
Experiência:
Scene_Players - Players on Left_bar_bleue0/0Scene_Players - Players on Empty_bar_bleue  (0/0)
Vida:
Scene_Players - Players on Left_bar_bleue30/30Scene_Players - Players on Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Scene_Players - Players on Empty Re: Scene_Players - Players on

Mensagem por Maverick ~ Seg Abr 30, 2012 9:56 pm

Créditos aos seguintes makers
Código:
 GoldenAura 3 , Eragon 55100, Destined,  Me™ and Mr.Mo

_________________
Alguma Duvida!? Me mande uma MP

Scene_Players - Players on BgIconeLivro                 Regras do Fórum


Scene_Players - Players on L4thF
Maverick ~
Maverick ~
Membro Ativo
Membro Ativo

Mensagens : 372
Créditos : 39

Ir para o topo Ir para baixo

Scene_Players - Players on Empty Re: Scene_Players - Players on

Mensagem por Valentine Seg Abr 30, 2012 10:14 pm

Enquanto você estiver vendo os jogadores nessa scene, alguém pode estar lhe matando ;/

Não é muito bom usar scenes dessa forma.
Valentine
Valentine
Administrador
Administrador

Medalhas : Scene_Players - Players on ZgLkiRU
Mensagens : 5341
Créditos : 1164

https://www.aldeiarpg.com/

Ir para o topo Ir para baixo

Scene_Players - Players on Empty Re: Scene_Players - Players on

Mensagem por Lief Seg Abr 30, 2012 10:16 pm

Marlos Gama escreveu:Enquanto você estiver vendo os jogadores nessa scene, alguém pode estar lhe matando ;/

Não é muito bom usar scenes dessa forma.
Zona segura existe pra quê? Very Happy
Lief
Lief
Desenvolvedor
Desenvolvedor

Mensagens : 834
Créditos : 50

http://shafou.com

Ir para o topo Ir para baixo

Scene_Players - Players on Empty Re: Scene_Players - Players on

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Página 1 de 2 1, 2  Seguinte

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos