Votez pour ce serveur
Tous les jours sur :

serveurs Minecraft




Cliquez pour découvrir...




... et bien d'autres

short-url : #1 11 May 2012 13:38

boozaa
Hummm...boozaa
Inscription : 29 Jan 2011
Messages : 1 771

[CommandHelper] Scripts

Plop,

si parmi vous certains utilisent le mod CommandHelper du dev de WorldGuard/WorldEdit je vous propose de s'échanger nos scripts ici.

Merci de respecter une mise en page :


Config
Intro
Scripts



Liste
- Script pour gérer l'annonce de mort d'un joueur
- Script pour loguer la connexion d'un joueur

Hors ligne

short-url : #2 11 May 2012 13:49

boozaa
Hummm...boozaa
Inscription : 29 Jan 2011
Messages : 1 771

Re : [CommandHelper] Scripts

Script pour gérer l'annonce de mort d'un joueur

Config

craftbukkit++
CommandHelper v3.3.0

Intro
Pour une meilleure lisibilité j'ai créé un 'users.ms' dans mon dossier 'includes' pour y créer une procédure. Cela me permet de conserver mon fichier 'main.ms' facile à lire.

Concrètement je capte l’évènement 'player_death' dans mon 'main.ms' et je lance ma procédure.
Ma procédure annonce la mort du joueur avec la raison et le level qu'il avait. Elle log également en console sa mort et sa perte en level.

Scripts

main.ms

# A la mort d'un joueur
bind(player_death, null, null, @event,
  assign( @death_message, @event['death_message'])
  modify_event( 'death_message', _format_deathMessage(@death_message) )
)

includes/users.ms

proc(_format_deathMessage, @death_message,
    # On decoupe l'annonce de mort en array
    assign( @tab, reg_split(' ', @death_message ) )
    # On stocke les valeurs utiles
    assign( @tabSize, array_size(@tab) )
    assign( @player, @tab[0] )
    assign( @firstWord, @tab[1] )
    assign( @lastWord, @tab[dec(@tabSize)] )
    # Switch selon le premier mot aprés le pseudo du joueur
    switch(@firstWord,
      'drowned',
        assign( @reason, 'est mort noyé' )
        break,
      'was',
        switch(@tab[2],
          'shot',
            assign( @reason, concat( 'était la proie de ', @lastWord ) )
            break,
          #default
          assign( @reason, concat( 'a succombé aux blessures infligées par ', @lastWord ) )
        )
        break,
      'tried',
        assign( @reason, 'est mort de manière terrible' ) 
        break,
      'hit',
        assign( @reason, 'a cru pouvoir voler' ) 
        break,
      #default
        assign( @reason, 'est mort' ) 
    )

    console(concat(color(red),'† ',color(white),@player,' ',@reason,color(AQUA),' [', color(gray),plevel(@player),color(green),'lvl',color(white),' lost',color(AQUA), '] ',color(red),' †'))
    
    return(concat(@player, color(AQUA), ' [', color(gray), plevel(@player), color(green), 'lvl', color(AQUA), '] ', color(white), @reason) )
)

auto_include.ms

Inclusion automatique de mon 'users.ms' pour permettre l'accés à ma procédure '_format_deathMessage':

include('includes/users.ms')

Images

get.php?token=ea79436ec3fc4516304e98d04adc5d77d0aff320

get.php?token=f66202cae1eb7b9fe677e52fc97f1a852e47a293

get.php?token=f6849cb69103f4a38f1e5f96eee4ea12dceba6ed

get.php?token=f8333bd64ba018500e3ca74923692c2837b438e7

get.php?token=7bebc336c5e5c806c935af28d7887eeb739e0e93

Hors ligne

short-url : #3 11 May 2012 14:15

boozaa
Hummm...boozaa
Inscription : 29 Jan 2011
Messages : 1 771

Re : [CommandHelper] Scripts

Script pour loguer la connexion d'un joueur

Config

craftbukkit++
CommandHelper v3.3.0

Intro
Pour une meilleure lisibilité j'ai créé un 'users.ms' dans mon dossier 'includes' pour y créer une procédure. Cela me permet de conserver mon fichier 'main.ms' facile à lire.

Concrètement je capte l’évènement 'player_join' dans mon 'main.ms' et je lance ma procédure.
Ma procédure log quelques infos utiles en console.

Scripts

main.ms

# A la connexion du joueur
bind(player_join, null, null, @event,
  # On log l'entree du joueur
  _player_to_console( pinfo(@event['player']) )

)

includes/users.ms

# Log en console les infos d'un joueur
proc(_player_to_console, @pinfos,

  # On stocke
  assign(@playerName, @pinfos[0] )
  assign(@x, @pinfos[1][0] )
  assign(@y, @pinfos[1][1] )
  assign(@z, @pinfos[1][2] ) 
  assign(@playerWorld, @pinfos[7] )
  assign(@playerGroup, @pinfos[9] )
  assign(@playerIp, @pinfos[10] )
  # On envois a la console
  _console_separation()
  console(_format_colors('Connexion:', @playerName @playerIp) )
  console(_format_colors('Coordonnées:', concat('X: ', @x, ' Y: ', @y, ' Z: ', @z ) ) )
  console(_format_colors('Monde:', @playerWorld) )
  console(_format_colors('Group:', @playerGroup) )
  console(_format_colors('Level:', plevel(@playerName) ) )
  console(_format_colors('Mode:', pmode(@playerName) ) )
  console(_format_colors('XP:', ptexp(@playerName) ) )
  _console_separation()
  
)


proc(_console_separation, 
    console( concat( color(red), '-------------------------------' ) )
)

proc(_format_colors, @name, @msg,
    return(concat(color(red), @name, color(white), ': ', color(green), @msg))
)

auto_include.ms

Inclusion automatique de mon 'users.ms':

include('includes/users.ms')

Images

get.php?token=b388c171b05421cfccbf9677d24101485ade4440

Hors ligne

Pied de page des forums