脚本的初入门
srpgstudio吧
全部回复
仅看楼主
level 4
Max🌟🌟 楼主
这个工具的本体已经提供了太多方便,但是没有脚本的支撑,做出来的游戏都是换汤不换药的,脚本可以在两个地方编写。第一这个工具里的很多需要自定义的地方,比如
第一个表示初期设定,第二个自定义参数,第三个自定义系统参数,后面两个具体用法以后讲,现在主要演示第一个,就是游戏初期的代码。
还有一种方式是写插件(本人推荐)但是有些情况需要结合上面两种。
2015年05月07日 08点05分 1
level 4
Max🌟🌟 楼主
(希望你懂JS)
这个工具运行脚本的原理就是利用修改script文件下的各种函数实现自定义,游戏初期可利用的API较少,这里演示一下如何修改游戏画面的宽度。在脚本文件夹里可以找到一个executive-scriptcall.js的文件,这里面有一个函数,是下面的样子。
/ ゲームの初期化段阶で一度だけ呼ばれる。
// この関数のみ、rootを参照できない。
function ScriptCall_Initialize(startupInfo)
{
}
我们可以往里面添加东西实现这个功能。但是直接在这里面修改不太合适(其实也可以),因为随着软件的更新,我们在这里所做的修改都没了。为次我们需要在Plugin文件夹下新建一个新的文件夹,名字随便,就叫MyPlugins,然后里面新建一个JS文件,文件名任意,然后添加如下代码:
ScriptCall_Initialize=function(info)
{
info.setGameAreaWidth(1280);
}
保存,运行,效果就有了。这里就不截图了
同时你也可以不这么做,而是直接将上述代码复制到“初期设定里”
效果也是一致的
2015年05月07日 08点05分 2
因为脚本这部分实在没兴趣看,所以问一下,如果plugin下有多个同名函数,处理机制是什么?
2015年05月07日 08点05分
@chis12 按照定义的顺序依次覆盖,最后一个生效。顺序在script文件夹下面的一个info.ini 文件里面OriginalOrder定义
2015年05月07日 11点05分
level 10
不错不错
2015年05月07日 08点05分 3
level 1
支持一下,能写这部分的绝对是高手了。
借楼放出官方脚本api说明
链接: htt[啊]p://pa[啊]n.baidu.c[啊]om/s/1[啊]HaOpg 密码: xs3i
2015年05月07日 08点05分 4
怎么都过期了
2015年07月15日 19点07分
level 1
官方的plugin,也就是插件
链接: htt[啊]p://pan.ba[啊]idu.com/[啊]s/1pJ3[啊]Jg6n 密码: rews
2015年05月07日 08点05分 5
强烈请求补档[泪]
2015年09月03日 07点09分
level 4
Max🌟🌟 楼主
接下来的脚本以plugin为主,首先我想到的就是修改第一代FE里面的平衡性,游戏中有一个猎人的职业,走森林和山地只需要一个移动力,但是不能转职,所以这个职业根本没有用!所以我想到的是,如果猎人在森林里,山里,必杀率上升!
实现代码如下:(接着上文)
(function() {
ScriptCall_Initialize=function(info)
{
info.setGameAreaWidth(1280);
};//这是上文提到的更改宽度
//下面开始修改猎人
var alias1 = AbilityCalculator.getCritical;//获取游戏的公式计算
AbilityCalculator.getCritical = function(unit, weapon) {
var crit = alias1.call(this, unit, weapon);//首先需要调用原本的计算公式,因为如果不是猎人就不要更改
if(unit.getClass().getName()=="猎人")//判断是否是猎人
{
var terrain = PosChecker.getTerrainFromPos(unit.getMapX(), unit.getMapY());//获取所在地形
if(terrain.getName()=="山"||terrain.getName()=="森")
{
root.log("detected!");
crit+=15;//如果都满足条件了,必杀率+15
}
}
return crit;
};
})();
脚本实验结果截图(红色敌人在森林里面)
敌人使用是没有必杀的武器。效果如下
2015年05月07日 15点05分 6
另外需要注意的是,猎人这个职业需要自己定义好.
2015年05月07日 15点05分
level 10
楼主厉害 支持一个
2015年05月08日 00点05分 7
level 14
这方面不懂
2015年05月10日 02点05分 8
level 14

    ----都说兄弟如手足,女人如衣服,谁砍了我的手足,我就去穿他的衣服!
