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

Project1

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

[已经解决] 请问怎么制作养成的日历系统?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
146
在线时间
42 小时
注册时间
2006-7-19
帖子
19
跳转到指定楼层
1
发表于 2011-3-8 18:15:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 jflove 于 2011-3-12 22:41 编辑

虽然有看过一些新手教学但还是懵懵懂懂orz... 只知道些基本的, 写一个新的东西完全超乎我的能力范围T口T 请求帮助~~
我想要的是像:

1."30X年X月X日"显示在金钱数上方, 然后人物状态里增加"年龄"一栏.
2. 年的数值增1时年龄也增1(废话= =a), 年月日如果能不要单纯的30进位和12进位, 加上大小月和闰年的判读就好了 (不过如果太复杂就前者也可以啦...)
3. 年月日前进到特定数值时会发生事件
4. 每个任务都有的特定的需求天数, 完成后就会增加那些天数(用这方法让时间前进).
EX. 砍柴任务要花上10天, 去森林打完怪后回来交任务, 日增加10. (理想的当然是靠任务进行的百分比来增加日子, 像是做了一半就过了5天, 但那听起来就太难了orz 还是直接获得日子就好了...)

底下是选用方案, 就是我很想要加入, 但好像太难了的东西:
5. 玩家可以决定自己的生日和主角的生日, 然后游戏就从主角生日开始. 两人的生日都会发生特殊事件. (这部分和3很像, 只是特定数值改为输入的变数?)
6. 星座判定... 玩家和主角的星座会影响主角能力值和好感度.

抱歉写了一堆orz 其实最重要的只是前三项而已! 希望大家帮帮忙, 这是游戏最关键的部分啊>"<...

点评

美少女梦工厂?只不过是一堆变量而已嘛.......好吧,我只是说说.......  发表于 2011-3-8 18:35

Lv1.梦旅人

百合乡の蕾咪

梦石
0
星屑
55
在线时间
151 小时
注册时间
2011-1-12
帖子
198
2
发表于 2011-3-8 18:40:49 | 只看该作者
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
146
在线时间
42 小时
注册时间
2006-7-19
帖子
19
3
 楼主| 发表于 2011-3-8 20:26:13 | 只看该作者
谢谢回答, 我研究看看... 这个是照真实时间流逝... 老实说我没啥修改头绪@@
应该就是删... 掉一些东西...吧...

没错, 就是一切都是变量orz 啊啊... 好难T口T
我很喜欢美少女梦工厂的一些设定, 是养成游戏中的经典嘛~ 但游戏内容完全不同... 基本上还是RPG啦, 只是加入主角的培养选择和剧情分支. 我比较喜欢写文案设定orz 语法很烂...

点评

啊! 所以我需要得其实是增加新货币+自动转换货币系统! 站上的脚本好像都是在商店才能转换...  发表于 2011-3-8 21:38
但我的时间不是自动流逝而是做完任务才会"得到"时间, 所以其实反而比较像货币系统的变型... 30天自动换1个月, 12个月换1年这样... 像是WOW的铜银金币.   发表于 2011-3-8 21:33
流失速度什么的都是可以调节的, 时间控制也是可以自定义的. 在说, 有特定时间出现特定事件也是可以实现的. 定时器依旧可以自定义~~~  发表于 2011-3-8 21:19
回复 支持 反对

使用道具 举报

Lv1.梦旅人

百合乡の蕾咪

梦石
0
星屑
55
在线时间
151 小时
注册时间
2011-1-12
帖子
198
4
发表于 2011-3-8 22:10:03 | 只看该作者
1. 我说的流逝速度可以调节, 包含时间停止.
2. 货币的话, 搜索 "货币" 就可以.
3. 显示的话, 记得有啥帖子里有一个显示变量还是什么的~~~

点评

我有搜到貨幣腳本, 但都不是"自動"轉換的, 唯一一個比較類似的, 套用上卻發現有問題. ex.100銅1銀, 因此得到200銅後應該要自動顯示2銀, 卻變成2銀200銅   发表于 2011-3-8 23:31
嗯, 但我不會增加他的時間, 因為他的時間是用計時器算的... 所以我用了他的框架想辦法把時間換成簡單的三個變量, 但我不會寫換算...  发表于 2011-3-8 23:26
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
146
在线时间
42 小时
注册时间
2006-7-19
帖子
19
5
 楼主| 发表于 2011-3-9 00:58:00 | 只看该作者
本帖最后由 jflove 于 2011-3-9 01:02 编辑

我改好了!! orz 把两脚本拼在一起... 只修改了算法>"<
这样应该可以了...吧...
有空的大大可以帮我看看有没有错, 我真的很弱orz

-----------------------------------
module Time_byz
  
  WINDOW_X = 0
  WINDOW_Y = 0
  
