求教于rpg脚本qq炫舞高手脚本

【新人求教】关于立绘脚本的使用【rpg制作大师吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:52,372贴子:
【新人求教】关于立绘脚本的使用收藏
我从去年开始接触va,但是没有用过立绘,一直用头像我用的脚本是上网搜的#------------------------------------------------------------------------------##
Galv's Message Busts#------------------------------------------------------------------------------##
For: RPGMAKER VX ACE#
Version 1.1#------------------------------------------------------------------------------##
- version 1.1 - added option to make busts slide onto the screen#
- version 1.0 - release#------------------------------------------------------------------------------##
This script automatically displays a message bust instead of a face.#------------------------------------------------------------------------------##
INSTRUCTIONS:#
Put in script list below Materials and above Main.##
Put bust images in Graphics/Pictures/ and name them the same as the face#
graphic used in the message, plus the position of the face in it.#
For example:#
If the message shows "Actor1" face file and uses the first face in that file#
then you will name the bust image "Actor1-1.png"##
Download the demo if you don't understand#------------------------------------------------------------------------------##
SCRIPT CALL#------------------------------------------------------------------------------##
bust_mirror(x)
# x can be true or false. All messages after this#
# call will change until changed again.#
# false = on left. true = on right and flipped.##------------------------------------------------------------------------------# ($imported ||= {})["Galvs_Message_Busts"] = truemodule Galv_Bust #------------------------------------------------------------------------------##
SCRIPT SETTINGS#------------------------------------------------------------------------------#
DISABLE_SWITCH = 1
# Turn swith ON to disable busts and show normal face
BUST_Z = -1
# adds to z value of busts if needed. A negative number
# will make the bust appear below the message window.
BUST_Y_OVER = false
# can be true or false
# true = busts sit at the bottom of the screen
# false = busts sit on top of the message window
TEXT_X = 0
# Offset text when displaying busts above the message
# window. The script automatically offsets the text x
# by the bust image width IF the BUST_Z is 0 or more.
SLIDE = true
# Slide portrait onto the screen instead of fading in.
#------------------------------------------------------------------------------##
END SCRIPT SETTINGS#------------------------------------------------------------------------------# end
class Game_Interpreter
def bust_mirror(state)
$game_message.mirror = state end
alias galv_busts_command_101 command_101 def command_101
$game_message.bust_name = @params[0]
$game_message.bust_index = @params[1]
galv_busts_command_101 endend # Game_Interpreter
class Game_Message attr_accessor :bust_name attr_accessor :bust_index attr_accessor :mirror
alias galv_busts_message_initialize initialize def initialize
galv_busts_message_initialize
= false end
alias galv_busts_message_clear clear def clear
_name = ""
@bust_index = 0
galv_busts_message_clear endend # Game_Message
class Window_Message & Window_Base
alias galv_busts_window_create_back_bitmap create_back_bitmap def create_back_bitmap
@bust = Sprite.new if @bust.nil?
@bust.visible = true
@bust.opacity = 0
@bust.z = z + Galv_Bust::BUST_Z
galv_busts_window_create_back_bitmap end
alias galv_busts_window_dispose dispose def dispose
galv_busts_window_dispose
dispose_bust end
def dispose_bust
@bust.dispose if !@bust.nil?
@bust.bitmap.dispose if !@bust.bitmap.nil? end
alias galv_busts_window_update_back_sprite update_back_sprite def update_back_sprite
galv_busts_window_update_back_sprite
update_bust if openness & 0 end
def update_bust
if !$game_message.bust_name.empty? && !$game_switches[Galv_Bust::DISABLE_SWITCH]
@bust.mirror = $game_message.mirror
@bust.bitmap = Cache.picture($game_message.bust_name + "-" + ($game_message.bust_index + 1).to_s)
if !$game_message.mirror
if Galv_Bust::SLIDE
@bust.x = ((openness.to_f / 255) * @bust.width) - @bust.width
@bust.x = 0
if Galv_Bust::SLIDE
@bust.x = Graphics.width - ((openness.to_f / 255) * @bust.width)
@bust.x = Graphics.width - @bust.bitmap.width
if $game_message.position == 2 && !Galv_Bust::BUST_Y_OVER
@bust.y = Graphics.height - @bust.bitmap.height - self.height
@bust.y = Graphics.height - @bust.bitmap.height
@bust.bitmap = nil
if $game_switches[Galv_Bust::DISABLE_SWITCH]
@bust.opacity = 0
@bust.opacity = openness
@bust.update end
def new_line_x
if $game_switches[Galv_Bust::DISABLE_SWITCH]
$game_message.face_name.empty? ? 0 : 112
if @bust.z &= self.z && !$game_message.mirror && $game_message.position == 2
$game_message.face_name.empty? ? 0 : @bust.bitmap.width + Galv_Bust::TEXT_X
def draw_face(face_name, face_index, x, y, enabled = true)
return if !$game_message.face_name.empty? && !$game_switches[Galv_Bust::DISABLE_SWITCH]
super end end # Window_Message & Window_Base这个脚本,但是我不知道改怎么使用,请大大教我_(:3亅
全新怎么制作游戏,急速上线,算法好,盈利快,运维,比网络手游厅更运营,无需经验,无需技术,玩家多生意好!怎么制作游戏,指尖,马上当老板
一般来说不都是直接显示图片吗……。
就是在图片文件夹里放对应脸图的立绘比如说你有个“男主角”,他的脸图文件名字是“男主角”脸图里一共有8个表情,那么立绘图片的名字如果是“男主角_1”,那么使用1号表情的时候就会出现这个立绘了,之后的就是按照"男主角_2"、“男主角_3”以此类推了
登录百度帐号推荐应用后使用快捷导航没有帐号?
您尚未登录,请登录后浏览更多内容!
只需一步,快速开始
只需一步,快速开始
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
查看: 1080|回复: 9
注册时间最后登录阅读权限10积分2精华0帖子
生存者Lv.1, 积分 2, 距离下一级还需 48 积分
额= =最近才被朋友拉过来玩求生之路,想在家里的电脑里下载一个,但是不知道怎么弄,下面有几个问题
就是,我和我朋友都在3X,好像目前只能用2121版本才能玩是么?以后会更新到2136版本么?
然后我想在家里电脑下载一个求生之路,到百度上面找到一个求生之路V2121和求生之路V2121公网联机版,这两个版本有什么区别么?如果我用的不是公网联机版还可以通过这个登录器直接联机玩么?还是说要下个什么补丁?在哪下载?
注册时间最后登录阅读权限10积分2精华0帖子
生存者Lv.1, 积分 2, 距离下一级还需 48 积分
新人无爱么= =感觉游戏大小不对啊,从这个论坛里找到的是10G,网上那个公众联网版是7G,普通的那个VG?到底是哪个= =
逼我放弃这游戏的节奏么= =好复杂啊
注册时间最后登录阅读权限10积分7精华0帖子
生存者Lv.1, 积分 7, 距离下一级还需 43 积分
去浩方上下载试试吧 我的就是从上面下载的 我也是X3的
注册时间最后登录阅读权限20积分83精华0帖子
生存者Lv.2, 积分 83, 距离下一级还需 17 积分
2121的&&是10.1G 很容易区分
注册时间最后登录阅读权限100积分3026精华0帖子
坚持就是信仰!
生存者Lv.7, 积分 3026, 距离下一级还需 974 积分
排名10昨日变化
我20多G怎么破
注册时间最后登录阅读权限30积分163精华0帖子
生存者Lv.3, 积分 163, 距离下一级还需 37 积分
排名<font color="#FF昨日变化
{:soso_e141:}我G..G...。。不同地方下载有不同的大小。。。请无视。
注册时间最后登录阅读权限90积分1485精华0帖子
信念锐利有如手中之爆弹枪,虔诚坚定则似身披动力盔甲
生存者Lv.6, 积分 1485, 距离下一级还需 315 积分
排名9昨日变化
我的2136好像才8G多一点。。。
注册时间最后登录阅读权限70积分401精华0帖子
生存者Lv.5, 积分 401, 距离下一级还需 399 积分
排名6昨日变化
刚刚好六个字
2#酱油神水月,请多指教,喵~~~~
注册时间最后登录阅读权限10积分7精华0帖子
生存者Lv.1, 积分 7, 距离下一级还需 43 积分
论坛里就有
注册时间最后登录阅读权限90积分1437精华0帖子
在这个需要我拯救世界的时刻
只需要nico poi dua
生存者Lv.6, 积分 1437, 距离下一级还需 363 积分
排名<font color="#FF昨日变化
楼主知足吧&&咱的电脑求生加上自制的MOD跟度娘的各种VPK音效 壁纸 人物声音 共大小37.6G&&所以&&汝可以不用放弃这游戏了 不然咱直接删号算了
站点公告 /1
国内L4D2从日起与正版同步版本至v2149,请注意更新...
Powered by Discuz!【脚本界】一些实用的脚本【rpg制作大师吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:52,372贴子:
【脚本界】一些实用的脚本收藏
全新怎么制作游戏,急速上线,算法好,盈利快,运维,比网络手游厅更运营,无需经验,无需技术,玩家多生意好!怎么制作游戏,指尖,马上当老板
百度要审核……3L先等等吧……
2.↓此为近大远小脚本,使用远景图的朋友必用#============================================================================== # 本脚本来自,转载和使用请保留此信息 #============================================================================== #==============================================================================# 近大远小 V 1.1 BY 亿万星辰#==============================================================================# 似乎很多人都很喜欢类似天之痕里人物在地图上的位置的不同,人物大小的相应改变。# 所以写了这个……一开始我还说很难实现……&& =。= 汗,被自己推翻了……# 看来勇于探索的精神还是要有的……## 不废话了,说下使用方法:# 因为考虑到不可能所有的地图都用到这个效果,所以使用了这样的方法。如果想要实现# 这个效果的,那么请在地图名中加入“★”这个标志,这样就会按照近大远小来处理人# 物,否则效果不变。# 根据一位朋友的建议,不可能每幅地图的比例都一样,所以加设了下面的一些设置,# 下面举几个例子,大家一看便知:#&&&&&&&& MAP001&&&&&&&&&&&& 无近大远小效果#&&&&&&&& MAP001★0.5~1.0&&& 屏幕最上方比例为原始大小的0.5倍,最下方为1.0倍#&&&&&&&& MAP001★1.0~2.0&&& 屏幕最上方比例为原始大小的1.0倍,最下方为2.0倍# 另外,人物在放大后会略显毛边儿,这也是没办法的,呵呵~~# 此脚本对NPC同样适用……具体可参考演示。# 不过也有不足,即使这样修改了大小,游戏中的各种人物还是占据一格的大小,当人变# 小时, 彼此之间距离会有些大……#==============================================================================class Scene_Title alias stars_main main def main&&& stars_main&&& $data_mapinfos&&&&&& = load_data("Data/MapInfos.rxdata") endendclass Sprite_Character & RPG::Sprite alias stars_update update def update&&& stars_update&&& id = $game_map.map_id&&& name = $data_mapinfos[id].name&&& if name.include?("★")&&&&& rage = name.split(/★/)[1]&&&&& min_rate = rage.split(/~/)[0].to_f&&&&& max_rate = rage.split(/~/)[1].to_f&&&&& rate =&& min_rate + (@character.y.to_f / $game_map.height.to_f * (max_rate - min_rate))&&&&& self.zoom_x = self.zoom_y = rate&&& end endend#==============================================================================# 本脚本来自,使用和转载请保留此信息#==============================================================================
3.↓此为双远景#==============================================================================# 本脚本来自,使用前请参考制作录像#==============================================================================# ■ Spriteset_Map#------------------------------------------------------------------------------#&&& 处理地图画面活动块和元件的类。本类在# Scene_Map 类的内部使用。#==============================================================================class Spriteset_Map&& #--------------------------------------------------------------------------&& # ● 初始化对像&& #--------------------------------------------------------------------------&& def initialize&&&& # 生成显示端口&&&& @viewport1 = Viewport.new(0, 0, 640, 480)&&&& @viewport2 = Viewport.new(0, 0, 640, 480)&&&& @viewport3 = Viewport.new(0, 0, 640, 480)&&&& @viewport2.z = 200&&&& @viewport3.z = 5000&&&& # 生成元件地图&&&& @tilemap = Tilemap.new(@viewport1)&&&& @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)&&&& for i in 0..6&&&&&& autotile_name = $game_map.autotile_names[i]&&&&&& @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)&&&& end&&&& @tilemap.map_data = $game_map.data&&&& @tilemap.priorities = $game_map.priorities&&&& # 生成远景平面&&&& @panorama = Plane.new(@viewport1)&&&& @panorama.z = -1000&&&& @panorama2 = Plane.new(@viewport1)&&&& @panorama2.z = 3000&&&& # 生成雾平面&&&& @fog = Plane.new(@viewport1)&&&& @fog.z = 3000&&&& # 生成角色活动块&&&& @character_sprites = []&&&& for i in $game_map.events.keys.sort&&&&&& sprite = Sprite_Character.new(@viewport1, $game_map.events[i])&&&&&& @character_sprites.push(sprite)&&&& end&&&& @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))&&&& # 生成天气&&&& @weather = RPG::Weather.new(@viewport1)&&&& # 生成图片&&&& @picture_sprites = []&&&& for i in 1..50&&&&&& @picture_sprites.push(Sprite_Picture.new(@viewport2,&&&&&&&& $game_screen.pictures[i]))&&&& end
&&&& # 生成计时器块&&&& @timer_sprite = Sprite_Timer.new&&&& # 刷新画面&&&& update&& end&& #--------------------------------------------------------------------------&& # ● 释放&& #--------------------------------------------------------------------------&& def dispose&&&& # 释放元件地图&&&& @tilemap.tileset.dispose&&&& for i in 0..6&&&&&& @tilemap.autotiles[i].dispose&&&& end&&&& @tilemap.dispose&&&& # 释放远景平面&&&& @panorama.dispose&&&& @panorama2.dispose&&&& # 释放雾平面&&&& @fog.dispose&&&& # 释放角色活动块&&&& for sprite in @character_sprites&&&&&& sprite.dispose&&&& end&&&& # 释放天候&&&& @weather.dispose&&&& # 释放图片&&&& for sprite in @picture_sprites&&&&&& sprite.dispose&&&& end&&&& # 释放计时器块&&&& @timer_sprite.dispose&&&& # 释放显示端口&&&& @viewport1.dispose&&&& @viewport2.dispose&&&& @viewport3.dispose&& end&& #--------------------------------------------------------------------------&& # ● 刷新画面&& #--------------------------------------------------------------------------&& def update&&&& # 远景与现在的情况有差异发情况下&&&& if @panorama_name != $game_map.panorama_name or&&&&&&& @panorama_hue != $game_map.panorama_hue&&&&&& @panorama_name = $game_map.panorama_name&&&&&& @panorama_hue = $game_map.panorama_hue&&&&&& if @panorama.bitmap != nil&&&&&&&& @panorama.bitmap.dispose&&&&&&&& @panarama2.bitmap.dispose&&&&&&&& @panorama2.bitmap = nil&&&&&&&& @panarama.bitmap = nil&&&&&& end&&&&&& if @panorama_name != ""&&&&&&&& @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)&&&&&&&& @panorama2.bitmap = RPG::Cache.panorama(@panorama_name+"_2", @panorama_hue)&&&&&& end
&&&&&& Graphics.frame_reset&&&& end&&&& # 雾与现在的情况有差异的情况下&&&& if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue&&&&&& @fog_name = $game_map.fog_name&&&&&& @fog_hue = $game_map.fog_hue&&&&&& if @fog.bitmap != nil&&&&&&&& @fog.bitmap.dispose&&&&&&&& @fog.bitmap = nil&&&&&& end&&&&&& if @fog_name != ""&&&&&&&& @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)&&&&&& end&&&&&& Graphics.frame_reset&&&& end&&&& # 刷新元件地图&&&& @tilemap.ox = $game_map.display_x / 4&&&& @tilemap.oy = $game_map.display_y / 4&&&& @tilemap.update&&&& # 刷新远景平面&&&& @panorama.ox = $game_map.display_x / 4&&&& @panorama.oy = $game_map.display_y / 4&&&& @panorama2.ox = @panorama.ox&&&& @panorama2.oy = @panorama.oy&&&& # 刷新雾平面&&&& @fog.zoom_x = $game_map.fog_zoom / 100.0&&&& @fog.zoom_y = $game_map.fog_zoom / 100.0&&&& @fog.opacity = $game_map.fog_opacity&&&& @fog.blend_type = $game_map.fog_blend_type&&&& @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox&&&& @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy&&&& @fog.tone = $game_map.fog_tone&&&& # 刷新角色活动块&&&& for sprite in @character_sprites&&&&&& sprite.update&&&& end&&&& # 刷新天候图形&&&& @weather.type = $game_screen.weather_type&&&& @weather.max = $game_screen.weather_max&&&& @weather.ox = $game_map.display_x / 4&&&& @weather.oy = $game_map.display_y / 4&&&& @weather.update&&&& # 刷新图片&&&& for sprite in @picture_sprites&&&&&& sprite.update&&&& end&&&& # 刷新计时器块&&&& @timer_sprite.update&&&& # 设置画面的色调与震动位置&&&& @viewport1.tone = $game_screen.tone&&&& @viewport1.ox = $game_screen.shake&&&& # 设置画面的闪烁色&&&& @viewport3.color = $game_screen.flash_color&&&& # 刷新显示端口&&&& @viewport1.update&&&& @viewport3.update&& endend#==============================================================================# 本脚本来自,使用前请参考制作录像#==============================================================================
4.↓此为文字描边百度不给发……
5.↓得失物品提示,实用审核……
6.时间闸脚本!# ▼▲▼ XRXS65A. CP制御ターンシステム「シンセ?ゲージ」 ▼▲▼ built201202# by 桜雅 在土#==============================================================================# □ カスタマイズポイント#==============================================================================class XRXS65A&& #--------------------------------------------------------------------------&& # 「アイコン设定」&& #--------------------------------------------------------------------------&& DEFAULT = "001" # ディフォルトアイコン&& # アイコンハッシュ&& 记述方式 : アクターID=&アイコン名#这些是主角的图标,放在ICONS里面&& ICONS = {&&&& 1=&"1",&&&& 2=&"2",&&&& 3=&"3",&&&& 4=&"4",&&&& 5=&"5",&& }#1号是一号主角,以此类推#这些是敌人的图标&& # アイコンハッシュE&& 记述方式 : エネミーID=&アイコン名&& ICONE = {&&&& 1=&"001",&&&& 2=&"002",&&&& 3=&"003",&&&& 4=&"004",&&&& 5=&"005",&&&& 6=&"006",&&&& 7=&"007",&&&& 8=&"008",&&&& 9=&"009",&&&& 10=&"010",&&&& 11=&"011",&&&& 12=&"012",&&&& 13=&"013",&&&& 14=&"014",&&&& 15=&"015",&&&& 16=&"016",&&&& 17=&"017",&&&& 18=&"018",&&&& 19=&"019",&&&& 20=&"020",&&&& 21=&"021",&&&& 22=&"022",&&&& 23=&"023",&&&& 24=&"024",&&&& 25=&"025",&&&& 26=&"026",&&&& 27=&"027",&&&& 28=&"028",&&&& 29=&"029",&&&& 30=&"030",&&&& 31=&"031",&&&& 32=&"032",&&&& 33=&"033",&&&& 34=&"034",&&&& 35=&"035",&&&& 36=&"036",&&&& 37=&"037",&&&& 38=&"038",&&&& 39=&"039",&&&& 40=&"040",&&&& 41=&"041",&&&& 42=&"041",&&&& 43=&"041",&&&& 44=&"044",&&&& 45=&"045",&&&& 46=&"046",&&&& 47=&"047",
如何制作软件,黑马程序员独有的运营模式,深得学员和企业的信任,品牌深入人心如何制作软件,讲师高超的授课技巧和精品课程,成就了一批又一批业界精英!
&&&& 121=&"121",&&&&&& }#同上&& #--------------------------------------------------------------------------&& # 「シンセ?ゲージ」&& #--------------------------------------------------------------------------&& SKIN = "123"&& # スキン&& X&&&& =&& 300&&&&&&&&& # X 座标16&& Y&&&& =&& 32&&&&&&&&& # Y 座标end#==============================================================================# --- CP メーターをまとめて管理するクラス、表示関系はすべてココ --- [再定义]#==============================================================================class CP_Meters&& #--------------------------------------------------------------------------&& # ○ オブジェクト初期化&& #--------------------------------------------------------------------------&& def initialize&&&& # シンセゲージの生成&&&& @base = Sprite.new&&&& @base.bitmap = RPG::Cache.windowskin(XRXS65A::SKIN).dup&&&& @base.x = XRXS65A::X&&&& @base.y = XRXS65A::Y&&&& @base.z = XRXS65A::X&&&& @width&& = @base.bitmap.width - 45&&&& @height = @base.bitmap.height&&&& @icon_set = []&&&& refresh&& end&& #--------------------------------------------------------------------------&& # ○ リフレッシュ&& #--------------------------------------------------------------------------&& def refresh&&&& # 生成すべきバトラーの取得&&&& need_initializes = []&&&& for battler in $game_party.actors + $game_troop.enemies&&&&&& exist = false&&&&&& for set in @icon_set&&&&&&&& exist |= (set[1] == battler)&&&&&& end&&&&&& need_initializes.push(battler) unless exist&&&& end&&&& for battler in need_initializes&&&&&& iconname = nil&&&&&& if battler.is_a?(Game_Actor)&&&&&&&& iconname = XRXS65A::ICONS[battler.id]&&&&&& else&&&&&&&& iconname = XRXS65A::ICONE[battler.id]&&&&&& end&&&&&& if iconname == nil&&&&&&&& iconname = XRXS65A::DEFAULT&&&&&& end&&&&&& sprite = Sprite.new&&&&&& sprite.bitmap = RPG::Cache.icon(iconname).dup&&&&&& if battler.is_a?(Game_Actor)&&&&&&&& sprite.y = XRXS65A::Y - @height&& + 55&&&&&& else&&&&&&&& sprite.y = XRXS65A::Y + @height / 2 - 12 &&&&&& end&&&&&& @icon_set.push([sprite, battler])&&&& end&&&& # 更新&&&& for set in @icon_set&&&&&& set[0].x = XRXS65A::X + @width * set[1].cp / set[1].max_cp &&&&&& set[0].z = set[0].x&&&&&& set[0].visible = false if set[1].dead? or !set[1].exist?&&&&&& set[0].visible = true if not set[1].dead? &&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 可视状态&& #--------------------------------------------------------------------------&& def visible=(b)&&&& @base.visible = b&&&& @icon_set.each{|set| set[0].visible = b }&& end&& #--------------------------------------------------------------------------&& # ○ 解放&& #--------------------------------------------------------------------------&& def dispose&&&& @base.dispose&&&& @icon_set.each{|set| set[0].dispose }&& endend
这一段也插进去# ▼▲▼ XRXS65. CP制御ターンシステム ver.β ▼▲▼ built 201120# by 桜雅 在土#==============================================================================# □ カスタマイズポイント#==============================================================================module XRXS65&& #&& # 「バトルスピード」(数値が高いほど早い)&& #&& SPEED = 2.5&& #&& # 戦闘开始时 CP。&& 固定値と占有率&& #&& CP_PRESET_FIXNUM = 0&& CP_PRESET_RATIO&& = 0.2&& #&& # ターンコントローラ (nil&& : カウント/ターンを有効。&& #&&&&&&&&&&&&&&&&&&&&& 数値 : そのインデックスをもつエネミーが支配)&& #&& TC = 0&& #&& # カウント/ターン (TCが有効な场合は无视)&& #&& CPT = 40&& #&& # CP スキン&& #&& SKIN&&&&&&&& = "123"&& # スキンファイル名(Graphics/Windowskinsフォルダ)&& LINE_HEIGHT =&& 6&&&&&&&& # スキンの"一行"の縦幅[単位:ピクセル]&& #&& # 表示位置セッティング&& #&& X_OFFSET = 144&&&& # 横位置&& Y_OFFSET = 464&&&& # 縦位置&& ALIGN&&&& =&&& 1&&&& #「位置揃え」(CPメーターの位置。0:左寄せ&& 1:中央&& 2:右寄せ)&& MAX&&&&&& =&&& 4&&&& # 确保するサイズ[単位:~人分]&& #&& # アクターコマンドがポップしたときの効果音&& #&& COMMAND_UP_SE = "Audio/SE/046-Book01.ogg"end#==============================================================================# --- CP メーターの描画情报の取得 --- (Game_Battlerにインクルードされます)#==============================================================================module XRXS_CP&& #--------------------------------------------------------------------------&& # ○ スキンライン (スキンの何行目を使うか)&& #--------------------------------------------------------------------------&& def cp_linetype&&&& # CP フルの场合はスキンの 2 行目を使う&&&& return 2 if self.cp_full?&&&& # 通常はスキンの 1 行目を使う&&&& return 1&& end&& #--------------------------------------------------------------------------&& # ○ メーター量[単位:%]&& #--------------------------------------------------------------------------&& def cp_lineamount
&&&& # 戦闘不能の场合は 0 %として表示させる&&&& return 0 if self.dead?&&&& # CP値を%値に変换して返却する&&&& return 100 * self.cp / self.max_cp&& endend## カスタマイズポイントここまで。#------------------------------------------------------------------------------#==============================================================================# --- XRXS. CP机构 ---#==============================================================================module XRXS_CP_SYSTEM&& #----------------------------------------------------------------------------&& # ○ 合计 AGI の取得&& #----------------------------------------------------------------------------&& def self.total_agi&&&& total = 0&&&& for battler in $game_party.actors + $game_troop.enemies&&&&&& total += battler.agi&&&& end&&&& return total&& endend#==============================================================================# --- バトラーにCP机能を追加 モジュール ---#==============================================================================module XRXS_CP&& #--------------------------------------------------------------------------&& # ○ 最大 CP の取得&& #--------------------------------------------------------------------------&& def max_cp&&&& return 65535&& end&& #--------------------------------------------------------------------------&& # ○ CP の取得と设定&& #--------------------------------------------------------------------------&& def cp&&&& return @cp == nil ? @cp = 0 : @cp&& end&& def cp=(n)&&&& @cp = [[n.to_i, 0].max, self.max_cp].min&& end&& #--------------------------------------------------------------------------&& # ○ CP 初期设定&& #--------------------------------------------------------------------------&& def cp_preset&&&& percent = self.max_cp * XRXS65::CP_PRESET_RATIO * (rand(16) + 16) * self.agi / XRXS_CP_SYSTEM.total_agi / 24&&&& self.cp = XRXS65::CP_PRESET_FIXNUM + percent&& end&& #--------------------------------------------------------------------------&& # ○ CP カウントアップ
LS就是我对了LS的脚本可能会冲突好了,审核的到我空间曲看吧完结
5.↓得失物品提示,实用#==============================================================================# 本脚本来自,使用和转载请保留此信息#============================================================================== # 注意!!!在对话后得到物品,请在对话后先用事件等待3帧,否则对话框来不及消失。# 开关定义:$不显示金钱窗口 = 41$不显示物品窗口 = 42$不显示武器窗口 = 43$不显示防具窗口 = 44# 以上开关,当打开的时候,获得物品将不会提示,比如默认打开41号开关,获得金钱不再提示# ————————————————————————————————————class Interpreter&&&& #--------------------------------------------------------------------------&& # ● 增减金钱&& #--------------------------------------------------------------------------&& def command_125&&&& value = operate_value(@parameters[0], @parameters[1], @parameters[2])&&&& $game_party.gain_gold(value)&&&& if $game_switches[$不显示金钱窗口]==false&&&&&& carol3_66RPG = Window_Base.new((640-160)/2,128,180,100)&&&&&& carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)&&&&&& if value &= 0&&&&&&&& carol3_66RPG.contents.draw_text(0,0,240,32,"获得金钱:")&&&&&&&& #——声效,可以自己改&&&&&&&& Audio.se_play("Audio/SE/"+"006-System06",80,100)&&&&&& else&&&&&&&& carol3_66RPG.contents.draw_text(0,0,240,32,"失去金钱:")&&&&&&&& #——声效,可以自己改&&&&&&&& Audio.se_play("Audio/SE/"+"005-System05",80,100)&&&&&& end&&&&&&&&&& carol3_66RPG.contents.draw_text(0,32,240,32,value.abs.to_s)&&&&&& carol3_66RPG.contents.draw_text(0,32,140,32, $data_system.words.gold,2)&&&&&& carol3_66RPG.opacity = 160&&&&&& for i in 0..30&&&&&&&& Graphics.update&&&&&& end&&&&&& for i in 0..10&&&&&&&& carol3_66RPG.opacity -= 30&&&&&&&& carol3_66RPG.contents_opacity -= 30&&&&&&&& Graphics.update&&&&&& end&&&&&& carol3_66RPG.dispose&&&& end&&&& return true
&& end&& #--------------------------------------------------------------------------&& # ● 增减物品&& #--------------------------------------------------------------------------&& def command_126&&&& value = operate_value(@parameters[1], @parameters[2], @parameters[3])&&&& $game_party.gain_item(@parameters[0], value)&&&& if $game_switches[$不显示物品窗口]==false&&&&&& carol3_66RPG_item = $data_items[@parameters[0]]&&&&&& carol3_66RPG = Window_Base.new((640-300)/2,128,300,100)&&&&&& carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)&&&&&& if value &= 0&&&&&&&& carol3_66RPG.contents.draw_text(0,0,240,32,"获得物品:")&&&&&&&&&&&& #——声效,可以自己改&&&&&&&& Audio.se_play("Audio/SE/"+"006-System06",80,100)&&&&&& else&&&&&&&& carol3_66RPG.contents.draw_text(0,0,240,32,"失去物品:")&&&&&&&&&&&& #——声效,可以自己改&&&&&&&& Audio.se_play("Audio/SE/"+"005-System05",80,100)&&&&&& end&&&&&& carol3_66RPG_bitmap = RPG::Cache.icon(carol3_66RPG_item.icon_name)&&&&&& carol3_66RPG.contents.blt(0, 32, carol3_66RPG_bitmap, Rect.new(0, 0, 24, 24), 255)&&&&&& carol3_66RPG.contents.draw_text(0 + 28, 32, 212, 32, carol3_66RPG_item.name, 0)&&&&&& carol3_66RPG.contents.draw_text(0, 32, 268, 32, "×"+value.abs.to_s, 2)&&&&&& carol3_66RPG.opacity = 160&&&&&& for i in 0..30&&&&&&&& Graphics.update&&&&&& end&&&&&& for i in 0..10&&&&&&&& carol3_66RPG.opacity -= 30&&&&&&&& carol3_66RPG.contents_opacity -= 30&&&&&&&& Graphics.update&&&&&& end&&&&&& carol3_66RPG.dispose&&&& end&&&& return true&& end&& #--------------------------------------------------------------------------&& # ● 增减武器&& #--------------------------------------------------------------------------&& def command_127&&&& value = operate_value(@parameters[1], @parameters[2], @parameters[3])
&&&& $game_party.gain_weapon(@parameters[0], value)&&&& if $game_switches[$不显示武器窗口]==false&&&&&& carol3_66RPG_item = $data_weapons[@parameters[0]]&&&&&& carol3_66RPG = Window_Base.new((640-300)/2,128,300,100)&&&&&& carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)&&&&&& if value &= 0&&&&&&&& carol3_66RPG.contents.draw_text(0,0,240,32,"获得武器:")&&&&&&&&&&&& #——声效,可以自己改&&&&&&&& Audio.se_play("Audio/SE/"+"006-System06",80,100)&&&&&& else&&&&&&&& carol3_66RPG.contents.draw_text(0,0,240,32,"失去武器:")&&&&&&&&&&&& #——声效,可以自己改&&&&&&&& Audio.se_play("Audio/SE/"+"005-System05",80,100)&&&&&& end&&&&&& carol3_66RPG_bitmap = RPG::Cache.icon(carol3_66RPG_item.icon_name)&&&&&& carol3_66RPG.contents.blt(0, 32, carol3_66RPG_bitmap, Rect.new(0, 0, 24, 24), 255)&&&&&& carol3_66RPG.contents.draw_text(0 + 28, 32, 212, 32, carol3_66RPG_item.name, 0)&&&&&& carol3_66RPG.contents.draw_text(0, 32, 268, 32, "×"+value.abs.to_s, 2)&&&&&& carol3_66RPG.opacity = 160&&&&&& for i in 0..30&&&&&&&& Graphics.update&&&&&& end&&&&&& for i in 0..10&&&&&&&& carol3_66RPG.opacity -= 30&&&&&&&& carol3_66RPG.contents_opacity -= 30&&&&&&&& Graphics.update&&&&&& end&&&&&& carol3_66RPG.dispose&&&& end&&&& return true&& end&& #--------------------------------------------------------------------------&& # ● 增减防具&& #--------------------------------------------------------------------------&& def command_128&&&& value = operate_value(@parameters[1], @parameters[2], @parameters[3])&&&& $game_party.gain_armor(@parameters[0], value)&&&& if $game_switches[$不显示防具窗口]==false&&&&&& carol3_66RPG_item = $data_armors[@parameters[0]]&&&&&& carol3_66RPG = Window_Base.new((640-300)/2,128,300,100)&&&&&& carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
&&&&&& if value &= 0&&&&&&&& carol3_66RPG.contents.draw_text(0,0,240,32,"获得防具:")&&&&&&&&&&&& #——声效,可以自己改&&&&&&&& Audio.se_play("Audio/SE/"+"006-System06",80,100)&&&&&& else&&&&&&&& carol3_66RPG.contents.draw_text(0,0,240,32,"失去防具:")&&&&&&&&&&&& #——声效,可以自己改&&&&&&&& Audio.se_play("Audio/SE/"+"005-System05",80,100)&&&&&& end&&&&&& carol3_66RPG_bitmap = RPG::Cache.icon(carol3_66RPG_item.icon_name)&&&&&& carol3_66RPG.contents.blt(0, 32, carol3_66RPG_bitmap, Rect.new(0, 0, 24, 24), 255)&&&&&& carol3_66RPG.contents.draw_text(0 + 28, 32, 212, 32, carol3_66RPG_item.name, 0)&&&&&& carol3_66RPG.contents.draw_text(0, 32, 268, 32, "×"+value.abs.to_s, 2)&&&&&& carol3_66RPG.opacity = 160&&&&&& for i in 0..30&&&&&&&& Graphics.update&&&&&& end&&&&&& for i in 0..10&&&&&&&& carol3_66RPG.opacity -= 30&&&&&&&& carol3_66RPG.contents_opacity -= 30&&&&&&&& Graphics.update&&&&&& end&&&&&& carol3_66RPG.dispose&&&& end&&&& return true&& endend #==============================================================================# 本脚本来自,使用和转载请保留此信息#==============================================================================
三楼插入↓此为,8方向+人物跟随,二合一,挺实用----------------------------------------------#==============================================================================#============================================================================== ############################################################################################################################ 脚本功能:八方向走与多帧移动之图片修正 + 人物跟随。# 更新日期:日# 更新内容:增加斜方向触发,增加斜方向面向角色(1步之内)# 使用方法:将本脚本插入到main之前。如果你使用了雅土版的八方向走脚本,请确保这个脚本的顺序位置,在雅土八方向走脚本的后面。# 预先处理:请输入每一步的帧数和总共可用的方向数$c3_每一步的帧数 = 4$c3_总共可用的方向数 = 8 #——建议不要修改这个。如果要伪8方向的,就用伪的好了。# 图片处理与功能说明:# 1、每一步的帧数:#&&&& 众所周知,RMXP的移动行走图是一个方向共有4帧,很多人都觉得这个帧数有点少。# 使用这个脚本之后,只要将 $c3_每一步的帧数 这个变量设置一个需要的帧数即可修改# 单方向移动帧数为相应输入值。修改后,需要用photoshop将所有用到的素材的横排# 调整为相应帧数,比如输入了8则要将每一行设置8个图像(即每一个行走图有8列)。# 2、可用方向调整(可用数量:4、8):#&&&& 当为4方向时没有任何变化,还是一个图4行,上左右下4个方向。#&&&& 如果想使用8方向走,将需要八方向行走的行走图在延伸扩大的画布中按照左下、右下、左上、右上继续排布图像。# 即,行走图图片从上到下的面向排列顺序为:下,左,右,上,左下,右下,左上,右上。#&&&& 至于不需要8方向走的普通的NPC(character),使用photoshop将画布向下扩大一倍即可使用。#&&&& 需要注意的是,如果需要斜方向飞鸟,请不要忘记自制素材。# 特别提示:&&&&#&&&&& 使用本脚本前请先考虑清楚是否要做这种效果。因为使用本脚本后需要用photoshop处理character行走图素材# 虽然这种处理用photoshop定义动作只需要5分钟即可全部完成,但在制作阶段会感觉不是很爽(具体的用了才知道)# 作者的建议是,如果你没有足够的制作经验,使用这个脚本得不偿失。请确保自己的能力属于“高手”级别!# 附赠功能:#&&&&& 可以让NPC角色随机8方向走,方法是:NPC角色移动路线为“自定义”,然后自定义里面使用脚本,输入c8即可#&&&&& 可以让NPC角色随机4斜角方向走,方法是:NPC角色移动路线为“自定义”,然后自定义里面使用脚本,输入c4即可#&&&&& 可以使用真·斜4方向行走,参考脚本53行开始# 作者:carol3######################################################################################################################################################################################################################################################class Game_Player & Game_Character if $c3_总共可用的方向数 == 8&&& def update&&&&& last_moving = moving?&&&&& unless moving? or $game_system.map_interpreter.running? or
&&&&&&&&&&&& @move_route_forcing or $game_temp.message_window_showing&&&&&&& # 用井号后面的东西替代前面的,就可以实现斜4方向走&&&&&&& case Input.dir8&&&&&&& when 2&&&&&&&&& move_down #move_lower_left&&&&&&& when 4&&&&&&&&& move_left #move_upper_left&&&&&&& when 6&&&&&&&&& move_right #move_lower_right&&&&&&& when 8&&&&&&&&& move_up #move_upper_right&&&&&&& when 1&&&&&&&&& move_lower_left&&&&&&& when 3&&&&&&&&& move_lower_right&&&&&&& when 7&&&&&&&&& move_upper_left&&&&&&& when 9&&&&&&&&& move_upper_right&&&&&&& end&&&&& end&&&&& # 本地变量记忆坐标&&&&& last_real_x = @real_x&&&&& last_real_y = @real_y&&&&& super&&&&& # 角色向下移动、画面上的位置在中央下方的情况下&&&&& if @real_y & last_real_y and @real_y - $game_map.display_y & CENTER_Y&&&&&&& # 画面向下卷动&&&&&&& $game_map.scroll_down(@real_y - last_real_y)&&&&& end&&&&& # 角色向左移动、画面上的位置在中央左方的情况下&&&&& if @real_x & last_real_x and @real_x - $game_map.display_x & CENTER_X&&&&&&& # 画面向左卷动&&&&&&& $game_map.scroll_left(last_real_x - @real_x)&&&&& end&&&&& # 角色向右移动、画面上的位置在中央右方的情况下&&&&& if @real_x & last_real_x and @real_x - $game_map.display_x & CENTER_X&&&&&&& # 画面向右卷动&&&&&&& $game_map.scroll_right(@real_x - last_real_x)&&&&& end&&&&& # 角色向上移动、画面上的位置在中央上方的情况下&&&&& if @real_y & last_real_y and @real_y - $game_map.display_y & CENTER_Y&&&&&&& # 画面向上卷动&&&&&&& $game_map.scroll_up(last_real_y - @real_y)
&&&&& end&&&&& # 不在移动中的情况下&&&&& unless moving?&&&&&&& # 上次主角移动中的情况&&&&&&& if last_moving&&&&&&&&& # 与同位置的事件接触就判定为事件启动&&&&&&&&& result = check_event_trigger_here([1,2])&&&&&&&&& # 没有可以启动的事件的情况下&&&&&&&&& if result == false&&&&&&&&&&& # 调试模式为 ON 并且按下 CTRL 键的情况下除外&&&&&&&&&&& unless $TEST and Input.press?(Input::CTRL)&&&&&&&&&&&&& # 遇敌计数下降&&&&&&&&&&&&& if @encounter_count & 0&&&&&&&&&&&&&&& @encounter_count -= 1&&&&&&&&&&&&& end&&&&&&&&&&& end&&&&&&&&& end&&&&&&& end&&&&&&& # 按下 C 键的情况下&&&&&&& if Input.trigger?(Input::C)&&&&&&&&& # 判定为同位置以及正面的事件启动&&&&&&&&& check_event_trigger_here([0])&&&&&&&&& check_event_trigger_there([0,1,2])&&&&&&& end&&&&& end&&& end&&& #--------------------------------------------------------------------------&&& # ● 正面事件的启动判定&&& #--------------------------------------------------------------------------&&& def check_event_trigger_there(triggers)&&&&& result = false&&&&& # 事件执行中的情况下&&&&& if $game_system.map_interpreter.running?&&&&&&& return result&&&&& end&&&&& # 计算正面坐标&&&&& new_x = @x&&&&& new_y = @y&&&&& case @direction&&&&& when 1&&&&&&& new_x -= 1&&&&&&& new_y += 1&&&&& when 2&&&&&&& new_y += 1&&&&& when 3&&&&&&& new_x += 1
&&&&&&& new_y += 1&&&&& when 4&&&&&&& new_x -= 1&&&&& when 6&&&&&&& new_x += 1&&&&& when 7&&&&&&& new_x -= 1&&&&&&& new_y -= 1&&&&& when 8&&&&&&& new_y -= 1&&&&& when 9&&&&&&& new_x += 1&&&&&&& new_y -= 1&&&&& end&&&&& # 全部事件的循环&&&&& for event in $game_map.events.values&&&&&&& # 事件坐标与目标一致的情况下&&&&&&& if event.x == new_x and event.y == new_y and&&&&&&&&&& triggers.include?(event.trigger)&&&&&&&&& # 跳跃中以外的情况下、启动判定是正面的事件&&&&&&&&& if not event.jumping? and not event.over_trigger?&&&&&&&&&&& event.start&&&&&&&&&&& result = true&&&&&&&&& end&&&&&&& end&&&&& end&&&&& # 找不到符合条件的事件的情况下&&&&& if result == false&&&&&&& # 正面的元件是计数器的情况下&&&&&&& if $game_map.counter?(new_x, new_y)&&&&&&&&& # 计算 1 元件里侧的坐标&&&&&&&&& new_x += (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)&&&&&&&&& new_y += (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)&&&&&&&&& # 全事件的循环&&&&&&&&& for event in $game_map.events.values&&&&&&&&&&& # 事件坐标与目标一致的情况下&&&&&&&&&&& if event.x == new_x and event.y == new_y and&&&&&&&&&&&&&& triggers.include?(event.trigger)&&&&&&&&&&&&& # 跳跃中以外的情况下、启动判定是正面的事件&&&&&&&&&&&&& if not event.jumping? and not event.over_trigger?&&&&&&&&&&&&&&& event.start&&&&&&&&&&&&&&& result = true
&&&&&&&&&&&&& end&&&&&&&&&&& end&&&&&&&&& end&&&&&&& end&&&&& end&&&&& return result&&& end endendclass Sprite_Character & RPG::Sprite def update&&& super&&& # 元件 ID、文件名、色相与现在的情况存在差异的情况下&&& if @tile_id != @character.tile_id or&&&&&& @character_name != @character.character_name or&&&&&& @character_hue != @character.character_hue&&&&& # 记忆元件 ID 与文件名、色相&&&&& @tile_id = @character.tile_id&&&&& @character_name = @character.character_name&&&&& @character_hue = @character.character_hue&&&&& # 元件 ID 为有效值的情况下&&&&& if @tile_id &= 384&&&&&&& self.bitmap = RPG::Cache.tile($game_map.tileset_name,&&&&&&&&& @tile_id, @character.character_hue)&&&&&&& self.src_rect.set(0, 0, 32, 32)&&&&&&& self.ox = 16&&&&&&& self.oy = 32&&&&& # 元件 ID 为无效值的情况下&&&&& else&&&&&&& self.bitmap = RPG::Cache.character(@character.character_name,&&&&&&&&& @character.character_hue)&&&&&&& @cw = bitmap.width / $c3_每一步的帧数&&&&&&& if $c3_总共可用的方向数==4&&&&&&&&& @ch = bitmap.height / 4&&&&&&& else&&&&&&&&& @ch = bitmap.height / 8&&&&&&& end&&&&&&& self.ox = @cw / 2&&&&&&& self.oy = @ch&&&&& end&&& end&&& # 设置可视状态&&& self.visible = (not @character.transparent)&&& # 图形是角色的情况下&&& if @tile_id == 0&&&&& # 设置传送目标的矩形&&&&& sx = @character.pattern * @cw&&&&& if $c3_总共可用的方向数==8&&&&&&& case @character.direction&&&&&&& when 2&&&&&&&&& sy = 0 * @ch&&&&&&& when 4
&&&&&&&&& sy = 1 * @ch&&&&&&& when 6&&&&&&&&& sy = 2 * @ch&&&&&&& when 8&&&&&&&&& sy = 3 * @ch&&&&&&& when 1&&&&&&&&& sy = 4 * @ch&&&&&&& when 3&&&&&&&&& sy = 5 * @ch&&&&&&& when 7&&&&&&&&& sy = 6 * @ch&&&&&&& when 9&&&&&&&&& sy = 7 * @ch&&&&&&& end&&&&& else&&&&&&& sy = (@character.direction - 2) / 2 * @ch&&&&& end&&&&& self.src_rect.set(sx, sy, @cw, @ch)&&& end&&& # 设置脚本的坐标&&& self.x = @character.screen_x&&& self.y = @character.screen_y&&& self.z = @character.screen_z(@ch)&&& # 设置不透明度、合成方式、茂密&&& self.opacity = @character.opacity&&& self.blend_type = @character.blend_type&&& self.bush_depth = @character.bush_depth&&& # 动画&&& if @character.animation_id != 0&&&&& animation = $data_animations[@character.animation_id]&&&&& animation(animation, true)&&&&& @character.animation_id = 0&&& end&&& #####################################################################&&& #################################################################### endendclass Game_Character def c8&&& # 随机 0~5 的分支&&& case rand(10)&&& when 0..3&& # 随机&&&&& move_random&&& when 4&& # 前进一步&&&&& move_forward&&& when 5&& # 暂时停止&&&&& @stop_count = 0&&& when 6..9&& #另外4方向随机&&&&& c4&&& end end def c4&&& case rand(5)&&& when 0&&&&& move_upper_left&&&&& @direction = 7&&& when 1&&&&& move_upper_right&&&&& @direction = 9&&& when 2&&&&& move_lower_left&&&&& @direction = 1&&& when 3
&&&&& move_lower_right&&&&& @direction = 3&&& when 4&&&&& @stop_count = 0&&& end end&&&&& def update&&& # 跳跃中、移动中、停止中的分支&&& if jumping?&&&&& update_jump&&& elsif moving?&&&&& update_move&&& else&&&&& update_stop&&& end&&& # 动画计数超过最大值的情况下&&& # ※最大值等于基本值减去移动速度 * 1 的值&&& if @anime_count & 16 * 4/$c3_每一步的帧数 - @move_speed * 2&&&&& # 停止动画为 OFF 并且在停止中的情况下&&&&& if not @step_anime and @stop_count & 0&&&&&&& # 还原为原来的图形&&&&&&& @pattern = @original_pattern&&&&& # 停止动画为 ON 并且在移动中的情况下&&&&& else&&&&&&& # 更新图形&&&&&&& @pattern = (@pattern + 1) % $c3_每一步的帧数&&&&& end&&&&& # 清除动画计数&&&&& @anime_count = 0&&& end&&& # 等待中的情况下&&& if @wait_count & 0&&&&& # 减少等待计数&&&&& @wait_count -= 1&&&&& return&&& end&&& # 强制移动路线的场合&&& if @move_route_forcing&&&&& # 自定义移动&&&&& move_type_custom&&&&& return&&& end&&& # 事件执行待机中并且为锁定状态的情况下&&& if @starting or lock?&&&&& # 不做规则移动&&&&& return&&& end&&& # 如果停止计数超过了一定的值(由移动频度算出)&&& if @stop_count & (40 - @move_frequency * 2) * (6 - @move_frequency)&&&&& # 移动类型分支&&&&& case @move_type&&&&& when 1&& # 随机&&&&&&& move_type_random&&&&& when 2&& # 接近&&&&&&& move_type_toward_player&&&&& when 3&& # 自定义&&&&&&& move_type_custom&&&&& end&&& end endendclass Window_Base & Window def draw_actor_graphic(actor, x, y)&&& bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
&&& cw = bitmap.width / $c3_每一步的帧数&&& ch = bitmap.height / $c3_总共可用的方向数&&& src_rect = Rect.new(0, 0, cw, ch)&&& self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) endendclass Game_Character #-------------------------------------------------------------------------- # ● 面向主角的方向 #-------------------------------------------------------------------------- def turn_toward_player&&& # 求得与主角的坐标差&&& sx = @x - $game_player.x&&& sy = @y - $game_player.y&&& # 坐标相等的场合下&&& if sx == 0 and sy == 0&&&&& return&&& end&&& # 横侧距离长的情况下&&& if sx.abs & sy.abs&&&&& # 将左右方向变更为朝向主角的方向&&&&& sx & 0 ? turn_left : turn_right&&& # 竖侧距离长的情况下&&& else&&&&& # 将上下方向变更为朝向主角的方向&&&&& sy & 0 ? turn_up : turn_down&&& end&&& if sx == -1 and sy == -1&&&&& @direction = 3&&&&& @stop_count = 0&&& elsif sx == -1 and sy == 1&&&&& @direction = 9&&&&& @stop_count = 0&&& elsif sx == 1 and sy == -1&&&&& @direction = 1&&&&& @stop_count = 0&&& elsif sx == 1 and sy == 1&&&&& @direction = 7&&&&& @stop_count = 0&&& end endend#==============================================================================#============================================================================== #==============================================================================#============================================================================== # ————————————————————————————————————# ▼▲▼ XRXS13. パーティ列车移动 ver.1.02 ▼▲▼## Train_Actor##module Train_Actor#是否使用停止跟随的方法,也就是说,这里false改为true的时候,如果TRANSPARENT_SWITCHES_INDEX#开关打开,跟随的人物就消失了(其实只是变成透明而已)TRANSPARENT_SWITCH = falseTRANSPARENT_SWITCHES_INDEX = 20#举例:第一个为true,第二个为20,则打开20号开关,后面的人都没了。#跟随人数的最大数目,可以更改为2、3什么的。TRAIN_ACTOR_SIZE_MAX = 4# 定数#Input::DOWN = 2#Input::LEFT = 4#Input::RIGHT = 6#Input::UP = 6DOWN_LEFT = 1DOWN_RIGHT = 3UP_LEFT = 7UP_RIGHT = 9JUMP = 5class Game_Party_Actor & Game_Characterdef initializesuper()
@through = trueenddef setup(actor)# キャラクターのファイル名と色相を设定if actor != nil@character_name = actor.character_name@character_hue = actor.character_hueelse@character_name = ""@character_hue = 0end# 不透明度と合成方法を初期化@opacity = 255@blend_type = 0enddef screen_z(height = 0)if $game_player.x == @x and $game_player.y == @yreturn $game_player.screen_z(height) - 1endsuper(height)end#--------------------------------------------------------------------------# ● 下に移动# turn_enabled : その场での向き変更を许可するフラグ#--------------------------------------------------------------------------def move_down(turn_enabled = true)# 下を向くif turn_enabledturn_downend# 通行可能な场合if passable?(@x, @y, Input::DOWN)# 下を向くturn_down# 座标を更新@y += 1endend#--------------------------------------------------------------------------# ● 左に移动# turn_enabled : その场での向き変更を许可するフラグ#--------------------------------------------------------------------------def move_left(turn_enabled = true)# 左を向くif turn_enabledturn_leftend# 通行可能な场合if passable?(@x, @y, Input::LEFT)# 左を向くturn_left# 座标を更新@x -= 1endend#--------------------------------------------------------------------------# ● 右に移动# turn_enabled : その场での向き変更を许可するフラグ#--------------------------------------------------------------------------def move_right(turn_enabled = true)# 右を向くif turn_enabledturn_rightend# 通行可能な场合if passable?(@x, @y, Input::RIGHT)# 右を向くturn_right# 座标を更新@x += 1endend#--------------------------------------------------------------------------# ● 上に移动# turn_enabled : その场での向き変更を许可するフラグ#--------------------------------------------------------------------------def move_up(turn_enabled = true)# 上を向くif turn_enabledturn_upend# 通行可能な场合if passable?(@x, @y, Input::UP)# 上を向くturn_up# 座标を更新@y -= 1endend#--------------------------------------------------------------------------# ● 左下に移动#--------------------------------------------------------------------------def move_lower_left# 向き固定でない场合unless @direction_fix# 右向きだった场合は左を、上向きだった场合は下を向く@direction = 1end# 下→左、左→下 のどちらかのコースが通行可能な场合if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))# 座标を更新@x -= 1@y += 1endend#--------------------------------------------------------------------------# ● 右下に移动#--------------------------------------------------------------------------def move_lower_right# 向き固定でない场合
unless @direction_fix# 左向きだった场合は右を、上向きだった场合は下を向く@direction = 3end# 下→右、右→下 のどちらかのコースが通行可能な场合if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))# 座标を更新@x += 1@y += 1endend#--------------------------------------------------------------------------# ● 左上に移动#--------------------------------------------------------------------------def move_upper_left# 向き固定でない场合unless @direction_fix# 右向きだった场合は左を、下向きだった场合は上を向く@direction = 7end# 上→左、左→上 のどちらかのコースが通行可能な场合if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))# 座标を更新@x -= 1@y -= 1endend#--------------------------------------------------------------------------# ● 右上に移动#--------------------------------------------------------------------------def move_upper_right# 向き固定でない场合unless @direction_fix# 左向きだった场合は右を、下向きだった场合は上を向く@direction = 9end# 上→右、右→上 のどちらかのコースが通行可能な场合if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))# 座标を更新@x += 1@y -= 1endendattr_writer :move_speedattr_writer :step_animeendmodule Spriteset_Map_Moduledef setup_actor_character_sprites?return @setup_actor_character_sprites_flag != nilenddef setup_actor_character_sprites(characters)if !setup_actor_character_sprites?index_game_player = 0@character_sprites.each_index do |i|if @character_sprites[i].character.instance_of?(Game_Player)index_game_player = ibreakendendfor character in characters.reverse@character_sprites.unshift(Sprite_Character.new(@viewport1, character))end@setup_actor_character_sprites_flag = trueendendendmodule Scene_Map_Moduledef setup_actor_character_sprites(characters)@spriteset.setup_actor_character_sprites(characters)endendmodule Game_Party_Moduledef return_char(i) return @characters[i]enddef set_transparent_actors(transparent)@transparent = transparentenddef setup_actor_character_spritesif @characters == nil@characters = []for i in 1 ... TRAIN_ACTOR_SIZE_MAX@characters.push(Game_Party_Actor.new)endendfor i in 1 ... TRAIN_ACTOR_SIZE_MAX@characters[i - 1].setup(actors[i])endif $scene.class.method_defined?('setup_actor_character_sprites')$scene.setup_actor_character_sprites(@characters)endenddef update_party_actorssetup_actor_character_spritestransparent = $game_player.transparentif transparent == falseif TRANSPARENT_SWITCH
transparent = $game_switches[TRANSPARENT_SWITCHES_INDEX]endendfor character in @characterscharacter.transparent = transparentcharacter.move_speed = $game_player.move_speedcharacter.step_anime = $game_player.step_animecharacter.updateendenddef moveto_party_actors( x, y )setup_actor_character_spritesfor character in @characterscharacter.moveto( x, y )endif @move_list == nil@move_list = []endmove_list_setupenddef move_party_actorsif @move_list == nil@move_list = []move_list_setupend@move_list.each_index do |i|if @characters[i] != nilcase @move_list[i].typewhen Input::DOWN@characters[i].move_down(@move_list[i].args[0])when Input::LEFT@characters[i].move_left(@move_list[i].args[0])when Input::RIGHT@characters[i].move_right(@move_list[i].args[0])when Input::UP@characters[i].move_up(@move_list[i].args[0])when DOWN_LEFT@characters[i].move_lower_leftwhen DOWN_RIGHT@characters[i].move_lower_rightwhen UP_LEFT@characters[i].move_upper_leftwhen UP_RIGHT@characters[i].move_upper_rightwhen JUMP@characters[i].jump(@move_list[i].args[0],@move_list[i].args[1])endendendendclass Move_List_Elementdef initialize(type,args)@type = type@args = argsenddef type() return @type enddef args() return @args endenddef move_list_setupfor i in 0 .. TRAIN_ACTOR_SIZE_MAX@move_list[i] = nilendenddef add_move_list(type,*args)@move_list.unshift(Move_List_Element.new(type,args)).popenddef move_down_party_actors(turn_enabled = true)move_party_actorsadd_move_list(Input::DOWN,turn_enabled)enddef move_left_party_actors(turn_enabled = true)move_party_actorsadd_move_list(Input::LEFT,turn_enabled)enddef move_right_party_actors(turn_enabled = true)move_party_actorsadd_move_list(Input::RIGHT,turn_enabled)enddef move_up_party_actors(turn_enabled = true)move_party_actorsadd_move_list(Input::UP,turn_enabled)enddef move_lower_left_party_actorsmove_party_actorsadd_move_list(DOWN_LEFT)enddef move_lower_right_party_actorsmove_party_actorsadd_move_list(DOWN_RIGHT)enddef move_upper_left_party_actorsmove_party_actorsadd_move_list(UP_LEFT)enddef move_upper_right_party_actorsmove_party_actorsadd_move_list(UP_RIGHT)enddef jump_party_actors(x_plus, y_plus)move_party_actorsadd_move_list(JUMP,x_plus, y_plus)endendmodule Game_Player_Moduledef update$game_party.update_party_actorssuperenddef moveto( x, y )$game_party.moveto_party_actors( x, y )super( x, y )enddef move_down(turn_enabled = true)if passable?(@x, @y, Input::DOWN)$game_party.move_down_party_actors(turn_enabled)endsuper(turn_enabled)enddef move_left(turn_enabled = true)if passable?(@x, @y, Input::LEFT)$game_party.move_left_party_actors(turn_enabled)end
super(turn_enabled)enddef move_right(turn_enabled = true)if passable?(@x, @y, Input::RIGHT)$game_party.move_right_party_actors(turn_enabled)endsuper(turn_enabled)enddef move_up(turn_enabled = true)if passable?(@x, @y, Input::UP)$game_party.move_up_party_actors(turn_enabled)endsuper(turn_enabled)enddef move_lower_left# 下→左、左→下 のどちらかのコースが通行可能な场合@direction = 1if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))$game_party.move_lower_left_party_actorsendsuperenddef move_lower_right# 下→右、右→下 のどちらかのコースが通行可能な场合@direction = 3if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))$game_party.move_lower_right_party_actorsendsuperenddef move_upper_left# 上→左、左→上 のどちらかのコースが通行可能な场合@direction = 7if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))$game_party.move_upper_left_party_actorsendsuperenddef move_upper_right# 上→右、右→上 のどちらかのコースが通行可能な场合@direction = 9if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))$game_party.move_upper_right_party_actorsendsuperenddef jump(x_plus, y_plus)# 新しい座标を计算new_x = @x + x_plusnew_y = @y + y_plus# 加算値が (0,0) の场合か、ジャンプ先が通行可能な场合if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)$game_party.jump_party_actors(x_plus, y_plus)endsuper(x_plus, y_plus)endattr_reader :move_speedattr_reader :step_animeendend # module Train_Actorclass Game_Partyinclude Train_Actor::Game_Party_Moduleendclass Game_Playerinclude Train_Actor::Game_Player_Moduleendclass Spriteset_Mapinclude Train_Actor::Spriteset_Map_Moduleendclass Scene_Mapinclude Train_Actor::Scene_Map_Moduleend#==============================================================================#==============================================================================
登录百度帐号推荐应用

我要回帖

更多关于 脚本高手 的文章

 

随机推荐