分享发现 「伪·物品栏相关的制作」

davidhd · 2017年03月15日 · 最后由 davidhd 回复于 2017年03月15日 · 2514 次阅读
本帖已被设为精华帖!

米娜桑!没错,这里又是在下HD是也。(其实也就发了一贴哪里来的又)

于是,仍然是在制作游戏的时候,自己想出了这个在相关功能没有推出之前的「物品栏」功能。

所以,对于各位拥有强大逻辑的大大们,我也不废话了,图看得懂的话就不用看下面的解释了。(虽然我很怀疑大家应该都已经知道了这样的做法,但是仍然是抛砖引玉地发出来好了。如果有更好的方法的话拜托告诉我吧orz。

没错很简单吧。。其实就是对于「条件判断」和「数值增建」这两个功能的应用。如果没有看懂的话欢迎留言我再解释诶嘿(好懒)

不论如何,这里还是要提一下关于这个逻辑的进阶:「隐藏对话」。注意:要实现该部分需要相当数量的文字

除了<攻击力>之外,如果需要设置很多的物品的话,还可以添加<剑的数量><法术的数量>或<重量>等数值变换(还有<好感度>之类。。以此类推)。因此,当能够进行「条件变换」的时候,只要按照不同的数值写出特定的对话,就可以做到「隐藏对话」和「隐藏结局」这些可以做成彩蛋或福利的功能啦!

(比如偷懒如我,在自己仍在施工中的游戏中就直接设置了「隐藏对话」这个数值2333)

另外,如果需要区分诸如「是否拥有「长剑」或「短剑」或「两者都有」」这样子有三种以上情况的时候(物品一多这种情况很容易出现)就比较麻烦了。我的建议是,将这些同样类别(意思就是影响同一个数值)的物品设置成不同的数值。换言之,「长剑」可以为3,「短剑」为1,这样根据判断数值是分别为1,3和4就可以完成三种不同情况的支线。

但是由于我不清楚这个平台的制作游戏功能在「增减数值」的代码上究竟是「在某数值上增加X」还是「将某数值设置为X」。。所以,在上面这样有两个和以上同样类别的物品的时候保险起见用的就是比较麻烦的办法。(如下图)

在这里,将「先前已经有其他物品」和「先前没有其他物品」这两个状况分别作判断,虽然字数会增加很多,但是保险一点。

(不过话说回来@admin 如果能告诉我一下到底是增减数值还是设置数值就太好了。)

这里倒不是再说大家可能不会这个功能,只是看见平台上好像目前都没出现过相关的应用,且真正的物品栏功能还没投入开发的时候在这里举个代替的方法以供参考。。恩。

如果有什么需要补充的欢迎留言。我一不小心又说多了2333 谢谢能耐心读完的大家。

————————————————————————————————————————————

文末忠告

对于那些摩拳擦掌准备好好利用这个新玩法的各位,我的忠告是,不要设置太多的物品(事实上,对于一万字左右的规模而言,两个都算太多。。以此类推,或许两万字两个同类物品比较合适。)。

尤其不要放太多同一个类型(影响同样数值)的物品。(简直是血的教训)

原因如下。 仍然是和武器有关的举例。

你设置了两个物品「短剑」和「匕首」,影响的数值是<攻击力>:「短剑」是<3>,「匕首」是<1>

由于你不会无聊到让玩家同时得到这两个物品(不然你设置两次同样数值的增建的意义何在),我们就让玩家按照短剑和匕首的顺序获得吧。

于是,如果在遇到短剑之后和匕首之后碰到一个相关的剧情(比如遇到小怪)的话,就有以下几种可能:

1. 玩家短剑和匕首都没拿,徒手(数值为<0>) 2. 玩家拿了短剑没拿匕首<3> 3. 玩家拿了匕首没拿短剑<1> 4. 玩家拿了短剑和匕首<4>

这四种。看起来不多,但是如果你要为这四种都写上不同的对话的话,就会积少成多了。

毕竟,如果你加进了这种功能,如果也只让玩家打一次小怪也太不划算了。于是就有了第二次,第三次,第四次。。

如果有学过排列组合的就会知道,随着物品数量的增加工作量的增长可不是闹着玩的。

以上desu。希望看到大家更好的作品。

共收到 9 条回复

速度真快!正在测试相关功能,花了一晚上才把道具罗列好,还没开始计算判定。

  • 如何增减以及显示数值
    • 增减数值代码: >: MD.数值名称 -= 1; >: MD.数值名称 += 1;
    • 显示是否有数值名称代码: (j)if(MD.数值名称) '我现在有' + MD.数值名称 + '个数值名称'; else '没有数值名称';(/j)
    • 根据属性不同开启隐藏剧情:>: MD.数值名称 +=1; if (MD.数值名称 >= 自定义数量) game_jumpto('想跳转的段落');
    • 调用数值数量代码: (j)MD.数值名称(/j)
  • 可用代码片段如下 ``` 走在路上遇到一个苹果树 选:摘一个苹果 >: MD.苹果 = 1; 选:继续向前走

我继续向前走,又遇到一个苹果树 选:再摘一个苹果

: if(MD.苹果) MD.苹果 += 1; else MD.苹果=1; 选:继续向前走

我饿了,但(j)if(MD.苹果) '我现在有' + MD.苹果 + '个苹果'; else '我没有苹果,继续饿着';(/j) 选:吃一个苹果 <: if (! MD.苹果 ) curBtn = null;

: MD.苹果 -= 1; MD.吃=1; 选:不吃

[吃一个苹果] 我还是饿,我还剩下(j)MD.苹果(/j)个苹果。 选:再吃一个 <: if (! MD.苹果 ) curBtn = null;

: MD.吃 +=1; if (MD.吃 >= 2) game_jumpto('我吃饱了'); 选:不吃

[不吃] 我饿了一路

失败:饿死啦

[我吃饱了] 我吃饱了

成功:我吃饱了,共吃了(j)MD.吃(/j)个苹果

#2楼 @admin 哦哦原来如此!真是非常感谢! 顺便这次的也精了诶嘿XD 同样谢谢啦

#4楼 @admin 哦哦!看到了好多很有意思的新功能啊!赞诶!

#4楼 @admin 话说话说话说回来!关于那个猜拳的功能是随机变量吗?!!如果是的话,发布之后我也许能够用来做成RPG游戏里常见的对战系统(回合制)诶!!

#6楼 @davidhd 我也想做RPG诶

赞美大大!!!【啊大大的技巧都好实用!!关注关注!!【顺便想问问大大觉得有什么方法可以做出那种周目设定的效果吗,就是把游戏通关一次后再来二周目可以刷出新剧情那种!好像可以实现但是自己的构想有féi些cháng繁琐…

#8楼 @coronashine 周目设定。。我在自己(仍在施工中)的设计里的做法是设置很多条隐藏对话和支线等等。。 比如,「拿了这个物品就可以触发这个对话,但是没拿可以触发那个」这样 —— 所以如果想要看到完整的剧情就要玩很多周目!(以及被叫大大了诶嘿好高兴)

10楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册