Project1
标题:
如何在物品公共事件中获得使用者的id?
[打印本页]
作者:
szzyc0
时间:
2014-1-11 21:12
标题:
如何在物品公共事件中获得使用者的id?
本帖最后由 szzyc0 于 2014-1-12 11:26 编辑
要$userid这个变量为使用者的变量,当不同的人使用这个物品时,我可以通过条件分歧$userid变量来执行不同的命令
我要的是在战斗中可用的脚本。
举个例子,有一个物品叫“魔法词典”,它的范围是无,使用时机是战斗中,指向3号公共事件。
这一回合,4个队友命令都是使用“魔法词典”,然后不同的人使用的时候效果不一样。
因为我通过分歧$userid这个变量让不同的使用者弄出了不同的效果。
罢了,这个问题我自己解决了,请X了这个帖子吧
作者:
恐惧剑刃
时间:
2014-1-11 21:25
本帖最后由 恋′挂机 于 2014-1-11 21:48 编辑
放在main前
#==============================================================================
# ■ Scene_Item
#------------------------------------------------------------------------------
# 处理物品画面的类。
#==============================================================================
class Scene_Item
#--------------------------------------------------------------------------
# ● 刷新画面 (目标窗口被激活的情况下)
#--------------------------------------------------------------------------
def update_target
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 由于物品用完而不能使用的场合
unless $game_party.item_can_use?(@item.id)
# 再次生成物品窗口的内容
@item_window.refresh
end
# 删除目标窗口
@item_window.active = true
@target_window.visible = false
@target_window.active = false
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 如果物品用完的情况下
if $game_party.item_number(@item.id) == 0
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 目标是全体的情况下
if @target_window.index == -1
# 对同伴全体应用物品使用效果
used = false
for i in $game_party.actors
used |= i.item_effect(@item)
end
end
# 目标是单体的情况下
if @target_window.index >= 0
# 对目标角色应用物品的使用效果
target = $game_party.actors[@target_window.index]
$userid = target.id
used = target.item_effect(@item)
end
# 使用物品的情况下
if used
# 演奏物品使用时的 SE
$game_system.se_play(@item.menu_se)
# 消耗品的情况下
if @item.consumable
# 使用的物品数减 1
$game_party.lose_item(@item.id, 1)
# 再描绘物品窗口的项目
@item_window.draw_item(@item_window.index)
end
# 再生成目标窗口的内容
@target_window.refresh
# 全灭的情况下
if $game_party.all_dead?
# 切换到游戏结束画面
$scene = Scene_Gameover.new
return
end
# 公共事件 ID 有效的情况下
if @item.common_event_id > 0
# 预约调用公共事件
$game_temp.common_event_id = @item.common_event_id
# 切换到地图画面
$scene = Scene_Map.new
return
end
end
# 无法使用物品的情况下
unless used
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
end
return
end
end
end
复制代码
战斗中
#==============================================================================
# ■ Arrow_Actor
#------------------------------------------------------------------------------
# 选择角色的箭头光标。本类继承 Arrow_Base
# 类。
#==============================================================================
class Scene_Battle
attr_reader :actor_index
end
class Arrow_Actor < Arrow_Base
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
####################
$userid = $game_party.actors[$scene.actor_index].id
p $userid
####################
super
# 光标右
if Input.repeat?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
[url=home.php?mod=space&uid=370741]@Index[/url] += 1
@index %= $game_party.actors.size
end
# 光标左
if Input.repeat?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
@index += $game_party.actors.size - 1
@index %= $game_party.actors.size
end
# 设置活动块坐标
if self.actor != nil
self.x = self.actor.screen_x
self.y = self.actor.screen_y
end
end
end
复制代码
作者:
shabi
时间:
2014-1-12 09:30
创建一种物品,它会给使用者附加状态,根据哪个人有此状态条件分歧执行命令。
作者:
szzyc0
时间:
2014-1-12 11:25
够了,我自己解决了。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1