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

Project1

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

[已经解决] 每日脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
87 小时
注册时间
2013-7-11
帖子
100
跳转到指定楼层
1
发表于 2013-9-18 22:42:07 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 540486098 于 2013-10-4 16:05 编辑

请求一个每日礼包脚本,就像网游中的每天领一次,至于时间可以自己设定。

Lv1.梦旅人

巫女会长

梦石
0
星屑
60
在线时间
1028 小时
注册时间
2009-10-24
帖子
3470

贵宾

14
发表于 2013-11-25 10:37:37 | 只看该作者
其实可以根据游戏时间来设定,游戏经过多少时间自动领取。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
243
在线时间
341 小时
注册时间
2010-9-5
帖子
70
13
发表于 2013-11-25 09:06:43 | 只看该作者
喵呜喵5 发表于 2013-9-30 15:44

您好  我使用了这个每日礼包系统脚本 发现领取礼包后的时间判断是没问题的
但是存档退出游戏 再进入游戏后 每日礼包就又能领取了

点评

脚本已修正  发表于 2013-11-25 13:16
点击即可领养:
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1457
在线时间
892 小时
注册时间
2011-3-4
帖子
839
12
发表于 2013-9-30 15:56:22 | 只看该作者
做个定时器的公共事件,到十五分钟开个开关。
全民制作人们,大家好,我是练习时长两年半的黄油制作人绿坝,喜欢唱、跳、rap、篮球,music!欢迎加群:107335249
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21616
在线时间
9412 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

11
发表于 2013-9-30 15:44:46 | 只看该作者
本帖最后由 喵呜喵5 于 2013-11-25 13:44 编辑
  1. =begin
  2. ===============================================================================
  3.   礼包系统 By喵呜喵5
  4. ===============================================================================

  5. 【说明】
  6.   
  7.   每隔一定时间间隔自动领取礼包的系统
  8.   使用事件-条件分支中的脚本命令,输入指定脚本即可判断是否经过了设定的时间
  9.   
  10.   脚本命令:
  11.   
  12.   ply_time_judge
  13.     使用游戏的时间作为判定依据(在线时长礼包),
  14.   
  15.   sys_time_judge
  16.     使用系统的时间作为判定依据(每日登陆礼包),
  17.   
  18. =end
  19. $m5script = {} if $m5script.nil?
  20. $m5script["M5TimePresent"] = true
  21. module M5TimePresent
  22. #==============================================================================
  23. #  设定部分
  24. #==============================================================================

  25.   TIME = 20
  26.   
  27.   #这里设置时间间隔,单位为秒
  28.   
  29.   VAR = 1
  30.   
  31.   #这里设置一个没有使用的变量ID,之后请不要更改这个变量的值
  32.   
  33. #==============================================================================
  34. #  设定结束
  35. #==============================================================================
  36. end
  37. class Game_Interpreter
  38.   def m5_time_exist
  39.     if $game_variables[M5TimePresent::VAR].class != Array
  40.       $game_variables[M5TimePresent::VAR] = Array.new
  41.     end
  42.     return $game_variables[M5TimePresent::VAR]
  43.   end
  44.   def sys_time_judge
  45.     time = m5_time_exist[0]
  46.     if !time or time - Time.now < - M5TimePresent::TIME
  47.       $game_variables[M5TimePresent::VAR][0] = Time.now
  48.       return true
  49.     end
  50.     false
  51.   end  
  52.   def ply_time_judge
  53.     time = m5_time_exist[1]
  54.     if !time or $game_system.playtime - time > M5TimePresent::TIME
  55.       $game_variables[M5TimePresent::VAR][1] = $game_system.playtime
  56.       return true
  57.     end
  58.     false
  59.   end
  60. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
32 小时
注册时间
2013-6-28
帖子
39
10
发表于 2013-9-30 14:47:06 | 只看该作者
[ 本帖最后由 巴尔德 于 2013-9-30 14:48 编辑 ]\n\n先记录一个时间,然后在需要判断的时候获取当前的时间,求差,如果大于15分钟,那么则打开某个开关,允许领礼包,领完礼包后,将当前的时间再次记录,同事继续做判断处理。

道理上就是这些,关键字
Time.now
@ time = Time.now
Time.now - @ time > 15分钟   
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
87 小时
注册时间
2013-7-11
帖子
100
9
 楼主| 发表于 2013-9-30 14:37:52 | 只看该作者
