分享创作 回合制战斗 + 冒险游戏

星季工作室 · 2019年09月10日 · 最后由 2045547485 回复于 2019年09月23日 · 227 次阅读

测试链接

'https://www.iwzyx.com/games/5806'

这个游戏虽然不是我做过的游戏里代码最多的,但是是完成度最高的一个。
本来想发图片,但是图片发不出来。。。。。
战斗,商店,背包,存读档,挂机模式基本都已完善。现在还差一些地图和对应的物品就可以收尾完结了。
整个游戏的界面我用的是弹窗来设置,代码如下。
<div class="modal-content">
<span class="close">&times;</span>
<center>
第一行是x号,第二行是弹窗的主体,第三行是将里面的内容全部放到中间。
商店与背包一般游戏都是用表格来表现的,虽然我整不到那么好看,但是也算是个表格。
<table border="1">
<tr>
<td>
一个格子的内容。
</td>
<td>
第二个格子的内容.
</td>
</tr>
<tr>
<td>
第二行第二个格子的内容
</td>
</tr>
为了方便表达我都回行了,实际上在蝶梦编辑器里这些代码得挨在一起,要不然就会造成大量空白.
下面是演示这个表格输出后的样子.
一个格子的内容 第二个格子的内容
第二行第二个格子的内容
存读档这个系统实现起来很简单,但是我那边代码复制得有点多,所以不会全写出来是怎么回事.
首先:我的代码
复制这段链接后读档即可.
读档后只保留账号等级,其余重置,已学习的技能和加点重置为天赋.
温馨提示:链接仅当日有效,读取后链接错误会重置当前档案.
(j)MD.等级*MD.month/2-10(/j)|(j)MD.month*MD.一天*MD.等级/2(/j)|(j)(MD.等级*MD.month)*(MD.一天*MD.等级/2)(/j)|

我通过在主页运行
=:MD.date = new Date(),MD.一天 = date.getDate(),MD.month = date.getMonth() 
代码,随时获取现在的时间.
确定你要给自己的链接加密的算法,就上面那几个加减乘除.
然后读档
(j)MD.a=prompt("请输入链接,不要点击取消,无论取消还是确定都点确定///","000|000|000|")(/j)

=:MD.数字0=MD.a[0],MD.数字1=MD.a[1],MD.数字2=MD.a[2],MD.数字3=MD.a[3],MD.数字4=MD.a[4],MD.数字5=MD.a[5],MD.数字6=MD.a[6],MD.数字7=MD.a[7],MD.数字8=MD.a[8],MD.数字9=MD.a[9],MD.数字10=MD.a[10],MD.数字11=MD.a[11],MD.数字12=MD.a[12],MD.数字13=MD.a[13],MD.数字14=MD.a[14],MD.数字15=MD.a[15],MD.数字16=MD.a[16]
获取玩家输入的1-16个字符,分别保存为数字1-16.

=:MD.读档1=MD.数字0+MD.数字1,MD.读档2=MD.数字0+MD.数字1+MD.数字2,MD.读档3=MD.数字0+MD.数字1+MD.数字2+MD.数字3,MD.读档4=MD.数字0+MD.数字1+MD.数字2+MD.数字3+MD.数字4,MD.读档5=MD.数字0+MD.数字1+MD.数字2+MD.数字3+MD.数字4+MD.数字5,MD.读档6=MD.数字0+MD.数字1+MD.数字2+MD.数字3+MD.数字4+MD.数字5+MD.数字6,MD.读档7=MD.数字0+MD.数字1+MD.数字2+MD.数字3+MD.数字4+MD.数字5+MD.数字6+MD.数字7,MD.读档8=MD.数字0+MD.数字1+MD.数字2+MD.数字3+MD.数字4+MD.数字5+MD.数字6+MD.数字7+MD.数字8
然后排一下顺序,组合起来

=:if(MD.读档1.indexOf("|") > -1) game_jumpto("判断1")
这里我只粘贴了一个,具体怎么操作还看你.
这个代码判断这一串字符串里有没有包括|
说明一下,|是做一个分隔号的作用,你用,.什么的都行.
如果包括|说明这一串就是加密过的账号信息了,为了方便,我只存了账号等级.

=:MD.b=Math.floor(MD.数字0)+10,MD.数字=Math.floor(MD.b*2/MD.month)

=:MD.a=MD.数字2+MD.数字3+MD.数字4+MD.数字5+MD.数字6+MD.数字7+MD.数字8+MD.数字9+MD.数字10+MD.数字11

=:MD.等级=MD.数字

