Ero sivun ”Hiekkalaatikko” versioiden välillä

Kosmikon wikistä
Siirry navigaatioon Siirry hakuun
Jarnon (keskustelu | muokkaukset)
pEi muokkausyhteenvetoa
Jarnon (keskustelu | muokkaukset)
pEi muokkausyhteenvetoa
 
(26 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
{{chart/start|align=left|summary=Komnenosin sukupuu Kreiosista Staurakiosiin}}
Tämän makron avulla voit käyttää ''Enlarge Person''-loitsua, sitten että se huomioi kaikki koon muutoksesta tulevat vaikutukset.
{{chart|,|KRE|P|ELE|
 
|KRE=[[Kreios Komnenos]]<br />([[2612]]-[[2680]])
:Luo ensin makron vaatima ''Buff'' ja nimeä se ''Enlarge Person''.
|ELE=[[Elektra Parthenios]]<br />([[2614]]-[[2682]])}}
 
{{chart|!| |}}
[[Tiedosto:Enlarge person1.PNG|500px]]
{{chart|)|-|KRA|P|EME|
 
|KRA=[[Kratokleos Komnenos]]<br />([[2633]]-[[2691]])
:Lisää luomasi buffin ''Changes''-välilehdelle loitsun aiheuttamat muutokset attribuutteihin.
|EME=[[Emera Faronites]]<br />([[2631]]-[[2660]])}}
 
{{chart|!| |!| |}}
[[Tiedosto:Enlarge person2.PNG|500px]]
{{chart|!| |)|-|VAN|P|FIL
 
||VAN=[[Vanos I]] Komnenos<br />([[2654]]-[[2704]])
:Hae ''Compendium packs'' valikosta kohdasta ''Sample macros'' esimerkki makro ''Toggle Buff'' ja raahaa se alas ''Macros Directory''n vapaaseen paikkaan.
|FIL=[[Filomela Gymnos]]<br />([[2651]]-[[2673]])}}
 
{{chart|!| |!| |!| }}
[[Tiedosto:Enlarge person3.PNG|500px]]
{{chart|!| |!| |`|-|KHL|P|ART|
 
|KHL=[[Khloe Komnenos]]<br />([[2673]]-[[2692]])
:Tämän jälkeen kopioi alla oleva koodi ja korvaa sillä ''Toggle Buff''in sisältö. Nimeä uusi makro esim. nimellä Enlarge Person.
|ART=[[Artabasdos I|Artabasdos Doukas]]<br />([[2658]]-[[2692]]) }}
 
{{chart|!| |!| | | |!| | }}
<pre>
{{chart|!| |!| | | |`|VAN|
// CONFIGURATION
|VAN=[[Vanos II]] Doukas<br />([[2690]]-[[2733]]) }}
// If one or more tokens are selected, those will be used instead of the listed actors
{{chart|!| |!| }}
// Leave the actorNames array empty to guess the players
{{chart|!| |`|-|IAP|P|THE|
// Example actorNames: `actorNames: ["Bob", "John"],`
|IAP=[[Iapetos Komnenos]]<br />([[2656]]-[[2693]])
const c = {
|THE=[[Theia Ergodotes]]<br />([[2657]]-[[2723]])}}
  actorNames: [],
{{chart|!| | | |!| }}
  buffName: "Enlarge Person"
{{chart|!| | | |`|-|VAN|
};
|VAN=[[Vanos III]] Komnenos<br />([[2681]]-[[2736]])}}
// END CONFIGURATION
{{chart|!| |}}
 
{{chart|)|-|NIK|P|ERE|
const transform = (caster, size) => {
|NIK=[[Nikon Komnenos]]<br />([[2635]]-[[2692]])
  caster.update({'data.traits.size': size});
|ERE=[[Ereia Blakhernites]]<br />([[2638]]-[[2709]])}}
};
{{chart|!| |:| }}
 
{{chart|!| |L|~|NIK|
const sizes = ["fine", "dim", "tiny", "sm", "med", "lg", "huge", "grg", "col"];
|NIK=[[Nikeforos I]] Komnenos<br />([[2702]]-[[2758]])}}
 
