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

Project1

 找回密码
 注册会员
搜索

如何使npc显示叹号然后按一下接受任务后叹号消失?

查看数: 7422 | 评论数: 22 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-9-14 09:51

正文摘要:

如何使npc显示叹号然后按一下接受任务后叹号消失? 附图一张,但是不行。求助。

回复

莫言别离 发表于 2014-9-14 20:50:44
......为什么不直接在行走图上添加叹号,接了任务直接改变npc行走图不就好了...
3106345123 发表于 2014-9-14 16:36:36
本帖最后由 3106345123 于 2014-9-14 16:37 编辑
Hover Alerts v1.3:这个脚本可以在指定角色头顶上显示动画,文字,或者一个图标,可是用它来做出像暗黑破坏神那样NPC头顶出现任务对话的讯号,或是一些网游中NPC有任务时头顶上的惊嘆号,接受任务后的金色问号,这些头顶上的图文都可以独立关闭,不会影响到别的事件NPC,而且头顶上的图文会跟随NPC移动,是十分不错的脚本。
http://rmrk.net/index.php/topic,46911.0.html

范例下载
喵kano 发表于 2014-9-14 11:48:08
给楼主一个简单的事件思路。 楼主也可以选择使用楼上各种脚本,个人比较推荐事件。
A.地图上设置一个并行事件(触发条件为-并行处理),思路是当【任务开启】的开关被打开后,地图上的人物持续显示心情-惊讶(叹号),当【接受任务】开关打开后关闭心情显示-惊讶。


B.上面提到的地图上人物的设置,对话后打开【接受任务】的开关,关闭叹号的显示。


评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

镜子你不可以 发表于 2014-9-14 11:29:39
VIPArcher 发表于 2014-9-14 11:25
给你一个脚本,会用就用。不会就算了

怎么这样......我....我.......只是想把游戏做得好一点而已。5555555

点评

另外我楼下的那个哒哒发的脚本比较容易使用,你斟酌一下看看用哪个吧。  发表于 2014-9-14 11:39
怎么了?这个脚本全备注都是英文。看不懂可以谷歌翻译一下,使用方法我也说了。如果还是用不来当然只好叫你放弃这个脚本咯。  发表于 2014-9-14 11:38
tseyik 发表于 2014-9-14 11:28:47
本帖最后由 tseyik 于 2014-9-14 11:31 编辑

アイコンポップ Ver1.2
事件指令『脚本』使用以下指令
  pop_icon(事件id, icon_id, 顯示時間)
事件id,0:事件本身,-1:玩者,1以上:事件id
顯示時間:幀数,60為1秒
  例)pop_icon(-1, 17, 300)

  取消icon表示同delete_icon 指令
  
  
  例)delete_icon(-1)
