Leaderboard
Popular Content
Showing content with the highest reputation on 08/04/19 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 RAGE Beast's! I want to write this tutorial instead of releasing my packages with the Ped-Syncing, so people wont get spoonfeeded and everyone who can code and use brain, can reconstruct what i've done in many hours of work. In this tutorial i just want to show, or explain, the basics of syncinc peds for everybody at the server. First of all we need to start thinking about, what we need, and how we can realize our idea of syncing them. I've started to get more knowledge about how pedestrians work on GTA and how i can control the activities of what they do.. so i've sit down.. working hours on studying natives, functions, behaviour and some more stuff about how to get "life" into a spawned ped object. At the start i've just controlled them client-sided.. playing animations, let them walk around.. and such stuff. After this i came to the conclusion that i'll not get far in programming with the given functions GTA5 handles to me.. Since we've no direct access to the engine / internals of GTA i've need to build my own "AI" to make the Peds "think" what they do. The restriction of not having access to control internal stuff is starting at directly receive informations what the ped is doing.. which animation is tasked.. and s lot of other problems who popped up. So i've sit down again, starting to construct new classes.. kind of creating my own Controling-Class of my Peds, instead of using RAGEMP's one. You can use RAGEMP's "mp.peds.new" but i just wanted to make clear, i'm using my own stuff. The controlling class is working with the Natives of GTA5. So the class manage to spawn peds and directly put the handle into a class-object which contains all informations of what i do with them.. positions, animations, flags (walking, running, random walking).. Since we've a unique ID for each ped, we can control them via ID's and our Control-Class has the ability to pick out those ID's and control the single ped. Since everything is stored in the class.. we need to start working on functions which give our Peds an own AI. First of all we need to know math (vectors, cos / sinus / tan), thanks to RAGE and GTA we've also got ray-casting. At this tutorial i'll just explain how to let them walk in one direction... with a "random" heading (15°-20°) to left or right.. Kind of a "human" natural walk. Since ped.getHeading() isnt that accurate for our AI.. we need to use our own "heading" variable.. so i've just popped it into my Ped-Class.. and we also need to check the "old" and the "new" position of where the Ped should work. Let's store the "old" position before we set a new one. this.oldPos = new mp.Vector3(this.handle.getCoords(false).x, this.handle.getCoords(false).y, this.handle.getCoords(false).z); After this we create our "random" heading. To the "old" heading we add the needed "left" or "right" pitch. So we create a temporary variable storing our old heading in it and add a random value. var randomHeading = this.oldHeading + ((Math.random() * 1.0) - 0.5); this.newHeading = randomHeading; You need to think about that we're using cos/sin and to make sure that you know we're working inside of a coordinate/vector system. (x/y/z) So you need to think about the relations about degree and single steps inside of a coordinate system. (1 is a unit of length) After this we're going to calculate the new position in relation to your null-point (the player) so we pick our "new" heading and multiply it by 3. (1 unit is like 1 ingame meter) var headingX = Math.cos(this.newHeading) * 3; var headingY = Math.sin(this.newHeading) * 3; Since we've got your range from direct null-point we need to add those headingX / headingY to your real player coordinates. (x / y) var position = this.handle.getCoords(false); this.newPos = new mp.Vector3(position.x + headingX, position.y + headingY, position.z); Since Z is the same and remains the same.. we dont need a tan. So we've got our "new" position out of this calulcation. After this we're going to check if the new position is traceable / ray-cast.. so we check if the ped is running / walking against a wall or not. You can find this function inside the RAGE Wiki. (raytrace) If there is no object between the old position and the new position.. you can set the ped walking at the position. If there is something between the old and new position.. You'll need to take care to walk or recalculate the path. At my point, i've just set the heading * 2. if (isTraceable(this.oldPos, this.newPos)) { this.walk(new mp.Vector3(position.x + headingX, position.y + headingY, position.z)); this.oldHeading = this.newHeading; this.position = this.newPos; } else { this.oldHeading = this.newHeading * 2; this.randomwalk(); } So the rest of the other stuff, you can do it.. if you know where we are at the current point. We've done our client-side stuff.. so we need to go over how to sync the ped with the players. The biggest question is how to get the sync between the server and the client. Since we're storing all information about our ped at our client.. we need to send it to the server.. but we need to take care that we don't spam the server with our informations and also take care to send smallest infos as possible.. think about that there could be hundret of players who send informations.. so take care of resources. The red dots are the peds of other users.. as client.. we dont need to send the informations of them to the server.. since they're controlled by another user. The green dots are the peds of our user.. as client.. we need to send the informations to the server.. cuz we control them. The blue dots are all peds stored at the server.. which contains informations.. (ids, positions, ...) the server sends the information the the clients The orange dots are all peds who aren't created at the client-side and theyre from other users.. so you need to create them and update the information of them. I decided to just send the unique ID and the position data and also the flags to the server.. At the server we've got also a class with the informations.. kind of we build at our client. We need some functions to check if the unique ID already exists.. and if we can update the informations or if we need to destroy the element and stuff. If there is no ID at the server, the server will update the sended informations of the client and send all the informations to each other player on the server, who is in range the ped. (virutal ped, since the position is server-sided) This is the first step of preventing the server using too much bandwidth/stress. When the server sends the data to each client.. the clients need to check if the ID of the ped exists on their client.. if not, create the ped and store the informations send by the server to the ped-object class. Also check if the ped you've created is client-side or server-side. Since we dont need the data of your own peds the client-side has been created. So to put everything together: Your client creates peds.. they're local. You just stream the information of your OWN peds to the server.. while this happens.. the server send the information of other player peds to you. If you dont got the ped with the unique ID created.. you need to create the ped and update the informations you've got.. so let the ped wak to xyz.. update models,.. health... I hope with this non-spoonfeed tutorial i helped you a bit.. Ask question if you want.. Thank you! :)1 point
-
1 point
-
Мне это не нужно, я не играю на проектах, где игрокам срут на лицо и в рот. Если у маджестика крутой дизайн, то я без проблем это признаю, там ребята молодцы, что столько времени мелочам уделили в плане дизайна, плохо что больше ничего не показали, но это другой разговор. Так что не надо думать, что я тут только говном поливаю. Если америкосы не умеют в дизайн, то они юзают бутстрап и хоть что-то юзабельное у них получается, не уникальное, не индивидуально, но ПРОСТО НЕ ПРОТИВНОЕ, это вторая значимая вещь после функционала. А в привлечении аудитории - первая. Проблема. Твой проект направлен на русскоязычных, ты используешь вообще чужой язык, который даже к славянскому никак не относится. Значит ты плевал на игроков, всё просто. Это даже никак не обосновано в игровом плане, если на редэдже тюнинг называется Los Santos Customs, то это хотя бы как-то объяснимо (потому что он в игре так и называется), и так же касаемо других мест на карте (хотя я бы тоже на русский перевел всё, что переводится). То что у тебя подсказки на английском вылезают - это вообще никак не объяснимо. Очевидно, уместен, ни тебе подсказки как такси вызывать, ни где автобус ждать, ни где в каршеринге взять что-либо. Где автошкола остается только догадываться, или может у вас там паспорт нужен. А может вы хоть что то уникальное придумали и права с паспортом не нужны. И как работу начать не понятно. Энивей, пешком через огромный город я бегать не собираюсь в поисках не понятно чего. Если вы хоть какой-то дизайн не осилили, значит и к игровому процессу у вас подход такой же - никакой. Тяп ляп и в продакшн. Я лишь захожу как обычный игрок и высказываю мнение от лица обычного игрока, почему ты так полыхнул я не понимаю. Если ты на своем сервере всё знаешь, то я не ванга, чтобы зарегаться и сразу делать что нужно, меня кинули на абсолютно пустой сервер, с 2 кривыми менюшками без единой подсказки, что меня там должно привлечь? И да, войс чат у всех и в т.ч. гта онлайн на клавишу N, а сесть в машину на F. Я думаю вам стоит в своем армазагоне сидеть и не лезть куда не стоит1 point
-
Прям вот ты знаешь, когда я родился? Не надо этой херни. И если ты такой крутой разработчик, так покажи своё творение? Похвастайся крутыми твиками, оригинальными решениями или просто массой оптимизированного кода? Да и вообще, вопрос "что делать?" у опытных не возникает в принципе. Вот, вообще. Метки пропали - покажи скрин, отпиши администрации (в дискорде/в вк есть кому писать). Зачастую даже онлайн кто-то может помочь. Но ты же включил дурака и такой типа "я ничего не знаю, сервер говно". Сразу видно тролля: ни тебе чётких аргументов, ни тебе пруфов, ни нормальной реакции. Понимаешь, ты не критику написал, а говна на вентилятор набросил. Ну, вот реально. Давай по пунктам: 1. Английский - не проблема, тем более с тем уровнем. Если для тебя эти короткие сообщения вот прям "не могу понимать", ну... Твоё право не учить языков, но как "разработчик, когда я ещё не родился", с этим проблем быть не должно. 2. Вопрос "что делать" на серверах с указанным типом "roleplay" вообще неуместен. Это не ДМ/ТДМ, не какой-нибудь там "cops vs robbers", тут всё предельно понятно. Мне понятно. Многим понятно. Может, не очень интересно, но в целом, всё понятно. 3. Всякие там твои домыслы про дизайн интерфейсов - это ну не аргумент. Коли бы ты сказал, что не хватает данных в тех или иных менюшках, что наоборот лишнее что-то - это ещё куда ни шло, это ещё можно принять за критику. А "дизайн говно" - это удел Артемия Лебедева. Ты Лебедев? Мне кажется, нет. Как ни крутись, функционал важнее дизайна. И если говорить про говноедов, то на мой взгляд, скармливать игрокам свистелки и перделки с кучей совершенно ненужных менюшек с эмоциями - это как раз и есть "считать потребителей говноедами". Правильнее, наверное, сперва функционал и стабильность, а потом уже остальное. Знаешь, как в анекдоте - "Вам шашечки или ехать?". 4. Насчёт "критику вспринимать не хотите" - так ты пиши критику, а не тупо заливай текстом. Или у Вас там в Ярославле все такие дикари? 😃 Тебе ответили на твой посыл, а ты что? А ты "ой всё" и обратно в тролля превращаться. Ты не думай, что тут тебе малолетки отвечают, которые от гнева слюнями забрызжут экран с каждого твоего поста. Ты пишешь говнокамент, ответ получаешь такой же. Ты пишешь по делу и без вот этой отсебятины типа "дизайн говно" - тебе и отвечают вразумительно. Я тебе ответил вразумительно, ты мне теперь тут льёшь помойку. Зачем? Не надо вести себя в интернете так, будто ты быдло и неадекват. С тобой никто не спорит. Я с тобой не спорю. Я пытаюсь дискутировать и ни в коем случае не говорю, что моя точка зрения единственно верная. Я лишь пытаюсь донести АЛЬТЕРНАТИВНУЮ собеседнику точку зрения. Увы, ты это не хочешь понять. В общем, будет что внятное написать, ты пиши. А херню всякую оставь где-нибудь в помойке. Ни тебе, ни другим она не нужна. Я понимаю, что в рунете она на каждом углу, но всё же, будем человеками? Если уж ты себя называешь разработчиком, изволь и вести себя соответствующе.1 point
-
1 point
-
Ok, normalerweise halte ich mich aus sowas raus, weil ich keine Lust auf diese ganzen Leute mit ihren Interneteiern habe, aber zu dem Thema muss ich einfach was sagen. Snilloc habe ich auf BetterLife kennen gelernt, wo er vorrangig als Mapper erst tätig war und später auch als Dev. Er hat dort seine ersten Schritte in der Rage Entwicklung gemacht und auch gut gelernt. Er hat aber keinesfalls alles komplett alleine dort gemacht, weil ihm dazu einfach das wissen fehlte (ist ja gar kein Problem wenn man erst anfängt). Nur hat der dann anfangs behauptet, er hätte Dinge alleine geschrieben, wobei er aber jederzeit Hilfe hatte, die einen nicht geringen Teil an seinen Scripts hatten. Als BetterLife sich dann dem Ende zugeneigt hat und Snilloc dort aus dem Team geworfen wurde, hatte er sich alles was zu BL gehört an Scripts gesichert und für sich behalten. Des weiteren hat er seinen noch vorhanden Zugriff auf die Datenbank von BetterLife ausgenutzt, um mit Hilfe von anderen auf dem Server zu trollen und zum Beispiel mit Raketen ins PD reinzuschießen. Er war dann in einem neuen Projekt als Entwickler tätig, welches sich RageLife genannt hat. Er hat zu mir gesagt, er wolle alles auf dem BetterLife Script aufbauen und dabei nur die Clientside verändern, da das ja das einzige sei, was man als normaler User sehen würde. Somit hätte er gegen Gesetze verstoßen, hätte er dies getan. Er kam aber nicht so weit, da er das Projekt verlassen hat, da ihm die Projektleitung nicht gepasst hat. Er startete also wieder seine Suche und fand Anklang bei ProjektX von @deDanny. Er war doch mit @Boomray zusammen als Dev Leitung tätig und in ständiger Zusammenarbeit mit Boomray die dortigen Scripts entwickelt. Als dann einmal der Root Server von Boomray ausfiel und er diesen nicht erreichen konnte, machte er absoluten Terror im Discord und verlangte bzw. Befahl der PL sie müsse jetzt sofort einen Root Server mieten, da dies ja eine Voraussetzung von ihm war, dass er dort als Entwickler tätig wird. Daraufhin wurde er dann einstimmig aus dem Team geworfen Snillocs Charakter erkennt man in seinen unzähligen Posts in den letzten Tagen im Forum und anhand der Meinung von verschiedenen Servern bzw. deren Teammitgliedern über ihn, welche alle genau das selbe besagen. Abschließend will ich sagen, dass sich jeder immer selbst eine Meinung über jemanden bilden sollte und niemals die Meinung von anderen übernehmen sollte, aber es muss gesagt sein, dass man dennoch eine gewisse Vorsicht, was Vertrauen angeht, walten lassen sollte, wenn man sich auf ihn einlässt. Haut rein - Carter | Raesch1 point
-
Всем привет. Сегодня Majestic Roleplay анонсирует систему банкоматов! Пополнение карты наличкой, вывод денег с карты, переводы между счетами и многое другое. Ждём тебя на наших ресурсах!1 point