2015年05月10日 04点05分 9
level 4
Max🌟🌟 楼主
这段时间终于把我的FE1剧情推到了第三章恶魔之山,对整个SS(SRPG Studio)也稍微深入了一下。很显然,制作SS的人没有玩过第一代(马尔斯),我表示非常遗憾。SS的一些脚本非常的不成熟。竞技场比较难实现,因为它竟然没有提供生成随机角色的API,这点很是吃惊。废话不多少,进入正题。
2015年05月12日 02点05分 10
超任的聖戰之系譜也沒有生成随机角色,但也有竞技场
2016年05月01日 04点05分
level 4
Max🌟🌟 楼主
玩过马尔斯的知道有把武器叫恶魔之斧,根据自己的运气一点概率触发,反噬自身。这是一个武器特效,但是SS里面不支持自定义武器特效的,缓兵之计只能给武器追加自定义技能(一个技能竟然会反噬。。。[汗]
这个发动率写100,因为SS的技能发动率不支持和属性负相关的,这个武器的原理就是运气越高,发动率越小,所以需要在脚本中写额外的代码。关键字要填写。这里写的是AxeofDespair。代码如下:
var alias1 = SkillRandomizer.isCustomSkillInvokedInternal;//技能相应函数
SkillRandomizer.isCustomSkillInvokedInternal = function(active, passive, skill, keyword) {
if(keyword ==="AxeofDespair")//如果关键字是AxeofDespair
{
var percent=(20-active.getParamValue(5))*5;//重新计算发动概率,与第5个参数运气相关,根据公式运气为0,那么percent就是100了,必然发动,运气为20以上,就不会发动
if(percent>=0)
{
if(Probability.getProbability(percent))//随机数生成器,如果发动成功
{
return this._isSkillInvokedInternal(active, passive, skill);//执行技能
}
}
}
return alias1.call(this, active, passive, skill, keyword);//不是这个关键字或者发动不成功,那么就返回原来的
};
2015年05月12日 02点05分 11
这段代码要写到哪里,新建一个.js文件?还是在软件界面中的某个自定义属性中写?
2017年04月30日 03点04分
level 4
Max🌟🌟 楼主
接着就是修正伤害,
var alias2 = AttackEvaluator.HitCritical.calculateDamage;
AttackEvaluator.HitCritical.calculateDamage = function(virtualActive, virtualPassive, entry) {
var damage = alias2.call(this, virtualActive, virtualPassive, entry);
if (SkillControl.checkAndPushCustomSkill(virtualActive.unitSelf, virtualPassive.unitSelf, entry, true, 'AxeofDespair') !== null) {//如果技能发动了,那么攻击方伤害变为0,自身伤害是15
damage=0;
entry.damageActive=15;
}
return damage;
};
需要注意的是,SS提供的攻击脚本不支持伤害自身,所以我们需要修改源代码了,找到script里面的Attack_Order.js文件,定位到AttackEvaluator.ActiveAction,里面有个私有函数叫_arrangeActiveDamage
把里面这么几行注释掉,它竟然强制改为0!必须删掉
//这里是注释的部分
//else {
//damageActive = 0;
//}
这样大功告成,演示效果如下
2015年05月12日 02点05分 12
你好 朋友 我有srpgstudio脚本的问题请教您
2017年08月16日 13点08分
level 4
Max🌟🌟 楼主
没想到不支持GIF,大家有兴趣的可以自己试验一下。欢迎大家截图
2015年05月12日 02点05分 13
楼主求看私信
2015年05月18日 19点05分
楼主你的验证信息是?
2015年05月19日 05点05分
level 5
结楼提点意见[乖]球菊苣整理GBA和NDS版人物、地图素材
2015年05月12日 05点05分 14
这个需要美术大神的帮助了,功能探索相对来说比较容易,原创素材特别是动画才是最麻烦的。即使RM那样流行的工具,大部分素材包都是从日本扒来的
2015年05月12日 07点05分
level 1
mark,在下是学游戏美术的,日语N3。。。想独立开发。。持续关注中
2015年05月13日 14点05分 15
你需要編劇嗎
2016年10月12日 10点10分
level 4
这个游戏似乎没有主动选择发动的技能,比如跳舞和偷东西,不知道有没有可能通过脚本实现?
2015年05月15日 10点05分 16
跳舞肯定可以,不用代码,用道具就能实现
2015年05月15日 11点05分
我目前就是这么干的,搞个专用道具绑定,不过总觉得怪怪的233
2015年05月15日 11点05分
有一个公开类叫unitCommand,你说的东西可以在里面实现。过几天可以演示一下跳舞。
2015年05月15日 11点05分
@Max🌟🌟 萨苏噶菊苣!
2015年05月15日 11点05分
level 14
马克
2015年05月29日 06点05分 17
level 1
这东西还需要做?
2015年06月20日 02点06分 19
level 2
楼上你行你上啊
2015年07月03日 23点07分 20
level 1
你们真厉害 ,希望继续多出一些系统教程
2015年07月15日 19点07分 21
1 2 尾页