判断完后来到判断1,首先把开始我们用于加密的算式倒推出来,必须用Math.floor(任意数字或MD)算一遍,这个方法是遇到小数时无论后面是多少都直接砍掉,比如1.999.
运算过程中除了会遇上小数之外还是因为我们开始存储的字符根本不是数字,要判定他为数字必须这么过一遍.

第二行继续组成名a的字符串,因为我们后面还有两串字符串,这两串字符串用以双层加密

然后按照上面的方法过一遍,如果三个字符串都等于我们读档所给的链接,那么就对了,读档成功.具体可以看一下我的测试连接.

目前存读档我没有找到更好的方式,就这样.

<span id='gtBtn3' data-tp='b'><a class='btn btn-default' id='b' onclick='bfunction()'>按钮名称</a></span></th></tr></tbody></table>

=: function bfunction()  {game_jumpto(MD.记录=1);}

=:if(MD.记录==0)game_jumpto("跳转的段落")
这是蝶梦的按钮代码,我们使用
[段落名]
[|]
内容
:1|
:段落2
[段落2]

的方式可以进行一组动画,无需玩家点击就可以跳转到相应段落.
这个过程中如果你需要玩家在进行这组动画时也可以点击按钮就需要上面的代码了
使用这个代码个人感觉可以组一个别踩黑块and钢琴块出来,没玩过的就2333.

=:if(MD.怪物血量 <= MD.怪物血量1/10*10) game_jumpto(MD.怪物血条="(5)||||||||||(/5)");if(MD.怪物血量 <= MD.怪物血量1/10*9) game_jumpto(MD.怪物血条="(1)|(/1)(5)|||||||||(/5)");if(MD.怪物血量 <= MD.怪物血量1/10*8) game_jumpto(MD.怪物血条="(1)||(/1)(5)||||||||(/5)");if(MD.怪物血量 <= MD.怪物血量1/10*7) game_jumpto(MD.怪物血条="(1)|||(/1)(5)|||||||(/5)");if(MD.怪物血量 <= MD.怪物血量1/10*6) game_jumpto(MD.怪物血条="(1)||||(/1)(5)||||||(/5)");if(MD.怪物血量 <= MD.怪物血量1/10*5) game_jumpto(MD.怪物血条="(1)|||||(/1)(5)|||||(/5)");if(MD.怪物血量 <= MD.怪物血量1/10*4) game_jumpto(MD.怪物血条="(1)||||||(/1)(5)||||(/5)");if(MD.怪物血量 <= MD.怪物血量1/10*3) game_jumpto(MD.怪物血条="(1)|||||||(/1)(5)|||(/5)");if(MD.怪物血量 <= MD.怪物血量1/10*2) game_jumpto(MD.怪物血条="(1)||||||||(/1)(5)||(/5)");if(MD.怪物血量 <= MD.怪物血量1/10*1) game_jumpto(MD.怪物血条="(1)|||||||||(/1)(5)|(/5)")

=:if(MD.生命1 <= MD.生命/10*10) game_jumpto(MD.玩家血条="(5)||||||||||(/5)");if(MD.生命1 <= MD.生命/10*9) game_jumpto(MD.玩家血条="(1)|(/1)(5)|||||||||(/5)");if(MD.生命1 <= MD.生命/10*8) game_jumpto(MD.玩家血条="(1)||(/1)(5)||||||||(/5)");if(MD.生命1 <= MD.生命/10*7) game_jumpto(MD.玩家血条="(1)|||(/1)(5)|||||||(/5)");if(MD.生命1 <= MD.生命/10*6) game_jumpto(MD.玩家血条="(1)||||(/1)(5)||||||(/5)");if(MD.生命1 <= MD.生命/10*5) game_jumpto(MD.玩家血条="(1)|||||(/1)(5)|||||(/5)");if(MD.生命1 <= MD.生命/10*4) game_jumpto(MD.玩家血条="(1)||||||(/1)(5)||||(/5)");if(MD.生命1 <= MD.生命/10*3) game_jumpto(MD.玩家血条="(1)|||||||(/1)(5)|||(/5)");if(MD.生命1 <= MD.生命/10*2) game_jumpto(MD.玩家血条="(1)||||||||(/1)(5)||(/5)");if(MD.生命1 <= MD.生命/10*1) game_jumpto(MD.玩家血条="(1)|||||||||(/1)(5)|(/5)")

这个是一个假的血条,但是也有用,可以更直观地看成你与对方的胜负.

当一方血量低于自己原本的血量的10/1时减一个格子,然后那一个格子变成灰色.
替换一下文本就能使用.或者有什么更好的想法.

那我就溜了,放眼望去我水了好多帖子.有问题请留言,存读档整不明白就别整了,虽然代码简单,但是可以绕晕人.

共收到 4 条回复
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册