قد تكون معرفة كيفية الوصول إلى إحداثيات المشغل في Roblox عملية معقدة وغامضة. ومع ذلك ، إذا وجدت طريقة للوصول إلى الإحداثيات ومعالجتها ، فسيكون لديك أساس متين لاستخدام الوظائف الإبداعية الأخرى للعبة واختبار مهاراتك في البرمجة.
سنشرح لك في هذه المقالة كيفية العثور على إحداثيات اللاعب في لعبة roblox.
كيف تحصل على الإحداثيات في لعبة roblox؟
للعثور على إحداثيات الشخصيات والأشياء والأماكن ، تحتاج إلى تعلم كيفية البرمجة النصية في Roblox Studio. تتيح لك هذه المنصة إنشاء عوالم ومناطق خاصة بك وتخصيصها وفقًا لتفضيلاتك.
أثناء كتابة النص ، ستحتاج إلى استخدام المعلومات الأساسية التي تتيح لك تعظيم إمكانات البرمجة النصية للاستوديو. ومن الأمثلة الجيدة على هذه البيانات الإحداثيات ، أي مواقع اللاعب.
سيتطلب الوصول إلى مركز اللاعب (من جانب الخادم) الانتقال إلى خاصية شخصية اللاعب. (لاعب. حرف). ولكن قبل ذلك ، ستحتاج إلى العثور على كائن اللاعب. يمكنك القيام بذلك عن طريق الحصول على كائن اللاعب بمجرد دخوله إلى الخادم بنص عادي في مكان ما في مساحة العمل الخاصة بك.
إذا كانت لعبتك تحتوي على لاعب واحد فقط ، يمكنك وضع كائن اللاعب في حاوية الكائن الخاصة بك. يمكن الوصول إلى هذه الحاوية متى بحثت عن قيمتها في أحد النصوص البرمجية من جانب الخادم.
لتوضيح:
تمت إضافة game.Player.Player: اتصال (الوظيفة (اللاعب) مساحة العمل. Data.Player.Value = نهاية اللاعب)
تمثل "البيانات" مجلدًا يتم وضعه في مساحة العمل الخاصة بك ويمثل "Player" حاوية ObjectValue بعنوان "Player" والغرض منها هو حفظ كائن المشغل.
لكن هذا الرمز ليس خيارك الوحيد. لا تتردد في تسميته أو تعديله وفقًا لتفضيلاتك ، أو ضع كائن المشغل كما تريد.
يتم تشغيل هذا النص بمجرد دخول اللاعب في اللعبة. في حالة لعبة اللاعب الفردي ، يكون لدى الخادم لاعب واحد فقط. ومع ذلك ، يمكنك تعديل الكود لمتابعة اللاعبين الآخرين بالطريقة التي تريدها.
للوصول إلى خصائص المشغل ، جنبًا إلى جنب مع موقعه ، هذا ما سيبدو عليه البرنامج النصي العادي:
local player = Workspace.Data.Player.Value - الحصول على كائن المشغل وتخزينه في متغير "player"
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 لتمثيل R15 Humanoids. نتيجة لذلك ، قد لا تعمل الحيلة مع طرز Humanoid بخلاف R15.
هل يمكنني اختيار أجزاء أخرى من الجسم لتتبعها؟
أجزاء الجسم التي يمكنك متابعتها ليست محجوزة لـ UpperTorso فقط. فيما يلي كيفية الوصول إلى المزيد:
- استخدم Developer Studio لفتح لعبتك.
- أثناء فتح اللعبة ، حدد StarterPlayer.
- انتقل إلى HumanoidDefaultBodyParts (ابحث عنه باستخدام "عرض المستكشف").
- سيؤدي ذلك إلى عرض قائمة بأجزاء الجسم التي تتيح التتبع.
(الاعتمادات: ديريك بوشار - //gamedev.stackexchange.com/users/138624/derrick-bouchard).
هل يمكنك استخدام الإحداثيات للنقل الآني في مكان ما؟
الآن بعد أن اكتشفت كيفية الكشف عن الإحداثيات في Roblox ، سترغب في معرفة ما إذا كانت هناك أي أنشطة تخيلية يمكنك استخدام هذه المعرفة من أجلها. على سبيل المثال ، يمكنك تسهيل النقل الآني إذا كنت قد استعدت موقع المؤشر. إليك طريقة بسيطة للقيام بذلك:
الهدف = game.Players.LocalPlayer: GetMouse ().
(الاعتمادات: غالبًا - //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. الهدف = 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 = الهدف + Vector3 .new (0، i * 5، 0) 7. النهاية 8. النهاية
يؤدي الكثير من العمل إلى الكثير من المرح
قد تجعلك جميع عمليات الترميز التي تدخل في تنفيذ الإجراءات مثل الحصول على الإحداثيات والنقل الآني تعتقد أن Roblox لا يستحق العناء. ومع ذلك ، يمكّنك الترميز من تنسيق ألعابك وحقائقك المميزة. لا يعتبر هذا مجزيًا للغاية على المدى الطويل فحسب ، بل يمكن أن يتحول أيضًا إلى نشاط ترفيهي.
هل جربت يدك في البرمجة في لعبة roblox؟ كيف سار الأمر؟ واسمحوا لنا أن نعرف في قسم التعليقات أدناه؟