end
#==============================================================================
#==============================================================================
class Window_Byz_Time < Window_Base
#------------------------------------------------------------------------------
#  调试画面、个别显示开关及变量的窗口。
#==============================================================================
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     x      : 窗口 X 座标
  #     y      : 窗口 Y 座标
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 160, 57);
    refresh;
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def time(n)
    year = n/365
    month = (n%365)/30
    day = (n%365)%30
    return year, month, day
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    main_time = time($game_variables[3])
    text = main_time[2].to_s + "日"
    text = main_time[1].to_s + "月" + text if main_time[1] > 0 and main_time[0] > 0
    text = main_time[0].to_s + "年" + text if main_time[0] > 0
   self.contents.draw_text(0, 0, 105, WLH, text, 2);
   $game_variables[1] = main_time[0]
   $game_variables[2] = main_time[1]
  end
end

#這兩行是我自己加的, 用來指定年月為變數1和變數2, 這樣我之後比較好做事件... 這樣寫可以嗎? #==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
#  处理地图画面的类。
#==============================================================================

class Scene_Map < Scene_Base
  
  alias old_start start
  #--------------------------------------------------------------------------
  # ● 开始处理
  #--------------------------------------------------------------------------
  def start
    old_start;
    @time_window = Window_Byz_Time.new(Time_byz::WINDOW_X, Time_byz::WINDOW_Y);
  end
  alias old_terminate terminate
  #--------------------------------------------------------------------------
  # ● 结束处理
  #--------------------------------------------------------------------------
  def terminate
    old_terminate;
    @time_window.dispose;
  end
  alias old_update update
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    old_update;
    @time_window.refresh;
  end
end
回复 支持 反对

使用道具 举报

Lv1.梦旅人

百合乡の蕾咪

梦石
0
星屑
55
在线时间
151 小时
注册时间
2011-1-12
帖子
198
6
发表于 2011-3-9 16:22:17 | 只看该作者
本帖最后由 蕾米莉亚·斯卡雷特 于 2011-3-9 16:23 编辑

基本是一样的, 只是小小的修改了一下脚本.

工程: Project1.rar (239.77 KB, 下载次数: 235)

