Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --:Roblox Exploit Tutorial (Phase 1) พื้นฐาน
- --:สวัสดีครับเราจะมาทำความรู้จักกับผมเอง! MawinCK ผมจะเป็นผู้สอนทําโปรด้วย ภาษาโปรแกรมของ roblox หรือก็คือ Luau!
- --:ก่อนเราจะทำโปรเราต้องมีตัวรันก่อนเช่น Arecus X หรือ Hydrogen หรือ อื่นๆ
- --:พอเรามีตัวรันเเล้วเราจะสามารถเขียน สคริป โปรเเละ รันมันได้
- --:โดยปกติแล้ว ตัวรันเรา สามารถรันสครับได้ทุกรูปแบบใน Luau เเละก็ Custom Lua ด้วย! เพราะ ตัวรันโปร สร้างขึ้นมาจากภาษา C++/C# เป็นภาษาโปรแกรมใช้ในการทําตัวรัน ด้วย Visual Studio
- --: Phase 1 (ตัวเเปร)
- --: เราจะมารู้จักกับตัวแปรกันเช่น
- --: local --: คุณอาจจะถามว่า local มีความหมายอะไร
- --: พอคุณพิมพ์คำว่า local เเล้วให้คุณใส่ชื่ออะไรก็ได้ด้านหน้า local
- --: นั่นก็คือชื่อตัวแปร ชื่อตัวแปรนั้นก็จะเก็บค่านั้นๆไว้ และสามารถเอาออกมาใช้ได้เช่น:
- --:// สคริป:
- local string = "hello world"
- local number = 50
- print(string)
- print(number)
- --:// output:
- hello world
- 50
- --://
- --: คุณสังเกตไหมครับว่า แผนที่มันจะเกิด error มันกลับได้ผลลัพธ์แทนก็คือ hello world เเละ 50
- --: string เป็นตัวเเทนที่ เก็บ ค่า string "" ซึ่งต่อให้เป็นตัวเลขหรือ value อะไรต่างๆ แต่มันอยู่ข้างใน " " มันก็จะไม่มีค่าอะไรมันก็จะมีค่าแค่ string
- --: ส่วน number จะมีค่าเท่ากับ 50 พูดง่ายๆ
- --:// สรุป:
- --: การสร้าง ตัวเเปร ด้วย local
- --: คําว่า local ใช้สำหรับการประกาศตัวแปรแต่ไม่ได้กำหนดค่าตัวแปรนะ
- --: ตัวเครื่องหมายเท่ากับ เเบบนี้ = เป็นตัวกำหนดตัวแปรพอหลังจากที่ใช้เครื่องหมายเท่ากับแล้วคุณก็สามารถประกาศค่าตัวแปรได้ด้านหน้าเครื่องหมายเท่ากับ
- --: Misc (เพิ่มเติม/ความรู้เล็กๆน้อยๆ):
- --://ข้อควรระวัง:
- --: การกําหนดตัวแปรด้วย local จะเป็นการกำหนดค่าตัวแปรเก่าและไม่ใช่ตัวแปรใหม่และไม่สามารถใช้ซ้ำได้สามารถแก้ได้ในหลายกรณี
- --: ในกรณีที่คุณทำสคริปวาปไปยังจุดใดจุดหนึ่งของ map รัวๆแต่เมื่อคุณตายสคริปหยุดทำงานทันที
- --://สคริป:
- local player = game.Players.LocalPlayer
- local character = player.Character
- local localroot = character:WaitForChild("HumanoidRootPart")
- while wait(0.1) do
- localroot.CFrame = CFrame.new(0, 0, 0)
- end
- --//
- --:ในกรณีนี้สังเกตว่าสคริปอันนี้สร้าง ตัวเเปร player, character, localroot
- --: ตัวแปรเหล่านี้เป็น Instance หรือก็คือ Object ใน game
- --: และตัวแปร local เป็นตัวแปรที่บอกให้.. localroot ทำการอ้างอิงถึง HumanoidRootPart ซึ่งการทำแบบนี้ แล้วเป็น loop ในระหว่างที่ loop หากตัวละครคุณตาย HumanoidRootPart ก็จะหายไปรวมถึง Character ยกเว้น player เพราะเป็น Instance เเละ Object ที่ไม่สามารถหายไปในช่วงเวลาหนึ่ง
- --: พอมันเป็นอย่างนี้แล้ว ตัว local มันจะไม่กำหนดและอ้างอิงแหละ เพราะ HumanoidRootPart เเละ Character ถูกสร้างขึ้นใหม่และ local อ้างอิงถึงอันเก่าเราสามารถแก้ด้วยวิธีนี้ได้:
- --://เช่น:
- local player = game.Players.LocalPlayer
- local character = player.Character
- local localroot = character:WaitForChild("HumanoidRootPart")
- while wait(0.1) do
- localroot.CFrame = CFrame.new(0, 0, 0)
- end
- game.Players.LocalPlayer.CharacterAdded:Connect(function(char)
- character = char
- localroot = character:WaitForChild("HumanoidRootPart")
- end)
- --://
- --: คุณสังเกตด้านบนอันนี้เรียกว่า Event ที่เมื่อตัวละครคุณเพิ่มเข้ามาในเกมหรือเรียกว่า CharacterAdded ตัว Connect ก็จะทำงานส่งสัญญาณไปที่ function และในวงเล็บของ function คือ argument ซึ่งเราสามารถตั้งชื่อได้เช่น char นั่นก็คือ argument ที่อ้างอิงถึง Character ใหม่ที่เพิ่มเข้ามาในเกม
- --: จากนั้นผมใช้เครื่องหมาย เท่ากับ ใส่ character เเละ localroot เพื่อทําให้ มันอ้างอิง(reference) ถึง character เเละ HumanoidRootPart อันใหม่ที่เพิ่มเข้ามาแล้วไม่ใช่อันเก่าที่หายไปแล้ว
- ---: แล้วคุณก็สามารถแก้ปัญหาได้สำเร็จ!
- --: ผมอาจจะไม่อธิบายบางอย่าง รอ.. Phase เเละ ตอนต่อไป
- --:// Phase 1(Parent เเละ Child)
- --: Child กับ Parent คืออะไร?
- --: พูดง่ายๆก็คือ:
- --: Child เป็น Instance เเละ Object เเละ สิ่งต่างๆที่อาศัยอยู่ใน Parent
- --: Parent เป็น Object, Instance ที่มีสิ่งต่างๆซ้อนกันข้างใน ก็คือ Child
- --: Parent ก็สามารถเป็น Child ได้ ถ้ามันอยู่ใน Object นั้นไม่ได้หมายความว่า Parent ทุกอันไม่ใช่ Child (เป็นหมดทุกอัน)
- --: Child ก็เหมือนกัน ทุก object ในเกม roblox มี Parent กันหมด
- --:// Phase 1 (การใช้เครื่องหมายจุดและจุด 2 อัน, Operator):
- --: เครื่องหมายจุด 1 อันกับจุด 2 อันแบบนี้ . :
- --: มีความแตกต่างอย่างไร:
- --: จุด 1 อัน:
- --: method:ใช้สำหรับการอ้างอิงถึง Object เเรกมาถึง Object 5 ในบางกรณีที่จะใช้มันแบบนี้สมมุติว่าคุณสร้าง Part ขึ้นมาใน Workspace แล้วอยากจะเป็นชื่อของมัน เช่น:
- --://สคริป:
- local define = game.Workspace.Part.Name
- print(define)
- --://
- --: อันนี้จะทําการให้ตัวเเปร define มีค่าเท่ากับ Part.Name แต่คุณอาจจะถามว่าทำไมมันไม่ Print Name ของ game เเละ Workspace มาด้วย:
- --: คําตอบ:
- --: การอ้างอิงจาก object 1 ไปยัน object 3 ด้วยจุดและจากนั้นอ้างอิงถึงคุณสมบัติที่ชื่อว่า Name สำหรับการบอกว่า Part มีชื่อว่าอะไรในเกม เรียกง่ายๆว่า path (เส้นทางในการอ้างอิง)(reference)
- --: หรือบางครั้งจุดอันเดียวสามารถใช้กับการ ทำได้หลายอย่าง หรือใช้สำหรับการ access(เข้าถึง Properties เเละอ้างอิงถึงการใช้งาน Function ส่วน Service ไว้รอตอน Phase 2)
- --:// ต่อไป เป็นจุด 2 อัน
- --: เอาง่ายๆก็คือมันใช้สำหรับการ method call ยกตัวอย่างง่ายๆ WaitForChild, FindFirstChild, function(), Connect เเละ อื่นๆอีกมากมาย
- --: Note: คุณลองเขียนสคริปไปเรื่อยๆเดี๋ยวคุณก็เข้าใจและจำหลักการใช้งานมันได้เองโดยดูจากกรณีที่ผมเขียนสคริป
- --://Phase 1(Object(วัตถุ) เเละ Instance, Properties):
- --: Object(วัตถุ) เเละ Instance เป็นสิ่งต่างๆในเกม
- --: Object: 3 มิติ,
- -- Instacne: สามารถได้ทั้ง 3 มิติและ 2 มิติ
- --: 2 มิติก็คือสิ่งต่างๆในหน้าจอเราเช่นหน้าต่าง GUI, Frame
- --: 2 มิติสามารถมีวัตถุ 3 มิติ เข้ามาอยู่ในหน้าต่าง2 มิติได้ในบางกรณีที่มันถูกทำให้เป็น
- --: 3 มิติก็คือสิ่งต่างๆที่อยู่ในเกมและสามารถเห็นได้แต่ได้เเละมีขนาด
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement