Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/07/20 in all areas

  1. I can reproduce the problem, uploading resources to the community is currently broken. Thanks for the report, now that we're aware we will post here again when it's fixed.
    3 points
  2. pDownloader version 1.2.1 Better looking progress bar and players can play while downloading files. Video: https://streamable.com/bedf40 Documentation moved to GitHub! Go to GitHub...
    1 point
  3. Send message to Discord from MTA:SA STEP I. Make a new webhook on your Discord server STEP II. Change the variable to your webhook URL. STEP III. Start the resource, and test it with the /dcmessage <string> command, or use it with another script using the following export: exports.webhook:sendDiscordMessage("string") Download the script here.
    1 point
  4. I brought you bakaGaijin and Ash Now I bring Discord integration with MTA scripts. MTA already has this for IRC Shoutout to the people who made the Sockets module, you're awesome. Features: -Scripts can echo messages to any Discord text channel of their choosing. -Any Discord channel can be set up to echo all messages to an ingame script. (Including the name of the person who said it, and his role) -One MTA server can send/receive to multiple Discord guilds. Example use: To show how this is useful, I made a small program to echo all global chat to a "global" Discord channel, and all team chats to individual "team" Discord channels. These Discord channels ofc echo messages back when someone posts. As proof of concept for commands, if a Discord user types "!ban name" then his role is checked, and if it includes Founder, the chat outputs "name was banned!" This is the client side script I used for this example: local SECRET_KEY = "15-A-53CR3T-K3Y" --The script works even if your server IP changes. You are mapped to a unique key. local function onopen(self) self:send(SECRET_KEY) --Your MTA server logs in addEventHandler("onResourceStop", resourceRoot, function() self:close() --Break off from Discord end) addEventHandler("onPlayerChat", getRootElement(), function(message, type) --Example hook to capture player chats local name = getPlayerName(source) local channel = "global" --Send to global channel if global chat if type==2 then channel = getTeamName(getPlayerTeam(source)) end --Or team channel if teamchat --Format to send messages is ("discord", channelName, message) self:send("discord", channel, name..": "..message) end) end function onmessage(self, data) local channelName, name, role, message = data[3], data[4], data[5], data[6] local orginal_message = message --The message we got from discord message = "("..role..") "..name..": "..message --Make it pretty if channelName=="global" then --Output to global chat or team chat outputChatBox("(DISCORD) "..message) else local team = getTeamFromName(channelName) local members = getPlayersInTeam(team) or {} local r, g, b = getTeamColor(team) --Color the output for lulz for _, player in ipairs(members) do outputChatBox( "(DISCORD) (TEAM) "..message, player, r, g, b) end end local commandExample = string.match(orginal_message, "^!ban (.+)") --If message started with !ban... if role=="Founders" and commandExample then -- ...and the person who said it had the right Role outputChatBox(commandExample.." was banned!", getRootElement(), 255, 0, 0) end end local function onclose() outputChatBox("The Discord link was closed") end local discord = Discord.new(onopen, onmessage, onclose) That's 41 lines of code, now let's see it in effect. I would love to hear what you think about it.
    1 point
  5. Salutări tuturor, Având în vedere contextul actual din cadrul comunității românești la nivelul platformei, am decis să desfășor un sondaj de opinie pentru a observa și înțelege mai bine unde se situează diferite aspecte ale comunității din punctul vostru de vedere. Prezentare generală a demersului Sondajul de opinie se desfășoară prin intermediul unui chestionar compus din cinci secțiuni scurte, majoritatea cuprinzând întrebări închise cu unul sau mai multe răspunsuri prestabilite (cu posibilitatea de a adăuga un răspuns propriu). În urma și pe baza răspunsurilor primite vom putea avea cu toții o imagine concretă cu privire la o parte dintre subiectele care în prezent sunt, după caz, de mare interes la nivelul comunității românești. Prezentul sondaj de opinie nu reprezintă un demers oficial aferent echipei administrative MTA. Tocmai din acest motiv, aveți în vedere faptul că desfășurarea acestui sondaj de opinie nu înseamnă neapărat și o schimbare în viitorul apropiat asupra aspectelor aduse în discuție prin intermediul întrebărilor din chestionar, însă poate deveni un punct important de referință pe viitor. Perioada și modalitatea de completare & publicarea rezultatelor Intenționez să mențin deschisă participarea în cadrul sondajului de opinie până în data de 5 iulie 2020, ora 09:00. Ulterior voi reveni cu o actualizare care să cuprindă rezultatele propriu-zise, cât și analiza acestora și eventuale concluzii pe care le putem trage de pe urma lor. Răspunsurile acordate în lipsă de seriozitate nu vor fi luate în considerare. Analiza și interpretarea rezultatelor se va face în mod colectiv, toate răspunsurile acordate vor fi tratate în mod anonim tocmai pentru a încuraja completarea chestionarului în mod sincer și fără bariere. Chestionarul poate fi completat accesând următorul link: https://forms.gle/w8nawZqn4jQFoDGN7 Distribuirea chestionarului Vă invit pe toți cei interesați să distribuiți mai departe chestionarul către persoanele despre care știți că activează în mod constant pe comunitățile românești de MTA și care pot trata acest demers cu seriozitate. Deși este important să obținem cât mai multe puncte de vedere, este important să punem accent și pe calitatea răspunsurilor tocmai pentru a nu periclita acuratețea rezultatelor. Vă mulțumesc pentru interesul acordat!
    1 point
  6. Hello, Today I tried to upload an uncompiled resource to the community site and it said that the upload was successful but when I clicked on the "View resource" link it gave me a link which ended with "id=0". When I went to My View to check the resource was not there but there is an empty space right where the resource should have been at the top. I did "Inspect Element" on it and it can be seen that there is no value assigned to the "id" attribute of the highlighted link. The empty space can be seen as well. When I tried to upload the same resource again without changing its version it again said that it was successful but it didn't show up in My View and was again with "id=0".
    1 point
  7. السلام عليكم ورحمة الله تعالى وبركته لوحة تسجيل لدخول للرولي بلاي تصميم جديد و ميجيب لاق رابط التحميل في الفيديو BY MR POP
    1 point
  8. Hello user As in the subject, I will make a server on the Multi Theft Auto + platform and prepare it for the ready game. I have been programming in Lua for many years. I approach each job individually and perform it precisely. I make a quote after receiving a list of resources + a description of what and how it should look like. Signing a contract for any back-up in case of fraud is an option. (If you are from around Piaseczno, I can drive up to discuss the details) Payments are accepted only by bank transfer I prefer telephone contact More information and portfolio on the contact email: [email protected] (I reply almost immediately) I put the post at the user's request At the user's request, I add an additional form of contact. GG: 71285129 In addition, I can put the site / forum on the IPS engine fully legally, because I have a license. Cheap, please contact me (contact given above) My work: https://imgur.com/a/Wd6F1MT Burczus#1637
    1 point
  9. No, only with <files/>. Scripts are different, and hard to load them well. No, but here is a modified version, to load files easier. Just set model ID in meta, and its load for you. Available in latest version.
    1 point
  10. فيه فانكشن مفيد للطلب حقك getDistanceBetweenPoints3D
    1 point
  11. Unfortunately that might not be the case. For example if you have 2 of those red boxes in each other and rotate 1 of them. There is another method that might be helpful if only 0, 90, 180 270 are used. Step 1, normalize the width, height and depth. So that rotation doesn't play any role anymore. https://wiki.multitheftauto.com/wiki/GetElementBoundingBox getPositionFromElementOffset < https://wiki.multitheftauto.com/wiki/GetElementMatrix Not required: Change your ^imationary^ camera from top to bottom. Get the center position X from both. Compare the distance: distanceX = [positionX_box1, positionX_box2] if distanceX < (sizeX_box1 / 2) + (sizeX_box2 / 2) then Do the same for the Y and Z axis. When all are true, there is a collision.
    1 point
  12. UPDATE: -Smoke grenades will now explode after 5 seconds and eject smoke that is synced from the creator to all other players to prevent smoke desync -Fixed non-working mortar smoke shells -Fixed satchel detonator not working when the player is sitting in a vehicle -Satchels can now be detonated with any weapon equipped (No longer needed to equip satchels specifically) -Satchels can now be "defused" by shooting them or by exploding something in their proximity (Beware, satchels have no collision, you have to hit the surface that is next to the satchel) -Players can no longer switch first person mode while reviving to cancel the revive animation -Changed default key for "Sonar Ping" to "J" -Changed default key for "Toggle vehicle light" to "O" -Changed default key for "Detonate satchels" to "P" -Added new key "Call artillery", default key is "lalt" (I separated artillery call from satchel detonator) I will soon upload the new maps Westerplatte and Budapest. I wont create a new post for that and i dont know when they will be added exactly. Also we have currently a problem with missing killer information when a satchel explodes. I will fix this soon.
    1 point
  13. Long time this dont get update. Is any way to make this possible without using relay node.js server (externar things) because people buy the server and dont have acess to install that things.
    1 point
  14. أ، ب، ت، ث، ج، ح، خ، د، ذ، ر، ز، س، ش، ص، ض، ط، ظ، ع، غ، ف، ق، ك، ل، م، ن، هـ، و، ي تصير لي جارية ؟
    1 point
  15. You need to change "param" into a table to catch all other subsequent params by using "..." then using table.concat to join them. -- Test the function function test(player, command, ...) local msg = table.concat({...}," ") sendDiscordMessage(msg) end addCommandHandler("dcmessage", test)
    1 point
  16. كيف حالكم عساكم بخير , مثل ماهو معروض بعنوان الموضوع للبيع سكربت اوبر للي مايعرف وش اوبر , تطلب سيارة وتختار مكان ويجي شخص يوصلك للمكان الي اخترته الي انا سويته خليت بيد تلقائي يجي يوصلك للمكان الي تبغاه طبعا هذا اول سكربت اعرضه للبيع تفتحلك لوحة وفيها الاماكن وانت تضيف الاماكن والسعر بيكون على حسب بعدك عن المكان الي تبي تروح له سعر الميل انا حاطه 2 ويمديك تغيره بس تشتري السكربت , الاماكن القريبة لك ماراح تظهر لازم يكون بعدك 150 عن المكان عشان يظهر هذا الحد الادنى وطبعا تقدر تغير البعد تقدر تخلي السكربت يفتح من زر وتقدر تخليه يفتح من امر من اف8 صور من السكربت طبعا في حال استعجالك عشان تروح للمكان تضغط انتر وراح ينتقلك للمكان الي تبيه بثانية الخصائص الموجودة بالسكربت ولو يتبرع واحد من الشباب يسوي فديو ويحطه بأكون شاكر له الي يبي يجرب السكربت وياخذ صورة اوضح منه يخش السيرفر mtasa://178.32.99.229:22222 uber او اكتب باف8 m طبعا بس تخش راح يعطيك فلوس واضغط حرف حاب اقولك ماخذت من السكربت الا احداثيات الطرق traffic وجرب لين تقتنع , الي يجي يسوي نفسه محقق كونان ويقول نسخ لصق من سكربت السكربت يحتوي على ملفين كلينت وسيرفر وملف احداثيات الطرق مثل ماذكرت فوق التحميل حق السكربت قليل مره لان احداثيات الطرق سيرفر واغلب الشغل على السيرفر والمعروف ان ملفات السيرفر ماتتحمل على جهاز الاعب الكلينت عليه اللوحة وبعض الامور البسيطة , السكربت مبرمج بأفضل الطرق ومافيه ولا بق ان شاء الله والحين نجي للسعر صراحة انا معطيه سعر مو من حقه مقارنة بالسكربت ومواصفاته السعر بالريال السعودي : 100 السعر بالدولار الامريكي : 26 طرق الدفع واول 3 اشخاص يشترون السكربت بيحصلون على الاصدار الثاني من السكربت مجانا الاصدار الثاني بيكون مختلف جذريا والسعر راح يكون اغلى من هذا واتمنى مايكون فيه ردود خارجا عن صياغ الموضوع واي استفسار بخصوص السكربت حط ردك : طرق التواصل معي وهذا وصل الله وسلم على نبينا محمد
    1 point
  17. Discord seems to be the new IRC.
    1 point
  18. MTA Lua Asynchronous Computing Description: MTA:SA Async library. If you have some heavy cyclic operations, that are dropping "Infinite/too long execution", or operations that "freeze" your server for couple seconds, you can use this library. It supports multiple running threads at a time. Installation & Instructions: https://github.com/Inlife/mta-lua-async Enable debug, if you need to (it will print some useful information in server console) Async:setDebug(true); Iterate on interval from 1 to 50,000,000 while calculating some data on every iteration (if you run standart "for" cycle, mta server will "freeze" for several seconds) Async:iterate(1, 50000000, function(i) local x = (i + 2) * i; -- heavy opreation outputServerLog(x); end); Iterate over big array of data Async:foreach(vehicles, function(vehicle) vehicle:setHealth(1000); end); There also an options for changing speed of your async caclulations: Async:setPriority("low"); -- better fps async:setPriority("normal"); -- medium async:setPriority("high"); -- better perfomance -- or, more advanced async:setPriority(500, 100); -- 500ms is "sleeping" time, -- 100ms is "working" time, for every current async thread Example: local _connection; -- initialized database connection local vehicles = {}; Async:setDebug(true); Async:setPriority("low"); dbQuery(function(qh) local data = dbPoll(qh, 0); Async:foreach(data, function(vehicle) local _vehicle = createVehicle( vehicle.model, vehicle.x, vehicle.y, vehicle.z ); -- other stuff -- ... table.insert(vehicles, _vehicle); end); -- and run dummy cycle at the same time (just for fun ) Async:iterate(0, 500000, function(num) outputServerLog(num); end); end, _connection, "SELECT * FROM vehicles");
    1 point
×
×
  • Create New...