לדעת איך להשיג גישה לקואורדינטות של שחקנים ב-Roblox יכול להיות תהליך מסובך ולא ברור. עם זאת, אם תמצא דרך להגיע לקואורדינטות ולתפעל אותן, יהיה לך בסיס מוצק לניצול פונקציות יצירתיות אחרות של המשחק ובדיקת כישורי התכנות שלך.
במאמר זה נראה לך כיצד למצוא קואורדינטות לשחקן ב-Roblox.
איך משיגים קואורדינטות ב-Roblox?
כדי למצוא קואורדינטות של דמויות, אובייקטים ומקומות, עליך ללמוד כיצד לתסריט ב-Roblox Studio. פלטפורמה זו מאפשרת לך ליצור עולמות ואזורים משלך ולהתאים אותם לפי העדפתך.
במהלך התסריט, תצטרך להשתמש במידע בסיסי שיאפשר לך למקסם את הפוטנציאל של תסריטים באולפן. דוגמה מצוינת לנתונים כאלה היא קואורדינטות, כלומר עמדות שחקנים.
הגעה לעמדה של שחקן (צד השרת) תדרוש ממך לעבור למאפיין הדמות של השחקן. (שחקן.דמות). אבל לפני כן, תצטרך למצוא את האובייקט של השחקן. אתה יכול לעשות זאת על ידי רכישת האובייקט של הנגן ברגע שהוא נכנס לשרת עם סקריפט רגיל איפשהו בסביבת העבודה שלך.
אם המשחק שלך כולל רק שחקן אחד, אתה יכול למקם את אובייקט השחקן במיכל האובייקט שלך. מיכל זה נגיש בכל פעם שאתה מחפש את הערך שלו באחד מהסקריפטים בצד השרת שלך.
לדמות:
game.Players.PlayerAdded:Connect(function(player)workspace.Data.Player.Value = סוף שחקן)
'נתונים' מייצגים תיקיה המוצבת בסביבת העבודה שלך ו'Player' מייצג את מיכל ObjectValue שכותרתו 'Player' שמטרתו לשמור את אובייקט הנגן.
אבל הקוד הזה הוא לא האפשרות היחידה שלך. אל תהסס לתת לו שם או לשנות אותו לפי העדפתך, או למקם את אובייקט הנגן איך שתרצה.
סקריפט זה פועל ברגע ששחקן נכנס למשחק. במקרה של משחק לשחקן יחיד, לשרת יש רק שחקן אחד. עם זאת, אתה יכול לשנות את הקוד כדי לעקוב אחר שחקנים אחרים בכל דרך שתרצה.
כדי להגיע למאפייני השחקן, יחד עם מיקומו, כך ייראה התסריט הרגיל שלך:
שחקן מקומי = Workspace.Data.Player.Value -מקבל אובייקט נגן ומאחסן אותו במשתנה 'שחקן'
local var = player.Character.UpperTorso.Position — מקבל מיקום וקטור3
מה לגבי הגעה לקואורדינטות אישיות?
אתה יכול לגשת לקואורדינטות X, Y, Z בדרך זו:
local varX = player.Character.UpperTorso.Position.X local varY = player.Character.UpperTorso.Position.Y local varZ = player.Character.UpperTorso.Position.Z
כאן, אתה יכול להשתמש ב-UpperTorso כדי לייצג R15 Humanoids. כתוצאה מכך, ייתכן שהוא לא יעשה את העבודה עבור דגמי Humanoid מלבד R15.
האם אוכל לבחור חלקי גוף אחרים למעקב?
חלקי גוף שאתה יכול לעקוב אחריהם אינם שמורים ל-UpperTorso בלבד. כך ניתן לגשת לאלה נוספים:
- השתמש בסטודיו למפתחים כדי לפתוח את המשחק שלך.
- בזמן שהמשחק פתוח, בחר StarterPlayer.
- עבור אל HumanoidDefaultBodyParts (מצא אותו באמצעות "תצוגת סייר").
- זה יציג רשימה של חלקי גוף המאפשרים מעקב.
(קרדיטים: Derrick Bouchard – //gamedev.stackexchange.com/users/138624/derrick-bouchard).
האם אתה יכול להשתמש בקואורדינטות לטלפורט איפשהו?
כעת, לאחר שגילית כיצד לחשוף קואורדינטות ב-Roblox, תרצה לדעת אם ישנן פעילויות דמיוניות שתוכל להשתמש בהן בידע הזה. לדוגמה, אתה יכול להקל על טלפורטציה אם שחזרת את מיקום הסמן שלך. הנה דרך פשוטה לעשות זאת:
target = game.Players.LocalPlayer:GetMouse() .Hit x = target.X y = target.Y z = target.Z game.Players.LocalPlayer.Character:MoveTo(Vector3.new(x,y,z))
(קרדיטים: oftenz – //www.roblox.com/users/234079075/profile).
כיצד מתבצע בדרך כלל טלפורטציה ב-Roblox?
טלפורטציה היא ללא ספק אחת התכונות השימושיות ביותר ב-Roblox. זה מאפשר לשחקנים לנוע במהירות במפות גדולות ובכך לאפשר הרבה יותר אינטראקציה.
עם זאת, ביצוע נכון יכול להיות מסובך, במיוחד אם אתה חדש בתסריטאות. אחת הבעיות הנפוצות ביותר שעלולות להתרחש בזמן טלפורטציה היא שבירה של הדגם. לדוגמה, אם השתמשת בסקריפט הבא, תפריד את הראש מהגו:
game.Workspace.Player.Torso.Position = Vector3.new(0, 50, 0)
במקום זאת, עליך להשתמש במאפיין CFframe ובסוג הנתונים CFframe. כך עושים זאת וטלפורטים נכון של שחקן:
game.Workspace.Player.HumanoidRootPart.CFrame = CFrame.new(Vector3.new(0, 50, 0))
האם זה אפשרי לטלפורט את כל השחקנים?
אתה יכול בטלפורט את כל השחקנים על מפה. עם זאת, אתה צריך להיות זהיר עם עמדות היעד כדי לשמור על פלג הגוף העליון של השחקנים שלמים. כך יראה הקוד:
1. target = CFrame.new(0, 50, 0) --יכול להיות ליד לבנה או באזור חדש 2. עבור i, שחקן ב-ipairs(game.Players:GetChildren()) עושה 3. --וודא כי הדמות קיימת וה-HumanoidRootPart שלה קיים 4. אם player.Character and player.Character:FindFirstChild("HumanoidRootPart") אז 5. --הוסף קיזוז של 5 לכל דמות 6. player.Character.HumanoidRootPart.CFrame = target + Vector3 .new(0, i * 5, 0) 7. סוף 8. סוף
הרבה עבודה מובילה להרבה כיף
כל הקידוד שנכנס לביצוע פעולות כמו השגת קואורדינטות וטלפורטציה עלול לגרום לך לחשוב שרובלוקס לא שווה את הטרחה. עם זאת, קידוד מאפשר לך לתזמר את המשחקים והמציאות המיוחדים שלך. לא רק שזה מתגמל במיוחד בטווח הארוך, אלא שזה גם יכול להפוך לפעילות הפנאי המומלצת שלך.
ניסית את כוחך בקידוד ב-Roblox? איך זה הלך? ספר לנו בקטע התגובות למטה?