Paste #32423: Edit of P#32422 - Edit of P#32421 - Untitled Paste

Date: 2016/04/09 10:29:49 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


ClassSelection_onjoin:
  type: world
  debug: false
  events:
  #Joueurs existants
    on player join:
    - teleport <player> <l@lobby>
    - wait 5t
    - inventory open d:in@ClassSelection_menu_existingplayer
    - flag player character_menu
    #Nouveaux joueurs
    on player first login:
    - teleport <player> <l@lobby>
    - wait 5t
    - inventory open d:in@ClassSelection_menu_newplayer
    - flag player character_menu
    #Annuler le mouvement quand le joueur est encore dans le menu/création de personnage
    on player walks in flat_city:
    - if <player.has_flag[character_menu]> {
      - determine cancelled
    } else queue clear
    #Le menu pour les nouveaux joueurs
    on player quits:
    - if <pl.has_flag[Playing:Character1]> {
      - yaml id:<player.flag[character_list].get[1]> set lastPos.[<player.location>]
      - yaml "savefile:/personnages/<player.flag[character_list].get[1]>.yml" id:<player.flag[character_list].get[1]>
      - yaml unload id:<player.flag[character_list].get[1]>
      - flag player Playing:!
    } else if <pl.has_flag[Playing:Character2]> {
      - yaml id:<player.flag[character_list].get[3]> set lastPos.[<player.location>]
      - yaml "savefile:/personnages/<player.flag[character_list].get[2]>.yml" id:<player.flag[character_list].get[2]>
      - yaml unload id:<player.flag[character_list].get[2]>
      - flag player Playing:!
    } else if <pl.has_flag[Playing:Character3]> {
      - yaml id:<player.flag[character_list].get[3]> set lastPos.[<player.location>]
      - yaml "savefile:/personnages/<player.flag[character_list].get[3]>.yml" id:<player.flag[character_list].get[3]>
      - yaml unload id:<player.flag[character_list].get[3]>
      - flag player Playing:!
    }
    on system time hourly:
    - foreach <server.list_online_players>:
      - if <pl.has_flag[Playing:Character1]> {
      - yaml "savefile:/personnages/<player.flag[character_list].get[1]>.yml" id:<player.flag[character_list].get[1]>
      } else if <pl.has_flag[Playing:Character2]> {
      - yaml "savefile:/personnages/<player.flag[character_list].get[2]>.yml" id:<player.flag[character_list].get[2]>
      } else if <pl.has_flag[Playing:Character3]> {
      - yaml "savefile:/personnages/<player.flag[character_list].get[3]>.yml" id:<player.flag[character_list].get[3]>
      }
    on shutdown:
    - foreach <server.list_online_players>:
      - if <pl.has_flag[Playing:Character1]> {
        - yaml id:<player.flag[character_list].get[1]> set lastPos.[<player.location>]
        - yaml "savefile:/personnages/<player.flag[character_list].get[1]>.yml" id:<player.flag[character_list].get[1]>
        - yaml unload id:<player.flag[character_list].get[1]>
        - flag player Playing:!
      } else if <pl.has_flag[Playing:Character2]> {
        - yaml id:<player.flag[character_list].get[3]> set lastPos.[<player.location>]
        - yaml "savefile:/personnages/<player.flag[character_list].get[2]>.yml" id:<player.flag[character_list].get[2]>
        - yaml unload id:<player.flag[character_list].get[2]>
        - flag player Playing:!
      } else if <pl.has_flag[Playing:Character3]> {
        - yaml id:<player.flag[character_list].get[3]> set lastPos.[<player.location>]
        - yaml "savefile:/personnages/<player.flag[character_list].get[3]>.yml" id:<player.flag[character_list].get[3]>
        - yaml unload id:<player.flag[character_list].get[3]>
        - flag player Playing:!
        }
ClassSelection_menu_newplayer:
  type: inventory
  debug: false
  title: Créer un nouveau personnage
  size: 9
  slots:
  - "[i@Newplayer_menu_archer] [i@Newplayer_menu_guerrier] [i@Newplayer_menu_mage]"
  #Case de menu pour créer un archer
