Project1
标题:
求独立变量的脚本
[打印本页]
作者:
渝川
时间:
2013-11-20 19:51
标题:
求独立变量的脚本
本川正在研究纯事件的arpg,已经初有成效了,现在最大的问题就是代表怪物血量的变量了,如果很多怪物都用同一个变量代表血的话,就会这个怪物剩下一滴血,我去打另一个满血怪物的话,那只满血怪物就会死,而若果多个变量操作起来有很烦,这时看到有一个玩意叫独立变量,大概是每个事件中的同一个变量都是独立的,不会互相影响,所以就来求va的独立变量脚本了!谢谢大家,拜托了!
作者:
喵呜喵5
时间:
2013-11-20 21:00
本帖最后由 喵呜喵5 于 2013-11-21 18:26 编辑
=begin
===============================================================================
独立变量 By喵呜喵5
===============================================================================
【说明】
给每个事件添加一个独立变量功能
可以实现类似ARPG中每个怪物事件都有单独的变量储存HP这样的效果
参考独立开关的脚本以下代码其实挺好写的,
唯一困难的是我不知道如何让你看懂这个脚本怎么用……
针对完全不懂脚本的人,请看以下说明:
首先使用事件脚本
m5_give_value(变量的ID)
可以让指定ID的变量值变成当前事件的独立变量,
接着你可以用正常的方式修改该ID变量的数值或者在条件分歧中判断变量的数值
全部完成以后,使用事件脚本
m5_send_value(变量的ID)
将该ID变量的数值保存进这个事件的独立变量,以便下次再读取
针对稍微懂一点脚本的人,请看以下说明:
使用事件脚本
m5_give_value(变量的ID,"变量名称(包括双引号)",事件ID,地图ID)
可以把指定地图指定ID的事件对应名称的独立变量的值赋值给对应ID的变量
变量ID之后的几个参数可以省略不写,默认为当前地图下本事件名为“self”的独立变量
使用事件脚本
m5_send_value(变量的ID,"变量名称(包括双引号)",事件ID,地图ID)
可以把对应ID的变量的值赋值给指定地图指定ID的事件对应名称的独立变量
变量ID之后的几个参数可以省略不写,默认为当前地图下本事件名为“self”的独立变量
=end
$m5script = {} if $m5script.nil?
$m5script["M5SelfVariables"] = true
module M5SelfVariables
#==============================================================================
# 设定部分
#==============================================================================
DEA = 100
#这里设置独立变量的初始值
#==============================================================================
# 设定结束
#==============================================================================
end
#==============================================================================
# 脚本部分
#==============================================================================
class << DataManager
alias m5_20131119_create_game_objects create_game_objects
alias m5_20131119_make_save_contents make_save_contents
alias m5_20131119_extract_save_contents extract_save_contents
def create_game_objects
m5_20131119_create_game_objects
$game_self_variables = Game_SelfVariables.new
end
def make_save_contents
m5_20131119_make_save_contents
contents[:self_variables] = $game_self_variables
contents
end
def extract_save_contents(contents)
m5_20131119_extract_save_contents(contents)
$game_self_variables = contents[:self_variables]
end
end
class Game_SelfVariables < Game_SelfSwitches
def [](key)
@data[key]
end
end
class Game_Interpreter
def m5_get_value(key= "self",event_id = @event_id,map_id = @map_id)
value = $game_self_variables[[map_id,event_id,key]]
return (value ? value : M5SelfVariables::DEA)
end
def m5_change_value(value= 0,key= "self",event_id= @event_id,map_id= @map_id)
$game_self_variables[[map_id,event_id,key]] = value
end
def m5_give_value(var = 0,key = "self",event_id = @event_id,map_id = @map_id)
$game_variables[var] = m5_get_value(key,event_id,map_id)
end
def m5_send_value(var = 0,key= "self",event_id = @event_id,map_id = @map_id)
m5_change_value($game_variables[var],key,event_id,map_id)
end
end
复制代码
作者:
渝川
时间:
2013-11-21 17:21
谢谢,不过还是有点小乱,可以具体说说吗?拜托了!
作者:
喵呜喵5
时间:
2013-11-21 18:05
本帖最后由 喵呜喵5 于 2013-11-21 18:25 编辑
TM截图20131121180515.png
(13.19 KB, 下载次数: 26)
下载附件
保存到相册
2013-11-21 18:05 上传
(注释写错了,上面的语句最终实现的效果是本事件的HP扣了50 = =…………)
可以的话请@ 或者用回复不然我真心注意不到………………
作者:
渝川
时间:
2013-11-22 22:34
谢谢喵大,终于会了!谢谢
@喵呜喵5
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1