Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

Ayuda con macros y habilidades

Buenas, hace tiempo ya que uso rolld20, unas 100 horas, pero no había empezado a profundizar en temas de macros y con las habilidades. Ahora estoy preparando una partida con el sistema Rolemaster Fantasía y para agilizar los combates y no mirar tantas tablas, estoy copiando las tablas de críticos y poniéndolo de la siguiente manera: Esto lo estoy haciendo en los Macros generales, mientras en la hoja de personajes, en habilidades hago esto: Pero al haber muchas tablas de críticos y haber 5 críticos por cada tipo de crítico, empiezo a tener una barbaridad de macros en general. Mi pregunta es si hay alguna forma de hacerlo al revés, es decir, poner en los macros generales lo que estoy poniendo en habilidades y viceversa. Lo he intentado, sin usar HTML, pero me da error o simplemente me pone el nombre. Alguien sabría como hacerlo sin tener 300 macros generales? Espero que se me haya entendido.
1626316339

Edited 1626364728
timmaugh
Pro
API Scripter
First, sorry that my response will be in English, but hopefully Google translate will work as well for you as it did for me. =D Second, the short answer is I'm not sure you will find a satisfactory solution short of an API script. =/ The order of operations of macro parsing will work against you to build your various tables as lots and lots of attributes on a "Table" character (where the attributes would hold the data from the crit table, you could roll, and then access that particular attribute by name + number combination: @ {CritTable | SlashCritA [[{1d100!> 96,150} kl1]]} Note: this won't work. Most regrettable. Scripts are a pro perk, but if the game owner is a pro user, you should be able to use them too. I say that because Rolemaster was exactly the sort of system that I had in mind when I was writing my Muler script. It can access Tables of information by roll value, and each entry of the table could be a range of values (like '45-49'). I've written a bunch of examples in different threads, but if you'd like I could provide one here, too.
Gracias por contestar. Si, yo también uso el traductor xD Me temía que solo se iba a solucionar el problema con un Scrip; pero bueno, si no es mucha molestia y también me quieres escribir un ejemplo de las tablas de información. Seguramente sea más sencillo la propuesta que me estás dando.
1626373180
timmaugh
Pro
API Scripter
OK, I'll say at the outset that this might be a bit of setup, but once it is done, you can Character Vault the character and/or Transmogrify this setup into any game where you need these tables. Context You should be familiar with these concepts and syntax structures so that the rest of the instructions will make sense: Muler lets you set up "mules" which are nothing more than character abilities you will use as a tables of variables. You make a mule available to a command line with the {& mule ... } syntax, naming the mule you want to load You retrieve a variable with the get.variable/get syntax (there is also syntax to set a variable, but you won't need that just to accomplish what you're looking to do) Setup Just as a preliminary guess, you will need Muler, ZeroFrame, SelectManger, and Fetch. These are all metascripts and all available in the 1-click. Create a character named "TableMule," and give control rights to any player who might need to access the mules. I will imagine creating the Slash Critical table as a series of mules. This same process can be applied to other crit tables. Create an ability on the character named SlashCritA . This will represent the "A" column of the table. Enter the information from that column into the mule following this pattern: <=5=Zip. 6-10=+1 hit. 11-15=You receive initiative next round. +1 hit. 16-20=Foe must parry next round. + 1 hit. 21-35=Foe must parry next round. +2 hits. Add +10 to next swing. 36-45=Minor calf wound. Foe receives 1 hit per round. ... ...etc... ... 96-99=Slash foe's nose. Minor wound. +2 hits and a permanent scar. Foe takes 2 hits a round and is at -30. Foe stunned 6 rounds. >=100=Neck strike severs carotid artery and jugular vein. Foe's neck is broken. Foe dies in 1 round of intense agony. (Notice that I turned the first and last entries into less/greater than statements, in case you have exploding results that go beyond the chart.) Basic Retrieval To retrieve a value from this table, you will need the {& mule ... } statement and a get statement in your command line. The following example just uses meta constructs to get the value, then outputs a simple message: !The critical from the SlashCritA table at $[[0]] is: get.[[1d100]].value/get {&mule TableMule.SlashCritA}{&simple} Expanding You would obviously need to enter the data from the B, C, D, and E columns of the crit table into their own mules (SlashCritB, SlashCritC, etc.). Multiple mules can be loaded into a single message using a single {& mule ... } statement: {& mule TableMule.SlashCritA, TableMule.SlashCritB, TableMule.SlashCritC, TableMule.SlashCritD, TableMule.SlashCritE} Since the variables are going to be named the same across the mules (they are all numbers), you will need to differentiate which mule to access for your result (i.e., is it an A crit, or a B crit?). get.SlashCritA.[[1d100]].value/get Actual Usage You will not always know which crit mule to get the value from until after the roll is made... that is, you don't know if you've generated an A, B, C, D, or E crit until after the attack roll. There are ways to flow from one mule to another... here is an example from a 2-table setup, where the value from one result translated into a look up against the other table. For Rolemaster, that might be the initial roll against the proper attack table driving whether you earned a critical (and looking up against that table/mule). However the Rolemaster attack tables are so extensive and so numerous that this would be a TON of work just to get the data entry input. I'm going to assume that is beyond what you were looking for, but if you wanted to apply it to a limited subset of tables (for instance, just those required for your character), post back and I can help with that. For now, lets assume that you've made the attack roll, and you know what crit you should roll. For that, you can put a roll query into your command line to know what kind of crit to request. To make it work, create another mule on the TableMule character called GetCrit. Enter the following lines: None={&stop} SlashA=get.SlashCritA.[[1d100]].value/get {&mule SlashCritA} SlashB=get.SlashCritB.[[1d100]].value/get {&mule SlashCritB} SlashC=get.SlashCritD.[[1d100]].value/get {&mule SlashCritC} SlashD=get.SlashCritD.[[1d100]].value/get {&mule SlashCritD} SlashE=get.SlashCritE.[[1d100]].value/get {&mule SlashCritE} Basically, we are saying that when we retrieve a value (like "SlashA") from this table, we want a get statement that will let us look against another table, and also make sure that that table (mule) is loaded. (Note that the "None" variable has a {& stop} construction... that comes from ZeroFrame and basically says to not output anything; this is helpful if you inadvertently ran the command line and you didn't actually want a critical to register to the chat.) Now that that is in place, you can use the following to output the result to chat: !?{What critical to retrieve?|A,get.SlashA/get|B,get.SlashB/get|C,get.SlashC/get|D,get.SlashD/get|E,get.SlashE/get}{& mule TableMule.GetCrit}{&simple} Of course, you can put that in a template, too, to have prettier output: !&{template:default}{{name=Critical Scored}}{{Result $[[0]]= <above roll query here> }}{& mule TableMule.GetCrit}{&simple} You can expand the GetCrit mule to include any critical tables you want to add to it, pointing to the individual A-E mules you create to allow you to reference/retrieve the values... allowing you to retrieve Slash, Puncture, Krush, etc. Ideally, you might put the above command line in its own macro, then you could create a chat button for it. You would roll your first attack roll that output the result of the roll in one line of a roll template, and included the chat button in a second line. If the results pointed to a critical, you click on the button, select your crit table, and get your result.