Newplayer_menu_archer:
  debug: false
  type: item
  material: bow
  display name: Créer un Archer
  #Case de menu pour créer un Guerrier
Newplayer_menu_guerrier:
  debug: false
  type: item
  material: diamond_sword
  display name: Créer un Guerrier
  #Case de menu pour créer un Mage
Newplayer_menu_mage:
  debug: false
  type: item
  material: stick
  display name: Créer un Mage
  #les actions qui ont rapports aux deux menus
Newplayer_menu_handler:
  type: world
  debug: false
  events:
  #Annuler le clic dans le menu de création de perso
    on player clicks in ClassSelection_menu_newplayer:
    - determine cancelled
    #Annuler le "drag" dans le menu de création de perso
    on player drags in ClassSelection_menu_newplayer:
    - determine cancelled
    #Annuler le clic dans le menu de joueur existant
    on player clicks in ClassSelection_menu_existingplayer:
    - determine cancelled
    #Annuler le "drag" dans le menu de joueur existant
    on player drags in ClassSelection_menu_existingplayer:
    - determine cancelled
    #Quand le joueur clic la case pour créer un archer
    on player clicks Newplayer_menu_archer in ClassSelection_menu_newplayer:
    - flag player newcharacter_archer
    - narrate "Entrez le nom de votre nouvel Archer"
    - inventory close
    #Quand le joueur clic la case pour créer un guerrier
    on player clicks Newplayer_menu_guerrier in ClassSelection_menu_newplayer:
    - flag player newcharacter_guerrier
    - narrate "Entrez le nom de votre nouveau Guerrier"
    - inventory close
    #Quand le joueur clic la case pour créer un mage
    on player clicks Newplayer_menu_mage in ClassSelection_menu_newplayer:
    - flag player newcharacter_mage
    - narrate "Entrez le nom de votre nouveau Mage"
    - inventory close
    #Quand le joueur sélectionne la case pour jouer son personnage #1
    on player clicks Player_menu_character1 in ClassSelection_menu_existingplayer:
    - if <server.has_file[/personnages/<player.flag[character_list].get[1]>.yml> {
      - yaml "load:/personnages/<player.flag[character_list].get[1]>.yml" id:<player.flag[character_list].get[1]>
      - inventory close
      - teleport <player> <yaml[<player.flag[character_list].get[1]>].read[lastPos.<player.location>]>
      - flag player Playing:Character1
      - narrate "Bon jeu sur OnyCraft!"
      } else if !<server.has_file[/personnages/<player.flag[character_list].get[1]>.yml]> {
          - inventory close
          - inventory open d:ClassSelection_menu_newplayer
      }
      #Quand le joueur sélectionne la case pour jouer son personnage #2
    on player clicks Player_menu_character2 in ClassSelection_menu_existingplayer:
    - if <server.has_file[/personnages/<player.flag[character_list].get[2]>.yml> {
      - yaml "load:/personnages/<player.flag[character_list].get[2]>.yml" id:<player.flag[character_list].get[2]>
      - inventory close
      - teleport <player> <yaml[<player.flag[character_list].get[2]>].read[lastPos.<player.location>]>
      - flag player Playing:Character2
      - narrate "Bon jeu sur OnyCraft!"
      } else if !<server.has_file[/personnages/<player.flag[character_list].get[2]>.yml]> {
          - inventory close
          - inventory open d:ClassSelection_menu_newplayer
      }
      #Quand le joueur sélectionne la case pour jouer son personnage #3
    on player clicks Player_menu_character3 in ClassSelection_menu_existingplayer:
    - if <server.has_file[/personnages/<player.flag[character_list].get[3]>.yml> {
      - yaml "load:/personnages/<player.flag[character_list].get[3]>.yml" id:<player.flag[character_list].get[3]>
      - inventory close
      - teleport <player> <yaml[<player.flag[character_list].get[3]>].read[lastPos.<player.location>]>
      - flag player Playing:Character3
      - narrate "Bon jeu sur OnyCraft!"
      } else if !<server.has_file[/personnages/<player.flag[character_list].get[3]>.yml]> {
          - inventory close
          - inventory open d:ClassSelection_menu_newplayer
      }
      #Quand le joueur entre le nom de son personnage
Newplayer_menu_charactername:
  type: world
  debug: false
  events:
    on player chats in flat_city:
    - if <pl.has_flag[newcharacter_archer]> {
      #- recipients <player.name>
      - define name <context.message>
      - if !<server.has_file[/personnages/%name%.yml]> {
        - flag player character_list:->:%name%
        - flag player character_type:->:Archer
        - run create_character
        - flag player newcharacter_archer:!
      } else if <server.has_file[/personnages/%name%.yml]> {
          - narrate "Ce nom est déjà pris! Veuillez en choisir un autre."
          }
    } else if <pl.has_flag[newcharacter_guerrier]> {
        #- recipients <player.name>
        - define name <context.message>
        - if !<server.has_file[/personnages/%name%.yml]> {
          - flag player character_list:->:%name%
          - flag player character_type:->:Guerrier
          - run create_character
          - flag player newcharacter_guerrier:!
        } else if <server.has_file[/personnages/%name%.yml]> {
            - narrate "Ce nom est déjà pris! Veuillez en chosiir un autre."
          }
    } else if <pl.has_flag[newcharacter_mage>]> {
        #- recipients <player.name>
        - define name <context.message>
        - if !<server.has_file[/personnages/%name%.yml]> {
          - flag player character_list:->:%name%
          - flag player character_type:->:Mage
          - run create_character
          - flag player newcharacter_mage:!
        } else if <server.has_file[/personnages/%name%]> {
            - narrate "Ce nom est déjà pris! Veuillez en choisir un autre!"
        }
    }
    #Script qui est chargé quand le joueur a choisi le nom de son personnage
create_character:
  type: task
  debug: false
  script:
  - yaml create id:<player.flag[character_list].get[1]>.yml
  - yaml "savefile:/personnages/<player.flag[character_list].get[1]>.yml" id:<player.flag[character_list].get[1]>.yml
  - yaml id:<player.flag[character_list].get[1]>.yml set classe:<player.flag[character_type].get[1]>
  - yaml "savefile:/personnages/<player.flag[character_list].get[1]>.yml" id:<player.flag[character_list].get[1]>.yml
  - flag player character_menu:!
  - teleport <player> l@newplayer_spawn
  - narrate "Bienvenue sur OnyCraft <player.name> !"
  - narrate "blablabla à continuer"
  #Le menu pour les joueurs existants
ClassSelection_menu_existingplayer:
  type: inventory
  debug: true
  title: Choisir un personnage
  size: 9
  slots:
  - "[Player_menu_character1] [Player_menu_character2] [Player_menu_character3] [Player_menu_createnew]"
  #Case de menu pour jouer son personnage #1
Player_menu_character1:
  debug: false
  type: item
  material: skull_item
  display_name: Sélectionner votre personnage #1
  lore: Classe : <player.flag[character_type].get[1]||Emplacement disponible> - Niveau : <player.flag[character_level].get[1]||Emplacement disponible>
  #Case de menu pour jouer son personnage #2
Player_menu_character2:
  debug: false
  type: item
  material: skull_item
  display_name: Jouer : <player.flag[character_list].get[2]||Emplacement disponible> 
  lore: Classe : <player.flag[character_type].get[1]||Emplacement disponible> - Niveau : <player.flag[character_level].get[1]||Emplacement disponible>
  #Case de menu pour jouer son personnage #3
Player_menu_character3:
  debug: false
  type: item
  material: skull_item
  display_name: Jouer : <player.flag[character_list].get[3]||Emplacement disponible> 
  lore: Classe : <player.flag[character_type].get[1]||Emplacement disponible> - Niveau : <player.flag[character_level].get[1]||Emplacement disponible>
  #Case de menu pour créer un nouveau personnage
Player_menu_createnew:
  debug: false
  type: item
  material: skull_item
  display_name: Créer un nouveau personnage