设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2767|回复: 17
打印 上一主题 下一主题

[有事请教] 自己写的事件视野脚本无法运行

[复制链接]

Lv1.梦旅人

梦石
0
星屑
115
在线时间
19 小时
注册时间
2018-7-30
帖子
19
跳转到指定楼层
1
发表于 2019-1-26 18:13:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
脚本如下
脚本


问题是做成插件放到游戏里面以后没有报错但是没有效果。有大佬知道原因吗?

点评

按F12看看,是不是有提示错误  发表于 2019-1-26 19:00

Lv5.捕梦者

梦石
0
星屑
32002
在线时间
5081 小时
注册时间
2012-11-19
帖子
4877

开拓者

2
发表于 2019-1-26 19:07:52 | 只看该作者
1, 自开关的key不是单独的字母,他是一个包含 地图ID,事件ID,字母 的数组。
2, 不知道你要计算什么,如果只是是简单的判断事件与角色的格子距离的话,直接用 Game_Map 的 distance 就行了。
比如可以像这样少于10格算进入视线:
var x1 = $gameMap.event(eventId).x;
var y1 = $gameMap.event(eventId).y;
var x2 = $gamePlayer.x;
var y2 = $gamePlayer.y;
var key = [$gameMap.mapId(), eventId, 'A'];
$gameSelfSwitches.setValue(key, $gameMap.distance(x1, y1, x2, y2) < 10);
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
115
在线时间
19 小时
注册时间
2018-7-30
帖子
19
3
 楼主| 发表于 2019-1-26 19:10:16 | 只看该作者
芯☆淡茹水 发表于 2019-1-26 19:07
1, 自开关的key不是单独的字母,他是一个包含 地图ID,事件ID,字母 的数组。
2, 不知道你要计算什么,如 ...

如果是要打开当前事件的独立开关呢?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
115
在线时间
19 小时
注册时间
2018-7-30
帖子
19
4
 楼主| 发表于 2019-1-26 19:14:20 | 只看该作者
芯☆淡茹水 发表于 2019-1-26 19:07
1, 自开关的key不是单独的字母,他是一个包含 地图ID,事件ID,字母 的数组。
2, 不知道你要计算什么,如 ...

我是想做单方向的,会被带特定地形标志图块阻挡的事件视野

点评

直接简化成几条线段,判断从玩家到支线尽头的位置有没有墙,有的话就跳到下一条线段  发表于 2019-1-26 20:14
用格子判断不太现实。如果是斜方向非45度时,你的视野是从上弯过去到角色呢?还是从下弯过去?  发表于 2019-1-26 19:23
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
32002
在线时间
5081 小时
注册时间
2012-11-19
帖子
4877

开拓者

5
发表于 2019-1-26 19:20:10 | 只看该作者
沙皇蘑菇 发表于 2019-1-26 19:10
如果是要打开当前事件的独立开关呢?

如果是在 Game_Interpreter 里,就直接
var event = $gameMap.event(this._eventId);

var event = $gameMap.event(this.eventId());
都行。
如果事件解释器运行的是地图事件以外的其他事件,就不能获取地图事件。

点评

谢谢  发表于 2019-1-26 19:21
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
115
在线时间
19 小时
注册时间
2018-7-30
帖子
19
6
 楼主| 发表于 2019-1-26 19:27:29 | 只看该作者
芯☆淡茹水 发表于 2019-1-26 19:20
如果是在 Game_Interpreter 里,就直接
var event = $gameMap.event(this._eventId);

这个 event是替换$gameMap.mapId()和eventide吗?

点评

如果js有goto就好写多了……现在我都不懂break会跳到哪里  发表于 2019-1-26 19:54
不知道,没有细看。个人有轻微的强迫症,各种缩进太长的代码看着眼睛比较疼。  发表于 2019-1-26 19:49
放到我那个脚本里还是无效,我break的部分是不是写错了?  发表于 2019-1-26 19:43
建议用 this.eventId() ,最好不要直接获取它的内变量,这个习惯是有好处的。  发表于 2019-1-26 19:32
谢谢  发表于 2019-1-26 19:31
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
115
在线时间
19 小时
注册时间
2018-7-30
帖子
19
7
 楼主| 发表于 2019-1-26 20:58:39 | 只看该作者
芯☆淡茹水 发表于 2019-1-26 19:20
如果是在 Game_Interpreter 里,就直接
var event = $gameMap.event(this._eventId);

JAVASCRIPT 代码复制
  1. eyesight_x:
  2.             for (judger_y = eare_y1; judger_y <= eare_y2; judger_y ++)
  3.             {
  4.                 $gameVariables.setValue(32, 1);/*  */
  5.                 for(judger_x = eare_x2; judger_x >= eare_x1; judger_x --)
  6.                 {
  7.                     $gameVariables.setValue(33, 1);/*  */
  8.                     if ($gameMap.terrainTag(judger_x,judger_y) = 1)
  9.                     {
  10.                         continue eyesight_x;  
  11.                     }
  12.                     else if(judger_y == player_y && judger_x == player_x)
  13.                     {
  14.                         $gameSelfSwitches.setValue(key,true);
  15.                         break eyesight_x;
  16.                     }
  17.                 }
  18.             }
  19.             break;


eare_y2 > eare_y1 , eare_x2 > eare_x1,现在发现是这个部分没有执行,大佬能帮我看下原因吗?跪谢。

点评

if = ?  发表于 2019-1-26 22:16
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-4 11:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表