Leaderboard
Popular Content
Showing content with the highest reputation on 04/08/20 in all areas
-
Hi everyone! Two words about me: My name is Mark. Im working as junior fronted developer. What is this? My open source role play server. I think, it can help some new developers learn and start a project. I'll develop it via github: https://github.com/MarkCavalli/rageserver I will be glad to see any improvements: code review, pull requests, language improvements (My native language is Russian). Also you can quickly connect and test it How to install: https://github.com/MarkCavalli/rageserver Features: Log In/Sign Up Module Server saves player's position on disconnect. (/save) command for development simulate disconnect. MoneyAPI Module -bank account and tax account. - ATMs Character Creator Module Jobs: - Orange Collector Businesses: - Clothing Shops Future plans: - New jobs1 point
-
Hello everyone! In this tutorial I will try to show you how to create a Web map of your server. Stage 0 - Some usefull stuff We need to walk around GTA map, so lets create a resource to make it easier: mp.events.addCommand('veh', (player, veh)=> { mp.vehicles.new(veh, player.position) }) // Create a vehicle mp.events.addCommand('tp', (player, _, x, y, z)=> { player.giveWeapon(0xFBAB5776, 2) // Parachute, you need this, trust me player.position = new mp.Vector3(parseInt(x), parseInt(y), parseInt(z)) }) // Teleport a player mp.events.addCommand('pos', (player)=>{ console.log(player.position.x + ' ' + player.position.y + ' ' + player.position.z) }) // Get player coords at write it to console Stage 1 - Frontend Step 1: Get a map image, you can find some good images here: https://gtaforums.com/topic/595113-high-resolution-maps-satellite-roadmap-atlas/ I will use 4096*4096 satellite map. http://blog.damonpollard.com/wp-content/uploads/2013/09/GTAV_SATELLITE_4096x4096.png Step 2: Create a html file for our map: <img src='http://blog.damonpollard.com/wp-content/uploads/2013/09/GTAV_SATELLITE_4096x4096.png' style="position: absolute"> <canvas id='map' style='height: 4096px; width: 4096px; position: absolute; z-index: 9999'> This code adds a picture and then puts a canvas over it, so we can draw above our map. Step 3: Lets make some calculations 0) First of all, install commands from Stage 0 to your gamemode and then connect to your server. 1) Open your map picture with Paint 2) Determine zero point Teleport to (0, 0, 72) position and determine this location at your map inside paint (put pointer on it), write down coordinates 3) Determine map scale Choose two points at map. I will use the most northen island and LS Aiport Write down 'paint' coordinates for both. It is (1889, 232) (1570, 3939) for me (if you use map with another size, you will get different numbers). Calculate range between this coords, it is 3720.7002 for me. Then go to GTA and walk to both points Write /pos to output your position to console 34.01333999633789 7689.458984375 2.8789443969726562 - northen island -933.9918823242188 -3570.4599609375 14.037487030029297 - airport corner Then calculate distance between this points only with x and y axis. Result: 11301.451622046046 (meters) Now lets finally get map scale: for me it is 11301.451622046046 (meters) / 3720.7 (pixels) = 3.037861303705727 (meters per pixel) 4) Determine axises Red is world coords, green - picture/html coords Step 4: Lets start with a code First of all, we need a function that converts world coordinates to picture coordinates. const ZeroX = 1903 const ZeroY = 2690 const Scale = 3.037861303705727 function getPictureCoords(x, y) { x = x/Scale y = y/Scale return {x: ZeroX + x , y: ZeroY - y} // Invert Y-axis } You can test it by teleporting to random coords and then finding that place in paint Now it's time to start drawing. const ctx = document.getElementById('map').getContext('2d') Lets make a function that draws a player marker (red circle and a name above it) function drawPlayerMarker(x, y, name) { newCoords = getPictureCoords(x, y) x = newCoords.x y = newCoords.y ctx.fillStyle = 'red' ctx.beginPath() ctx.arc(x, y, 5, 0, 2 * Math.PI) ctx.fill() ctx.font = "25px Arial"; ctx.fillText(name, x - 15, y - 15) } Lets test it! It works! Stage 2 - Backend We will use socket.io to communicate between browser and server. Step 0: Install express and socket.io packages. Run windows command line -> change directory to your /server-files directory -> run npm install express npm install socket.io Step 1: Create express app //load map.html and socket.io var fs = require('fs') const port = 3000 var mapHTML = fs.readFileSync("./webmap/map.html", "utf8") var socketIO = fs.readFileSync("./webmap/socket.io.js", "utf8") //create app var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); //listen 3000 port http.listen(3000, function(){ console.log('webMap is active at 3000 port!'); }); //send map.html and socket.io to every client app.get('/', function (req, res) { res.send(mapHTML); }); app.get('/socket.io.js', function (req, res) { res.send(socketIO); }) Put your map.html file to /server-files/webmap folder Then go to \server-files\node_modules\socket.io-client\dist, find socket.io.js file and put it to server-files/webmap folder Step 2: Prepare and send data to client function prepareAndSendPlayersData() { var toSend = [] mp.players.forEach((player)=> { toSend.push({ x: player.position.x, y: player.position.y, name: player.name }) }) sendPlayersData(toSend) } function sendPlayersData(data) { io.sockets.emit('playersData', data) // Send our data to every client } Step 3: Create interval setInterval(prepareAndSendPlayersData, 200) // Update every 200 ms Stage 3 - Receiving data on client Step 1: Add socket.io script to your html file <script src="/socket.io.js"></script> Step 2: Add variable and event to handle data var playersData = [] var socket = io('localhost:3000') // Your server ip here socket.on('playersData', (data) => { playersData = data redraw() }) Step 3: Redraw map with new data function redraw() { ctx.clearRect(0, 0, 4096, 4096); playersData.forEach((player)=> { drawPlayerMarker(player.x, player.y, player.name) }) Thats all! You can run your server, then open browser and go to youserverip:3000 and test it. map.js (server package) map.html (put it to server-files/webmap folder) This tutorial will be continued Have a good day!1 point
-
Version 1.1.0
1529 downloads
- Up to 20 NEW hairstyles for males! - Up to 19 NEW hairstyles for females! - Root's character creator adaption supported! Installation: 1) Unpack the rar. 2) If you haven't already, create a "dlcpacks" folder inside your "client_packages" folder. 3) Drop the "gtahairs" folder inside "dlcpacks"1 point -
RAGE Multiplayer 1.1 is the new version based on 1.0-DP1, with almost 200 bug-fixes from 1.0 just in the last few weeks of pre-public testing and cool new features such as synchronised NPCs and more! So far, a tiny part of 1.0 known as "DP#2" has been delayed in favour of earlier and way more stable 1.1-DP1 release. DP2 requires more time with QA and you will get updated on that accordingly. Today's release means you will get immediate access to a public Windows Client/Server testing build branch aimed for server developers and for testing, you won't be able to join public 0.3.7 servers with this branch. Resources Updated: drastically improved streaming performance of encrypted game resources, also improved ram usage on heavy dlcpacks. Made encryption of game resources independent of individual system information, so you can keep redistributing huge files separately. Added support for overloading whole default dlcpacks (previously this would've caused "undefined" behaviour). Re-implemented the server resource scanner with better parallelisation of compression/encryption and the whole process (e.g. time required to scan and cache in the server memory 6GB of assets (LC-IV and VC to V map conversions bundle) has been decreased from >30s to 8-10s on test machine) Made client launcher and in-game resource verification multi-threaded. Added an ability to register raw game assets (i.e., you could decrease dlcpacks weight using this), example: /client_packages/game_resources/raw/infernus2.ytd. Synchronization Updated: synchronisation extrapolation is now optional, toggle-able through server config: "'enable-synchronisation-extrapolation': true". It's disabled by default (recommended for gamemodes when any desynchronisation caused by that latency is important though) in 1.0, this was always enabled in earlier releases, and the difference is it's just optional now. A few optimisations have been implemented for the new synchronisation. Security Ported 0.3.7’s latest anti-cheat/security mitigations, optimisations and additional useful branch changes that have not been ported yet. Implemented more multiplayer memory protections measures. Improved client-side package management code protection. Implemented additional cheating protecting over C# client-side scripting runtime API. Added "server-side-weapons-only-mode" to synchronise only weapons that have been given to the player by the server and not client-side script (which features it's own protection measurements too, which is why this option is disabled by default). API Added: out of the box (experimental) server-sided static and dynamic (synchronised) peds. Dynamic peds are synchronised/controlled by the player that your gamemode manually assigns and can be reassigned at any moment. let dynamicPed = mp.peds.new(mp.joaat('mp_m_freemode_01'), mp.players.at(0).position, {dynamic:true}); dynamicPed.controller = mp.players.at(0); let staticPed = mp.peds.new(mp.joaat('player_zero'), mp.players.at(0).position, { dynamic: false, // still server-side but not sync'ed anymore frozen: true, invincible: true }); Basic footage of peds on-foot sync (Franklin NPC shown in static mode): Cops AI/ped driving synchronisation: Added: server-side player.kickSilent, useful for quick reconnects, debugging and such (the client will act as if it's been timed out). Added: client-side cancellable event incomingDamage(sourceEntity, sourcePlayer, targetEntity, weapon, boneIndex, damage). Added: client-side cancellable event outgoingDamage(sourceEntity, targetEntity, targetPlayer, weapon, boneIndex, damage). Added: client-side dummyEntityDestroyed(entity, dummyType). Added: mp.Pool.getClosestInDimension(position, dimension[, numberOfEntities]); only server-side. Added: client-side event entityControllerChange(entity, newController) for peds and vehicles. Added: client-side mp.game.weapon.unequipEmptyWeapons. C# API: renamed server-side "Client" to "Player" to match other APIs. C# API: implement client-side-like entity pool APIs (e.g., RAGE.Entities.Players - yes, it *already* uses RAGE namespace like client-side API instead of "API" or "NAPI"). C# API: add UIMenu.SetMenuData and UIMenuItem.SetItemData which lets you link your own data to items to make menu handling logic simpler. C# API: Fixed incorrect boolean results in a few client-side methods. C# API: Added: AddSubMenu(UIMenu menu, string text, string description, System.Drawing.Point offset) overload. C# API: Added missing client-side 1.0 methods to C#. C# API: Fixed a naming mistake in RAGE.Game.Gxt. C# API: Fixed NAPI.Task-related issue. C# API: Added missing enums hashes. C# API: Updated vehicle seats enum. C# API: Updated vehicleData.json. C# API: Added support for custom vehicleData.json: name your file "vehicleData.custom.json" to use it instead (useful for add-on vehicle servers). C# API: Added missing IncomingConnection event. C# API: Fixed System.EntryPointNotFoundException. C# API: Fixed NAPI.Command not being available. C# API: Changed Entity.GetSharedData return type to object from dynamic. C# API: Added server-side player.Heading (with setter as well), fixed player.SetRotation. C++ API: Server: Increment SDK version (so it gives plugin incompatibility warning when it should). NodeJS API: Updated to NodeJS to v13.1.0. NodeJS API: Fixed NodeJS issues happening since 1.0/v13. NodeJS API: Fixed entity.setVariable and other related issues. NodeJS API: Fixed --inspect option not being handled by NodeJS. JS API: Changed mp.Pool.forEach behavior back to how it worked in 0.3 to prevent potential crashes; added mp.Pool.forEachFast for fast (but not entity.destroy()-safe) lookups (how it used to work in 1.0/1.1 initially). Other 1.50 game patch compatibility (the current public stable branch has already been updated to 1.50 (The Diamond Casino Heist Update) and was done in less than 5 hours after release - that's a new record for game's major patches!). Huge networking library optimisations - live 1800+ players server stress tests on an actual "feature-rich" gamemode with that optimisations ported to an experimental 0.3.7 server showed roughly ~10x networking performance improvements, possibly delivering even more effect on higher-end CPUs. Fixed a server memory leak (which occurred most often when there was a single player on the server, but other cases were possible also). Optimised client-side shared data getters for both scripting runtimes. Fixed nametag rendering jitter when target player is in a vehicle on high speed. Wine Launcher compatibility improvements (still can't get in the game at this stage though). Fixed bug that caused a ped to get duplicated after a model took too long to load. Added long string support for nametags and text labels. Updated Chromium to 79.0.3945.117. Fixed playerCreate/RemoveWaypoint client-side event. Updated server-side .NET Core to 3.1. Fixed client-side C# senseless "error" being logged into 'clientside_cs.txt' once on every initialisation. Update localisations: added Indonesian and Thai languages; updated a few other localisations. Fixed some of game limit adjustments not being applied correctly resulting in undefined behaviour. Fixed a few legacy crashes. Fixed updater image so configs don't get overwritten. Launcher: Fixed launcher storage.json being overwritten. Launcher: Fixed CEF debugger port not being saved when changed through launcher. Known Issues (ones that we didn't consider breaking and decided to not delay public testing because of them - they will be fixed before stable release though) There are a few cases when vehicle synchronisation might get "glitched" (like tyres state desync or unexpected unoccupied synchronisation behaviour). "trailerAttached" server-side event is not currently functioning exactly like it did in 0.3.*. Timeout reconnect might require manual rejoin through F1. Peds API is still at experimental stage and there are a few issues being worked on right now (mostly related to smoothing streaming). You might just crash 😶 And a few more bugs, to be listed once BugTracker goes online 0.3.7 compatibility guide Make sure your server-side resources use correct seat IDs (it starts from 0, not -1 anymore) C# only: Make sure to update GetData syntax (in most of cases you can just autoreplace "GetData(" with "GetData<object>(" for exact 0.3.7 behavior). C# only: "Client" got renamed with "Player". C# only: Vehicle occupants API now returns Entity instead of Player - that's because 1.1 synchronized peds could be vehicle occupants too C# only: EntityCreated/Destroyed events now pass Entity argument instead of NetHandle Optional: Make sure to use RGSC IDs instead of RGSC Nicknames Make sure to implement new chat API initerface. 0.3.7-.1.1 compatibility wrapper (CEF code): let api = {"chat:push": chatAPI.push, "chat:clear": chatAPI.clear, "chat:activate": chatAPI.activate, "chat:show": chatAPI.show}; for(let fn in api) { mp.events.add(fn, api[fn]); } 0.3.7 plugins should be removed from /plugins/, it's not compatible. Moreover, both "bridge.dll" and "rpfencrypt.dll" are redutant: C# API doesn't require a plugin to work. DLCPack files should be moved from /client_packages/dlcpacks to /client_packages/game_resources/dlcpacks. If required, custom server-sided gameconfig.xml (/client_packages/game_resources/common/data/gameconfig.xml) could be used. Don't confuse "/server-fiiles/ragemp-server.exe" (1.1) with "/server-files/server.exe" or "/server-files/dotnet/" with "/server-files/bridge/" Review all your custom synchronization code, some parts might be redutant with 1.1 More may follow, be sure to check this again if you find incompatibility issues. Download Branch name is "10_mNwuchuQ4ktWbR8d2N5jUzRt". If you don't know what to do with this, you probably don't need this. We only recommend you download this branch if you are comfortable with testing experimental features and software. 1.1 bugs and issues should only be reported where it's explicitly allowed and nowhere else.1 point
-
Here is [YMAP] Let the Client Crashes, some times. The list expands when I find the next things that don't work.1 point
-
So yeah it's been couple of months since my last input on here. Been doing pretty fine myself, for most of my play time I've been a part of faction "The Vikings" which screenshots I am going to provide here. It's plenty of fun seeing how much this faction has developed over the months when it started in the countryside (more specific, Sandy Shores) I've met some wonderful players, got involved in many memorable moments (one of them involving heist) but then again, I'll let screenshots to tell their story. I hope that those who gets interested gets an idea what YOU can achieve in this server with some effort. Los Santos is right for the taking, come on down and play with us!1 point
-
My game also shows this error in ragemp Thank you very much for your prompt reply Thanx1 point
-
1 point
-
Version 1.0.0
491 downloads
Installing: Place the files you downloaded in their locations. Add "require('.wepSpawner');" to client_packages/index.js. Controls: F4 to toggle menu. Everything else is done in cef interface. Features: Spawn any weapon from https://wiki.rage.mp/index.php?title=Weapons (2019-05-05). Get all weapons instantly by clicking "All Weapons". Get all weapons from a category by entering the category and clicking "All *Category name*". Get any weapon you choose. Ability to remove all weapons and start over.1 point -
Did you try to do what the warning window says about verifying the cache (if running Steam version) or executing PlayGTAV.exe (if using Rockstar Social Club version)?0 points
