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

Project1

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

[原创发布] [不是创意的创意]灼眼夏娜的10s脚本的一些小改进[12/29更新]

 关闭 [复制链接]

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

跳转到指定楼层
1
发表于 2009-8-28 11:54:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 精灵使者 于 2009-12-29 21:26 编辑

以前的10s脚本用着很顺手,给大家带来了福音。但是精灵测试依然会随机出现hangup的错误,而且容易出错……
http://rpg.blue/web/index.php?doc-view-4285
这是以前的传送门。
它其中的这段
  1. class << Graphics

  2. alias origin_update update unless method_defined? :origin_update

  3. def update
  4.   Thread.critical = true
  5.   origin_update
  6.   Thread.critical = false
  7. end

  8. end
复制代码
只注重了update的防止冲突工作,而精灵发现的hangup结果大多数都是出现在installize和dispose下……
莫非……根据ProfessionR的提醒,transition,freeze,还有update是graphics的三部分……
而在transition阶段的时候如果执行update,肯定会死机或者报错……
解决办法如下:
紧急修正一个死循环的错误恩……
  1. class << Graphics
  2. @@frozen = false
  3. alias origin_update update unless method_defined? :origin_update
  4. alias origin_transition transition unless method_defined? :origin_transition

  5. def update
  6.   @@frozen = true
  7.   origin_update
  8.   @@frozen = false
  9. end
  10. def transition(*args)
  11.   @@frozen = true
  12.   origin_transition(*args)
  13.   @@frozen = false
  14. end
  15. def frozen_plus
  16.     return @@frozen
  17. end
  18. end
  19. if @update_thread.nil?
  20. @update_thread = Thread.new{loop{Graphics.update if !Graphics.frozen_plus ;
  21. sleep(9)}}
  22. end
复制代码
精灵刚刚才发现的新版本……
  1. if @update_thread.nil?
  2. @update_thread = Thread.new{loop{Graphics.update;sleep(9)}}
  3. end
  4. class << Graphics
  5. alias origin_update update unless method_defined? :origin_update
  6. alias origin_transition transition unless method_defined? :origin_transition
  7. alias origin_freeze freeze unless method_defined? :origin_freeze

  8. def update
  9.   Thread.critical = true
  10.   origin_update
  11.   Thread.critical = false
  12. end
  13. def transition(*args)
  14.   Thread.critical = true
  15.   origin_transition(*args)
  16.   Thread.critical = false
  17. end
  18. def freeze
  19.   Thread.critical = true
  20.   origin_freeze
  21.   Thread.critical = false
  22. end
  23. end
复制代码
这样做是不是更加简洁一点……不过这两段脚本原理都有异曲同工之妙,希望大家任意选用。

Lv1.梦旅人


梦石
0
星屑
89
在线时间
24 小时
注册时间
2006-5-27
帖子
11425

贵宾

2
发表于 2009-8-28 11:58:14 | 只看该作者
其实……很多人都不会用那个夏娜10秒- -b
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

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

开拓者贵宾

3
发表于 2009-8-28 12:13:11 | 只看该作者
其实……我是路过的……把难听的话藏起来
杞人忧天。
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

4
 楼主| 发表于 2009-8-28 12:23:01 | 只看该作者
现在发现,graphic是个module类,如何判断graphic正在translation或者freeze阶段呢?
graphic.frozen?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1195
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

5
发表于 2009-8-28 15:06:26 | 只看该作者
夏娜的10s对高手有用,特别是要利用RM搞恶作剧的。

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv1.梦旅人

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
帖子
995

贵宾

6
发表于 2009-8-28 15:08:53 | 只看该作者
为什么我不会举起???
我就闲了个图片
然后不断在某个文件夹里生成垃圾文件
都不会hang up?
就算痛也要做,宅必备宅人的必备网站
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

7
 楼主| 发表于 2009-8-28 15:17:51 | 只看该作者
本帖最后由 精灵使者 于 2009-9-2 11:46 编辑

你是否打开了啥文件= =
或者那个图片的路径是否正确。
经精灵验证,Graphics.freeze后面可以update,Graphics.transition期间不能update,否则会报错……
于是在ImaI的大力帮助下将其改为了这样:
  1. class << Graphics
  2. @@frozen = false
  3. alias origin_update update unless method_defined? :origin_update
  4. alias origin_transition transition unless defined? origin_transition

  5. def update
  6.   Thread.critical = true
  7.   origin_update
  8.   Thread.critical = false
  9. end
  10. def transition(*args)
  11.   @@frozen = true
  12.   origin_transition(*args)
  13.   @@frozen = false
  14. end
  15. def frozen_plus
  16.     return @@frozen
  17. end
  18. end
  19. if @update_thread.nil?
  20. @update_thread = Thread.new{loop{Graphics.update if !Graphics.frozen_plus ;
  21. sleep(9)}}
  22. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
帖子
995

贵宾

8
发表于 2009-8-28 15:24:46 | 只看该作者
我做了个类病毒的东东
我都不会hand up
就算痛也要做,宅必备宅人的必备网站
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
128 小时
注册时间
2009-1-28
帖子
2790
9
发表于 2009-8-28 15:29:56 | 只看该作者
都是脚本高手,支持下

炼金术的根本法则是等价交换。想要获得,必须失去同等价值的东西。每当烦躁的时候,煎熬在不想做却又正在做的烦心事中的时候,我就安慰自己,提醒自己做这些事情的目的所在,告诉自己不要忽略所获得或者即将获得的回报,物质的,精神的,肉体的,灵魂的回报!只做想做的事情,就会失去不想失去的东西。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

10
发表于 2009-8-28 15:56:36 | 只看该作者
大游戏才有用吧……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-24 21:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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