Paste #34473: repair

Date: 2016/06/24 06:45:03 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


repair:
  type: assignment
  debug: true
  interact scripts: 
  - 10 repair_Handler 
repair_handler:
  type: interact
  steps:
    1:
      click trigger:
        script:
        - if <player.item_in_hand.is[EQUALS].to[i@air]> {
          - queue clear
          }
        - if <player.item_in_hand.durability> == 0 {
          - narrate '내구도가 이미 가득차있습니다'
          - queue clear
          }
        - define handitem <player.item_in_hand>  
        - define simpleitem <player.item_in_hand.simple>
        - adjust <player.item_in_hand> durability:0 save:repairitem
        - define wood li@i@wood_spade|i@wood_pickaxe|i@wood_axe|i@wood_sword
        - define stone li@i@stone_spade|i@stone_pickaxe|i@stone_axe|i@stone_sword
        - define iron li@i@iron_spade|i@iron_pickaxe|i@iron_axe|i@iron_sword
        - define gold li@i@gold_spade|i@gold_pickaxe|i@gold_axe|i@gold_sword
        - define diamond li@i@diamond_spade|i@diamond_pickaxe|i@diamond_axe|i@diamond_sword
        - if <def[diamond].contains[<def[simpleitem]>]> {
            - take <player.item_in_hand>
            - define basecost 1
            }
          else if <def[iron].contains[<def[simpleitem]>]> {
            - take <player.item_in_hand>
            - define basecost 2
            }
          else if <def[stone].contains[<def[simpleitem]>]> {
            - take <player.item_in_hand>
            - define basecost 3
            }
          else if <def[wood].contains[<def[simpleitem]>]> {
            - take <player.item_in_hand>
            - define basecost 4
            }
          else if <def[gold].contains[<def[simpleitem]>]> {
            - take <player.item_in_hand>
            - define basecost 5
            }
          else {
            - narrate '이 아이템은 수리가 불가능합니다'
            - queue clear
            }
          }
        }
        - if <def[handitem].is_enchanted> {
          - define count <def[handitem].enchantments.size>
          - foreach <def[handitem].enchantments.with_levels> {
            - define before <def[value].before_last[,]>
            - define after <def[value].after_last[,]>
            - if <def[before].is[EQUALS].to[PROTECTION_ENVIRONMENTAL]> {
              - chat '보호 감지 완료'
              - define enchantcost 2
              }
              else if <def[before].is[EQUALS].to[PROTECTION_FIRE]> {
              - chat '화염으로부터 보호 감지 완료'
              - define enchantcost 3
              }
              else if <def[before].is[EQUALS].to[PROTECTION_FALL]> {
              - chat '가벼운 착지 감지 완료'
              - define encahntcost 3
              }
              else if <def[before].is[EQUALS].to[PROTECTION_EXPLOSIONS]> {
              - chat '폭발로부터 보호 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[PROTECTION_PROJECTILE]> {
              - chat '원거리로부터 보호 감지 완료'
              - define enchantcost 3
              }
              else if <def[before].is[EQUALS].to[DEPTH_STRIDER]> {
              - chat '물갈퀴 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[WATER_WORKER]> {
              - chat '친수성 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[THORNS]> {
              - chat '가시 감지 완료'
              - define enchantcost 12
              }
              else if <def[before].is[EQUALS].to[DAMAGE_UNDEAD]> {
              - chat '강타 감지 완료'
              - define enchantcost 3
              }
              else if <def[before].is[EQUALS].to[OXYGEN]> {
              - chat '호흡 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[DAMAGE_ALL]> {
              - chat '날카로움 감지 완료'
              - define enchantcost 2
              }
              else if <def[before].is[EQUALS].to[ARROW_DAMAGE]> {
              - chat '힘 감지 완료'
              - define enchantcost 2
              }
              else if <def[before].is[EQUALS].to[DAMAGE_ARTHROPODS]> {
              - chat '살충 감지 완료'
              - define enchantcost 3
              }
              else if <def[before].is[EQUALS].to[KNOCKBACK]> {
              - chat '넉백 감지 완료'
              - define enchantcost 3
              }
              else if <def[before].is[EQUALS].to[FIRE_ASPECT]> {
              - chat '발화 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[LOOT_BONUS_MOBS]> {
              - chat '약탈 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[ARROW_FIRE]> {
              - chat '화염 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[SILK_TOUCH]> {
              - chat '섬세한 손길 감지 완료'
              - define enchantcost 12
              }
              else if <def[before].is[EQUALS].to[DURABILITY]> {
              - chat '내구성 감지 완료'
              - define enchantcost 3
              }
              else if <def[before].is[EQUALS].to[LUCK]> {
              - chat '바다의 행운 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[DIG_SPEED]> {
              - chat '효율 감지 완료'
              - define enchantcost 2
              }
              else if <def[before].is[EQUALS].to[LOOT_BONUS_BLOCKS]> {
              - chat '행운 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[ARROW_INFINITE]> {
              - chat '무한 감지 완료'
              - define enchantcost 12
              }
              else if <def[before].is[EQUALS].to[ARROW_KNOCKBACK]> {
              - chat '밀쳐내기 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[LURE]> {
              - chat '입질 감지 완료'
              - define enchantcost 6
              }
              else {
              - narrate '알려지지 않은 문제가 발생했습니다 관리자에게 문의해주세요'
              }
            - define enchantedcost <def[enchantcost].mul_int[<def[after]>]>
            }
          }
        - if <def[handitem].has_lore> && <def[handitem].strip_color.contains[==<&nbsp>상태<&nbsp>==]> {
          - foreach <def[handitem].strip_color> {
            - if <def[handitem].strip_color.contains[수리<&nbsp>비용<&nbsp>:]> {
              - define repaircost <def[eachlore].after[:<&nbsp>]>
              }
            }
          }
        - wait 1t
        - if <def[repaircost].exists> && <def[enchantedcost].exists> {
          - define fincost <def[enchantedcost].mul_int[<def[count]>].add_int[<def[basecost]>].add_int[<def[repaircost]>].mul_int[<def[handitem].durability>]>
          }
          else if <def[enchantedcost].exists> {
          - define fincost <def[enchantedcost].mul_int[<def[count]>].add_int[<def[basecost]>].mul_int[<def[handitem].durability>]>
          }
          else if <def[repaircost].exists> {
          - define fincost <def[repaircost].add_int[<def[basecost]>].mul_int[<def[handitem].durability>]>
          }
          else {
          - define fincost <def[basecost].mul_int[<def[handitem].durability>]>
          }
        - if <player.money> >= <def[fincost]> {
          - narrate '수리비용은 <def[fincost]>'
          - money take qty:<def[fincost]>
          - give <entry[repairitem].result>
          }
          else {
          - narrate '잔액이 부족합니다'
          - give <def[handitem]>
          }
