Paste #33622: Untitled Paste

Date: 2016/05/22 19:55:42 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


OnyCore_Events:
    type: world
    events:
    #########################
    ## Connexion du joueur ##
    #########################
      on player joins:
      - foreach <player.flag[pliste].as_list> {
        - yaml load:%value%.yml id:%value%
      }
      - inject locally OnyCore_PersonnageSelection
    ################################### 
    ## Quand le joueur se déconnecte ##
    ###################################
    on player quits:
    - inject locally instantly OnyCore_Deconnexion
    on player clicks in inventory:
    - if "<c.inventory.notable_name.split[_].get[1].is[==].to[OnyCore]>" {
        - if "<c.slot_type>" == "OUTSIDE" || "<context.item> == i@air" {
          - determine passively cancelled
        } else {
          - inject locally OnyCore_ClickHandler
        }
    } else queue clear
    on player chats:
    - if <player.has_flag[create]> {
      - define perso <context.message>
      - if <server.has_file[/personnages/%perso%.yml].not> {
        - inject locally OnyCore_CreationPersonnage def:%perso%
      } else {
        - narrate "<&4>Ce nom est déjà pris! Veuillez en choisir un autre."
      }
    } else queue clear
    OnyCore_PersonnageSelection:
      - define nom <player.name>
      - define inv "OnyCore_PersonnageSelection_%nom%"
      - note "in@generic[title=<&d>Choisissez&spvotre&sppersonnage;size=18]" "as:%inv%"
      - define nbrPersos "<player.flag[pliste].as_list.size||0>"
      - choose %nbrPersos%:
        - case "0":
          - inject locally OnyCore_PersonnageCreate
        - case "1":
          - inventory add "d:in@%inv%" "o:i@<proc[pitem].context[1]>[display_name=<proc[pname].context[1]>;lore=<proc[pclasse].context[1]>&spNiv&dot&sp<proc[pniveau].context[1]>]" "slot:4"
          - inventory add "d:in@%inv%" "o:i@skull[display_name=<&d>Créer&spun&sppersonnage...]" "slot:5"
          - inventory add "d:in@%inv%" "o:i@skull[display_name=<&d>Créer&spun&sppersonnage...]" "slot:6"
          - inventory add "d:in@%inv%" "o:i@anvil[display_name=<&d>Créer&spun&spnouveau&sppersonnage;lore=Vous&spavez&sp1&sppersonnages&spsur&sp3&spde&spcréés&dot]" "slot:17"
        - case "2":
          - inventory add "d:in@%inv%" "o:i@<proc[pitem].context[1]>[display_name=<proc[pname].context[1]>;lore=<proc[pclasse].context[1]>&spNiv&dot&sp<proc[pniveau].context[1]>]" "slot:4"
          - inventory add "d:in@%inv%" "o:i@<proc[pitem].context[2]>[display_name=<proc[pname].context[2]>;lore=<proc[pclasse].context[2]>&spNiv&dot&sp<proc[pniveau].context[2]>]" "slot:5"
          - inventory add "d:in@%inv%" "o:i@skull[display_name=<&d>Créer&spun&sppersonnage&dot&dot&dot]" "slot:6"
          - inventory add "d:in@%inv%" "o:i@anvil[display_name=<&d>Créer&spun&spnouveau&sppersonnage;lore=Vous&spavez&sp2&sppersonnages&spsur&sp3&spde&spcréés.]" "slot:17"
        - case "3":
          - inventory add "d:in@%inv%" "o:i@<proc[pitem].context[1]>[display_name=<proc[pname].context[1]>;lore=<proc[pclasse].context[1]>&spNiv&dot&sp<proc[pniveau].context[1]>]" "slot:4"
          - inventory add "d:in@%inv%" "o:i@<proc[pitem].context[2]>[display_name=<proc[pname].context[2]>;lore=<proc[pclasse].context[2]>&spNiv&dot&sp<proc[pniveau].context[2]>]" "slot:5"
          - inventory add "d:in@%inv%" "o:i@<proc[pitem].context[3]>[display_name=<proc[pname].context[3]>;lore=<proc[pclasse].context[3]>&spNiv&dot&sp<proc[pniveau].context[3]>]" "slot:6"
          - inventory add "d:in@%inv%" "o:i@anvil[display_name=<&4>Vous&spavez&spatteint&sple&spnombre&spde&sppersonnages&spmaximal!;lore=<&7>Pour&spcréer&spun&spnouveau&sppersonnage&nlvous&spdevez&spd&sqen&spsupprimer&spun&dot]" "slot:17"
      - if <player.has_permission[builder]||false> {
          - inventory add "d:in@%inv%" "o:i@workbench[display_name=<&c>Mode&spConstruction]" "slot:16"
      }
      - inventory add "d:in@%inv%" "o:i@barrier[display_name=<&c>Supprimer&spun&sppersonnage]"
      - inventory open d:in@%inv%    
    ############################
    ## Création du personnage ##
    ############################
    OnyCore_PersonnageCreate:
    - define nom <player.name>
    - define inv "OnyCore_PersonnageCreate_%nom%"
    - note "in@generic[title=<&d>Créer&spun&sppersonnage;size=9" "as:%inv%"
    - inventory add "d:in@%inv%" "o:i@bow[display_name=<&d>Créer un <&b><&l>Archer]" "slot:4"
    - inventory add "d:in@%inv%" "o:i@iron_sword[display_name=<&d>Créer un <&b><&l>Guerrier]" "slot:5"
    - inventory add "d:in@%inv%" "o:i@stick[display_name=<&d>Créer un <&b><&l>Mage]" "slot:6"
    - if <player.flag[pliste].as_list.size> >= 1 {
      - inventory add "d:in@%inv%" "o:i@barrier[display_name=<&c>Annuler" "slot:9"
    }
    - inventory open d:in@%inv%
    #############################
    ## Supprimer un personnage ##
    #############################
    OnyCore_PersonnageSupprimer:
    - define jNom <player.name>
    - define nbrPersos "<player.flag[pliste].as_list>"
    - define inv "OnyCore_PersonnageSupprimer_%jNom%"
    - note "in@generic[title=<&d>Supprimer un personnage;size=9" "as:%inv%"
    - foreach %nbrPersos% {
      - inventory add "d:in@%inv%" "o:i@pinfo" "slot:%loop_index%"  
    }
    - inventory add "d:in@%inv% "o:i@slime_ball[display_name=Annuler]" "slot:9"
    - inventory open d:in@%inv%
    OnyCore_ClickHandler:
    - define nom <player.name>
    - define slot "<context.slot>"
    - if "<c.inventory.notable_name.split[_].get[2].is[==].to[PersonnageSelection]>" {
      - note remove "as:OnyCore_PersonnageSelection_%nom%"
      - choose %slot%:
        - case "4":
          - inject locally OnyCore_JouerPersonnage def:1
        - case "5":
          - inject locally OnyCore_JouerPersonnage def:2
        - case "6":
          - inject locally OnyCore_JouerPersonnage def:3
        - case "16":
          - inject locally OnyCore_JouerBuilder
        - case "17":
          - inject locally OnyCore_PersonnageCreate
        - case "18":
          - inject locally OnyCore_PersonnageSupprimer
    } else if "<c.inventory.notable_name.split[_].get[2].is[==].to[PersonnageCreate]>" {
      - note remove "as:OnyCore_PersonnageCreate_%nom%"
      - choose %slot%:
        - case "4":
          - flag player create:Archer
          - narrate "<&c>Écrivez dans le chat le nom de votre personnage."
        - case "5":
          - flag player create:Guerrier
          - narrate "<&c>Écrivez dans le chat le nom de votre personnage."
        - case "6": 
          - flag player create:Mage
          - narrate "<&c>Écrivez dans le chat le nom de votre personnage."
        - case "9":
          - inject locally OnyCore_PersonnageSelection
    } else if "<c.inventory.notable_name.split[_].get[2].is[==].to[PersonnageSupprimer]>" {
      - note remove "as:OnyCore_PersonnageSupprimer_%nom%"
      - choose %slot%:
        - case "4":
          - inject locally OnyCore_SupprPersonnage def:1
        - case "5":
          - inject locally OnyCore_SupprPersonnage def:2
        - case "6":
          - inject locally OnyCore_SupprPersonnage def:3
        - case "9":
          - inject locally OnyCore_PersonnageSelection
    } else if "<c.inventory.notable_name.split[_].get[2].is[==].to[SupprPersonnage]>"
        - note remove "as:OnyCore_SupprPersonnage_%nom%"
        - choose %slot%:
          - case "4":
            - inject locally OnyCore_SupprPersonnage_Oui
          - case "5":
            - inject locally OnyCore_PersonnageSelection
