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

Project1

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

[已经过期] 关于转职系统的请教,顺便悬赏

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2017-3-23
帖子
8
跳转到指定楼层
1
发表于 2017-3-31 17:18:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
目前是想要一个这种效果
1、角色到达指定等级,并拥有足够的资源(金钱,其他变量,或者特殊物品),就可以进化成更高的职业。(比如剑客——》剑圣)
2、角色转职后,会保留转职前的技能,以及属性。(即剑客会居合斩,变成剑圣后依然会。)
3、角色转职后获得我自己定义的技能,并在以后的等级提升中会学会新的技能。同样有些特定装备需要转职后才能使用。
4、角色不止一次转职,比如1转剑圣,2转贱圣。
5、需要将上面功能用一个窗口菜单的形式展示出来。

我用了YANFLY的职业转换插件,发现并不能实现上面功能。

有大神能给个思路或者安利一下可以实现的插件吗?

最后 悬赏上面说的功能,有偿RMB。

联系企鹅:17649056

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2017-1-18
帖子
11
14
发表于 2017-5-15 14:28:38 | 只看该作者
//删除,到时候可以读取data
var changeList = [];
changeList[0] = {
    class: 2, //当前职业Id
    target: 3, //目标职业Id
    level: 0, //转职等级
    variable: ["1>4"], //变量1大于4
    item: [{ type: 0, id: 1, count: 5 }, { type: 1, id: 2, count: 5}], //物品类型,物品id,数量
    add: { skill: [], param: [5, 5, 5]}//增加的技能,属性
}



Game_Party.prototype.AdvancedClass = function (i) {
    var actor = this.members[i];
    var change = null;
    for (var j in changeList) {
        if (changeList[j].class == actor._classId) {
            change = changeList[j]; break;
        }
    }
    if (change != null) {
        if (actor._level >= change.level) {
            var okVariable = true;
            for (var k in change.variable) {
                var temp = change.variable[k].split('>');
                if (temp.length == 2 && $gameVariables[temp[0]] < temp[1]) {
                    okVariable = false; break;
                }
            }
            //变量条件不足!
            if (!okVariable) {
                $gameMessage.add(actor._name + "的机缘未到!"); return false;
            }
            var okItem = true;
            for (var l in change.item) {
                var item = null;
                switch (change.item[l].type) {
                    case 0: item = $dataItems[change.item[l].id]; break;
                    case 1: item = $dataWeapons[change.item[l].id]; break;
                    case 2: item = $dataArmors[change.item[l].id]; break;
                }
                if (this.numItems(item) < change.item[l].count) {
                    okItem = false; break;
                }
            }
            if (!okVariable) {
                $gameMessage.add("物品不够!"); return false;
            }
            //减少物品
            for (var l in change.item) {
                var item = null;
                switch (change.item[l].type) {
                    case 0: item = $dataItems[change.item[l].id]; break;
                    case 1: item = $dataWeapons[change.item[l].id]; break;
                    case 2: item = $dataArmors[change.item[l].id]; break;
                }
                this.gainItem(item, -change.item[l].count, true);
            }
            //更改职业保留经验
            actor.changeClass(change.target, true);
            //学习技能
            $.each(change.add.skill, function (idx, obj) {
                actor.learnSkill(obj);
            });
            //增加属性
            $.each(change.add.param, function (idx, obj) {
                actor.addParam(idx, obj);
            });
        }
        else {
            $gameMessage.add(actor._name + "等级不够!");
            return false;
        }
    }
    else {
        $gameMessage.add(actor._name + "没有职业可转!");
    }
}



未测试大概可以这样子
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2017-1-18
帖子
11
13
发表于 2017-4-19 17:41:08 | 只看该作者
{:2_260:}临时写了个简易的要么?事件自己写,Game_Party加了一个方法。调用的时候传队伍中第几个角色的数字就行了。
方法里实现了:
判断是否有职业可转,
等级是否够,
变量是否大于N(可多个),
物品、武器、防具是否有一定的数量(可多个),
更改职业保留经验,
学习指定的技能(可多个),
增加额外的属性。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
352
在线时间
377 小时
注册时间
2013-1-30
帖子
219
12
发表于 2017-3-31 20:37:15 | 只看该作者
lbjqgm008 发表于 2017-3-31 20:32
-。。还能这样。。不过要是能找个人做个类似这种转职的视窗插件就好了。。YANFLAY 那个职业转换,无法屏 ...

毕竟MV的年份还是比VA少多了,像VA里的宠物进化脚本都可以满足楼主的要求,而MV还有许多插件都没有或者还没传到国内
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2017-3-23
帖子
8
11
 楼主| 发表于 2017-3-31 20:32:02 | 只看该作者
qknight 发表于 2017-3-31 20:10
有能增加队伍总人数的插件,但我也不知道怎么增加游戏自带菜单里的组员位置。
如果你是因为无法得知队伍 ...

-。。还能这样。。不过要是能找个人做个类似这种转职的视窗插件就好了。。YANFLAY 那个职业转换,无法屏蔽本身角色的职业。也就是说我可以转成骑士,也可以转回勇士。而且他对限制转职的条件设置 无效。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
352
在线时间
377 小时
注册时间
2013-1-30
帖子
219
10
发表于 2017-3-31 20:10:09 | 只看该作者
lbjqgm008 发表于 2017-3-31 19:56
事件设置里面  变量——游戏数据——队伍  只有8个组员位置。怎么增加?

有能增加队伍总人数的插件,但我也不知道怎么增加游戏自带菜单里的组员位置。
如果你是因为无法得知队伍中第九位队员的ID的话,推荐你个方法,用一个菜单内使用的单体技能打一下你要转职的队员,伤害为0,伤害公式里写v[1]=b._actorId
这样你就把刚被打那个英雄的ID代入1号变量了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2017-3-23
帖子
8
9
 楼主| 发表于 2017-3-31 19:56:32 | 只看该作者
qknight 发表于 2017-3-31 19:53
令1号变量ID的角色转职成2号职业的脚本为:
$gameActors.actor($gameVariables.value(1)).changeClass(2, ...

事件设置里面  变量——游戏数据——队伍  只有8个组员位置。怎么增加?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
352
在线时间
377 小时
注册时间
2013-1-30
帖子
219
8
发表于 2017-3-31 19:53:10 | 只看该作者
lbjqgm008 发表于 2017-3-31 19:46
脚本这个就是不会写。。所以才悬赏


令1号变量ID的角色转职成2号职业的脚本为:
$gameActors.actor($gameVariables.value(1)).changeClass(2,true)
$gameActors.actor($gameVariables.value(1)).changeClass(2,false)
其中一条为转职后重置等级,一条为转职后不重置等级
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2017-3-23
帖子
8
7
 楼主| 发表于 2017-3-31 19:46:11 | 只看该作者
qknight 发表于 2017-3-31 19:38
想要不强制设定队伍第一位的办法也有,比如设计某个单体技能或转职道具,给一个角色使用后临时加个特有状 ...

脚本这个就是不会写。。所以才悬赏
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
352
在线时间
377 小时
注册时间
2013-1-30
帖子
219
6
发表于 2017-3-31 19:38:38 | 只看该作者
lbjqgm008 发表于 2017-3-31 19:33
额。。。这么做太不智能的 只能说实现功能了 但是降低了玩家的体验

想要不强制设定队伍第一位的办法也有,比如设计某个单体技能或转职道具,给一个角色使用后临时加个特有状态,然后分歧得到该状态角色的ID(角色少就直接分歧,角色实在太多就用脚本分歧),其余同4楼
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-9 10:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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