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

Project1

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

[原创发布] 小白的js修改之路~第一弹 地形伤害系列

[复制链接]

Lv2.观梦者

梦石
0
星屑
327
在线时间
187 小时
注册时间
2016-4-12
帖子
35
跳转到指定楼层
1
发表于 2016-4-12 21:55:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 帝宗 于 2016-4-12 21:56 编辑

本小白在做大地图的时候,发现对于沼泽等有害地形进行标记,玩家在上述图块行走时就会扣血10滴血,这种固定扣血方式太不高端了,于是本小白我默默地开始了伟大的研究计划。{:2_284:}
再修改之前,要下载一个叫做edit with Notepad++的软件。

PS:在翻遍了js文件夹下所有的js文件后,本小白终于找到了判断地形伤害的相关语句,一串basicfloordamage差点看晕本小白,本着研究先备份,不懂查有道的好习惯,本小白终于试出了修改的方法。

首先,我们打开工程目录下JS文件夹,找到rpg_objects.js文件,用刚刚下好的Notepad软件打开,在4172-4189行左右,找到以下语句:
Game_Actor.prototype.checkFloorEffect = function() {
    if ($gamePlayer.isOnDamageFloor()) {
        this.executeFloorDamage();
    }
};

Game_Actor.prototype.executeFloorDamage = function() {
    var damage = Math.floor(this.basicFloorDamage() * this.fdr);
    damage = Math.min(damage, this.maxFloorDamage());
    this.gainHp(-damage);
    if (damage > 0) {
        this.performMapDamage();
    }
};

Game_Actor.prototype.basicFloorDamage = function() {
    return 10;
};

这时候,可以根据不同的需求,做出更改。
1.觉得10点血太多,可以把标红的10修改成需要的血量,或者把  this.gainHp(-damage);  修改成  this.gainHp(-需要扣除的血量);  
甚至还可以把this.gainHp(-damage);  改成this.gainMp(-damage);  ,变成可以掉蓝,如果两句都用,则表示有害地形红蓝都扣除。

2.希望在有害地形走一段距离以后,才开始扣血,可以在
if ($gamePlayer.isOnDamageFloor()) {
        this.executeFloorDamage();
    }
后面增加一段话,变成
Game_Actor.prototype.checkFloorEffect = function() {
    if ($gamePlayer.isOnDamageFloor()) {
        this.executeFloorDamage();
    }else {
        $gameVariables.setValue(1,0);      //这里引用变量,玩家不在有害地形,1号变量赋值为0,可以考虑使用$gameVariables.setValue(1,$gameVariables.value(1)+1)之类的语句做成缓慢减少
    }                                                        //防止玩家走3个有害的跑安全地形一下就不扣血的bug玩法
};                                        //但是这个需要完善,找到闪红光的语句,添加一个判定,扣血的条件下才闪红光,小白表示,闪红光语句到底长什么样.....
同时,把
ame_Actor.prototype.executeFloorDamage = function() {
    var damage = Math.floor(this.basicFloorDamage() * this.fdr);
    damage = Math.min(damage, this.maxFloorDamage());
    this.gainHp(-damage);
    if (damage > 0) {
        this.performMapDamage();
    }
};
修改为
Game_Actor.prototype.executeFloorDamage = function() {
    var damage = Math.floor(this.basicFloorDamage() * this.fdr);
    damage = Math.min(damage, this.maxFloorDamage());
        $gameVariables.setValue(1,$gameVariables.value(1)+1)      //在有害地形行走时,1号变量+1,注意,虽然这里是1,但实际游戏中走一格加的是5
        if ($gameVariables.value(1) > 15) {          //所以,这里判定的1号变量是大于15,代表有害地形行走超过3次开始损伤,这里可以考虑改成不固定的变量,做出一个可能不扣血的范围
        this.gainHp(-damage);      
        }
    if (damage > 0) {
        this.performMapDamage();
    }
};

3.由于扣血扣蓝可以选择能否导致战斗不能,这时候,我们需要在大地图界面直观标识血蓝的插件,这里,我使用的是MV图书馆提到的仿碧轨地图血条插件https://rpg.blue/thread-386077-1-1.html
这个插件的使用在刚刚的网址里有详细的介绍。但是,这个插件默认是4个玩家头像,万一玩家默认队伍超过4人,所以还需要修改。
不过这个修改起来比较简单,用刚刚的软件打开插件,在205-207行可以找到:
Window_MapStatus.prototype.maxCols = function() {
        return 4;         
};
修改这个数字,就可以增加显示的人数,我建议改成5,一般5个角色足够了,而且AltmenuScreen1-3插件使用5个角色,配合立绘看起来刚刚好合适。


4.觉得扣血扣蓝太不高端,想做出类似随机事件的朋友,这里提供一个思路

ame_Actor.prototype.executeFloorDamage = function() {
    var damage = Math.floor(this.basicFloorDamage() * this.fdr);
    damage = Math.min(damage, this.maxFloorDamage());
    this.gainHp(-damage);
    if (damage > 0) {
        this.performMapDamage();
    }
};

把this.gainHp(-damage);去掉,修改为执行某公共事件的指令
同时在公共事件中利用区域赋值变量,根据变量出现分歧来开启不同的剧情,
你问我为什么不把使用的句子写上去?
因为我是小白....还没找到引用公共事件的语句,甚至是不是和ace一样要先用一个脚本引用公共事件的脚本,才能使用Game_Interpreter_Self.new(n)都不知道!{:2_251:}

最后,我想默默地提问,$game_party.actors[?].atk +=1 在mv里该怎么弄啊{:2_264:} 还有,怎么用脚本语言判定队伍中指定位置的角色是死亡状态{:2_270:} 欢淫各位大神前来指导!{:2_287:} 我打赌有人会想说:输入法暴露性格!

Lv1.梦旅人

梦石
0
星屑
134
在线时间
22 小时
注册时间
2019-10-7
帖子
1
2
发表于 2024-4-7 10:38:34 | 只看该作者
增加攻击力么,可以看下有个方法
  1. Game_BattlerBase.prototype.addParam = function(paramId, value) {
  2.     this._paramPlus[paramId] += value;
  3.     this.refresh();
  4. };
复制代码

这里操作攻击力传入paramId为2,value为视角增加的值
判断死亡有个方法
  1. Game_BattlerBase.prototype.isDead = function() {
  2.     return this.isAppeared() && this.isDeathStateAffected();
  3. };
复制代码

评分

参与人数 1+1 收起 理由
505681468 + 1 xd,16年的帖子了

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-2 07:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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