作者的網頁将於15年5月関閉,
  1. #==============================================================================
  2. # ★ RGSS3_アイコンポップ Ver1.2
  3. #==============================================================================
  4. =begin

  5. 作者:tomoaky
  6. webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/)

  7. イベントの頭上に任意のアイコンを表示することができます。

  8. イベントコマンド『スクリプト』で以下を実行してください
  9.   pop_icon(event_id, icon_id, duration)
  10.   
  11.   event_id 番のイベントの頭上に icon_id 番のアイコンが表示されます。
  12.   event_id に 0 を指定すると実行中のイベント自身が対象となり、
  13.   -1 を指定すればプレイヤーが対象となります。
  14.   duration は省略することが可能です、その場合は 120 となります。
  15.   
  16.   例)pop_icon(-1, 17, 300)
  17.   プレイヤーに戦闘不能アイコンを5秒間(300フレーム)表示します
  18.   
  19.   アイコン表示中に pop_icon コマンドを実行しても効果はありません。
  20.   すぐに次のアイコンを表示したい場合は、delete_icon コマンドで
  21.   アイコンを削除してから pop_icon コマンドを実行してください。
  22.   
  23.   例)delete_icon(-1)
  24.   プレイヤーに表示中のアイコンを削除する
  25.   
  26. おまけとしてイベントコマンド『アイテムの増減』『武器の増減』『防具の増減』が
  27. 実行されたとき、自動でアイコンを表示する機能が付いています。
  28.   アイコンを表示する対象はゲーム変数(初期設定では6番)で変更が可能です、
  29.   値は pop_icon コマンドにおける event_id と同様ですが、-2 以下を指定することで
  30.   機能をオフにすることができます。
  31.   

  32. 使用するゲーム変数(初期設定)
  33.   0006
  34.   
  35. 2012.01.19  Ver1.2
  36.  ・表示中のアイコンポップを削除する delete_icon コマンドを追加
  37.  ・自律移動【カスタム】のスクリプトコマンドで
  38.   アイコンポップ機能が動作しない不具合を修正
  39.   
  40. 2011.12.21  Ver1.11
  41.  ・並列処理で event_id に 0 を指定するとアイコンが表示されない不具合を修正
  42.   
  43. 2011.12.17  Ver1.1
  44.  ・コマンドに表示時間を指定する機能を追加しました

  45. 2011.12.15  Ver1.0
  46.   公開

  47. =end

  48. #==============================================================================
  49. # □ 設定項目
  50. #==============================================================================
  51. module TMICPOP
  52.   GRAVITY = 24              # アイコンにかかる重力
  53.   SPEED   = -320            # アイコンの初速(Y方向)
  54.   
  55.   VN_TARGET = 6             # 自動ポップ対象設定として扱うゲーム変数番号
  56. end

  57. #==============================================================================
  58. # □ コマンド
  59. #==============================================================================
  60. module TMICPOP
  61. module Commands
  62.   #--------------------------------------------------------------------------
  63.   # ○ アイコンポップの開始
  64.   #--------------------------------------------------------------------------
  65.   def pop_icon(event_id, icon_id, duration = 120)
  66.     target = get_character(event_id)
  67.     return unless target
  68.     target.icpop_id = icon_id
  69.     target.icpop_duration = duration
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ○ アイコンポップの削除
  73.   #--------------------------------------------------------------------------
  74.   def delete_icon(event_id)
  75.     target = get_character(event_id)
  76.     return unless target
  77.     target.icpop_delete_flag = true
  78.   end
  79. end
  80. end # module TMICPOP

  81. #==============================================================================
  82. # ■ Game_CharacterBase
  83. #==============================================================================
  84. class Game_CharacterBase
  85.   #--------------------------------------------------------------------------
  86.   # ● 公開インスタンス変数
  87.   #--------------------------------------------------------------------------
  88.   attr_accessor :icpop_id                 # アイコンポップ ID
  89.   attr_accessor :icpop_duration           # アイコンポップ 表示時間
  90.   attr_accessor :icpop_delete_flag        # アイコンポップ 削除フラグ
  91.   #--------------------------------------------------------------------------
  92.   # ● 公開メンバ変数の初期化
  93.   #--------------------------------------------------------------------------
  94.   alias tmicpop_game_characterbase_init_public_members init_public_members
  95.   def init_public_members
  96.     tmicpop_game_characterbase_init_public_members
  97.     @icpop_id = 0
  98.     @icpop_duration = 0
  99.     @icpop_delete_flag = false
  100.   end
  101. end

  102. #==============================================================================
  103. # ■ Sprite_Character
  104. #==============================================================================
  105. class Sprite_Character
  106.   #--------------------------------------------------------------------------
  107.   # ● オブジェクト初期化
  108.   #     character : Game_Character
  109.   #--------------------------------------------------------------------------
  110.   alias tmicpop_sprite_character_initialize initialize
  111.   def initialize(viewport, character = nil)
  112.     @icpop_duration = 0
  113.     tmicpop_sprite_character_initialize(viewport, character)
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 解放
  117.   #--------------------------------------------------------------------------
  118.   alias tmicpop_sprite_character_dispose dispose
  119.   def dispose
  120.     dispose_icpop
  121.     tmicpop_sprite_character_dispose
  122.   end
  123.   #--------------------------------------------------------------------------
  124.   # ● フレーム更新
  125.   #--------------------------------------------------------------------------
  126.   alias tmicpop_sprite_character_update update
  127.   def update
  128.     update_icpop
  129.     tmicpop_sprite_character_update
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● 新しいエフェクトの設定
  133.   #--------------------------------------------------------------------------
  134.   alias tmicpop_sprite_character_setup_new_effect setup_new_effect
  135.   def setup_new_effect
  136.     tmicpop_sprite_character_setup_new_effect
  137.     if !@icpop_sprite && @character.icpop_id > 0
  138.       @icpop_id = @character.icpop_id
  139.       @character.icpop_id = 0
  140.       start_icpop
  141.     end
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # ○ アイコンポップ表示の開始
  145.   #--------------------------------------------------------------------------
  146.   def start_icpop
  147.     dispose_icpop
  148.     @icpop_duration = @icpop_duration_max = @character.icpop_duration
  149.     @icpop_sprite = ::Sprite.new(viewport)
  150.     @icpop_sprite.bitmap = Cache.system("IconSet")
  151.     @icpop_sprite.src_rect.set(@icpop_id % 16 * 24, @icpop_id / 16 * 24, 24, 24)
  152.     @icpop_sprite.ox = 12
  153.     @icpop_sprite.oy = 24
  154.     @icpop_y_plus = 0
  155.     @icpop_y_speed = TMICPOP::SPEED
  156.     update_icpop
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ○ アイコンポップの解放
  160.   #--------------------------------------------------------------------------
  161.   def dispose_icpop
  162.     @character.icpop_delete_flag = false
  163.     if @icpop_sprite
  164.       @icpop_sprite.dispose
  165.       @icpop_sprite = nil
  166.     end
  167.   end
  168.   #--------------------------------------------------------------------------
  169.   # ○ アイコンポップの更新
  170.   #--------------------------------------------------------------------------
  171.   def update_icpop
  172.     if @icpop_duration > 0
  173.       @icpop_duration -= 1
  174.       if @character.icpop_delete_flag
  175.         @icpop_duration = 0
  176.         dispose_icpop
  177.       elsif @icpop_duration > 0
  178.         @icpop_sprite.x = x
  179.         @icpop_y_plus += @icpop_y_speed
  180.         @icpop_y_speed += TMICPOP::GRAVITY
  181.         if @icpop_y_plus > 0
  182.           @icpop_y_plus = 0 - @icpop_y_plus
  183.           @icpop_y_speed = 0 - @icpop_y_speed / 2
  184.         end
  185.         @icpop_sprite.y = y - height + (@icpop_y_plus / 256)
  186.         @icpop_sprite.z = z + 200
  187.         @icpop_sprite.opacity = (@icpop_duration < 16 ? @icpop_duration * 16 :
  188.           (@icpop_duration_max - @icpop_duration) * 32)
  189.       else
  190.         dispose_icpop
  191.         @character.icpop_id = 0
  192.       end
  193.     end
  194.   end
  195. end

  196. #==============================================================================
  197. # ■ Game_Event
  198. #==============================================================================
  199. class Game_Event
  200.   include TMICPOP::Commands
  201.   #--------------------------------------------------------------------------
  202.   # ○ キャラクターの取得
  203.   #     param : -1 ならプレイヤー、0 ならこのイベント、それ以外はイベント ID
  204.   #--------------------------------------------------------------------------
  205.   def get_character(param)
  206.     if param < 0
  207.       $game_player
  208.     else
  209.       $game_map.events[param > 0 ? param : @id]
  210.     end
  211.   end
  212. end

  213. #==============================================================================
  214. # ■ Game_Interpreter
  215. #==============================================================================
  216. class Game_Interpreter
  217.   include TMICPOP::Commands
  218.   #--------------------------------------------------------------------------
  219.   # ● アイテムの増減
  220.   #--------------------------------------------------------------------------
  221.   alias tmicpop_game_interpreter_command_126 command_126
  222.   def command_126
  223.     tmicpop_game_interpreter_command_126
  224.     value = operate_value(@params[1], @params[2], @params[3])
  225.     if value > 0
  226.       if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
  227.         item = $data_items[@params[0]]
  228.         pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
  229.       end
  230.     end
  231.   end
  232.   #--------------------------------------------------------------------------
  233.   # ● 武器の増減
  234.   #--------------------------------------------------------------------------
  235.   alias tmicpop_game_interpreter_command_127 command_127
  236.   def command_127
  237.     tmicpop_game_interpreter_command_127
  238.     value = operate_value(@params[1], @params[2], @params[3])
  239.     if value > 0
  240.       if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
  241.         item = $data_weapons[@params[0]]
  242.         pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
  243.       end
  244.     end
  245.   end
  246.   #--------------------------------------------------------------------------
  247.   # ● 防具の増減
  248.   #--------------------------------------------------------------------------
  249.   alias tmicpop_game_interpreter_command_128 command_128
  250.   def command_128
  251.     tmicpop_game_interpreter_command_128
  252.     value = operate_value(@params[1], @params[2], @params[3])
  253.     if value > 0
  254.       if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
  255.         item = $data_armors[@params[0]]
  256.         pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
  257.       end
  258.     end
  259.   end
  260. end

复制代码

评分

参与人数 1星屑 +132 收起 理由
VIPArcher + 132 我很赞同

查看全部评分

VIPArcher 发表于 2014-9-14 11:25:45
本帖最后由 VIPArcher 于 2014-9-14 11:44 编辑
镜子你不可以 发表于 2014-9-14 11:24
不行啊,@游戏我的爱 ,照你的设置,还是没有显示......


给你一个脚本,会用就用。不会就算了
使用方法,在事件的第一行注释以下内容。
\hover_alert { name = ""; icon = 361; icon_hue = 0;
time = -1;fontname = "Default"; fontsize = 20;
colour = 0; bold = false;italic = false;
effect = :none; effect_param = nil;se = nil;
proximity = 0 }

补一张效果图吧

@Time @character
脚本正体
  

点评

可是我真的做出来效果的啦...  发表于 2014-9-14 11:40
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-9-26 03:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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