Leaderboard
Popular Content
Showing content with the highest reputation on 11/03/17 in all areas
-
A few months ago we decided to set up a project called Countryside RP (CRP). I am theoretically the founder of the whole project, but in my opinion the current staff are all founders of the project, there would not be a project without them. We have been managing the forums, discord channel and some small features since the creation date. We also started sculpting the server, I can tell you it is fun to do but might be quite boring sometimes. Besides the history and all, I will tell you a few things about the project. The server of Countyside RP is based in the area of San Andreas County; most likely Red County, Bone County and Flint County. Tierra Robada County and Whetstone County are included as well. All towns and counties are connected between town halls, all town halls are working under the San Andreas County Government. The Sheriff's Department and Fire Department take care of protection, emergency medical services and fire. There are many things to do, for example: go fishing, work for the postal delivery or go clean some streets. Hang out with your friends, marry your dear fiance(e) or create a faction which might turn out into a well-based company. You can make your own choices: live under a bridge with your homeless mates or focus on making career and enjoying the happy-family feeling. We are currently working with a free server and free forums, which will change in the future when we are nearby the grand opening. We would like to see you on our forums to help us to improve the project on the field of development or administration, suggestions and criticism is welcome. We are also looking for people to support us on the field of administration, factions, management and development. Do not hestitate to contact me on discord or the forums if you are interested! You might want to take a look on our forums or join our Discord server, you can contact us from here or just PM me. Pictures might come soon, we just wanted to tell you something about the project. The grand opening, as we call it, is far away, but we will keep you posted about the latest updates. Enjoy your time on MTA, peace out! Cronus, Community Manager Sipapi, Assistant Community Manager Emma, Head of Staff Mike, Head of Factions Blueline, Head of Administrational Affairs3 points
-
بما اني إعتزلت البرمجة وماني مستفيد شيء من الأكواد ولا من المود قلت خلني انزلكم المود غير مشفر download3 points
-
نريد ان نري فيديو او صور للمود تبعك نأمل ذلك في وقت قريب ولدي افكار لك السفينه تكون ملك للشخص دئما ويقدر يبيعها مره اخري بعد شرائها واضافة مكان لاضافة تعديلات علي السفينه مثل تغير لونها .. الخ وضيف حركات للسفينه يعني بار واشياء من هذه موفق#2 points
-
Try this function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end else return false end end function payScript(player,cmd,other,amount) local name = getPlayerFromPartialName(name) local atg local rpm = getPlayerMoney(player) local err = {} if not (name and isElement(name)) then err[1] = "Name not specified correctly." end if tonumber(amount) < 0 then err[2] = "Amount can't be negative." end atg = tonumber(amount) if (rpm-atg) < 0 then err[2] = "Given amount is more than yours." end if #err == 0 then setPlayerMoney(name,atg) outputChatBox("Given:"..atg.." to:"..getPlayerName(name),player,0,255,0) setPlayerMoney(player,(rpm-atg)) outputChatBox("Left:"..(rpm-atg).." to you.",player,0,255,0) else for i=1,#err do outputChatBox(err[1],player,0,255,0) end end end addCommandHandler( "pay", payScript )2 points
-
2 points
-
Vice City Roleplay is an entirely new roleplaying experience made completely from scratch utilizing MTA's latest script features in currently in Closed Beta. Our service exhibits a wide array of features, ranging from common functionalities such as factions and vehicle dealerships to a unique vehicle sound system based off of RPM with manual and automatic gear shifting or a slot based inventory system. The server is set in current day Vice City and due to the entire map being hosted on the server, players can connect and play without having to install a single client-side modification. The server tailors to your needs by giving players the ability to adjust the object streaming distance to their own preferences. Our core features are listed below, but as time passed and development continues, you can expect much more content even after the server's release. Roleplay in Vice City. An entirely new script: Scripted from the ground up. Multi-faction system: Players can be in 3 factions at the same time, whilst each faction provides 5 sub-divisions. Unrestricted faction ranks: Each member of a faction can have a unique rank set to them. Jobs-system: Players can make money in a simple way by working jobs, such as thrash masters or taxi drivers. Business-system: Players can start their own business and link jobs to them, meaning you can hire people to your business as thrash masters who will collect garbage. A slot-based inventory-system. Makes players able to expand their inventories using backpacks, which they can drop on the ground whilst the contents of it save. A right click menu allows players to interact with the objects in their inventory such as equipping different types of body armor. A Health System that calculates damage and simulates pain, and bleeding effects based off of the type of injuries such as cuts, blunt trauma, and even the caliber of a bullet. A Suppression system which makes firefights even more intense and realistic. An in-depth weapon-system which utilizes an entire library of firearms, magazines, and calibers where firearms can be named after real-life counterparts and will be displayed using the correct image in the inventory. Magazine compatibility checks ensure that the correct magazines can only be used in compatible weapon systems. Interior System: Enter interiors without delay or lag, even when entering interiors located in San Andreas. Or create your own using our Interior Builder. Place each wall or floor individually and in different sizes, making the perfect interior for your character. Furniture System: After you purchase or create your own interior, you can purchase furniture and model your home to your own liking. Texture System: Makes players able to texture anything from a Wall, Floor, Couch or Television, using a library provided by the server, or their own by simply putting in a link. A Vehicle System that uses custom vehicle sounds and calculates RPM, allowing cars to use any sound in our library independently whilst also giving players to option to purchase automatic or manual transmission vehicles. An MDC System that integrates both a dispatch and a web-interface, allowing easy callsign distribution, dispatching and accessing of reports. As states the features listed above are our core systems, meaning there's much more for players to enjoy and much more will be added as the server development progresses. Below you can go through some of our media and updates released in the past. Vice City Roleplay Teaser #1 Interior Building Timelapse Teaser #2 Status Updates You can find all of our Status Updates on our forums with no registration required at: https://forums.vc-rp.net/index.php?/forum/12-news-announcements/ Additionally, you can visit our own Wikipedia page for a more detailed explanation of our project's features: https://wiki.vc-rp.net/index.php/Main_Page Joining the Server Forums: https://forums.vc-rp.net/ MTA Server: mtasa://164.132.201.51:22003 (Closed Beta Participants Only) Teamspeak: 51.255.165.214 Discord: https://discord.gg/kpaJHft1 point
-
Hello community, Yesterday i got banned on MTA:SA because of a "TRAINER" can someone tell me what it is and how i can off that :~? i dont want to get banned once again Regards Rambo.1 point
-
السلام عليكم ورحمة الله وبركاته اخباركم ان شاء الله طيبين؟ اليوم رجعت لكم بإصدار ثاني من سكربت الأوبجكت السحري المهم هالمره ضفت مميزات كثيره المميزات : تقدر تحرك الأوبجكت يمين ويسار الخ .. بأزرار الكيبورد تقدر تختار الأوبجكت بنفسك تقدر تغير ازرار الكيبورد والكثير .. الأزرار من رقم 1 الى 7 وأشكر الأخ فهد ساعدني بالمود :] لفتح اللوحة اكتب في اف 8 object المهم اخليكم مع التحميل Download والسلام خير الختام1 point
-
This is similar to what you tried but probably better than making the function yourself. https://wiki.multitheftauto.com/wiki/Split1 point
-
خذها مني, مايصير تعتمد على أحد بحياتك شوف عدد مواضيعي من يوم ما خشيت المنتدى ممكن ما تتعدى الـ 15 ومع ذلك الحين أعتبر من أفضل المبرمجين وأحاول اطور نفسي بنفسي1 point
-
! شوف ردوده كل ما أحد قاله شيء قال تراني جديد على البرمجة طيب جديد على البرمجة تعلم مثلك مثل الناس الباقية حنا قاعدين نساعدك1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
function removeGroups ( player ) if ( player ) and ( getElementType ( player ) == "player" ) then if isGuestAccount ( getPlayerAccount ( player ) ) then return end local Acc = getAccountName ( getPlayerAccount ( player ) ) if ( #aclGroupList ( ) == 0 ) then return end for _,Groups_ in ipairs( aclGroupList ( ) ) do if ( isObjectInACLGroup ( "user." ..Acc, Groups_ ) ) then aclGroupRemoveObject ( Groups_ ,"user."..Acc ) end end end end xAddToGroupFunction_ = function ( Group,Price,Name ) local account = getAccountName(getPlayerAccount(source)); if isGuestAccount(getPlayerAccount(source)) then return outputChatBox("#ff4f00* ( #ffffffBuy Admin #ff4f00) : #ffffff * يجب عليك التسجيل اولاَ",source,255,0,0,true); end if isObjectInACLGroup("user."..account, aclGetGroup(tostring(Group))) then return outputChatBox("#ff4f00* ( #ffffffBuy Admin #ff4f00) : #ffffff** لديك هذهـ الرتبة فعـلا ! ",source,255,0,0,true); end if isObjectInACLGroup("user."..account, aclGetGroup("Admin_x")) then return outputChatBox("#ff4f00* ( #ffffffBuy Admin #ff4f00) : #ffffff** الحساب الخاص بك محظور | "..Name,source,255,0,0,true);; end local sValue = getElementData( source,'PlayTime' ) if not sValue then sValue = '0:0:0' end local data = split(sValue,':') local hour = tonumber( data[1] ) if hour == nil or not tonumber(hour) then hour = 0 end if ( hour >= tonumber(Price)) then removeGroups ( source ) if isObjectInACLGroup ("user."..account, aclGetGroup( tostring(Group)) ) then aclGroupAddObject (aclGetGroup( tostring(Group)),"user."..account); outputChatBox("#ff4f00* ( #ffffffBuy Admin #ff4f00) : #ffffff** تم اضافة الرتبة بنجاح | "..Name,source,0,255,0,true); end else outputChatBox("#ff4f00* ( #ffffffBuy Admin #ff4f00) : #ffffff**ليس لديك ساعات كافية",source,255,0,0,true); end end addEvent("Accept:the:request",true) addEventHandler("Accept:the:request",root,xAddToGroupFunction_) سويته لك اذا كان الاعب بقروب ادمن اكس مايقدر يترقى واذا الاعب عنده الساعات المطلوبة يحذف كل القروبات الي عنده قبل ويعطيه رتبة جديدة بالتوفيق ولاتنسانا من الدعاء1 point
-
1 point
-
after seeing your code it should be this local ping = getPlayerPing(getLocalPlayer()) local x, y = guiGetScreenSize ( ) local posA,posB = x*0.95,y*0.03 local posC,posD = x*0.87,y*0.03 local root = getRootElement() local player = getLocalPlayer() local counter = 0 local starttick local currenttick addEventHandler("onClientRender",root, function() if not starttick then starttick = getTickCount() end counter = counter + 1 currenttick = getTickCount() if currenttick - starttick >= 1000 then setElementData(player,"FPS",counter) counter = 0 starttick = false end end ) function drawStates () addEventHandler ( "onClientRender", root, pingState ) addEventHandler ( "onClientRender", root, fpsState ) end addEventHandler ( "onClientResourceStart", resourceRoot, drawStates ) function fpsState() local ping = getPlayerPing(getLocalPlayer()) dxDrawText ( "FPS:"..getElementData(getLocalPlayer(),"FPS"), posA, posB, x, y, tocolor ( 30, 144, 255, 255 ), 1.0, "default-bold" ) dxDrawText ( "PING:"..ping.." ms", posC, posD, x, y, tocolor ( 30, 144, 255, 255 ), 1.0, "default-bold" ) end fileDelete("client.lua") it will fit all res think sx*0.1 as 1/10 of sx and sy*0.1 as 1/10 of sy so sy*0.2 will be 2/10 of sy for example if sx = 1366 and sy =768 then sx*0.1 = 136.6 sx*0.2 = (136.6*2) well i am not good at making people understand but few example above can click your brain on how i did it1 point
-
addCommandHandler( "GetCameraPos", function ( ) local x, y, z, xl, yl, zl = getCameraMatrix( ) if ( x == 0 or y == 0 or z == 0 ) then return end setClipboard(" "..x..", "..y..", "..z..", "..xl..", "..yl..", "..zl.." ") end ) حطه بكلينت واكتب باف8 GetCameraPos وراح ينسخ لك احداثيات الكاميرا ماتركس الي انت فيها الكود اتوقع لزاحف بالتوفيق1 point
-
!IMPORTANT! Problem is fixed in the latest insider preview build - 15055. Admins, feel free to lock the topic.1 point
-
1 point
-
1 point
-
1 point
-
Hello. I buy interior for mta server. But I was given a job in this form. How to put this on the server? Need a converter? //Map Exported with Texture Studio By: [uL]Pottus//////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Objects//////////////////////////////////////////////////////////////////////////////////////////////////////// new tmpobjid; tmpobjid = CreateDynamicObject(19377,-2355.042,934.786,93.446,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 2821, "gb_foodwrap01", "sm_marble", 0x00000000); tmpobjid = CreateDynamicObject(19447,-2352.515,949.228,91.945,0.000,0.000,89.999,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 9514, "711_sfw", "ws_carpark2", 0x00000000);1 point
-
كودك ماينفع ي اخ ١ ماراح يظهر غير للاعب انه لايف او ديد ٢ ماينفع راندر ب انشاء رو يعني لو دمه قليل عن ٢٠ راح ينشء الاف الملاين من الرو1 point
-
ماشاء الله خدمات جميله والاستضافة سريعة وكويسه, بالتوفيق لكم1 point
-
1 point
-
wait i will correct it ang give it to you function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end else return false end end function payScript(player,cmd,other,amount) local name = getPlayerFromPartialName(other) local atg local rpm = getPlayerMoney(player) local err = {} if name == false then err[#err+1] = "Name not specified correctly." end if tonumber(amount) < 0 then err[#err+1] = "Amount can't be negative." end atg = tonumber(amount) if (rpm-atg) < 0 then err[#err+1] = "Given amount is more than yours." end if(player == name) then err[#err+1] = "You can't give it to yourself." end if #err == 0 then setPlayerMoney(name,atg) outputChatBox("Given:"..atg.." to:"..getPlayerName(name),player,0,255,0) setPlayerMoney(player,(rpm-atg)) outputChatBox("Left:"..(rpm-atg).." to you.",player,0,255,0) else for i=1,#err do outputChatBox(err[i],player,0,255,0) end end end addCommandHandler( "pay", payScript ) Try this1 point
-
function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end else return false end end function payScript(player,cmd,other,amount) local name = getPlayerFromPartialName(name) local atg local rpm = getPlayerMoney(player) local err = {} if not (name and isElement(name)) then err[#err+1] = "Name not specified correctly." end if tonumber(amount) < 0 then err[#err+1] = "Amount can't be negative." end atg = tonumber(amount) if (rpm-atg) < 0 then err[#err+1] = "Given amount is more than yours." end if #err == 0 then setPlayerMoney(name,atg) outputChatBox("Given:"..atg.." to:"..getPlayerName(name),player,0,255,0) setPlayerMoney(player,(rpm-atg)) outputChatBox("Left:"..(rpm-atg).." to you.",player,0,255,0) else for i=1,#err do outputChatBox(err[i],player,0,255,0) end end end addCommandHandler( "pay", payScript ) If any one has copied it please update it with this1 point
-
1 point
-
1 point
-
For this you need to undestand the MTA DayZ Gamemode : The contains of inventorys and tents are defined by elementData. You'll have to use these functions : setElementData() getElementData()1 point
-
1 point
-
1 point
-
المرة الجاية وضح طلبك تراك تقول ماركر انتقال من مكان لمكان انت تصممه مب لبيت متصمم قبل على العموم حياك الله1 point
-
1 point
-
اذا كان ايفنت استخدم triggerEvent ولاكن يجب ان الايفنت واستخدام الtriggerEvent بنفس نوع الملف كلينت > كلينت سيرفر < سيرفر اما اذا كان يوسفل فنكشن استخدم exports1 point
-
يعطيكم العافية علي الدعم صراحة دعم ممتاز بالتوفيق لكم1 point
-
This script isn't even worth selling... Edit Thiz tok me 1 hur to mke, plis lik (Requires bone_attach) meta.xml: <meta> <info author="xXMADEXx" name="Breif Case" type="script" version="1.0" /> <script src="breif_shared.lua" type="shared" /> <script src="breif_c.lua" type="client" /> <script src="breif_s.lua" type="server" /> <oop>true</oop> </meta> breif_c.lua --[[Command.add ( "pos", function ( ) local x, y, z = getElementPosition ( localPlayer ) local str = table.concat ( { x, y, z }, ", " ) setClipboard ( str ); print ( str ); end )]] Breif = { vars = { marker = null, blip = null, dxAlpha = 0, dxCount = "up" }, onMarker = function ( p ) if ( p ~= localPlayer ) then return end Event.remove ( "onClientPickupHit", source, Breif.onMarker ) source:destroy ( ); Event.trigger ( "BreifCase:onPlayerWin!", p ) Breif.vars.dxAlpha = 0 Breif.vars.dxCount = "up" Event.add ( "onClientRender", root, Breif.onRender ) Breif.vars.blip:destroy( ); end , onRender = function ( ) dxDrawText ( "+ $2,000", 0, 0, sx, sy, tocolor ( 0, 255, 0, Breif.vars.dxAlpha ), 2, "pricedown", "center", "center") if ( Breif.vars.dxCount == "up" ) then if ( Breif.vars.dxAlpha >= 245 ) then Breif.vars.dxCount = "down" else Breif.vars.dxAlpha = Breif.vars.dxAlpha + 2 end else if ( Breif.vars.dxAlpha <= 10 ) then Event.remove ( "onClientRender", root, Breif.onRender ) else Breif.vars.dxAlpha = Breif.vars.dxAlpha - 2 end end end } Event.add_ ( "BreifCase:DestroyClientElements", true ) Event.add ( "BreifCase:DestroyClientElements", root, function ( ) if ( Breif.vars.marker and isElement ( Breif.vars.marker ) ) then Event.remove ( "onClientPickupHit", Breif.vars.marker, Breif.onMarker ) destroyElement( Breif.vars.marker ) Breif.vars.blip:destroy( ); end end ) Event.add_ ( "BreifCase:onClientPickup", true ) Event.add ( "BreifCase:onClientPickup", root, function ( pos ) if ( isElement ( Breif.vars.marker ) ) then Event.remove ( "onClientMarkerHit", Breif.vars.marker, Breif.onMarker ) destroyElement ( Breif.vars.marker ); Breif.vars.blip:destroy( ); end local x, y, z = unpack ( pos ) Breif.vars.marker = Marker.create ( x, y, z-1, "cylinder", 2, 255, 255, 0, 120 ) Breif.vars.blip = Blip.create ( x, y, z, 41 ) Event.add ( "onClientMarkerHit", Breif.vars.marker, Breif.onMarker ) end ) breif_s.lua Breif = { vars = { holder = null, element = null, object = null, goto = null, blip = null }, create = function ( ) local this = Breif this.remove ( ); local info = this.positions [ math.random ( #this.positions ) ] local x, y, z = unpack ( info.create ) Breif.vars.element = Pickup.create ( x, y, z, 3, 1210 ) Breif.vars.goto = info.goTo Breif.vars.blip = Blip.create ( x, y, z, 33 ) Event.add ( "onPickupHit", Breif.vars.element, this.onHit ) print ( "A breif case has been created in "..tostring(getZoneName(x,y,z))..", "..tostring(getZoneName(x,y,z,true)).."!", root, 0, 255, 0) end, remove = function ( ) local this = Breif if ( this.vars.element and isElement ( this.vars.element ) ) then destroyElement ( this.vars.element ) end Breif.vars.element = null Breif.vars.goto = null if ( this.vars.object and isElement ( this.vars.object ) ) then destroyElement ( this.vars.object ) end Breif.vars.object = null if ( this.vars.blip and isElement ( this.vars.blip ) ) then this.vars.blip:destroy ( ) end Breif.vars.blip = null if ( this.vars.holder and isElement ( this.vars.holder ) ) then Event.trigger ( this.vars.holder, "BreifCase:DestroyClientElements", this.vars.holder ) end Breif.vars.holder = null end, onHit = function ( p ) if ( not p or getElementType ( p ) ~= "player" ) then return end local this = Breif setTimer ( destroyElement, 500, 1, source ) Breif.vars.holder = p Breif.vars.object = Object.create ( 1210, 0, 0, 0 ) exports.bone_attach:attachElementToBone ( Breif.vars.object, p, 11, 0, 0, 0.3, 0, 180, 0 ) Event.remove ( "onPickupHit", source, Breif.onHit ) print ( p:getName ( ).." has got the breif case!", root, 255, 255, 0 ) Event.trigger ( p, "BreifCase:onClientPickup", p, Breif.vars.goto ) Breif.vars.blip:destroy ( ); end, triggerDrop = function ( ) local this = Breif if ( this.vars.holder ) then Event.trigger ( this.vars.holder, "BreifCase:DestroyClientElements", this.vars.holder ) local x, y, z = getElementPosition ( this.vars.holder ) if ( isElement ( Breif.vars.object ) ) then Breif.vars.object:destroy ( ); end if ( isElement ( Breif.vars.element ) ) then Breif.vars.element:destroy ( ) end Breif.vars.holder = null print ( "The breif case has been dropped in "..getZoneName(x,y,z)..", "..getZoneName(x,y,z,true), root, 255, 255, 0 ) Breif.vars.element = Pickup.create ( x, y, z, 3, 1210 ) Event.add ( "onPickupHit", Breif.vars.element, Breif.onHit ) Breif.vars.blip = Blip.create ( x, y, z, 33 ) end end, positions = { { create = { -708.50079345703, 962.47711181641, 12.477653503418 }, goTo = { -703.84838867188, 956.98223876953, 12.398029327393 } }, } } if ( not getResourceFromName ( "bone_attach" ) or getResourceState ( getResourceFromName ( "bone_attach" ) ) ~= "running" ) then return print ( "The "..getResourceName(getThisResource()).." resource requires bone_attach.", root, 255, 0, 0 ) end Event.add ( "onPlayerWasted", root, function ( ) local this = Breif if ( this.vars.holder and this.vars.holder == source ) then Breif.triggerDrop ( ); end end ) Event.add ( "onPlayerQuit", root, function ( ) local this = Breif if ( this.vars.holder and this.vars.holder == source ) then Breif.triggerDrop ( ); end end ) Event.add_ ( "BreifCase:onPlayerWin!", true ) Event.add ( "BreifCase:onPlayerWin!", root, function ( ) Breif.remove ( ); print ( source:getName ( ).." captured the breif case and got $2,000!", root, 0, 255, 0 ) source:giveMoney ( 2000 ); end ) Breif.create ( ); breif_shared.lua local function __isServer ( ) if ( _G['dbConnect'] ) then return true end return false end print = outputChatBox null = nil Command = { add = addCommandHandler, remove = removeCommandHandler, execute = executeCommandHandler } Event = { add_ = addEvent, add = addEventHandler, remove = removeEventHandler } if ( __isServer ( ) ) then Event.trigger = triggerClientEvent else Event.trigger = triggerServerEvent sx, sy = guiGetScreenSize ( ); end1 point
-
بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته ... والخ end عند كتابة الاكواد يمكنك ترتبيها لتكون اكثر وضوحاً للقارئ وغالباً لك لكي تعرف الاخطاء التركيبية مثل: عدم تكملة قوس, نسيان :مثال الآتي end ف عند كتابة اي شيء يمكنه ان يغلق ب function myFunction(myArgument) if myArgument then -- الخ .. end end Enter انتقل للسطر التالي بالضغط على زر او اترك مساحة من اربع حروف Notepad++ اذا كنت تستعمل Tab ثم اضغط على زر :مما يجعل الكود قابل للقرائة وليس كالتالي function myFunction(myArgument) if myArgument then -- الخ .. end end والسلام عليكم ورحمة الله وبركاته1 point