Project1

标题: 求助~~给脚本加开关(内附代码) [打印本页]

作者: 涂鸦boy    时间: 2011-7-20 12:03
标题: 求助~~给脚本加开关(内附代码)
本帖最后由 fux2 于 2011-7-20 15:56 编辑

想要一个即有开关又能点中即启动事件的发光脚本,求改动(自己努力了一上午无成果啊~泪奔)

附脚本1.有开关但不能启动事件(必须要这种写在名字里的开关判定)
  1. class Sprite_Character
  2.   alias lv50_update update
  3.   def update
  4.     lv50_update
  5.     #——这里最后的"柳啊"里,可以写入文字或数字,然后只有有那些文字或数字的(不需要完全是)事件才可发光。
  6.     return if @cw == nil or @ch == nil or @character.is_a?(Game_Player) or [email protected]_name.include?("柳啊")
  7.     mouse_x, mouse_y = Mouse.get_mouse_pos
  8.     if self.x - @cw/2 <= mouse_x and self.y - @ch <= mouse_y and
  9.       (self.x + @cw/2) > mouse_x and self.y > mouse_y
  10.       self.tone.set(100, 100, 100)
  11.     else
  12.       self.tone.set(0, 0, 0)
  13.     end
  14.   end
  15. end
  16. class Game_Event
  17.   def event_name
  18.     return @event.name
  19.   end
  20. end
复制代码
附脚本2.能启动事件但无开关!!
  1. #==============================================================================
  2. # ■ Sprite_Character                                          
  3. #------------------------------------------------------------------------------
  4. # check the Mouse's events and lighter,start.
  5. #==============================================================================
  6. class Sprite_Character < RPG::Sprite
  7.   alias oldupdate update
  8.   def update
  9.     oldupdate
  10.     mx,my = Mouse.get_mouse_pos
  11.    lx = self.x - self.ox
  12.    rx = lx + self.bitmap.width/4
  13.    ty = self.y - self.oy
  14.    by = ty + self.bitmap.height/4
  15.    if mx < lx or mx > rx or my < ty or my > by or
  16.      self.bitmap.get_pixel(mx-lx,my-ty).alpha == 0
  17.      return
  18.    end
  19.      if Mouse.trigger?(Mouse::LEFT)
  20.        if @trigger == 4 or @character == $game_player
  21.          return
  22.        end         
  23.          @character.start
  24.        end
  25.        self.blend_type = 1
  26.      end
  27.    end
  28. #-------------------------------------------------------------------------------
  29. #end
  30. #-------------------------------------------------------------------------------
复制代码
dsu_plus_rewardpost_czw
作者: Kimu    时间: 2011-7-20 12:15
没明白你的意思,你的"点中"是什么意思
作者: 涂鸦boy    时间: 2011-7-20 12:18
Kimu 发表于 2011-7-20 12:15
没明白你的意思,你的"点中"是什么意思

就是说,像附脚本1,可以靠判断名字中的关键字是否点亮人物,但是要启动事件的话就必须走到事件面前才行
我就是希望附脚本1能像附脚本2那样,点击事件就能马上启动,不用走到事件身边去
作者: Kimu    时间: 2011-7-20 12:20
涂鸦boy 发表于 2011-7-20 12:18
就是说,像附脚本1,可以靠判断名字中的关键字是否点亮人物,但是要启动事件的话就必须走到事件面前才行
...

点击?你用了鼠标脚本么
作者: 涂鸦boy    时间: 2011-7-20 12:21
本帖最后由 涂鸦boy 于 2011-7-20 12:23 编辑
Kimu 发表于 2011-7-20 12:20
点击?你用了鼠标脚本么


用了呢,不用鼠标脚本事件点亮也用不了啊

我就是想允许点亮的事件才允许点击启动,但是无力柔和这两个脚本。。。唉
作者: Kimu    时间: 2011-7-20 12:23
涂鸦boy 发表于 2011-7-20 12:21
用了呢,不用鼠标脚本事件点亮也用不了啊

请试试鼠标图片响应
作者: 涂鸦boy    时间: 2011-7-20 12:27
本帖最后由 涂鸦boy 于 2011-7-20 12:28 编辑
Kimu 发表于 2011-7-20 12:23
请试试鼠标图片响应