{{chart|!| | | |!| }}
var sizeToBe = 0
{{chart|!| | | |`|-|STA|P|MAI|
 
|STA=[[Stauros Komnenos]]<br />([[2725]]-[[2758]])
const tokens = canvas.tokens.controlled;
|MAI=[[Maiosara Mosaraf]]<br />([[2738]]-[[2785]])}}
let actors = tokens.map(o => o.actor);
{{chart|!| | | | | |:| }}
if (!actors.length && c.actorNames.length) actors = game.actors.entities.filter(o => c.actorNames.includes(o.name));
{{chart|!| | | | | |L|~|TYK|P|LEI|
if (!actors.length) actors = game.actors.entities.filter(o => o.isPC);
|TYK=[[Tykonios Komnenos]]<br />([[2837]]-[[2898]])
actors = actors.filter(o => o.hasPerm(game.user, "OWNER"));
|LEI=[[Leimeie Karzoazos]]<br />([[2840]]-[[2898]])}}
 
{{chart|!| | | | | | | |!}}
if (!actors.length) ui.notifications.warn("No applicable actor(s) found");
{{chart|!| | | | | | | |)|EUS|P|ARI|
else {
|EUS=[[Eustathios Komnenos]]<br />([[2858]]-[[2883]])
  for (let actor of actors) {
|ARI=[[Arite Vatatzes]]<br />([[2860]]-[[2883]])}}
    const buff = actor.items.find(o => o.name === c.buffName && o.type === "buff");
{{chart|!| | | | | | | |!|!| }}
    if (buff != null) {
{{chart|!| | | | | | | |!|)|TIS|P|APE|
      let active = getProperty(buff.data, "data.active");
|TIS=[[Tisifone Komnenos]]<br />([[2873]]-[[2898]])
      if (active == null) active = false;
|APE=[[Apellonos III|Avgos Komnenodoukas]]<br />([[2861]]-[[2898]])}}
      for (let tester in sizes) {
{{chart|!| | | | | | | |!|!| }}
        if (actor.data.data.traits.size == sizes[tester]) {
{{chart|!| | | | | | | |!|`|NIK|
          var currentSize = parseInt(tester);
|NIK=[[Nikos Komnenos]]<br />([[2879]]-[[2883]])}}
          break;
{{chart|!| | | | | | | |!| | }}
        }
{{chart|!| | | | | | | |`|-|STA|P|TAM|
      }
|STA=[[Staurakios Komnenos]]<br />([[2860]]-[[2899]])
      if (active == false) sizeToBe = currentSize + 1;
|TAM=[[Tamura Maurex]]<br />([[2872]]-[[2903]]) }}
      else sizeToBe = currentSize - 1;
{{chart|!| | | | | }}
      transform(actor, sizes[sizeToBe]);
{{chart|`|-|DEM|
      buff.update({ "data.active": !active });
|DEM=[[Demetrion Komnenos]]<br />([[2638]]-[[2693]])}}
    }
{{chart| | |:| }}
  }
{{chart| | |L|~|ISK|
}
|ISK=[[Iskyrion Komnenos]]<br />([[2693]]-[[2734]])}}
</pre>
{{chart| | | | |!| }}
 
{{chart| | | | |`|-|DEM|P|SEL|
:Muistakaa käyttää sizeRoll-funktiota (ks. alla) lähitaisteluaseissan niin muuttuu myös vaurionopat automaattisesti oikeiksi.
|DEM=[[Demetrios Komnenos]]<br />([[2714]]-[[2771]])
 
|SEL=[[Selene Doukas]]<br />([[2717]]-[[2772]])| }}
<code>sizeRoll(1, 6, @size)</code>
{{chart| | | | | | |!|}}
:ensimmäinen parametri määrittelee noppien määrän ja toinen nopan eli esimerkin tapauksessa 1d6. Jos koko muuttuu suuremmaksi niin noppa muuttuu automaattisesti 1d8:ksi jne.
{{chart| | | | | | |`|-|ISK|
|ISK=[[Iskyrios Komnenodoukas]]<br />([[2741]]-[[2778]])}}
{{chart/end}}

Nykyinen versio 14. tammikuuta 2021 kello 00.27

Tämän makron avulla voit käyttää Enlarge Person-loitsua, sitten että se huomioi kaikki koon muutoksesta tulevat vaikutukset.

Luo ensin makron vaatima Buff ja nimeä se Enlarge Person.

Lisää luomasi buffin Changes-välilehdelle loitsun aiheuttamat muutokset attribuutteihin.

Hae Compendium packs valikosta kohdasta Sample macros esimerkki makro Toggle Buff ja raahaa se alas Macros Directoryn vapaaseen paikkaan.

Tämän jälkeen kopioi alla oleva koodi ja korvaa sillä Toggle Buffin sisältö. Nimeä uusi makro esim. nimellä Enlarge Person.
// CONFIGURATION
// If one or more tokens are selected, those will be used instead of the listed actors
// Leave the actorNames array empty to guess the players
// Example actorNames: `actorNames: ["Bob", "John"],`
const c = {
  actorNames: [],
  buffName: "Enlarge Person"
};
// END CONFIGURATION

const transform = (caster, size) => {
  caster.update({'data.traits.size': size});
};

const sizes = ["fine", "dim", "tiny", "sm", "med", "lg", "huge", "grg", "col"];

var sizeToBe = 0

const tokens = canvas.tokens.controlled;
let actors = tokens.map(o => o.actor);
if (!actors.length && c.actorNames.length) actors = game.actors.entities.filter(o => c.actorNames.includes(o.name));
if (!actors.length) actors = game.actors.entities.filter(o => o.isPC);
actors = actors.filter(o => o.hasPerm(game.user, "OWNER"));

if (!actors.length) ui.notifications.warn("No applicable actor(s) found");
else {
  for (let actor of actors) {
    const buff = actor.items.find(o => o.name === c.buffName && o.type === "buff");
    if (buff != null) {
      let active = getProperty(buff.data, "data.active");
      if (active == null) active = false;
      for (let tester in sizes) {
        if (actor.data.data.traits.size == sizes[tester]) {
          var currentSize = parseInt(tester);
          break;
        }
      }
      if (active == false) sizeToBe = currentSize + 1;
      else sizeToBe = currentSize - 1;
      transform(actor, sizes[sizeToBe]);
      buff.update({ "data.active": !active });
    }
  }
}
Muistakaa käyttää sizeRoll-funktiota (ks. alla) lähitaisteluaseissan niin muuttuu myös vaurionopat automaattisesti oikeiksi.

sizeRoll(1, 6, @size)

ensimmäinen parametri määrittelee noppien määrän ja toinen nopan eli esimerkin tapauksessa 1d6. Jos koko muuttuu suuremmaksi niin noppa muuttuu automaattisesti 1d8:ksi jne.