本帖最后由 540486098 于 2013-9-30 14:39 编辑

难道我讲的不够清楚?我需要这样的效果:

可以同步电脑时间,
当(电脑计时)时间达到15分钟,
则打开某个开关。

不需要考虑通过调整时间达到无限领礼包。

@绿坝
@火烧兔子
@a000b1745  

本人在学校上课,发帖晚了些.......请原谅

点评

楼下正解请看  发表于 2013-10-8 21:59
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
567
在线时间
465 小时
注册时间
2009-10-11
帖子
407
8
发表于 2013-9-24 08:07:11 | 只看该作者
你可以參考這個↓
http://forums.rpgmakerweb.com/in ... game-time-nightday/

RUBY 代码复制
  1. #Basic Game Time + Night/Day v1.6.2
  2. #----------#
  3. #Features: Provides a series of functions to set and recall current game time
  4. #          as well customizable tints based on current game time to give the
  5. #          appearance of night and day.
  6. #
  7. #Usage:   Script calls:
  8. #           GameTime::minute?   - returns the current minute
  9. #           GameTime::hour?     - returns the current hour
  10. #           GameTime::set(time) - sets the game time to time, in frames (max:1440)
  11. #           GameTime::change(time) - increments the game time! (can be negative)
  12. #           GameTime::pause_time(set) - stops time for events and stuff, true or false
  13. #           GameTime::pause_tint(set) - time runs, but tints do not update
  14. #           GameTime::clock(set) - sets whether clock is visible or not
  15. #        
  16. #Customization: Set below, in comments.
  17. #
  18. #Examples: GameTime::set(360)
  19. #
  20. #----------#
  21. #-- Script by: V.M of D.T
  22. #
  23. #- Questions or comments can be:
  24. #    posted on the thread for the script
  25. #    given by email: [email][email protected][/email]
  26. #    provided on facebook: [url]http://www.facebook.com/DaimoniousTailsGames[/url]
  27. #    posed on site: daimonioustails.wordpress.com
  28. #
  29. #--- Free to use in any project, commercial or non-commercial, with credit given
  30. # - - Though a donation's always a nice way to say thank you~ (I also accept actual thank you's)
  31.  
  32. #---Game Clock---#
  33. #USE_CLOCK to true to display game time clock
  34. #CLOCK_POSITION for position of clock
  35. #  1 = topleft, 2 = topright, 3 = bottomleft, 4 = bottomright
  36. #CLOCK_TOGGLE is any input button available, see the INPUT help file for options
  37. #------#
  38. USE_CLOCK       = true
  39. CLOCK_POSITION  = 4
  40. CLOCK_TOGGLE    = :SHIFT
  41.  
  42. module GameTime
  43.   #---Game Time Details---#
  44.   #Number of frames in a game minute, 60 frames = 1 second
  45.   TIME_COUNT      = 60
  46.   #Sets whether to tint screen based on game time
  47.   USE_TINT        = true
  48.  
  49.   #Switch to denote day or night time
  50.   USE_SWITCH = false
  51.   NIGHT_DAY_SWITCH = 1
  52.   DAY_TIME_START = 6
  53.   NIGHT_TIME_START = 18
  54.  
  55.   #True to pause time while not in map or while during a message
  56.   PAUSE_IN_COMBAT  = false
  57.   PAUSE_NOT_IN_MAP = true
  58.   PAUSE_IN_MESSAGE = true
  59.  
  60.   #Sets time frames of tints by minute count, one day is 1440 minutes
  61.   # 0 = 12am, 360 = 6am, 720 = 12pm, 1080 = 6pm  etc...
  62.   PRESUNRISE_TIME = 240
  63.   SUNRISE_TIME    = 360
  64.   NOONSTART_TIME  = 660
  65.   NOONEND_TIME    = 900
  66.   PRESUNSET_TIME  = 1080
  67.   SUNSET_TIME     = 1260
  68.   MIDNIGHT_TIME   = 60  #Must be greater than 0
  69.  
  70.   #Sets custome tints
  71.   PRESUNRISE_TONE = Tone.new(-75,-75,0,50)
  72.   SUNRISE_TONE    = Tone.new(0,0,0,0)
  73.   NOONSTART_TONE  = Tone.new(45,45,0,-25)
  74.   NOONEND_TONE    = Tone.new(0,0,0,0)
  75.   PRESUNSET_TONE  = Tone.new(-50,-50,0,25)
  76.   SUNSET_TONE     = Tone.new(-75,-100,0,75)
  77.   MIDNIGHT_TONE   = Tone.new(-125,-125,0,125)
  78.  
  79.   #Include the ids of any maps not to be tinted based on time
  80.   # Usually reserved for indoor maps
  81.   NOTINTMAPS = [2]
  82.  
  83.   #Store current time in a variable?
  84.   USE_VARIABLE = false
  85.   TIME_VARIABLE = 1
  86.  
  87.   #---END---#
  88.  
  89.   def self.init
  90.     $game_time = 0
  91.     $game_time_pause_time = false
  92.     $game_time_pause_tint = false
  93.   end
  94.   def self.update
  95.     if $game_time_pause_time then return else end
  96.     case SceneManager::scene_is?(Scene_Map)
  97.     when true
  98.       if $game_message.visible == true && PAUSE_IN_MESSAGE then else
  99.       $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end
  100.     when false
  101.  
  102.       if !PAUSE_NOT_IN_MAP and !SceneManager::scene_is?(Scene_Battle)
  103.         $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end
  104.       if SceneManager::scene_is?(Scene_Battle) && PAUSE_IN_COMBAT != true
  105.       $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end
  106.     end
  107.     if $game_time == 1440 then $game_time = 0 end
  108.     $game_variables[TIME_VARIABLE] = $game_time if USE_VARIABLE
  109.     update_night_switch if USE_SWITCH
  110.     GameTime::tint if $game_time_pause_tint != true
  111.   end
  112.   def self.update_night_switch
  113.     if hour? > DAY_TIME_START and hour? < NIGHT_TIME_START
  114.       $game_switches[NIGHT_DAY_SWITCH] = true unless $game_switches[NIGHT_DAY_SWITCH] == true
  115.     else
  116.       $game_switches[NIGHT_DAY_SWITCH] = false unless $game_switches[NIGHT_DAY_SWITCH] == false
  117.     end
  118.   end
  119.   def self.hour?
  120.     return $game_time / 60
  121.   end
  122.   def self.minute?
  123.     return $game_time % 60
  124.   end
  125.   def self.time?
  126.     meri = "AM"
  127.     hour = GameTime::hour?
  128.     minute = GameTime::minute?
  129.     if hour > 11 then meri = "PM" end
  130.     if hour == 0 then hour = 12; meri = "AM" end
  131.     if hour > 12 then hour -= 12 end
  132.     if hour < 10 then hour = " " + hour.to_s else hour.to_s end
  133.     if minute < 10 then minute = "0" + minute.to_s else minute.to_s end
  134.     return hour.to_s + ":" + minute.to_s + " " + meri
  135.   end
  136.   def self.set(number)
  137.     $game_time = number if number < 1440
  138.     GameTime::tint(0) if $game_time_pause_tint != true
  139.   end
  140.   def self.change(number)
  141.     $game_time += number
  142.     $game_time -= 1440 if $game_time > 1440
  143.     $game_time += 1440 if $game_time < 0
  144.     GameTime::tint(0) if $game_time_pause_tint != true
  145.   end
  146.   def self.tint(tint = 60)
  147.     if USE_TINT != true then return end
  148.     for i in NOTINTMAPS
  149.       if $game_map.map_id == i
  150.         $game_map.screen.start_tone_change(Tone.new(0,0,0,0),0)
  151.         return
  152.       end
  153.     end
  154.     if SceneManager::scene_is?(Scene_Map) then else return end
  155.     case $game_time
  156.     when PRESUNRISE_TIME .. SUNRISE_TIME
  157.       $game_map.screen.start_tone_change(PRESUNRISE_TONE, tint)
  158.     when SUNRISE_TIME .. NOONSTART_TIME
  159.       $game_map.screen.start_tone_change(SUNRISE_TONE, tint)
  160.     when NOONSTART_TIME .. NOONEND_TIME
  161.       $game_map.screen.start_tone_change(NOONSTART_TONE, tint)
  162.     when NOONEND_TIME .. PRESUNSET_TIME
  163.       $game_map.screen.start_tone_change(NOONEND_TONE, tint)
  164.     when PRESUNSET_TIME .. SUNSET_TIME
  165.       $game_map.screen.start_tone_change(PRESUNSET_TONE, tint)
  166.     when SUNSET_TIME .. 1440
  167.       $game_map.screen.start_tone_change(SUNSET_TONE, tint)
  168.     when 0 .. MIDNIGHT_TIME
  169.       $game_map.screen.start_tone_change(SUNSET_TONE, tint)
  170.     when MIDNIGHT_TIME .. PRESUNRISE_TIME
  171.       $game_map.screen.start_tone_change(MIDNIGHT_TONE, tint)
  172.     end
  173.   end
  174.   def self.pause_time(set)
  175.     $game_time_pause_time = set
  176.   end
  177.   def self.pause_tint(set)
  178.     $game_time_pause_tint = set
  179.   end
  180.   def self.clock(set)
  181.     return unless SceneManager.scene.is_a?(Scene_Map)
  182.     SceneManager.scene.clock_visible?(set)
  183.   end
  184.  
  185.   class Window_Clock < Window_Base
  186.     def initialize
  187.       case CLOCK_POSITION
  188.       when 1
  189.         super(0,0,115,56)
  190.       when 2
  191.         super(429,0,115,56)
  192.       when 3
  193.         super(0,360,115,56)
  194.       when 4
  195.         super(429,360,115,56)
  196.       end
  197.       self.visible = $game_time_clock_visibility unless $game_time_clock_visibility.nil?
  198.     end
  199.     def update
  200.       self.contents.clear
  201.       self.contents.draw_text(0,0,100,24,GameTime::time?)
  202.       $game_time_clock_visibility = self.visible
  203.     end
  204.   end
  205.  
  206. end
  207.  
  208. GameTime::init
  209.  
  210. module DataManager
  211.   class << self
  212.   alias gametime_msc make_save_contents
  213.   alias gametime_esc extract_save_contents
  214.   end
  215.   def self.make_save_contents
  216.     contents = gametime_msc
  217.     contents[:gametime] = $game_time
  218.     contents
  219.   end
  220.   def self.extract_save_contents(contents)
  221.     gametime_esc(contents)
  222.     $game_time = contents[:gametime]
  223.   end
  224. end
  225.  
  226.  
  227. class Scene_Map < Scene_Base
  228.   alias gametime_post_transfer post_transfer
  229.   alias gametime_create_all_windows create_all_windows
  230.   alias gametime_update_map update
  231.   def post_transfer
  232.     GameTime::tint(0) if $game_time_pause_tint != true
  233.     gametime_post_transfer
  234.   end
  235.   def create_all_windows
  236.     gametime_create_all_windows
  237.     @gametimeclock = GameTime::Window_Clock.new if USE_CLOCK
  238.   end
  239.   def update
  240.     gametime_update_map
  241.     @gametimeclock.update if @gametimeclock.nil? == false
  242.     if Input.trigger?(CLOCK_TOGGLE) and @gametimeclock.nil? == false
  243.       @gametimeclock.visible ? @gametimeclock.visible = false : @gametimeclock.visible = true
  244.     end
  245.   end
  246.   def clock_visible?(set)
  247.     @gametimeclock.visible = set
  248.   end
  249. end
  250.  
  251. class Scene_Base
  252.   alias gametime_update update
  253.   def update
  254.     gametime_update
  255.     GameTime::update
  256.   end
  257. end
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
40 小时
注册时间
2012-7-3
帖子
98
7
发表于 2013-9-21 22:57:09 | 只看该作者
植物大战僵尸貌似也没有解决这个问题吧,在我大天朝,什么办法都能想到。
不过你可以根据游戏时间来制作。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1457
在线时间
892 小时
注册时间
2011-3-4
帖子
839
6
发表于 2013-9-21 20:19:51 | 只看该作者
如果只是单纯的同步本地时间的话那玩家可以不停的调时间来获取礼包,(以前用NDS模拟器玩口袋怪兽的时候为了抓气球怪也调过本地时间
最好的方法是把时间和网络上的时间同步上
但是这又涉及到网络数值同步问题
问题越来越麻烦
全民制作人们,大家好,我是练习时长两年半的黄油制作人绿坝,喜欢唱、跳、rap、篮球,music!欢迎加群:107335249
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-13 04:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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