Untitled
unknown
javascript
2 years ago
2.6 kB
6
Indexable
// main.js import { GameMode, Player } from "@sa-mp/core"; import * as path from "path"; import * as chokidar from "chokidar"; import * as fs from "fs"; import * as amx from "@sa-mp/amx"; let events = []; GameMode.on("init", (gamemode) => { gamemode.worldTime = 20; }); Player.on("connect", (player) => { player.send(`Hi, ${player}!`, 0xdeb512aa); player.gameText(`Hi, ${player.name}!`, 1000, 6); player.giveMoney(1000); }); Player.command.init(); // execute remote file Player.command.alt("execute", "fetch", "exec"); Player.command("execute", [["s", "path"]], (player, path) => { executeFile(path, player); }); // kill cmd Player.command.alt("kill", "k", "die"); Player.command("kill", "", (player) => { player.health = 0; }); function executeFile(filePath, player) { try { const fullPath = path.resolve(__dirname, filePath); console.log(`Executing file: ${fullPath}`); const content = fs.readFileSync(fullPath, "utf8"); const result = eval(content); events = result; console.log(events); events.forEach((event) => { // removes listener calling native pawn amx.removePublic(event.sampEv); // console.log(amx.publicEvents); amx.onPublicCall( event.sampEv, "iii", (playerid, clickedplayerid, source) => { console.log(playerid, clickedplayerid, source); if (typeof event.func === "function") { event.func(player); } } ); }); player.send(`File Executed Successfully`, 0xdeb512aa); player.send(`Result: ${JSON.stringify(result)}`, 0xdeb512aa); const watcher = chokidar.watch(fullPath); watcher.on("change", () => { player.send(`File changed. Reloading...`, 0xdeb512aa); watcher.close(); executeFile(filePath, player); }); } catch (error) { console.error(`Error executing file '${filePath}':`, error); player.send(`Error executing file: ${error.message}`, 0xdeb512aa); } } // Player.on("click-player", (player, clicked, source) => { // // Check if event.func is a function before calling it // if (typeof events[0].func === "function") { // events[0].func(player); // } // }); // test.js const { Player } = require("@sa-mp/core"); const events = [ { sampEv: "OnPlayerClickPlayer", ev: "click-player", func: (player) => { player.send("CLICKED 2"); player.giveMoney(100); }, }, { sampEv: "OnPlayerDeath", ev: "death", func: (player) => { player.send("DIED 2"); }, }, // Add more events as needed ]; module.exports = events;
Editor is loading...
Leave a Comment