دانستن نحوه دسترسی به مختصات بازیکن در Roblox می تواند فرآیندی پیچیده و مبهم باشد. با این حال، اگر راهی برای رسیدن به مختصات و دستکاری آنها پیدا کنید، پایه محکمی برای استفاده از دیگر عملکردهای خلاقانه بازی و آزمایش مهارت های برنامه نویسی خود خواهید داشت.

در این مقاله، نحوه یافتن مختصات بازیکن در Roblox را به شما نشان خواهیم داد.
چگونه مختصات را در Roblox بدست می آورید؟
برای یافتن مختصات شخصیت ها، اشیا و مکان ها، باید نحوه اسکریپت نویسی را در Roblox Studio یاد بگیرید . این پلتفرم شما را قادر می سازد تا دنیاها و مناطقی را برای خود بسازید و آنها را مطابق با اولویت خود سفارشی کنید.
هنگام نوشتن اسکریپت، باید از اطلاعات اولیه استفاده کنید که به شما امکان می دهد پتانسیل اسکریپت نویسی استودیویی را به حداکثر برسانید. یک مثال خوب از این داده ها مختصات است، یعنی موقعیت های بازیکن.
برای رسیدن به موقعیت بازیکن (سمت سرور) باید به ویژگی شخصیت بازیکن بروید. (بازیکن.شخصیت). اما قبل از آن، باید شی بازیکن را پیدا کنید. شما می توانید این کار را با بدست آوردن شی بازیکن در لحظه ای که با یک اسکریپت معمول در جایی در Workspace شما وارد سرور می شود، انجام دهید.

اگر بازی شما فقط یک بازیکن دارد، می توانید شی بازیکن را در ظرف آبجکت خود قرار دهید. هر زمان که به دنبال ارزش آن در یکی از اسکریپت های سمت سرور خود باشید، این ظرف قابل دسترسی است.
برای نشان دادن:
game.Players.PlayerAdded:Connect(function(player) workspace.Data.Player.Value = player
end)
'Data' نشان دهنده پوشه ای است که در Workspace شما قرار گرفته است و 'Player' نشان دهنده ظرف ObjectValue با عنوان 'Player' است که هدف آن ذخیره شی پخش کننده است.
اما این کد تنها گزینه شما نیست. می توانید نام آن را بر اساس ترجیح خود تغییر دهید یا شیء پخش کننده را هر طور که دوست دارید قرار دهید.
این اسکریپت به محض ورود بازیکن به بازی اجرا می شود. در مورد یک بازی تک نفره، سرور فقط یک بازیکن دارد. با این حال، میتوانید کد را طوری تغییر دهید که به هر طریقی که میخواهید سایر بازیکنان را دنبال کنید.
برای دستیابی به ویژگی های پخش کننده، همراه با موقعیت آن، اسکریپت معمولی شما به این صورت است:
پخش کننده محلی = Workspace.Data.Player.Value – شی بازیکن را دریافت کرده و در متغیر 'player' ذخیره می کند.
local var = player.Character.UpperTorso.Position — موقعیت vector3 را می گیرد
در مورد رسیدن به مختصات فردی چطور؟
از این طریق می توانید به مختصات 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 برای نشان دادن Humanoids R15 استفاده کنید. در نتیجه، ممکن است برای مدل های Humanoid به غیر از R15 کار خوبی انجام ندهد.
آیا می توانم سایر قسمت های بدن را برای ردیابی انتخاب کنم؟
قسمت هایی از بدن که می توانید دنبال کنید فقط برای UpperTorso محفوظ نیست. در اینجا نحوه دسترسی به موارد اضافی آمده است:
- برای باز کردن بازی خود از Developer Studio استفاده کنید.
- در حالی که بازی باز است، StarterPlayer را انتخاب کنید.
- به HumanoidDefaultBodyParts بروید (آن را با استفاده از "نمایش کاوشگر" پیدا کنید).
- با این کار لیستی از اعضای بدن که امکان ردیابی را فراهم می کنند، ظاهر می شود.
(اعتبار: Derrick Bouchard – https://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))
(اعتبار: Manyz – https://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) --could be near a brick or in a new area 2. for i, player in ipairs(game.Players:GetChildren()) do
3. --Make sure the character exists and its HumanoidRootPart exists 4. if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
5. --add an offset of 5 for each character 6. player.Character.HumanoidRootPart.CFrame = target + Vector3.new(0, i * 5, 0)
7. end 8. end
کار زیاد منجر به سرگرمی زیادی می شود
همه کدنویسی هایی که برای انجام اقداماتی مانند بدست آوردن مختصات و انتقال از راه دور انجام می شود ممکن است باعث شود فکر کنید Roblox ارزش این مشکل را ندارد. با این حال، کدنویسی شما را قادر می سازد تا بازی ها و واقعیت های متمایز خود را هماهنگ کنید. این نه تنها در درازمدت بسیار مفید است، بلکه می تواند به فعالیت های تفریحی شما نیز تبدیل شود.
آیا دست خود را در کدنویسی در Roblox امتحان کرده اید؟ چطور گذشت؟ در بخش نظرات زیر به ما اطلاع دهید؟