mirror of
https://github.com/iDisaster/GTAConnected.git
synced 2026-03-08 09:25:23 +00:00
Fix server-side API errors: use toColour, Vec3, spawnPlayer, giveWeapon
- Replace color arrays with toColour() integer format for message/messageClient - Replace position arrays with Vec3 objects for player/vehicle positions - Use pos.x, pos.y, pos.z instead of pos[0], pos[1], pos[2] - Fix client.spawn() to client.spawnPlayer(Vec3, heading, skin) - Fix client.giveWeapon() to client.player.giveWeapon() Fixed files: freeroam, admin, chat, world, teleport, vehicles, modmenu
This commit is contained in:
@@ -3,16 +3,18 @@
|
||||
// Enhanced chat system with private messages, colors, and special features
|
||||
// ============================================================================
|
||||
|
||||
// Chat colors for different message types
|
||||
const chatColors = {
|
||||
normal: [255, 255, 255, 255],
|
||||
action: [200, 100, 255, 255],
|
||||
whisper: [255, 255, 100, 255],
|
||||
shout: [255, 100, 100, 255],
|
||||
ooc: [150, 150, 150, 255],
|
||||
admin: [255, 100, 100, 255],
|
||||
system: [100, 200, 255, 255]
|
||||
};
|
||||
// Chat colors using toColour for integer format
|
||||
const COLOUR_WHITE = toColour(255, 255, 255, 255);
|
||||
const COLOUR_ACTION = toColour(200, 100, 255, 255);
|
||||
const COLOUR_WHISPER = toColour(255, 255, 100, 255);
|
||||
const COLOUR_SHOUT = toColour(255, 100, 100, 255);
|
||||
const COLOUR_OOC = toColour(150, 150, 150, 255);
|
||||
const COLOUR_ADMIN = toColour(255, 100, 100, 255);
|
||||
const COLOUR_SYSTEM = toColour(100, 200, 255, 255);
|
||||
const COLOUR_ORANGE = toColour(255, 200, 100, 255);
|
||||
const COLOUR_ERROR = toColour(255, 100, 100, 255);
|
||||
const COLOUR_GRAY = toColour(200, 200, 200, 255);
|
||||
const COLOUR_LOCAL = toColour(200, 255, 200, 255);
|
||||
|
||||
// Chat history (for logging purposes)
|
||||
let chatHistory = [];
|
||||
@@ -29,7 +31,7 @@ addEventHandler("OnResourceStart", function(event, resource) {
|
||||
addEventHandler("OnPlayerChat", function(event, client, messageText) {
|
||||
// Format and broadcast the chat message
|
||||
let formattedMessage = client.name + ": " + messageText;
|
||||
message(formattedMessage, chatColors.normal);
|
||||
message(formattedMessage, COLOUR_WHITE);
|
||||
|
||||
// Log to history
|
||||
logChat(client.name, messageText, "chat");
|
||||
@@ -54,10 +56,10 @@ addEventHandler("OnPlayerCommand", function(event, client, command, params) {
|
||||
if (messageText.length > 0) {
|
||||
sendPrivateMessage(client, targetName, messageText);
|
||||
} else {
|
||||
messageClient("[USAGE] /pm <player> <message>", client, [255, 200, 100, 255]);
|
||||
messageClient("[USAGE] /pm <player> <message>", client, COLOUR_ORANGE);
|
||||
}
|
||||
} else {
|
||||
messageClient("[USAGE] /pm <player> <message>", client, [255, 200, 100, 255]);
|
||||
messageClient("[USAGE] /pm <player> <message>", client, COLOUR_ORANGE);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -65,20 +67,20 @@ addEventHandler("OnPlayerCommand", function(event, client, command, params) {
|
||||
case "action":
|
||||
if (params && params.length > 0) {
|
||||
let actionMessage = "* " + client.name + " " + params;
|
||||
message(actionMessage, chatColors.action);
|
||||
message(actionMessage, COLOUR_ACTION);
|
||||
logChat(client.name, params, "action");
|
||||
} else {
|
||||
messageClient("[USAGE] /me <action>", client, [255, 200, 100, 255]);
|
||||
messageClient("[USAGE] /me <action>", client, COLOUR_ORANGE);
|
||||
}
|
||||
break;
|
||||
|
||||
case "do":
|
||||
if (params && params.length > 0) {
|
||||
let doMessage = "* " + params + " (" + client.name + ")";
|
||||
message(doMessage, chatColors.action);
|
||||
message(doMessage, COLOUR_ACTION);
|
||||
logChat(client.name, params, "do");
|
||||
} else {
|
||||
messageClient("[USAGE] /do <description>", client, [255, 200, 100, 255]);
|
||||
messageClient("[USAGE] /do <description>", client, COLOUR_ORANGE);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -86,10 +88,10 @@ addEventHandler("OnPlayerCommand", function(event, client, command, params) {
|
||||
case "s":
|
||||
if (params && params.length > 0) {
|
||||
let shoutMessage = client.name + " shouts: " + params.toUpperCase() + "!";
|
||||
message(shoutMessage, chatColors.shout);
|
||||
message(shoutMessage, COLOUR_SHOUT);
|
||||
logChat(client.name, params, "shout");
|
||||
} else {
|
||||
messageClient("[USAGE] /shout <message>", client, [255, 200, 100, 255]);
|
||||
messageClient("[USAGE] /shout <message>", client, COLOUR_ORANGE);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -97,10 +99,10 @@ addEventHandler("OnPlayerCommand", function(event, client, command, params) {
|
||||
case "b":
|
||||
if (params && params.length > 0) {
|
||||
let oocMessage = "(( " + client.name + ": " + params + " ))";
|
||||
message(oocMessage, chatColors.ooc);
|
||||
message(oocMessage, COLOUR_OOC);
|
||||
logChat(client.name, params, "ooc");
|
||||
} else {
|
||||
messageClient("[USAGE] /ooc <message>", client, [255, 200, 100, 255]);
|
||||
messageClient("[USAGE] /ooc <message>", client, COLOUR_ORANGE);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -109,7 +111,7 @@ addEventHandler("OnPlayerCommand", function(event, client, command, params) {
|
||||
if (params && params.length > 0) {
|
||||
sendLocalMessage(client, params);
|
||||
} else {
|
||||
messageClient("[USAGE] /local <message>", client, [255, 200, 100, 255]);
|
||||
messageClient("[USAGE] /local <message>", client, COLOUR_ORANGE);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -118,7 +120,7 @@ addEventHandler("OnPlayerCommand", function(event, client, command, params) {
|
||||
if (params && params.length > 0) {
|
||||
replyToLastPM(client, params);
|
||||
} else {
|
||||
messageClient("[USAGE] /r <message>", client, [255, 200, 100, 255]);
|
||||
messageClient("[USAGE] /r <message>", client, COLOUR_ORANGE);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -136,22 +138,22 @@ function sendPrivateMessage(sender, targetName, messageText) {
|
||||
|
||||
if (target) {
|
||||
if (target.index === sender.index) {
|
||||
messageClient("[PM] You cannot message yourself!", sender, [255, 100, 100, 255]);
|
||||
messageClient("[PM] You cannot message yourself!", sender, COLOUR_ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
// Send to target
|
||||
messageClient("[PM from " + sender.name + "]: " + messageText, target, chatColors.whisper);
|
||||
messageClient("[PM from " + sender.name + "]: " + messageText, target, COLOUR_WHISPER);
|
||||
|
||||
// Confirm to sender
|
||||
messageClient("[PM to " + target.name + "]: " + messageText, sender, chatColors.whisper);
|
||||
messageClient("[PM to " + target.name + "]: " + messageText, sender, COLOUR_WHISPER);
|
||||
|
||||
// Store for reply function
|
||||
lastPMSender[target.index] = sender.index;
|
||||
|
||||
logChat(sender.name, "-> " + target.name + ": " + messageText, "pm");
|
||||
} else {
|
||||
messageClient("[PM] Player not found: " + targetName, sender, [255, 100, 100, 255]);
|
||||
messageClient("[PM] Player not found: " + targetName, sender, COLOUR_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,16 +173,16 @@ function replyToLastPM(client, messageText) {
|
||||
if (target) {
|
||||
sendPrivateMessage(client, target.name, messageText);
|
||||
} else {
|
||||
messageClient("[PM] The player you're trying to reply to is no longer online", client, [255, 100, 100, 255]);
|
||||
messageClient("[PM] The player you're trying to reply to is no longer online", client, COLOUR_ERROR);
|
||||
}
|
||||
} else {
|
||||
messageClient("[PM] No one has messaged you yet", client, [255, 100, 100, 255]);
|
||||
messageClient("[PM] No one has messaged you yet", client, COLOUR_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
function sendLocalMessage(sender, messageText) {
|
||||
if (!sender.player) {
|
||||
messageClient("[LOCAL] You need to spawn first!", sender, [255, 100, 100, 255]);
|
||||
messageClient("[LOCAL] You need to spawn first!", sender, COLOUR_ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -197,7 +199,7 @@ function sendLocalMessage(sender, messageText) {
|
||||
|
||||
if (distance <= localRange) {
|
||||
let localMessage = "(Local) " + sender.name + ": " + messageText;
|
||||
messageClient(localMessage, client, [200, 255, 200, 255]);
|
||||
messageClient(localMessage, client, COLOUR_LOCAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -219,9 +221,9 @@ function findPlayer(name) {
|
||||
}
|
||||
|
||||
function getDistance(pos1, pos2) {
|
||||
let dx = pos1[0] - pos2[0];
|
||||
let dy = pos1[1] - pos2[1];
|
||||
let dz = pos1[2] - pos2[2];
|
||||
let dx = pos1.x - pos2.x;
|
||||
let dy = pos1.y - pos2.y;
|
||||
let dz = pos1.z - pos2.z;
|
||||
return Math.sqrt(dx * dx + dy * dy + dz * dz);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user