该试过的方法都用上了呢。。。整合一下两个脚本就好了。。拜托帮帮我吧
把附脚本1的开关整合到附脚本2中就好。。。事件派无力啊
作者: Kimu    时间: 2011-7-20 12:28
你不发工程让我去打酱油啊
作者: 涂鸦boy    时间: 2011-7-20 12:31
本帖最后由 涂鸦boy 于 2011-7-20 12:34 编辑
Kimu 发表于 2011-7-20 12:28
你不发工程让我去打酱油啊


鼠标响应图片.rar (410.99 KB, 下载次数: 18)
附上工程了
但是一定要用名字关键字判断是否点亮和能否点击直接启动事件蛤,谢谢了

另外说明一下,脚本faguang的第11行无用请删,是试验性的整合的时候留下的乐色
作者: Kimu    时间: 2011-7-20 12:46
本帖最后由 Kimu 于 2011-7-20 12:52 编辑
涂鸦boy 发表于 2011-7-20 12:31
附上工程了
但是一定要用名字关键字判断是否点亮和能否点击直接启动事件蛤,谢谢了


我不发工程了,把faguang第11行的event改成@character
作者: 涂鸦boy    时间: 2011-7-20 12:52
本帖最后由 涂鸦boy 于 2011-7-20 13:00 编辑
Kimu 发表于 2011-7-20 12:46
我不发工程了,把faguang第11行的event改成@Character


不行啊,这样只要鼠标扫过就会启动事件啊,能不能再在启动上加个单击判定?
作者: Kimu    时间: 2011-7-20 13:04
涂鸦boy 发表于 2011-7-20 12:52
不行啊,这样只要鼠标扫过就会启动事件啊,能不能再在启动上加个单击判定? ...
  1. class Sprite_Character
  2.   alias lv50_update update
  3.   def update
  4.     lv50_update
  5.     #——这里最后的"柳啊"里,可以写入文字或数字,然后只有有那些文字或数字的(不需要完全是)事件才可发光。
  6.     return if @cw == nil or @ch == nil or @character.is_a?(Game_Player) or [email protected]_name.include?("柳啊")
  7.     mouse_x, mouse_y = Mouse.get_mouse_pos
  8.     if self.x - @cw/2 <= mouse_x and self.y - @ch <= mouse_y and
  9.       (self.x + @cw/2) > mouse_x and self.y > mouse_y
  10.       self.tone.set(100, 100, 100)
  11.     if Mouse.press?(Mouse::LEFT)
  12.       @character.start
  13.     end
  14.     else
  15.       self.tone.set(0, 0, 0)
  16.     end
  17.   end
  18. end
  19. class Game_Event
  20.   def event_name
  21.     return @event.name
  22.   end
  23. end
复制代码
拿去把faguang覆盖掉
作者: 涂鸦boy    时间: 2011-7-20 13:10
Kimu 发表于 2011-7-20 13:04
拿去把faguang覆盖掉

厚着脸皮又来了。。。
这样写事件会启动两遍诶。。。麻烦再完善一次吧
作者: 灵魂の补给    时间: 2011-7-20 16:27
汗,你拿我脚本(第2个)
作者: 涂鸦boy    时间: 2011-7-20 17:11
本帖最后由 涂鸦boy 于 2011-7-20 17:12 编辑
灵魂の补给 发表于 2011-7-20 16:27
汗,你拿我脚本(第2个)


不行啊大大,光加@character.start只要碰到事件就会执行,用下面这个脚本的改法点一下事件又会执行两下,能不能再改改完善一下啊??拜托了~~~
  1. class Sprite_Character
  2.   alias lv50_update update
  3.   def update
  4.     lv50_update
  5.     #——这里最后的"柳啊"里,可以写入文字或数字,然后只有有那些文字或数字的(不需要完全是)事件才可发光。
  6.     return if @cw == nil or @ch == nil or @character.is_a?(Game_Player) or [email protected]_name.include?("柳啊")
  7.     mouse_x, mouse_y = Mouse.get_mouse_pos
  8.     if self.x - @cw/2 <= mouse_x and self.y - @ch <= mouse_y and
  9.       (self.x + @cw/2) > mouse_x and self.y > mouse_y
  10.       self.tone.set(100, 100, 100)
  11.     if Mouse.press?(Mouse::LEFT)
  12.       @character.start
  13.     end
  14.     else
  15.       self.tone.set(0, 0, 0)
  16.     end
  17.   end
  18. end
  19. class Game_Event
  20.   def event_name
  21.     return @event.name
  22.   end
  23. end
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1