Leaderboard
Popular Content
Showing content with the highest reputation on 16/02/17 in all areas
-
isDouble الوظيفة : تحقق اذا كان العدد عشري او صحيح Syntax : bool isDouble(float/int Number) Number : العدد المراد التحقق منه Source Code : function isDouble(Number) return (type(Number) == "number" and string.find(tostring(Number), "%.") and true) or false end Examples : function isDouble(Number) return (type(Number) == "number" and string.find(tostring(Number), "%.") and true) or false end local double = isDouble(5.3) -- true outputChatBox(tostring(double))4 points
-
السلام عليكم ورحمة الله وبركاته اليوم حبيت أعرض لكم أخر مشاريعي بديتها قبل كم يوم والحمدلله اليوم شبه خلصت ، باقي كم شيء بسيط عالعموم نشوف مقطع فيديو إلى الآن مادري إذا أبيعها ولا أنشرها لكم ، عالعموم عطوني أرائكم وإقتراحاتكم عليها3 points
-
ask = { ["Hi"] = { "مرحبا" }, ["welcome"] = { "نورت" }, ["Bye"] = { "وداعا" } --["A"] = { "B" }, -- A : الكلمة اللي راح تكون بالجدول ويكتبها بالايديت -- B : الكلمة اللي راح تطلع له } local text = guiGetText(GUIEditor.edit[4]) if ask[ text ] and ask[ text ][ 1 ] then guiGridListSetItemText ( GUIEditor.gridlist[3], row1, 1, ask[ text ][ 1 ], false, false ) guiGridListSetItemColor ( GUIEditor.gridlist[3], row1, 1, 45, 254, 3 ) else guiGridListSetItemText ( GUIEditor.gridlist[3], row1, 1, 'عزيزي الزائر الغالي لا يمكنني الاجابه على سؤالك توجه للدعم المباشر من فضلك', false, false ) guiGridListSetItemColor ( GUIEditor.gridlist[3], row1, 1, 45, 254, 3 ) end2 points
-
setBoolean Booleanوظيفة الفنكشن : يستعمل لتغير قيمة الـ Syntax : bool setBoolean(bool Boolean) Boolean : True او False القيمة تكون getBoolean Booleanوظيفة الفنكشن : يستعمل في التحقق لجلب قيمة الـ Syntax : bool getBoolean() Source Code : booleanT = true; function setBoolean ( Boolean ) booleanT = Boolean return false end function getBoolean () return booleanT end Example : booleanT = true; function setBoolean ( Boolean ) booleanT = Boolean return false end function getBoolean () return booleanT end local screenW, screenH = guiGetScreenSize() Wnd = guiCreateWindow((screenW - 360) / 2, (screenH - 420) / 2, 360, 420, "Test!", false) guiWindowSetSizable(Wnd, false) guiSetAlpha(Wnd, 1.00) button = guiCreateButton((360 - 179) / 2, (420 - 65) / 2, 179, 65, "Test!", false, Wnd) addEventHandler("onClientGUIClick",root, function() if source == button and getBoolean() == true then setBoolean(false) outputChatBox("True !") else if source == button and getBoolean() == false then setBoolean(true) outputChatBox("False !") end end end) فايدة الفنكشن : يستعمل لاستخدامات كثيرة منها استخدام الاداة مرتين واشياء ثانية وبس سلام خير الختام : )2 points
-
استخدم <> المره الجايه بالنسبه لطلبك تحقق من اسم الداتا حقة الساعات2 points
-
You'd have to route the call to apply shaders through the server and broadcast it to all clients (and clients who join afterwards) Example: -- client triggerServerEvent("announceEnableShader", localPlayer, some_data) -- place this whereever you enable the shader instead of enabling it. This announces the client's intentions to the server and the server broadcasts this to all clients (including this client) and these clients all enable the shader on their end addEvent("broadcastEnableShader", true) -- allow remotely triggered (from server) addEventHandler("broadcastEnableShader", root, function(some_data) -- receive broadcast from the server -- engineApplyShaderToWorldTexture or whatever you want. Source of this event is the player who announced the shader (so you can know which element to apply a shader to, for example) end ) -- server addEvent("announceEnableShader", true) -- allow remotely triggered (from client) addEventHandler("announceEnableShader", root, function (some_data) -- receive announcement from client triggerClientEvent(root, "broadcastEnableShader", source, some_data) -- broadcast it to all clients (all children of root) end )2 points
-
السلام عليكم ورحمة الله وبركاته هذا الموضوع "طبعاً في القسم العام" بنشر فيه عن سيرفري والتطويرات اللي بسويها فيه ... والهدف من الموضوع اني انشر السيرفر ليس اكثر وطبعاً اتمنى انكم تدخلوه واشوف رأيكم فيه ... انا وحدي في السيرفر ولي فترة طويلة اضبط فيه ف، بس هذا كل الموضوع ... واللي يبي يدخل هذا الآي بي serverIP: mtasa://185.69.53.200:22008 ... ملاحظة الاستضافة فرنسية بمعنى اذا كنت تدخل والسيرفر يخرجك استخدم برنامج VPN Hotspot Shield1 point
-
سلام عليكم ورحمة الله وبركاته شباب وش الغلط هنا ask={ 'مرحبا', 'مرحبا1', } ans={ 'هلا بك عزيزي الزفت', 'مرحبا1', } local text = guiGetText(GUIEditor.edit[4]) if ask[text] then guiGridListSetItemText ( GUIEditor.gridlist[3], row1, 1, ans[ask[text]], false, false ) guiGridListSetItemColor ( GUIEditor.gridlist[3], row1, 1, 45, 254, 3 ) else guiGridListSetItemText ( GUIEditor.gridlist[3], row1, 1, 'عزيزي الزائر الغالي لا يمكنني الاجابه على سؤالك توجه للدعم المباشر من فضلك', false, false ) guiGridListSetItemColor ( GUIEditor.gridlist[3], row1, 1, 45, 254, 3 ) end1 point
-
1 point
-
لا يا غالي انا ابي اسوي تحقق اذا كان النص اللي موجود بالايديت موجود بالتيبل 1 يقوم يحط بالجريد لست القيمه المقابله لترتيب النص اللي في الجدول الاول مشكور1 point
-
عندك خطأ, لازم تحط الاندكس رقم مب تكست, يعني كذا : function get ( num ) return ask[num]; end get ( 1 ) -- مرحبا او تستخدم اللوب وتشيك على كل العناصر في اللوب شوف هالطريقه : for i = 1, #ask do if ask[i] == guiGetText ( GUIEditor.edit[4] ) then -- الكود اللي تبيه ويكون تحته break break end end انا علمتك الطريقه ومافهمت انت وش تبغى تسوي بالضبط؟ تبي تحط كل اللي بالجدول داخل الجريد او كيف؟ لأني شايف خربطه بسطر 13؟1 point
-
1 point
-
1 point
-
انت اخد الكود من الويكي -- get a table with all teams local allTeams = getElementsByType ( "team" ) -- for every team, for index, theTeam in ipairs(allTeams) do -- if friendly fire is off, if ( getTeamFriendlyFire ( theTeam ) == false ) then -- switch it on setTeamFriendlyFire ( theTeam, true ) end end https://wiki.multitheftauto.com/wiki/SetTeamFriendlyFire1 point
-
isNumberEven الوظيفة : يتحقق اذا كان الرقم زوجي Syntax : boolean isNumberEven(int/float number) Returns : قيمة منطقية توضح نوعية الرقم Source Code : EvenNumbers = {[0] = true; [2] = true; [4] = true; [6] = true; [8] = true} function isDouble(Number) return (type(Number) == "number" and Number ~= 0.0 and string.find(tostring(Number), "%.") and true) or false end function isNumberEven(Number) return (type(Number) == "number" and EvenNumbers[tonumber(string["sub"](tostring(Number), #tostring(Number), #tostring(Number)))] and true) or false end Example : EvenNumbers = {[0] = true; [2] = true; [4] = true; [6] = true; [8] = true} function isNumberEven(Number) return (type(Number) == "number" and EvenNumbers[tonumber(string["sub"](tostring(Number), #tostring(Number), #tostring(Number)))] and true) or false end NumbersToCheck = {1; 2; 20; 95; 32; 33} for _, Number in ipairs(NumbersToCheck) do outputChatBox(isNumberEven(Number) and "Even" or "Odd") end المثال يتحقق من نوعية الارقام في الجدول اللي متغير : NumbersToCheck ويطلع النوعية في الشات1 point
-
1 point
-
1 point
-
1 point
-
ما شاء الله, والله مطنووخه وشكلها رهييب, اذا انك تعبت عليها كثير بيعها واذا عادي نزلها للناس مع وضع حقوقك, عجبتني فكرة تغيير لون اللوحه مع الخلفيه رهيبه, وحط خيار الباس يكون نجوم او لا, بالتوفيق .1 point
-
Don't think anyone will do that for you, you are not in the right place for requesting stuff. You can look up the community scripts, you might find something like this, if not, you will need to start learning lua.1 point
-
وش تقصد انه التكست راح يصير مدموج تقدر تحركه باستخدام ال y وتخليه فوق شوي او العكس تستعمل ال x وتخليه عالجمب1 point
-
هذي طريقة من الطرق الي يخليه يستعمل الامر مرتين عن نفسي ما أفضل الداتا عن الطريقة حقتي لان طريقيتي ما تستعمل البيانات وكذا1 point
-
1 point
-
1 point
-
So which one(s) have you done so far, just out of curiosity? (in 2 months time)1 point
-
1 point
-
1 point
-
1 point
-
u need to "play" with suspension or use setTimer and keep up it: https://wiki.multitheftauto.com/wiki/SetVehicleTurnVelocity1 point
-
1 point
-
accses = { ["B59550077FCEA44869A2C59B960F7083"] = true, } theTeam = createTeam ( "teamName", 0, 255, 0 ) addEventHandler ( 'onPlayerJoin', getRootElement ( ), function () players = getPlayerSerial(source) if ( accses[players] ) then setPlayerTeam (source,theTeam ) end end )1 point
-
1 point
-
1 point
-
I see you already found a similar topic and that helped you, but in case you didn't understand interpolation fully, I will explain. So basically it's a function, that increments / decrements gradually between start and endpoints. So if you had 2 camera positions and you wanted to have a nice movement between the 2 positions, you would use interpolation. In theory, it returns a number between -1 and 1 over it's progression. When this curve is over, it will always return 1. Now, in MTA, you can call this function with 3 start and 3 end points and one easing type, which defines the actual curve of progression (take a look at the link in order to better understand them). Although, this "interpolateBetween" function does not remember the progression, it doesn't know whether it's finished, half way through or just started off, that is why you will have couple of variables. getTickCount() is an integer that returns the amount of time your system has been running in milliseconds, so it's unique and can be used to mark different events. For example you can save the starting time with getTickCount and in an event like onClientRender you can compare how many seconds have passed. Thing you will need: Start time: getTickCount() whenever you call the interpolation first Elapsed time: current getTickCount() - start time -> returns elapsed time in milliseconds Duration: how long will it take to reach from start to the end in milliseconds -> probably it won't change Progress: the current state of the interpolation, to get this, use the formula: elapsedTime / duration And you will also need 3 start and 3 end points, as I already said (although, if you need only 1 start and 1 end, just use 0's) To wrap it up, this is how you call interpolateBetween ( remember that you will always want to run it inside render ) local start = getTickCount() function render() local now = getTickCount() local endTime = start + 2000 local elapsedTime = now - start local duration = endTime - start local progress = elapsedTime / duration local posX, posY, posZ = interpolateBetween ( startPosX, startPosY, startPosZ, endPosX, endPosY, endPosZ, progress, "Linear") end addEventHandler("onClientRender", root, render)1 point
-
Yo uso ese host y no he tenido problemas, tal vez lo de los diseños sea porque están empezando y no tienen alguien que se especialice con eso1 point
-
من ترجمة الديبق تفهم ان لايمكن مقارنة رقم مع متغير غير معرف تأكد من هذا الجزء hoursRequired > tonumber(getElementData(hitPlayer,"OnlineTime.hours"))1 point
-
@Kernell, в старых версиях вроде серийник ещё по mac-адрессу был, о настройке мне известно, и в двух словах о банах за накрутку тоже. В вк продавалась или продается расширенная админка, в которой кроме небольших улучшений стандартной, добавлена эдакая вундервафля в виде накрутки игроков, хотя это может быть и фейк просто. Но если говорить о виртуалках, понятно что обычная ВМка, будет себя палить, т.к. для некоторых устройств, драйвера слишком условно иммитируются. Одинаковой она может быть, т.к. можно копировать сами ВМки, наверно две одинаковых на одном пк не запустишь, но две одинаковых на двух пк вполне возможно. Кроме этого технологии виртуализации, не ограничиваются простыми бесплатными VMWare и VirtualBox, эмулируются даже другие архитектуры процессоров. Но конечно пока что ни у кого нет смысла или возможностей это реализовывать. С другой стороны, надо не забывать что MTA не единственное что защищено привязкой к пк, и если здесь некому этого сделать, не значит что откуда не может произойти утечки радиоактивных отходов, а для программ у которых привязка к пк заставляет доплачивать за отдельные лицензии сотни, тысячи, а то и десятки тысяч долларов, это вполне реальная задача. Ну а по теме. Сервер открывать стоит, потому-что здесь вы столкнетесь с ситуацией, когда есть огромная гора разработчиков. Но одна большая часть не в состоянии сделать что-то нормальное. Другая большая часть, это люди которым интересна сама разработка, они отказываются от прямых путей, когда им не нравится эта дорога, и делают кучу всего, изрядной частью делятся сами, другую копируют, в итоге сообщество мта создает огромные возможности, для тех кто знает что нужно существующим игрокам и тем кто мог бы прийти в мта. В конечном счете, неважно сколько игроков, кому-то их хватает, кому-то они не так уж важны, и все хотят что-бы их было больше. Все кто проникся мта, будут радеть за вас, если вы хоть немного не являетесь их конкурентом, и приводите новых игроков, или делаете лучше старых. Путей реализовать себя в мта много, и главное не что-бы игрок перестал играть в одиночку, мта больше подходит слоган: Stop developing with yourself!1 point
-
Вообще это сработает и в мта. И кстати попадалась некая админка переделанная, с особой фишкой, накруткой игроков, незнаю насколько реально. Но дополнительные 5-10-15 игроков, могут значить не мало для dayz. Причем если реальных игроков больше половины, да хотя-бы треть(если не продолжительно и не часто), и один-два человека отвечающих в чате за всех накрученных, возможно никто и не уличит во лжи. Конечно все относительно, не в любом случае сработает, не для любого сервера, не с любыми игроками. Я точно не знаю, но наверно ключевым является поиск + сортировка по кол-ву игроков. А у вас пичаль-беда в мониторинге никак не отсортировать... Вот кстати говоря о накрутке: Вроде бы выходит кривая статистика, но данный пример показывает что не так уж много накручивают, раз он один такой, меня лично и накрученные их цифры, за исключением казусов выше, не впечатляют. Другой пример CCD, сляпали гибрид обычных crmp и samp серверов, и всё онлайн как на анаболиках. Почему так? Да банально раскручивались нормально. Взять ту же раскрутку dayz серверов на ютубе, сделает смотр или просто серию известно кто, и всё, даже при жутких багах, основанных как правило не только на кривости, но и несовместимости собранных в кучу ресурсов, при том он в своих видео ни толком как игрок себя не показывает, ни толком сам сервер, но весело же, и все думают что они зайдут, и всем будет также весело. Другой ютубер постоянно снимает на своем сервере, и вроде бы и далеко не самый худший из тех кто серверы делает, но и сервер не слишком выдающийся, и неудачное создание новых серверов, да и то что мало снимает на других серверах много значит. Ещё к примеру, один на форуме не любимом здесь, раскручивают с переменным успехом, но профит вроде как неплохой. Но все это воду в ступе толочь, никто не привлекает людей извне мта. И привлекать из самп уже поздно, он помирает, поколения выросшие на нем, взрослеют. А других никто так и не стал привлекать. Вот и живем за счет тех у кого не тянут всякие новые выживалки, обновят компы и всё жо.. Единственное курсы валют в странах СНГ, позволяют надеятся что немногие обновят конфигурацию в ближайшее время.1 point