OnyCore_JouerPersonnage:
    type: task
    definitions: slot
    script:
    - deifne perso <player.flag[pliste].get[%slot%]>
    - define lastPos <yaml[%perso%].get[lastpos]>
    - define inv <yaml[%perso%].get[lastinv]>
    - define vie <yaml[%perso%].read[vitalité]>
    - flag player enjeu:%slot%
    - adjust <player> scale_health:true
    - health <player> %vie%
    - heal <player.name>
    - teleport <player> %lastPos%
    - inventory set d:<player> o:%inv%
    - narrate "<&a><&l>Bienvenue sur OnyCraft, <player.name>!"
    - narrate "<&e><&l>Votre personnage : %perso%"
    - narrate "<&c><&l>OnyCraft est présentement en Alpha Dev. Merci de participer à son développement!"
OnyCore_CreationPersonnage:
    type: task
    definitions: perso
    script:
    - define classe <player.flag[create]>
    - flag player pliste:->:%perso%
    - ^yaml create id:%perso%
    - ^yaml id:%perso% set joueur:<player.name>
    - ^yaml id:%perso% set uuid:<player.uuid>
    - ^yaml id:%perso% set creation:<util.date.time.year>/<util.date.time.month>/<util.date.time.day>|<util.date.time.twentyfour_hour>
    - ^yaml id:%perso% set classe:%classe%
    - ^yaml id:%perso% set niveau:1
    - ^yaml id:%perso% set intelligence:0
    - ^yaml id:%perso% set agilité:0
    - ^yaml id:%perso% set chance:0
    - ^yaml id:%perso% set force:0
    - ^yaml id:%perso% set sagesse:0
    - ^yaml id:%perso% set vitalité:50
    - ^yaml id:%perso% set carac_pts:0
    - ^yaml id:%perso% set sort_pts:0
    - ^yaml id:%perso% set energie:10
    - ^yaml "savefile:/personnages/%perso%.yml" id:%perso%
    - flag player create:!
    - inject locally OnyCore_NouveauPersonnage
    - flag player enjeu:<player.flag[pliste].as_list.size>
