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

Project1

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

[已经解决] 问一句脚本写法

 关闭 [复制链接]

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
跳转到指定楼层
1
发表于 2009-7-4 11:24:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如果当前1号公共事件正在运行,用脚本怎么写?
囡囚囨囚囨図囨囧

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

2
发表于 2009-7-4 11:29:19 | 只看该作者
很好奇的问一下,是不是并行事件……不然的话脚本里要做手脚
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
3
 楼主| 发表于 2009-7-4 11:41:50 | 只看该作者
本帖最后由 幻耶 于 2009-7-4 11:43 编辑

是ARPG。。我把攻击敌人的处理放在公共事件里了,比如主角如果打中1号敌人事件就调用1号公共事件,不是并行的,我想在脚本里添加:如果当前命中了几号敌人(也就是正在调用几号公共事件),就进行一些别的判断处理,比如敌人的属性对主角武器的抗性什么的。。。
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6875
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

4
发表于 2009-7-4 11:49:54 | 只看该作者
在这类公共事件的开头打开一个对应的开关
然后在这个公共事件的最后关闭这个对应的开关

判断这个开关的状态即可











你知道得太多了

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
5
 楼主| 发表于 2009-7-4 12:38:50 | 只看该作者
本帖最后由 幻耶 于 2009-7-4 12:48 编辑

我是在公共事件里加一个变量赋值:打中1号敌人事件5号变量=1,打中2号敌人事件5号变量=2。。。。。。这样指定在脚本里直接一个一个指定编号没问题,如下。但是来个FOR循环怎么就没效果了?不用循环要写很长了。。

     if $game_variables[5] == 2 and $game_map.events[2].name.include?("f")
       $game_variables[36] = (wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i)/2
     elsif $game_variables[5] == 2 and $game_map.events[2].name.include?("h")
       $game_variables[36] = 0
     elsif $game_variables[5] == 2 and $game_map.events[2].name.include?("t")
       $game_variables[36] = (wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i)*2
     else
       $game_variables[36] = wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i
     end




   for i in 1..20
     if $game_variables[5] == i and $game_map.events.name.include?("f")
       $game_variables[36] = (wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i)/2
     elsif $game_variables[5] == i and $game_map.events.name.include?("h")
       $game_variables[36] = 0
     elsif $game_variables[5] == i and $game_map.events.name.include?("t")
       $game_variables[36] = (wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i)*2
     else
       $game_variables[36] = wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i
     end
   end
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

6
发表于 2009-7-4 13:07:40 | 只看该作者
本帖最后由 IamI 于 2009-7-4 13:09 编辑
本帖最后由 幻耶 于 2009-7-4 12:48 编辑
     if $game_variables[5] == 2 and $game_map.events[2].name.include?("f")
       $game_variables[36] = (wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i)/2
     elsif $game_variables[5] == 2 and $game_map.events[2].name.include?("h")
       $game_variables[36] = 0
     elsif $game_variables[5] == 2 and $game_map.events[2].name.include?("t")
       $game_variables[36] = (wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i)*2
     else
       $game_variables[36] = wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i
     end




   for i in 1..20
     if $game_variables[5] == i and $game_map.events【i】.name.include?("f")
       $game_variables[36] = (wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i)/2
     elsif $game_variables[5] == i and $game_map.events.name.include?("h")
       $game_variables[36] = 0
     elsif $game_variables[5] == i and $game_map.events.name.include?("t")
       $game_variables[36] = (wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i)*2
     else
       $game_variables[36] = wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i
     end
   end

下面给我【i】(请将中括号改成英文输入法的)统统套上去
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
7
 楼主| 发表于 2009-7-4 14:12:19 | 只看该作者
本帖最后由 幻耶 于 2009-7-4 14:14 编辑

写成下面这样??也没用,不管敌人事件的名字里有什么字母"f"、"h"、"t",变量36得出的结果总是条件分歧的最后一个:$game_variables[36] = wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i
但是把事件编号直接套进去就会有不同的效果,奇怪



   for i in 1..20
     if $game_variables[5] == i and $game_map.events.name.include?("f")
       $game_variables[36] = (wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i)/2
     elsif $game_variables[5] == i and $game_map.events.name.include?("h")
       $game_variables[36] = 0
     elsif $game_variables[5] == i and $game_map.events.name.include?("t")
       $game_variables[36] = (wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i)*2
     else
       $game_variables[36] = wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i
     end
   end
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6875
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

8
发表于 2009-7-4 14:54:16 | 只看该作者
本帖最后由 后知后觉 于 2009-7-4 14:56 编辑

检查你的脚本里是否有地方对 事件的名字进行过 split

又或者是对事件名字进行过特殊的处理











你知道得太多了

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
9
 楼主| 发表于 2009-7-4 14:57:47 | 只看该作者
事件的名字是这么起的:   敌人2,4800,4800,150,60,120,80,50,f      
分别对应HP,MAXHP,攻击,魔力。。。等等,这个有关系么?

公共事件里伤害的计算:
name = $game_map.events[2].name
data = name.split(/,/)
data[1]=data[1].to_i-[$game_party.actors[
0].atk-data[5].to_i/2, 1].max * (
50+$game_party.actors[0].str)/50-[
$game_variables[39]*10-data[6].to_i/2, 0].
max*(50+$game_party.actors[0].int)/50
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6875
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

10
发表于 2009-7-4 15:43:53 | 只看该作者
本帖最后由 后知后觉 于 2009-7-4 15:45 编辑

for i in 1..20
     if $game_variables[5] == i and $game_map.events【i】.name.include?("f")
       $game_variables[36] = (wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i)/2
      break
     elsif $game_variables[5] == i and $game_map.events.name.include?("h")
       $game_variables[36] = 0
      break
     elsif $game_variables[5] == i and $game_map.events.name.include?("t")
       $game_variables[36] = (wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i)*2
      break
     else
       $game_variables[36] = wf.to_i+wfk1.to_i+wfk2.to_i+wfk3.to_i
     end
   end

当条件满足后就要用 break来跳出循环
比如当前执行到2 条件满足 操作以后就要跳出for循环
不然就要进行3的判断 这个时候 条件不满足但是又有个else所有就执行了else里的东西











你知道得太多了

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-27 08:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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