作者 主题: 求助如何在宏中调用目标的Properties表内数据  (阅读 4308 次)

副标题: 其实初衷是想做抛骰比较AC然后扣血的宏

离线 lstloo

  • Adventurer
  • *
  • 帖子数: 57
  • 苹果币: 0
求助如何在宏中调用目标的Properties表内数据
« 于: 2013-01-07, 周一 13:44:25 »
修改了下问题 我竟把AC和AP都搞混了!真是 :em023
把2楼的回复都搬运过来

问题一?
假如我想要做一个攻击抛骰式子
<!--[DiceRoll = 1d20]--> <span style=font-size:0> [AtkMod=AtkMod]</span> [DiceRoll+Weapon1Bonus+AtkMod]
<span style=font-size:0>[DmgMod=DmgMod][Check=DiceRoll+Weapon1Bonus+AtkMod-ACACACACAC]</span>
{if(DiceRoll == 20,"CH","")} {if(Check >=0,"Hit!","Miss!")}
ACACACACAC这里要如何写才能自动调用目标的AC呢?
问题二?
假如上面的式子成立了 并且算好了伤害Damage
要如何自动给目标减HP呢
问题三?
我做了这样2个宏想解决问题二
宏一[MACRO("HP@global"):-Damage]
宏一调用宏二
宏二[H:HP=macro.args][HP]但是攻击后减的却是自己的HP
那么宏一或宏二如何写才能掉目标的HP呢?

望诸位名师高朋不吝赐教。这里先谢过了
« 上次编辑: 2013-01-07, 周一 16:43:32 由 lstloo »

lesser

  • 访客
Re: 求助如何在宏中调用目标的Properties表内数据
« 回帖 #1 于: 2013-01-07, 周一 13:52:24 »
campaign是库名字,是要放到专门的token里。那库里有Change Health函数。具体忘了。。。可以到这里查:
http://lmwcs.com/rptools/wiki/Main_Page

[H:HP=if(Change>0, min(max(Change,(HP+Change)), MaxHP), HP)]就是加血,不溢出。有了Change>0用不着max(Change,(HP+Change))了吧。。。

离线 lstloo

  • Adventurer
  • *
  • 帖子数: 57
  • 苹果币: 0
Re: 求助如何在宏中调用目标的Properties表内数据
« 回帖 #2 于: 2013-01-07, 周一 14:32:19 »
那个可能是我没说清楚
问题一?
假如我想要做一个攻击抛骰式子
<!--[DiceRoll = 1d20]--> <span style=font-size:0> [AtkMod=AtkMod]</span> [DiceRoll+Weapon1Bonus+AtkMod]
<span style=font-size:0>[DmgMod=DmgMod][Check=DiceRoll+Weapon1Bonus+AtkMod-ACACACACAC]</span>
{if(DiceRoll == 20,"CH","")} {if(Check >=0,"Hit!","Miss!")}
ACACACACAC这里要如何写才能自动调用目标的AC呢?
问题二?
假如上面的式子成立了 并且算好了伤害Damage
要如何自动给目标减HP呢
问题三?
我做了这样2个宏想解决问题二
宏一[MACRO("HP@global"):-Damage]
宏一调用宏二
宏二[H:HP=macro.args][HP]但是攻击后减的却是自己的HP
那么宏一或宏二如何写才能掉目标的HP呢?

望高朋不吝赐教。

我的会员资格似乎无法引用帖子,真是无语 :em031
« 上次编辑: 2013-01-07, 周一 16:40:14 由 lstloo »

lesser

  • 访客
Re: 求助如何在宏中调用目标的Properties表内数据
« 回帖 #3 于: 2013-01-07, 周一 18:48:13 »
所以就是Library Token的问题啊。
http://lmwcs.com/rptools/wiki/Library_Token
调用、修改别的token的参数有:
http://lmwcs.com/rptools/wiki/getProperty
http://lmwcs.com/rptools/wiki/setProperty
但是都要求在Trusted Macro下,所以需要放在Library Token下的宏里,然后被调用。
http://lmwcs.com/rptools/wiki/macro_%28roll_option%29