OnyCore_Deconnexion:
    type: task
    script:
    - ^define perso <proc[p_name]>
    - ^flag player enjeu:!
    - ^yaml id:%perso% set lastpos:<player.location>
    - ^yaml id:%perso% set lastinv:<player.inventory.list_contents>
    - ^inventory d:<player> clear
    - yaml "savefile:/personnages/%perso%.yml" id:%perso%
    - yaml unload id:%perso%
OnyCore_SupprPersonnage:
    type: task
    definitions: %slot%
    script:
    - define perso <player.flag[pliste].get[%slot%]>
    - define nom <player.name>
    - define inv "OnyCore_SupprPersonnage_%nom%"
    - flag player suppr:%slot%
    - note "in@generic[title=<&d>Confirmation de suppression;size=9]" "as:%inv%"
    - inventory add "d:in@%inv%" "o:i@slime_ball[display_name=Oui, je veux vraiment supprimer %perso%.;lore=<&4>ATTENTION!&nl<&4>Toute votre progression sera perdue.&nlVous ne pourrez pas récupérer votre personnage.]" "slot:4"
    - inventory add "d:in@%inv%" "o:i@redstone_block[display_name=Non, je ne veux pas supprimer %perso%&dot;lore=<&d>Retourner au menu précédent&dot]" "slot:5"
    - inventory open d:in@%inv%
OnyCore_SupprPersonnage_Oui:
    type: task
    script:
    - define nom <player.name>
    - define slot <player.flag[suppr]>
    - define perso <player.flag[pliste].get[%slot%]>
    - adjust server delete_file:/personnages/%perso%.yml
    - flag player pliste:<-:%perso%
    - inject locally OnyCore_PersonnageSelection
OnyCore_NouveauPersonnage:
    type: task
    script:
    - run initiate_instance def:temple|<player>
    - wait 5t
    - define world <proc[instance].context[<player>].split[@].get[2]>
    - teleport <player> -21,230,24,%world%
    - create player Prisonnier -23,230,24,%world% save:npc1
    #- adjust <entry[npc1].created_npc> skin:
    - assignment set "script:Bandit_Quete_Assignment" npc:<entry[npc1].created_npc>