关于事件弹窗的小技巧
Event Popup Tips and Tricks - Yanfly.moe Wiki
Event & Move Core里的事件弹窗配合Message Core,可以做一些不错的效果,这里是一些小技巧
这里不能直接显示从wiki外链过来的图片,所以请点进原文看
自动文本

只要玩家经过事件,不用停下对话,就能在事件头顶上显示一个对话文本
要实现这个效果,只需在插件命令Event Popup: Event's 中的Event ID参数中偏移显示位置。如果想让文本显示在玩家头上,就用Event Popup: Player's来设置
一般文本会向上移动,但在插件命令的Popup Setting中,将结尾偏移 Y 与开头偏移 Y 调成相同的数值,文本就能够保持原位

这一更改会防止文字向上移动,也不会短暂出现在目标角色头顶上方。
获得物品提示

这一功能被设置为了Event Popup: Player's的默认值,可以使用Message Core提供的控制符\LastGainObjQuantity和\LastGainObj来实现
要实现这个效果,在获得道具的事件中,用插件命令Event Popup: Player's来显示弹窗,像这样
![]()
显示内容为如下内容
+\LastGainObjQuantity\LastGainObj
使用这一控制符,文本就会显示为玩家刚得到的物品数量和物品种类
失去物品的情况下,把+号变为-号就可以了

赠送礼物

我们依然使用插件命令Event Popup: Player's来实现这一效果

将显示文本用于显示图标,然后将它从一个角色传递到另一个角色
在Popup Settings里更改偏移量:

将Y偏移降低,因为我们希望物品看起来能更接近角色身体,并保持开头和结尾的Y偏移不变,将结尾偏移X改为+48,让弹出窗口向右移动一格
不过这样的话,只有在从左侧激活事件时才有效,所以现在,我们使用js来设定偏移量

+0 //起始偏移量X
($gameMap.tileHeight() / -2) //起始偏移Y
($gamePlayer.direction() === 4) ? -$gameMap.tileWidth() : (($gamePlayer.direction() === 6) ? $gameMap.tileWidth() : 0) //结尾偏移X
(($gamePlayer.direction() === 8) ? -$gameMap.tileHeight() : (($gamePlayer.direction() === 2) ? $gameMap.tileHeight() : 0)) + ($gameMap.tileHeight() / -2) //结尾偏移Y
这些代码必须复制粘贴成一行
这样就可以支持从四个方向都可以送礼
投掷物品

既然我们前面用了JS,那么现在也能用JS来实现将物品投掷到任意位置的功能
和之前一样用图标控制符显示文本

现在要开始算起始和结束的偏移量,这次我们计算的是事件的偏移量,这样,在弹窗设置中使用不同的公式

起始偏移量 X
+0
起始偏移 Y
($gameMap.tileHeight() / -2)
结束偏移X
($gameMap.event(id).x - $gamePlayer.x) * $gameMap.tileWidth()
将“id”替换为事件的数字ID。
结尾偏移 Y
(($gameMap.event(id).y - $gamePlayer.y) * $gameMap.tileHeight()) + ($gameMap.tileHeight() / -2)
将“id”替换为事件的数字ID。
如果只是想把物品扔到空格子:
结束偏移X
(targetTileX - $gamePlayer.x) * $gameMap.tileWidth()
将“targetTileX”替换为数字X坐标。
结尾偏移 Y
((targetTileY - $gamePlayer.y) * $gameMap.tileHeight()) + ($gameMap.tileHeight() / -2)
将“targetTileY”替换为数值Y坐标。

此时物品会按直线方向飞出,我们需要弧线,所以将Arc Peak改为100,那么就可以做出投掷物品的效果了
总结
通过这个事件弹窗功能,可以为游戏体验和游戏演出增添更多趣味。只要记住,任何通过控制符传递的信息都可以在此使用。