irpg Community
The Gate : The Remnant Memory ตัวเต็ม มาแล้วคร้าบบบ - Printable Version

+- irpg Community (https://irpg.in.th)
+-- Forum: Stone Jar Museum & Showroom (https://irpg.in.th/forum-15.html)
+--- Forum: Completed Project (https://irpg.in.th/forum-19.html)
+--- Thread: The Gate : The Remnant Memory ตัวเต็ม มาแล้วคร้าบบบ (/thread-389.html)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28


RE: The Gate : The Remnant Memory ตัวเต็ม มาแล้วคร้าบบบ - AgentMolder - 09-22-2012

(09-22-2012, 12:08 PM)natsukikung Wrote: เอ สคลิประยะการมองมอนเตอร์นี่ผมยังไม่เคยใช้แต่ไปตั้งค่าที่ตัวอีเวนท์แทนได้ไหมครับแทนที่จะให้เข้าหาตัวเอกอย่างเดียวก็เปลี่ยนเป็นบังคับการกระทำให้เข้าหาตัวเอกสลับกับการสุ่มเดินโดยตั้งให้เข้าหาตัวเอกมากกว่าการสุ่มเดินเวลาที่มันติดอะไรการสุ่มเดินจะได้ทำให้มันเดินไปต่อได้ไม่ไปค้างที่จุดไหน ถ้าผิดพลาดก็ขออภัยครับ
เดี๋ยวผมจะ Post ให้ลองโหลดไปใช้นะครับ เป็น Script Monster Detection ครับ

ส่วนถ้าใช้เหตุการณ์มันไม่ได้ครับลองแล้ว เพราะเวลาเดินเข้ามาในแมพปุ๊บ มอนที่เรา set ให้เดินหาฮีโร่ มันจะแห่กันมาเลยครับ แมพจะกว้าง 200x200 ก็วิ่งมาหาเรา แต่ script นี้มันจะเชคระยะ 5 ช่องครับ ถ้าหนีพ้น หรือเดินพ้น ก็จะเลิกตาม ปกติสคริปนี้เขาใช้กับเกมส์เดินฟันครับ แต่ผมเอามาดัดแปลง

Code:
#--------------------------------------------------------------------------
# Enemy Detection System
# by Gubid - 8/12/07
# v 1.2.2 Updated 10/2/07
#--------------------------------------------------------------------------
#Description:
#This system allows events that are named something including "ENEMY" then
#that event will be told to approach Game_Player, until Game_Player has gotten
#a specified distance away. At that time event will return to its original
#position if desired. If you happen to get close enough to the returning event
#it will begin to follow you again.
#
#Thanks to Near Fantasia for supplying the slightly modified path finding script.
#--------------------------------------------------------------------------
#if there are any questions as to the use of this script or
#modifications/additions/etc, please post it to the thread on CreationAyslum.net
#--------------------------------------------------------------------------

#--------------------------------------------------------------------------
#Update_Detect - How to Stop Detection if desired
#--------------------------------------------------------------------------
#1. Within a event, add a SCRIPT (3rd page)
#2. type "update_detect(EVENT_ID, TRUE/FALSE)" -Note: it defaults to false

#--------------------------------------------------------------------------
#RETURN TO POSITION
#--------------------------------------------------------------------------
#Use this to determine if you would like the event to return to its original
#position or not.
#--------------------------------------------------------------------------
RETURN_TO_POSITION = true

#--------------------------------------------------------------------------
#CHASE_SPEED and ENABLE_SPEED_CHANGE
#--------------------------------------------------------------------------
#Use this to set the speed in which enemies will approach after spotting you
#and whether or not their speed will change.
#--------------------------------------------------------------------------
CHASE_SPEED = 5
ENABLE_SPEED_CHANGE = true

#--------------------------------------------------------------------------
#VIEW_RANGE
#--------------------------------------------------------------------------
#Use this to set the distance in which you must be in order to start the detection
#process, or escape to stop.
#--------------------------------------------------------------------------
VIEW_RANGE = 3

#--------------------------------------------------------------------------
#ESCAPE_RANGE
#--------------------------------------------------------------------------
#Use this to set the distance in which you must escape to stop the detection process
#--------------------------------------------------------------------------
ESCAPE_RANGE = 5

#--------------------------------------------------------------------------
#Other Notes
#--------------------------------------------------------------------------
#If the event has a custom move route, they will resume that route when finished
#chasing you, but if you dont set RETURN_TO_POSITION, then they will resume
#their custom route at the location they stopped chasing you.

class Game_Map
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
alias en_detect_gm_update update
def update
en_detect_gm_update

# Update map event
for event in @events.values
if !event.name.include?("detect")
next
else
if event.character_name != ""
if event.stop_detect?
next
end
if check_distance(event.id) == true
if event.exclamation == false
event.old_type = event.move_type
event.move_type = 2
if ENABLE_SPEED_CHANGE
event.old_speed = event.move_speed
event.move_speed = CHASE_SPEED
end
event.exclamation = true
event.animation_id = 98 #98 happens to be the exclamation animation
event.f_route.clear
end
else
if event.exclamation == true
event.exclamation = false
if RETURN_TO_POSITION == true
if event.x != @map.events[event.id].x or event.y != @map.events[event.id].y
route = get_route(event, @map.events[event.id].x, @map.events[event.id].y)
event.run_route(route)
end
else
event.restore_route
end
end
end
end
end
end
end

def check_distance(id = nil)
unless id == nil
event = $game_map.events[id]
range = ($game_player.x - event.x).abs + ($game_player.y - event.y).abs

if range <= VIEW_RANGE and range > 0
return true
elsif range <= ESCAPE_RANGE and range > 0 and event.exclamation
return true
end
end
end

def get_route(event, x=0, y=0)
target_x = x
target_y = y
max = (target_x - event.x).abs + (target_y - event.y).abs + 5
position = [[event.x, event.y]]
route = [[]]
more_step = [0]
for i in more_step
x = position[i][0]
y = position[i][1]
if !position.include?([x, y + 1]) and event.passable?(x, y, 2)
position.push([x, y + 1])
route.push(route[i] + [2])
if route[i].size + 1 < max
more_step.push(route.index(route[i] + [2]))
end
end

if !position.include?([x - 1, y]) and event.passable?(x, y, 4)
position.push([x - 1, y])
route.push(route[i] + [4])
if route[i].size + 1 < max
more_step.push(route.index(route[i] + [4]))
end
end

if !position.include?([x + 1, y]) and event.passable?(x, y, 6)
position.push([x + 1, y])
route.push(route[i] + [6])
if route[i].size + 1 < max
more_step.push(route.index(route[i] + [6]))
end
end

if !position.include?([x, y - 1]) and event.passable?(x, y, 8)
position.push([x, y - 1])
route.push(route[i] + [8])
if route[i].size + 1 < max
more_step.push(route.index(route[i] + [8]))
end
end
end
if position.index([target_x, target_y]) == false
return [2]
else
return route[position.index([target_x, target_y])]
end
end
end


class Game_Event
attr_accessor :move_type
attr_accessor :move_speed
attr_accessor :old_speed
attr_accessor :exclamation
attr_accessor :old_type
attr_accessor :stop_trigger
attr_reader :f_route

def initialize(map_id, event)
super()
@map_id = map_id
@event = event
@id = @event.id
@erased = false
@starting = false
@through = true
@name = @event.name
@exclamation = false
@f_route = []
@step = 0
@old_type = @move_type
@old_move_route = @move_route
@old_speed = @move_speed
@stop_trigger = false
moveto(@event.x, @event.y)
refresh
end

def stop_detect?
return @stop_trigger
end

def restore_route
@move_type = @old_type
@move_route_index = @original_move_route_index
@move_speed = @old_speed
refresh
return
end

def name
return @name
end

alias en_det_update update
def update
if @f_route.size > 0
run_path unless self.moving?
if @f_route.size == 0
restore_route
end
end
en_det_update
end

def run_route(route)
@f_route = route
@step = 0
end

def run_path
if @f_route.size > 0
if @f_route[@step] == nil
@f_route = []
end
action = @f_route[@step]
@step += 1
case action
when 2
self.move_down
when 4
self.move_left
when 6
self.move_right
when 8
self.move_up
end
end
end
end

class Interpreter
def update_detect(id, set = false)
$game_map.events[id].stop_trigger = set
end

def spotted?
is_true = 0
for event in $game_map.events.values
if event.exclamation
is_true += 1
end
end
if is_true > 0
return true
else
return false
end
end

def change_switch(id = 0, value = false, type = 0, switch = "A")
if id > 0
if type == 0 #for use of main switches
#id is switch_id and value should set to true or false
$game_switches[id] = value
elsif type == 1 #For use of self switches
#id is event.id and switch is the desired selfswitch. It must be text!
#value is true or false
key = [$game_map.map_id, id, switch]
# Updates self switch
$game_self_switches[key] = value
end
# Refresh map
$game_map.need_refresh = true
return true
end
end
end

(09-22-2012, 02:19 PM)youtoue087 Wrote: [Image: uki05.jpg]
หมายถึงอะไรครับตรงRPGXPเนื่ยครับ/ohgod

น่าจะกดเข้าเกมส์ผิด file นะครับ


RE: The Gate : The Remnant Memory ตัวเต็ม มาแล้วคร้าบบบ - hengmana - 09-22-2012

Quote:เดี๋ยวผมจะ Post ให้ลองโหลดไปใช้นะครับ เป็น Script Monster Detection ครับ
- - ลองอันนี้ แทนกันได้ไหม Scriptไม่ยาว ปรับระยะเองได้สะดวกดี
http://littledrago.blogspot.com/2011/09/rgss-simple-event-sensor.html


RE: The Gate : The Remnant Memory ตัวเต็ม มาแล้วคร้าบบบ - AgentMolder - 09-22-2012

(09-22-2012, 09:50 PM)hengmana Wrote:
Quote:เดี๋ยวผมจะ Post ให้ลองโหลดไปใช้นะครับ เป็น Script Monster Detection ครับ
- - ลองอันนี้ แทนกันได้ไหม Scriptไม่ยาว ปรับระยะเองได้สะดวกดี
http://littledrago.blogspot.com/2011/09/rgss-simple-event-sensor.html
ผมลองปรับแก้ script ผมแล้วครับ โดยไปปิด false ที่ Return to old position น่าจะหายนะครับ ผมอัพโหลดใหม่ละ

อัพเดต Patch 2.1 ครับ
- แก้ไขบัคเจอมอนแล้วเด้งครับ
- file ด้านหน้าเช่นเดิม



RE: The Gate : The Remnant Memory ตัวเต็ม มาแล้วคร้าบบบ - youtoue087 - 09-23-2012

[img][Image: 2bhol1.jpg][/img]
แล้วอันนี้คืออะไรครับPoker Face


RE: The Gate : The Remnant Memory ตัวเต็ม มาแล้วคร้าบบบ - JigsawKungTv - 09-23-2012

มีคำถามครับ ท่าไม้ตายทำไงถึงจะใช้ได้อ่ะครับ ใช้ได้แต่เซท


RE: The Gate : The Remnant Memory ตัวเต็ม มาแล้วคร้าบบบ - hengmana - 09-23-2012

^
^ ต้องไปตั้งค่าสกิลไม้ตายก่อน


RE: The Gate : The Remnant Memory ตัวเต็ม มาแล้วคร้าบบบ - top0409 - 09-23-2012

พี่ครับ เอาท่าประสาน def up all ยังไงอะ เดินไปหาผียังไงหรอคับ


RE: The Gate : The Remnant Memory ตัวเต็ม มาแล้วคร้าบบบ - hengmana - 09-24-2012

ถึงเมืองช่างตีเหล็ก (หาคนใต้ดินไม่เจอ = =)
ได้รหัสประตูแล้วไปเอาท่าที่เกาะ
พอประลอง กดท่าประสาน(อันแรก) ไม่มีคู่เป็นแบบนี้
http://image.free.in.th/z/iy/2untitled16.jpg

ปล.ในเมืองช่าง บันไดติดประตู พอขึ้นบันไดแล้วหันเข้าประตู จะเข้าไปในบ้านได้


RE: The Gate : The Remnant Memory ตัวเต็ม มาแล้วคร้าบบบ - AgentMolder - 09-25-2012

(09-23-2012, 10:04 AM)youtoue087 Wrote: [img][Image: 2bhol1.jpg][/img]
แล้วอันนี้คืออะไรครับPoker Face
อันนี้น่าจะ short cut ไม่ตรงมั๊งครับ ลองเชคดูครับ

(09-23-2012, 12:17 PM)JigsawKungTv Wrote: มีคำถามครับ ท่าไม้ตายทำไงถึงจะใช้ได้อ่ะครับ ใช้ได้แต่เซท
ต้องได้ท่าไม้ตายก่อนครับ เปิดเกมส์มายังไม่ได้ท่าไม้ตาย

(09-23-2012, 02:33 PM)top0409 Wrote: พี่ครับ เอาท่าประสาน def up all ยังไงอะ เดินไปหาผียังไงหรอคับ
เดินไปทางใต้ดินครับ ถ้าเล่นถึงเนื้อเรื่องไปเหมืองได้แล้ว พอลงหลุมศพ เดินไปทางซ้ายครับจะมีทางขึ้นไปเอาครับ

(09-24-2012, 06:36 PM)hengmana Wrote: ถึงเมืองช่างตีเหล็ก (หาคนใต้ดินไม่เจอ = =)
ได้รหัสประตูแล้วไปเอาท่าที่เกาะ
พอประลอง กดท่าประสาน(อันแรก) ไม่มีคู่เป็นแบบนี้
http://image.free.in.th/z/iy/2untitled16.jpg

ปล.ในเมืองช่าง บันไดติดประตู พอขึ้นบันไดแล้วหันเข้าประตู จะเข้าไปในบ้านได้
ท่านเฮง มาเจอบัคเอาตอนผมเพิ่งอัพแพทช์อีกละ รูป icon Weak ผมว่าผมตัด Status Weak ในเกมส์ออกไปแล้วนา..ยังไงท่านเฮงช่วยเล่าหน่อยว่าเจอตอนไหนครับ ใช้สกิลชื่ออะไร จะตรวจสอบให้ครับ ส่วนบันได ช่างมันก่อน 555


RE: The Gate : The Remnant Memory ตัวเต็ม มาแล้วคร้าบบบ - hengmana - 09-25-2012

- - น่าจะเป็นท่าภูติลมนะ
Flash Pierce = หอกสายลม ตัดขาศัตรู ทำให้อ่อนแอ และความเร็วลดลง
พอใช้แล้วติด จบรอบ แล้วเลือกตัวนั่น Erorr