Paste #36250: Untitled Paste

Date: 2016/09/17 18:49:08 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


Ony_Marchands_PNJ:
    type: assignment
    actions:
      on spawn:
      - trigger name:click state:true
      on click:
      - if !<npc.name.contains[Marchand]> {
        - queue clear
      }
      - choose "<npc.name>":
        - case "Marchand de Potions":
          - run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
        - case "Marchand de Parchemins":
          - run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
        - case "Marchand de Ressources":
          - run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
        - case "Marchand de Nourriture":
          - run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
        - case "Marchand d<&sq>Armes":
          - run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
        - case "Marchand de Familiers":
          - run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
        - case "Marchand d<&sq>Armures":
          - run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly 
      on chat:
      - if <pl.flag[marchandReponse].is[==].to[attente].not> {
        - queue clear
      }
      - if <c.message> !matches number {
        - narrate "<&c><c.message> n'est pas une quantité valide. Veuillez réessayer."
      }
Ony_Marchands_Event:
    type: world
    events:
      on server start:
      - queue clear
      on player clicks in inventory:
      - if <c.inventory.notable_name.split[_].get[1].is[==].to[OnyMarchands].not> {
        - queue clear
      }
      - inject locally Ony_Marchands_ClickHandler
    Ony_Marchands_ClickHandler:
    - define inv <c.inventory.notable_name.split[_].get[2]||null>
    - define page <c.inventory.notable_name.split[_].get[4]||null>
    - define mode <c.inventory.notable_name.split[_].get[3]||null>
    - choose %mode%:
      - case Achat:
        - inject locally Ony_Marchands_ClickHandler_Achat instantly
      - case Vente:
        - inject locally Ony_Marchands_ClickHandler_Vente instantly
      - case null:
        - determine cancelled
    Ony_Marchands_ClickHandler_Vente:
    - define i <c.cursor_item.display>
    - define qty <player.inventory.quantity[<c.cursor_item>]>
    - inventory close
    - narrate "<&a>[Marchand de %inv%] Quelle quantité de l'objet %i% désirez-vous mettre en vente? Vous en avez %qty%."
    - flag player marchandReponse:attente
    - while <player.flag[marchandReponse]> == attente {
      - wait 5t
    }
    - 
    Ony_Marchands_ClickHandler_Achat:
    Ony_Marchands_Potions:
    - define p <proc[perso].context[<player>]>
    - define a <yaml[%p%].read[money]>
    - define inv OnyMarchands_Potions_Achat_p1_<pl>
    - note "in@generic[title=Marchand de Potions;size=54]" "as:%inv%"
    - foreach <server.list_files[/marchands/potions].as_list.get[1].to[45]||li@> {
      - define i <yaml[%value%].read[material]>
      - define dn <yaml[%value%].read[name]>
      - define p <yaml[%value%].read[price]>
      - inventory add d:in@%inv% "o:i@%i%[display_name=%dn%;lore=%p%|Sera retiré de la vente le $date$|%d%]" slot:<def[loop_index].add[9]>
    }
    - inventory add "d:in@%inv%" "o:i@388[display_name=<&a>%a%<&sp>$]" "slot:1"
    - inventory open d:in@%inv%