ब्लॉग पर वापस
Tutorial3 मिनट पढ़ें

FiveM के लिए Lua स्क्रिप्टिंग मूल बातें: डेवलपर स्टार्टर किट

FiveM के लिए Lua स्क्रिप्टिंग को शुरू से सीखें। सिंटैक्स, नेटिव्स, क्लाइंट बनाम सर्वर, इवेंट्स और वास्तविक उदाहरण ताकि आप जल्दी से अपना पहला काम करने वाला संसाधन लिख सकें।

Agency Scripts

Agency Scripts के संस्थापक और प्रमुख डेवलपर

FiveM के लिए Lua क्यों?

Lua FiveM विकास में प्राथमिक स्क्रिप्टिंग भाषा है, और इसके अच्छे कारण हैं। यह हल्का, तेजी से निष्पादित होने वाला, और CitizenFX फ्रेमवर्क में गहराई से एकीकृत है जो FiveM को संचालित करता है। चाहे आप एक सरल कमांड स्क्रिप्ट बना रहे हों या एक जटिल रोलप्ले सिस्टम, Lua के मूल सिद्धांतों को समझना एक कुशल FiveM डेवलपर बनने की पहली सीढ़ी है। भारी भाषाओं के विपरीत, Lua आपको वास्तविक समय गेम सर्वर स्क्रिप्टिंग के लिए आवश्यक प्रदर्शन ओवरहेड देता है जहाँ हर मिलीसेकंड महत्वपूर्ण होता है।

वेरिएबल्स, प्रकार, और फंक्शंस

Lua डायनामिक टाइपिंग का उपयोग करता है, जिसका मतलब है कि आपको वेरिएबल प्रकार स्पष्ट रूप से घोषित करने की आवश्यकता नहीं है। लोकल वेरिएबल्स घोषित किए जाते हैं local कीवर्ड और उनके ब्लॉक तक सीमित होते हैं, जबकि ग्लोबल वेरिएबल्स हर जगह एक्सेसिबल होते हैं लेकिन प्रदर्शन और सुरक्षा कारणों से FiveM स्क्रिप्ट्स में इन्हें टालना चाहिए। Lua में फंक्शंस फर्स्ट-क्लास वैल्यूज़ होते हैं, जिसका मतलब है कि आप उन्हें वेरिएबल्स में स्टोर कर सकते हैं, आर्गुमेंट्स के रूप में पास कर सकते हैं, और अन्य फंक्शंस से रिटर्न कर सकते हैं। यह लचीलापन FiveM इवेंट हैंडलर्स और कॉलबैक्स के काम करने का केंद्रीय हिस्सा है।

Tables के साथ काम करना

टेबल Lua में सबसे शक्तिशाली डेटा संरचना हैं और एक साथ एरे, डिक्शनरी और ऑब्जेक्ट के रूप में काम करते हैं। FiveM में, आप खिलाड़ी डेटा, कॉन्फ़िगरेशन विकल्प और इन्वेंट्री आइटम स्टोर करने के लिए टेबल्स का लगातार उपयोग करेंगे। एक टेबल मिश्रित कुंजी प्रकार और नेस्टेड संरचनाएं रख सकता है, जिससे यह अत्यंत बहुमुखी बन जाता है। टेबल्स को इटरेट करने का तरीका समझना आवश्यक है pairs() और ipairs() क्लाइंट और सर्वर दोनों पक्षों पर डेटा संग्रहों को कुशलतापूर्वक संसाधित करने के लिए आवश्यक है।

Citizen.CreateThread और गेम लूप्स

FiveM-विशिष्ट Lua फ़ंक्शंस में से एक महत्वपूर्ण है Citizen.CreateThread", जो आपको मुख्य गेम थ्रेड को ब्लॉक किए बिना असिंक्रोनस कोड चलाने की अनुमति देता है। इन थ्रेड्स के अंदर, आप आमतौर पर उपयोग करते हैं Citizen.Wait(ms) निष्पादन समय को नियंत्रित करने के लिए। एक सामान्य पैटर्न है एक लूप बनाना जिसमें while true do एक थ्रेड के अंदर, प्रतीक्षा अंतराल का उपयोग करते हुए शर्तों की जांच या गेम स्थिति अपडेट करना। प्रतीक्षा अंतराल सही होना प्रदर्शन के लिए महत्वपूर्ण है, क्योंकि एक थ्रेड जिसमें Wait(0) हर फ्रेम चलता है और केवल उन कार्यों के लिए आरक्षित होना चाहिए जिन्हें वास्तव में प्रति-फ्रेम अपडेट की आवश्यकता होती है।

इवेंट्स और संचार

FiveM स्क्रिप्ट इवेंट्स के माध्यम से संचार करती हैं, जो क्लाइंट-सर्वर इंटरैक्शन की रीढ़ हैं। आप इवेंट हैंडलर पंजीकृत करते हैं RegisterNetEvent और AddEventHandler , फिर उन्हें ट्रिगर करें TriggerEvent, TriggerServerEvent", या TriggerClientEventक्लाइंट-साइड और सर्वर-साइड घटनाओं के बीच अंतर को समझना सुरक्षित स्क्रिप्ट बनाने के लिए महत्वपूर्ण है। क्लाइंट से भेजे गए डेटा पर सर्वर-साइड सत्यापन के बिना कभी भरोसा न करें, क्योंकि दुर्भावनापूर्ण खिलाड़ी किसी भी क्लाइंट-रजिस्टर्ड इवेंट को मनमाने डेटा के साथ ट्रिगर कर सकते हैं।

अपनी पहली स्क्रिप्ट के साथ शुरू करें

अपनी पहली FiveM स्क्रिप्ट बनाने के लिए, अपनी resources निर्देशिका में एक नया फ़ोल्डर बनाएं, एक fxmanifest.lua संसाधन मेटाडेटा के साथ, और एक क्लाइंट या सर्वर Lua फ़ाइल जोड़ें। कुछ सरल से शुरू करें जैसे एक कमांड जो एक सूचना दिखाता है या खिलाड़ी को टेलीपोर्ट करता है। अपने परिवर्तनों का परीक्षण संसाधन को पुनः आरंभ करके करें ensure सर्वर कंसोल में कमांड। जैसे-जैसे आप अधिक सहज होते हैं, FiveM दस्तावेज़ के माध्यम से नेटिव फंक्शंस का अन्वेषण करें और क्लाइंट रेंडरिंग को सर्वर-साइड लॉजिक के साथ जोड़ने वाले अधिक जटिल सिस्टम बनाना शुरू करें।

शुरू करने के लिए तैयार?

हमारी शॉप से स्क्रिप्ट लें, या सपोर्ट, अपडेट और आगे आने वाली चीज़ों की झलक के लिए Discord से जुड़ें।