Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 09/09/18 in all areas

  1. Version 1.0.2

    4160 downloads

    Features overview Account system with timed bans A simple admin system Spawn protection (optional) Weapon shops and garages Crouching Killstreaks Different firing modes (single, burst, auto, safe mode) Turf capturing Getting started Put the files in their respective places Go to packages/thewire/config.json and write your database information Import the database.sql file using phpMyAdmin and such Start your server, should be done Making yourself admin Make an account Go to accounts table and set Admin field's value to 1 OR run a query to do it: UPDATE accounts SET Admin=1 WHERE Username='YourAccountName' Save and login ingame Team management Go to packages/thewire/data/teamData.json, teams are stored in this file as key:value For ColorName and ColorHex, check WIKI: Fonts and Colors For VehicleColor, check WIKI: Vehicle Colors For BlipColor, check WIKI: Blips If you remove a key:value pair, you'll remove that team Save file & restart the server Adding/removing vehicles Go to packages/thewire/data/teamData.json, vehicles are connected to teams Add your vehicle model name (e.g zentorno) to the Vehicles array of the team(s) you want Go to packages/thewire/data/vehiclePrices.json Add your vehicle model name and price. (e.g "zentorno": 10000) Save files & restart the server Adding/removing weapons Go to packages/thewire/data/weaponPrices.json Make sure the weapon you want to add is valid! See WIKI: Weapons Add your weapon name and price. (e.g "WEAPON_PISTOL50": 900) Save file Go to client_packages/cef/weaponIcons Add your weapon icon with the file name being your weapon hash (not the name!) Restart the server Config.json This file is located in packages/thewire/ and lets you control a lot of things. database: Write your database information here. dbLogging: Lets you control which parts of logging is enabled. A lot of stuff are being logged by default. loginDimension: The dimension joined players get sent to. (Default: -1) startingMoney: The amount of money registered players get. (Default: 1500) spawnProtectionSeconds: Duration of the spawn protection, in seconds. (Default: 5) accountSaveInterval: Interval of the auto save to prevent stat loss, in minutes. (Default: 10) killRewardMin and killRewardMax: The amount of money players get for killing an enemy. (Default: 100 and 200) teamKillPenalty: The amount of money loss players get for team killing. (Default: 1000) killstreakReward: The base amount of money a player gets for a 5+ killstreak. Killstreak reward is calculated as: killstreakCount * reward on every factor of 5. (Default: 100) weaponShopMagCount: How many magazines a player gets when they buy a weapon. (Default: 6) playerVehicleSpawnLimit: How many vehicles a player can have spawned at once. (Default: 5) turfCaptureMaxProgressIncrease: Turf attack progress cap. People more than this amount isn't required in the checkpoint. (Default: 5) turfCaptureRequiredProgress: Required progress to capture a turf. (Default: 50) turfIncomeInterval: Interval of the turf income sharing between team members, in minutes. (Default: 15) bcryptCost: Read this (Default: 10) spawnWeapons: Weapons and ammo the players get when they spawn. This applies to all teams. (Default: Bat and Pistol with 240 ammo) world: World settings, there is actually a time system but it doesn't show itself until a few hours pass. (Default: CLEAR weather and 10:00:00) log4js: Logger settings, you don't really need to touch this. Turfs Teams can capture turfs in this gamemode and make money. All you need to do is stand in a turf checkpoint, wait until the progress reaches 100% (it will be captured faster if there are teammates with you, up to 5 players) Though doing that will alert the turf's current owners. If the owners manage to clear the turf before it is captured, they'll keep it. Turf income happens every 15 minutes which just sums all of your team's turf income and shares it between team members. Admin Commands /tp [x] [y] [z] - Lets you teleport to a position. /agivemoney [player ID] [amount] - Gives money to a player. /agiveweapon [player ID] [weapon name] [ammo] - Gives weapons to a player. /kick [player ID] [reason] - Kicks a player. /banplayer [player ID] [days] [reason] - Bans a player. /banaccount [account ID] [days] [reason] - Bans an account, best used for banning players that are offline. /baninfo [ban ID] - Returns information about a ban. /removeban [ban ID] - Removes a ban. /createweaponshop - Creates a weapon shop on your position. /removeweaponshop [ID] - Removes a weapon shop. /creategarage - Creates a garage on your position. /removegarage [ID] - Removes a garage. /createturf [income] [radius] [name] - Creates a turf on your position. Radius isn't used right now but it will be in 0.4. /removeturf [ID] - Removes a turf. Player Commands /pm [player ID] [message] - Sends a private message to a player. /stats [player ID] - Shows the stats of a player. (Kills, deaths, K/D ratio, money, register date) /givemoney [player ID] [amount] - Sends money from your account to another player's account. /top5 [ranking] - Shows the top 5 online players of a ranking. (Available rankings: kills, money) If you encounter a bug, feel free to leave it as a comment. Hopefully all this text is enough, have fun and see you on the battlefield!
    4 points
  2. 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 jobs
    1 point
  3. Introduction Hello, So I have decided I should make this tutorial about how to use CEF alongside RAGEMP to make interactable UI because I have spent some time understanding it from examples without a clear tutorial, I am going to explain how to interact between the CEF browsers and RAGEMP client, and how to send/receive information from and to server. This tutorial is targeting new comers in RAGEMP but who have background in scripting and know how to run and connect their server locally. So the main points will be: 1-What is CEF 2-Sending information from CEF to RAGEMP client (and vice versa) 3-Sending information from RAGEMP to The Server (and vice versa) (I will be using C# Bridge API for working with the serverside scripting) Before we start you are going to need the following to better understand the tutorial: Basic knowledge in HTML, CSS and JavaScript (Optional – Nice to have) Bootstrap and JQuery Let’s start! What is CEF CEF is abbreviation to Chromium Embedded Framework an open source framework that allow the ability to embed HTML webpages into applications. RAGEMP already integrates the CEF so you don’t have to download anything externally to begin using it. CEF and RAGEMP Client So now we are going to learn how to create a browser inside the RAGEMP client and interact with it. I am going to teach by giving example, it is going to be a basic login/register system. First download or or create your own webpage design, If you don't know how to create a webpage just use my sample (Attached to this thread) and follow the tutorial. Start by going to RAGEMP/server-files/client_packages folder and create a new folder name it “Login” then inside the Login folder we’ve just created place the HTML,CSS and JS files that is related to the webpage inside and then create the (clientside) script we will call it “Main.js” that will be the main connecting point between the CEF browser, client and the server. NOTE: In the Login folder you are going to place the webpage files and all dependences such as Bootstrap or JQuery libraries. So to this point you should’ve something similar to this Dependences folder contains the minified JQuery and Bootstrap libraries, Links below: https://getbootstrap.com/docs/3.3/getting-started/ https://code.jquery.com/jquery-3.3.1.min.js/ So I have pre-made this simple page for the sake of this tutorial, I will link download to all of the files that I have used at the bottom of this thread. But you can go with any page design you like. Disclaimer: I am new to web development so it may not look that good but it does the job. Now we need to interact with this page, Inside the Login.html (assuming you already have made/imported a page) find the main components that you want to interact with and give them the ‘id’ attribute, in my case I need the buttons and text input elements, image below for more understanding Also notice how we referenced the “Login.js” script. We are going to use these inside our “Login.js” file, so Open the Login.js file and write the following: (Code is written using JQuery) $('#loginButton').click(() => { mp.trigger('loginInformationToServer', $('#loginUsernameText').val(), $('#loginPasswordText').val()); }); $('#registerButton').click(() => { mp.trigger('registerInformationToServer', $('#registerUsernameText').val(), $('#registerPasswordText').val()); }); So what this basically does is once the loginButton/registerButton is clicked is going to trigger (mp.trigger) an event with the given name and pass the values inside the text fields as arguments, that later we are going to catch that in our “Main.js” script. (This point is where we send information from CEF Browser to RAGEMP Client). Now that we have send the information and they are waiting to be caught, But before we do that we are going to show the browser window when a player connect to our server. Open “Main.js” and use mp.browsers.new(‘package://path’); In our case: we have the html page inside our Login folder. var loginBrowser = mp.browsers.new('package://Login/Login.html'); Now at this point when the player connects to our server this will show him our page that we’ve just made, it is still not functional yet until we catch the information that we’ve sent before. Let’s catch them now, inside the “Main.js” add the following: mp.events.add('loginInformationToServer', (username, password) => { mp.events.callRemote('OnPlayerLoginAttempt', username, password); }); mp.events.add('registerInformationToServer', (username, password) => { mp.events.callRemote('OnPlayerRegisterAttempt', username, password); }); I am not going to go into much details here on the syntax but what we are doing is catching the 'loginInformationToServer' and 'registerInformationToServer' events (like you’d do in any other client event in ragemp) and sending them directly to the server to verify the information passed. But before we forget go back to the client_packages folder and create or open the file ‘index.js’ and place require('./Login/Main.js'); to let the server know that this file contains JavaScript codes that related to RAGEMP client (mp.events.add, mp.events.callRemote and mp.browsers.new), a complete list found on ragemp wiki https://wiki.rage.mp/index.php?title=Client-side_functions RAGEMP Client and RAGEMP Server Now that we have sent the information from the CEF client to the RAGEMP client, and then to the RAGEMP server via (mp.events.callRemote) we didn’t catch the event on the server yet, so let’s go ahead and do that. It can be done in same ways but different syntax depending on which programming language you are using, I am going to be using C# because I am more familiar with but it can be easily done with JS serverside once you are familiar with scripting in it. So go ahead and inside any resource file that you are using type the following: [RemoteEvent("OnPlayerLoginAttempt")] public void OnPlayerLoginAttempt(Client player, string username, string password) { NAPI.Util.ConsoleOutput($"[Login Attempt] Username {username} | Password: {password}"); if(username == "Max" && password == "123") { player.TriggerEvent("LoginResult", 1); } else player.TriggerEvent("LoginResult", 0); } So The above code catch the event that is triggered when player sends the information to the server so we validate them then send back a response to the client with either success or fail depending on the player data, in ideal case we should check the information from a database but that’s out of the scope for this tutorial so I am just checking if his username is Max and password is 123 then we send information back to the client with result 1 (success) else we send the result of 0 (incorrect username/password) Same thing apply for the register event handle. Now you can notice a pattern here is that whenever we send an event from one place to another we need to catch it, so back to the “Main.js” and let’s handle the response sent from the server, Add the following: mp.events.add('LoginResult', (result) => { if (result == 1) { //Success we destroy the loginBrowser as we don't need it anymore loginBrowser.destroy(); mp.gui.cursor.show(false, false); mp.gui.chat.push("You have successfully logged in."); } else { //Failed we just send a message to the player saying he provided incorrect info //Here you can be creative and handle it visually in your webpage by using the (browser).execute or loginBrowser.execute in our case to execute a js code in your webpage mp.gui.chat.push('Incorrect password or username.'); } }); Similar to what we did when we caught function from CEF we did for catching from server and we checked if the value passed is 1 then the player succeeds in logging in else he fails. Now you can just run your server and connect with your client and you should see the login page appear, enter anything and hit login - it should message Then try using the combinations of Max and 123 and you should see and the window should disappear. Same practice apply to the register I will leave it for you to practice and try to implement that by yourself! Good luck! Summary Important things to remember: - From CEF browser to RAGEMP client => mp.trigger caught by mp.events.add - From RAGEMP client to RAGEMP server (C#) => mp.events.callRemote caught by [RemoteEvent()] flag and a function Now the other way around: - From RAGEMP server (C#) to RAGEMP client => (Client).TriggerEvent caught by mp.events.add - From RAGEMP client to CEF browser => (Browser).execute For more information about the syntax for these you can check the ragemp wiki NOTE: Sometimes you don’t need to send anything to the server, For example a browser that contains information about your server, you just need to contact between CEF and RAGEMP client. NOTE: Similarly if you want to use JavaScript for serverside scripting you can find the equivalent to my functions used and do the same, however everything done in clientside scripts (Main.js) should remain the same for both languages!! The End And here you’ve just completed the tutorial! Thanks for taking your time to read and if you have faced any problems or any question post a comment below and I will do my best to answer it. Also feel free to correct me if there is any suggestions or any syntax/logical errors. Happy coding! Files used in this tutorial: https://www.solidfiles.com/v/nYR8xn43j57jv
    1 point
  4. Version 1.2

    4749 downloads

    UPDATE I highly recommending using my more updated resource "MySQL Accounts" instead as it fixes known issues and runs better: This resource will stay up, however I will not be giving any help for this resource as I don't believe it should be used for serious projects. ---- Basic MySQL Gamemode Github Link: https://github.com/MrPancakers/ragemp-mysql Resource Thread: Discord: MrPancakers#9283 This is a template of a very basic login/registration system you can implement into your game mode to get started. This template only stores usernames, passwords(encrypted with BCrypt), position and money so anything extra will need to be implemented yourself. This is intended for beginners so the code is pretty basic and nothing fancy has been done so it is easily readable. If you find any issues, leave a comment on my thread or leave a comment on this resource. Installation You'll need to have a MySQL server setup, either using WAMP/XAMPP/or from a server. To keep this short I will not go through setting these up, simply Google 'How to set up WAMP' for example to get it set up. Unzip the source and place it inside of your server files folder. Open your command prompt and change your directory to your server folder. Then do 'npm install' to install the required node_modules. Create a new database and call it whatever you want (Inside the script it is called 'ragemp-mysql'). Once created, import the ragemp-mysql.sql into your newly created database. Go to packages/mysql/mysql.js and open it. At the top is the connection info, change this to whatever your IP and MySQL username/password is. If you're hosting this locally and you haven't made/changed the MySQL info, the default should be fine. You're all set to go.
    1 point
  5. Version 1.0.0

    1039 downloads

    n0minal's Interior Browser Hello Dear Ragers, Today I bring you guys a simple - but useful - browser for interiors to preview. I spent something like ~2 hours to make it, so it might contain bugs, if you find a bug please post it in here or contact me by PM and I'll fix it as soon as possible. Commands ⌨️ There are two commands (and binds for it): /interior (or shortened: /i): Loads the Interior Browser menu, in which you can interact and select an interior to preview. /leave (or shortened: /l): Leaves the current interior and gets teleported back to your first position when you called the browser for the first time. The Script 📰 Download the .zip file and extract it inside your client-packages folder, after that, create (or edit) a index.js file in your client_packages root folder with the following content: //requires interior-browser package require("interior-browser"); and you're ready to go! Github Link: https://github.com/n0minal/interior-browser That's all, See you on the next release!
    1 point
  6. Version 0.11

    2804 downloads

    Project not maintained anymore, feel to continue it by yourself. The most recent version (with some fix) is on github, link below! Hi all, after some times letting this GM getting dust, I decided to release it to public. It may not be developed with the best methods, but still it is working very well. Here is a list of the differents systems available: For civil players: Rob a shop (24/7 / Ammunation for now) Have a job (Hacker only for now) Earn XP from doing hacking Buy stuff at 24/7 that heals you (Apple...) For cops: Arrest a player (Civil only with wanted level) Be a SWAT or in FBI (If player has access to thoses teams) Cuff a player (Preventing him from running / jump / use car direction) What everybody can do: Buy a car / boat / helicopter Use teleporters (The only teleporters are in SWAT car park, can be added in DB) Withdraw / deposit money in ATM Custom your car (In theory working with every kind of vehicle) What admins can do: Create a vehicle Create a temporary vehicle (As vehicle bought in car shop) Edit a vehicle Save vehicle data Respawn Cars Create Faction / SpawnPoint for a faction / A Skin for a faction / Biz / ATM / Label Teleport to pos Edit a player Teleporters are saved in the database, and have different options, like : Reversible (Has another tp to come back) Change dimension of player TP vehicle or not Usable for a faction only Vehicle info: Save vehicle mods Vehicle only for a faction Vehicle locked Vehicle plate Vehicle dimension What are spawnpoints ? Spawnpoints are used for factions, it is the spawnpoints for a faction, and not for a SKIN. How to add skin into a faction? Doing /acreate ped Some commands still exist as: /acreate [faction/biz/label/ped/spawnpoint] (Showing a modal to complete & create) /aveh (Showing a modal to know what you want to do. /aplayer [PLAYER ID] (Showing a modal to know what you want to do) Differents admin levels: There is 3 differents level of admin: - Edit (Edit a player / car) - Blame (Kick / Ban / Blame) - See (Spectate / Player infos...) There is no admin command for moderate. Car shop: Car shop is VERY easy to create, i think i'll do another ressource to show how it is simple & share it. All you have to know is the vehicle classes, in packages/gamemode/data/vehicle_shop.json And create a car shop in config.json (Very easy to understand look at it). Custom: All mods prices can be modified in gamemode/data/custom_prices.json, by mod ID & Index. But this system is not optimized at all, and must be reworked. There is also a log system, that log everytime you connect / disconnect. Installation Install npm dependencies: npm install Change .env.example to .env Known problems: Can't find module MySQL: You must have installed NodeJS & NPM Then go to your server folder and type in cmd this: "npm install mysql" As suggested, If you have any bugs found, suggestions... just see this: https://github.com/Protocole63/RageMP-Gamemode-Cops-Robber/issues -- I would be happy to fix it or add the stuff you suggest. Credits: - Me for the scripts - GamingMaster Library - NativeUI - RootCause library - Level - better Notificaitons - Scaleform messages - Micky5991 for vehicles hashes & mods... (https://github.com/Micky5991/GT-MP-vehicleInfo/releases)
    1 point
  7. It is happening with me as well
    1 point
  8. All you have to do is use 'player.name = nameHere' and it'll change their name in-game.
    1 point
  9. Hi, here is a simple SQL auth system. Made with UI from @MarkCavalli ! Connection by email / password.. Nothing much to say You can use it if you are beginner or not. Here is github: https://github.com/Protocole63/RageMPAuthSystem Cya PS: if you want to go further in a RP script, see MarkCavalli GM:
    1 point
×
×
  • Create New...