當前位置:首頁 » 編程軟體 » rpgmakerxp腳本

rpgmakerxp腳本

發布時間: 2022-06-06 07:52:15

Ⅰ RPG Maker xp的腳本有什麼用

在主菜單「工具」菜單中選擇「腳本編輯器」,出現的那些英文字排列就是腳本。這個是 RPGXP 的關鍵部分,是掌管游戲實際運行的程序語言。雖然是簡單的程序語言,但初學者要學習的話卻是得花費大量的時間。首先得了解腳本是如何運作的,推薦先從基礎學起。
這個「腳本入門」,是為已經學習 RGPXP 基本使用方法的人編寫的。可以不具備計算機程序語言基礎知識,但最低要對 RPGXP 的功能有一定程度的了解。

Ⅱ RPGmakerxp腳本錯誤

No Method Error
Undefined method 'event' for nil:NilClass

沒有方法錯誤
未定義的方法'事件'為零:NilClass

打開腳本編輯器,將Game_Player內內容全部刪除,將以下腳本復制進去保存再試試

#==============================================================================
# ■ Game_Player
#------------------------------------------------------------------------------
# 處理主角的類。事件啟動的判定、以及地圖的滾動等功能。
# 本類的實例請參考 $game_player。
#==============================================================================

class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● 恆量
#--------------------------------------------------------------------------
CENTER_X = (320 - 16) * 4 # 畫面中央的 X 坐標 * 4
CENTER_Y = (240 - 16) * 4 # 畫面中央的 Y 坐標 * 4
#--------------------------------------------------------------------------
# ● 可以通行判定
# x : X 坐標
# y : Y 坐標
# d : 方向 (0,2,4,6,8) ※ 0 = 全方向不能通行的情況判定 (跳躍用)
#--------------------------------------------------------------------------
def passable?(x, y, d)
# 求得新的坐標
new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
# 坐標在地圖外的情況下
unless $game_map.valid?(new_x, new_y)
# 不能通行
return false
end
# 調試模式為 ON 並且 按下 CTRL 鍵的情況下
if $DEBUG and Input.press?(Input::CTRL)
# 可以通行
return true
end
super
end
#--------------------------------------------------------------------------
# ● 像通到畫面中央一樣的設置地圖的顯示位置
#--------------------------------------------------------------------------
def center(x, y)
max_x = ($game_map.width - 20) * 128
max_y = ($game_map.height - 15) * 128
$game_map.display_x = [0, [x * 128 - CENTER_X, max_x].min].max
$game_map.display_y = [0, [y * 128 - CENTER_Y, max_y].min].max
end
#--------------------------------------------------------------------------
# ● 向指定的位置移動
# x : X 座標
# y : Y 座標
#--------------------------------------------------------------------------
def moveto(x, y)
super
# 自連接
center(x, y)
# 生成遇敵計數
make_encounter_count
end
#--------------------------------------------------------------------------
# ● 增加步數
#--------------------------------------------------------------------------
def increase_steps
super
# 不是強制移動路線的場合
unless @move_route_forcing
# 增加步數
$game_party.increase_steps
# 步數是偶數的情況下
if $game_party.steps % 2 == 0
# 檢查連續傷害
$game_party.check_map_slip_damage
end
end
end
#--------------------------------------------------------------------------
# ● 獲取遇敵計數
#--------------------------------------------------------------------------
def encounter_count
return @encounter_count
end
#--------------------------------------------------------------------------
# ● 生成遇敵計數
#--------------------------------------------------------------------------
def make_encounter_count
# 兩種顏色震動的圖像
if $game_map.map_id != 0
n = $game_map.encounter_step
@encounter_count = rand(n) + rand(n) + 1
end
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
# 同伴人數為 0 的情況下
if $game_party.actors.size == 0
# 清除角色的文件名及對像
@character_name = ""
@character_hue = 0
# 分支結束
return
end
# 獲取帶頭的角色
actor = $game_party.actors[0]
# 設置角色的文件名及對像
@character_name = actor.character_name
@character_hue = actor.character_hue
# 初始化不透明度和合成方式子
@opacity = 255
@blend_type = 0
end
#--------------------------------------------------------------------------
# ● 同位置的事件啟動判定
#--------------------------------------------------------------------------
def check_event_trigger_here(triggers)
result = false
# 事件執行中的情況下
if $game_system.map_interpreter.running?
return result
end
# 全部事件的循環
for event in $game_map.events.values
# 事件坐標與目標一致的情況下
if event.x == @x and event.y == @y and triggers.include?(event.trigger)
# 跳躍中以外的情況下、啟動判定是同位置的事件
if not event.jumping? and event.over_trigger?
event.start
result = true
end
end
end
return result
end
#--------------------------------------------------------------------------
# ● 正面事件的啟動判定
#--------------------------------------------------------------------------
def check_event_trigger_there(triggers)
result = false
# 事件執行中的情況下
if $game_system.map_interpreter.running?
return result
end
# 計算正面坐標
new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
new_y = @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
# 找不到符合條件的事件的情況下
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
#--------------------------------------------------------------------------
# ● 接觸事件啟動判定
#--------------------------------------------------------------------------
def check_event_trigger_touch(x, y)
result = false
# 事件執行中的情況下
if $game_system.map_interpreter.running?
return result
end
# 全事件的循環
for event in $game_map.events.values
# 事件坐標與目標一致的情況下
if event.x == x and event.y == y and [1,2].include?(event.trigger)
# 跳躍中以外的情況下、啟動判定是正面的事件
if not event.jumping? and not event.over_trigger?
event.start
result = true
end
end
end
return result
end
#--------------------------------------------------------------------------
# ● 畫面更新
#--------------------------------------------------------------------------
def update
# 本地變數記錄移動信息
last_moving = moving?
# 移動中、事件執行中、強制移動路線中、
# 信息窗口一個也不顯示的時候
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
# 如果方向鍵被按下、主角就朝那個方向移動
case Input.dir4
when 2
move_down
when 4
move_left
when 6
move_right
when 8
move_up
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 $DEBUG 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
end

