Credit : Rataime
อันที่จริงก็ โมกันไปโมกันมาด้วยผู้พัฒนาหลายท่าน เอาเป็นว่าใครอยากอ่านเครดิตเต็มๆ ดูได้ในหัวสคริปในdemo นะครับ
สำหรับสคริปชุดนี้ มีค่อนข้างหลายอัน แนะนำให้ไปดูในdemoของ คุณRataime เลยจะดีที่สุด
สคริปชุดนี้ ประกอบไปด้วย
-เงาจากแสงไฟ
-เงาจากดวงอาทิตย์ (สงสัยล่ะสิ มันต่างกันยังไง ...ไปติดตามในdemoครับ)
-เงาสะท้อนในกระจก
-เงาสะท้อนจากผิวน้ำ
-เห็นเครื่องสวมใส่ที่ฮีโร่ใส่ (Virtual Equipment)
-ระบบทำลายข้าวของเป็นชิ้นๆ(เป็นชิ้นๆในแบบของเขานี่ ไม่ธรรมดา ต้องไปดู)
ดาวน์โหลดdemo
http://www.mediafire.com/?ljn1zw2mgmd
วิธีใช้สคริป
ให้ก็อปปี้สคริปทุกอันตั้งแต่ EDITS ---------------------------- ลงไป
(สำหรับ Train_Actor กับ Anti Event Lag Script เป็นสคริปของท่านอื่นนะครับ ไม่ใช่ของคุณRataime แถมมาให้ในdemoนี้เฉยๆ แต่ไม่ต้องก็อบใส่ลงไปด้วยก็ได้)
...อธิบายทีละอย่างๆไว้ก่อนดีกว่า
เงาจากแสงไฟ
Show ContentSpoiler:
สำหรับเงาจากแสงไฟนั้น eventไหนที่อยากให้เป็นแหล่งกำเนิดแสง ให้ใส่commentไว้ดังนี้
begin Shadow Source
anglemin เลข (เลขในที่นี้คือ กำหนดว่าเงาจะปรากฎขึ้นเมื่อฮีโร่อยู่ที่กี่องศา)
anglemax เลข (เลขในที่นี้คือ กำหนดว่าเงาจะหายไปเมื่อฮีโร่อยู่ที่กี่องศา)
distancemax เลข (เลขในที่นี้คือความเข้มของเงา)
ป.ล. ถ้าตั้งให้เงาปรากฎที่ 0 หายไปที่360 หมายความว่า ไม่ว่าจะเดินไปองศาไหน ก็จะเห็นเงาตลอด (เพราะจบ360องศาปุ๊บ เงาปรากฎขึ้นใหม่เลย)
เงาจากดวงอาทิตย์
Show ContentSpoiler:
เงาจากดวงอาทิตย์นั้น... ต้องสร้างeventเปล่าๆ วางไว้ส่วนใดก็ได้ในแผนที่ แล้วใส่commentไว้ดังนี้
begin Sun
angle เลข (เลขในที่นี้คือองศาที่ดวงอาทิตย์ส่อง)
opacity=เลข (เลขในที่นี้คือความเข้มของเงา)
เงาสะท้อนจากกระจก
Show ContentSpoiler:
เงาสะท้อนจากกระจก... ง่ายหน่อย คือ ถ้าอยากให้จุดไหนมีเงาสะท้อน ก็แค่วางeventเปล่าๆที่มีcommentดังนี้
m (เอ็มตัวเดียวนี่แหล่ะ!)
เงาสะท้อนจากผิวน้ำ
Show ContentSpoiler:
เงาสะท้อนจากผิวน้ำนั้น... tileไหนที่เราอยากให้สะท้อนได้ ต้องมีค่าterrain เป็น 7 เท่านั้น!
ถ้าเราอยากให้ฮีโร่มีเงาสะท้อนที่ผิวน้ำ เราก็สร้างeventเปล่าๆที่มีcommentว่า
hero_r
ถ้าเราอยากให้eventอื่นๆ(เช่นNPC, มอนสเตอร์, สัตว์, สิ่งของ, ฯลฯ) มีเงาสะท้อนที่ผิวน้ำ เราก็ใส่commentดังนี้ไปด้วย
r (อาร์ตัวเดียวนี่แหล่ะ)
Virtual Equipment
Show ContentSpoiler:
เข้าไปแก้ในตัวสคริปนะครับ ( Visual Equipment (Re-Edited))
ถ้าอยากให้ชุดเกราะไหนใช้ได้ ก็เพิ่มบรรทัดที่มีรูปแบบดังนี้ลงไป
add_armor_sprite(รหัสเกราะ, "ชื่อของรูปชุดเกราะ")
เช่น add_armor_sprite( 6, "tpl_helmet_1") หมายความว่า ชุดเกราะหมายเลขที่ 6 ใช้รูปภาพชื่อ tpl_helmet_1
สำหรับอาวุธนั้น ก็คล้ายๆกัน คือ add_weapon_sprite(รหัสอาวุธ, "ชื่อของรูปอาวุธ")
หมายเหตุ : รูปภาพที่สคริปนี้ใช้ จะอยู่ในหมวด Characterนะครับ!
ทำลายข้าวของ(Destruction Engine)
Show ContentSpoiler:
มีคำสั่งหลายคำสั่งครับ อาจจะงงนิดๆ แต่ให้นึกภาพว่ามันเป็นญาติกับคำสั่ง 'Move Event'
เพียงแต่เราต้องเรียกสคริปเอาเท่านั้นเอง
eventไหนอยากให้โดนทำลาย ก็ Call Script เรียกโค้ดรูปแบบดังนี้นะครับ
$DE.init
$DE.target_event(รหัสevent ที่อยากให้โดนทำลาย)
คำสั่งย่อย
$DE.clear
หรือจะเรียกแบบนี้ก็ได้
$DE.init
$DE.target_is_in_front_of_me
คำสั่งย่อย
$DE.clear
คำสั่งย่อย... สำหรับมือใหม่ แนะนำให้ใช้หนึ่งในห้าตัวนี้
$DE.decapitate
$DE.samurai_slash
$DE.axe_attack
$DE.double_samurai_slash
$DE.glass_breaking
แต่ถ้ายังไม่พอใจ... คุณRataimeก็ยังมีคำสั่งอีกเยอะให้ลองกัน (ผมแปลไม่ไหว ใครก็ได้ช่วยที ฮาๆ)
Code:
# Line commands :
#
# $DE.hide_lines
# Will hide future lines
#
# $DE.show_lines
# Won't hide future lines anymore
#
# $DE.erase_lines
# Erases all lines
# The pieces will still be there, only line sprites will removed
#
# $DE.draw_line(start_x, start_y, end_x, end_y,speed)
# Same as $DE.add_line, but won't actually "cut" the event
#
# $DE.change_line_color(red,green,blue)
# Change future lines color
# The component values are >=0 and <=255
#
# $DE.change_line_speed(speed)
# Change the default line drawing speed
# Speed is >=1 and <=10
#
# $DE.change_line_width(pixels)
# Change future lines width,in pixels
#
#==============================================================================#
#
# Piece commands, usually used after having cut the event
#
# $DE.collapse
# Will collapse every piece the FF way (ie red&transparent)
#
# $DE.fadeout
# Will fadeout every piece
#
# $DE.explose
# Will make the target explose. Not perfect yet
#
# $DE.refresh_centre
# Will readjust pieces centers. Useful before rotating those...
#
# $DE.glass_falling(speed)
# Will let the glass pieces fall until they reach the ground
#
# DE_Slide.new(line,number)
# Create a slide movement, using a line and a max number of pieces to slide
# Pieces are selected from the top to the bottom
# Check the call'n watch function samurai_slash for a basic example
#
# $DE.map.pieces[i]
# Refers to the pieces.
# pieces[0] is the top one, pieces[$DE.map.pieces.size-1] the bottom one
# You can use standard sprite functions, eg :
# @map.pieces[0].angle=90
# @map.pieces[0].x+=1
#
# $DE.target.reappear
# Will reset target's transparency and passability