lz写的既然没指定目标当然不会改目标的参数了。

离线 lstloo

  • Adventurer
  • *
  • 帖子数: 57
  • 苹果币: 0
Re: 求助如何在宏中调用目标的Properties表内数据
« 回帖 #4 于: 2013-01-07, 周一 22:02:12 »
谢了朋友亏了你给找了链接来,不然靠自己这水平一辈子也没戏啊。
我先看看,我这小学水平渣英语的不见得看得懂,有什么不明白的望届时还能再向你请教。


离线 lstloo

  • Adventurer
  • *
  • 帖子数: 57
  • 苹果币: 0
Re: 求助如何在宏中调用目标的Properties表内数据
« 回帖 #5 于: 2013-01-08, 周二 01:13:30 »
一番尝试 说不上茅塞顿开,好歹总结了这么个句子调用目标的数据 [getProperty("AC",  getSelected())]

又想到了个土办法解决调整属性的问题
[h: AB=N-getProperty("AC",getSelected())]
[h: setProperty("AC",AB, getSelected())]

好吧 至少想要解决的问题都解决了不是 虽然宏看上去很笨重就是了。

今天终于搞懂了MACRO这种例句

比方我在global宏菜单里建了个名叫Damage HP的宏,内容为:[H:Damage=macro.args]
而我在其他宏写这样的句子就是调用上面的宏[MACRO("Damage HP@global"):n]
而上方句中的Damage就等于下面句中的n

至于Library_Token还是不明白到底是做什么的?以及有什么意义?懊恼中 :em031
« 上次编辑: 2013-01-08, 周二 23:14:11 由 lstloo »

离线 AlbertNi

  • Sleeper, Lord of Helpless, The Brainless
  • 版主
  • *
  • 帖子数: 7260
  • 苹果币: 2
Re: 求助如何在宏中调用目标的Properties表内数据
« 回帖 #6 于: 2013-01-19, 周六 13:48:59 »
library token就是专门用来放宏的token,最常见的应用是在里面放上trusted macro让pc调用
« 上次编辑: 2013-01-19, 周六 13:50:39 由 AlbertNi »
突然之间不知道放神马签名好了……
哦对了,我也是新人了!

离线 lstloo

  • Adventurer
  • *
  • 帖子数: 57
  • 苹果币: 0
Re: 求助如何在宏中调用目标的Properties表内数据
« 回帖 #7 于: 2013-04-21, 周日 18:55:08 »
library token就是专门用来放宏的token,最常见的应用是在里面放上trusted macro让pc调用
折腾了一圈后又反回了起点 看来我还是需要library token才能既丰富预制NPC的动作又不增加打字时间
于是我再去尝试吧= =! 现在好想向小学英文老师说对不起啊

离线 lstloo

  • Adventurer
  • *
  • 帖子数: 57
  • 苹果币: 0
Re: 求助如何在宏中调用目标的Properties表内数据
« 回帖 #8 于: 2013-04-22, 周一 13:44:25 »
试验了下,发现location token 或者说 macro意外的省心好用
只需要写出调用就好了,根本不用单独赋值

不过又有了一个问题,怎样能把location token里的数据返回呢?
比方使用宏
[MACRO("abc@Lib:a"):1] <!-- 调用 abc@Lib:a 并得出 A=1-->
[r,if(A == 0),CODE:{someone};{}] <!--但是到了这一步就会让我再次输入A的赋值了-->

请问怎样才能让abc@Lib:a 里的 A=1 返回之前调用它的宏呢?


受人提点,不敢擅专,放链接如下,解法一目了然
http://lmwcs.com/rptools/wiki/macro.return
« 上次编辑: 2013-04-25, 周四 00:13:54 由 lstloo »