Ⅲ RPG Maker VX和RPG Maker XP腳本最大的區別在哪裡

RMVX和RMXP在腳本(RGSS)上的區別
Enterbrain官方把RMVX使用的腳本稱為RGSS2,原來的RMXP腳本則稱為RGSS1。
那麼RGSS2和RGSS1相比主要有哪些不同呢?請看官方幫助文件的說法:
1,畫面解析度從 640×480 變成 544×416,刷新率從每秒 40 幀變成了每秒 60 幀,原來XP的『平滑模式』被廢止。
2,新增全屏模式,改成雙緩存技術描繪畫面。滿足推薦配置的情況下,滾動等處理會非常的順暢。
3,畫面長時間不更新會備份腳本,強制終了程序的設定被廢除了。即使畫面長時間不更新,也能正常處理Windows消息,大多數場合可以用 Alt+F4 關閉RMVX。
4,增加了 Graphics.fadeout、 Graphics.fadein 方法來簡單的實現畫面的淡入淡出效果。
5,增加了 Graphics.snap_to_bitmap 方法把當前游戲畫面轉化成點陣圖保存。(用於存檔畫面)
6,地圖元 (Tilemap) 類為了配合 RPGVX 的標准做了大幅度的變更。
7,點陣圖 (Bitmap) 可以產生模糊、放射性模糊的效果。
8,精靈 (Sprite) 支持波形描畫(光柵滾動)的效果。
9,游戲目錄下增加了一個Fonts文件夾,裡面用來放置游戲中使用的字體文件。可以解決對方系統由於沒有安裝相應的字體而無法運行游戲的問題。
10,字體 (Font) 顯示支持陰影描繪的功能。一些初期值的設定被變更了。
11,視口 (Viewport) 的關聯可以在設定後再次進行變更,視口關聯的精靈等可以被自動解放。
12,改善了 ME 播放後、恢復播放 BGM 的時機 (Audio.me_play) 。
除了上述以外,還有增加了不少細小的變化。
VX幫助文件中對 RGSS2 新追加,變更的機能都打上了 (RGSS2) 這樣的標記。

如果以上文字你看上去還比較爽的話,那麼接下來的話可能XP的腳本製作者就要受到一定打擊了。

以下文字來自RGSS2腳本素材添加的官方建議

●對腳本素材的用戶

*使用網路上發布的腳本素材時候,請在本處增加一個新的頁面並粘貼。
(在左邊腳本列表框按滑鼠右鍵選擇『插入』)

*其他,請遵從腳本製作者的特別指示(如果有的話)。

*原則上,RMXP的腳本和RMVX的腳本沒有互換性!
請先確定是針對RMVX開發的腳本素材後再使用。

●對腳本素材的製作者

開發針對不定用戶使用的腳本時,請盡量不要使用再定義,重命名(alias)等方法。建議新開發的腳本只需要添加在本位置就能正常運行。

Ⅳ rpg maker xp怎麼用腳本啊

選中main腳本,按inster鍵,能添加空白腳本頁面。然後把需要的腳本復制進去就好。注意腳本之間的沖突哦~~~

Ⅳ RPG MAKER XP腳本怎麼用

在MAIN錢滑鼠右鍵插入,但是腳本有很多的沖突,必須要看清楚啊。嗯

Ⅵ RPG MAKER XP 各種腳本

你要上什麼腳本啊?

Ⅶ RPGmakerXP腳本錯誤

這個是腳本沖突,把你自己下下來的戰斗腳本刪除基本能解決,還不能就通通刪除,(自己下下來的腳本)然後再一個一個黏上去測試,看是哪個出問題,出問題那一個就不要用了

Ⅷ RPG Maker XP的腳本怎麼用

RM XP使我們大家不懂腳本的也可以製作自己的游戲,是因為它把全部的非劇情部分均用腳本編譯好,然後劇情我們可以用事件去編,如插入圖片,對話等等,這些其實也是通過腳本實現的,不過RM XP也不能通過事件菜單來實現所有的功能,只能我們自己更改腳本實現個性功能。

www.66rpg.com 這個網站不錯 對學習腳本有用

熱點內容
什麼游戲開伺服器便宜 發布:2024-05-20 14:21:48 瀏覽:656
萬網資料庫清空 發布:2024-05-20 14:20:46 瀏覽:557
編譯原理什麼是規范句型 發布:2024-05-20 14:08:59 瀏覽:562
jenkins自動化測試腳本 發布:2024-05-20 13:28:03 瀏覽:918
網游機戰腳本 發布:2024-05-20 13:26:56 瀏覽:482
天天愛消除卡心腳本 發布:2024-05-20 13:01:00 瀏覽:124
python中str的意思 發布:2024-05-20 13:00:52 瀏覽:235
隨機訪問方式 發布:2024-05-20 12:42:52 瀏覽:258
php判斷登陸 發布:2024-05-20 12:14:24 瀏覽:629
腳本精靈並且 發布:2024-05-20 11:39:40 瀏覽:266