Paste #68287: Untitled Paste

Date: 2020/04/29 10:03:55 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


AutoRankEvent:
    type: world
    debug: false
    events:

      on player joins:
      - flag player currentplaytime:<server.current_time_millis>
      - if !<player.has_flag[totalplaytime]>:
        - flag player totalplaytime:0

      on player returns from afk:
      - flag player currentplaytime:<server.current_time_millis>

      on player quit:
      - flag player totalplaytime:+:<server.current_time_millis.sub[<player.flag[currentplaytime]>]>

      on player goes afk:
      - flag player totalplaytime:+:<server.current_time_millis.sub[<player.flag[currentplaytime]>]>

      on system time minutely:

      - foreach <server.list_online_players>:

        - if !<def[value].is_afk>:
          - flag <def[value]> totalplaytime:+:60000
          - flag <def[value]> currentplaytime:<server.current_time_millis>
          - define formattedtotal <def[value].flag[totalplaytime].div[1000].div[60].div[60].as_int>

          # Pour passer concepteur - 4 heures
          - if <def[value].in_group[Apprenti]>:
            - if <def[formattedtotal]> >= 4:
              - execute as_server "setrank <def[value].name> Concepteur"
              - announce "<&9>[Créatif] <&3><&o><def[value].name><&r><&3> a été promu au rang de <proc[AutoRankProc].context[<def[value]>]> <&3>!"
              - narrate targets:<def[value]> "<&c>[Créatif]<&7> Félicitation, grace a votre temps de jeu, vous avez désormais accès a un terrain supplémentaire de 250x250 !"

          # Pour passer Créateur - 16 heures
          - if <def[value].in_group[Concepteur]>:
            - if <def[formattedtotal]> >= 16:
              - execute as_server "setrank <def[value].name> Créateur"
              - announce "<&9>[Créatif] <&3><&o><def[value].name> a été promu au rang <proc[AutoRankProc].context[<def[value]>]> <&3>!"
              - narrate targets:<def[value]> "<&c>[Créatif]<&7> Félicitation, grace a votre temps de jeu, vous avez désormais accès a un terrain supplémentaire de 250x250 & 500x500!"

          # Pour passer Ingénieur - 48 heures (2 jours)
          - if <def[value].in_group[Créateur]>:
            - if <def[formattedtotal]> >= 48:
              - execute as_server "setrank <def[value].name> Ingénieur"
              - announce "<&9>[Créatif] <&3><&o><def[value].name> a été promu au rang de <proc[AutoRankProc].context[<def[value]>]> <&3>!"
              - narrate targets:<def[value]> "<&c>[Créatif]<&7> Félicitation, grace a votre temps de jeu, vous avez désormais accès a un terrain supplémentaire de 250x250 & 500x500 !"

          # Pour passer Bâtisseur - 168 heures (7 jours)
          - if <def[value].in_group[Ingénieur]>:
            - if <def[formattedtotal]> >= 168:
              - execute as_server "setrank <def[value].name> Bâtisseur"
              - announce "<&9>[Créatif] <&3><&o><def[value].name> a été promu au rang de <proc[AutoRankProc].context[<def[value]>]> <&3>!"
              - narrate targets:<def[value]> "<&c>[Créatif]<&7> Félicitation, grace a votre temps de jeu, vous avez désormais accès a un terrain supplémentaire de 250x250, 500x500 & 1000x1000 !"

AutoRankProc:
    type: procedure
    debug: false
    definitions: value
    script:
    - if <def[value].groups.formatted> == Concepteur:
      - determine "<&d><def[value].groups.formatted>"

    - if <def[value].groups.formatted> == Créateur:
      - determine "<&e><def[value].groups.formatted>"

    - if <def[value].groups.formatted> == Ingénieur:
      - determine "<&9><def[value].groups.formatted>"

    - if <def[value].groups.formatted> == Bâtisseur:
      - determine "<&b><def[value].groups.formatted>"