RPG maker vx的问题
你的调查指的是什么……?总之用开关和独立开关就可以做到。这就是开关和独立开关:调查完以后不再调查:先输入你想要的指令,然后在指令的最末尾(不是末尾也行,根据实际情况而定)输入“独立开关操作 A(或B、C、D) 为 ON”(即打开独立开关A(或B、C、D))。然后,新建一个事件页。之后在事件的“出现条件”中设置“独立开关A(或B、C、D)开启”时。然后在这个事件耶上设定你想要第一个事件页执行过后的情况。这就是调查完了之后不再调查。调查完了再触发一个调查:在一个事件的末尾(或其他位置)设置“开关 ** 为ON”(即打开**开关),这里的开关到底打开那一个可以自己设置。一个游戏里可以设置很多个开关。之后,在你想要在这个调查完成之后触发的事件的出现条件中设置“开关**开启时”。这样就可以在一个调查了再触发一个结局。如果有什么对问题意思有理解偏差的地方,请指出。
RPG maker vx问题
行走图在这里更改或者独立的事件更改事件遇敌的设置开关1的意义是执行事件2.变量逃跑数可以自己选择适当的变量事件,比如逃跑数超过10扣属性,超过100获得称号.注意移动方式是自定义中的接近主角.速度和频率可以适当减少. 这是第二页事件.等待300帧的意义是5秒后刷新该怪物.可以自己改下时间.60帧=1秒.开关01=off的意义是在5秒后重新激活事件1.事件执行条件必须是并行处理. 撞到人就战斗的事件是一样的啊,你去碰的话改下移动路线就行了,怪物碰你就如上图
RPGMakerVX键位问题
首先,确认两点:
①caps lock键没有按下并且键盘工作良好
②你的脚本库里是否有full kboard脚本,如果没有,请把脚本编辑器打开,在main脚本之前插入我给你的这段脚本。
请你在当前地图新建一个并行处理事件(允许穿透):
事件页1:
脚本:if Kboard.press?($R_Key_A)
print("A")
end
独立开关操作:A=on
事件页2:(启动条件:独立A=on)
加入此事件后,测试,进入插入事件的地图,按键盘上的A键测试。
若显示出了“A”字母,说明是事件问题(常见的事件问题是:自动执行事件干扰了整个地图,请你逐个检查该地图上的每个自动执行事件并修改)。
若没有显示出“A”字母,说明脚本有问题(你如果没有改过脚本库,这一项应该不太可能)。
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
#
# 全键盘
# ★、Kboard.press?(键位) 返回是否按下这个键的判断。
# 比如条件分歧:Kboard.keyboard($R_Key_H)
# 则当按下键盘H键的时候条件分歧成立
#
# ★、Kboard.repeat?(键位) == 1 当连续按住某键返回真,否则为false
# 比如条件分歧:Kboard.keyb($R_Key_U) == 1
# 则当持续按下键盘U的时候条件分歧成立
#
# ★、Kboard.trigger?(键位,1) 似乎可以做开关用。按下一次变为true,再按变false
# 修改:夏娜
#
#============================================================================
module Kboard
#==========================================================================
# 以下是全键盘按键列表
#--------------------------------------------------------------------------
$Rmouse_BUTTON_L = 0x01 # left mouse button
$Rmouse_BUTTON_R = 0x02 # right mouse button
$Rmouse_BUTTON_M = 0x04 # middle mouse button
$Rmouse_BUTTON_4 = 0x05 # 4th mouse button
$Rmouse_BUTTON_5 = 0x06 # 5th mouse button
#--------------------------------------------------------------------------
$R_Key_BACK = 0x08 # BACKSPACE key
$R_Key_TAB = 0x09 # TAB key
$R_Key_RETURN = 0x0D # ENTER key
$R_Key_SHIFT = 0x10 # SHIFT key
$R_Key_CTLR = 0x11 # CTLR key
$R_Key_ALT = 0x12 # ALT key
$R_Key_PAUSE = 0x13 # PAUSE key
$R_Key_CAPITAL = 0x14 # CAPS LOCK key
$R_Key_ESCAPE = 0x1B # ESC key
$R_Key_SPACE = 0x20 # SPACEBAR
$R_Key_PRIOR = 0x21 # PAGE UP key
$R_Key_NEXT = 0x22 # PAGE DOWN key
$R_Key_END = 0x23 # END key
$R_Key_HOME = 0x24 # HOME key
$R_Key_LEFT = 0x25 # LEFT ARROW key
$R_Key_UP = 0x26 # UP ARROW key
$R_Key_RIGHT = 0x27 # RIGHT ARROW key
$R_Key_DOWN = 0x28 # DOWN ARROW key
$R_Key_SELECT = 0x29 # SELECT key
$R_Key_PRINT = 0x2A # PRINT key
$R_Key_SNAPSHOT = 0x2C # PRINT SCREEN key
$R_Key_INSERT = 0x2D # INS key
$R_Key_DELETE = 0x2E # DEL key
#--------------------------------------------------------------------------
$R_Key_0 = 0x30 # 0 key
$R_Key_1 = 0x31 # 1 key
$R_Key_2 = 0x32 # 2 key
$R_Key_3 = 0x33 # 3 key
$R_Key_4 = 0x34 # 4 key
$R_Key_5 = 0x35 # 5 key
$R_Key_6 = 0x36 # 6 key
$R_Key_7 = 0x37 # 7 key
$R_Key_8 = 0x38 # 8 key
$R_Key_9 = 0x39 # 9 key
#--------------------------------------------------------------------------
$R_Key_A = 0x41 # A key
$R_Key_B = 0x42 # B key
$R_Key_C = 0x43 # C key
$R_Key_D = 0x44 # D key
$R_Key_E = 0x45 # E key
$R_Key_F = 0x46 # F key
$R_Key_G = 0x47 # G key
$R_Key_H = 0x48 # H key
$R_Key_I = 0x49 # I key
$R_Key_J = 0x4A # J key
$R_Key_K = 0x4B # K key
$R_Key_L = 0x4C # L key
$R_Key_M = 0x4D # M key
$R_Key_N = 0x4E # N key
$R_Key_O = 0x4F # O key
$R_Key_P = 0x50 # P key
$R_Key_Q = 0x51 # Q key
$R_Key_R = 0x52 # R key
$R_Key_S = 0x53 # S key
$R_Key_T = 0x54 # T key
$R_Key_U = 0x55 # U key
$R_Key_V = 0x56 # V key
$R_Key_W = 0x57 # W key
$R_Key_X = 0x58 # X key
$R_Key_Y = 0x59 # Y key
$R_Key_Z = 0x5A # Z key
#--------------------------------------------------------------------------
$R_Key_LWIN = 0x5B # Left Windows key (Microsoft Natural keyboard)
$R_Key_RWIN = 0x5C # Right Windows key (Natural keyboard)
$R_Key_APPS = 0x5D # Applications key (Natural keyboard)
#--------------------------------------------------------------------------
$R_Key_NUMPAD0 = 0x60 # Numeric keypad 0 key
$R_Key_NUMPAD1 = 0x61 # Numeric keypad 1 key
$R_Key_NUMPAD2 = 0x62 # Numeric keypad 2 key
$R_Key_NUMPAD3 = 0x63 # Numeric keypad 3 key
$R_Key_NUMPAD4 = 0x64 # Numeric keypad 4 key
$R_Key_NUMPAD5 = 0x65 # Numeric keypad 5 key
$R_Key_NUMPAD6 = 0x66 # Numeric keypad 6 key
$R_Key_NUMPAD7 = 0x67 # Numeric keypad 7 key
$R_Key_NUMPAD8 = 0x68 # Numeric keypad 8 key
$R_Key_NUMPAD9 = 0x69 # Numeric keypad 9 key
$R_Key_MULTIPLY = 0x6A # Multiply key (*)
$R_Key_ADD = 0x6B # Add key (+)
$R_Key_SEPARATOR = 0x6C # Separator key
$R_Key_SUBTRACT = 0x6D # Subtract key (-)
$R_Key_DECIMAL = 0x6E # Decimal key
$R_Key_DIVIDE = 0x6F # Divide key (/)
#--------------------------------------------------------------------------
$R_Key_F1 = 0x70 # F1 key
$R_Key_F2 = 0x71 # F2 key
$R_Key_F3 = 0x72 # F3 key
$R_Key_F4 = 0x73 # F4 key
$R_Key_F5 = 0x74 # F5 key
$R_Key_F6 = 0x75 # F6 key
$R_Key_F7 = 0x76 # F7 key
$R_Key_F8 = 0x77 # F8 key
$R_Key_F9 = 0x78 # F9 key
$R_Key_F10 = 0x79 # F10 key
$R_Key_F11 = 0x7A # F11 key
$R_Key_F12 = 0x7B # F12 key
#--------------------------------------------------------------------------
$R_Key_NUMLOCK = 0x90 # NUM LOCK key
$R_Key_SCROLL = 0x91 # SCROLL LOCK key
#--------------------------------------------------------------------------
$R_Key_LSHIFT = 0xA0 # Left SHIFT key
$R_Key_RSHIFT = 0xA1 # Right SHIFT key
$R_Key_LCONTROL = 0xA2 # Left CONTROL key
$R_Key_RCONTROL = 0xA3 # Right CONTROL key
$R_Key_L_ALT = 0xA4 # Left ALT key
$R_Key_R_ALT = 0xA5 # Right ALT key
#--------------------------------------------------------------------------
$R_Key_SEP = 0xBC # , key
$R_Key_DASH = 0xBD # - key
$R_Key_DOTT = 0xBE # . Key
module_function
@R_Key_Hash = {}
@R_Key_Repeat = {}
GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
def press?(rkey)
return GetKeyState.call(rkey) != 0
end
def repeat?(rkey)
result = GetKeyState.call(rkey)
if result != 0
if @R_Key_Repeat[rkey].nil?
@R_Key_Repeat[rkey] = 0
return true
end
@R_Key_Repeat[rkey] += 1
else
@R_Key_Repeat[rkey] = nil
@R_Key_Hash[rkey] = 0
end
if !@R_Key_Repeat[rkey].nil? and @R_Key_Repeat[rkey] > 4 # 4乃准确数字
@R_Key_Repeat[rkey] = 0
return true
else
return false
end
end
def trigger?(rkey)
result = GetKeyState.call(rkey)
if @R_Key_Hash[rkey] == 1 and result != 0
return false
end
if result != 0
@R_Key_Hash[rkey] = 1
return true
else
@R_Key_Hash[rkey] = 0
return false
end
end
end
rpg maker vx 关于事件问题
首先你得明白条件分歧都有哪些可用的条件因为不知道你的意思是站在X格子上还能不能上下走,如果限制不能上下通行,在图块里改就行在条件分歧里有这两种条件,第一个是角色的方向的条件,如果你只想判断人物的方向,用这个就可以实现,优先级在角色下方,执行条件设置确定键就行 第二个是掌握按键的条件,可以实现这类功能的扩展,比如按shift或按确定键等等,条件分歧可以互相套用,活学活用就能做很多种事件,不知道是不是你的意思,有什么问题再问我
rpg maker vx 如何在地图上放置怪物,请详细说明操作步骤
1.如果是碰到什么东西然后有怪,就制作事件,战斗处理,然后会有条件分歧,你来编辑。如果只出现一次那就用开关或独立开关打开,在事件第二页制作空白页。2.如果是怪物不停骚扰主角,每走几步就要打一次怪,那就在地图属性里面更改,双击敌人队伍下面的空白部分,添加队伍,设置移动的布数。3.如果是几个怪在游戏上面随机走动,那就在事件页的移动线路选择“随即”“接近”“固定”或者“自定义”自定义就定义怎么走,最后还要走回原地,因为它是重复,不然走出地图了,嘻嘻。4.如果想过一段事件出现一个怪物,那就事件内容:战斗处理独立开关打开(例如打开A),新建一页。出现条件:独立开关A为ON事件内容 等待XXX帧,独立开关A,OFF。只要在刷新的界面也就是等待XXX帧,A,OFF的界面选择触发条件选择“并行处理”就可以了! 原创,给最佳!
RPG Maker VX中如何在战斗中显示怪物的血量,用脚本吗?
功能描述:
① 战斗时让敌人显示血条,宽度可定制
② 可选功能: 显示具体生命值 显示敌人名称
使用说明:
① 脚本插入到Main之前
② 脚本第19行设定血条的默认宽度
为个别敌人指定血条宽度是"数据库-敌角色-备注栏"填写"hp_width=数值"
③ 脚本第20行选择是否显示具体生命值
④ 脚本第21行选择是否显示敌人名称
⑤ 其它参数设定详见脚本
⑥ 此脚本需要基础脚本[读取rmvx备注栏指定字段] #==============================================================================
# ■ 显示敌人血条 by 沉影不器
#------------------------------------------------------------------------------
# 功能描述:
# ① 战斗时让敌人显示血条,宽度可定制
# ② 可选功能: 显示具体生命值 显示敌人名称
# 使用说明:
# ① 脚本插入到Main之前
# ② 脚本第19行设定血条的默认宽度
# 为个别敌人指定血条宽度是"数据库-敌角色-备注栏"填写"hp_width=数值"
# ③ 脚本第20行选择是否显示具体生命值
# ④ 脚本第21行选择是否显示敌人名称
# ⑤ 其它参数设定详见脚本
# ⑥ 此脚本需要基础脚本[读取rmvx备注栏指定字段]
#==============================================================================
# ■ 参数设定
#==============================================================================
module Enemy_HP
HP_WIDTH = 64 # 血条的默认宽度
SHOW_VALUE = false # 是否显示敌人生命值
SHOW_NAME = true # 是否显示敌人名称
NAME_SIZE = 16 # 敌人名称字体大小
NAME_COLOR = 0 # 敌人名称字体颜色
end
#==============================================================================
# ■ RPG
#==============================================================================
module RPG
class Enemy
def hp_width
return self.read_note('hp_width')
end
end
end
#==============================================================================
# ■ Game_Enemy
#==============================================================================
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# ○ 血条宽度
#--------------------------------------------------------------------------
def hp_width
return $data_enemies[@enemy_id].hp_width
end
end
#==============================================================================
# ■ Sprite_Battler
#==============================================================================
class Sprite_Battler < Sprite_Base
#--------------------------------------------------------------------------
# ◎ 初始化对象
# viewport : 视区
# battler : 战斗者 (Game_Battler)
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
@effect_type = 0 # 效果种类
@effect_duration = 0 # 效果剩余时间
if @battler.is_a?(Game_Enemy)
width = hp_width + 32
height = 24 + 32
x = @battler.screen_x - width/2
y = @battler.screen_y - height/2
# 调节名称位置
if Enemy_HP::SHOW_NAME
height += Enemy_HP::NAME_SIZE + 2
y -= Enemy_HP::NAME_SIZE + 2
end
# 生成血条窗体
@enemy_hp_window = Window_Base.new(x, y, width, height)
@enemy_hp_window.opacity = 0
@enemy_hp_window.contents_opacity = 0
@enemy_hp_window.contents = Bitmap.new(width - 32, height - 32)
@enemy_hp_window.draw_enemy_info(@battler, 0, 0, width - 32)
# 保存旧血量(控制刷新)
@old_hp = -1
end
end
#--------------------------------------------------------------------------
# ◎ 释放
#--------------------------------------------------------------------------
def dispose
if self.bitmap != nil
self.bitmap.dispose
@enemy_hp_window.dispose
end
super
end
#--------------------------------------------------------------------------
# ◎ 释放敌人活动块
#--------------------------------------------------------------------------
def dispose_enemies
for sprite in @enemy_sprites
sprite.dispose
@enemy_hp_window.dispose
end
end
#--------------------------------------------------------------------------
# ◎ 更新画面
#--------------------------------------------------------------------------
def update
super
if @battler == nil
self.bitmap = nil
else
@use_sprite = @battler.use_sprite?
if @use_sprite
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = @battler.screen_z
update_battler_bitmap
end
setup_new_effect
update_effect
# 更新血条窗体
if @enemy_hp_window != nil and @old_hp != @battler.hp
@enemy_hp_window.contents.clear
@enemy_hp_window.draw_enemy_info(@battler, 0, 0, hp_width)
@old_hp = @battler.hp
end
end
end
#--------------------------------------------------------------------------
# ◎ 更新出现效果
#--------------------------------------------------------------------------
def update_appear
self.blend_type = 0
self.color.set(0, 0, 0, 0)
self.opacity = (16 - @effect_duration) * 16
# 对象非敌人时返回
return unless @battler.is_a?(Game_Enemy)
@enemy_hp_window.contents_opacity = self.opacity
end
#--------------------------------------------------------------------------
# ◎ 更新消失效果
#--------------------------------------------------------------------------
def update_disappear
self.blend_type = 0
self.color.set(0, 0, 0, 0)
self.opacity = 256 - (32 - @effect_duration) * 10
# 对象非敌人时返回
return unless @battler.is_a?(Game_Enemy)
@enemy_hp_window.contents_opacity = self.opacity
end
#--------------------------------------------------------------------------
# ◎ 更新崩溃效果
#--------------------------------------------------------------------------
def update_collapse
self.blend_type = 1
self.color.set(255, 128, 128, 128)
self.opacity = 256 - (48 - @effect_duration) * 6
# 对象非敌人时返回
return unless @battler.is_a?(Game_Enemy)
@enemy_hp_window.contents_opacity = self.opacity
end
#--------------------------------------------------------------------------
# ○ 血条宽度
#--------------------------------------------------------------------------
def hp_width
result = Enemy_HP::HP_WIDTH
if @battler.is_a?(Game_Enemy)
if @battler.hp_width.to_i == 0
result = Enemy_HP::HP_WIDTH
else
result = @battler.hp_width.to_i
end
end
return result
end
end
#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# ○ 描绘敌人信息
# enemy : 角色
# x : 描绘目标 X 坐标
# y : 描绘目标 Y 坐标
# width : 宽
#--------------------------------------------------------------------------
def draw_enemy_info(enemy, x, y, width = 64)
# 为字体阴影内缩1像素
width -= 1
# 显示名称
if Enemy_HP::SHOW_NAME
self.contents.font.color = text_color(Enemy_HP::NAME_COLOR)
self.contents.font.size = Enemy_HP::NAME_SIZE
self.contents.draw_text(x, y, width, WLH, enemy.name, 1)
self.contents.font.size = Font.default_size
y += Enemy_HP::NAME_SIZE + 2
end
# 描绘血槽
draw_actor_hp_gauge(enemy, x, y, width)
# 描绘生命符号
self.contents.font.color = system_color
self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
# 描绘具体生命值
return unless Enemy_HP::SHOW_VALUE
self.contents.font.color = hp_color(enemy)
xr = x + width
self.contents.draw_text(xr - 40, y, 40, WLH, enemy.hp, 2)
end
end
RPG maker VX 里面的变数一般用来做什么的?
应该是变量吧?
变量,指在游戏过程中可以变化的量。
他的使用可以在以下几个方面:
1.储存数据
比如你可以用它在记录玩家的脚步数量
或者记录玩家的X坐标,Y坐标等等,然后提供给一些事件使用
(比如用2个变量分别记录玩家的X坐标,Y坐标,然后用另一个变量储存在这两个坐标时的地形标记,然后通过条件分歧来判断,达到一些在特定区域触发某些事件的目的)
最典型的是建立一个变量用来当做玩家对游戏的完成度
2.丰富事件
比如你可以给一个变量赋值随机数,然后条件分歧来做到跟NPC对话时,说出来的话是随机的
3.当做开关
这个东西当做开关可以节约不少公共开关。
比如你这个事件需要5个开关,而且这些开关不影响别的事件,那么不要用独立开关了,直接使用变量吧……(出现条件设置为当变量不小于...)
大概就是这些用途