anvil_repair:
  type: world
  events:
    on player right clicks anvil:
      - if <context.cuboids.comma_separated.contains[blacksmith]> {
        - if <player.item_in_hand.is[EQUALS].to[i@air]> {
          - narrate '공기는 안됩니당'
          - determine CANCELLED
          }
        - if <player.item_in_hand.durability> == 0 {
          - narrate '내구도가 이미 가득차있습니다'
          - determine CANCELLED
          }
        - define handitem <player.item_in_hand>  
        - define simpleitem <player.item_in_hand.simple>
        - adjust <player.item_in_hand> durability:0 save:repairitem
        - define wood li@i@wood_spade|i@wood_pickaxe|i@wood_axe|i@wood_sword
        - define stone li@i@stone_spade|i@stone_pickaxe|i@stone_axe|i@stone_sword
        - define iron li@i@iron_spade|i@iron_pickaxe|i@iron_axe|i@iron_sword
        - define gold li@i@gold_spade|i@gold_pickaxe|i@gold_axe|i@gold_sword
        - define diamond li@i@diamond_spade|i@diamond_pickaxe|i@diamond_axe|i@diamond_sword
        - if <def[diamond].contains[<def[simpleitem]>]> {
            - take <player.item_in_hand>
            - define basecost 1
            }
          else if <def[iron].contains[<def[simpleitem]>]> {
            - take <player.item_in_hand>
            - define basecost 2
            }
          else if <def[stone].contains[<def[simpleitem]>]> {
            - take <player.item_in_hand>
            - define basecost 3
            }
          else if <def[wood].contains[<def[simpleitem]>]> {
            - take <player.item_in_hand>
            - define basecost 4
            }
          else if <def[gold].contains[<def[simpleitem]>]> {
            - take <player.item_in_hand>
            - define basecost 5
            }
          else {
            - narrate '이 아이템은 수리가 불가능합니다'
            - determine CANCELLED
            }
        - if <def[handitem].is_enchanted> {
          - define count <def[handitem].enchantments.size>
          - foreach <def[handitem].enchantments.with_levels> {
            - define before <def[value].before_last[,]>
            - define after <def[value].after_last[,]>
            - if <def[before].is[EQUALS].to[PROTECTION_ENVIRONMENTAL]> {
              - chat '보호 감지 완료'
              - define enchantcost 2
              }
              else if <def[before].is[EQUALS].to[PROTECTION_FIRE]> {
              - chat '화염으로부터 보호 감지 완료'
              - define enchantcost 3
              }
              else if <def[before].is[EQUALS].to[PROTECTION_FALL]> {
              - chat '가벼운 착지 감지 완료'
              - define encahntcost 3
              }
              else if <def[before].is[EQUALS].to[PROTECTION_EXPLOSIONS]> {
              - chat '폭발로부터 보호 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[PROTECTION_PROJECTILE]> {
              - chat '원거리로부터 보호 감지 완료'
              - define enchantcost 3
              }
              else if <def[before].is[EQUALS].to[DEPTH_STRIDER]> {
              - chat '물갈퀴 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[WATER_WORKER]> {
              - chat '친수성 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[THORNS]> {
              - chat '가시 감지 완료'
              - define enchantcost 12
              }
              else if <def[before].is[EQUALS].to[DAMAGE_UNDEAD]> {
              - chat '강타 감지 완료'
              - define enchantcost 3
              }
              else if <def[before].is[EQUALS].to[OXYGEN]> {
              - chat '호흡 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[DAMAGE_ALL]> {
              - chat '날카로움 감지 완료'
              - define enchantcost 2
              }
              else if <def[before].is[EQUALS].to[ARROW_DAMAGE]> {
              - chat '힘 감지 완료'
              - define enchantcost 2
              }
              else if <def[before].is[EQUALS].to[DAMAGE_ARTHROPODS]> {
              - chat '살충 감지 완료'
              - define enchantcost 3
              }
              else if <def[before].is[EQUALS].to[KNOCKBACK]> {
              - chat '넉백 감지 완료'
              - define enchantcost 3
              }
              else if <def[before].is[EQUALS].to[FIRE_ASPECT]> {
              - chat '발화 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[LOOT_BONUS_MOBS]> {
              - chat '약탈 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[ARROW_FIRE]> {
              - chat '화염 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[SILK_TOUCH]> {
              - chat '섬세한 손길 감지 완료'
              - define enchantcost 12
              }
              else if <def[before].is[EQUALS].to[DURABILITY]> {
              - chat '내구성 감지 완료'
              - define enchantcost 3
              }
              else if <def[before].is[EQUALS].to[LUCK]> {
              - chat '바다의 행운 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[DIG_SPEED]> {
              - chat '효율 감지 완료'
              - define enchantcost 2
              }
              else if <def[before].is[EQUALS].to[LOOT_BONUS_BLOCKS]> {
              - chat '행운 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[ARROW_INFINITE]> {
              - chat '무한 감지 완료'
              - define enchantcost 12
              }
              else if <def[before].is[EQUALS].to[ARROW_KNOCKBACK]> {
              - chat '밀쳐내기 감지 완료'
              - define enchantcost 6
              }
              else if <def[before].is[EQUALS].to[LURE]> {
              - chat '입질 감지 완료'
              - define enchantcost 6
              }
              else {
              - narrate '알려지지 않은 문제가 발생했습니다 관리자에게 문의해주세요'
              }
            - define enchantedcost <def[enchantcost].mul_int[<def[after]>]>
            }
          }
        - if <def[handitem].has_lore> && <def[handitem].strip_color.contains[==<&nbsp>상태<&nbsp>==]> {
          - foreach <def[handitem].strip_color> {
            - if <def[handitem].strip_color.contains[수리<&nbsp>비용<&nbsp>:]> {
              - define repaircost <def[eachlore].after[:<&nbsp>]>
              }
            }
          }
        - wait 1t
        - if <def[repaircost].exists> && <def[enchantedcost].exists> {
          - define fincost <def[enchantedcost].mul_int[<def[count]>].add_int[<def[basecost]>].add_int[<def[repaircost]>].mul_int[<def[handitem].durability>]>
          }
          else if <def[enchantedcost].exists> {
          - define fincost <def[enchantedcost].mul_int[<def[count]>].add_int[<def[basecost]>].mul_int[<def[handitem].durability>]>
          }
          else if <def[repaircost].exists> {
          - define fincost <def[repaircost].add_int[<def[basecost]>].mul_int[<def[handitem].durability>]>
          }
          else {
          - define fincost <def[basecost].mul_int[<def[handitem].durability>]>
          }
        - if <player.money> >= <def[fincost]> {
          - narrate '수리비용은 <def[fincost]>'
          - money take qty:<def[fincost]>
          - give <entry[repairitem].result>
          }
          else {
          - narrate '잔액이 부족합니다'
          - give <def[handitem]>
          }
        - determine CANCELLED
        }