脚本如下:

  1. #===============================================================================
  2. # ■ 简易养成时间系统
  3. #-------------------------------------------------------------------------------
  4. #    脚本说明及使用方法
  5. #   
  6. #-------------------------------------------------------------------------------
  7. #    更新作者: 蕾米莉亚·斯卡雷特
  8. #    许可协议: NCP NAM STS
  9. #    项目版本: 1.0.20110309
  10. #    引用网址: 脚本发布帖网址等(用于获取最新的脚本)
  11. #-------------------------------------------------------------------------------
  12. #    - 1.0.20110309  By 蕾米莉亚·斯卡雷特
  13. #      * 基本脚本组建
  14. #
  15. #===============================================================================
  16. $fscript = {} if $fscript == nil
  17. $fscript["Remilia Time"] = "1.0.20110309"

  18. #-------------------------------------------------------------------------------
  19. # ▼ 通用配置模块
  20. #-------------------------------------------------------------------------------
  21. module FSL
  22.   module Remilia_Time
  23.     # 事件定义
  24.     # 说明:
  25.     # 1. 事件使用的是 公共事件
  26.     # 2. 如果某个点填写的是 0 的话, 就是忽略其设定.
  27.     #    比如 [28,02,0] 在将年设定成 0, 就是忽略年这个定义, 只要是 2月28日 就会触发公共事件.
  28.     TIME_EVENT = {
  29.     # [日,月,  年] => [公共事件ID]
  30.       [7,  1,   0] => 1,
  31.     }
  32.   end
  33. end

  34. class Game_System
  35.   include FSL::Remilia_Time
  36.   #--------------------------------------------------------------------------
  37.   # ● 定义实例变量
  38.   #--------------------------------------------------------------------------  
  39.   attr_accessor :time_now
  40.   attr_accessor :byz_timer
  41.   attr_accessor :run_bool
  42.   #--------------------------------------------------------------------------
  43.   # ● 初始化对像
  44.   #--------------------------------------------------------------------------  
  45.   alias :remilia_initialize :initialize
  46.   def initialize
  47.     @time_now = Time.local(2012, 1, 6, 10, 10, 10);
  48.     @byz_timer = []
  49.     @run_bool = false # 当天时间启动标志
  50.     remilia_initialize
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● 增加时间
  54.   #--------------------------------------------------------------------------  
  55.   def add_time(day)
  56.     @time_now += day * 24 * 60 * 60
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 设定时间计时器
  60.   #--------------------------------------------------------------------------  
  61.   def set_byz_timer(id)
  62.     @byz_timer[id] = @time_now
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 计算时间(秒数)
  66.   #--------------------------------------------------------------------------
  67.   def after_time(id)
  68.     return 0 if @byz_timer[id] == nil
  69.     return @time_now - @byz_timer[id]
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 格式化时间
  73.   #--------------------------------------------------------------------------
  74.   def sprintf_time
  75.     time = [@time_now.mday, @time_now.mon, @time_now.year]
  76.     return_time = []
  77.     return_time << time
  78.     [[0], [1], [2], [0, 1], [0, 2], [1, 2]].each do |a1|
  79.       a1.each do |n|
  80.         @time_l = time.clone
  81.         @time_l[n] = 0
  82.       end
  83.       return_time << @time_l
  84.     end
  85.     return_time
  86.   end
  87.   #--------------------------------------------------------------------------
  88.   # ● 启动事件
  89.   #--------------------------------------------------------------------------
  90.   def event_run
  91.     return if @run_bool
  92.     array = TIME_EVENT.keys & sprintf_time
  93.     if !array.empty?
  94.       unless !$scene.is_a?(Scene_Map) or $game_message.visible or $game_temp.in_battle
  95.         $game_temp.common_event_id = TIME_EVENT[array[0]]
  96.         @run_bool = true
  97.       end
  98.     end
  99.   end
  100. end

  101. #==============================================================================
  102. # ■ Game_Party
  103. #------------------------------------------------------------------------------
  104. #  处理同伴的类。包含金钱以及物品的信息。本类的实例请参考 $game_party。
  105. #==============================================================================

  106. class Game_Party < Game_Unit
  107.   alias :remilia_initialize :initialize
  108.   def initialize
  109.     @birthday = Time.local(1992, 1, 7, 5, 4, 3)
  110.     remilia_initialize
  111.   end
  112.   def age
  113.     @age = $game_system.time_now.year - @birthday.year
  114.     if $game_system.time_now.mon >= @birthday.mon and $game_system.time_now.mday >= @birthday.mday
  115.       @age += 1
  116.     end
  117.     @age
  118.   end
  119. end

  120. #==============================================================================
  121. # ■ Window_Time
  122. #------------------------------------------------------------------------------
  123. #  处理地图显示时间窗口的类。
  124. #==============================================================================

  125. class Window_Time < Window_Base
  126.   def initialize
  127.     super(0, 0, 170, 87)
  128.     @old_time = $game_system.time_now - 1
  129.     refresh
  130.   end
  131.   
  132.   def refresh
  133.     $game_system.event_run
  134.     if @old_time == $game_system.time_now
  135.       return;
  136.     end
  137.     @old_time = $game_system.time_now
  138.     self.contents.clear
  139.     text = "年龄:" + $game_party.age.to_s
  140.     self.contents.draw_text(0, 32, 105, WLH, text, 2)
  141.     text = $game_system.time_now.strftime("%Y年%m月%d日")
  142.     self.contents.draw_text(0, 0, 170, WLH, text)
  143.     $game_system.run_bool = false
  144.    
  145.   end
  146. end

  147.    
  148. #==============================================================================
  149. # ■ Scene_Map
  150. #------------------------------------------------------------------------------
  151. #  处理地图画面的类。
  152. #==============================================================================

  153. class Scene_Map < Scene_Base
  154.   #--------------------------------------------------------------------------
  155.   # ● 开始处理
  156.   #--------------------------------------------------------------------------
  157.   alias :remilia_start      :start
  158.   alias :remilia_terminate  :terminate
  159.   alias :remilia_update     :update
  160.   def start
  161.     @remilia_time_window = Window_Time.new
  162.     remilia_start
  163.   end
  164.   
  165.   def terminate
  166.     @remilia_time_window.dispose
  167.     remilia_start
  168.    
  169.   end
  170.   
  171.   def update
  172.     @remilia_time_window.refresh
  173.     remilia_update
  174.   end
  175. end

复制代码
截图什么的, 一样的:

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
铃仙·优昙华院·因幡 + 200 + 2 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
686
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

7
发表于 2011-3-9 21:01:30 | 只看该作者
记得云姐发过时间脚本啊

点评

就是 LS 的那个了, 只是咱修改了一下了.  发表于 2011-3-9 23:44
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
146
在线时间
42 小时
注册时间
2006-7-19
帖子
19
8
 楼主| 发表于 2011-3-12 22:38:56 | 只看该作者
本帖最后由 jflove 于 2011-3-12 22:41 编辑

谢谢! 真是修改的简单漂亮!!! 我还是只会剪剪贴贴而已orz...

点评

咱就是 6楼 了.  发表于 2011-3-12 23:45
6楼亲帮忙改的, 还有附工程, 很细心~  发表于 2011-3-12 23:42
话说 LZ 认可谁??  发表于 2011-3-12 23:23
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-29 11:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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