- 21/8/06
- 5,784
- 24,060
ngon hơn và xịn hơn thì ko dám nói nhưng dễ xài hơn thì cứ sút vx đi
vả lại vx sắp update nữa
vả lại vx sắp update nữa

Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.

Cậu vọc thử cái nào cũng được để làm quen với cách làm việc của Rpg Maker, đợi Ace ra rồi chiến![]()

Loại ấy tớ không dùng nên không biếtMọi người cho mình hỏi chi tiết về cách dùng map parallax, thấy nhiều game sử dụng loại map này hình ảnh mượt hơn vẽ map = vx nhiều

Đây là hướng dẫn làm minigame dạng racing = event, cái này tớ lấy ở rm2003, cậu thử nghiên cứu xem saoChào các anh chị ạ!
trước đây em nghe nói có người làm game chocobo riding bằng rpg maker, anh chị nào có thì cho em xin cái demo hay hướng dẫn làm được không ạ![]()
[/spoil]Racing: đây là một mini-game khá phức tạp nhưng rất thú vị đấy.
Bước 1: -Tạo một map, kích thước tuỳ ý.
-Tạo một event:
+Start condition: Push Key
+Position: Same Level as hero
+Command event có thể như sau:
<>Messg: Race?
<>Show choice: Yes/No
:[Yes]Case
<>Teleport: race_map(xxx.yyy)DirNone (race_map bạn sẽ tạo ở bước sau)
:[No]Case <>(nếu muốn đặt tiền thì bạn thêm vào cho thích hợp)
:End case
Bước 2: -Tạo một bản đồ dùng cho cuộc chạy đua (race_map), kích thước bản đồ nên rộng lớn.
-Bạn có thể thêm vào bất kỳ thứ gì trong bản đồ cho thích hợp nhưng đừng chạm đến phần trên cùng của bản đồ.
-Tạo đường chạy: có hai cách
+Một đường chạy chung cho tất cả các đối thủ.
+Mỗi đối thủ có một đường chạy riêng được phân cách nhau.
Việc tạo đường chạy như thế nào chỉ ảnh hưởng đến việc xác định kết quả lúc đến đích mà thôi.
-Để cuộc đua thêm sôi động bạn có thể tạo thêm đám đông khán giả cổ vũ.
Bước 3: -Tạo ra các đối thủ trên đường đua của bạn. Phần này rất quan trọng, ở đây tôi chỉ vd có một đối thủ mà thôi.
-Tạo một event "runner1", Same level as Hero, Parallel Process, Select Graphic thích hợp, Movement type đặt là By It''''s Route.
Vào Edit Route để thiết lập lộ trình theo đúng như đường chạy bạn đã thiết kế (điều này bạn phải tính toán thật kỹ. Nên đặt
Frequency là 7 hoặc 8, Movement Speed ở mức 5, 6 cho thêm phần khó khăn.
Bước 4: -Xác định người chiến thắng ở mức đến. Như đã nói ở trên, điều này phụ thuộc vào việc bạn thiết kế đường chạy như thế
nào. Tôi chỉ lấy vd là các đối thủ chạy chung một đường.
-Bạn cần có các variable sau:
[xxxx:HeroX], [xxxx:HeroY] dùng để xác định vị trí Hero.
[xxxx:runner1X], [xxxx:runner1Y] dùng để xác định vị trí runner1.
[xxxx:target1X], [xxxx:target1Y] dùng để xác định vị trí mức đến 1. (do chạy chung 1 đường nên đường chạy sẽ có chiều rộng gồm
nhiều ô ~~> đích đến cũng sẽ gồm nhiều ô).
Và 2 Switch: [xxxx:Lose], [xxxx:Win]
-Tạo một event "Target1" tại một ô ở đích đến, Position: Below, Start condition: Parallel Process.
-Phần command có thể như sau:
<>Variable Ch[xxxx:target1X]Set, this Event Xpos (X coordinate)
<>Variable Ch[xxxx:target1Y]Set, this Event Ypos (Y coordinate)
<>Variable Ch[xxxx:HeroX]Set, Hero Xpos
<>Variable Ch[xxxx:HeroY]Set, Hero Ypos
<>Variable Ch[xxxx:runner1X]Set, runner1 Xpos (X coordinate của event "runner1")
<>Variable Ch[xxxx:runner1Y]Set, runner1 Ypos (Y coordinate của event "runner1")
<>FORK Optn:Varbl[xxxx:target1X]-V[xxxx]Equivl (V[xxxx] chính là [xxxx:HeroX])
<>FORK Optn:Varbl[xxxx:target1Y]-V[xxxx]Equivl (V[xxxx] chính là [xxxx:HeroY])
<>Change Switch:[xxxx:Win]-On Set
:END Case
:END case
<>FORK Optn:Varbl[xxxx:target1X]-V[xxxx]Equivl (V[xxxx] chính là [xxxx:runner1X])
<>FORK Optn:Varbl[xxxx:target1Y]-V[xxxx]Equivl (V[xxxx] chính là [xxxx:runner1Y])
<>Change Switch:[xxxx:Lose]-On Set
:END Case
:END case
-Tạo 2 trang mới với Start Condition: Auto Start, Event Condition: Switch nối với [xxxx:Win] hoặc [xxxx:Lose]
Command event như sau:
<>Messg: You win! (hoặc You Lose! tuỳ theo switch)
<>Teleport: .......trở về bản đồ trước.
<>Change Switch: [xxxx:Win]- Off Set (hoặc [xxxx:Lose]-Off Set)
-Tạo các event cho các ô còn lại ở đích đến tương tự như trên.
-Tất nhiên là phần thưởng sau khi chiến thắng thì bạn phải làm thôi.
-Đối với trường hợp các đối thủ chạy trên từng đường chạy khác nhau thì dễ hơn nhiều. Bạn chỉ cần ở đích đến mỗi đường chạy,
xác định vị trí của runner đang chạy trên đường chạy đó mà thôi. Chẳng hạn như:
<>Variable Ch[xxxx:target1X]Set, this Event Xpos (X coordinate)
<>Variable Ch[xxxx:target1Y]Set, this Event Ypos (Y coordinate)
<>FORK Optn:Varbl[xxxx:target1X]-V[xxxx]Equivl (V[xxxx] chính là [xxxx:runner1X])
<>FORK Optn:Varbl[xxxx:target1Y]-V[xxxx]Equivl (V[xxxx] chính là [xxxx:runner1Y])
<>Change Switch:[xxxx:Lose]-On Set
:END Case
Xong

Đang mùa thi, dân làng kéo nhau đi tản cư hết rồiKhông ai trả lời mình àh? Mọi người đâu cả rồi? Alo Alo..![]()

Không ai trả lời mình àh? Mọi người đâu cả rồi? Alo Alo..![]()
cám ơn anh, nhưng em chịu thôi, khó quá:(Loại ấy tớ không dùng nên không biết
Đây là hướng dẫn làm minigame dạng racing = event, cái này tớ lấy ở rm2003, cậu thử nghiên cứu xem sao
Àh, lệnh FORK Optn trong đấy giống như lệnh Conditional Branch trong VX Anus nhé
[spoil][/spoil]
Còn cái Demo thì tớ không có
Good luck!
Dùng script battle background thì khi battle test bị
Script 'Cache' line 75: type error occurred.
cannot convert nil into String.
Có cách nào không mấy bạn :(![]()
Cái script ý bị lỗi khi Battle Test đó.
#===============================================================================
# Battle Backgrounds - RMVX
#===============================================================================
# Written by Synthesize
# January 20, 2008
# Version 1.00A
#===============================================================================
# * This script is untested. *
#===============================================================================
module SynBattleB
# Place your battle backgrounds in the 'Pictures' folder (Graphics/Pictures)
# Format = {map_id => Battleback Name}
Battle_background =
{
1 => "001-Grassland01",
2 => "001-Grassland01"
}
#-----------------------------------------------------------------------------
# Create the battlefloor?
Create_battlefloor = false
#-----------------------------------------------------------------------------
# This was being requested on quite a fe forums now, so I threw a quick script
# together. It is nice and simple, and does what it is suppsoed to do. Once
# RMVX is released in English, then I will add additional features into this.
#-----------------------------------------------------------------------------
end
#-------------------------------------------------------------------------------
# Spriteset_Battle
#-------------------------------------------------------------------------------
class Spriteset_Battle
alias syn_create_battlefloor create_battlefloor
#-----------------------------------------------------------------------------
# Create Battleback
#-----------------------------------------------------------------------------
def create_battleback
image = SynBattleB::Battle_background[$game_map.map_id]
@battleback_sprite = Sprite.new(@viewport1)
@battleback_sprite.bitmap = Cache.picture(image)
end
def create_battlefloor
@battlefloor_sprite = Sprite.new(@viewport1)
syn_create_battlefloor if SynBattleB::Create_battlefloor == true
end
end
#===============================================================================
# * This script is untested *
#===============================================================================
# Version 1.00A
# January 20, 2008
# Written by Synthesize
#===============================================================================
# Battle Backgrounds - RMVX
#===============================================================================
