फाइवएम ग्रैंड थेफ्ट ऑटो वी का एक संशोधन है जो आपको Cfx.re द्वारा संचालित अनुकूलित समर्पित सर्वर पर मल्टीप्लेयर चलाने में सक्षम बनाता है।
जब आप फाइवएम सर्वर विकसित करते हैं, तो आप संसाधन बना सकते हैं। ये संसाधन कई भाषाओं लूआ, सी# और जावास्क्रिप्ट में लिखे जा सकते हैं। इस लेख में हम यह देखने जा रहे हैं कि टाइपस्क्रिप्ट का उपयोग करके संसाधन कैसे बनाया जाए
अपना कोड टाइप करने के लिए, हम फाइवएम के पीछे की कंपनी CFX.re द्वारा प्रदान किए गए दो पैकेजों का उपयोग करेंगे
ये पैकेज क्लाइंट-साइड या सर्वर-साइड कोड के अंदर प्रयोग करने योग्य प्रत्येक मूल विधि के लिए प्रकार प्रदान करते हैं।
tsconfig.json
{ "compilerOptions": { "target": "ES2020", "module": "ESNext", "moduleResolution": "Bundler", // Location "outDir": "./dist", // Other "types": ["@citizenfx/client", "@types/node"], "lib": ["ES2020"], "strict": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "skipLibCheck": true }, "include": ["src/**/*.ts"], "exclude": ["**/node_modules", "**/.test.ts"] }
.ts फ़ाइलों के संकलन के बाद, आपको एक बंडल बनाना होगा जिसे फाइवएम सर्वर द्वारा लोड और चलाया जाएगा। दरअसल, फाइवएम केवल पथ, एफएस, जैसे मूल नोड.जेएस पैकेज की आवश्यकता की अनुमति देता है ...
ऐसा करने के लिए, हम रोलअप नामक टूल का उपयोग करते हैं, यह प्लगइन सिस्टम पर आधारित एक जावास्क्रिप्ट मॉड्यूल बंडलर है। मैंने वाइट, आरएसपैक जैसे अन्य टूल भी खोजे, लेकिन यह बहुत जटिल है। एक अन्य उपकरण जो अच्छा प्रदर्शन प्रदान करता है वह अगले बंडल के पीछे एक उपकरण टर्बोपैक होगा लेकिन फिलहाल यह अभी भी अगले के अंदर है।
rollup.config.mjs
import typescript from "@rollup/plugin-typescript"; import commonjs from "@rollup/plugin-commonjs"; import resolve from "@rollup/plugin-node-resolve"; export default { input: "src/index.ts", output: { dir: "dist", format: "cjs", sourcemap: false, }, plugins: [resolve(), typescript(), commonjs()], };
package.json :
{ ... "devDependencies": { "@citizenfx/client": "2.0.9282-1", "@rollup/plugin-commonjs": "^26.0.1", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", "@types/node": "^20.14.12", "rollup": "^4.20.0", "tslib": "^2.6.3", "typescript": "^5.5.4" }, ... }
init.ts
import { join } from "path" export const init = () => { console.log("inited", join(".", "init.js")); }
index.ts
import { init } from "./init" on("onResourceStart", async (resName: string) => { if (resName === GetCurrentResourceName()) { init(); } });
रोलअप -सी चलाने के बाद, आपके पास केवल एक फ़ाइल होगी:
'use strict'; var path = require('path'); const init = () => { console.log("inited", path.join(".", "init.js")); }; on("onResourceStart", async (resName) => { if (resName === GetCurrentResourceName()) { init(); } });
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3