Popular Content

Showing content with the highest reputation since 09/06/19 in all areas

  1. 8 points
    [TUT] Scaling DX The reason why I am creating this topic, is because there are a lot of people asking this question: And to be honest there is no best practice for. But here you have my recommendation as guidance for display them the ~s~a~m~e~ for all screen formats. There are two important factors while dealing with screen formats 1. Pixel density Indication: PPI(Pixels Per Inch) and some also use the term DPI(Dots Per Inch) They do not have to be the same while talking about printing stuff. This indication tells us about how many pixels are used per inch. Which more or less tells us how sharp/smooth things like text can be looking. PPI doesn't really play a big role, but to display something nicely you need enough pixels to display it. Else it will be either too small or too crispy. So be careful to not scale things (especially text) too small. 2. Display aspect ratio Wiki The difference between resolution X and resolution Y as a ratio. A list of common ratios: 4:3 5:4 3:2 16:10 16:9 So for example if we take: fHD: 1920x1080 Which has the ratio 16:9 that is calculated like this: 1920 / 16 = 120 120 * 9 = 1080 Scaling without ratio Before I am going to explain any of this, I am going to ask you an important question: Like this: (vertical) ▮ Or horizontal? ▅ I assume most people would agree to play MTA horizontal, else you are probably reading a book or document. p.s If you play MTA on a vertical screen, then we developers do not like you at all, sorry. So what does this tell us? You can assume that the X-resolution is never going to be smaller than the Y-resolution. Useful? You will figure it out. Doing the scaling Note: This part is ABOUT SCALING and not positioning. So what we are going to do is: Calculating a scale which can display the same DX on multiple screen formats Without messing with the ration. Example: A computer runs MTA at a resolution of 1920 x 1080. Lets define that! local devScreenX = 1920 local devScreenY = 1080 If this code is used by a different pc, we also need to know on which resolution it is running: local screenX, screenY = guiGetScreenSize() For the next step we have to look at this screenshot: I have cut out of the wide-screen format a square. Squares have the ratio 1:1, which means that we have removed our ratio difference from this screen resolution. It is very easy to do, as our Y * Y resolution makes exactly that beautiful square! The next thing we have to do is creating our scaling value. This value is required for adjust our resolution values so that they match to every screen format. So to use our ratio 1:1, we use the Y resolution to achieve that: local scaleValue = screenY / devScreenY And as last we can create a rectangle shape that is displayed at the center of every screen format, perfectly! local devScreenX = 1920 local devScreenY = 1080 local screenX, screenY = guiGetScreenSize() local scaleValue = screenY / devScreenY addEventHandler("onClientRender", root, function () -- create a scaled size local sizeX = scaleValue * 300 -- 300px local sizeY = scaleValue * 50 -- 50px -- get the center of the screen local centerX = screenX / 2 local centerY = screenY / 2 -- calculate the starting point of the rectangle local startRectangleX = centerX - (sizeX / 2) local startRectangleY = centerY - (sizeY / 2) dxDrawRectangle ( startRectangleX, startRectangleY, sizeX, sizeY, tocolor ( 255, 255, 255, 255 ) ) end) Lower limit What if we have a resolution of 800x600? And the text is getting too small? Making sure that the pixel density is OK, is very important. So to counter that we have to make sure that the text is not getting too small. Our development Y resolution is 1080 pixels. And we are dealing with an Y resolution 600 pixels. The first thing we are going to look at, is what the scale is going to be at that point. 600 / 1080 = 0.55555555555555555555555555555556 It is not very nice to have your text scaled to 55.5% of the original size, when having low resolution already. But without scaling, the DX stuff might fill up the entire screen and that is just as bad. So what we now need is a limit, in this case a lower limit. scaleValue = math.max(scaleValue, 0.65) The math.max function returns the highest value of all the arguments you put in to it. In this case it contains the: scaleValue: 0.555 And the lower limit of: 0.65 This will make sure that the DX stuff is not getting smaller than 65%. This might make text read able for a 800x600 resolution.
  2. 7 points
    سلام عليكم ورحمة الله آخخبااركم ان شاء الله طيبين ------------------------------------- في هذا الموضوع عندي مود نظام البنك ~~` افكاره ليست جديده مره 😅😅😅 ولكن حاولت اجيب افكار عندك مثلا لما تودع فلوس او تسحب يشتغل صوت + يتحرك البيد اللي يشتتغل بالبنك هذا افضل وصف ض2 لمعرفة كل شي عن المود في هذا الرابط / الفيديو  وبالتـــوفييقء ~~  |~ الإهداءات ~| @!#DesTroyeR_,) @MrKAREEM @Mr.Falcon @DABL @KillerX @NX_CI @[AcM] - Major . @MR_Mahmoud @Ahmed Ly @MR.Mosa @N3xT @Abu-Solo @SuperX @#BrosS @iMr.WiFi..! @Mr.CnTroL @Abdul KariM @Hakan @!#NssoR_) @Simple. و جميع أعضاء المنتدى 
  3. 7 points
    السلام عليكم ورحمة الله وبركاته .. كيفكم جميعا ان شاء الله تكونوا كلكم بخير .. الان وضعت شرح بسيط لما قدمته لكم . عند توفر النت يمكن ملئ المربعات التي بداخلها ومن ثم كتابة اسم المود والضغط على start يتم الانتقال تلفائيا الى send وحين ملئها ستظهر في اللعبة للتحميل من هــــنــــا وللفحص هــــنــــا ملاحظه* 1- عند فتح المود في اللعبة لازم ملائمتها للمود اللي في البرنامج 2- sendفي يتم حفظ كل ما به تلقائيا داخل log 3- في لوق يمكن النسخ او المسح الطرف اليسار للاخبار العاجلة واليمين للروابط والفيديوهات والصور وشكرا ارجوا ان ينال رضاكم
  4. 3 points
    الوظيفة ماعندها بارامتر اللاعب . . إستعمل RequestBrowserDomains
  5. 3 points
    Já mostrei o que você precisa, você não entendeu com clareza por que não entende nada de scripting. Se quiser código pronto com mais clareza está aqui:
  6. 2 points
    About Orange Gaming is a roleplay server which initially started in late 2018, yet, sadly shutdown in November of 2018. However, the server is relaunching. Our goals at Orange Gaming are simple: bring immersive roleplay; whilst still allowing players to have fun. We aim to bring realistic roleplay & allow players to roleplay what they want—ranging from a courier to a cartel leader. We are currently looking for staff & are extending our game servers to other games—not just MTA. Features $20,000 bonus start Vehicle system Inventory system Licensing system Business / home system Texture system Custom mapping Custom weapon damage system And more! Information Currently, we are looking to phase into our closed beta. If you are interested in joining the server—do not hesitate to join our Discord. All information can be found there. https://discord.gg/UpDXuhX
  7. 2 points
    السلام عليكم الفكرة حلوة جدا، لكن كيف تجعلني أوثق فيك انو لما ادخل الفتب بالبرنامج ما يرسلك المعلومات حقت السيرفر و تنسرق المودات؟ شكرا
  8. 2 points
    bengines provides custom engine sounds for vehicles. The resource is not focused to be ultra realistic, it is designed to use for casual servers. Not useful for me anymore so sharing with community. Used on old project. Sounds are copyrighted content not owned by me. Features: ready to use, chooses the best engine for vehicle depending on handling! easy to customize & expand for Lua programmers 30 soundpacks for vehicles (buses, bikes, sport cars etc.) stable code with quite high performance used on server with 600 players ALS effect (exhaust flames) Turbo (satisfying whistle and blow-off sounds) Videos: https://streamable.com/n7k40 https://streamable.com/lp14t https://streamable.com/q5e9g Download: Github: https://github.com/brzys/bengines (feel free to send pull requests) Community: to-do For programmers: --[[ Element datas used by resource [array] vehicle:engine - stores basic info about engine type, sound pack etc. (synced) [string] vehicle:type - used for engine calculation, useful for servers. Available: Bus, Truck, Sport, Casual, Muscle, Plane, Boat, Motorbike (synced) [string] vehicle:fuel_type - customized for each engine. Useful for servers. Available: "diesel", "petrol" (synced) You can use setElementData(vehicle, "vehicle:upgrades", {turbo=true, als=true}) to add turbo or ALS. --]] --[[ Exported functions --]] exports.bengines:getVehicleRPM(vehicle) -- returns RPM of given vehicle exports.bengines:getVehicleGear(vehicle) -- returns current gear of given vehicle exports.bengines:toggleEngines(bool) -- true / false, restore GTA engine sounds
  9. 2 points
    Yes, I meant the client. Now please try https://nightly.mtasa.com/mtasa-1.5.6-rc-18664-20190613.exe
  10. 2 points
    A definitive fix is available. Install this update: https://nightly.mtasa.com/?mtasa-1.5-rc-latest @Flexxy @Willian#
  11. 2 points
    قلد ولا خل الرخيص يبقى رخيص ،
  12. 2 points
    كفو , واصل . معي أفكار بسيطة: خلي لما يروح للبنك يتكلم مع البيد . تجي لوحة صغيرة : مرحباً بك في نظام البنك, ولما يضغط التالي يجيه كلام اخر حق تعليمات خلي سكنات شرطة في بنك لو حد مثلاً حاول القتل راح يقتلونه تلقائياً .. ويجيه نجوم .. لو معك خبرة في txd إصنع بنك أخر , , وبس .
  13. 2 points
  14. 2 points
  15. 2 points
    Hello! So on this date (8th of June 2019) I reinstalled MTA and a problem regarding "Network Trouble" occurred. The *Network Trouble* text shows up only when I'm spectating someone so my status is "dead" on the playerboad/scoreboard. I did not have this problem before reinstalling MTA. What should I do to prevent this from happening or how should I fix this problem? Thanks for reading. Kind regards, Rhae
  16. 2 points
    Hello there! You found Dystopia: The Incident, an original sandbox post-apocalyptic RPG. Keep reading below and you’ll find out more... Server: mtasa:// Discord: https://discord.gg/Zs5bWSX Current version: alpha 0.75, check out details here DOWNLOAD (0.75 alpha) Key concepts Food and water are scarce and you need to be on the move to stay alive. Inventory size is limited, forcing you to prioritize. Vehicles require constant maintenance. Faction camps, bases, shanty towns and other encounter zones all over San Andreas. Exploration is rewarded. World is densely populated with NPCs and who you choose to kill matters. Environment is harsh and punishes the weak and the dumb. Moral decisions to be made. End goal. Roleplay friendly. Designed to be also enjoyable as a single-player experience. Setting 2000: A series of catastrophic earthquakes smashed the cities and countryside of San Andreas. In the aftermath, the whole state found itself separated from mainland. Fear and selfishness roamed free, pushing society into chaos. In the heart of San Fierro, one of the largest cities of San Andreas, government-sponsored Zombotech Corporation was researching biological weapons in its underground facility. The labs were heavily damaged by the cataclysm and a deadly infectious agent escaped in the streets. While emergency services struggled to contain the disaster and minimize collateral damage, death was spreading unnoticed. 2001: The Establishment evacuated survivors of the outbreak in the barricaded city of Las Venturas but infection spread inside the fence. They nuked the city and placed San Andreas under strict military quarantine. Nobody gets in, nobody gets out. They dubbed the disaster ‘The Incident’ to minimize its amplitude, media soon went silent and survivors were forgotten. 2007: 6 years passed and things have not become better. Regular people picked things up from where the government left them and started to organize. This is a tough new world, populated with the full spectrum of humanity: resilient survivors, vicious bandits, cannibalistic raiders, oppressive military forces and the rest of the loons. No line between good and bad was ever so ill-defined. San Andreas is ruled with an iron hand by Governor Skinner, who took office only six days after the Incident. His armed forces fight to control the territory, herding men into the new Refugee Camp. Resources are scarce and many dropped the last remnants of morality when they faced starvation. Violent clans and factions fight over the remains, establishing turfs or just trying to stay alive. Militias fight for supremacy, idealists work to maintain civilization and everybody else just struggles to survive another day in an increasingly suffocating world. As it became evident that the government has no rescue plan for them, despair started to crumble the minds of the few sane left. All attempts to flee San Andreas are met with airstrikes. But there must be ways to escape this place... What you can experience right now Explore a detailed post-apocalyptic map with many encounter zones. Plenty of NPCs, both friendlies and baddies. Dynamic faction and spawn system. More than 40 missions already in the game. Detailed inventory with more than 100 items to be found and used. Basic needs, stamina, infection, various other modifiers like pain, bleeding, exhaustion or inebriation. Innovative looting mechanic. Four zombie types, with different behavior. Scavenge the world for materials to build settlements or to use simple crafting and cooking. Upgrade and drive rugged vehicles across the wasteland and engage in vehicular combat. Trade, recruit and discover parts of the story by chatting with NPCs. Experience dark humor and some strong themes (16+). Simple interface, consistent graphic style. What still needs to be done The current gamemode version is alpha 0.75. Required for beta: skills and abilities implementation, npc traffic, karma system and map completion (now >90%). Once the project hits beta and the core is completed we’ll start focusing exclusively on the missions and story. Seeking friends for the end of the world Want to jump onboard and take part in the development? Great, join our Discord server using the link on top (the recommended approach) or PM me here. We're always looking for like-minded developers. Wanted: scripters, mappers, storytellers, 3D artists and testers. However, keep in mind that we're not looking to monetize this project in any way. We’ve used the work of many MTA community members and the gamemode will be shared alike with the community when completed. You will gain full credit for your work but no other type of compensation. Share your thoughts We do love suggestions and implement all good fitting ones, so don’t be shy and tell us what you think about this project, using the channels highlighted above. The answer is guaranteed and we'll also give full credit for any original ideas. Media 100+ development screenshots here (I suppose this is what you were looking for from the beginning, instead of reading a wall of text) Thanks for reading! Watch this space for fresh information and media.
  17. 2 points
    Uma maneira ainda mais efetiva é utilizar getResourceGUIElement - cuja variável predefinida é guiRoot. Ex: addEventHandler ("onClientGUIClick", guiRoot, functionQualquer) -- Sem declarar o botão e sem o false. É um hábito que todos que buscam otimizar seus scripts devem ter. root (getRootElement()) sempre deve ser evitado quando possível.
  18. 2 points
    اتوقع فيه فرق بين مبرمجين وباحثين أنت قلت حد عنده رابط شرح طيب ابحث بنفسك ولا تعتمد على الناس تعلمك لأن الأغلبية تعلمو بأنفسهم. والبرمجة مو شي صعب والله خذلك الويكي ومود فارغ وابدأ تجرب في الأكواد وتخبص اللي حاط أول موضوع تعليم من اللي علمه يعني بالتوفيق لك والله شيء سهل تحتاج اللغة الإنجليزية والرياضيات فقط
  19. 2 points
    Quando usar o source, quando declarar o botão no evento e quando usar o parâmetro getPropagated (o false): addEventHandler ("onClientGUIClick", button01, functionQualquer) -- Sem o false e declarando o botão que deve chamar essa função. Esse caso acima é recomendado para botões únicos e que não tenham parentes. Quando vc só tem um único botão, é mais fácil declará-lo direto no evento ativador. Por não existir um parente desse botão, não precisa do false. Se existisse um parente (como uma janela) dai precisaria do false, caso contrário a função seria ativada novamente para esse parente. addEventHandler ("onClientGUIClick", button01, functionQualquer, false) -- Com o false e declarando o botão. Esse caso com o false é recomendado para casos de um botão único e que possui algum parente, como uma guiWindow. O false evita que a janela seja considerada ao clicar no botão. Ativando a função somente 1 vez por clique. addEventHandler ("onClientGUIClick", root, functionQualquer) -- Sem declarar o botão e sem o false. Nesse último caso é o mais comum e recomendado para a maioria dos casos onde uma janela possui vários botões. Você não declara um botão específico no evento, usa-se root para que a função ative em qualquer guiElement clicável. Dentro da função, vc usa source para saber qual elemento foi clicado e se ele é igual a tal botão, por exemplo: if (source == button01) then -- Faz algo. elseif (source == button02) then -- Faz outra coisa. end Em vez de usar vários addEventHandlers para cada botão, e uma função diferente para cada botão, usa-se a mesma função e o mesmo addEventHandler para todos, diferenciando o que cada um dos botões faz através das condições. Isso é questão de otimização. Vários eventos pequenos são mais pesados do que um único evento grande.
  20. 2 points
    @salh This code doesn't do anything. You haven't defined the `getUserAndPass` function. Furthermore, you wouldn't be saving the actual password, you'd be using a token based system. @Master_11 Please see this tutorial which includes a "remember me" functionality
  21. 2 points
    انا عن نفسي صراحة ما فهمتها من اي شرح اتسوي انا جبت كل المودات اللي مستخدم فيها db ورحت اراجع الاكواد لحد ما فهمتها واحدة واحدة وفهمت وظائفها
  22. 1 point
    I haven't really made DX buttons so can't say for sure. My buttons and menus at my server are the default MTA ones (non-DX). I used my method to scale all DX rectangles & texts on the screen and it works quite well with those.
  23. 1 point
    Welcome MTA Team ♥️ The game in the past was beautiful and was entered by a large number of fans but now reduce the number dramatically and why what is the reason? The reason is not to update the game such as updating chat outside the servers and the addition of friends and private chat, etc. This is also the reason for the retirement of players because of the game updates and I asked many people about the reason for retirement through social networking sites, most of which is why I hope Update the game thank you Mr FouR
  24. 1 point
    add (server type) to list search to be able to find A certain type from servers easily. types like role play or zombie or Rpg or another.. Here
  25. 1 point
    طارح لنا كود صحيح لاكن انت مستعمله بالطريقة الخطاء اطرح الكود كامل عشان نحل مشكلتك ياخوي !
  26. 1 point
    مود جميل ورائع شكرا علي الاهداء واستمر موفق
  27. 1 point
    setTimer( function ( ) local newString = convertNumber ( getPlayerMoney( localPlayer ) or 0 ) .."$" if newString ~= getElementData ( localPlayer, "Money" ) then setElementData(localPlayer, "Money", newString) end end , 1000, 0) Client Side
  28. 1 point
    By the way, using a timer inside a render event is useless because 'onClientRender' event gets triggered everytime GTA renders a new frame.
  29. 1 point
    الشاطئ اسمه بيتش Beach
  30. 1 point
    Vc já deve ter resolvido. Mas caso alguém queira saber a resposta: Remover o chat não dá. MAS tem como desabilitar ele no momento em que o jogador entra no servidor. addEventHandler ("onPlayerJoin", root, function () showChat (source, false) end) Isso impede o chat de aparecer e a tecla T também deixa de funcionar. Vale lembrar que o jogador ainda pode reativar o chat usando showchat no Client Console do F8. Por ser um comando de cliente nativo do MTA, não há como bloquear esse comando.
  31. 1 point
    It was a result of the same issue as described in https://forum.mtasa.com/topic/117131-network-trouble/?do=findComment&comment=956241
  32. 1 point
    No you can't do that. In 99% of cases it will be used for illegal actions (servers abuse, faking online, etc). So mta doesn't provide such APIs and we probably shouldn't discuss here the ways to do that thing.
  33. 1 point
    Lá na última linha tá destroyElement, troque por DestroyMarker (confundi quando reescrevi o trecho)
  34. 1 point
    Does the problem occur with this version of MTA? https://nightly.mtasa.com/mtasa-1.5.6-rc-16588-20190310.exe
  35. 1 point
    setTimer ( function ( source ) if getElementData( source, "onMission" ) == true then if playersIntoMission < 1 then OutPut ( "✱⌠ ! لم تبدأ مهمة الركض لعدم توفر اللاعبين ⌡✱", root, 255, 0, 0, true ) killPed ( source ) setElementData( source, "onMission", false ) playersIntoMission = 0 MissionStart () return end end end, 3000, 1 ,source) لو مـ اشتغل اطرح لنا الكود كامل
  36. 1 point
    Okay, we just confirmed the problem. The revert of buggy changes failed partially. Thanks for helping us to test, stick to that build until we get a final update.
  37. 1 point
    www.amdoren.com is very good
  38. 1 point
    Those sites do not provide an API. You need that to not receiver their website junk. Instead you want clean JSON or XML! Search on Google for: free timezone api And pick the one that works best for you.
  39. 1 point
    @Dutchman101 Hey bro. We got another bug. While spectating someone they are just freezing or flying just like they have ping 99999. It's another bug or?
  40. 1 point
    استخدم الداله اللي تحت بالنسبة المئوية RGBA راح تعطيك الـ function getRGBAByPercentage(rPercentage,gPercentage,bPercentage,aPercentage) -- ارقمنت إجبارية --> rPercentage : نسبة الأحمر --> gPercentage : نسبة الأخضر --> bPercentage : نسبة الأزرق -- ارقمنت اختيارية --> aPercentage : نسبة الشفافية if rPercentage and gPercentage and bPercentage then if type(rPercentage)=="number" and type(gPercentage)=="number" and type(bPercentage)=="number" then local aR,aG,aB,aA; aR=(255/100)*rPercentage;aG=(255/100)*gPercentage;aB=(255/100)*bPercentage; if aPercentage and type(aPercentage)=="number" then aA=(255/100)*aPercentage; end return aR,aG,aB,aA else return print("the values must be numbers"); end else return print("invalid!"); end return false end -- تجربه print(getRGBAByPercentage(100,40,98)) -- 255.0 102.0 249.9 false local r,g,b,a=getRGBAPercentage(100,100,100,100); r: 255.0 g: 255.0 b: 255.0 a: 255.0 لا تنسى تستخدم guiScrollBarGetScrollPosition عشان تجيب النسبة المئوية للسكرول بار
  41. 1 point
    سويتلك مثال بسيط , وجربته وشغال local R, G, B = 255, 255, 255 GUIEditor = { scrollbar = {}, window = {} } addEventHandler("onClientResourceStart", resourceRoot, function() local screenW, screenH = guiGetScreenSize() GUIEditor.window[1] = guiCreateWindow(screenW - 320 - 10, (screenH - 197) / 2, 320, 197, "", false) guiWindowSetSizable(GUIEditor.window[1], false) guiSetAlpha(GUIEditor.window[1], 1.00) GUIEditor.scrollbar[1] = guiCreateScrollBar(65, 90, 197, 18, true, false, GUIEditor.window[1]) end ) addEventHandler("onClientRender", root, function() local screenW, screenH = guiGetScreenSize() dxDrawText("change colour", (screenW - 191) / 2, (screenH - 41) / 2, ((screenW - 191) / 2) + 191, ( (screenH - 41) / 2) + 41, tocolor(R, G, B, 255), 1.00, "pricedown", "left", "top", false, false, false, false, false) end ) addEventHandler( "onClientGUIScroll", resourceRoot, function( ) if ( source == GUIEditor.scrollbar[1] ) then local ScrollPosition_ = guiScrollBarGetScrollPosition ( GUIEditor.scrollbar[1] ) ScrollPosition_2 = ScrollPosition_ R = R - ScrollPosition_ end end )
  42. 1 point
    انا عندي لك اقتراح بدال ما تستخدم التايمر استخدم الريكرشن ميثود بالتوفيق
  43. 1 point
    اذا تبي اقتراح تضيفة للمود في نفس لوحة تغير الاسم للعربي ضيف تغير الخط حق العاجل و تغير الخص حط الاسم
  44. 1 point
    عندك اند ناقصة 💀
  45. 1 point
    Для добавления новой модели, например на ID 737. Надо закинуть файлы txd и dff новой модели в папку models/ Добавить в meta.xml <file src="models/NewModel.dff" type="client" download="false" /> <file src="models/NewModel.txd" type="client" download="false" /> И добавить название модели в client.lua local ModelsName = { ... [736] ... [737] = {"models/NewModel", "Automobile"}, } Перед запуском скрипт надо распаковать. Ну и скачивать его соответственно с https://github.com/alexaxel705/Unlimited-Vehicle Для спауна авто используй функцию CreateVehicle() в server.lua Демонстрация работы скрипта:
  46. 1 point
    مجتمع العرب تهنئكم بعيد الفطر ، عيداً مبارك لكم
  47. 1 point
  48. 1 point
  49. 1 point
    السلام عليكم ورحمة الله وبركاته كيف حالكم رجعتلكم بمود حصري جديد ما اتوقع احد جابه قبل كذا بدون كلام كثير كل شي عن هذا المود في هذا الرابط تلقونه ولا احد يجي يقولي وين الصور ض22 قلتلكم في الرابط هذا https://www.youtube.com/watch?v=kMOYsG_RTh8&t=15s بالتوفيق للجميع
  50. 1 point
    السلام عليكم ورحمة الله وبركاته سويت من فترة سكربت بسيط وهو عبارة عن widgets له استخدامات متعددة أبسط شي ممكن تسويه هو لوحة فيها كلام , مع امكانية اظهار زرين اسفل اللوحة بتصميم جميل وأنيق وتقدر تستخدم الزرين حسب احتياجك ولتوسعة مجال الاستخدام سويت وظائف لرسم edit, button, checkbox ممكن أضيف شغلات اكثر في التحديثات القادمة ولكن هذي الاشياء هي الاكثر استخدام خصوصاً للويدجتس طريقة استخدام الوظائف والاحداث موجودة في ملف اسمه help.txt ويوجد ملف فيه أمثلة .. ولذلك ماله داعي اشرح طريقة الاستخدام في الموضوع فيه حدث للرسم داخل الويدجت مثل رسم الازرار والايدت .. الخ , وكلشي موجود في الأمثلة أفكار للاستخدام نظام اشعارات بسيط وموجود ظمن الامثلة الموجودة في السكربت تنبيهات أو نوافذ للمهمات السريعة صنع لوحات خفيفة وافكار كثيرة... المود مو مشفر ماعدا الملف الخاص بالسيرفر وطبعاً ما اسمح بتغيير الحقوق بالنسبة للتحديثات .. بيوصل تنبيه عند تشغيل المود في حال وجود تحديث جديد لتحميل السكربت https://up.top4top.net/downloadf-994h145t1-zip.html وجاري الرفع على الكومنتي وشكراً